Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross-DAO Redemptions #1047

Merged
merged 6 commits into from
Sep 24, 2019
Merged

Cross-DAO Redemptions #1047

merged 6 commits into from
Sep 24, 2019

Conversation

Procrat
Copy link
Contributor

@Procrat Procrat commented Aug 14, 2019

This PR associates redemptions with the user, rather than with a DAO. The related design document can be found here.

  • All redemptions page
    • Button to redeem all rewards
  • Redemptions button in the header
  • Remove per DAO redemption button and page
  • Redemptions quick menu

@Procrat Procrat changed the title [WIP] Cross-DOA Redemptions Cross-DOA Redemptions Aug 20, 2019
@Procrat
Copy link
Contributor Author

Procrat commented Aug 20, 2019

I'll rebase this PR later today, but other than that, it's up for review.

@Procrat
Copy link
Contributor Author

Procrat commented Aug 21, 2019

I've rebased it now.

Be sure to have a close look at 404fe03. It's unrelated to the goal of this PR, but I noticed so much unused CSS classes that I thought it would help future development to clean that up a bit.

@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 August 21, 2019 14:29 Inactive
@jellegerbrandy
Copy link
Contributor

@Procrat many thanks for the PR 💪 🔥

i've gone over the code very quickly, but it probably should be first reviewed by our product manager, @A-Zak . After he gives the ok for the functionality, I'll review in more detail

There is a preview app on heroku here for this PR: https://alchemy-staging-rinkeb-pr-1047.herokuapp.com/ (talking to rinkeby)

Also thanks for the cleanups and the CSS, much appreciated :-). Perhaps next time, if there will be one, this can be a separate PR?

@Procrat
Copy link
Contributor Author

Procrat commented Aug 22, 2019

@jellegerbrandy Thanks for that. And yeah, I'll be sure to make a separate PR for separate things next time. Sorry about that.

It sounded like @A-Zak would be busy with Berlin stuff this week, but I'm in no rush. :-)

Just to make sure we're on the same page, this is the implementation of this Genesis proposal, and the specs and designs I linked above are what Alex sent us.

Copy link
Contributor

@tibetsprague tibetsprague left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thanks!

this is going to be fun to refactor with the new better performing withSubscriptions Higher Order Component now merged into dev to replace :)

@dkent600 dkent600 self-requested a review August 23, 2019 13:16
Copy link
Contributor

@dkent600 dkent600 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The star menu icon should have a hover Tooltip explaining what it does ("Redeem your rewards" or something like that).

@dkent600
Copy link
Contributor

dkent600 commented Aug 23, 2019

If you haven't any rewards, then the popup should feedback with a text message, not just an empty window. And maybe there is no need for a "View All" link.

image

@dkent600
Copy link
Contributor

dkent600 commented Aug 23, 2019

This window should not have a fixed height, or large minHeight, as it does, rather should fit the required vertical space, with some maximum above which there appears a scroll bar.

@dkent600
Copy link
Contributor

Could be nice if the star icon and red round circle thingy somehow could display the number of available redemptions.

@dkent600
Copy link
Contributor

For the Ganache 0 account I'm seeing "Loading..." that doesn't go away:

image

@dkent600
Copy link
Contributor

Why do some items have a redeem button and others don't?

image

@dkent600
Copy link
Contributor

I don't think we need a star button that hover-expands to a Redeem button. There is plenty of space here, and it is easier for the user, to just have a "Redeem" button.

@dkent600
Copy link
Contributor

dkent600 commented Aug 23, 2019

Why do we have a "View All" link? Does this window not already contain all redemptions? Does this link need a better description?

image

@dkent600
Copy link
Contributor

When I click on "View All" with the Ganache 0 account, I just get an error message:

Report feedback
Error: No action matching these callData could be found

@dkent600
Copy link
Contributor

dkent600 commented Aug 23, 2019

Bit of a layout problem here on mobile ("responsive" format). Could be this would be fixed by #1081

image

@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 August 25, 2019 10:07 Inactive
@Procrat
Copy link
Contributor Author

Procrat commented Aug 25, 2019

