blocknative / web3-onboard Goto Github PK
View Code? Open in Web Editor NEWClient library to onboard users to web3 apps
Home Page: https://onboard.blocknative.com/
License: MIT License
Client library to onboard users to web3 apps
Home Page: https://onboard.blocknative.com/
License: MIT License
The balance
module is indicating that the minimum balance check is not satisfied even when the minimum is set to '0'. This is because the bignumber comparison is using lte
rather than just lt
There can be errors in some environments when lodash.debounce
is imported. Need to use require
instead.
The balance store is currently sending two requests to watch an account when it only needs to send it once
The heading in the wallet ready modules should be white when in dark mode rather than gray.
Need to add regenerator-runtime
now that the code is being transpiled to ES5
The padding is a little uneven between elements in the wallet selection screen on certain devices
If the prepare
script is removed from the package.json
, our build times on circle ci will be cut down as it is unnecessarily building the package twice.
Sometimes eth values that are in wei get displayed in exponent notation. To avoid this, 10
needs to be passed in to the toString
method of BigNumber
.
Need to make the developer experience much better for initializing onboard by making a minimum integration very simple and by making the modules initialization more straight forward
A bug was introduced in the last release where the wallet checks wouldn't resolve correctly
Need to add a moduleContext
parameter to the rollup config to avoid warnings for svelte-i18n
In WalletSelect.svelte
there needs to be a check that the wallet module exists when auto selecting a wallet.
Add the ability to change the networkId
after initialization.
Add a config for consistent code formatting.
The wallet buttons need a little extra padding so that the box-shadow isn't cut off.
Need to remove the ow
dependency as it causes issues with server side rendering. Will need to write custom validation instead.
For SDK wallets, add a instance
parameter so that devs can access the instantiated wallet and not just the provider.
There are some unused parameters on some objects defined in interfaces.ts
. These need to be removed.
The font-size needs to be set to 16px
on the root element (modal) so that everything else can be set in em
s. This is so that when a developer sets the font-size on the html
element it won't affect our UI.
Need to use svg
wallet logos where possible.
There is an error in stores.js
as the variable that is declared when creating a derived store is implicitly any
. Need to define types on that variable.
In tsconfig.json
the target
parameter is set to "es5"
which causes the following error in some build environments:
Module parse failed: Identifier '__assign' has already been declared
Setting this to "ESNEXT"
will fix this issue.
Add opera desktop wallet and opera touch for mobile to the wallet modules.
The onboard bundle needs to be transpiled down to ES5
compatible code.
There is still an inconsistency with the font-family in the content of some of the ready modals.
The Portis wallet module is getting initialized with a network string of main
when it should be mainnet
.
Need to add internationalization capabilities into onboard. Devs need to have the ability to pass in an internationalization object that will get merged with our defaults and also the ability to set the language.
Need to add an easy way to choose preferred wallets when initiating through the default options.
When trying to connect to WalletConnect there is an error of "provider is not defined"
We should allow and render html for the wallet select modal description
Need to remove the disconnect
function from the Portis module
Need to modify the build settings so that svelte-i18n
is not set as an external library. This is because it needs to be compiled by the svelte
compiler.
Sometimes the show more button will render even if all of the wallets are displayed
Need to add loading parameter to wallet modal validation
Need to ensure that all elements that don't specify a font-size
inherit that property.
Need to remove Squarelink due to a bug in SSR environments outlined here
Will be adding it back in once that bug is fixed or when we have implemented dynamic imports for wallet modules.
The balance store isn't updating correctly as the Blocknative backend updates much quicker that the wallet provider nodes
Need to allow for when onboard gets re-initialized either by accident or on purpose. To do this, the svelte component that has been created can get destroyed before creating a new one.
If the same wallet is selected twice, once when the wallet select modal is first shown and then a second time when allowing the user to switch wallets, the wallet will instantiate twice. We should do a check to see if the wallet that is selected is the same as the current wallet.
Currently the balance state isn't being correctly kept in sync when a transaction occurs on the users' current account.
Currently onboard is using ow
for type validation. A more robust solution would be to convert the library to Typescript and remove the ow
dependency.
Need to include the clientIndex
when watching an account.
It would be better if the subscriptions weren't called with the initial state and were only called upon a state change. This can be achieved by setting the initial state to null
and then to undefined
for a state that needs to be cleared.
Need to implement code splitting so that we can keep the bundle size as small as possible.
The createModernProviderInterface
and createLegacyProviderInterface
need to be made more robust to be able to work with any injected provider. This can be done by instead of getting the address
and network
state from the provider object properties, make generic rpc calls to get that state.
When selectWallet
is passed a string of a wallet to be auto selected it works correctly. But if `selectWallet1 is called again without a wallet string, the wallet select modal doesn't render.
Need to go through and make sure that the font-family
is inherited.
Need to update the default network dialog with new content
Need to set the border-box property explicitly on the wallets
ul
element
More robust validation is needed for nested objects to throw helpful error for when the wrong key is included on an object.
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.