tahowallet / extension Goto Github PK
View Code? Open in Web Editor NEWTaho, the community owned and operated Web3 wallet.
Home Page: https://taho.xyz
License: GNU General Public License v3.0
Taho, the community owned and operated Web3 wallet.
Home Page: https://taho.xyz
License: GNU General Public License v3.0
Two actions to be had here:
run-p
?).
eslint-config-prettier
, airbnb linting rules, and TypeScript extensions to those rules.match illustration style for headers in UI
There are a few options to improve gas estimation. Two worth exploring are
Not sure this is the "right" way to handle L2s going forward — in fact, quite the opposite. But if it gets traction supporting it is simple
https://news.coingenius.ai/consensys-debuts-metamask-custom-networks-for-layer-2/
Optimize for:
Would be interesting to use HashMasks, CryptoPunks, and ENS names to start
We want browser push notifications on
To avoid running a centralized backend, we want to use a provider that supports WebSockets.
https://docs.blocknative.com/websocket
We also need to fall back gracefully, first to a regular data provider or local node, then to skipping the functionality.
Since extensions are loaded locally rather than requiring network round-trips and bandwidth, I haven't been able to find strong evidence either way on whether bundling and minification provide a significant runtime impact. The downloaded extension itself is gzipped, so a lot of the file size improvement of minification most likely already comes from that compression process.
The goal here is to understand:
These can then be synthesized with any other concerns to make a decision about the best way to move forward on minification and bundling.
One of the most developer-hostile things modern web technology does is obfuscate code. Source maps help, but require additional work and are often not included in production bundles. Tally being an open source project, we should encourage exploration and tinkering with the underlying source---the easiest way to do that is to give users and developers an already-usable code base with the shipped extension.
ChainService
to work with Alchemy + ArbitrumIndexingService
to work with Alchemy + ArbitrumDeveloping fast means we need a simple way to upgrade user state every new extension version. How do we handle state schema changes?
The entire legacy keyring deserves a rethink, but starting with fixing this inconvenience for DeFi prosumers and developers would go a long way.
Build system dev:
Build system production:
Docs:
Testing:
github actions:
This is a big one.
A UTXO model breaks many assumptions in wallet land, including the idea of watching accounts for updates. There are a few major requirements
chrome
├── background.js
├── chromereload.js
├── content-script.js
├── inpage.js
├── manifest.json
├── public
│ └── popup.html
└── ui.js
popup could be moved to the dir root, manifest:_base would need to be changed to reflect this public is all static files images etc.
process.env.NODE_ENV
which should be 'development'
or 'production'
or 'test'
(for now lets not worry to much on test mode extension test can get complicated and might require a special build process)currently the branch build has this functionality but needs to be cleaned up sense it was literally taken from mekamittens and paths were changed and some unnecessary code was deleted
Safari now support Web Extensions! Unfortunately, hardware wallet support will require some additional, perhaps native, work.
We need separate builds for
Tally can hijack MetaMask connections and act as the primary wallet, similar to NiftyWallet.
Some users might prefer that behavior, for others it's an inconvenience. Making it a configurable default is 👌
What interface do dApps see when a user has Tally installed?
We need to
This might have to happen via the usual inpage.js
, or via content scripts for manifest v3 forward compatibility.
Relates to #4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.