-
-
Notifications
You must be signed in to change notification settings - Fork 775
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
Grants checkout POST request + tx validator updates #7942
Merged
thelostone-mc
merged 9 commits into
gitcoinco:grants-round-8
from
ScopeLift:checkout-post-request-updates
Nov 26, 2020
Merged
Grants checkout POST request + tx validator updates #7942
thelostone-mc
merged 9 commits into
gitcoinco:grants-round-8
from
ScopeLift:checkout-post-request-updates
Nov 26, 2020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… + enforce from address
mds1
requested review from
amustapha,
chibie,
danlipert,
frankchen07,
octavioamu,
PixelantDesign and
thelostone-mc
as code owners
November 26, 2020 00:29
thelostone-mc
approved these changes
Nov 26, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
thelostone-mc
added a commit
that referenced
this pull request
Dec 1, 2020
* setup json grants endpoint and view * add remove from cart * add model fields * add styles * template changes * links on cat * grant edition * Kevin fix multigrant (#7870) * n:n matching rounds <> grants * add migration * chore: tiny fixes Co-authored-by: owocki <[email protected]> * fix(grant): validate twitter handle for /grants/new (#7890) * fix(grant): validate twitter handle for /grants/new * fix(grants): validate twitter handle in /new * fix broken grant creation + add region support * Idena Integration (#7646) * Added basic setups * Implemented rest of flow * Import refactoring * Compress new image * Removed Idena from soon section * Typo * Redesign idena trust section * Check for idena uniques * Applied review suggestion * Added idena disconnect button * Moved idena_token from database to redis * Moved idena_nonce from database to redis * Moved idena_status and is_idena_verified to db from redis * Added update_idena_status command * Added recheck button * Added daily cronjob for update idena status * Added idena to post data * Added idena to clr calculation * Added idena to trust bounes * Typo * Some tweaks * Recreated migration Co-authored-by: Aditya Anand M C <[email protected]> * recreate migration * Add Saturation Documentation (#7887) * add quick documentation on saturation methods. * add saturation documentation migration Co-authored-by: Aditya Anand M C <[email protected]> * set default prediction curve * another fix * save grant * saving grant is killing me * was a comma... * fix quill render * add editable fields * video in description * refactor of grantclr to make the round_num an actual int + add a subround/customer field (#7685) * WIP refactor * linter * adds customer field * fix: help texts in model fields * fix(views): sub_round_slug default should be 'all' * attempt at frontend todos * feat: make customer_name & sub_round_slug optional - add unique_together constraint * feat: more params to clr_grants view and /clr urls * feat: implement new clr params in frontend * feat: new migration * feat: add new clr params in card info * update pledge grant creation * merge migrations Co-authored-by: Chibuotu Amadi <[email protected]> * add new endpoint for grant cancellation (#7912) * cancel grant * zkSync refactor (#7899) * Initial setup and cleanup for zksync refactor * zkSync CheckoutManager now implemented and working * Handle unsupported tokens and update fee estimate accordingly * Support fee estimation, delete old zksync code, pass data to parent with events * Add zkSync modal with all required functionality * Add zksync balance check, warn user if closing window after checkout started * Bump zksync version * Add missing grant_type field to default Rinkeby grants, update zksync gas estimate (#7915) * fix for grants without type * Add ActiveCLR Navigations (#7877) * Add custom display text and owner to model * Include active_clr rounds in context data * Update the sidebar with active_clr links * Add active CLRs on grants top * Fix spacing * Make banner clickable * Fix sidebar activerounds link * Reorder sidebar * Fix indent * Redo migrations * Use gitcoin icon as default * Fix indent * Hide sidenav if no active CLR rounds * fix: use sub_round_slug in active_clr_round display * new migration * use sub_round_slug in sidebar_search * indent code * chore: update help text * fix issue * update help text * improve display of clr round text Co-authored-by: Chibuotu Amadi <[email protected]> Co-authored-by: Aditya Anand M C <[email protected]> * chore(grants): estimate clr via celery (#7913) * chore: move predict_clr to celery task * keep predict_clr login in clr.py; house keeping * update clr print statements with sub_round_slug * add debug comment to predict_clr task * move print statements to predict_clr celery; use passed args * review feedback * add missing 'self' argument to predict_clr task Co-authored-by: Aditya Anand M C <[email protected]> * ui: redo collection UI #7750 (#7929) * Make Grant Banner/Bacgkround image customizable (#7855) * Fix reverse url issue by checking if params exist * Fix typo * Create model and register in Admin * Display custom routing policy * Add comment to model class and fix display in admin * Fix incorrect variable spelling * Redo Migrations * Create new model and add further model docs * Removed trailing comma * recreate migration Co-authored-by: Aditya Anand M C <[email protected]> * fix styles and model repr * Implement new contributions flow (#7891) * Implement new flow * backend wiring * update banner button styling * minor fix Co-authored-by: Aditya Anand M C <[email protected]> * Check if query params exists before attempting to access elements / Grants auto fill (#7898) * Check if query params exists before attempting to access elements * Uncomment block * Rewrite to use URLSearchParams * add image upload to details edit * fix code * bump eslint optional-chaining support and fix lint errors * remove prints * Refactor And Improve The Trust Bonus Tab (#7934) * Replace the Ad-hoc Trust Bonus UI with a single Vue App * Remove the trust bonus template and replace it with a new one that uses Vue top to bottom * Create a re-usable Vue component for active trust service rows, with events for callbacks, and slots for overriding any given component of the UI as needed * Create individual Vue components for each of the modal views required by certain trust services, including refactoring the BrightID implementation to use Vue * Cleanup copy and design of the POAP modal * Convert the new Idena row to use the Vue component * Rip all SMS verification code out of the cart * Show Trust Bonus message in cart based on all services * Send a single email for all grant items in cart (#7880) * Send a single email for all items in cart Don't send an email for negative grant contribution as well as wait for grant processing task to complete before sending Remove old code Remove space Remove unused import Update with new templates Co-authored-by: Miguel Angel Gordián <[email protected]> * Ensure styles are the same * Remove chord * Update thank_you_for_supporting.txt * Fix sync helper to use new api Co-authored-by: Miguel Angel Gordián <[email protected]> * bump travis node version * Generate collection thumbnail (#7587) * Genrate collection thumbnail * Fix tuple error on grant url * Update avatar for collection thumbs * #7822 * travis npm cache false * travis syntax * compress image and upload logo * add "maximize your grant" blog link to new grant email (#7945) * Grants checkout POST request + tx validator updates (#7942) * Some cleanup/prep before updating POST requests * Saves and deletes JSON store for standard checkout * Working POST requests with validation for L1 and L2 checkout * Various validator changes and setup + upgrade zksync-checkout version + enforce from address * Add migration for updating checkout_type field * Add checkout_type support, fix beforeunload handler, bump zksync-checkout version * Set checkout_type on contribution creation * Remove unused grant checks and unused zksync-recovery code * Validator properly validates zkSync transactions * a/b test of sort order (#7941) * #7792 * redo mig + fix indent Co-authored-by: Aditya Anand M C <[email protected]> * add twitter verification * missing migration * quick view * fix styles and bugs * Fixing idena verified badge (#7946) * fix broken UI * show my items only if user is logged in * update text in did you know * update helptext + make background_image in GRPolicy * add policy name in GRPolicy * update grant cancel text * split button into 2 lines * round off decimals * remove current/past sponsors * fix broke CLR URL in UI * ensure rectangular CLR banner gets applied on landing * fix banner image + append / to url * clear error on successfull submit * hide prediction curve when grant is not part of CLR * title styles * fix UI error * enable tabs * styles for tx tab * show only active grant types in UI * back link * fix rerender rich description * Fix incorrect donation summary values (#7952) * make label clickable * add idle grants * validation * fix edit grants bug * add browser validation * strict validation * hide follow on logout * fix checker for landing * post_data fix for grants round 8 * update grant count * broken addToCart URL * fix grant edit flow * chore: show view collection instead on add to cart in explorer * ensure logged in user sees fav + add to collection * fix broken code * Fix display of some collections (#7960) * revert: multiple contrib -> 1 email change * Fixes grants 8 (#7962) * Fix checkIsCurator function * Fix removeCollection function due to bad object construction * Remove mandatory @ and validate twitter urls * add is on team for cart * change card state from sidebar * small clr styles * fix(grants): backend twitter validation (#7961) * revert: multiple contrib -> 1 email change * fix: twitter validation * validate twitter handle in grant edit * add missing '@' symbol * fix if logic * improve backend validation * fix spacing * fix indentation * return response; save username in db Co-authored-by: Aditya Anand M C <[email protected]> * add back sidecart to details * add compressor to grants creation * Bump zksync version, prevent user from clicking standard checkout button twice (#7972) * Open Idena download link in a new tab (#7973) * Fix twitter profile verification error (#7974) * fix thumbail and grant preview on mini collections view (#7975) * unify styles * fix broken ts * fix twitter username validation in frontend (#7976) * fix edit grants not working (#7977) * remove logo watcher * collections card images css * Email & other fixes (#7964) * quest_of_the_day return 0 if length is 0 * Returns an IndexError otherwise * fix: remove <br/> * the buttons need to be placed sideways * Minor ui fix * Replace Slack icon to Discord invite in emails' footer * update gr8 twitter cards (#7980) * eslint Co-authored-by: Aditya Anand M C <[email protected]> Co-authored-by: owocki <[email protected]> Co-authored-by: Chibuotu Amadi <[email protected]> Co-authored-by: Rhonin <[email protected]> Co-authored-by: fronk <[email protected]> Co-authored-by: Matt <[email protected]> Co-authored-by: Abdulhakeem Adetunji Mustapha <[email protected]> Co-authored-by: Miguel Angel Gordián <[email protected]> Co-authored-by: Ben DiFrancesco <[email protected]> Co-authored-by: corydickson <[email protected]> Co-authored-by: Angela Gilhotra <[email protected]> Co-authored-by: Dan Lipert <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #7744
Closes #7751
This PR updates the full Ethereum grant checkout flow to work as follows:
BulkCheckout
contract or with zkSync Checkoutkey=user_address
andview='ethereum_cart_data'
bulk-fund
endpoint to create all contribution objectssplit_tx_id
equal to the L1 transaction hash. This transaction executed all transfers for all items in the cart. They also have checkout_type=eth_std`split_tx_id
equal tosync-tx:uniqueZkSyncTxHash
. Each contribution has its own unique transaction hash,uniqueZkSyncTxHash
corresponding to a single transfer on zkSync. All transaction hashes come are provided to us as the promise resolution from zkSync checkout, and they are already prefixed withsync-tx:
when we receive them. They also have checkout_type=eth_zksync`bulk-fund
endpoint finishes, the response it sends to the frontend returns success/failure data for all contributions. Successes indicate contributions were created successfully, failures indicate the contribution could not be createdkey=user_address-timestamp
andview='ethereum_cart_data'
. This way we have their cart data backed up and future checkouts do not overwrite it. Now we are done!The transaction validator now works as follows:
checkout_type == 'eth_zksync'
split_tx_id
fieldoriginated_address
andsuccess
status based on the transaction data (and update other fields to indicate validator was successful)checkout_type == 'eth_std
checkout_type
is anything else, return and do nothing. (In a separate PR it may be worth moving the zCash validation here, that way all contribution validation is from the same script/cron)Other changes and notes:
zksync-recovery
page and functions that are used to recover funds from a user's Gitcoin zkSync wallet and send it to their regular zkSync wallet. Since we no longer use Gitcoin zkSync wallets, this code can be removed. It can be added back later if it becomes necessary for users to recover funds.app/grants/views.py
, we remove 3 outdated grant contribution checks that now will never occurbulk-fund
endpoint to return a list of contribution IDs, then add a new endpoint that the frontend can use to validate that each one exists before redirecting the user to the success modal