a90b765670
* Adding, awarding, and sorting by bounties
* Add notification for bounty award as tip
* Fix merge
* Wording
* Allow adding in batches of m250
* import
* imports
* Style tabs
* Refund unused bounties
* Show curreantly available, reset open to 0
* Refactor
* Rerun check prs
* reset yarn.lock
* Revert "reset yarn.lock"
This reverts commit 4606984276
.
* undo yarn.lock changes
* Track comment bounties
141 lines
2.8 KiB
TypeScript
141 lines
2.8 KiB
TypeScript
// A txn (pronounced "texan") respresents a payment between two ids on Manifold
|
|
// Shortened from "transaction" to distinguish from Firebase transactions (and save chars)
|
|
type AnyTxnType =
|
|
| Donation
|
|
| Tip
|
|
| Manalink
|
|
| Referral
|
|
| UniqueBettorBonus
|
|
| BettingStreakBonus
|
|
| CancelUniqueBettorBonus
|
|
| CommentBountyRefund
|
|
type SourceType = 'USER' | 'CONTRACT' | 'CHARITY' | 'BANK'
|
|
|
|
export type Txn<T extends AnyTxnType = AnyTxnType> = {
|
|
id: string
|
|
createdTime: number
|
|
|
|
fromId: string
|
|
fromType: SourceType
|
|
|
|
toId: string
|
|
toType: SourceType
|
|
|
|
amount: number
|
|
token: 'M$' // | 'USD' | MarketOutcome
|
|
|
|
category:
|
|
| 'CHARITY'
|
|
| 'MANALINK'
|
|
| 'TIP'
|
|
| 'REFERRAL'
|
|
| 'UNIQUE_BETTOR_BONUS'
|
|
| 'BETTING_STREAK_BONUS'
|
|
| 'CANCEL_UNIQUE_BETTOR_BONUS'
|
|
| 'COMMENT_BOUNTY'
|
|
| 'REFUND_COMMENT_BOUNTY'
|
|
|
|
// Any extra data
|
|
data?: { [key: string]: any }
|
|
|
|
// Human-readable description
|
|
description?: string
|
|
} & T
|
|
|
|
type Donation = {
|
|
fromType: 'USER'
|
|
toType: 'CHARITY'
|
|
category: 'CHARITY'
|
|
}
|
|
|
|
type Tip = {
|
|
fromType: 'USER'
|
|
toType: 'USER'
|
|
category: 'TIP'
|
|
data: {
|
|
commentId: string
|
|
contractId?: string
|
|
groupId?: string
|
|
}
|
|
}
|
|
|
|
type Manalink = {
|
|
fromType: 'USER'
|
|
toType: 'USER'
|
|
category: 'MANALINK'
|
|
}
|
|
|
|
type Referral = {
|
|
fromType: 'BANK'
|
|
toType: 'USER'
|
|
category: 'REFERRAL'
|
|
}
|
|
|
|
type UniqueBettorBonus = {
|
|
fromType: 'BANK'
|
|
toType: 'USER'
|
|
category: 'UNIQUE_BETTOR_BONUS'
|
|
data: {
|
|
contractId: string
|
|
uniqueNewBettorId?: string
|
|
// Old unique bettor bonus txns stored all unique bettor ids
|
|
uniqueBettorIds?: string[]
|
|
}
|
|
}
|
|
|
|
type BettingStreakBonus = {
|
|
fromType: 'BANK'
|
|
toType: 'USER'
|
|
category: 'BETTING_STREAK_BONUS'
|
|
data: {
|
|
currentBettingStreak?: number
|
|
}
|
|
}
|
|
|
|
type CancelUniqueBettorBonus = {
|
|
fromType: 'USER'
|
|
toType: 'BANK'
|
|
category: 'CANCEL_UNIQUE_BETTOR_BONUS'
|
|
data: {
|
|
contractId: string
|
|
}
|
|
}
|
|
|
|
type CommentBountyDeposit = {
|
|
fromType: 'USER'
|
|
toType: 'BANK'
|
|
category: 'COMMENT_BOUNTY'
|
|
data: {
|
|
contractId: string
|
|
}
|
|
}
|
|
|
|
type CommentBountyWithdrawal = {
|
|
fromType: 'BANK'
|
|
toType: 'USER'
|
|
category: 'COMMENT_BOUNTY'
|
|
data: {
|
|
contractId: string
|
|
commentId: string
|
|
}
|
|
}
|
|
|
|
type CommentBountyRefund = {
|
|
fromType: 'BANK'
|
|
toType: 'USER'
|
|
category: 'REFUND_COMMENT_BOUNTY'
|
|
data: {
|
|
contractId: string
|
|
}
|
|
}
|
|
|
|
export type DonationTxn = Txn & Donation
|
|
export type TipTxn = Txn & Tip
|
|
export type ManalinkTxn = Txn & Manalink
|
|
export type ReferralTxn = Txn & Referral
|
|
export type BettingStreakBonusTxn = Txn & BettingStreakBonus
|
|
export type UniqueBettorBonusTxn = Txn & UniqueBettorBonus
|
|
export type CancelUniqueBettorBonusTxn = Txn & CancelUniqueBettorBonus
|
|
export type CommentBountyDepositTxn = Txn & CommentBountyDeposit
|
|
export type CommentBountyWithdrawalTxn = Txn & CommentBountyWithdrawal
|