diff --git a/src/custom/components/AccountDetails/Transaction/CancelationModal.tsx b/src/custom/components/AccountDetails/Transaction/CancelationModal.tsx index 6aad1732d1..98538b3d74 100644 --- a/src/custom/components/AccountDetails/Transaction/CancelationModal.tsx +++ b/src/custom/components/AccountDetails/Transaction/CancelationModal.tsx @@ -48,7 +48,7 @@ function RequestCancellationModal(props: RequestCancellationModalProps): JSX.Ele

This means that a solver might already have included the order in a solution even if this cancellation is successful. Read more in the{' '} - + FAQ . diff --git a/src/custom/constants/index.ts b/src/custom/constants/index.ts index 99a7698c05..a337761461 100644 --- a/src/custom/constants/index.ts +++ b/src/custom/constants/index.ts @@ -114,7 +114,7 @@ export const GAS_FEE_ENDPOINTS = { [ChainId.XDAI]: 'https://blockscout.com/xdai/mainnet/api/v1/gas-price-oracle', } -export const UNSUPPORTED_TOKENS_FAQ_URL = '/faq#what-token-pairs-does-cowswap-allow-to-trade' +export const UNSUPPORTED_TOKENS_FAQ_URL = '/faq/trading#what-token-pairs-does-cowswap-allow-to-trade' // fee threshold - should be greater than percentage, show warning export const FEE_SIZE_THRESHOLD = new Fraction(10, 100) // 30% diff --git a/src/custom/pages/App/index.tsx b/src/custom/pages/App/index.tsx index 4617f67fa0..5db7bc20ca 100644 --- a/src/custom/pages/App/index.tsx +++ b/src/custom/pages/App/index.tsx @@ -23,11 +23,17 @@ const CookiePolicy = lazy(() => import(/* webpackChunkName: "cookie_policy" */ ' const TermsAndConditions = lazy(() => import(/* webpackChunkName: "terms" */ 'pages/TermsAndConditions')) const About = lazy(() => import(/* webpackChunkName: "about" */ 'pages/About')) const Profile = lazy(() => import(/* webpackChunkName: "profile" */ 'pages/Profile')) -const Faq = lazy(() => import(/* webpackChunkName: "faq" */ 'pages/Faq')) const NotFound = lazy(() => import(/* webpackChunkName: "not_found" */ 'pages/error/NotFound')) const CowRunner = lazy(() => import(/* webpackChunkName: "cow_runner" */ 'pages/games/CowRunner')) const MevSlicer = lazy(() => import(/* webpackChunkName: "mev_slicer" */ 'pages/games/MevSlicer')) +const Faq = lazy(() => import(/* webpackChunkName: "faq" */ 'pages/Faq')) +const GeneralFaq = lazy(() => import(/* webpackChunkName: "faq" */ 'pages/Faq/GeneralFaq')) +const ProtocolFaq = lazy(() => import(/* webpackChunkName: "faq" */ 'pages/Faq/ProtocolFaq')) +const TokenFaq = lazy(() => import(/* webpackChunkName: "faq" */ 'pages/Faq/TokenFaq')) +const TradingFaq = lazy(() => import(/* webpackChunkName: "faq" */ 'pages/Faq/TradingFaq')) +const AffiliateFaq = lazy(() => import(/* webpackChunkName: "faq" */ 'pages/Faq/AffiliateFaq')) + if (SENTRY_DSN) { Sentry.init({ dsn: process.env.REACT_APP_SENTRY_DSN, @@ -101,6 +107,11 @@ export default function App() { + + + + + diff --git a/src/custom/pages/Faq/AffiliateFaq.tsx b/src/custom/pages/Faq/AffiliateFaq.tsx new file mode 100644 index 0000000000..0741978b09 --- /dev/null +++ b/src/custom/pages/Faq/AffiliateFaq.tsx @@ -0,0 +1,185 @@ +import Page, { Content } from 'components/Page' +import { LinkScrollable } from 'components/Link' + +import { ExternalLinkFaq, Wrapper } from './styled' +import { Footer } from '.' +import { useToC } from './hooks' +import ToC from './ToC' + +export default function AffiliateFaq() { + const { toc, faqRef } = useToC() + + return ( + + + + +

