Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
interface
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
LuckySwap
interface
Commits
7bda1988
Commit
7bda1988
authored
Jan 02, 2025
by
Uniswap Labs Service Account
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ci(release): publish latest release
parent
24d4a410
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
20 deletions
+43
-20
RELEASE
RELEASE
+7
-7
VERSION
VERSION
+1
-1
tracking.ts
...ages/uniswap/src/data/rest/conversionTracking/tracking.ts
+7
-3
useConversionTracking.ts
...src/data/rest/conversionTracking/useConversionTracking.ts
+28
-9
No files found.
RELEASE
View file @
7bda1988
IPFS hash of the deployment:
- CIDv0: `Qm
a7JPknjeioxNgRPRcWs7UWvV6VJduMgmNMJ6GdxsvYJt
`
- CIDv1: `bafybei
fo4c4ij3unqr3bgji2gbqmnnb5vs52mopawwu7irbfppk7aoenwe
`
- CIDv0: `Qm
WaBTFEnY4LqKBdeyyRBmwhCuphBhe3p3CKmxnnuNhY5z
`
- CIDv1: `bafybei
d2kthnxmhk5tcm2ogpsjzooeo3dj6bt2oh6tk3vbrsqf4sc2ogju
`
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
...
...
@@ -10,15 +10,15 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs.
IPFS gateways:
- https://bafybei
fo4c4ij3unqr3bgji2gbqmnnb5vs52mopawwu7irbfppk7aoenwe
.ipfs.dweb.link/
- https://bafybei
fo4c4ij3unqr3bgji2gbqmnnb5vs52mopawwu7irbfppk7aoenwe
.ipfs.cf-ipfs.com/
- [ipfs://Qm
a7JPknjeioxNgRPRcWs7UWvV6VJduMgmNMJ6GdxsvYJt/](ipfs://Qma7JPknjeioxNgRPRcWs7UWvV6VJduMgmNMJ6GdxsvYJt
/)
- https://bafybei
d2kthnxmhk5tcm2ogpsjzooeo3dj6bt2oh6tk3vbrsqf4sc2ogju
.ipfs.dweb.link/
- https://bafybei
d2kthnxmhk5tcm2ogpsjzooeo3dj6bt2oh6tk3vbrsqf4sc2ogju
.ipfs.cf-ipfs.com/
- [ipfs://Qm
WaBTFEnY4LqKBdeyyRBmwhCuphBhe3p3CKmxnnuNhY5z/](ipfs://QmWaBTFEnY4LqKBdeyyRBmwhCuphBhe3p3CKmxnnuNhY5z
/)
### 5.63.
3 (2024-12-23
)
### 5.63.
4 (2025-01-02
)
### Bug Fixes
* **web:**
change default rpc url (#14764) 153ffd9
* **web:**
set duped events as executed to prevent retry - prod (#14781) 35193b4
VERSION
View file @
7bda1988
web/5.63.3
\ No newline at end of file
web/5.63.4
\ No newline at end of file
packages/uniswap/src/data/rest/conversionTracking/tracking.ts
View file @
7bda1988
...
...
@@ -23,9 +23,13 @@ const buildTwitterProxyRequest = ({
method
:
RequestType
.
POST
,
headers
:
DEFAULT_HEADERS
,
body
:
JSON
.
stringify
({
conversion_time
:
addJitter
(
new
Date
()),
event_id
:
eventId
,
identifiers
:
[{
[
PlatformIdType
.
Twitter
]:
lead
.
id
}],
conversions
:
[
{
conversion_time
:
addJitter
(
new
Date
()),
event_id
:
eventId
,
identifiers
:
[{
[
PlatformIdType
.
Twitter
]:
lead
.
id
}],
},
],
}),
})
...
...
packages/uniswap/src/data/rest/conversionTracking/useConversionTracking.ts
View file @
7bda1988
import
{
ConnectError
}
from
'
@connectrpc/connect
'
import
{
useAtom
}
from
'
jotai
'
import
{
atomWithStorage
}
from
'
jotai/utils
'
import
{
parse
}
from
'
qs
'
...
...
@@ -46,6 +47,7 @@ export function useConversionTracking(): UseConversionTracking {
const
trackConversion
=
useCallback
(
async
({
platformIdType
,
eventId
,
eventName
}:
TrackConversionArgs
)
=>
{
const
lead
=
conversionLeads
.
find
(({
type
})
=>
type
===
platformIdType
)
let
setAsExecuted
:
boolean
=
false
// Prevent triggering events under the following conditions:
// - No corresponding lead
...
...
@@ -74,13 +76,7 @@ export function useConversionTracking(): UseConversionTracking {
throw
new
Error
()
}
setConversionLeads
((
leads
:
ConversionLead
[])
=>
[
...
leads
.
filter
(({
id
})
=>
lead
.
id
!==
id
),
{
...
lead
,
executedEvents
:
lead
.
executedEvents
.
concat
([
eventId
]),
},
])
setAsExecuted
=
true
sendAnalyticsEvent
(
UniswapEventName
.
ConversionEventSubmitted
,
{
id
:
lead
.
id
,
...
...
@@ -88,13 +84,36 @@ export function useConversionTracking(): UseConversionTracking {
eventName
,
platformIdType
,
})
}
catch
(
e
)
{
}
catch
(
e
rror
)
{
// Note: The request will be retried until it exists in executedEvents
// If the event has already been executed, but doesn't exist in executedEvents, this will ensure we don't retry errors
if
(
error
instanceof
ConnectError
)
{
if
(
error
.
message
.
includes
(
'
limit for this (user, event)
'
))
{
setAsExecuted
=
true
}
}
}
finally
{
if
(
setAsExecuted
)
{
setConversionLeads
((
leads
:
ConversionLead
[])
=>
[
...
leads
.
filter
(({
id
})
=>
lead
.
id
!==
id
),
{
...
lead
,
executedEvents
:
lead
.
executedEvents
.
concat
([
eventId
]),
},
])
}
}
},
// TODO: Investigate why conversionProxy as a dependency causes a rendering loop
// eslint-disable-next-line react-hooks/exhaustive-deps
[
account
.
address
,
conversionLeads
,
setConversionLeads
],
[
account
.
address
,
conversionLeads
,
isConversionTrackingEnabled
,
isGoogleConversionTrackingEnabled
,
isTwitterConversionTrackingEnabled
,
setConversionLeads
,
],
)
const
trackConversions
=
useCallback
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment