├── .cspell.json ├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── .vscode └── settings.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── assets ├── AppIcon.icns ├── AppIcon.ico ├── AppIcon.png ├── DMGBG.png ├── StoreLogo.png ├── Wallet3.png ├── png2icns.sh └── win │ └── AppIcon.png ├── babel.config.js ├── bindings ├── noble-bindings.js └── sqlite3-binding.js ├── build └── appx │ ├── Square150x150Logo.png │ ├── Square150x150Logo.scale-100.png │ ├── Square150x150Logo.scale-125.png │ ├── Square150x150Logo.scale-150.png │ ├── Square150x150Logo.scale-200.png │ ├── Square150x150Logo.scale-400.png │ ├── Square310x310Logo.scale-100.png │ ├── Square310x310Logo.scale-125.png │ ├── Square310x310Logo.scale-150.png │ ├── Square310x310Logo.scale-200.png │ ├── Square310x310Logo.scale-400.png │ ├── Square44x44Logo.png │ ├── Square44x44Logo.targetsize-16.png │ ├── Square44x44Logo.targetsize-20.png │ ├── Square44x44Logo.targetsize-24.png │ ├── Square44x44Logo.targetsize-256.png │ ├── Square44x44Logo.targetsize-30.png │ ├── Square44x44Logo.targetsize-32.png │ ├── Square44x44Logo.targetsize-36.png │ ├── Square44x44Logo.targetsize-40.png │ ├── Square44x44Logo.targetsize-48.png │ ├── Square44x44Logo.targetsize-60.png │ ├── Square44x44Logo.targetsize-64.png │ ├── Square44x44Logo.targetsize-72.png │ ├── Square44x44Logo.targetsize-80.png │ ├── Square44x44Logo.targetsize-96.png │ ├── Square71x71Logo.png │ ├── Square71x71Logo.scale-100.png │ ├── Square71x71Logo.scale-125.png │ ├── Square71x71Logo.scale-150.png │ ├── Square71x71Logo.scale-200.png │ ├── Square71x71Logo.scale-400.png │ ├── StoreLogo.png │ ├── StoreLogo.scale-150.png │ ├── StoreLogo.scale-300.png │ ├── StoreLogo.scale-71.png │ └── Wide310x150Logo.png ├── docs ├── MAS.md ├── Security Refs.md ├── flowcharts │ ├── IPC Security.png │ └── Init App.png └── tools.md ├── electron-builder.js ├── forge.config.js ├── jest.config.ts ├── package.json ├── scripts └── checksum.js ├── sign ├── appSign.example.js ├── entitlements.mas.inherit.plist ├── entitlements.mas.loginhelper.plist ├── entitlements.mas.plist ├── entitlements.plist └── winSign.example.js ├── src ├── abis │ ├── ERC1155.json │ ├── ERC20.json │ ├── ERC721.json │ ├── POAP.json │ └── Stableswap.json ├── api │ ├── Coingecko.ts │ ├── Debank.ts │ └── Zapper.ts ├── assets │ └── icons │ │ ├── 3rd │ │ ├── coingecko.png │ │ ├── debank.svg │ │ ├── gasnow.png │ │ └── logos │ │ │ ├── aave.svg │ │ │ ├── agave.svg │ │ │ ├── alpaca finance.png │ │ │ ├── armor.svg │ │ │ ├── balancer.svg │ │ │ ├── bao.png │ │ │ ├── binance bridge.svg │ │ │ ├── coco.png │ │ │ ├── comethswap.png │ │ │ ├── compound.svg │ │ │ ├── cream.svg │ │ │ ├── curve.png │ │ │ ├── dfi.money.png │ │ │ ├── dodo.png │ │ │ ├── dydx.svg │ │ │ ├── ellipsis.png │ │ │ ├── honeycomb.svg │ │ │ ├── honeyswap.svg │ │ │ ├── kyber.png │ │ │ ├── liquity.png │ │ │ ├── loopring.svg │ │ │ ├── maker.svg │ │ │ ├── matcha.png │ │ │ ├── mdex.png │ │ │ ├── nexus mutual.svg │ │ │ ├── optimism gateway.svg │ │ │ ├── opyn.png │ │ │ ├── pancakeswap.svg │ │ │ ├── polygon bridge.svg │ │ │ ├── pooltogether.svg │ │ │ ├── quickswap.png │ │ │ ├── supremex.svg │ │ │ ├── sushiswap.png │ │ │ ├── synthetix.svg │ │ │ ├── tokenlon.svg │ │ │ ├── tokensets.svg │ │ │ ├── tornado.svg │ │ │ ├── uma.svg │ │ │ ├── uniswap.svg │ │ │ ├── venus.png │ │ │ ├── xdai bridge.svg │ │ │ └── yearn.svg │ │ ├── app │ │ ├── AppIcon.png │ │ ├── AppIcon.svg │ │ ├── AppIcon_256.png │ │ ├── apps.svg │ │ ├── check.svg │ │ ├── coin.svg │ │ ├── copy.svg │ │ ├── fingerprint.svg │ │ ├── fire.svg │ │ ├── gem.svg │ │ ├── keyboard.svg │ │ ├── logo.svg │ │ ├── maintenance.svg │ │ ├── qr-code.svg │ │ ├── touchid.svg │ │ ├── tray_darwin.png │ │ ├── tray_linux.png │ │ ├── tray_win32.png │ │ ├── walletconnect-logo.svg │ │ ├── win-close.svg │ │ ├── win-maximize.svg │ │ └── win-minimize.svg │ │ ├── crypto │ │ ├── 0xbtc.svg │ │ ├── 1inch.svg │ │ ├── 2give.svg │ │ ├── aave.svg │ │ ├── abt.svg │ │ ├── act.svg │ │ ├── actn.svg │ │ ├── ada.svg │ │ ├── add.svg │ │ ├── adx.svg │ │ ├── ae.svg │ │ ├── aeon.svg │ │ ├── aeur.svg │ │ ├── agi.svg │ │ ├── agrs.svg │ │ ├── aion.svg │ │ ├── algo.svg │ │ ├── alpha.svg │ │ ├── amb.svg │ │ ├── amp.svg │ │ ├── ampl.svg │ │ ├── ankr.svg │ │ ├── ant.svg │ │ ├── apex.svg │ │ ├── appc.svg │ │ ├── ardr.svg │ │ ├── arg.svg │ │ ├── ark.svg │ │ ├── arn.svg │ │ ├── arnx.svg │ │ ├── ary.svg │ │ ├── ast.svg │ │ ├── atm.svg │ │ ├── atom.svg │ │ ├── audr.svg │ │ ├── auto.svg │ │ ├── avax.svg │ │ ├── axs.svg │ │ ├── aywa.svg │ │ ├── bab.svg │ │ ├── bal.svg │ │ ├── band.svg │ │ ├── bat.svg │ │ ├── bay.svg │ │ ├── bcbc.svg │ │ ├── bcc.svg │ │ ├── bcd.svg │ │ ├── bch.svg │ │ ├── bcio.svg │ │ ├── bcn.svg │ │ ├── bco.svg │ │ ├── bcpt.svg │ │ ├── bdl.svg │ │ ├── beam.svg │ │ ├── bela.svg │ │ ├── bix.svg │ │ ├── blcn.svg │ │ ├── blk.svg │ │ ├── block.svg │ │ ├── blz.svg │ │ ├── bnb.svg │ │ ├── bnt.svg │ │ ├── bnty.svg │ │ ├── bond.svg │ │ ├── booty.svg │ │ ├── bos.svg │ │ ├── bpt.svg │ │ ├── bq.svg │ │ ├── brd.svg │ │ ├── bsc.svg │ │ ├── bsd.svg │ │ ├── bsv.svg │ │ ├── btc.svg │ │ ├── btcd.svg │ │ ├── btch.svg │ │ ├── btcp.svg │ │ ├── btcz.svg │ │ ├── btdx.svg │ │ ├── btg.svg │ │ ├── btm.svg │ │ ├── bts.svg │ │ ├── btt.svg │ │ ├── btx.svg │ │ ├── burst.svg │ │ ├── busd.svg │ │ ├── bze.svg │ │ ├── bzrx.svg │ │ ├── bzx.svg │ │ ├── cake.svg │ │ ├── call.svg │ │ ├── cc.svg │ │ ├── cdai.svg │ │ ├── cdn.svg │ │ ├── cdt.svg │ │ ├── celo.svg │ │ ├── cenz.svg │ │ ├── ceth.svg │ │ ├── ceur.svg │ │ ├── chain.svg │ │ ├── chat.svg │ │ ├── chips.svg │ │ ├── chsb.svg │ │ ├── cix.svg │ │ ├── clam.svg │ │ ├── cloak.svg │ │ ├── cmm.svg │ │ ├── cmt.svg │ │ ├── cnd.svg │ │ ├── cnx.svg │ │ ├── cny.svg │ │ ├── cob.svg │ │ ├── colx.svg │ │ ├── comp.svg │ │ ├── coqui.svg │ │ ├── cream.svg │ │ ├── cred.svg │ │ ├── crpt.svg │ │ ├── crv.svg │ │ ├── crw.svg │ │ ├── cs.svg │ │ ├── css.svg │ │ ├── ctr.svg │ │ ├── ctxc.svg │ │ ├── cusd.svg │ │ ├── cusdc.svg │ │ ├── cusdt.svg │ │ ├── cvc.svg │ │ ├── d.svg │ │ ├── dai-heco.svg │ │ ├── dai.svg │ │ ├── dash.svg │ │ ├── dat.svg │ │ ├── data.svg │ │ ├── dbc.svg │ │ ├── dcn.svg │ │ ├── dcr.svg │ │ ├── deez.svg │ │ ├── dent.svg │ │ ├── dew.svg │ │ ├── dgb.svg │ │ ├── dgd.svg │ │ ├── dlt.svg │ │ ├── dnt.svg │ │ ├── dock.svg │ │ ├── dodo.svg │ │ ├── doge.svg │ │ ├── dot.svg │ │ ├── dpi.svg │ │ ├── drgn.svg │ │ ├── drop.svg │ │ ├── dta.svg │ │ ├── dth.svg │ │ ├── dtr.svg │ │ ├── dydx.svg │ │ ├── ebst.svg │ │ ├── eca.svg │ │ ├── edg.svg │ │ ├── edo.svg │ │ ├── edoge.svg │ │ ├── ela.svg │ │ ├── elec.svg │ │ ├── elf.svg │ │ ├── elix.svg │ │ ├── ella.svg │ │ ├── emb.svg │ │ ├── emc.svg │ │ ├── emc2.svg │ │ ├── eng.svg │ │ ├── enj.svg │ │ ├── ens.svg │ │ ├── entrp.svg │ │ ├── eon.svg │ │ ├── eop.svg │ │ ├── eos.svg │ │ ├── eqli.svg │ │ ├── equa.svg │ │ ├── etc.svg │ │ ├── eth.svg │ │ ├── ethos.svg │ │ ├── etn.svg │ │ ├── etp.svg │ │ ├── eur.svg │ │ ├── evx.svg │ │ ├── exmo.svg │ │ ├── exp.svg │ │ ├── fair.svg │ │ ├── fct.svg │ │ ├── feth.svg │ │ ├── fil.svg │ │ ├── fjc.svg │ │ ├── fldc.svg │ │ ├── flo.svg │ │ ├── flux.svg │ │ ├── fsn.svg │ │ ├── ftc.svg │ │ ├── ftm.svg │ │ ├── ftt.svg │ │ ├── fuel.svg │ │ ├── fun.svg │ │ ├── game.svg │ │ ├── gas.svg │ │ ├── gbp.svg │ │ ├── gbx.svg │ │ ├── gbyte.svg │ │ ├── generic.svg │ │ ├── gin.svg │ │ ├── glxt.svg │ │ ├── gmr.svg │ │ ├── gno.svg │ │ ├── gnt.svg │ │ ├── gold.svg │ │ ├── gor.svg │ │ ├── grc.svg │ │ ├── grin.svg │ │ ├── grs.svg │ │ ├── grt.svg │ │ ├── gsc.svg │ │ ├── gtc.svg │ │ ├── gto.svg │ │ ├── gup.svg │ │ ├── gusd.svg │ │ ├── gvt.svg │ │ ├── gxs.svg │ │ ├── gzr.svg │ │ ├── hbch.svg │ │ ├── hbtc.svg │ │ ├── hdot.svg │ │ ├── heco.svg │ │ ├── hex.svg │ │ ├── hight.svg │ │ ├── hltc.svg │ │ ├── hns.svg │ │ ├── hny.svg │ │ ├── hodl.svg │ │ ├── hot.svg │ │ ├── hpb.svg │ │ ├── hsr.svg │ │ ├── ht.svg │ │ ├── html.svg │ │ ├── huc.svg │ │ ├── husd.svg │ │ ├── hush.svg │ │ ├── icn.svg │ │ ├── icp.svg │ │ ├── icx.svg │ │ ├── ignis.svg │ │ ├── ilk.svg │ │ ├── imbtc.svg │ │ ├── ink.svg │ │ ├── ins.svg │ │ ├── ion.svg │ │ ├── iop.svg │ │ ├── iost.svg │ │ ├── iotx.svg │ │ ├── iq.svg │ │ ├── itc.svg │ │ ├── jnt.svg │ │ ├── jpy.svg │ │ ├── kcs.svg │ │ ├── kin.svg │ │ ├── klown.svg │ │ ├── kmd.svg │ │ ├── knc.svg │ │ ├── kor.svg │ │ ├── krb.svg │ │ ├── ksm.svg │ │ ├── lbc.svg │ │ ├── ldo.svg │ │ ├── lend.svg │ │ ├── leo.svg │ │ ├── link.svg │ │ ├── lkk.svg │ │ ├── lon.svg │ │ ├── loom.svg │ │ ├── lpt.svg │ │ ├── lrc.svg │ │ ├── lsk.svg │ │ ├── ltc.svg │ │ ├── lun.svg │ │ ├── luna.svg │ │ ├── mai.svg │ │ ├── maid.svg │ │ ├── mana.svg │ │ ├── mask.svg │ │ ├── matic.svg │ │ ├── max.svg │ │ ├── mcap.svg │ │ ├── mco.svg │ │ ├── mda.svg │ │ ├── mds.svg │ │ ├── med.svg │ │ ├── meetone.svg │ │ ├── mft.svg │ │ ├── mimatic.svg │ │ ├── miota.svg │ │ ├── mith.svg │ │ ├── mkr.svg │ │ ├── mln.svg │ │ ├── mnx.svg │ │ ├── mnz.svg │ │ ├── moac.svg │ │ ├── mod.svg │ │ ├── mona.svg │ │ ├── msr.svg │ │ ├── mta.svg │ │ ├── mth.svg │ │ ├── mtl.svg │ │ ├── music.svg │ │ ├── mzc.svg │ │ ├── nano.svg │ │ ├── nas.svg │ │ ├── nav.svg │ │ ├── ncash.svg │ │ ├── ndz.svg │ │ ├── nebl.svg │ │ ├── neo.svg │ │ ├── neos.svg │ │ ├── neu.svg │ │ ├── nexo.svg │ │ ├── ngc.svg │ │ ├── nio.svg │ │ ├── nkn.svg │ │ ├── nlc2.svg │ │ ├── nlg.svg │ │ ├── nmc.svg │ │ ├── nmr.svg │ │ ├── npxs.svg │ │ ├── ntbc.svg │ │ ├── nuls.svg │ │ ├── nxs.svg │ │ ├── nxt.svg │ │ ├── oax.svg │ │ ├── oeth.svg │ │ ├── ok.svg │ │ ├── okb.svg │ │ ├── okt.svg │ │ ├── omg.svg │ │ ├── omni.svg │ │ ├── one.svg │ │ ├── ong.svg │ │ ├── ont.svg │ │ ├── oot.svg │ │ ├── ost.svg │ │ ├── ox.svg │ │ ├── oxt.svg │ │ ├── pac.svg │ │ ├── part.svg │ │ ├── pasc.svg │ │ ├── pasl.svg │ │ ├── pax.svg │ │ ├── paxg.svg │ │ ├── pay.svg │ │ ├── payx.svg │ │ ├── pbtc.svg │ │ ├── pink.svg │ │ ├── pirl.svg │ │ ├── pivx.svg │ │ ├── plr.svg │ │ ├── poa.svg │ │ ├── poe.svg │ │ ├── polis.svg │ │ ├── poly.svg │ │ ├── polygon.svg │ │ ├── pool.svg │ │ ├── pot.svg │ │ ├── powr.svg │ │ ├── ppc.svg │ │ ├── ppp.svg │ │ ├── ppt.svg │ │ ├── pre.svg │ │ ├── prl.svg │ │ ├── pungo.svg │ │ ├── pura.svg │ │ ├── qash.svg │ │ ├── qiwi.svg │ │ ├── qlc.svg │ │ ├── qrl.svg │ │ ├── qsp.svg │ │ ├── qtum.svg │ │ ├── r.svg │ │ ├── rads.svg │ │ ├── rap.svg │ │ ├── rcn.svg │ │ ├── rdd.svg │ │ ├── rdn.svg │ │ ├── ren.svg │ │ ├── rep.svg │ │ ├── repv2.svg │ │ ├── req.svg │ │ ├── rhoc.svg │ │ ├── ric.svg │ │ ├── rise.svg │ │ ├── rlc.svg │ │ ├── rpx.svg │ │ ├── rsv.svg │ │ ├── rub.svg │ │ ├── rune.svg │ │ ├── rvn.svg │ │ ├── ryo.svg │ │ ├── safe.svg │ │ ├── safemoon.svg │ │ ├── sai.svg │ │ ├── salt.svg │ │ ├── san.svg │ │ ├── sand.svg │ │ ├── sbd.svg │ │ ├── sberbank.svg │ │ ├── sc.svg │ │ ├── scrt.svg │ │ ├── seur.svg │ │ ├── sftm.svg │ │ ├── shib.svg │ │ ├── shift.svg │ │ ├── sib.svg │ │ ├── sin.svg │ │ ├── sjpy.svg │ │ ├── skl.svg │ │ ├── sky.svg │ │ ├── slr.svg │ │ ├── sls.svg │ │ ├── smart.svg │ │ ├── sngls.svg │ │ ├── snm.svg │ │ ├── snt.svg │ │ ├── snx.svg │ │ ├── soc.svg │ │ ├── sol.svg │ │ ├── spacehbit.svg │ │ ├── spank.svg │ │ ├── sphtx.svg │ │ ├── srn.svg │ │ ├── stak.svg │ │ ├── start.svg │ │ ├── steem.svg │ │ ├── storj.svg │ │ ├── storm.svg │ │ ├── stox.svg │ │ ├── stq.svg │ │ ├── strat.svg │ │ ├── stx.svg │ │ ├── sub.svg │ │ ├── sumo.svg │ │ ├── susd.svg │ │ ├── sushi.svg │ │ ├── sys.svg │ │ ├── taas.svg │ │ ├── tau.svg │ │ ├── tbx.svg │ │ ├── tel.svg │ │ ├── ten.svg │ │ ├── tern.svg │ │ ├── tgch.svg │ │ ├── theta.svg │ │ ├── tix.svg │ │ ├── tkn.svg │ │ ├── tks.svg │ │ ├── tnb.svg │ │ ├── tnc.svg │ │ ├── tnt.svg │ │ ├── tomo.svg │ │ ├── torn.svg │ │ ├── tpay.svg │ │ ├── trig.svg │ │ ├── trtl.svg │ │ ├── trx.svg │ │ ├── tusd.svg │ │ ├── tzc.svg │ │ ├── ubq.svg │ │ ├── uma.svg │ │ ├── uni.svg │ │ ├── unity.svg │ │ ├── usd.svg │ │ ├── usdc-heco.svg │ │ ├── usdc.svg │ │ ├── usdt.svg │ │ ├── usdtheco.svg │ │ ├── utk.svg │ │ ├── veri.svg │ │ ├── vet.svg │ │ ├── via.svg │ │ ├── vib.svg │ │ ├── vibe.svg │ │ ├── vivo.svg │ │ ├── vrc.svg │ │ ├── vrsc.svg │ │ ├── vtc.svg │ │ ├── vtho.svg │ │ ├── wabi.svg │ │ ├── wan.svg │ │ ├── waves.svg │ │ ├── wax.svg │ │ ├── wbtc.svg │ │ ├── weth.svg │ │ ├── wgr.svg │ │ ├── wicc.svg │ │ ├── wings.svg │ │ ├── wmatic.svg │ │ ├── wpr.svg │ │ ├── wtc.svg │ │ ├── wxdai.svg │ │ ├── x.svg │ │ ├── xas.svg │ │ ├── xaut.svg │ │ ├── xbc.svg │ │ ├── xbp.svg │ │ ├── xby.svg │ │ ├── xcp.svg │ │ ├── xdai.svg │ │ ├── xdn.svg │ │ ├── xem.svg │ │ ├── xin.svg │ │ ├── xlm.svg │ │ ├── xmcc.svg │ │ ├── xmg.svg │ │ ├── xmo.svg │ │ ├── xmr.svg │ │ ├── xmy.svg │ │ ├── xp.svg │ │ ├── xpa.svg │ │ ├── xpm.svg │ │ ├── xpr.svg │ │ ├── xrp.svg │ │ ├── xsg.svg │ │ ├── xsushi.svg │ │ ├── xtz.svg │ │ ├── xuc.svg │ │ ├── xvc.svg │ │ ├── xvg.svg │ │ ├── xzc.svg │ │ ├── yfi.svg │ │ ├── yfii.svg │ │ ├── yoyow.svg │ │ ├── zcl.svg │ │ ├── zec.svg │ │ ├── zel.svg │ │ ├── zen.svg │ │ ├── zest.svg │ │ ├── zil.svg │ │ ├── zilla.svg │ │ └── zrx.svg │ │ ├── flags │ │ ├── cn.svg │ │ ├── eth.svg │ │ ├── jp.svg │ │ ├── ru.svg │ │ ├── tw.svg │ │ ├── usa.svg │ │ └── usd.svg │ │ ├── networks │ │ ├── arbitrum.svg │ │ ├── avalanche.svg │ │ ├── boba.svg │ │ ├── bsc.svg │ │ ├── celo.svg │ │ ├── ethereum.svg │ │ ├── ethereum2.svg │ │ ├── ethereum3.svg │ │ ├── fantom.svg │ │ ├── goerli.svg │ │ ├── heco.svg │ │ ├── kovan.svg │ │ ├── mumbai.svg │ │ ├── okex.svg │ │ ├── optimism.svg │ │ ├── polygon.svg │ │ ├── rinkeby.svg │ │ ├── ropsten.svg │ │ ├── smartbch.svg │ │ ├── xdai.svg │ │ └── zksync.svg │ │ └── touchbar │ │ ├── eth.png │ │ ├── gas-station.png │ │ └── scan.png ├── backend │ ├── App.ts │ ├── AppMenu.ts │ ├── CryptoRandom.ts │ ├── DeepLinkHandler.ts │ ├── Store.ts │ ├── Updater.ts │ ├── lib │ │ ├── Biometrics.ts │ │ ├── WalletConnect.spec.ts │ │ ├── WalletConnect.ts │ │ ├── WalletKey.spec.ts │ │ └── WalletKey.ts │ ├── mans │ │ ├── DBMan.ts │ │ ├── KeyMan.ts │ │ ├── TxMan.ts │ │ ├── TxNotification.ts │ │ ├── WCMan.ts │ │ └── index.ts │ └── models │ │ ├── Key.ts │ │ ├── Transaction.ts │ │ ├── Types.ts │ │ └── WCSession.ts ├── common │ ├── .wallet3.rc.example.json │ ├── Cipher.spec.ts │ ├── Cipher.ts │ ├── Constants.ts │ ├── ERC20Token.ts │ ├── Messages.ts │ ├── Mnemonic.spec.ts │ ├── Mnemonic.ts │ ├── Networks.ts │ ├── Provider.ts │ ├── Secrets.example.ts │ └── TxParser.ts ├── declartions.d.ts ├── gas │ ├── BscGas.ts │ ├── CheapStation.ts │ ├── EIP1559Price.ts │ ├── Gasnow.ts │ ├── PolygonGasStation.ts │ └── index.ts ├── i18n │ ├── index.ts │ └── translations │ │ ├── en.json │ │ ├── jp.json │ │ ├── ru.json │ │ ├── zh-CN.json │ │ └── zh-TW.json ├── index.css ├── index.html ├── index.tsx ├── main.ts ├── misc │ ├── Helper.ts │ ├── PartnerTokens.ts │ ├── Tokens.ts │ └── Url.ts ├── nft │ ├── POAP.ts │ └── Rarible.ts ├── popup_index.tsx ├── popup_renderer.ts ├── preload.ts ├── renderer.ts └── ui │ ├── App.css │ ├── App.tsx │ ├── Popup.tsx │ ├── bridges │ ├── Clipboard.ts │ ├── Crypto.ts │ ├── DesktopCapturer.ts │ ├── IPC.ts │ ├── Notification.ts │ ├── Secure.ts │ ├── Shell.ts │ └── Window.ts │ ├── components │ ├── Copy.css │ ├── Copy.tsx │ ├── Image.tsx │ ├── Logo.tsx │ ├── Mnemonic.css │ ├── Mnemonic.tsx │ ├── NavBar.css │ ├── NavBar.tsx │ ├── NetworkLabel.css │ ├── NetworkLabel.tsx │ ├── NetworkMenu.css │ ├── NetworkMenu.tsx │ ├── PasscodeView.css │ ├── PasscodeView.tsx │ ├── PopupTitle.css │ ├── PopupTitle.tsx │ ├── TitleBar.css │ ├── TitleBar.tsx │ ├── TokenLabel.css │ ├── TokenLabel.tsx │ ├── TouchIDView.css │ ├── TouchIDView.tsx │ ├── Validation.css │ ├── Validation.tsx │ └── index.ts │ ├── misc │ ├── Anime.ts │ ├── Formatter.ts │ ├── Icons.ts │ ├── KnownAddresses.ts │ └── ScreenScanner.ts │ ├── pages │ ├── app │ │ ├── Account.css │ │ ├── Account.tsx │ │ ├── AddToken.css │ │ ├── AddToken.tsx │ │ ├── ConnectedDApp.css │ │ ├── ConnectedDApp.tsx │ │ ├── ConnectedDApps.css │ │ ├── ConnectedDApps.tsx │ │ ├── CustomizeNetwork.css │ │ ├── CustomizeNetwork.tsx │ │ ├── DApps123.css │ │ ├── DApps123.tsx │ │ ├── History.css │ │ ├── History.tsx │ │ ├── Networks.css │ │ ├── Networks.tsx │ │ ├── Settings.css │ │ ├── Settings.tsx │ │ ├── Swap.css │ │ ├── Swap.tsx │ │ ├── Transaction.css │ │ ├── Transaction.tsx │ │ ├── Transfer.css │ │ ├── Transfer.tsx │ │ ├── TransferNFT.css │ │ ├── TransferNFT.tsx │ │ ├── UserNFTs.css │ │ ├── UserNFTs.tsx │ │ ├── UserTokens.css │ │ ├── UserTokens.tsx │ │ ├── Wallet.css │ │ ├── Wallet.tsx │ │ ├── components │ │ │ ├── ConnectedAppsIndicator.css │ │ │ ├── ConnectedAppsIndicator.tsx │ │ │ ├── ConnectedDAppLabel.css │ │ │ ├── ConnectedDAppLabel.tsx │ │ │ ├── DisplayCurrency.css │ │ │ ├── DisplayCurrency.tsx │ │ │ ├── PendingTxIndicator.css │ │ │ ├── PendingTxIndicator.tsx │ │ │ ├── PendingTxLabel.css │ │ │ ├── PendingTxLabel.tsx │ │ │ ├── TxDetails.css │ │ │ ├── TxDetails.tsx │ │ │ ├── UtilityBar.css │ │ │ ├── UtilityBar.tsx │ │ │ ├── WalletConnectIndicator.css │ │ │ └── WalletConnectIndicator.tsx │ │ └── index.ts │ ├── layouts │ │ ├── MainLayout.css │ │ └── MainLayout.tsx │ ├── login │ │ ├── About.css │ │ ├── About.tsx │ │ ├── Authentication.css │ │ ├── Authentication.tsx │ │ ├── Blank.css │ │ ├── Blank.tsx │ │ ├── GenerateMnemonic.css │ │ ├── GenerateMnemonic.tsx │ │ ├── ImportMnemonic.css │ │ ├── ImportMnemonic.tsx │ │ ├── SetupPasscode.css │ │ ├── SetupPasscode.tsx │ │ ├── Welcome.css │ │ ├── Welcome.tsx │ │ └── index.ts │ ├── popup │ │ ├── Auth.css │ │ ├── Auth.tsx │ │ ├── ConfirmTx.css │ │ ├── ConfirmTx.tsx │ │ ├── ConnectDapp.css │ │ ├── ConnectDapp.tsx │ │ ├── ConnectingDApp.css │ │ ├── ConnectingDApp.tsx │ │ ├── MessageBox.css │ │ ├── MessageBox.tsx │ │ ├── QRScanner.css │ │ ├── QRScanner.tsx │ │ ├── Unsupported.css │ │ ├── Unsupported.tsx │ │ ├── confirms │ │ │ ├── ApproveView.tsx │ │ │ ├── AuthView.css │ │ │ ├── AuthView.tsx │ │ │ ├── SignView.css │ │ │ ├── SignView.tsx │ │ │ └── TransferView.tsx │ │ └── index.ts │ └── security │ │ ├── BackupMnemonic.css │ │ ├── BackupMnemonic.tsx │ │ ├── Reset.css │ │ ├── Reset.tsx │ │ └── index.ts │ └── viewmodels │ ├── AccountVM.ts │ ├── Application.ts │ ├── ApplicationPopup.ts │ ├── DAppsVM.ts │ ├── MnemonicVM.ts │ ├── NetworksVM.ts │ ├── SwapVM.ts │ ├── WalletVM.ts │ ├── account │ ├── AddTokenVM.ts │ └── TransferVM.ts │ ├── models │ ├── NFT.ts │ └── UserToken.ts │ ├── popups │ ├── ConfirmVM.ts │ ├── ConnectDappVM.ts │ ├── MessageBoxVM.ts │ └── SignVM.ts │ ├── services │ ├── EIP1559.ts │ └── Tx.ts │ ├── settings │ ├── CurrencyVM.ts │ └── LangsVM.ts │ ├── swap │ └── Stableswap.ts │ └── wallet │ ├── DAppVM.ts │ ├── HistoryTxsVM.ts │ └── PendingTxVM.ts ├── tsconfig.json ├── webpack.main.config.js ├── webpack.plugins.js ├── webpack.renderer.config.js ├── webpack.rules.js └── yarn.lock /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | "node": true 6 | }, 7 | "extends": [ 8 | "eslint:recommended", 9 | "plugin:@typescript-eslint/eslint-recommended", 10 | "plugin:@typescript-eslint/recommended", 11 | "plugin:import/errors", 12 | "plugin:import/warnings" 13 | ], 14 | "parser": "@typescript-eslint/parser", 15 | "rules": { 16 | "import/no-unresolved": "off", 17 | "@typesript-eslint/no-var-requires": "true" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": true, 4 | "printWidth": 127 5 | } 6 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/.vscode/settings.json -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ### 1.1.0 2 | 1. Support tx history 3 | 2. Optimize RPC providers selection 4 | 3. Mirror bugs fixes 5 | 6 | ### 1.0.0 7 | 8 | 0. Security First 9 | 1. Support Layer 2 and EVM-compatible chains 10 | 2. Connect DeFi apps with WalletConnect 11 | 3. UX-friendly Design 12 | 4. Support TouchBar 13 | 5. Real-time gas price for Mac users -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | You are granted a limited non-exclusive license to inspect and study the code in this repository. There is no associated right to reproduction granted under this license except where reproduction is necessary for inspection and study of the code. You may not otherwise reproduce, distribute, modify or create derivative works 2 | 3 | © ChainBow Co., Ltd. -------------------------------------------------------------------------------- /assets/AppIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/assets/AppIcon.icns -------------------------------------------------------------------------------- /assets/AppIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/assets/AppIcon.ico -------------------------------------------------------------------------------- /assets/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/assets/AppIcon.png -------------------------------------------------------------------------------- /assets/DMGBG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/assets/DMGBG.png -------------------------------------------------------------------------------- /assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/assets/StoreLogo.png -------------------------------------------------------------------------------- /assets/Wallet3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/assets/Wallet3.png -------------------------------------------------------------------------------- /assets/win/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/assets/win/AppIcon.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-typescript'], 3 | }; 4 | -------------------------------------------------------------------------------- /bindings/noble-bindings.js: -------------------------------------------------------------------------------- 1 | const events = require('events'); 2 | const util = require('util'); 3 | 4 | const NobleMac = require('@abandonware/noble/lib/mac/native/binding.node').NobleMac; 5 | 6 | util.inherits(NobleMac, events.EventEmitter); 7 | 8 | module.exports = NobleMac; 9 | -------------------------------------------------------------------------------- /bindings/sqlite3-binding.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | function getFiles(dir) { 5 | const entries = fs.readdirSync(dir, { withFileTypes: true }); 6 | 7 | const files = entries.filter((file) => !file.isDirectory()).map((file) => ({ ...file, path: path.join(dir, file.name) })); 8 | 9 | const folders = entries.filter((folder) => folder.isDirectory()); 10 | 11 | for (const folder of folders) files.push(...getFiles(path.join(dir, folder.name))); 12 | 13 | return files; 14 | } 15 | 16 | const node_modules = path.resolve('./') + '/node_modules/sqlite3'; 17 | const files = getFiles(node_modules); 18 | 19 | const lib = files.find((f) => f.path.endsWith('node_sqlite3.node')); 20 | 21 | const binding = require(lib.path); 22 | module.exports = exports = binding; 23 | -------------------------------------------------------------------------------- /build/appx/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square150x150Logo.png -------------------------------------------------------------------------------- /build/appx/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /build/appx/Square150x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square150x150Logo.scale-125.png -------------------------------------------------------------------------------- /build/appx/Square150x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square150x150Logo.scale-150.png -------------------------------------------------------------------------------- /build/appx/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /build/appx/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /build/appx/Square310x310Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square310x310Logo.scale-100.png -------------------------------------------------------------------------------- /build/appx/Square310x310Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square310x310Logo.scale-125.png -------------------------------------------------------------------------------- /build/appx/Square310x310Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square310x310Logo.scale-150.png -------------------------------------------------------------------------------- /build/appx/Square310x310Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square310x310Logo.scale-200.png -------------------------------------------------------------------------------- /build/appx/Square310x310Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square310x310Logo.scale-400.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-16.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-20.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-24.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-256.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-30.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-32.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-36.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-40.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-48.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-60.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-64.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-72.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-80.png -------------------------------------------------------------------------------- /build/appx/Square44x44Logo.targetsize-96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square44x44Logo.targetsize-96.png -------------------------------------------------------------------------------- /build/appx/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square71x71Logo.png -------------------------------------------------------------------------------- /build/appx/Square71x71Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square71x71Logo.scale-100.png -------------------------------------------------------------------------------- /build/appx/Square71x71Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square71x71Logo.scale-125.png -------------------------------------------------------------------------------- /build/appx/Square71x71Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square71x71Logo.scale-150.png -------------------------------------------------------------------------------- /build/appx/Square71x71Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square71x71Logo.scale-200.png -------------------------------------------------------------------------------- /build/appx/Square71x71Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Square71x71Logo.scale-400.png -------------------------------------------------------------------------------- /build/appx/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/StoreLogo.png -------------------------------------------------------------------------------- /build/appx/StoreLogo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/StoreLogo.scale-150.png -------------------------------------------------------------------------------- /build/appx/StoreLogo.scale-300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/StoreLogo.scale-300.png -------------------------------------------------------------------------------- /build/appx/StoreLogo.scale-71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/StoreLogo.scale-71.png -------------------------------------------------------------------------------- /build/appx/Wide310x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/build/appx/Wide310x150Logo.png -------------------------------------------------------------------------------- /docs/MAS.md: -------------------------------------------------------------------------------- 1 | https://github.com/electron-userland/electron-builder/issues/4553#issuecomment-623451338 2 | 3 | Strictly pair provision profile and Mac App Store Certification(keychain), Serial Number must be the same. -------------------------------------------------------------------------------- /docs/Security Refs.md: -------------------------------------------------------------------------------- 1 | 1. https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web 2 | 2. https://support.apple.com/en-ie/guide/security/seca0c73a75b/web -------------------------------------------------------------------------------- /docs/flowcharts/IPC Security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/docs/flowcharts/IPC Security.png -------------------------------------------------------------------------------- /docs/flowcharts/Init App.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/docs/flowcharts/Init App.png -------------------------------------------------------------------------------- /docs/tools.md: -------------------------------------------------------------------------------- 1 | https://www.convertico.com -------------------------------------------------------------------------------- /sign/appSign.example.js: -------------------------------------------------------------------------------- 1 | const appleId = ''; 2 | const appleIdPassword = ''; 3 | 4 | module.exports = { appleId, appleIdPassword }; 5 | -------------------------------------------------------------------------------- /sign/entitlements.mas.inherit.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.inherit 8 | 9 | 10 | -------------------------------------------------------------------------------- /sign/entitlements.mas.loginhelper.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.inherit 8 | 9 | 10 | -------------------------------------------------------------------------------- /sign/entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-jit 6 | 7 | com.apple.security.cs.allow-unsigned-executable-memory 8 | 9 | com.apple.security.network.client 10 | 11 | com.apple.security.cs.disable-library-validation 12 | 13 | com.apple.security.application-groups 14 | 15 | Z3N6SZF439.jp.co.chainbow.wallet3 16 | 17 | 18 | -------------------------------------------------------------------------------- /sign/winSign.example.js: -------------------------------------------------------------------------------- 1 | const publisher = 'CN='; 2 | const devCertPath = undefined; // Win path string 3 | const certPassword = ''; 4 | 5 | module.exports = { publisher, devCertPath, certPassword }; 6 | -------------------------------------------------------------------------------- /src/assets/icons/3rd/coingecko.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/coingecko.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/gasnow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/gasnow.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/alpaca finance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/alpaca finance.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/bao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/bao.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/coco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/coco.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/comethswap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/comethswap.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/curve.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/dfi.money.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/dfi.money.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/dodo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/dodo.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/ellipsis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/ellipsis.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/kyber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/kyber.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/liquity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/liquity.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/matcha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/matcha.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/mdex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/mdex.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/opyn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/opyn.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/quickswap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/quickswap.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/sushiswap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/sushiswap.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/venus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/3rd/logos/venus.png -------------------------------------------------------------------------------- /src/assets/icons/3rd/logos/xdai bridge.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/assets/icons/app/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/app/AppIcon.png -------------------------------------------------------------------------------- /src/assets/icons/app/AppIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/app/AppIcon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/app/AppIcon_256.png -------------------------------------------------------------------------------- /src/assets/icons/app/tray_darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/app/tray_darwin.png -------------------------------------------------------------------------------- /src/assets/icons/app/tray_linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/app/tray_linux.png -------------------------------------------------------------------------------- /src/assets/icons/app/tray_win32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/app/tray_win32.png -------------------------------------------------------------------------------- /src/assets/icons/app/win-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/act.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/add.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/adx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/algo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/apex.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ardr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ast.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/atm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/audr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/auto.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/band.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bcn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bcpt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/beam.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bela.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/blcn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/block.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bnt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bond.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/brd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/bsd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/btcd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/btm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/burst.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/busd.svg: -------------------------------------------------------------------------------- 1 | Asset 1 -------------------------------------------------------------------------------- /src/assets/icons/crypto/bze.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cdt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/chain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cix.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cmm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cnd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cny.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cob.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cream.svg: -------------------------------------------------------------------------------- 1 | Asset 2 -------------------------------------------------------------------------------- /src/assets/icons/crypto/cred.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/crv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ctr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/cvc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dcn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dcr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dgd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dlt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/doge.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/drgn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dta.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/dtr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/edo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ela.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/elec.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/elix.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ella.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/emb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/emc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/emc2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/eop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/eos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/equa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/etc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/eth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/eur.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/exmo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/feth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/flux.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ftm.svg: -------------------------------------------------------------------------------- 1 | fa -------------------------------------------------------------------------------- /src/assets/icons/crypto/ftt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/fuel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/game.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gas.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gbp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gbx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gbyte.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/generic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gsc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gup.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gusd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/gvt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/hight.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/hltc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ht.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/html.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/huc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/icn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/icx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ignis.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ilk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/iost.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/jnt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/jpy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/kcs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/knc.svg: -------------------------------------------------------------------------------- 1 | kyber-network-knc-logo -------------------------------------------------------------------------------- /src/assets/icons/crypto/kor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/krb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/lbc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ldo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/lend.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/link.svg: -------------------------------------------------------------------------------- 1 | Asset 1 -------------------------------------------------------------------------------- /src/assets/icons/crypto/lkk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/lpt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/lrc.svg: -------------------------------------------------------------------------------- 1 | loopring-lrc-logo -------------------------------------------------------------------------------- /src/assets/icons/crypto/lsk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ltc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/maid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mco.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mda.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/med.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mft.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mln.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mnx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/moac.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mod.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mona.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/msr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mth.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mtl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/music.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/mzc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nav.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/neo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/neos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/neu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nexo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ngc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nlc2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nlg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nmc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/npxs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ntbc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nuls.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/nxs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/oeth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/omni.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ong.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ont.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/oxt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/pasc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/pasl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/pay.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/payx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/pink.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/pivx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/plr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/poa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/poly.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ppc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ppt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/pura.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/qsp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/r.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/rads.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/rap.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/rdd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/rdn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/repv2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/req.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/rise.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/rpx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/rub.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ryo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sai.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/salt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sand.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sberbank.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/shift.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sib.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/skl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sky.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sngls.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/snt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sol.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sphtx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/stak.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/storm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/stox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/stx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sumo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/sys.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/taas.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/tbx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/tel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/theta.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/tkn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/tnc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/tnt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/trx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/tzc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/ubq.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/usd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/utk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/vet.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/via.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/vib.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/vivo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/vrc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/vtc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/vtho.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/wan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/waves.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/wax.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/weth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/wings.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/wpr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xas.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xdn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xlm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xmcc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xmg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xmo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xmr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xpa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xpm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xrp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xuc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xvc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xvg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/xzc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/zec.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/zel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/crypto/zil.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/flags/eth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/icons/flags/jp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/assets/icons/flags/ru.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/icons/networks/fantom.svg: -------------------------------------------------------------------------------- 1 | fa -------------------------------------------------------------------------------- /src/assets/icons/networks/zksync.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/assets/icons/touchbar/eth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/touchbar/eth.png -------------------------------------------------------------------------------- /src/assets/icons/touchbar/gas-station.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/touchbar/gas-station.png -------------------------------------------------------------------------------- /src/assets/icons/touchbar/scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wallet3/Wallet3-Desktop/7ce83af25b7ec6b56f8482ceadcf1db7ae02d7ee/src/assets/icons/touchbar/scan.png -------------------------------------------------------------------------------- /src/backend/CryptoRandom.ts: -------------------------------------------------------------------------------- 1 | import crypto from 'crypto'; 2 | 3 | if (!global.crypto) { 4 | const selfCrypto = {}; 5 | 6 | const getRandomValues = (array: Array | Buffer) => { 7 | let length = array.length; 8 | let random = crypto.randomBytes(length); 9 | random.forEach((value, index) => { 10 | array[index] = value; 11 | }); 12 | 13 | return array; 14 | }; 15 | 16 | Object.defineProperty(selfCrypto, 'getRandomValues', { 17 | enumerable: false, 18 | value: getRandomValues, 19 | writable: false, 20 | }); 21 | 22 | Object.defineProperty(global, 'crypto', { 23 | enumerable: true, 24 | value: selfCrypto, 25 | writable: false, 26 | }); 27 | } 28 | -------------------------------------------------------------------------------- /src/backend/mans/index.ts: -------------------------------------------------------------------------------- 1 | import DBMan from './DBMan'; 2 | import KeyMan from './KeyMan'; 3 | import TxMan from './TxMan'; 4 | import TxNotification from './TxNotification'; 5 | 6 | export { DBMan, KeyMan, TxMan, TxNotification }; 7 | -------------------------------------------------------------------------------- /src/backend/models/Types.ts: -------------------------------------------------------------------------------- 1 | // export enum AccountType { 2 | // mnemonic = 0, 3 | // privkey = 1, 4 | // keystore = 2, 5 | // } 6 | -------------------------------------------------------------------------------- /src/backend/models/WCSession.ts: -------------------------------------------------------------------------------- 1 | import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; 2 | 3 | @Entity({ name: 'dapps' }) 4 | export default class WCSession extends BaseEntity { 5 | @PrimaryGeneratedColumn() 6 | id: number; 7 | 8 | @Column({ type: 'simple-json' }) 9 | session: IRawWcSession; 10 | 11 | @Column() 12 | userChainId: number; 13 | 14 | @Column() 15 | lastUsedTimestamp: number; 16 | 17 | @Column() 18 | keyId: number; 19 | } 20 | -------------------------------------------------------------------------------- /src/common/Cipher.spec.ts: -------------------------------------------------------------------------------- 1 | import * as helper from './Cipher'; 2 | 3 | test('encrypt', () => { 4 | const [iv, encrypted] = helper.encrypt('abc', 'abc'); 5 | expect(helper.decrypt(iv, encrypted, 'abc')).toBe('abc'); 6 | }); 7 | 8 | test('encrypt by buffer', () => { 9 | const pw = helper.generateIv(); 10 | const [iv, encrypted] = helper.encrypt('abc', pw); 11 | expect(helper.decrypt(iv, encrypted, pw)).toBe('abc'); 12 | }); 13 | 14 | test('wrong password', () => { 15 | const pw1 = helper.generateIv(); 16 | const pw2 = helper.generateIv(); 17 | const [iv, encrypted] = helper.encrypt('aaa', pw1); 18 | expect(helper.decrypt(iv, encrypted, pw2)).not.toBe('aaa'); 19 | }); 20 | -------------------------------------------------------------------------------- /src/common/Constants.ts: -------------------------------------------------------------------------------- 1 | export const Gwei_10 = 10000000000; 2 | export const Gwei_20 = 20000000000; 3 | export const Gwei_1 = 1000000000; 4 | export const Gwei_5 = 5000000000; 5 | 6 | export const MAX_GWEI_PRICE = 9007199; 7 | -------------------------------------------------------------------------------- /src/common/Mnemonic.spec.ts: -------------------------------------------------------------------------------- 1 | import * as ethers from 'ethers'; 2 | 3 | import { langToWordlist } from './Mnemonic'; 4 | 5 | test('chinese test', () => { 6 | const s = '泰 浸 钉 信 堵 连 掌 仲 司 硬 桥 勾'; 7 | const wl = langToWordlist(s); 8 | console.log(wl, wl.getWord(5)); 9 | expect(wl).toStrictEqual(ethers.wordlists.zh); 10 | }); 11 | -------------------------------------------------------------------------------- /src/common/Secrets.example.ts: -------------------------------------------------------------------------------- 1 | export const DebankApiKey = ''; 2 | -------------------------------------------------------------------------------- /src/gas/BscGas.ts: -------------------------------------------------------------------------------- 1 | import { Gwei_1 } from './Gasnow'; 2 | import { makeAutoObservable } from 'mobx'; 3 | 4 | class BscGas { 5 | rapid = 10 * Gwei_1; 6 | fast = 5 * Gwei_1; 7 | standard = 5 * Gwei_1; 8 | 9 | get rapidGwei() { 10 | return this.rapid / Gwei_1; 11 | } 12 | 13 | get fastGwei() { 14 | return this.fast / Gwei_1; 15 | } 16 | 17 | get standardGwei() { 18 | return this.standard / Gwei_1; 19 | } 20 | 21 | constructor() { 22 | makeAutoObservable(this); 23 | } 24 | 25 | refresh() {} 26 | } 27 | 28 | export default new BscGas(); 29 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Wallet 3 6 | 7 | 8 | 17 | 18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /src/misc/Helper.ts: -------------------------------------------------------------------------------- 1 | function hex2str(hex: string) { 2 | var hex = hex.toString(); //force conversion 3 | var str = ''; 4 | for (var i = 0; i < hex.length && hex.substr(i, 2) !== '00'; i += 2) 5 | str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); 6 | return str; 7 | } 8 | -------------------------------------------------------------------------------- /src/misc/PartnerTokens.ts: -------------------------------------------------------------------------------- 1 | export const CSS = { 2 | address: '0x28fB9FCf7cF7a67d05bD19fFBEc17578c0dE63d3', 3 | decimals: 8, 4 | symbol: 'CSS', 5 | }; 6 | 7 | export const PartnerTokens = [CSS]; 8 | -------------------------------------------------------------------------------- /src/popup_renderer.ts: -------------------------------------------------------------------------------- 1 | import './popup_index'; 2 | -------------------------------------------------------------------------------- /src/ui/App.css: -------------------------------------------------------------------------------- 1 | div#app { 2 | display: grid; 3 | position: relative; 4 | overflow: hidden; 5 | /* background-color: deeppink; */ 6 | } 7 | 8 | #app > .system-title-bar { 9 | position: fixed; 10 | z-index: 9999999999999; 11 | top: 12px; 12 | right: 12px; 13 | } 14 | -------------------------------------------------------------------------------- /src/ui/bridges/Clipboard.ts: -------------------------------------------------------------------------------- 1 | const KEY = 'wallet3_clipboard'; 2 | 3 | interface ClipboardApi { 4 | writeText(content: string): string; 5 | readText(type?: 'selection' | 'clipboard'): string; 6 | } 7 | 8 | const api = window[KEY] as ClipboardApi; 9 | 10 | export default api; 11 | -------------------------------------------------------------------------------- /src/ui/bridges/Crypto.ts: -------------------------------------------------------------------------------- 1 | const KEY = 'wallet3_crypto'; 2 | 3 | interface CryptoApi { 4 | sha256(content: string): string; 5 | } 6 | 7 | const crypto = window[KEY] as CryptoApi; 8 | 9 | export default crypto; 10 | -------------------------------------------------------------------------------- /src/ui/bridges/IPC.ts: -------------------------------------------------------------------------------- 1 | const KEY = 'wallet3_ipc'; 2 | 3 | interface ContextBridgeApi { 4 | invoke(channel: string, args?: any): Promise; 5 | invokeSecure(channel: string, objArg?: any): Promise; 6 | on(channel: string, listener: (event: any, ...arg: any[]) => void): void; 7 | once(channel: string, listener: (event: any, ...arg: any[]) => void): void; 8 | } 9 | 10 | const bridge = window[KEY] as ContextBridgeApi; 11 | 12 | export default bridge; 13 | -------------------------------------------------------------------------------- /src/ui/bridges/Secure.ts: -------------------------------------------------------------------------------- 1 | const KEY = 'wallet3_secure'; 2 | 3 | interface SecureApi {} 4 | 5 | const api = window[KEY] as SecureApi; 6 | 7 | export default api; 8 | -------------------------------------------------------------------------------- /src/ui/bridges/Shell.ts: -------------------------------------------------------------------------------- 1 | const KEY = 'wallet3_shell'; 2 | 3 | interface ShellApi { 4 | open(url: string): string; 5 | } 6 | 7 | const api = window[KEY] as ShellApi; 8 | 9 | export default api; 10 | -------------------------------------------------------------------------------- /src/ui/bridges/Window.ts: -------------------------------------------------------------------------------- 1 | const KEY = 'wallet3_window'; 2 | 3 | interface WindowApi { 4 | maximize(): void; 5 | minimize(): void; 6 | } 7 | 8 | const api = window[KEY] as WindowApi; 9 | 10 | export default api; 11 | -------------------------------------------------------------------------------- /src/ui/components/Copy.css: -------------------------------------------------------------------------------- 1 | div.copy { 2 | display: inline-block; 3 | width: 11px; 4 | height: 11px; 5 | cursor: pointer; 6 | } 7 | 8 | div.copy img { 9 | width: 11px !important; 10 | height: 11px !important; 11 | margin: 0 3px !important; 12 | padding: 0 !important; 13 | } 14 | -------------------------------------------------------------------------------- /src/ui/components/Mnemonic.css: -------------------------------------------------------------------------------- 1 | table.mnemonic, 2 | table.mnemonic td { 3 | border: 1px solid var(--border-color); 4 | font-size: 15px; 5 | text-align: center; 6 | font-weight: 500; 7 | transition: all 0.3s; 8 | } 9 | 10 | table.mnemonic td > div { 11 | padding: 8px 0; 12 | position: relative; 13 | } 14 | 15 | table.mnemonic td > div > .word { 16 | filter: blur(7px); 17 | transition: all 0.3s; 18 | } 19 | 20 | table.mnemonic td:hover .word { 21 | filter: blur(0); 22 | } 23 | 24 | table.mnemonic td > div > .no { 25 | position: absolute; 26 | left: 1px; 27 | top: 0; 28 | font-size: 7px; 29 | opacity: 0.35; 30 | } 31 | -------------------------------------------------------------------------------- /src/ui/components/NavBar.css: -------------------------------------------------------------------------------- 1 | .nav { 2 | display: flex; 3 | color: var(--font-color); 4 | align-items: center; 5 | padding-top: 10px; 6 | -webkit-app-region: drag; 7 | } 8 | 9 | .nav > button { 10 | padding: 0 !important; 11 | } 12 | 13 | .nav > button:hover { 14 | color: var(--theme-color-05) !important; 15 | background-color: transparent !important; 16 | } 17 | 18 | .nav > button svg { 19 | margin-left: -1px; 20 | } 21 | 22 | .nav > h3 { 23 | margin: 8px 0; 24 | margin-left: 8px; 25 | } 26 | -------------------------------------------------------------------------------- /src/ui/components/NavBar.tsx: -------------------------------------------------------------------------------- 1 | import './NavBar.css'; 2 | 3 | import FeatherIcon from 'feather-icons-react'; 4 | import React from 'react'; 5 | 6 | interface Props { 7 | onBackClick?: () => void; 8 | title: string; 9 | } 10 | 11 | export default (props: Props) => { 12 | return ( 13 |
14 | 17 |

{props.title}

18 |
19 | ); 20 | }; 21 | -------------------------------------------------------------------------------- /src/ui/components/NetworkMenu.css: -------------------------------------------------------------------------------- 1 | .menu-button.networks { 2 | -webkit-app-region: no-drag; 3 | } 4 | 5 | .rc-menu { 6 | min-width: 6rem; 7 | } 8 | 9 | .rc-menu__submenu { 10 | font-size: 12px !important; 11 | font-weight: 400 !important; 12 | } 13 | 14 | .rc-menu__submenu > .rc-menu__item::after { 15 | content: ''; 16 | } 17 | 18 | .networks-menu .rc-menu__submenu > .rc-menu__item { 19 | padding: 0; 20 | } 21 | -------------------------------------------------------------------------------- /src/ui/components/PasscodeView.css: -------------------------------------------------------------------------------- 1 | div.passcode-view { 2 | display: grid; 3 | grid-template-rows: auto 1fr; 4 | height: auto; 5 | width: 100%; 6 | text-align: center; 7 | vertical-align: middle; 8 | padding-right: 3px; 9 | } 10 | 11 | div.passcode-view > div { 12 | margin-right: 2px; 13 | } 14 | 15 | div.passcode-view > p { 16 | font-size: 15px; 17 | margin: 0; 18 | margin-bottom: 16px; 19 | display: flex; 20 | align-items: center; 21 | justify-content: center; 22 | color: var(--font-color-title); 23 | } 24 | -------------------------------------------------------------------------------- /src/ui/components/TokenLabel.css: -------------------------------------------------------------------------------- 1 | .token-label { 2 | display: flex; 3 | align-items: center; 4 | text-transform: uppercase; 5 | font-size: 12px; 6 | line-height: 12px; 7 | padding-top: 1px; 8 | } 9 | 10 | .token-label > img { 11 | width: 12px; 12 | height: 12px; 13 | margin-right: 4px; 14 | } 15 | 16 | .token-label.expand > img { 17 | margin-right: 8px; 18 | } 19 | -------------------------------------------------------------------------------- /src/ui/components/TokenLabel.tsx: -------------------------------------------------------------------------------- 1 | import './TokenLabel.css'; 2 | 3 | import { CryptoIcons } from '../misc/Icons'; 4 | import React from 'react'; 5 | 6 | export default ({ symbol, name, expand, label }: { symbol: string; name: string; expand?: boolean; label?: string }) => { 7 | return ( 8 |
9 | {name} 10 | {name} 11 |
12 | ); 13 | }; 14 | -------------------------------------------------------------------------------- /src/ui/components/TouchIDView.css: -------------------------------------------------------------------------------- 1 | div.touchid-view { 2 | display: grid; 3 | grid-template-rows: auto 1fr; 4 | outline: none; 5 | margin-top: 0; 6 | box-sizing: border-box; 7 | } 8 | 9 | div.touchid-view > p { 10 | font-size: 15px; 11 | margin: 0; 12 | margin-bottom: 16px; 13 | color: var(--font-color-title); 14 | text-align: center; 15 | } 16 | 17 | div.touchid-view img { 18 | width: 81px; 19 | display: inline-block; 20 | cursor: pointer; 21 | } 22 | 23 | div.touchid-view > div { 24 | transition: all 0.3s; 25 | height: 100%; 26 | display: flex; 27 | justify-content: center; 28 | align-items: flex-start; 29 | } 30 | 31 | div.touchid-view > div:hover { 32 | opacity: 0.5; 33 | } 34 | -------------------------------------------------------------------------------- /src/ui/components/TouchIDView.tsx: -------------------------------------------------------------------------------- 1 | import './TouchIDView.css'; 2 | 3 | import React, { KeyboardEventHandler, useEffect } from 'react'; 4 | 5 | import TouchID from '../../assets/icons/app/touchid.svg'; 6 | import { observer } from 'mobx-react-lite'; 7 | import { useTranslation } from 'react-i18next'; 8 | 9 | export default observer(({ onAuth }: { onAuth: () => void }) => { 10 | const { t } = useTranslation(); 11 | 12 | return ( 13 |
14 |

{t('Authenticate with Touch ID')}

15 |
16 | onAuth()} /> 17 |
18 |
19 | ); 20 | }); 21 | -------------------------------------------------------------------------------- /src/ui/components/index.ts: -------------------------------------------------------------------------------- 1 | import Copy from './Copy'; 2 | import Image from './Image'; 3 | import Logo from './Logo'; 4 | import NavBar from './NavBar'; 5 | import NetworkMenu from './NetworkMenu'; 6 | import PasscodeView from './PasscodeView'; 7 | import PopupTitle from './PopupTitle'; 8 | import TitleBar from './TitleBar'; 9 | import TouchIDView from './TouchIDView'; 10 | import Validation from './Validation'; 11 | 12 | export { Logo, NavBar, PopupTitle, Image, Validation, PasscodeView, TouchIDView, NetworkMenu, TitleBar, Copy }; 13 | -------------------------------------------------------------------------------- /src/ui/misc/Anime.ts: -------------------------------------------------------------------------------- 1 | import anime from 'animejs'; 2 | 3 | export function vibrate(targets: string, completion?: () => void) { 4 | anime({ 5 | targets, 6 | translateX: [0, '-9px', 0, '9px', 0], 7 | duration: 200, 8 | direction: 'alternate', 9 | loop: 2, 10 | easing: 'easeOutQuad', 11 | complete: completion, 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /src/ui/misc/Formatter.ts: -------------------------------------------------------------------------------- 1 | import numeral from 'numeral'; 2 | 3 | export function formatNum(value: number, symbol = '$') { 4 | const formatted = numeral(value || 0).format('0,0.00'); 5 | return `${symbol} ${formatted === 'NaN' ? '0.00' : formatted}`.trim(); 6 | } 7 | 8 | export function formatAddress(value: string, headLength = 10, tailLength = 8) { 9 | return value?.length > headLength + tailLength 10 | ? `${value.substring(0, headLength)}......${value.substring(value.length - tailLength)}` 11 | : value; 12 | } 13 | 14 | export function formatValue(value: string | number) { 15 | return `${value}`.substring(0, `${value}`.indexOf('.') + 8); 16 | } 17 | -------------------------------------------------------------------------------- /src/ui/pages/app/Transaction.css: -------------------------------------------------------------------------------- 1 | .page.pending-tx { 2 | display: grid; 3 | grid-template-rows: auto 1fr auto; 4 | } 5 | 6 | .page.pending-tx > .actions { 7 | display: grid; 8 | grid-template-columns: 1fr 1fr; 9 | column-gap: 8px; 10 | } 11 | 12 | .page.pending-tx > .actions button { 13 | display: flex; 14 | align-items: center; 15 | justify-content: center; 16 | } 17 | 18 | .page.pending-tx > .actions button > span { 19 | display: inline-block; 20 | margin: 0 4px; 21 | } 22 | -------------------------------------------------------------------------------- /src/ui/pages/app/components/ConnectedAppsIndicator.css: -------------------------------------------------------------------------------- 1 | .connectedapps-indicator { 2 | display: flex; 3 | align-items: center; 4 | font-size: 12px; 5 | } 6 | 7 | .connectedapps-indicator > span.count { 8 | font-weight: 500; 9 | margin-right: 5px; 10 | } 11 | 12 | .connectedapps-indicator > svg { 13 | margin: 0; 14 | margin-right: 1px; 15 | } 16 | 17 | #root.win32 .connectedapps-indicator > svg { 18 | margin-top: 1px; 19 | } -------------------------------------------------------------------------------- /src/ui/pages/app/components/ConnectedAppsIndicator.tsx: -------------------------------------------------------------------------------- 1 | import './ConnectedAppsIndicator.css'; 2 | 3 | import Feather from 'feather-icons-react'; 4 | import React from 'react'; 5 | import { observer } from 'mobx-react-lite'; 6 | 7 | export default observer(({ count }: { count: number }) => { 8 | return ( 9 |
10 | {count} 11 | 12 |
13 | ); 14 | }); 15 | -------------------------------------------------------------------------------- /src/ui/pages/app/components/DisplayCurrency.css: -------------------------------------------------------------------------------- 1 | .display-currency { 2 | /* display: grid; */ 3 | position: relative; 4 | display: flex; 5 | grid-template-columns: auto 1fr; 6 | align-items: center; 7 | font-size: 14px; 8 | column-gap: 6px; 9 | line-height: 1rem; 10 | } 11 | 12 | .display-currency > span { 13 | margin-bottom: -2px; 14 | } 15 | 16 | .display-currency.mini { 17 | font-size: 12px; 18 | line-height: 12px; 19 | } 20 | 21 | .display-currency.mini > span { 22 | margin-bottom: 0px; 23 | } 24 | 25 | .display-currency > img { 26 | width: 14px; 27 | height: 14px; 28 | } 29 | 30 | .display-currency.mini > img { 31 | width: 12px; 32 | height: 12px; 33 | } 34 | -------------------------------------------------------------------------------- /src/ui/pages/app/components/DisplayCurrency.tsx: -------------------------------------------------------------------------------- 1 | import './DisplayCurrency.css'; 2 | 3 | import { FlagIcons } from '../../../misc/Icons'; 4 | import React from 'react'; 5 | 6 | export default ({ flag, label, mini }: { flag?: string; label?: string; mini?: boolean }) => { 7 | return ( 8 |
9 | {flag} 10 | {label ?? flag?.toUpperCase()} 11 |
12 | ); 13 | }; 14 | -------------------------------------------------------------------------------- /src/ui/pages/app/components/PendingTxIndicator.css: -------------------------------------------------------------------------------- 1 | .pendingtx-indicator { 2 | display: flex; 3 | align-items: center; 4 | font-size: 12px; 5 | line-height: 12px; 6 | } 7 | 8 | .pendingtx-indicator > span.count { 9 | font-weight: 500; 10 | margin-right: 5px; 11 | } 12 | 13 | .pendingtx-indicator > svg { 14 | margin: 0; 15 | margin-top: -1px; 16 | margin-right: 1px; 17 | } 18 | 19 | #root.win32 .pendingtx-indicator > svg { 20 | margin-top: 1px; 21 | } -------------------------------------------------------------------------------- /src/ui/pages/app/components/WalletConnectIndicator.css: -------------------------------------------------------------------------------- 1 | .walletconnect-indicator { 2 | display: flex; 3 | align-items: center; 4 | } 5 | 6 | .walletconnect-indicator.connecting { 7 | animation: connecting; 8 | animation-iteration-count: infinite; 9 | animation-duration: 1s; 10 | animation-timing-function: ease-in-out; 11 | } 12 | 13 | #root.win32 .walletconnect-indicator > svg { 14 | margin-top: 1px; 15 | } 16 | 17 | @keyframes connecting { 18 | 0% { 19 | opacity: 0; 20 | } 21 | 50% { 22 | opacity: 1; 23 | } 24 | 100% { 25 | opacity: 0; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/ui/pages/app/components/WalletConnectIndicator.tsx: -------------------------------------------------------------------------------- 1 | import './WalletConnectIndicator.css'; 2 | 3 | import Feather from 'feather-icons-react'; 4 | import React from 'react'; 5 | import { observer } from 'mobx-react-lite'; 6 | 7 | export default observer(({ connecting }: { connecting?: boolean }) => { 8 | return ( 9 |
10 | 11 |
12 | ); 13 | }); 14 | -------------------------------------------------------------------------------- /src/ui/pages/login/Blank.css: -------------------------------------------------------------------------------- 1 | .page.blank { 2 | display: flex; 3 | flex-direction: column; 4 | justify-content: center; 5 | align-items: center; 6 | } 7 | 8 | .page.blank > img.logo { 9 | width: 96px; 10 | } 11 | 12 | .page.blank > .slogan { 13 | font-size: 10px; 14 | margin-top: -16px; 15 | opacity: 0.5; 16 | } 17 | -------------------------------------------------------------------------------- /src/ui/pages/login/Blank.tsx: -------------------------------------------------------------------------------- 1 | import './Blank.css'; 2 | 3 | import Logo from '../../components/Logo'; 4 | import React from 'react'; 5 | 6 | export default () => { 7 | return ( 8 |
9 | 10 |
11 | A Secure Wallet for Web3 Era 12 |
13 |
14 | ); 15 | }; 16 | -------------------------------------------------------------------------------- /src/ui/pages/login/SetupPasscode.css: -------------------------------------------------------------------------------- 1 | .page.setupPw { 2 | display: grid; 3 | grid-template-rows: auto 1fr auto; 4 | } 5 | 6 | .page.setupPw > div.password { 7 | display: flex; 8 | flex-direction: column; 9 | padding-top: 25vh; 10 | align-items: center; 11 | } 12 | 13 | .page.setupPw > div.password > p { 14 | font-size: 15px; 15 | color: var(--font-color-title); 16 | } 17 | 18 | .page.setupPw > div.password > p:last-child { 19 | font-size: 12px; 20 | } 21 | 22 | .page.setupPw > div.password > div { 23 | margin-right: 2px; 24 | } 25 | -------------------------------------------------------------------------------- /src/ui/pages/login/index.ts: -------------------------------------------------------------------------------- 1 | import About from './About'; 2 | import Authentication from './Authentication'; 3 | import Blank from './Blank'; 4 | import Generate from './GenerateMnemonic'; 5 | import Import from './ImportMnemonic'; 6 | import SetupPasscode from './SetupPasscode'; 7 | import Welcome from './Welcome'; 8 | 9 | export { Welcome, Generate, Import, Blank, SetupPasscode, Authentication, About }; 10 | -------------------------------------------------------------------------------- /src/ui/pages/popup/Auth.css: -------------------------------------------------------------------------------- 1 | .page.auth { 2 | display: grid; 3 | grid-template-rows: auto 1fr; 4 | } 5 | -------------------------------------------------------------------------------- /src/ui/pages/popup/ConnectingDApp.tsx: -------------------------------------------------------------------------------- 1 | import './ConnectingDApp.css'; 2 | 3 | import Feather from 'feather-icons-react'; 4 | import React from 'react'; 5 | import appicon from '../../../assets/icons/app/AppIcon.svg'; 6 | import wc from '../../../assets/icons/app/walletconnect-logo.svg'; 7 | 8 | export default () => { 9 | return ( 10 |
11 |
12 | 13 |
14 | 15 |
16 | 17 |
18 |
19 | ); 20 | }; 21 | -------------------------------------------------------------------------------- /src/ui/pages/popup/MessageBox.css: -------------------------------------------------------------------------------- 1 | .page.messagebox { 2 | display: grid; 3 | grid-template-rows: auto 1fr auto; 4 | } 5 | 6 | .page.messagebox > .content { 7 | padding: 10px 0; 8 | box-sizing: border-box; 9 | font-size: 13.5px; 10 | line-height: 19px; 11 | font-family: -apple-system, BlinkMacSystemFont, 'Microsoft Yahei', 'Segoe UI', Arial, sans-serif; 12 | color: var(--font-color-title); 13 | } 14 | 15 | .page.messagebox > .actions { 16 | display: grid; 17 | grid-template-columns: 1fr 1fr; 18 | column-gap: 8px; 19 | z-index: 2; 20 | } 21 | -------------------------------------------------------------------------------- /src/ui/pages/popup/Unsupported.css: -------------------------------------------------------------------------------- 1 | .page.unsupported { 2 | display: grid; 3 | grid-template-rows: auto 1fr auto; 4 | } 5 | 6 | .page.unsupported .content { 7 | display: flex; 8 | flex-direction: column; 9 | justify-content: center; 10 | align-items: center; 11 | gap: 12px; 12 | color: var(--font-color-title); 13 | } 14 | 15 | .page.unsupported .content img { 16 | width: 64px; 17 | } 18 | -------------------------------------------------------------------------------- /src/ui/pages/popup/confirms/AuthView.css: -------------------------------------------------------------------------------- 1 | .auth { 2 | width: 100%; 3 | height: 100%; 4 | display: grid; 5 | grid-template-rows: 1fr auto; 6 | } 7 | 8 | .auth > .panel { 9 | display: flex; 10 | align-items: center; 11 | justify-content: center; 12 | } 13 | -------------------------------------------------------------------------------- /src/ui/pages/popup/confirms/SignView.css: -------------------------------------------------------------------------------- 1 | .sign-msg { 2 | overflow: hidden; 3 | overflow-y: auto; 4 | margin-bottom: 8px; 5 | margin-top: -12px; 6 | padding-top: 8px; 7 | } 8 | 9 | .sign-msg.json { 10 | margin-top: -10px; 11 | padding-top: 2px; 12 | overflow-x: auto; 13 | } 14 | 15 | /* .sign-msg.json::-webkit-scrollbar { 16 | background-color: transparent; 17 | width: 0; 18 | height: 0; 19 | position: absolute; 20 | } */ 21 | 22 | .sign-msg > pre { 23 | word-wrap: break-word; 24 | text-overflow: ellipsis; 25 | white-space: pre-line; 26 | font-size: 12.5px; 27 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; 28 | user-select: text; 29 | margin: 0 -12px; 30 | padding: 0 12px; 31 | -webkit-app-region: no-drag; 32 | } 33 | -------------------------------------------------------------------------------- /src/ui/pages/popup/index.ts: -------------------------------------------------------------------------------- 1 | import Auth from './Auth'; 2 | import ConfirmTx from './ConfirmTx'; 3 | import ConnectDapp from './ConnectDapp'; 4 | import ConnectingDApp from './ConnectingDApp'; 5 | import MessageBox from './MessageBox'; 6 | import QRScanner from './QRScanner'; 7 | import Unsupported from './Unsupported'; 8 | 9 | export { ConfirmTx, QRScanner, ConnectDapp, Auth, MessageBox, ConnectingDApp, Unsupported }; 10 | -------------------------------------------------------------------------------- /src/ui/pages/security/Reset.css: -------------------------------------------------------------------------------- 1 | .page.reset { 2 | display: grid; 3 | grid-template-rows: auto 1fr auto; 4 | } 5 | 6 | .page.reset > .content { 7 | display: flex; 8 | justify-content: center; 9 | flex-direction: column; 10 | align-items: center; 11 | color: var(--font-color-title); 12 | text-align: center; 13 | font-size: 14px; 14 | line-height: 24px; 15 | } 16 | 17 | .page.reset > button { 18 | border-color: red; 19 | background-color: red; 20 | color: white; 21 | } 22 | 23 | .page.reset > button:hover { 24 | background-color: firebrick; 25 | border-color: firebrick; 26 | } 27 | -------------------------------------------------------------------------------- /src/ui/pages/security/index.ts: -------------------------------------------------------------------------------- 1 | import BackupMnemonic from './BackupMnemonic'; 2 | import Reset from './Reset'; 3 | 4 | export { BackupMnemonic, Reset }; 5 | -------------------------------------------------------------------------------- /src/ui/viewmodels/models/NFT.ts: -------------------------------------------------------------------------------- 1 | import { BigNumber } from '@ethersproject/bignumber'; 2 | 3 | export class NFT { 4 | name: string; 5 | symbol?: string; 6 | tokenURI?: string; 7 | tokenId: BigNumber; 8 | description?: string; 9 | image_url?: string; 10 | 11 | contract: string; 12 | contractType: 'standard' | 'Rarible'; 13 | } 14 | -------------------------------------------------------------------------------- /src/ui/viewmodels/popups/MessageBoxVM.ts: -------------------------------------------------------------------------------- 1 | import Messages from '../../../common/Messages'; 2 | import ipc from '../../bridges/IPC'; 3 | 4 | export class MessageBoxVM { 5 | icon?: string; 6 | title?: string; 7 | message?: string; 8 | reqid: string; 9 | 10 | constructor(payload: { icon: string; title: string; message: string; reqid: string }) { 11 | this.icon = payload.icon; 12 | this.title = payload.title; 13 | this.message = payload.message; 14 | this.reqid = payload.reqid; 15 | } 16 | 17 | approve() { 18 | ipc.invokeSecure(Messages.returnMsgBoxResult(this.reqid), { approved: true }); 19 | } 20 | 21 | reject() { 22 | ipc.invokeSecure(Messages.returnMsgBoxResult(this.reqid), { approved: false }); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/ui/viewmodels/wallet/HistoryTxsVM.ts: -------------------------------------------------------------------------------- 1 | import { makeAutoObservable, runInAction } from 'mobx'; 2 | 3 | import { ITransaction } from '../../../backend/models/Transaction'; 4 | import Messages from '../../../common/Messages'; 5 | import ipc from '../../bridges/IPC'; 6 | 7 | export class HistoryTxsVM { 8 | txs: ITransaction[] = []; 9 | selectedTx: ITransaction = undefined; 10 | 11 | constructor() { 12 | makeAutoObservable(this); 13 | } 14 | 15 | async fetchTxs() { 16 | const txs = await ipc.invoke(Messages.getHistoryTxs); 17 | runInAction(() => (this.txs = txs)); 18 | } 19 | 20 | selectTx(tx: ITransaction) { 21 | this.selectedTx = tx; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": true, 4 | "module": "CommonJS", 5 | "target": "es2021", 6 | "skipLibCheck": true, 7 | "esModuleInterop": true, 8 | "noImplicitAny": false, 9 | "sourceMap": true, 10 | "baseUrl": ".", 11 | "jsx": "react", 12 | "outDir": "dist", 13 | "rootDir": "src", 14 | "moduleResolution": "node", 15 | "resolveJsonModule": true, 16 | "experimentalDecorators": true, 17 | "emitDecoratorMetadata": true, 18 | "paths": { 19 | "*": ["node_modules/*"] 20 | } 21 | }, 22 | "include": ["src/**/*"] 23 | } 24 | -------------------------------------------------------------------------------- /webpack.main.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = { 4 | /** 5 | * This is the main entry point for your application, it's the first file 6 | * that runs in the main process. 7 | */ 8 | entry: './src/main.ts', 9 | // Put your normal webpack config below here 10 | module: { 11 | rules: require('./webpack.rules'), 12 | }, 13 | resolve: { 14 | extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json'], 15 | alias: { 16 | // [path.join(__dirname, '/node_modules/@abandonware/noble/lib/mac/bindings.js')]: path.join( 17 | // __dirname, 18 | // 'bindings/noble-bindings.js' 19 | // ), 20 | }, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /webpack.plugins.js: -------------------------------------------------------------------------------- 1 | const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); 2 | const FilterWarningsPlugin = require('webpack-filter-warnings-plugin'); 3 | 4 | module.exports = [ 5 | new ForkTsCheckerWebpackPlugin(), 6 | //https://github.com/typeorm/typeorm/blob/master/docs/faq.md#how-to-use-webpack-for-the-backend 7 | new FilterWarningsPlugin({ 8 | exclude: [ 9 | /mongodb/, 10 | /mssql/, 11 | /mysql/, 12 | /mysql2/, 13 | /oracledb/, 14 | /pg/, 15 | /pg-native/, 16 | /pg-query-stream/, 17 | /react-native-sqlite-storage/, 18 | /redis/, 19 | /sql.js/, 20 | /typeorm-aurora-data-api-driver/, 21 | ], 22 | }), 23 | ]; 24 | -------------------------------------------------------------------------------- /webpack.renderer.config.js: -------------------------------------------------------------------------------- 1 | const rules = require('./webpack.rules'); 2 | const plugins = require('./webpack.plugins'); 3 | 4 | rules.push({ 5 | test: /\.css$/, 6 | use: [{ loader: 'style-loader' }, { loader: 'css-loader' }], 7 | }); 8 | 9 | module.exports = { 10 | module: { 11 | rules, 12 | }, 13 | plugins: plugins, 14 | resolve: { 15 | extensions: ['.js', '.ts', '.jsx', '.tsx', '.css'], 16 | }, 17 | }; 18 | --------------------------------------------------------------------------------