Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion dapp-oeth/src/components/GetOUSD.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const CustomConnectButton = ({ id, buttonText, className, onClick, style }) => {
}

const GetOUSD = ({ id, buttonText, className, style }) => {
const { isConnected: active } = useAccount()
const { isConnected: active, address, connector } = useAccount()
const [userAlreadyConnectedWallet, setUserAlreadyConnectedWallet] =
useState(false)

Expand All @@ -109,6 +109,11 @@ const GetOUSD = ({ id, buttonText, className, style }) => {

if (!userAlreadyConnectedWallet && active) {
localStorage.setItem('userConnectedWallet', 'true')
event({
event: 'connect',
connect_address: address?.slice(2),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason to take off the 0x, does it look at is a hex number if you dont?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, GA converts this into a number automatically 🥲

connect_wallet: connector?.name.toLowerCase(),
})
}
}, [active])

Expand Down
1 change: 0 additions & 1 deletion dapp-oeth/src/components/buySell/_PillArrow.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react'
import { useStoreState } from 'pullstate'

import { usePrevious } from 'utils/hooks'
import analytics from 'utils/analytics'
import { event } from '../../../lib/gtm'
import { assetRootPath } from '../../utils/image'

Expand Down
4 changes: 4 additions & 0 deletions dapp/src/components/AccountStatusDropdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import GetOUSD from 'components/GetOUSD'
import { isCorrectNetwork } from 'utils/web3'
import Content from './_AccountStatusContent'
import AccountStatusIndicator from './_AccountStatusIndicator'
import { event } from '../../lib/gtm'

const AccountStatusDropdown = ({ className }) => {
const { chain } = useNetwork()
Expand Down Expand Up @@ -43,6 +44,9 @@ const AccountStatusDropdown = ({ className }) => {
await switchNetwork(correctNetwork)
}
setOpen(true)
event({
event: 'open_account',
})
}}
>
<AccountStatusIndicator
Expand Down
5 changes: 5 additions & 0 deletions dapp/src/components/ApySelect.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { useState, useEffect } from 'react'
import Dropdown from 'components/Dropdown'
import DownCaret from 'components/DownCaret'
import { event } from '../../lib/gtm'

const ApySelect = ({ apyDayOptions, apyDays, setApyDays, nav, homepage }) => {
const [open, setOpen] = useState(false)
Expand All @@ -18,6 +19,10 @@ const ApySelect = ({ apyDayOptions, apyDays, setApyDays, nav, homepage }) => {
e.preventDefault()
setApyDays(days)
setOpen(false)
event({
event: 'change_apy',
change_apy_to: days,
})
}}
>
{`${days}${homepage ? ' days' : 'd'}`}
Expand Down
15 changes: 8 additions & 7 deletions dapp/src/components/GetOUSD.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import classnames from 'classnames'
import { fbt } from 'fbt-runtime'
import { ConnectButton } from '@rainbow-me/rainbowkit'
import { useAccount } from 'wagmi'
import analytics from 'utils/analytics'
import { event } from '../../lib/gtm'

const CustomConnectButton = ({
id,
Expand Down Expand Up @@ -101,8 +101,7 @@ const CustomConnectButton = ({
}

const GetOUSD = ({ id, className, containerClassName, style, trackSource }) => {
const { isConnected: active } = useAccount()

const { isConnected: active, address, connector } = useAccount()
const [userAlreadyConnectedWallet, setUserAlreadyConnectedWallet] =
useState(false)

Expand All @@ -116,6 +115,11 @@ const GetOUSD = ({ id, className, containerClassName, style, trackSource }) => {

if (!userAlreadyConnectedWallet && active) {
localStorage.setItem('userConnectedWallet', 'true')
event({
event: 'connect',
connect_address: address?.slice(2),
connect_wallet: connector?.name.toLowerCase(),
})
}
}, [active])

Expand All @@ -128,10 +132,7 @@ const GetOUSD = ({ id, className, containerClassName, style, trackSource }) => {
style={style}
onClick={() => {
if (process.browser) {
analytics.track('On Connect', {
category: 'general',
label: trackSource,
})
event({ event: 'connect_click' })
}
}}
/>
Expand Down
22 changes: 22 additions & 0 deletions dapp/src/components/buySell/ApproveSwap.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import withRpcProvider from 'hoc/withRpcProvider'
import { ethers } from 'ethers'
import withIsMobile from 'hoc/withIsMobile'
import ConfirmationModal from './ConfirmationModal'
import { event } from '../../../lib/gtm'
import GetOUSD from '../GetOUSD'

const ApproveSwap = ({
Expand Down Expand Up @@ -224,6 +225,11 @@ const ApproveSwap = ({

const startApprovalProcess = async () => {
if (stage === 'approve' && contract) {
event({
event: 'approve_started',
approval_type: isWrapped ? 'wrap' : 'swap',
approval_token: stableCoinToApprove,
})
setStage('waiting-user')
try {
const result = await contract
Expand All @@ -243,6 +249,11 @@ const ApproveSwap = ({
coin: stableCoinToApprove,
})
await rpcProvider.waitForTransaction(result.hash)
event({
event: 'approve_complete',
approval_type: isWrapped ? 'wrap' : 'swap',
approval_token: stableCoinToApprove,
})
setIsApproving({})
setStage('done')
} catch (e) {
Expand All @@ -251,6 +262,17 @@ const ApproveSwap = ({
setStage('approve')
if (e.code !== 4001) {
await storeTransactionError('approve', stableCoinToApprove)
event({
event: 'approve_failed',
approval_type: isWrapped ? 'wrap' : 'swap',
approval_token: stableCoinToApprove,
})
} else {
event({
event: 'approve_rejected',
approval_type: isWrapped ? 'wrap' : 'swap',
approval_token: stableCoinToApprove,
})
}
}
}
Expand Down
8 changes: 8 additions & 0 deletions dapp/src/components/buySell/ContractsTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { assetRootPath } from 'utils/image'
import ContractStore from 'stores/ContractStore'
import ConfirmationModal from 'components/buySell/ConfirmationModal'
import Dropdown from 'components/Dropdown'
import { event } from '../../../lib/gtm'

const Info = ({ contract }) => {
const [infoOpen, setInfoOpen] = useState(false)
Expand Down Expand Up @@ -372,6 +373,10 @@ const ContractsTable = () => {
s.lastOverride = estimation.name
})
setUserSelectedRoute(estimation.name)
event({
event: 'change_swap_route',
change_route_to: estimation.name,
})
}}
>
<div className="contract-cell contract-name">
Expand Down Expand Up @@ -430,6 +435,9 @@ const ContractsTable = () => {
ContractStore.update((s) => {
s.showAllContracts = !showAllContracts
})
if (!showAllContracts) {
event({ event: 'show_swap_routes' })
}
}}
>
{showAllContracts
Expand Down
7 changes: 6 additions & 1 deletion dapp/src/components/buySell/SettingsDropdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import React, { useState, useEffect } from 'react'
import { BigNumber } from 'ethers'
import Dropdown from 'components/Dropdown'
import { fbt } from 'fbt-runtime'
import analytics from 'utils/analytics'
import ContractStore from 'stores/ContractStore'
import { useStoreState } from 'pullstate'
import { assetRootPath } from 'utils/image'
import { truncateDecimals } from 'utils/math'
import { event } from '../../../lib/gtm'

const SettingsDropdown = ({ setPriceToleranceValue, priceToleranceValue }) => {
const [settingsOpen, setSettingsOpen] = useState(false)
Expand Down Expand Up @@ -102,6 +102,11 @@ const SettingsDropdown = ({ setPriceToleranceValue, priceToleranceValue }) => {
onClick={(e) => {
const newOpenState = !settingsOpen
setSettingsOpen(newOpenState)
if (!settingsOpen) {
event({
event: 'open_settings',
})
}
}}
/>
</Dropdown>
Expand Down
12 changes: 12 additions & 0 deletions dapp/src/components/buySell/SwapCurrencyPill.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {
removeCommas,
} from 'utils/math'
import { assetRootPath } from 'utils/image'
import { event } from '../../../lib/gtm'

const CoinImage = ({ small, coin }) => {
const className = `coin-image`
Expand Down Expand Up @@ -381,6 +382,17 @@ const SwapCurrencyPill = ({
selected={showOusd ? 'ousd' : selectedCoin}
onChange={(coin) => {
onSelectChange(coin)
if (swapMode === 'mint') {
event({
event: 'change_input_currency',
change_input_to: coin,
})
} else {
event({
event: 'change_output_currency',
change_output_to: coin,
})
}
}}
options={coinsSelectOptions}
/>
Expand Down
50 changes: 32 additions & 18 deletions dapp/src/components/buySell/SwapHomepage.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import SettingsDropdown from 'components/buySell/SettingsDropdown'
import useSwapEstimator from 'hooks/useSwapEstimator'
import withIsMobile from 'hoc/withIsMobile'
import ApproveSwap from 'components/buySell/ApproveSwap'
import analytics from 'utils/analytics'
import { formatCurrencyMinMaxDecimals, removeCommas } from '../../utils/math'
import { event } from '../../../lib/gtm'

const lastUserSelectedCoinKey = 'last_user_selected_coin'
const lastSelectedSwapModeKey = 'last_user_selected_swap_mode'
Expand Down Expand Up @@ -205,14 +205,16 @@ const SwapHomepage = ({
}

const onSwapOusd = async () => {
analytics.track(
swapMode === 'mint' ? 'On Swap to OUSD' : 'On Swap from OUSD',
{
category: 'swap',
label: swapMetadata.stablecoinUsed,
value: swapMetadata.swapAmount,
}
)
const swapTokenUsed =
swapMode === 'mint' ? selectedBuyCoin : selectedRedeemCoin
const swapTokenAmount =
swapMode === 'mint' ? selectedBuyCoinAmount : selectedRedeemCoinAmount

event({
event: 'swap_started',
swap_token: swapTokenUsed,
swap_amount: swapTokenAmount,
})

const metadata = swapMetadata()

Expand Down Expand Up @@ -255,23 +257,29 @@ const SwapHomepage = ({
setSelectedRedeemCoinAmount('')

await rpcProvider.waitForTransaction(result.hash)
analytics.track('Swap succeeded', {
category: 'swap',
label: metadata.stablecoinUsed,
value: metadata.swapAmount,
event({
event: 'swap_complete',
swap_type: swapMode,
swap_token: swapTokenUsed,
swap_amount: swapTokenAmount,
})
} catch (e) {
const metadata = swapMetadata()
// 4001 code happens when a user rejects the transaction
if (e.code !== 4001) {
await storeTransactionError(swapMode, selectedBuyCoin)
analytics.track('Swap failed', {
category: 'swap',
label: e.message,
event({
event: 'swap_failed',
swap_type: swapMode,
swap_token: swapTokenUsed,
swap_amount: swapTokenAmount,
})
} else {
analytics.track('Swap canceled', {
category: 'swap',
event({
event: 'swap_rejected',
swap_type: swapMode,
swap_token: swapTokenUsed,
swap_amount: swapTokenAmount,
})
}

Expand Down Expand Up @@ -311,6 +319,12 @@ const SwapHomepage = ({
onAmountChange={async (amount) => {
setSelectedBuyCoinAmount(amount)
setSelectedRedeemCoinAmount(amount)
if (amount > 0) {
event({
event: 'change_input_amount',
change_amount_to: amount,
})
}
}}
coinValue={
swapMode === 'mint'
Expand Down
4 changes: 2 additions & 2 deletions dapp/src/components/buySell/_PillArrow.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import React, { useState, useEffect } from 'react'
import { useStoreState } from 'pullstate'

import { usePrevious } from 'utils/hooks'
import analytics from 'utils/analytics'
import { event } from '../../../lib/gtm'

const DownCaret = ({ swapMode, disableRotation, color = '#8293a4' }) => {
return (
Expand Down Expand Up @@ -57,6 +56,7 @@ const PillArrow = ({ swapMode, setSwapMode }) => {
className="caret-background position-absolute d-flex align-items-center justify-content-center"
onClick={() => {
setSwapMode(swapMode === 'mint' ? 'redeem' : 'mint')
event({ event: 'change_input_output' })
}}
>
<DownCaret disableRotation swapMode={swapMode} />
Expand Down
Loading