diff --git a/package.json b/package.json
index 6952fdac8..0d7aaea27 100644
--- a/package.json
+++ b/package.json
@@ -55,7 +55,7 @@
"@cosmjs/tendermint-rpc": "^0.32.1",
"@datadog/browser-logs": "^5.23.3",
"@dydxprotocol/v4-client-js": "3.4.0",
- "@dydxprotocol/v4-localization": "1.1.373",
+ "@dydxprotocol/v4-localization": "1.1.379",
"@dydxprotocol/v4-proto": "^7.0.0-dev.0",
"@emotion/is-prop-valid": "^1.3.0",
"@hugocxl/react-to-image": "^0.0.9",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 20b82bfdf..c550618ec 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -33,8 +33,8 @@ dependencies:
specifier: 3.4.0
version: 3.4.0
'@dydxprotocol/v4-localization':
- specifier: 1.1.373
- version: 1.1.373
+ specifier: 1.1.379
+ version: 1.1.379
'@dydxprotocol/v4-proto':
specifier: ^7.0.0-dev.0
version: 7.0.5
@@ -1732,8 +1732,8 @@ packages:
- utf-8-validate
dev: false
- /@dydxprotocol/v4-localization@1.1.373:
- resolution: {integrity: sha512-RIJGSm4DiqJS7oMyOUS5VeqVnu22fUzOZ0w5KIDEv6yIzLK2GXowfAxZjH3RBoy73mW9ox3Bjsz6stCRttExkA==}
+ /@dydxprotocol/v4-localization@1.1.379:
+ resolution: {integrity: sha512-/vtaPHxWcmeDjJSI9LNo2GCzdCz9yzmNsDppEivpao0NM0L36SVVzUApM8zqGcWjRI/K6ZWSLmtCBXZaOShkFg==}
dev: false
/@dydxprotocol/v4-proto@7.0.5:
@@ -3583,6 +3583,7 @@ packages:
/@jest/expect-utils@29.7.0:
resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dependencies:
jest-get-type: 29.6.3
dev: true
@@ -3597,6 +3598,7 @@ packages:
/@jest/types@29.6.3:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dependencies:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
@@ -11038,16 +11040,19 @@ packages:
/@types/istanbul-lib-coverage@2.0.6:
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
+ requiresBuild: true
dev: true
/@types/istanbul-lib-report@3.0.3:
resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
+ requiresBuild: true
dependencies:
'@types/istanbul-lib-coverage': 2.0.6
dev: true
/@types/istanbul-reports@3.0.4:
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
+ requiresBuild: true
dependencies:
'@types/istanbul-lib-report': 3.0.3
dev: true
@@ -11184,6 +11189,7 @@ packages:
/@types/stack-utils@2.0.3:
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
+ requiresBuild: true
dev: true
/@types/statuses@2.0.6:
@@ -11234,10 +11240,12 @@ packages:
/@types/yargs-parser@21.0.3:
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
+ requiresBuild: true
dev: true
/@types/yargs@17.0.35:
resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==}
+ requiresBuild: true
dependencies:
'@types/yargs-parser': 21.0.3
dev: true
@@ -14120,6 +14128,7 @@ packages:
/archiver-utils@5.0.2:
resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==}
engines: {node: '>= 14'}
+ requiresBuild: true
dependencies:
glob: 10.5.0
graceful-fs: 4.2.11
@@ -14133,6 +14142,7 @@ packages:
/archiver@7.0.1:
resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==}
engines: {node: '>= 14'}
+ requiresBuild: true
dependencies:
archiver-utils: 5.0.2
async: 3.2.6
@@ -14425,6 +14435,7 @@ packages:
/b4a@1.7.3:
resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==}
+ requiresBuild: true
peerDependencies:
react-native-b4a: '*'
peerDependenciesMeta:
@@ -14488,6 +14499,7 @@ packages:
/bare-events@2.8.2:
resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==}
+ requiresBuild: true
peerDependencies:
bare-abort-controller: '*'
peerDependenciesMeta:
@@ -14519,11 +14531,13 @@ packages:
/bare-os@3.6.2:
resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==}
engines: {bare: '>=1.14.0'}
+ requiresBuild: true
dev: true
optional: true
/bare-path@3.0.0:
resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==}
+ requiresBuild: true
dependencies:
bare-os: 3.6.2
dev: true
@@ -14531,6 +14545,7 @@ packages:
/bare-stream@2.7.0(bare-events@2.8.2):
resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==}
+ requiresBuild: true
peerDependencies:
bare-buffer: '*'
bare-events: '*'
@@ -14550,6 +14565,7 @@ packages:
/bare-url@2.3.2:
resolution: {integrity: sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==}
+ requiresBuild: true
dependencies:
bare-path: 3.0.0
dev: true
@@ -14886,6 +14902,7 @@ packages:
/buffer-crc32@1.0.0:
resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==}
engines: {node: '>=8.0.0'}
+ requiresBuild: true
dev: true
/buffer-from@1.1.2:
@@ -15173,6 +15190,7 @@ packages:
/chromium-bidi@0.5.8(devtools-protocol@0.0.1232444):
resolution: {integrity: sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==}
+ requiresBuild: true
peerDependencies:
devtools-protocol: '*'
dependencies:
@@ -15184,6 +15202,7 @@ packages:
/ci-info@3.9.0:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
+ requiresBuild: true
dev: true
/cipher-base@1.0.7:
@@ -15253,6 +15272,7 @@ packages:
/clone@1.0.4:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
+ requiresBuild: true
/clsx@1.2.1:
resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
@@ -15365,6 +15385,7 @@ packages:
/compress-commons@6.0.2:
resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==}
engines: {node: '>= 14'}
+ requiresBuild: true
dependencies:
crc-32: 1.2.2
crc32-stream: 6.0.0
@@ -15548,6 +15569,7 @@ packages:
/crc32-stream@6.0.0:
resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==}
engines: {node: '>= 14'}
+ requiresBuild: true
dependencies:
crc-32: 1.2.2
readable-stream: 4.7.0
@@ -15592,6 +15614,7 @@ packages:
/cross-fetch@4.0.0:
resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==}
+ requiresBuild: true
dependencies:
node-fetch: 2.7.0(encoding@0.1.13)
transitivePeerDependencies:
@@ -15656,6 +15679,7 @@ packages:
/css-shorthand-properties@1.1.2:
resolution: {integrity: sha512-C2AugXIpRGQTxaCW0N7n5jD/p5irUmCrwl03TrnMFBHDbdq44CFWR2zO7rK9xPN4Eo3pUxC4vQzQgbIpzrD1PQ==}
+ requiresBuild: true
dev: true
/css-to-react-native@3.2.0:
@@ -15667,6 +15691,7 @@ packages:
/css-value@0.0.1:
resolution: {integrity: sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==}
+ requiresBuild: true
dev: true
/cssesc@3.0.0:
@@ -16049,6 +16074,7 @@ packages:
/defaults@1.0.4:
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+ requiresBuild: true
dependencies:
clone: 1.0.4
@@ -16175,10 +16201,12 @@ packages:
/devtools-protocol@0.0.1232444:
resolution: {integrity: sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==}
+ requiresBuild: true
dev: true
/devtools-protocol@0.0.1400418:
resolution: {integrity: sha512-U8j75zDOXF8IP3o0Cgb7K4tFA9uUHEOru2Wx64+EUqL4LNOh9dRe1i8WKR1k3mSpjcCe3aIkTDvEwq0YkI4hfw==}
+ requiresBuild: true
dev: true
/didyoumean@1.2.2:
@@ -16822,6 +16850,7 @@ packages:
/escape-string-regexp@2.0.0:
resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
engines: {node: '>=8'}
+ requiresBuild: true
dev: true
/escape-string-regexp@4.0.0:
@@ -17572,6 +17601,7 @@ packages:
/events-universal@1.0.1:
resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==}
+ requiresBuild: true
dependencies:
bare-events: 2.8.2
transitivePeerDependencies:
@@ -17629,6 +17659,7 @@ packages:
/expect@29.7.0:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dependencies:
'@jest/expect-utils': 29.7.0
jest-get-type: 29.6.3
@@ -17701,6 +17732,7 @@ packages:
/fast-deep-equal@2.0.1:
resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
+ requiresBuild: true
dev: true
/fast-deep-equal@3.1.3:
@@ -18362,6 +18394,7 @@ packages:
/grapheme-splitter@1.0.4:
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+ requiresBuild: true
dev: true
/graphemer@1.4.0:
@@ -18893,6 +18926,7 @@ packages:
/immediate@3.0.6:
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
+ requiresBuild: true
dev: true
/immer@10.2.0:
@@ -19594,6 +19628,7 @@ packages:
/isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+ requiresBuild: true
/isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -19789,6 +19824,7 @@ packages:
/jest-diff@29.7.0:
resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dependencies:
chalk: 4.1.2
diff-sequences: 29.6.3
@@ -19799,11 +19835,13 @@ packages:
/jest-get-type@29.6.3:
resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dev: true
/jest-matcher-utils@29.7.0:
resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dependencies:
chalk: 4.1.2
jest-diff: 29.7.0
@@ -19814,6 +19852,7 @@ packages:
/jest-message-util@29.7.0:
resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dependencies:
'@babel/code-frame': 7.27.1
'@jest/types': 29.6.3
@@ -19829,6 +19868,7 @@ packages:
/jest-util@29.7.0:
resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ requiresBuild: true
dependencies:
'@jest/types': 29.6.3
'@types/node': 22.19.3
@@ -20021,6 +20061,7 @@ packages:
/jszip@3.10.1:
resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
+ requiresBuild: true
dependencies:
lie: 3.3.0
pako: 1.0.11
@@ -20124,6 +20165,7 @@ packages:
/ky@0.33.3:
resolution: {integrity: sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==}
engines: {node: '>=14.16'}
+ requiresBuild: true
dev: true
/language-subtag-registry@0.3.23:
@@ -20140,6 +20182,7 @@ packages:
/lazystream@1.0.1:
resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
engines: {node: '>= 0.6.3'}
+ requiresBuild: true
dependencies:
readable-stream: 2.3.8
dev: true
@@ -20196,6 +20239,7 @@ packages:
/lie@3.3.0:
resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
+ requiresBuild: true
dependencies:
immediate: 3.0.6
dev: true
@@ -20307,6 +20351,7 @@ packages:
/lodash.clonedeep@4.5.0:
resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
+ requiresBuild: true
dev: true
/lodash.debounce@4.0.8:
@@ -20387,6 +20432,7 @@ packages:
/lodash.zip@4.2.0:
resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==}
+ requiresBuild: true
dev: true
/lodash@4.17.21:
@@ -21279,6 +21325,7 @@ packages:
/mitt@3.0.1:
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+ requiresBuild: true
dev: true
/mkdirp-classic@0.5.3:
@@ -21363,6 +21410,7 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ requiresBuild: true
/ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -22793,6 +22841,7 @@ packages:
/process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ requiresBuild: true
/process-warning@1.0.0:
resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==}
@@ -22962,6 +23011,7 @@ packages:
/puppeteer-core@21.11.0:
resolution: {integrity: sha512-ArbnyA3U5SGHokEvkfWjW+O8hOxV1RSJxOgriX/3A4xZRqixt9ZFHD0yPgZQF05Qj0oAqi8H/7stDorjoHY90Q==}
engines: {node: '>=16.13.2'}
+ requiresBuild: true
dependencies:
'@puppeteer/browsers': 1.9.1
chromium-bidi: 0.5.8(devtools-protocol@0.0.1232444)
@@ -23026,6 +23076,7 @@ packages:
/query-selector-shadow-dom@1.0.1:
resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==}
+ requiresBuild: true
dev: true
/query-string@5.1.1:
@@ -23552,6 +23603,7 @@ packages:
/readdir-glob@1.1.3:
resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==}
+ requiresBuild: true
dependencies:
minimatch: 5.1.6
dev: true
@@ -23855,6 +23907,7 @@ packages:
/resq@1.11.0:
resolution: {integrity: sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==}
+ requiresBuild: true
dependencies:
fast-deep-equal: 2.0.1
dev: true
@@ -23889,6 +23942,7 @@ packages:
/rgb2hex@0.2.5:
resolution: {integrity: sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==}
+ requiresBuild: true
dev: true
/rimraf@2.5.4:
@@ -24051,6 +24105,7 @@ packages:
/safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ requiresBuild: true
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -24144,6 +24199,7 @@ packages:
/serialize-error@11.0.3:
resolution: {integrity: sha512-2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==}
engines: {node: '>=14.16'}
+ requiresBuild: true
dependencies:
type-fest: 2.19.0
dev: true
@@ -24519,6 +24575,7 @@ packages:
/stack-utils@2.0.6:
resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines: {node: '>=10'}
+ requiresBuild: true
dependencies:
escape-string-regexp: 2.0.0
dev: true
@@ -24603,6 +24660,7 @@ packages:
/streamx@2.23.0:
resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==}
+ requiresBuild: true
dependencies:
events-universal: 1.0.1
fast-fifo: 1.3.2
@@ -24716,6 +24774,7 @@ packages:
/string_decoder@1.1.1:
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ requiresBuild: true
dependencies:
safe-buffer: 5.1.2
@@ -25043,6 +25102,7 @@ packages:
/text-decoder@1.2.3:
resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==}
+ requiresBuild: true
dependencies:
b4a: 1.7.3
transitivePeerDependencies:
@@ -25897,6 +25957,7 @@ packages:
/urlpattern-polyfill@10.0.0:
resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==}
+ requiresBuild: true
dev: true
/use-callback-ref@1.3.3(@types/react@18.3.27)(react@18.3.1):
@@ -27173,6 +27234,7 @@ packages:
/ws@8.16.0:
resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
engines: {node: '>=10.0.0'}
+ requiresBuild: true
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: '>=5.0.2'
@@ -27421,6 +27483,7 @@ packages:
/zip-stream@6.0.1:
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
engines: {node: '>= 14'}
+ requiresBuild: true
dependencies:
archiver-utils: 5.0.2
compress-commons: 6.0.2
diff --git a/src/hooks/rewards/util.ts b/src/hooks/rewards/util.ts
index a7045a63d..3483c9232 100644
--- a/src/hooks/rewards/util.ts
+++ b/src/hooks/rewards/util.ts
@@ -23,6 +23,17 @@ export function feesToEstimatedDollarRewards(totalFees?: number): number {
return totalFees * CURRENT_SURGE_REWARDS_DETAILS.rebateFraction;
}
+export function positionToBonkRewards(position: number | undefined) {
+ if (!position) return 0;
+ if (position === 1) return 25000;
+ if (position === 2) return 15000;
+ if (position === 3) return 10000;
+ if (position === 4 || position === 5) return 5000;
+ if (position >= 6 || position <= 10) return 4000;
+ if (position >= 11 || position <= 20) return 2000;
+ return 0;
+}
+
export const CURRENT_SURGE_REWARDS_DETAILS = {
season: 10,
rewardAmount: '',
@@ -33,6 +44,10 @@ export const CURRENT_SURGE_REWARDS_DETAILS = {
endTime: '2026-01-31T23:59:59.000Z', // end of jan 2026
};
+export const CURRENT_BONK_REWARDS_DETAILS = {
+ endTime: '2026-02-28T23:59:59.000Z', // end of february 2026
+};
+
export const DEC_2025_COMPETITION_DETAILS = {
rewardAmount: '$1M',
rewardAmountUsd: 1_000_000,
diff --git a/src/hooks/useEnableBonkPnlLeaderboard.ts b/src/hooks/useEnableBonkPnlLeaderboard.ts
index 22619555d..83aa82b5d 100644
--- a/src/hooks/useEnableBonkPnlLeaderboard.ts
+++ b/src/hooks/useEnableBonkPnlLeaderboard.ts
@@ -1,9 +1,9 @@
-// import { isDev } from '@/constants/networks';
+import { isDev } from '@/constants/networks';
import { StatsigFlags } from '@/constants/statsig';
import { useStatsigGateValue } from './useStatsig';
export const useEnableBonkPnlLeaderboard = () => {
const bonkPnlLeaderboardFF = useStatsigGateValue(StatsigFlags.ffBonkPnlLeaderboard);
- return bonkPnlLeaderboardFF;
+ return isDev || bonkPnlLeaderboardFF;
};
diff --git a/src/pages/token/BonkIncentivesPanel.tsx b/src/pages/token/BonkIncentivesPanel.tsx
new file mode 100644
index 000000000..0b52c5032
--- /dev/null
+++ b/src/pages/token/BonkIncentivesPanel.tsx
@@ -0,0 +1,187 @@
+import { useEffect, useMemo, useState } from 'react';
+
+import { BonsaiCore } from '@/bonsai/ontology';
+import { Duration } from 'luxon';
+import styled from 'styled-components';
+import tw from 'twin.macro';
+
+import { STRING_KEYS } from '@/constants/localization';
+
+import {
+ addRewardsToLeaderboardEntry,
+ useBonkPnlDistribution,
+ useFeeLeaderboard,
+} from '@/hooks/rewards/hooks';
+import { CURRENT_BONK_REWARDS_DETAILS, positionToBonkRewards } from '@/hooks/rewards/util';
+import { useAccounts } from '@/hooks/useAccounts';
+import { useNow } from '@/hooks/useNow';
+import { useStringGetter } from '@/hooks/useStringGetter';
+
+import { layoutMixins } from '@/styles/layoutMixins';
+
+import { Icon, IconName } from '@/components/Icon';
+import { Output, OutputType } from '@/components/Output';
+import { Panel } from '@/components/Panel';
+import { SuccessTag, TagSize } from '@/components/Tag';
+import { WithTooltip } from '@/components/WithTooltip';
+
+import { useAppDispatch, useAppSelector } from '@/state/appTypes';
+import { markLaunchIncentivesSeen } from '@/state/appUiConfigs';
+
+export const BonkIncentivesPanel = () => {
+ const dispatch = useAppDispatch();
+
+ useEffect(() => {
+ dispatch(markLaunchIncentivesSeen());
+ }, [dispatch]);
+
+ return
{stringGetter({ key: STRING_KEYS.BONK_REWARDS_RULES })}
+