* Challenge bets
* Store avatar url
* Fix before and after probs
* Check balance before creation
* Calculate winning shares
* pretty
* Change winning value
* Set shares to equal each other
* Fix share challenge link
* pretty
* remove lib refs
* Probability of bet is set to market
* Remove peer pill
* Cleanup
* Button on contract page
* don't show challenge if not binary or if resolved
* challenge button (WIP)
* fix accept challenge: don't change pool/probability
* Opengraph preview [WIP]
* elim lib
* Edit og card props
* Change challenge text
* New card gen attempt
* Get challenge on server
* challenge button styling
* Use env domain
* Remove other window ref
* Use challenge creator as avatar
* Remove user name
* Remove s from property, replace prob with outcome
* challenge form
* share text
* Add in challenge parts to template and url
* Challenge url params optional
* Add challenge params to parse request
* Parse please
* Don't remove prob
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Challenge card styling
* Add to readme about how to dev og-image
* Add emojis
* button: gradient background, 2xl size
* beautify accept bet screen
* update question button
* Add separate challenge template
* Accepted challenge sharing card, fix accept bet call
* accept challenge button
* challenge winner page
* create challenge screen
* Your outcome/cost=> acceptorOutcome/cost
* New create challenge panel
* Fix main merge
* Add challenge slug to bet and filter by it
* Center title
* Add helper text
* Add FAQ section
* Lint
* Columnize the user areas in preview link too
* Absolutely position
* Spacing
* Orientation
* Restyle challenges list, cache contract name
* Make copying easy on mobile
* Link spacing
* Fix spacing
* qr codes!
* put your challenges first
* eslint
* Changes to contract buttons and create challenge modal
* Change titles around for current bet
* Add back in contract title after winning
* Cleanup
* Add challenge enabled flag
* Spacing of switch button
* Put sharing qr code in modal
Co-authored-by: mantikoros <sgrugett@gmail.com>
* Add in group chat bubble
* Show chat bubble on nav with unseen notifs
* Spacing
* More spacing
* Remove chat tab
* Show chat on help/welcome/updates/features groups
* Cleanup
* Scroll with updated height
* Update group links in trigger and api
* Remove extra call during creation
* Remove grouplinks on frontend
* Deserialize
* Consolidate logic
* Move function locally
* In progress refactor to not use Algolia components
* Cleanup
* Only query when necessary
* Read and update url params for query and sort
* Don't push router
* Don't update url if using default sort
* Add popstate listener to improve home navigation
* Remove console.logs
* Make better tabs components, apply to user page
* Remove fishy unused href property from tabs
* Remove tab ID property
* Clean up crufty markup in tabs component
* Fix naming to be right (thanks James!)
* Referrals page added to sidebar; useSaveReferral; InfoBox
* text color
* eslint
* migrate useUsers hook to react-query (#674)
* Remove bet button from free response comments
* Make answer replies more closely spaced together
* Host Ida and Alex's MTG Guesser game (#656)
* Copy over code from Mtg Guesser
* Run Prettier
* CSS Tweaks: Hover feedback, button positioning
* Hide all but counterspell & burn, for now
* Move to /mtg directory
* Fix prettierignore
* smaller jsons (#673)
limited burn to only red cards and also added limited json files to only have fields needed to play
* Add Ida's tweak to card position
Co-authored-by: marsteralex <bob.masteralex@gmail.com>
* Adjust card positioning
* Make the select screen index.html
* Remove other guessing games
* Remove alternate versions; add Alex's email
* Remove unused jsons
* Small FR comments tweaks
* Spacing tweak
* Changing manalinks table UI (#665)
From table to card view
* Fix comment spacing on non-FR
* Move "Send M$" lower in sidebar More list.
* Move leaderboards up in mobile nav
* eslint
* prettier
Co-authored-by: Sinclair Chen <abc.sinclair@gmail.com>
Co-authored-by: James Grugett <jahooma@gmail.com>
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
Co-authored-by: marsteralex <bob.masteralex@gmail.com>
Co-authored-by: ingawei <46611122+ingawei@users.noreply.github.com>
* Make a React context to manage the logged in user events
* Remove unnecessary new user creation promise machinery
* Slight refactoring to auth context code
* Improvements in response to James feedback
* Cache notifs in local, gives instant load of old notifs
* Small refactor, add ss auth
* unused vars
* Add back in replaceAll
* Save all notifs
* Memoize paginated notifs
* Replace all => replace with regexp
* Set a cookie with an up-to-date Firebase ID token
* Implement server-side authentication cookie reading logic
* Change index page to redirect for authed users
* No branch necessary for logged in users on index page
* Add helpers for creating server-side redirects
* Add some common sense redirects
* fixed manalinks bug of claiming own manalink, and also rerouting to home upon claiming if not logged in
* no more multiple hardcoded manalink messages
* start on script
* Revert "Remove category filters"
This reverts commit d6e808e1a3.
* Convert categories to official default groups
* Add new users to default groups
* Rework group cards
* Cleanup
* Add unique bettors to contract and sort by them
* Most bettors to most popular
* Unused vars
* Track unique bettor ids on contracts
* Add followed users' bets to personal markets
* Add new users to welcome, bugs, and updates groups
* Add users to fewer default cats
* Add TipTap editor and renderer components
* Change market description editor to rich text
* Type description as JSON, fix string-based logic
- Delete make-predictions.tsx
- Delete feed logic that showed descriptions
* wip Fix API validation
* fix type error
* fix extension import (backend)
In firebase, typescript compiles imports into common js imports
like `const StarterKit = require("@tiptap/starter-kit")`
Even though StarterKit is exported from the cjs file, it gets imported
as undefined. But it magically works if we import *
If you're reading this in the future, consider replacing StarterKit with
the entire list of extensions.
* Stop load on fail create market, improve warning
* Refactor editor as hook / fix infinite submit bug
Move state of editor back up to parent
We have to do this later anyways to allow parent to edit
* Add images - display, paste + uploading
* add uploading state of image
* Fix placeholder, misc styling
min height, quote
* Fix appending to description
* code review fixes: rename, refactor, chop carets
* Add hint & upload button on new lines
- bump to Tailwind 3.1 for arbitrary variants
* clean up, run prettier
* rename FileButton to FileUploadButton
* add image extension as functions dependency
* Simple limit order UI
* Update bet schema
* Restrict bet panel / bet row to only CPMMBinaryContracts (all binary DPM are resolved)
* Limit orders partway implemented
* Update follow leaderboard copy
* Change cpmm code to take some state instead of whole contract
* Write more of matching algorithm
* Fill in more of placebet
* Use client side contract search for emulator
* More correct matching
* Merge branch 'main' into limit-orders
* Some cleanup
* Listen for unfilled bets in bet panel. Calculate how the probability moves based on open limit orders.
* Simpler switching between bet & limit bet.
* Render your open bets (unfilled limit orders)
* Cancel bet endpoint.
* Fix build error
* Rename open bets to limit bets. Tweak payout calculation
* Limit probability selector to 1-99
* Deduct user balance only on each fill. Store orderAmount of bet. Timestamp of fills.
* Use floating equal to check if have shares
* Add limit order switcher to mobile bet dialog
* Support limit orders on numeric markets
* Allow CORS exception for Vercel deployments
* Remove console.logs
* Update user balance by new bet amount
* Tweak vercel cors
* Try another regexp for vercel cors
* Test another vercel regex
* Slight notifications refactor
* Fix docs edit link (#624)
* Fix docs edit link
* Update github links
* Small groups UX changes
* Groups UX on mobile
* Leaderboards => Rankings on groups
* Unused vars
* create: remove automatic setting of log scale
* Use react-query to cache notifications (#625)
* Use react-query to cache notifications
* Fix imports
* Cleanup
* Limit unseen notifs query
* Catch the bounced query
* Don't use interval
* Unused var
* Avoid flash of page nav
* Give notification question priority & 2 lines
* Right justify timestamps
* Rewording
* Margin
* Simplify error msg
* Be explicit about limit for unseen notifs
* Pass limit > 0
* Remove category filters
* Remove category selector references
* Track notification clicks
* Analyze tab usage
* Bold more on new group chats
* Add API route for listing a bets by user (#567)
* Add API route for getting a user's bets
* Refactor bets API to use /bets
* Update /markets to use zod validation
* Update docs
* Clone missing indexes from firestore
* Minor notif spacing adjustments
* Enable tipping on group chats w/ notif (#629)
* Tweak cors regex for vercel
* Your limit bets
* Implement selling shares
* Merge branch 'main' into limit-orders
* Fix lint
* Move binary search to util file
* Add note that there might be closed form
* Add tooltip to explain limit probability
* Tweak
* Cancel your limit orders if you run out of money
* Don't show amount error in probability input
* Require limit prob to be >= .1% and <= 99.9%
* Fix focus input bug
* Simplify mobile betting dialog
* Move mobile limit bets list into bet dialog.
* Small fixes to existing sell shares client
* Lint
* Refactor useSaveShares to actually read from localStorage, use less bug-prone interface.
* Fix NaN error
* Remove TODO
* Simple bet fill notification
* Tweak wording
* Sort limit bets by limit prob
* Padding on limit bets
* Match header size
Co-authored-by: Ian Philips <iansphilips@gmail.com>
Co-authored-by: ahalekelly <ahalekelly@gmail.com>
Co-authored-by: mantikoros <sgrugett@gmail.com>
Co-authored-by: Ben Congdon <ben@congdon.dev>
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
* Show tip notifications
* Optimizing notifications for mobile
* Unused vars
* Move income reason logic to income notif
* Remove unnecessary icons
* Unused vars
* create pseudo-numeric contracts
* graph and bet panel for pseudo numeric
* pseudo numeric market layout, quick betting
* Estimated value
* sell panel
* fix graph
* pseudo numeric resolution
* bets tab
* redemption for pseudo numeric markets
* create log scale market, validation
* log scale
* create: initial value can't be min or max
* don't allow log scale for ranges with negative values (b/c of problem with graph library)
* prettier delenda est
* graph: handle min value of zero
* bet labeling
* validation
* prettier
* pseudo numeric embeds
* update disclaimer
* validation
* validation
* add trigger for updated user
* Add referral bonuses and notifications for them
* Cleanup
* Add share group button, cleanup
* Cleanup
* Add referrals list to user profile
* Remove unused
* Referral bonus => constant
* Refactor
* Add referral txn to helper fn
* Move reads into firebase transaction
* Use effects to write referral info
* Flex-wrap profile objects
* Small ui changes
* Restrict referral user to one update
* Remove rogue semicolon
* Note about group referral query details
* Track referrals, add them to settings list
* [Portfolio Graph] Shows a graph of the portfolio value over time
* [PortfolioGraph] Fix some nits.
* [PortfolioGraph] Comment out portfolio-value-section
Hides the component completely for now, so we can land today. My plan would be to land today, wait for the history to build up, and then revert this commit. As opposed to leaving the PR idle for a while, and then have to deal with conflicts.
* [PortfolioGraph] Rm duplicate firestore rule
* Set up Firestore structure for mana bounty links
* Split up manalinks into successes and failures
* Allow clients to create manalinks
* Track txnId and successful users
* Store custom amounts in the link
* List all manalinks you've created
* Support backend for claiming manalinks
* Add some more error handling
* Tweak readme
* Fix typescript breakage
* Revert "Convert common imports in functions to be absolute"
This reverts commit c03518e906.
* Scaffolding so `claimManalink` works
* Clean up imports
* Barebones endpoint to claim mana
* Fix rules to only allow link creators to query
* Design out claim giftcard
* List all claimed transactions
* Style in a more awesome card
* Fix import
* Padding tweak
* Fix useManalinkTxns hook
* /send -> /link
* Tidy up some details
* Do a bunch of random manalinks work
* Fix up LinksTable to build
* Clean up LinksTable an absurd amount
* Basic details functionality on manalinks table
* Work on manalink claim stuff
* Fix up some merge mess
* Not-signed-in flow implemented
* Better manalinks table
* Only show outstanding links in table
* Use new `ManalinkTxn` type
* /link -> /links
* Change manalinks page UI to use nice looking tabs
* Many fixes to manalinks UI
* Default to 1 use
* Tidying up
* Some copy changes based on feedback
* Add required index
Co-authored-by: Marshall Polaris <marshall@pol.rs>
* Update api pool and totalLiquidity
* fix pool type
* reverting totalLiquidity changes
* pool and totalLiquidity docs description
* Changed pool type to match elsewhere
* [Leaderboards] Added period toggle for leaderboards
* [Leaderboards] TopBettors now calculates by period correctly
* [Leaderboard] Use a subcollection for the portfolio caching
* [Leaderboard] Switches to a tab view, temporarily hides the missing topBettors periods
* [Leaderboard] Reverts random yarn.lock changes
* Fix type error from merge
* Increase timeout on update metrics
* Update firebase rules to allow reading user portfolioHistory
Co-authored-by: Pico2x <pico2x@gmail.com>
* Folds=>groups
* Show groups on user profile
* Allow group creation from /create
* Refactoring to groups
* Convert folds to groups
* Add new add to group notification
* Fix user profile tab bug
* Add groups nav and tab for my groups
* Remove bad profile pages
* remove comments
* Add group list dropdown to sidebar
* remove unused
* group cards ui
* Messages=>Comments, v2, groupDetails
* Discussion time
* Cleaning up some code
* Remove follow count
* Fix pool scoring for cpmm
* Fix imports
* Simplify rules, add GroupUser collection
* Fix group cards
* Refactor
* Refactor
* Small fixes
* Remove string
* Add api error detail handling
* Clear name field
* Componentize
* Spacing
* Undo userpage memo
* Member groups are already in my tab
* Remove active contracts reference for now
* Remove unused
* Refactoring
* Allow adding old questions to a group
* Rename
* Wording
* Throw standard v2 APIError
* Hide input for non-members, add about under title
* Multiple names to & # more
* Move comments firestore rules to appropriate subpaths
* Group membership, pool=>volume
* Cleanup, useEvent
* Raise state to parent
* Eliminate unused
* Cleaning up
* Clean code
* Revert tags input deletion
* Cleaning code
* Stylling
* Limit members to display
* Array cleanup
* Add categories back in
* Private=>closed
* Unused vars
* Create Top Followed Users leaderboard
* Switch to increment/decrement approach for caching user follower counts
* Backfill script for user follow counts
* Appease ESLint
* Address review comment
Co-authored-by: James Grugett <jahooma@gmail.com>
* Add tip arrows UI (visual)
* move tipper into its own component
* simplify score calculation
* Add tip txns
- more specific txn types
- fix transact cloud function to be able to create tip txns
- insert tips into comments via a context
* Refactor tipper to send tip txns
* Stop tipping yourself. Disable anons.
* Style tipper (smaller)
* remove default exports
* capitalize tooltips
* rename stuff
* add exhausting hook dependencies
* replace context with prop threading
* fix eslint unused vars
* fix: thread tips correctly into fr comments
* Add tip arrows UI (visual)
* move tipper into its own component
* simplify score calculation
* Add tip txns
- more specific txn types
- fix transact cloud function to be able to create tip txns
- insert tips into comments via a context
* Refactor tipper to send tip txns
* Stop tipping yourself. Disable anons.
* Style tipper (smaller)
* remove default exports
* capitalize tooltips
* rename stuff
* add exhausting hook dependencies
* replace context with prop threading
* fix eslint unused vars
* Added radio buttons to market creation (non functional)
* Ignoring vs code files
Should this be done in the repo or should everyone using VS Code do that himself globally on his machine(s)?
* Removed 'automatic' resolution
* added union type for resolution
* revert: resolution could be anything here (non binary markets)
* Expanded ChoicesToggleGroup for string choices
* Added combined resolution and required buttons to market creation
* restricted automatic resolution to binary markets
* added automatic resolution to contract
* added automatic resolution to contract overview
* string or number array to mixed array
* created const for resolutions
* Added comments for leading semicolons
* configuration of auto resolution on market creation
* v1.22.19
* v1.0.0
* v0.0.0
* v1.0.0
* v1.22.19
* Mock display automatic resolution
* Revert changes to market creation
* Revert "v1.22.19"
This reverts commit 22f59adc9c.
* Removed resolutiontype from contract creation
* Added auto resolution time to contract
* Auto resolution date editable
* refactoring
* Editable interface for auto resolution
* New edit interface for auto resolution
* Setting of auto resolve date when changing close date
* prohibited changing other peoples markets
* removed unnecessary export
* refactoring
(cherry picked from commit 4de86d5b08)
* Added comments for leading semicolons
(cherry picked from commit 60739c7853)
* Ignoring vs code files
Should this be done in the repo or should everyone using VS Code do that himself globally on his machine(s)?
(cherry picked from commit 944de9398a)
* removed unused imports and variables
* added type for binary resolution
* Prettier
* const for binary resolutions
* using the type "resolution"
* Prettier
* Re-added comment
* Update functions/src/create-contract.ts
* Revert "Ignoring vs code files"
This reverts commit 09aea5c207.
* launch config for debugging with vs code WIP
* "Launch Chrome" does not work since login via google is not possible in debugger-chrome
* Breakpoints are unbound when attached to chrome
* Revert "Added comments for leading semicolons"
* prettier
* linebreak crlf
* vscode settings
* correct linebreaks
* search exclusion
* automatic prettifier
* vscode settings
* correct linebreaks
* search exclusion
* automatic prettifier
* Working debugger config
* fix merge
* Removed comments, default resolution MKT
* removed vscode from gitignore
* refactoring description update
* Added auto resolution to LiteMarket
* fix date, setDate mutates object
* fixed firestore.rules
* script to add auto resolution to all markets
* regularely auto resolve markets
* fix description error
* moved calculate ts for access in firebase
* Revert "moved calculate ts for access in firebase"
This reverts commit 8380bf4f72.
* fix reference to calculate for firebase
* fixed references to time
* renamed function
* added description
* added auto resolution to description
* direct bool check instead of != null
* direct bool check instead of != undefined
* remove explicit type
* Fix free response markets
* removed contract from functionname
* interval set to 1h
* query instead of filter
* folds ~> contracts
* query instead of filter
* promise.all instead of foreach
* removed contractDoc from function header
* removed autoResolution from function header
* batchedWaitAll instead of promise.all
* removed unused parameter
* replaced auto resolution with constant
* suggestions from PR
* fix comment
* removed unused imports
* added scripts to add close dates on prod
* optimization
* removed test script
* security: only auto resolve markets which are closed
* consistency checks
* re-added type check for binary markets
* moved check of probability into switch case block
* removed unused import
* auto resolution every minute
* auto resolution time optional
* pr fixes
* split into two function to access the pool value as number
* rename function
* changes to the exported object
* removal of totalLiquidity: this value was only set for binary markets and it's value is identical to getPoolvalue(contract)
* pool: set in the same way as in the "Market Overview" from contract-info-dialog.tsx now
* totalShares: total shares of the contract. It's value is equal to the old "pool" value in case of binary markets
* update docs
* removal of totalShares
* Slightly fix up ChoicesToggleGroup
* Kill a bunch of dead code and unused variables
* Turn on no-unused-vars lint
* Un-kill some dead code that James likes
* Revert "Revert "Notifications ux fixes - wip (#383)""
This reverts commit 699b03eb42.
* Group & provide more control over notification display
* UI/UX improvements
* Remove unused text key
* Refactor
* Refactor
* Show answer resolution in notification
* Disable eslint on single linefor exhaustive deps
* Handle arbritrary notifications
* Refactor
* Remove unused vars
* Add follow user
* Various UX improvements, add follow notif
* Various small ui changes
* Show notification settings breakdown
* Improve notification status lines