this is going to be fun to refactor with the new better performing withSubscriptions Higher Order Component now merged into dev to replace :)

It took a bit to rebase, but that new HOC does make things quite a bit nicer!

@Procrat
Copy link
Contributor Author

Procrat commented Aug 25, 2019

The star menu icon should have a hover Tooltip explaining what it does ("Redeem your rewards" or something like that).

If you haven't any rewards, then the popup should feedback with a text message, not just an empty window. And maybe there is no need for a "View All" link.

Could be nice if the star icon and red round circle thingy somehow could display the number of available redemptions.

Why do we have a "View All" link? Does this window not already contain all redemptions? Does this link need a better description?

This window should not have a fixed height, or large minHeight, as it does, rather should fit the required vertical space, with some maximum above which there appears a scroll bar.

For these remarks, I suggest discussing with @A-Zak, since they weren't really specified in the original design.

For the Ganache 0 account I'm seeing "Loading..." that doesn't go away:

Which account are you referring to?

Why do some items have a redeem button and others don't?

In the interest of code reuse, I reused the ActionButton component that was already used in the proposal cards. I was under the assumption that if the GraphQL query would return it as a redeemable proposal, the redeem button would always show up. Can you think of a reason why that isn't the case there?

I don't think we need a star button that hover-expands to a Redeem button. There is plenty of space here, and it is easier for the user, to just have a "Redeem" button.

Right, I'll look into that.

Bit of a layout problem here on mobile ("responsive" format). Could be this would be fixed by #1081

I've just noticed that as well after a rebase. Could it be that this "connect" button while being logged in is something new? I thought being logged in and being connected to your wallet meant the same thing, but perhaps I was wrong in assuming that? What would the best solution be here UI-wise?

@dkent600
Copy link
Contributor

Bit of a layout problem here on mobile ("responsive" format). Could be this would be fixed by #1081

I've just noticed that as well after a rebase. Could it be that this "connect" button while being logged in is something new? I thought being logged in and being connected to your wallet meant the same thing, but perhaps I was wrong in assuming that? What would the best solution be here UI-wise?

@Procrat How about you get the latest from the dev branch where the mobile layout of the Connect button is fixed, then see what it looks like? Go from there...

The term "Connect" is used when we have a cached current account, obtained from localStorage, but not a web3 provider for it that enables us to send txs on its behalf.

@dkent600
Copy link
Contributor

dkent600 commented Aug 26, 2019

For the Ganache 0 account I'm seeing "Loading..." that doesn't go away:

Which account are you referring to?

@Procrat ganache accounts[0] in the preview app against rinkeby.

@dkent600
Copy link
Contributor

Why do some items have a redeem button and others don't?

In the interest of code reuse, I reused the ActionButton component that was already used in the proposal cards. I was under the assumption that if the GraphQL query would return it as a redeemable proposal, the redeem button would always show up. Can you think of a reason why that isn't the case there?

@Procrat I will just refer you to the ActionButton code to figure out why it is behaving that way. I think this needs to be understood since it makes no sense for a proposal to appear in your list if it can't be redeemed.

@dkent600
Copy link
Contributor

For these remarks, I suggest discussing with @A-Zak, since they weren't really specified in the original design.

@A-Zak Can you please review these comments, thanks!

@Procrat
Copy link
Contributor Author

Procrat commented Sep 1, 2019

In the meantime, I've had a chat with Alex and received some UI mockups about the unspecified bits. I've rebased and

  • put the redemptions button on the left for mobile displays,
  • always let the text show on the redeem buttons in the menu, and
  • made the Alchemy logo clickable (so that the user can navigate away from the redemptions page).

get the latest from the dev branch where the mobile layout of the Connect button is fixed, then see what it looks like? Go from there...

Since the button is on the left now, this is fortunately no longer an issue.

@Procrat ganache accounts[0] in the preview app against rinkeby.

I'm afraid the preview app seems to be down. I'm still unclear on which account you're referring to, but perhaps seeing the preview app would have made it clear?

In the interest of code reuse, I reused the ActionButton component that was already used in the proposal cards. I was under the assumption that if the GraphQL query would return it as a redeemable proposal, the redeem button would always show up. Can you think of a reason why that isn't the case there?

