f047f0d196
* feat(polygon): polygon mainnet and testnet support WIP! DO NOT USE * fix unit test * fix explorer links * compute usdc prices * - fix the header currency label - fix unit tests * polygon gradient colors * chore: adding weth to common bases (#3025) * adding weth to common bases * adding usdc and dai * adding usdt and wbtc * fix a bunch of polish issues - 3085 detection - some wrapping stuff - the network selector dropdown * fix wrap/unwrap notification text on polygon * background color per the figma * subgraph url * fix the re-render blinking on the network selector * failed network switch * clean up duplicate code in the network switching functions * fix text color in the privacy notice on light mode * add some routing constants for polygon * do not show the separator in the trade route if auto router is not supported * - network switching without a wallet connected - remove v2 stuff from pool page when n/a - remove WMATIC from common bases on polygon * background colors of network alert * oops fix background on network alert * clean up optimism labels * fix alignment of text on downtime warning * finish the network alert styles Co-authored-by: Sara Reynolds <30504811+snreynolds@users.noreply.github.com>
191 lines
4.9 KiB
TypeScript
191 lines
4.9 KiB
TypeScript
import { createAction } from '@reduxjs/toolkit'
|
|
import { TradeType } from '@uniswap/sdk-core'
|
|
|
|
import { VoteOption } from '../governance/types'
|
|
|
|
export interface SerializableTransactionReceipt {
|
|
to: string
|
|
from: string
|
|
contractAddress: string
|
|
transactionIndex: number
|
|
blockHash: string
|
|
transactionHash: string
|
|
blockNumber: number
|
|
status?: number
|
|
}
|
|
|
|
/**
|
|
* Be careful adding to this enum, always assign a unique value (typescript will not prevent duplicate values).
|
|
* These values is persisted in state and if you change the value it will cause errors
|
|
*/
|
|
export enum TransactionType {
|
|
APPROVAL = 0,
|
|
SWAP = 1,
|
|
DEPOSIT_LIQUIDITY_STAKING = 2,
|
|
WITHDRAW_LIQUIDITY_STAKING = 3,
|
|
CLAIM = 4,
|
|
VOTE = 5,
|
|
DELEGATE = 6,
|
|
WRAP = 7,
|
|
CREATE_V3_POOL = 8,
|
|
ADD_LIQUIDITY_V3_POOL = 9,
|
|
ADD_LIQUIDITY_V2_POOL = 10,
|
|
MIGRATE_LIQUIDITY_V3 = 11,
|
|
COLLECT_FEES = 12,
|
|
REMOVE_LIQUIDITY_V3 = 13,
|
|
SUBMIT_PROPOSAL = 14,
|
|
}
|
|
|
|
export interface BaseTransactionInfo {
|
|
type: TransactionType
|
|
}
|
|
|
|
export interface VoteTransactionInfo extends BaseTransactionInfo {
|
|
type: TransactionType.VOTE
|
|
governorAddress: string
|
|
proposalId: number
|
|
decision: VoteOption
|
|
reason: string
|
|
}
|
|
|
|
export interface DelegateTransactionInfo extends BaseTransactionInfo {
|
|
type: TransactionType.DELEGATE
|
|
delegatee: string
|
|
}
|
|
|
|
export interface ApproveTransactionInfo extends BaseTransactionInfo {
|
|
type: TransactionType.APPROVAL
|
|
tokenAddress: string
|
|
spender: string
|
|
}
|
|
|
|
interface BaseSwapTransactionInfo extends BaseTransactionInfo {
|
|
type: TransactionType.SWAP
|
|
tradeType: TradeType
|
|
inputCurrencyId: string
|
|
outputCurrencyId: string
|
|
}
|
|
|
|
export interface ExactInputSwapTransactionInfo extends BaseSwapTransactionInfo {
|
|
tradeType: TradeType.EXACT_INPUT
|
|
inputCurrencyAmountRaw: string
|
|
expectedOutputCurrencyAmountRaw: string
|
|
minimumOutputCurrencyAmountRaw: string
|
|
}
|
|
export interface ExactOutputSwapTransactionInfo extends BaseSwapTransactionInfo {
|
|
tradeType: TradeType.EXACT_OUTPUT
|
|
outputCurrencyAmountRaw: string
|
|
expectedInputCurrencyAmountRaw: string
|
|
maximumInputCurrencyAmountRaw: string
|
|
}
|
|
|
|
export interface DepositLiquidityStakingTransactionInfo {
|
|
type: TransactionType.DEPOSIT_LIQUIDITY_STAKING
|
|
token0Address: string
|
|
token1Address: string
|
|
}
|
|
|
|
export interface WithdrawLiquidityStakingTransactionInfo {
|
|
type: TransactionType.WITHDRAW_LIQUIDITY_STAKING
|
|
token0Address: string
|
|
token1Address: string
|
|
}
|
|
|
|
export interface WrapTransactionInfo {
|
|
type: TransactionType.WRAP
|
|
unwrapped: boolean
|
|
currencyAmountRaw: string
|
|
chainId?: number
|
|
}
|
|
|
|
export interface ClaimTransactionInfo {
|
|
type: TransactionType.CLAIM
|
|
recipient: string
|
|
uniAmountRaw?: string
|
|
}
|
|
|
|
export interface CreateV3PoolTransactionInfo {
|
|
type: TransactionType.CREATE_V3_POOL
|
|
baseCurrencyId: string
|
|
quoteCurrencyId: string
|
|
}
|
|
|
|
export interface AddLiquidityV3PoolTransactionInfo {
|
|
type: TransactionType.ADD_LIQUIDITY_V3_POOL
|
|
createPool: boolean
|
|
baseCurrencyId: string
|
|
quoteCurrencyId: string
|
|
feeAmount: number
|
|
expectedAmountBaseRaw: string
|
|
expectedAmountQuoteRaw: string
|
|
}
|
|
|
|
export interface AddLiquidityV2PoolTransactionInfo {
|
|
type: TransactionType.ADD_LIQUIDITY_V2_POOL
|
|
baseCurrencyId: string
|
|
quoteCurrencyId: string
|
|
expectedAmountBaseRaw: string
|
|
expectedAmountQuoteRaw: string
|
|
}
|
|
|
|
export interface MigrateV2LiquidityToV3TransactionInfo {
|
|
type: TransactionType.MIGRATE_LIQUIDITY_V3
|
|
baseCurrencyId: string
|
|
quoteCurrencyId: string
|
|
isFork: boolean
|
|
}
|
|
|
|
export interface CollectFeesTransactionInfo {
|
|
type: TransactionType.COLLECT_FEES
|
|
currencyId0: string
|
|
currencyId1: string
|
|
}
|
|
|
|
export interface RemoveLiquidityV3TransactionInfo {
|
|
type: TransactionType.REMOVE_LIQUIDITY_V3
|
|
baseCurrencyId: string
|
|
quoteCurrencyId: string
|
|
expectedAmountBaseRaw: string
|
|
expectedAmountQuoteRaw: string
|
|
}
|
|
|
|
export interface SubmitProposalTransactionInfo {
|
|
type: TransactionType.SUBMIT_PROPOSAL
|
|
}
|
|
|
|
export type TransactionInfo =
|
|
| ApproveTransactionInfo
|
|
| ExactOutputSwapTransactionInfo
|
|
| ExactInputSwapTransactionInfo
|
|
| ClaimTransactionInfo
|
|
| VoteTransactionInfo
|
|
| DelegateTransactionInfo
|
|
| DepositLiquidityStakingTransactionInfo
|
|
| WithdrawLiquidityStakingTransactionInfo
|
|
| WrapTransactionInfo
|
|
| CreateV3PoolTransactionInfo
|
|
| AddLiquidityV3PoolTransactionInfo
|
|
| AddLiquidityV2PoolTransactionInfo
|
|
| MigrateV2LiquidityToV3TransactionInfo
|
|
| CollectFeesTransactionInfo
|
|
| RemoveLiquidityV3TransactionInfo
|
|
| SubmitProposalTransactionInfo
|
|
|
|
export const addTransaction = createAction<{
|
|
chainId: number
|
|
hash: string
|
|
from: string
|
|
info: TransactionInfo
|
|
}>('transactions/addTransaction')
|
|
export const clearAllTransactions = createAction<{ chainId: number }>('transactions/clearAllTransactions')
|
|
export const finalizeTransaction = createAction<{
|
|
chainId: number
|
|
hash: string
|
|
receipt: SerializableTransactionReceipt
|
|
}>('transactions/finalizeTransaction')
|
|
export const checkedTransaction = createAction<{
|
|
chainId: number
|
|
hash: string
|
|
blockNumber: number
|
|
}>('transactions/checkedTransaction')
|