* Set common package.json sideEffects: false
* Configure SWC to modularize lodash imports
* Import specific lodash functions instead of _
* Add an eslint rule to avoid full lodash import
* Rename `lib/firebase/api-call` -> `lib/firebase/fn-call`
This relieves ambiguity now that we will be using our actual
public API in the client.
* Rewrite client API calls to createContract, placeBet
* Tiny fixup for client market creation code
* Link to comments & highlight comment
* Copy link, show toast and fade bg
* Remove unused imports
* Standardize link copied toast
* Add linking to answer comment threads
* Refactor open answers component, use indigo highlight
* Distinguish chosen answer a bit more
* Configure functions module to allow absolute imports
* Convert common imports in functions to be absolute
* Convert common imports in web to be absolute
* Convert lib imports in web to be absolute
* Convert hooks imports in web to be absolute
* Convert components imports in web to be absolute
* Remove number from chosen FR answer
* Distinguish wining and losing FR answers
* Show no answers text
* Simplify get answer items logic
* Show answer number
* Show answer # when resolving
* Add legend to free response graph
* Hide answers panel unless resolving. Correctly order answers
* No gray background for add answer & resolve panel. Tweak spacing
* Max answer length 240 chars
* Show answer text in resolution for market page, card instead of number.
* Remove remaining answer #'s. Refactor outcome/resolution labels.
* Move answer panel back up
* Tweak spacing
* Update placement of bet button on mobile for FR answer feed item
* Fix reversed feed for binary markets
* Show multi resolve options
* Clean up unused parts of answer item
* Lighten resolve buttons
* Show answer text in market resolve email
* Split BuyAmountInput out of AmountInput
* Buy and sell tabs. Compute some sell info
* In progress
* BuyPanel & SellPanel with banner above that shows current shares and toggle button
* Remove "Remaining balance"
* Bring back 'Place a trade'. Tweaks
* Sell shares cloud function.
* Sell all shares by default. Switch back to buy if sell all your shares.
* Cache your shares in local storage so sell banner doesn't flicker.
* Compute sale value of shares with binary search to keep k constant.
* Update bets table to show BUY or SELL
* Fixes from Stephen's review
* Don't allow selling more than max shares in cloud function
* Use modal for sell shares on desktop.
* Handle floating point precision in max shares you can sell.
* cpmm initial commit: common logic, cloud functions
* remove unnecessary property
* contract type
* rename 'calculate.ts' => 'calculate-dpm.ts'
* rename dpm calculations
* use focus hook
* mechanism-agnostic calculations
* bet panel: use new calculations
* use new calculations
* delete markets cloud function
* use correct contract type in scripts / functions
* calculate fixed payouts; bets list calculations
* new bet: use calculateCpmmPurchase
* getOutcomeProbabilityAfterBet
* use deductFixedFees
* fix auto-refactor
* fix antes
* separate logic to payouts-dpm, payouts-fixed
* liquidity provision tracking
* remove comment
* liquidity label
* create liquidity provision even if no ante bet
* liquidity fee
* use all bets for getFixedCancelPayouts
* updateUserBalance: allow negative balances
* store initialProbability in contracts
* turn on liquidity fee; turn off creator fee
* Include time param in tweet url, so image preview is re-fetched
* share redemption
* cpmm ContractBetsTable display
* formatMoney: handle minus zero
* filter out redemption bets
* track fees on contract and bets; change fee schedule for cpmm markets; only pay out creator fees at resolution
* small fixes
* small fixes
* Redeem shares pays back loans first
* Fix initial point on graph
* calculateCpmmPurchase: deduct creator fee
* Filter out redemption bets from feed
* set env to dev for user-testing purposes
* creator fees messaging
* new cfmm: k = y^(1-p) * n^p
* addCpmmLiquidity
* correct price function
* enable fees
* handle overflow
* liquidity provision tracking
* raise fees
* Fix merge error
* fix dpm free response payout for single outcome
* Fix DPM payout calculation
* Remove hardcoding as dev
Co-authored-by: James Grugett <jahooma@gmail.com>
* Compute answer group feed items
* Refactor feed code into 5 files under feed directory.
* Convert to typed ActivityItems
* Use feed "mode". Clean up cases.
* Implement feed answer groups!
* FR: Use nested comments/bets under answers for contract page. filter more items out of FR feed.
* Linkify answer text on activity feed
* Default feed excluded tags are case insensitive
* Show followed folds first
* Allow filtering your trades
* Store users's last sort in localstorage
* Use avatar of user that submitted answer and name instead of pencil icon. Spacing. Show up to 3 comments in asnwer group.
* Don't reveal market creator's bets
* Fix communites feed to be abbreviated
* Remove complicated answer group logic
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
* Loan backend: Add loanAmount field to Bet, manage loans up to max loan amount per market -- buy, sell, and resolve.
* Loan frontend: show your loan amount in bet panel, answer bet panel
* Resolve emails include full payout not subtracting loan
* Exclude sold bets from current loan amount
* Handle bets table for loans. Sell dialog explains how you will repay your loan.
* Floor remaining balance
* Fix layout of create answer bet info
* Clean up Sell popup UI
* Fix bug where listen query was not updating data.
* Reword loan copy
* Adjust bet panel width
* Fix loan calc on front end
* Add comment for includeMetadataChanges.
Co-authored-by: Austin Chen <akrolsmir@gmail.com>