Open mds1 opened 3 years ago
@mds1 Nice organization here. How should we try tackling this? I'm sure these tasks will be broken amongst team members in some way.
I think we should hold off on figuring out how to tackle this until after the POC is complete. None of these are required for the POC, so we're better off focusing on POC-blockers and just adding new things to this issue as they come up. Once we're totally done with the POC, let's circle back to this issue to prioritize, split into individual issues, and assign
added numbers for ease of reference
Current plan to handle this:
tech-debt-1
)tech debt
item 6
and 7
are resolved locally and a separate issue is up for 11
: #346
4(a) resolved in tech-debt-1
On 5(c) - The site is built and deployed through Fleek. I submitted an issue for the current build problem in fleek and included the error log. Arentweall from discord built and designed what we have so far but I believe he has stepped away.
GrantReviewList.vue
is (almost) a duplicate of GrantList.vue
the following issues address item 20
Below is a list of tech debt-related things I've noticed. When applicable, I've included the PR number where the item was introduced for traceability, in case any of these are intentional for a reason I've missed, and because in some of the linked PRs I left comments on the specific line being referring to
Items with no issue
useGrantRegistryList
composition function mostly duplicated in two files. Seems there are slight differences so maybe leave this?~getTotalRaised
input type should beBigNumberish
, notany
, and the input should be handled/casted as appropriate. FIXGrantRegistryGrantDetail.vue
), sometimes strings (e.g.GrantRegistryNewGrant.vue
), and sometimesany
(e.g. throughoutGrantCard.vue
). Grant ID inputs should always be of typeBigNumberish
and then cast to a number withBigNumber.from(x).toNumber()
, and when a grant ID is used somewhere it should always be numberallowUnlimitedContractSize: true
{ gasLimit: 1000000 }
that was introducedgetGrantRound
, why do we poll every 30 seconds instead of every block which would be every ~13 seconds. (cc @gdixon)data.ts
and itspoll()
method for consistency—we should ensure one call ofpoll()
always results in store's data all being from the same block, and cannot result in the state being populated with data from different blocksHome.vue
duplicates code from bothGrantRegistryList.vue
andGrantRoundsList.vue
, so could be more DRY. Additionally, the styles in home vs. the other two components differ a bit. It seems we can either (1) pull the logic out into reusable composition functions which are reused between components and manually fix styles, or (2) create intermediate components that the above pages would all use which contains both the logic and styles. TBD on which is better, pending looking at this closerbeforeEach
hooks in tests should be refactored to use Waffle fixtures. The lack of fixtures makes gas snapshots and other things dependent on test order, which isn't ideal. More info hereconstants.ts
, e.g. in this file we (1) read the env var, (2) ensure it's valid, and (3) throw if it's not, then (4) export the properly typed env varGrantReviewList.vue
is (almost) a duplicate ofGrantList.vue
- figure out a way to modularize and keep it DRYBaseImage.vue
component to display images (implemented asLogoPtrImage
this could be renamed? cc. @mds1). Context hereipfs.ts
should not need to be aware of Protocol ID 0 https://github.com/dcgtc/dgrants/pull/554Items with related issues / discussions
ipfs-http-client
package. Related to #127cart.ts
and replace with a pathfinding algorithm. More info in #140quoteExactInput
and copy/pasting/editing to createGrantRoundManagerUniV2.sol
, but may not be ideal. Related to https://github.com/dcgtc/dgrants/discussions/263