From 4fe96feb1b00911cf8146d5af30d56e228a35f4f Mon Sep 17 00:00:00 2001 From: jwinterm Date: Thu, 14 May 2026 17:38:18 -0400 Subject: [PATCH] Trim model_generator.sh to only run build_runner on chains we ship MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hardcoded list iterated every cw_* module Cake ever supported, including the ones we disabled (solana, tron, zano, decred, zcash). Those modules are still on disk but aren't in pubspec.yaml, so the build_runner pass for them is wasted work — minutes per fresh setup. Trimmed to: cw_{core,evm,monero,bitcoin,nano,bitcoin_cash,wownero,dogecoin}. cw_mweb is untouched (separate loop, only runs pub get not build_runner). --- assets/images/hash_wallet/01_mark.svg | 7 ++++ assets/images/hash_wallet/02_app_icon.svg | 7 ++++ .../hash_wallet/03_lockup_horizontal.svg | 8 ++++ .../hash_wallet/04_hash_wallet_inline.svg | 8 ++++ .../images/hash_wallet/05_function_lockup.svg | 12 ++++++ .../images/hash_wallet/06_splash_assemble.svg | 24 ++++++++++++ .../images/hash_wallet/07_loading_pulse.svg | 20 ++++++++++ .../hash_wallet/08_transaction_confirm.svg | 37 ++++++++++++++++++ model_generator.sh | 7 +++- windows/runner/resources/app_icon.ico | Bin 17515 -> 2844 bytes 10 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 assets/images/hash_wallet/01_mark.svg create mode 100644 assets/images/hash_wallet/02_app_icon.svg create mode 100644 assets/images/hash_wallet/03_lockup_horizontal.svg create mode 100644 assets/images/hash_wallet/04_hash_wallet_inline.svg create mode 100644 assets/images/hash_wallet/05_function_lockup.svg create mode 100644 assets/images/hash_wallet/06_splash_assemble.svg create mode 100644 assets/images/hash_wallet/07_loading_pulse.svg create mode 100644 assets/images/hash_wallet/08_transaction_confirm.svg diff --git a/assets/images/hash_wallet/01_mark.svg b/assets/images/hash_wallet/01_mark.svg new file mode 100644 index 000000000..b2c13288d --- /dev/null +++ b/assets/images/hash_wallet/01_mark.svg @@ -0,0 +1,7 @@ + + +Hash Wallet mark +The Hash Wallet mark: a white hash glyph centered in a brand-green rounded square. + +# + diff --git a/assets/images/hash_wallet/02_app_icon.svg b/assets/images/hash_wallet/02_app_icon.svg new file mode 100644 index 000000000..499e41acc --- /dev/null +++ b/assets/images/hash_wallet/02_app_icon.svg @@ -0,0 +1,7 @@ + + +Hash Wallet app icon +Hash Wallet app icon: brand-green rounded square with a centered white hash. + +# + diff --git a/assets/images/hash_wallet/03_lockup_horizontal.svg b/assets/images/hash_wallet/03_lockup_horizontal.svg new file mode 100644 index 000000000..24bc03917 --- /dev/null +++ b/assets/images/hash_wallet/03_lockup_horizontal.svg @@ -0,0 +1,8 @@ + + +Hash Wallet horizontal lockup +Hash Wallet logo with green-boxed hash mark on the left and Hash Wallet wordmark to the right. + +# +Hash Wallet + diff --git a/assets/images/hash_wallet/04_hash_wallet_inline.svg b/assets/images/hash_wallet/04_hash_wallet_inline.svg new file mode 100644 index 000000000..7a96b7f39 --- /dev/null +++ b/assets/images/hash_wallet/04_hash_wallet_inline.svg @@ -0,0 +1,8 @@ + + +#ash Wallet — inline lockup +Hash Wallet inline lockup where a green-boxed hash mark sits before the word "ash Wallet" to spell out "#ash Wallet". + +# +ash Wallet + diff --git a/assets/images/hash_wallet/05_function_lockup.svg b/assets/images/hash_wallet/05_function_lockup.svg new file mode 100644 index 000000000..c31e77bdd --- /dev/null +++ b/assets/images/hash_wallet/05_function_lockup.svg @@ -0,0 +1,12 @@ + + +H(ash) = Wallet +Hash Wallet function-joke wordmark with green-boxed hash as the function name. + +# +( +ash +) += +Wallet + diff --git a/assets/images/hash_wallet/06_splash_assemble.svg b/assets/images/hash_wallet/06_splash_assemble.svg new file mode 100644 index 000000000..5c50145fd --- /dev/null +++ b/assets/images/hash_wallet/06_splash_assemble.svg @@ -0,0 +1,24 @@ + + +Hash Wallet splash animation +Splash screen: green rounded square scales in, then white hash glyph fades up. + + + + + + + + + + + # + + + diff --git a/assets/images/hash_wallet/07_loading_pulse.svg b/assets/images/hash_wallet/07_loading_pulse.svg new file mode 100644 index 000000000..a2af64234 --- /dev/null +++ b/assets/images/hash_wallet/07_loading_pulse.svg @@ -0,0 +1,20 @@ + + +Hash Wallet loading pulse +Looping loading animation: green-boxed hash mark pulses opacity, suggesting a hash-computing rhythm. + + + + + + + # + + + diff --git a/assets/images/hash_wallet/08_transaction_confirm.svg b/assets/images/hash_wallet/08_transaction_confirm.svg new file mode 100644 index 000000000..728fd1fd5 --- /dev/null +++ b/assets/images/hash_wallet/08_transaction_confirm.svg @@ -0,0 +1,37 @@ + + +Hash Wallet transaction confirm +Transaction confirm animation: empty green-outlined box fills with brand green from bottom up, hash glyph appears at completion. Loops for pending state. + + + + + + + + + + + + + + + + + + + + + # + + + diff --git a/model_generator.sh b/model_generator.sh index 20de89b39..8cb3081c0 100755 --- a/model_generator.sh +++ b/model_generator.sh @@ -1,7 +1,12 @@ #!/bin/bash set -x -e -for cwcoin in cw_{core,evm,monero,bitcoin,nano,bitcoin_cash,solana,tron,wownero,zano,decred,dogecoin,zcash} +# Hash Wallet: trimmed to chains we actually ship. The disabled ones +# (solana, tron, zano, decred, zcash) still have their cw_* directories on +# disk but aren't in pubspec.yaml, so running build_runner on them is just +# wasted minutes. Add a chain back to this list if you re-enable it in +# scripts/{ios,android,linux,macos}/app_config.sh + pubspec_gen.sh. +for cwcoin in cw_{core,evm,monero,bitcoin,nano,bitcoin_cash,wownero,dogecoin} do if [[ "x$1" == "xasync" ]]; then diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico index 96713d7574e400c2d477a2046153171a4dba8d00..82e4f80a62c112cf1c61fc2fb2906fe9b1996cdd 100644 GIT binary patch literal 2844 zcmeH}dpy)x8^F&@GmI%_C@FWQjZL9kvzW=ux-^y*c9ha6A>^`*RE(d*M7dNetjuVL zrHn0Eav3Juid=HP&qQ(yxn<>yleq8gtR&I$Xwgv8#+q~j{Kdck3NDhgWATRpKsVWtjyZ)rm>wkiou=%q z32M15NSy9@dOpc4ku^t@IEF;VW7&5IB-N+HL(bApZ1oKF9)g?)Oe^`og<7!#GzY59 ziIhuhe-|v(Q7zCX{2R)l(kPf7zpSSXdzpmI|)k42ZB#lx>O}<-Z7?`TEke z=~pt|VYB@eCC&!?r0Thkto4Zvvy}V*`f8KH*~re-xyX$%f!oFhjB~Db=p)W1lx(g4 z>f54?TB@h=#U}HPRxJ~{OTgqgD`1kN!*en*;Of5j3573X;BVC;BodqLJTcD>I2v^^ zFLCf1^6cdy$0-z{j%vjk4;x%yS??QOU!LOeUQd;EO}$D4A;zW>du?CmGEdpgOy@oK z)ComoWmP_Zl2=01AK^6;3wvJx)OE1ywBN@A3H2KqjC)sE;AOGSt9&8^cI`k5qA5n* zsa+K3+(eT4wmAP*>?;fls|t|B84mPKODToo6c-zaUKF4RQHwjNJ%h*^JDOv)RDX%pqaE_fAQ5-jTg1w|)S@;=CgPwhv7Hg@)$hf{ z#j~#pALg*Yz&7(JaQ!ZG)Amr)OwN*1F6Us;xR1@v*jb4{I1KR>7v8lhPtU6QW_Q9> zym{&yGwXS!@xuu0PwiUNUSv(%ACrBfv0YO`1Q2Cfh3Uk}v#%fJbt%xl8-yI%kNI5|QEsVcWFzQL5N4CTVfe15phf-_a7j`<%d5 zdjOBvqN_05^vmNLb>Dk%Z3{v7b~{IESjlYaCmv zRs)+Wm`}u4B%)I{4-3KJv-agXs8`O@KG&a5$E*2IC0vsD<_tfRvEazv;0&KPfm)W%Y;1J9(f!*a z-cOc{8Foul%{BAG^6H}TYvVcykVXKy34kgOtI>x;7ZIQx1#+c{O)+tKQSnOCzV)Z~79Mu}h~NR(bi;(lwz! z*=n$w=DMqaF690+Uw!ku|S|2Cg1|EuZcpx%d9z{^)hjF>NKj{BHlt_(lQIk9j z$0l>dKjjJQ{-f`mSfqX@7=udO0`OkpK3e{L9N(ZdeFfM!S5Lf6>2e5IjRAp(1BJ%ru+mY5} zahs|`QG=NgF$%D-uOcKk0r>Q@u3Z^}z4XN)OW=025|iTXQ&?#J-e)Ng2Z|Kwk~-^1 zKA-M$F38gNFVXJ`>MvGh-}Vf6ED^l$D{pbYe(gzg(6TIc49}E?H0WKt@j=Ep`>A#! zV7~6=9rT-?Ja|ZF;i**Y1+WE3eIlN@{id52DA%Y5pCzqmsWODnNpYNo2-hKgo`D4; z!+%C){c4E+NG*eFOCi2bTQm#9XVRZ%{no-+rVvg8Yb?RN4JbF;7ZgV4a}tc0a*{(k z2{!;*;W$d}eSsUSSZdTsn&2*_Lww{|EM*xF(6djaEEn9fPJ;(W;F>jcCVNu1^U45L z9fF4!MxSiU$fW7!-2&+3qG*Q-u?tF#!32ObUXx8;tYy%2&G(?QxaGg$TMsGGUKF1V z2{*aN?Th@@gzVPMsnj%~2St3)i%5M`+*qjH%+Wq>6%+dqxQ$mWGFSs9(or{0aLbN0e$hijPo{(ta7_Z-6#l-puv$qJ8sGZYRu*0Eb}T{^>73x^|)fh)!X zGG!HyvY%DH?3@x4ZP0cP%SgK3KQL&=Y4mOK$HGP&NY~CK?Nj;ieAF-w*!dLrdUFDH zNjj|UzFPz__29-fD@&rpt{dHdrl}c8ARq$oF7ER<7qmZxPf0J&eO8ctR9pU~#$Srs zB1lZ8s@1wkj^qcV)U7RB9C({UJSKBpH!^?uGdD&!< z^^W#F2enGfqh&|M2}xrPBr8pbOS+fblvy~^aJ_44{tbo$bz%wib^Wg4ft#Giy$t%S vGsQ9bzd!x|4E=wp3IA98TbcadT(T4Z#$1Mnicf`Z{e*44wIgvXsMr4ll)&A} literal 17515 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