Affiliate program

+ +

What is the Profile page?

+ +

+ It is a page where you can see your number of trades and volume that you have done with the wallet you have + connected with. +

+ +

+ Additionally, you will be able to get your own referral/affiliate link, so you can share it with others, and + if you do so, you will also be able to see the number of trades and volume that your referral link gets + credited from the users who followed your link and interacted with the DEX. +

+ +

In which networks is it available?

+ +

At this time, the affiliate program only works for Ethereum Mainnet.

+ + + +

+ The affiliate program will initially run as a trial and therefore there are currently no announced rewards. + The tracking, however, has already started. +

+ +

+ CowSwap's positive network effect scales exponentially with more people using it, therefore, the + affiliate program aims to acknowledge which users are contributing more to the success of the protocol.{' '} +

+ +

+ We now briefly explain CowSwap’s positive network effect. CowSwap's name comes from the economic + phenomenon "Coincidence of Wants", where users' orders can be matched with each other to + obtain better prices. When the protocol finds a CoW, trades are directly settled among traders, which allows + saving on slippage, gas, and LP fees. The network effect of CoWs increases alongside with the number of + traders using the protocol; the more users we have sending orders to the protocol, the better the prices + and gas savings the protocol is able to offer. Our new CoW-filiate program is aiming to increase this + positive network effect. +

+ + + +

+ Everyone can share a link, you only need a valid Ethereum wallet address to create your own personal link. +

+ + + +

+ Everyone! Please share the excitement for the CowSwap protocol & dapp. It would really make a difference for + the Cow-mmunity if you share it with your friends, Twitter/YouTube followers, or anyone that would be + interested. +

+ +

+ Share your referral link with all your friends if you think they can be interested in the qualities Cowswap + has to offer. These qualities range from ETH-less trading experience, MEV protection, no fees for failed + transactions, and more.{' '} + + 🐮 + +

+ +

+ Note that trades and volume will only be credited to your wallet if the user has not traded in CowSwap with + that address before, and their first trade is done after following your link. +

+ +

+ What is the source of truth for accounting trade volume? +

+ +

+ The referral program fetches data from Dune, and therefore, the USD value is taken from the information + available in Dune under price feed. If the token is not in the Dune price feed, then volume will not be + counted. +

+ +

+ I shared my referral with a friend, who then also traded. Why do I not see any referral trades in my profile + page? +

+ +

There could be a few reasons for this:

+
    +
  1. + Your friend was trading tokens that do not have a price feed available (see FAQ entry{' '} + + Why is the volume smaller than the real volume? + + ). +
  2. +
  3. The data has not yet propagated from the chain to our backend.
  4. +
  5. + Your friend had already traded with that account, which does not count towards referral volume (see FAQ + entry{' '} + + Who can follow the referral link? + + ). +
  6. +
+ +

+ Why is my total trade/referral trade volume smaller than the real volume? +

+ +

+ Some tokens might not yet have a proper price feed linking them to a USD estimation at the date/time when + your trade was executed. When that happens the trade volume is set to 0. Thus, your total volume can be + smaller, or even be shown as 0 (see FAQ entry{' '} + + What is the source of truth for accounting trade volume? + + ). +

+ +

+ Why do I see more trades and referrals in my profile page than I actually see in the activity list? +

+ +

The number of trades on the profile page is calculated based on on-chain data.

+

We have two publicly facing interfaces where both use the same contracts, which are:

+ + +

+ Even though both use the same contract, the backend services, solvers and infrastructure are independent. +

+ +

+ Thus, when accessing{' '} + + https://cowswap.exchange + {' '} + you will see orders/trades placed only using this interface. The same is true for orders/trades placed on{' '} + + https://barn.cowswap.exchange + + . +

+ +

If you ever traded on both, you might have more trades than you would expect.

+ +

In the future, the data will be consolidated and this number will match your expectations.

+ +