Closed louisinger closed 1 year ago
I am looking at using React-Query (https://tanstack.com/query/latest) to manage Esplora data, but afaik it returns either data
or error
. If I use ws.batchRequest
to get transactions and one of them fails the whole operation fails. What about returning successful data, if any, along with promise rejection error inside ElectrumWS onMessage ?
More broadly, what is your strategy when a request fails inside a batchRequest ?
I noticed that we have txID
, txid
, txHash
from LiquidJS. Would be nice to harmonize that.
UPDATE Latest commits add full support of Ionio accounts. Some small breaking changes in marina-provider has been introduced. The docs.vulpem.com update describes them and adds an example related to Ionio account.
It should be enough to test and discuss new APIs @tiero @bordalix
I keep this PR as draft, some required WIP:
Account
, SignerService
and BlinderService
).settings/accounts
.onboarding/restore
.Test yourself: marina-0.4.14.zip
The latest version adds Ionio accounts restoration (download a file in settings/accounts and upload it in onboarding/wallet-restore form) + Liquid Taxi support.
By default first start the explorer is set to Custom. Is this wanted?
I would put in the placeholder an example of what we need. ie. https://blockstream.info
and wss://vulpem.com
I would add also the base derivation path for each account listed here
If possible I would put the Updating...
in the navbar during the restoration/fetching of history
Alternative would be to move from the date to the type (Inbound, Outbound, Multiple)
Best to write Unconfirmed here, maybe as tag using the red or yellow background
The sending flow has some glitches:
You can test using manifest v3 with the command yarn start:v3
. Same for build yarn build:v3
will build the extension using manifest v3.
nit: overlay background does not cover all extension
It stays like this forever, i.e., doesn't find out that tx are already confirmed:
Also, (unconfirmed) hides the value of the transaction.
L-BTC balance (on the assets list) should be '0' and not absent as is now:
Date area needs to have less width or else value of the tx is wrapped:
I'm getting blinding errors on mempool and blockstream when seeing a contract creation tx:
L-BTC list of Tx only shows fee spent:
marina-ionio-restoration.json
Can you please try to "Restore account" from a wallet already initialized? For some reason I always get invalid password that way @louisinger
Can we have to fetch registry to pull assets every time we load the homepage?
Seems it fails to fetch asset, ticker and name first time and it nevers recover
Shall we add a button into either Accounts or in Deep Restore to be able to import the restoration file if needed?
When L-BTC is part of tx and used as fee input to cover the fee output, it should not be shown in the L-BTC history?
When I try to send all LBTC to myself I get a min relay fee not met, 0 < 134
https://user-images.githubusercontent.com/9318412/225405661-475dbab3-9029-4ef5-8156-6c9a88f86291.mov
Also, Retry button does nothing.
Can you please try to "Restore account" from a wallet already initialized? For some reason I always get invalid password that way @louisinger
Unable to reproduce this @tiero using manifest v2 & v3 extensions built from sources
@louisinger not sure if it's the same thing as @tiero reported, but my first login after restoring an account always gives this error:
Clicking on "Log in" again works.
Log out NEVER works on first click:
https://user-images.githubusercontent.com/9318412/225659918-5084e209-7755-4f6d-be6e-38155e8644cd.mov
Let's merge and continue issue by issue
This PR removes
redux
,redux-saga
,webext-redux
andldk
packages from Marina.src/infrastructure
. The repositories classes are usingBrowser.storage
to store and access data from local browser extension storage. Repositories can be used everywhere (including React components).src/infrastructure/storage
provides react hooks based onBrowser.storage.onChanged
event listener. It lets to reproduce the behavior of reduxuseSelector
hook.src/content
andsrc/inject
are unchanged. They are just using Repository interfaces instead of redux state.Account
is now a class able to generate scripts, create confidential addresses and sync the wallet (its a kind of "watch only wallet").SignerService
is a class letting to sign psetv2 using marina Repository interfaces.BlinderService
is a class letting to blind psetv2 using marina Repository interfaces.background-script.ts
is reponsible to update the wallet state using several async services (Subscriber
,Updater
andTaxiUpdater
) listening toBrowser.storage.onChanged
eventsTODO:
wallet/send
flow (psetv2 coin selection bug at choose-fee step).Account
-> related to #427connect/send
popup.@bordalix @tiero please review