@Procrat I will just refer you to the ActionButton code to figure out why it is behaving that way. I think this needs to be understood since it makes no sense for a proposal to appear in your list if it can't be redeemed.

I was just curious whether you had an inkling about something that could have been easily overlooked. Anyway, looking at the ActionButton code, it shows the redeem button when proposal.executedAt && proposal.accountsWithUnclaimedRewards.includes(currentAccountAddress.toLowerCase()) whereas the items in the menu are fetched with the GQL query { proposals(where: { accountsWithUnclaimedRewards_contains: ["${currentAccountAddress}"] }) { id } }. Assuming that account addresses are lower case, that would mean that an account can occur in the accountsWithUnclaimedRewards list while the proposal has not (yet) been executed.

Venturing into sugraph code, it looks like only insertGPRewards in src/domain/reward.ts can add to this accountsWithUnclaimedRewards list and that function is only called when the proposal is executed or expired in the queue. Could that be what happened in your case then?

Just to be clear, that GQL was taken from the existing per-DAO redemption page, so I would assume that whatever bug shows up here, is already present in the current version of Alchemy. Can you confirm that?

@Procrat
Copy link
Contributor Author

Procrat commented Sep 2, 2019

I've

  • ensured the menu is only maximum as heigh as the viewport (with some margin), and
  • changed the menu to look like this mockup when there's nothing to redeem.

Apart from that issue that @dkent600 encountered (which I'm unclear on how to reproduce), are there any other issues left before this can be merged?

@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 September 4, 2019 08:21 Inactive
@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 September 5, 2019 10:37 Inactive
@Procrat
Copy link
Contributor Author

Procrat commented Sep 5, 2019

I've added a tiny bit of robustness to RedemptionsString (which was apparently a component that wasn't being used at the moment).

I've encountered a bug with account 0x90f8bf6a... (one of the test accounts mentioned in the README) on the preview app, where this error was thrown: "Error: No action matching these callData could be found". After some digging, it looks like this is an issue with a particular DutchX proposal and this was apparently already an issue before this PR: see for example this other PR preview.

@jellegerbrandy
Copy link
Contributor

hi @Procrat , could you make an issue for the preview app error and say a bit more about the circumstances?

@A-Zak
Copy link
Contributor

A-Zak commented Sep 9, 2019

@Procrat So 1st of all thank you so much for the great work (and extra effort) - it looks really good :)

1st things 1st - ganache 0 account is the account with this private key 4F3EDF983AC636A65A842CE7C78D9AA706D3B113BCE9C46F30D7D21715B23B1D.
I'm not sure exactly where they come from, but I think these accounts come from the default ganache keychain (which is the same for everyone), so we often use them for debugging... ^_^

  • And I can confirm that if you connect the ganache 0 account to the preview app (which is back online 💪) and try to open the redemptions dropdown - alchemy crashes... Same if you go to the redemptions page directly :)
    So it would be great if you could take a look at that... :)

  • When having a lot of redemptions, the dropdown only loads the last few redemptions, the rest stay like in "loading" /:
    redemptions dropdown

This happened on my personal account... To test this you can edit the current account in the local storage to "0x6d1A4be65723355a9f5b12C446780a5000849461" :)
image


  • Pressing the redeem all button when not connected is not doing anything. if not connected, it should prompt the user to connect to a wallet... Most of the other buttons have this behaviour... ^_^

@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 September 10, 2019 11:56 Inactive
@leviadam leviadam changed the title Cross-DOA Redemptions Cross-DAO Redemptions Sep 11, 2019
@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 September 15, 2019 10:37 Inactive
@Procrat
Copy link
Contributor Author

Procrat commented Sep 15, 2019

@A-Zak Thanks for the review!

I didn't realise those accounts were common across projects using Ganache. Thanks for pointing that out. Those were the ones I've been testing with anyway.

With regards to Alchemy crashing, that was the bug I had pointed out earlier. I've created an issue with my findings.

I've rebased and fixed the other two issues you mentioned as well.

Let me know if anything else needs to happen!

@A-Zak
Copy link
Contributor

A-Zak commented Sep 18, 2019

Hey, @Procrat this looks really great thank you! :)
I went over all the fixes, and also did an overall check and everything looks great except one tiny thing - the redeem all button on the all redemptions page is still not reacting if the user is not connected...

Other than this everything is good to go! 💪

@A-Zak
Copy link
Contributor

A-Zak commented Sep 18, 2019

Also, it looks like there are a few conflicts to resolve... it'd be great if you could clear those as well 🙏

@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 September 20, 2019 07:49 Inactive
@Procrat
Copy link
Contributor Author

Procrat commented Sep 20, 2019

@A-Zak: Oh, I had only done it for the "redeem all" button in the menu and had forgotten about the other one. Should be fixed now!

@jellegerbrandy jellegerbrandy temporarily deployed to alchemy-staging-rinkeb-pr-1047 September 20, 2019 08:08 Inactive
@jellegerbrandy jellegerbrandy had a problem deploying to alchemy-staging-rinkeb-pr-1047 September 20, 2019 19:42 Failure
@Procrat
Copy link
Contributor Author

Procrat commented Sep 20, 2019

(Just another rebase)

@A-Zak
Copy link
Contributor

A-Zak commented Sep 23, 2019

This looks great! :)
@jellegerbrandy @tibetsprague @dkent600 - did you look at the code itself? if so let's merge it in ^_^

return combineLatest(Array.from(daoIds, (id: any) => arc.dao(id).state()))
.pipe(defaultIfEmpty([]));
}));
return combineLatest(daos, proposals);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there any reason we actually need to to subscribe to the daos? i bet @jellegerbrandy has something to say about how we can reduce the number of subscriptions here given all the work he has been doing on that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The proposal cards on the page require a DAO state as a prop. It looks like various subcomponents use it: ProposalData, ActionButton, VoteButtons, StakeButtons, AccountPopup, etc.

Copy link
Contributor

@jellegerbrandy jellegerbrandy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many thanks @Procrat ❤️

@jellegerbrandy jellegerbrandy merged commit 803f477 into daostack:dev Sep 24, 2019
@Procrat Procrat deleted the cross-dao-redemption branch September 24, 2019 19:51
jellegerbrandy added a commit that referenced this pull request Sep 26, 2019
* WIP ProposalCard render props component to load proposal data in one place

* Get ProposalData render props component working with ProposalCard

Required allowing for async createObservable functions to be passed to withSubscriptions

* Move all proposal subscriptions to ProposalData

Don't move ProposalHistoryRow yet since it needs less data so moving would create more subscriptions

* Better comment

* Test/comment

* Fix lint issues

* Test commit

* also use ProposalData warpper for proposalHistoryRow

* update chrome version in wdio

* Try to fix travis again

* Revert "also use ProposalData warpper for proposalHistoryRow"

This reverts commit 6784cdb.

* Re-add redeem for beneficiary button to proposal details page (#1118)

* Align headers of table in proposal history (#1117)

* Align headers of table in proposal history

* Fix merge issue

* Links in proposal description should open in a new tab (#1120)

* markdown links open in new tab

* wait for good internet connection on startup (#1119)

* correctly handle when initializeArc fails

* loop until connected

* add to changelog

* less subscriptions and queries (#1114)

* less subscriptions and queries

* add new client dep

* fix travis

* remove environentvariables document

* rename some dao to daoState

* more dao -> daoState

* Fix non-unique keys error on redeem button tooltip (#1126)

https://daostack.tpondemand.com/RestUI/Board.aspx#page=board/5209716961861964288&appConfig=eyJhY2lkIjoiQjgzMTMzNDczNzlCMUI5QUE0RUE1NUVEOUQyQzdFNkIifQ==&boardPopup=bug/1510/silent

* quick rename (#1127)

* Upgrade eslint (#1121)

* WIP

* WIP

* fix eslint config,  correct lots of warnings

* PR requests

* restore sendSignedTransaction

* add static mint and burn permission (#1131)

* add static mint and burn permission

* changelog

* don't add Genesis Alpha on each render (#1132)

* don't add Genesis Alpha on each render

* changelog

* changelog

* changelog

* display proper message when no history (#1130)

* more robust handling of isLoading

* revert render return type

* repair merge errors

* display msg when no history

* changelog

* lint

* better return type for render (#1128)

* WIP

* WIP

* fix eslint config,  correct lots of warnings

* PR requests

* restore sendSignedTransaction

* apply better return type to render calls

* Cross-DAO Redemptions (#1047)

* Remove unused CSS

* Create page with all redemptions

* Add a redemptions button to the header

* Add redemptions quick menu for desktop users

* Make Alchemy logo link to the DAOs page

* Remove per DAO redemption button and page

* Fix infinite scroll loading of queued scheme proposals (#1125)

* Fix infinite scroll loading of queued scheme proposals

There is one more bug to fix related to the time we use to check for when proposals expired, tricky one...

https://daostack.tpondemand.com/RestUI/Board.aspx#page=board/5209716961861964288&appConfig=eyJhY2lkIjoiQjgzMTMzNDczNzlCMUI5QUE0RUE1NUVEOUQyQzdFNkIifQ==&boardPopup=bug/1639/silent

* Fix bug when scheduling a proposal to timeout more than 24 days in the future

It was thinking that the proposal timed out immediately!

* changelog

* Action buttons should appear when timer on proposal runs out (#1135)

* call teardownSubscription

* refactored comments

* pass expired into ActionButton

* add expired to ActionButton in RedemptionsMenu

* changelog

* integrate WalletConnect (#1104)

* upgrade web3connect package

* integrate WalletConnect

* work around walletconnect issue

* fix lint error

* remove accidentlly commited file

* upgrade web3connect

* Login => Close, latest web3connect

* changelog

* changelog typo

* trigger build

* trigger build

* generalize signing ex handling

* restore the console message

* merge from dev

* fix merge

* Release fixes (#1138)

* fix error with non-recoganized callData

* update client for quick fix

* Release fixes (#1139)

* fix error with non-recoganized callData

* update client for quick fix

* fix redemptions total

* fix propals error

* Release fixes (#1143)

* fix error with non-recoganized callData

* update client for quick fix

* fix redemptions total

* fix propals error

* fix redemptions page
jellegerbrandy added a commit that referenced this pull request Oct 3, 2019
* ProposalCard render props component to load proposal data in one place

* Get ProposalData render props component working with ProposalCard

Required allowing for async createObservable functions to be passed to withSubscriptions

* Move all proposal subscriptions to ProposalData

Don't move ProposalHistoryRow yet since it needs less data so moving would create more subscriptions

* Better comment

* Test/comment

* Fix lint issues

* Test commit

* also use ProposalData warpper for proposalHistoryRow

* update chrome version in wdio

* Try to fix travis again

* Revert "also use ProposalData warpper for proposalHistoryRow"

This reverts commit 6784cdb.

* Re-add redeem for beneficiary button to proposal details page (#1118)

* Align headers of table in proposal history (#1117)

* Align headers of table in proposal history

* Fix merge issue

* Links in proposal description should open in a new tab (#1120)

* markdown links open in new tab

* wait for good internet connection on startup (#1119)

* correctly handle when initializeArc fails

* loop until connected

* add to changelog

* less subscriptions and queries (#1114)

* less subscriptions and queries

* add new client dep

* fix travis

* remove environentvariables document

* rename some dao to daoState

* more dao -> daoState

* Fix non-unique keys error on redeem button tooltip (#1126)

https://daostack.tpondemand.com/RestUI/Board.aspx#page=board/5209716961861964288&appConfig=eyJhY2lkIjoiQjgzMTMzNDczNzlCMUI5QUE0RUE1NUVEOUQyQzdFNkIifQ==&boardPopup=bug/1510/silent

* quick rename (#1127)

* Upgrade eslint (#1121)

* WIP

* WIP

* fix eslint config,  correct lots of warnings

* PR requests

* restore sendSignedTransaction

* add static mint and burn permission (#1131)

* add static mint and burn permission

* changelog

* don't add Genesis Alpha on each render (#1132)

* don't add Genesis Alpha on each render

* changelog

* changelog

* changelog

* display proper message when no history (#1130)

* more robust handling of isLoading

* revert render return type

* repair merge errors

* display msg when no history

* changelog

* lint

* better return type for render (#1128)

* WIP

* WIP

* fix eslint config,  correct lots of warnings

* PR requests

* restore sendSignedTransaction

* apply better return type to render calls

* Cross-DAO Redemptions (#1047)

* Remove unused CSS

* Create page with all redemptions

* Add a redemptions button to the header

* Add redemptions quick menu for desktop users

* Make Alchemy logo link to the DAOs page

* Remove per DAO redemption button and page

* Fix infinite scroll loading of queued scheme proposals (#1125)

* Fix infinite scroll loading of queued scheme proposals

There is one more bug to fix related to the time we use to check for when proposals expired, tricky one...

https://daostack.tpondemand.com/RestUI/Board.aspx#page=board/5209716961861964288&appConfig=eyJhY2lkIjoiQjgzMTMzNDczNzlCMUI5QUE0RUE1NUVEOUQyQzdFNkIifQ==&boardPopup=bug/1639/silent

* Fix bug when scheduling a proposal to timeout more than 24 days in the future

It was thinking that the proposal timed out immediately!

* changelog

* Action buttons should appear when timer on proposal runs out (#1135)

* call teardownSubscription

* refactored comments

* pass expired into ActionButton

* add expired to ActionButton in RedemptionsMenu

* changelog

* integrate WalletConnect (#1104)

* upgrade web3connect package

* integrate WalletConnect

* work around walletconnect issue

* fix lint error

* remove accidentlly commited file

* upgrade web3connect

* Login => Close, latest web3connect

* changelog

* changelog typo

* trigger build

* trigger build

* generalize signing ex handling

* restore the console message

* merge from dev

* fix merge

* Release fixes (#1138)

* fix error with non-recoganized callData

* update client for quick fix

* Release fixes (#1139)

* fix error with non-recoganized callData

* update client for quick fix

* fix redemptions total

* fix propals error

* Release fixes (#1143)

* fix error with non-recoganized callData

* update client for quick fix

* fix redemptions total

* fix propals error

* fix redemptions page

* refactor hamburger button (#1136)

* refactoring

* dev merge fixes

* more tweaks

* fix mobile menu vertical position

* eliminate scrollbar on firefox

* restore tour actions

* fix merge errors

* fix compile error

* changelog

* tweaks

* revert styles

* update changelog

* Fix "Can't send transaction after changing account (#1141)"

* detect when initializeArc has not been called

* changelog

* use console.error

* ensure running is set to false

* catch error

* sum all stakes in history row (#1140)

* sum all stakes

* remove redundant variable

* lot less subscriptions, upgrade client, use v28 of subgraph, prepare for switch to thegraph (#1134)

* wip

* intermediate commit, wip

* tweaking the subscriptions

* tweaks

* use client 0.2.9

* trigger build

* fix type error

* clean up

* remove a comment

* upgrade client

* thegraph providers

* fix package-lock.json

* fix merge confusion

* subscribe to redemption updates

* fix thegraph urls

* more travis debug info , better docker file

* add graphql_max_first setting to docker

* update graph-node version

* use latest test images

* cargoculting

* workaround graphql bug

* fix typo

* fix vulnerabilities

* use client 0.2.12

* client 0.2.13; fix some vulenrabilites

* fix syntax error

* ..

* hotfix

* fix prod wss url

* fix lint errors

* use graphnode ipfs data

* Compat design for DAO cards on mobile (#1145)

* smoother transition to mobile

* changelog

* cleaner layout of statistics, reduce card height

* tweak

* Cached provider should always be used when possible (#1144)

* remove .bind(this)

* move cache-related functions to arc.ts

* don't refetch cached provider if already using

* all actions to use cached provider

* don't show notification when using Connect button

* changelog

* add underscores to constants

* collapse two calls to single enableWalletProvider

* don't export setWeb3ProviderAndWarn

* sort imports
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants