Compare commits
No commits in common. "main" and "Thunnini/improve-search-input" have entirely different histories.
main
...
Thunnini/i
276
.pnp.cjs
generated
276
.pnp.cjs
generated
@ -34,9 +34,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["@keplr-wallet/proto-types", "npm:0.11.25"],\
|
||||
["@keplr-wallet/types", "npm:0.11.25"],\
|
||||
["@next/eslint-plugin-next", "npm:13.0.5"],\
|
||||
["@sentry/nextjs", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.29.0"],\
|
||||
["@sentry/nextjs", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.27.0"],\
|
||||
["@svgr/webpack", "npm:6.5.1"],\
|
||||
["@types/cors", "npm:2.8.13"],\
|
||||
["@types/eslint", "npm:8.4.10"],\
|
||||
["@types/node", "npm:18.11.9"],\
|
||||
["@types/react", "npm:18.0.25"],\
|
||||
@ -48,7 +47,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["@typescript-eslint/parser", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
||||
["axios", "npm:0.27.2"],\
|
||||
["buffer", "npm:6.0.3"],\
|
||||
["cors", "npm:2.8.5"],\
|
||||
["crypto", "npm:1.0.1"],\
|
||||
["eslint", "npm:8.28.0"],\
|
||||
["eslint-config-next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||
@ -64,7 +62,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||
["prettier", "npm:2.8.0"],\
|
||||
["react", "npm:18.2.0"],\
|
||||
["react-countup", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.4.0"],\
|
||||
["react-dom", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:18.2.0"],\
|
||||
["react-is", "npm:18.2.0"],\
|
||||
["react-modal", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:3.16.1"],\
|
||||
@ -3295,34 +3292,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@rollup/plugin-babel", [\
|
||||
["npm:6.0.3", {\
|
||||
"packageLocation": "./.yarn/cache/@rollup-plugin-babel-npm-6.0.3-1259d28dd2-412c1c3bb5.zip/node_modules/@rollup/plugin-babel/",\
|
||||
"packageDependencies": [\
|
||||
["@rollup/plugin-babel", "npm:6.0.3"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:9555373101f58738ea803ff9e79b0d8b52a66e88c21dac99d127fd080df7e60c5efb4c82f30a042556261bfb95e0c5292626cc000800b004d622753bbf9e02e5#npm:6.0.3", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@rollup-plugin-babel-virtual-082525a879/0/cache/@rollup-plugin-babel-npm-6.0.3-1259d28dd2-412c1c3bb5.zip/node_modules/@rollup/plugin-babel/",\
|
||||
"packageDependencies": [\
|
||||
["@rollup/plugin-babel", "virtual:9555373101f58738ea803ff9e79b0d8b52a66e88c21dac99d127fd080df7e60c5efb4c82f30a042556261bfb95e0c5292626cc000800b004d622753bbf9e02e5#npm:6.0.3"],\
|
||||
["@babel/core", null],\
|
||||
["@babel/helper-module-imports", "npm:7.18.6"],\
|
||||
["@rollup/pluginutils", "virtual:082525a8792b89cbfd614faa6bcd1a9496584eedab2ae9d69d9f4375690e041544351047f44ef6dab868f44ac8fb8bbc2f5d9aa598e4e4521132888b2cfef8a9#npm:5.0.2"],\
|
||||
["@types/babel__core", null],\
|
||||
["@types/rollup", null],\
|
||||
["rollup", null]\
|
||||
],\
|
||||
"packagePeers": [\
|
||||
"@babel/core",\
|
||||
"@types/babel__core",\
|
||||
"@types/rollup",\
|
||||
"rollup"\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@rollup/plugin-sucrase", [\
|
||||
["npm:4.0.4", {\
|
||||
"packageLocation": "./.yarn/cache/@rollup-plugin-sucrase-npm-4.0.4-11cf77c62a-ccb01d7eb3.zip/node_modules/@rollup/plugin-sucrase/",\
|
||||
@ -3331,10 +3300,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:4.0.4", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@rollup-plugin-sucrase-virtual-c051ec3c0c/0/cache/@rollup-plugin-sucrase-npm-4.0.4-11cf77c62a-ccb01d7eb3.zip/node_modules/@rollup/plugin-sucrase/",\
|
||||
["virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:4.0.4", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@rollup-plugin-sucrase-virtual-a5fe52f236/0/cache/@rollup-plugin-sucrase-npm-4.0.4-11cf77c62a-ccb01d7eb3.zip/node_modules/@rollup/plugin-sucrase/",\
|
||||
"packageDependencies": [\
|
||||
["@rollup/plugin-sucrase", "virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:4.0.4"],\
|
||||
["@rollup/plugin-sucrase", "virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:4.0.4"],\
|
||||
["@rollup/pluginutils", "npm:4.2.1"],\
|
||||
["@types/rollup", null],\
|
||||
["rollup", "npm:2.78.0"],\
|
||||
@ -3355,10 +3324,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:3.0.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@rollup-plugin-virtual-virtual-c251801d05/0/cache/@rollup-plugin-virtual-npm-3.0.0-678cdc8578-2335cabee2.zip/node_modules/@rollup/plugin-virtual/",\
|
||||
["virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:3.0.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@rollup-plugin-virtual-virtual-683e923f4b/0/cache/@rollup-plugin-virtual-npm-3.0.0-678cdc8578-2335cabee2.zip/node_modules/@rollup/plugin-virtual/",\
|
||||
"packageDependencies": [\
|
||||
["@rollup/plugin-virtual", "virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:3.0.0"],\
|
||||
["@rollup/plugin-virtual", "virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:3.0.0"],\
|
||||
["@types/rollup", null],\
|
||||
["rollup", "npm:2.78.0"]\
|
||||
],\
|
||||
@ -3378,29 +3347,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["picomatch", "npm:2.3.1"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:5.0.2", {\
|
||||
"packageLocation": "./.yarn/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip/node_modules/@rollup/pluginutils/",\
|
||||
"packageDependencies": [\
|
||||
["@rollup/pluginutils", "npm:5.0.2"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:082525a8792b89cbfd614faa6bcd1a9496584eedab2ae9d69d9f4375690e041544351047f44ef6dab868f44ac8fb8bbc2f5d9aa598e4e4521132888b2cfef8a9#npm:5.0.2", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@rollup-pluginutils-virtual-7805b1dbc6/0/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip/node_modules/@rollup/pluginutils/",\
|
||||
"packageDependencies": [\
|
||||
["@rollup/pluginutils", "virtual:082525a8792b89cbfd614faa6bcd1a9496584eedab2ae9d69d9f4375690e041544351047f44ef6dab868f44ac8fb8bbc2f5d9aa598e4e4521132888b2cfef8a9#npm:5.0.2"],\
|
||||
["@types/estree", "npm:1.0.0"],\
|
||||
["@types/rollup", null],\
|
||||
["estree-walker", "npm:2.0.2"],\
|
||||
["picomatch", "npm:2.3.1"],\
|
||||
["rollup", null]\
|
||||
],\
|
||||
"packagePeers": [\
|
||||
"@types/rollup",\
|
||||
"rollup"\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@rushstack/eslint-patch", [\
|
||||
@ -3413,14 +3359,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/browser", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-browser-npm-7.29.0-93fbe26bf6-136b9d03a9.zip/node_modules/@sentry/browser/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-browser-npm-7.27.0-21601bd9f9-da5e50bd57.zip/node_modules/@sentry/browser/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/browser", "npm:7.29.0"],\
|
||||
["@sentry/core", "npm:7.29.0"],\
|
||||
["@sentry/replay", "virtual:93fbe26bf62b342ef21729e6d406a0883ac6b2fc17e249df9fefb2776d07612931a56ff4fa8e79c5a58b9f975dd0395c18b7b90d36df66d3c8e541f31098bb2c#npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/browser", "npm:7.27.0"],\
|
||||
["@sentry/core", "npm:7.27.0"],\
|
||||
["@sentry/replay", "virtual:21601bd9f91dad7312f712f5400c693cac4ca00856456090469b4d7eeb106b080cca0a5e44daaf28693eb0205ad0dbe83cb5230d76d15cf004c44ddb74f24ecf#npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["tslib", "npm:1.14.1"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
@ -3443,24 +3389,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/core", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-core-npm-7.29.0-acfa631d1a-d9330ed352.zip/node_modules/@sentry/core/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-core-npm-7.27.0-72a2ae90aa-36138a8f43.zip/node_modules/@sentry/core/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/core", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/core", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["tslib", "npm:1.14.1"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/integrations", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-integrations-npm-7.29.0-1e78ee183b-fec2b9b790.zip/node_modules/@sentry/integrations/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-integrations-npm-7.27.0-b9d35a9a46-26cc2a10a4.zip/node_modules/@sentry/integrations/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/integrations", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/integrations", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["localforage", "npm:1.10.0"],\
|
||||
["tslib", "npm:1.14.1"]\
|
||||
],\
|
||||
@ -3468,26 +3414,26 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/nextjs", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-nextjs-npm-7.29.0-32ea7a99ed-53864f15c1.zip/node_modules/@sentry/nextjs/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-nextjs-npm-7.27.0-1e548cf282-fdc0ba40b4.zip/node_modules/@sentry/nextjs/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/nextjs", "npm:7.29.0"]\
|
||||
["@sentry/nextjs", "npm:7.27.0"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sentry-nextjs-virtual-3a604504e8/0/cache/@sentry-nextjs-npm-7.29.0-32ea7a99ed-53864f15c1.zip/node_modules/@sentry/nextjs/",\
|
||||
["virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sentry-nextjs-virtual-e9c3f44508/0/cache/@sentry-nextjs-npm-7.27.0-1e548cf282-fdc0ba40b4.zip/node_modules/@sentry/nextjs/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/nextjs", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.29.0"],\
|
||||
["@rollup/plugin-sucrase", "virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:4.0.4"],\
|
||||
["@rollup/plugin-virtual", "virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:3.0.0"],\
|
||||
["@sentry/core", "npm:7.29.0"],\
|
||||
["@sentry/integrations", "npm:7.29.0"],\
|
||||
["@sentry/node", "npm:7.29.0"],\
|
||||
["@sentry/react", "virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:7.29.0"],\
|
||||
["@sentry/tracing", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/nextjs", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.27.0"],\
|
||||
["@rollup/plugin-sucrase", "virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:4.0.4"],\
|
||||
["@rollup/plugin-virtual", "virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:3.0.0"],\
|
||||
["@sentry/core", "npm:7.27.0"],\
|
||||
["@sentry/integrations", "npm:7.27.0"],\
|
||||
["@sentry/node", "npm:7.27.0"],\
|
||||
["@sentry/react", "virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:7.27.0"],\
|
||||
["@sentry/tracing", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["@sentry/webpack-plugin", "npm:1.20.0"],\
|
||||
["@types/next", null],\
|
||||
["@types/react", "npm:18.0.25"],\
|
||||
@ -3511,13 +3457,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/node", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-node-npm-7.29.0-4b46c521c4-1669d47dfa.zip/node_modules/@sentry/node/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-node-npm-7.27.0-f1028265b5-a42cb398ed.zip/node_modules/@sentry/node/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/node", "npm:7.29.0"],\
|
||||
["@sentry/core", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/node", "npm:7.27.0"],\
|
||||
["@sentry/core", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["cookie", "npm:0.4.2"],\
|
||||
["https-proxy-agent", "npm:5.0.1"],\
|
||||
["lru_map", "npm:0.3.3"],\
|
||||
@ -3527,20 +3473,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/react", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-react-npm-7.29.0-8919016525-022bf398f2.zip/node_modules/@sentry/react/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-react-npm-7.27.0-17a03112ea-164cefe9ef.zip/node_modules/@sentry/react/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/react", "npm:7.29.0"]\
|
||||
["@sentry/react", "npm:7.27.0"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sentry-react-virtual-9acab97880/0/cache/@sentry-react-npm-7.29.0-8919016525-022bf398f2.zip/node_modules/@sentry/react/",\
|
||||
["virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sentry-react-virtual-b11fda8097/0/cache/@sentry-react-npm-7.27.0-17a03112ea-164cefe9ef.zip/node_modules/@sentry/react/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/react", "virtual:3a604504e8aeb5a25f89876693f61efac71df23354cdd05c30fd720452c63e2fd2009e86f2ccfed8beabdfc4c56217629b749f34209c39d40c7a340bdd27b375#npm:7.29.0"],\
|
||||
["@sentry/browser", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/react", "virtual:e9c3f4450835355c1308c5ec6b0a06961dea09cc1cbf5a2c356d2c2179b00f6666bd54ef0244e47c45a539436800a0d785ea018febc600fdf27dce27b78ada2e#npm:7.27.0"],\
|
||||
["@sentry/browser", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["@types/react", "npm:18.0.25"],\
|
||||
["hoist-non-react-statics", "npm:3.3.2"],\
|
||||
["react", "npm:18.2.0"],\
|
||||
@ -3554,21 +3500,21 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/replay", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-replay-npm-7.29.0-e553e78caf-539e18c128.zip/node_modules/@sentry/replay/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-replay-npm-7.27.0-18656992dc-440ac09c9a.zip/node_modules/@sentry/replay/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/replay", "npm:7.29.0"]\
|
||||
["@sentry/replay", "npm:7.27.0"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:93fbe26bf62b342ef21729e6d406a0883ac6b2fc17e249df9fefb2776d07612931a56ff4fa8e79c5a58b9f975dd0395c18b7b90d36df66d3c8e541f31098bb2c#npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sentry-replay-virtual-b637ba30d9/0/cache/@sentry-replay-npm-7.29.0-e553e78caf-539e18c128.zip/node_modules/@sentry/replay/",\
|
||||
["virtual:21601bd9f91dad7312f712f5400c693cac4ca00856456090469b4d7eeb106b080cca0a5e44daaf28693eb0205ad0dbe83cb5230d76d15cf004c44ddb74f24ecf#npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@sentry-replay-virtual-8f5e4cea4f/0/cache/@sentry-replay-npm-7.27.0-18656992dc-440ac09c9a.zip/node_modules/@sentry/replay/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/replay", "virtual:93fbe26bf62b342ef21729e6d406a0883ac6b2fc17e249df9fefb2776d07612931a56ff4fa8e79c5a58b9f975dd0395c18b7b90d36df66d3c8e541f31098bb2c#npm:7.29.0"],\
|
||||
["@sentry/browser", "npm:7.29.0"],\
|
||||
["@sentry/core", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/replay", "virtual:21601bd9f91dad7312f712f5400c693cac4ca00856456090469b4d7eeb106b080cca0a5e44daaf28693eb0205ad0dbe83cb5230d76d15cf004c44ddb74f24ecf#npm:7.27.0"],\
|
||||
["@sentry/browser", "npm:7.27.0"],\
|
||||
["@sentry/core", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["@types/sentry__browser", null]\
|
||||
],\
|
||||
"packagePeers": [\
|
||||
@ -3579,33 +3525,33 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/tracing", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-tracing-npm-7.29.0-16e145a1cc-7ad9040664.zip/node_modules/@sentry/tracing/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-tracing-npm-7.27.0-7d217c54fa-203a3a6b46.zip/node_modules/@sentry/tracing/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/tracing", "npm:7.29.0"],\
|
||||
["@sentry/core", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/tracing", "npm:7.27.0"],\
|
||||
["@sentry/core", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["tslib", "npm:1.14.1"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/types", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-types-npm-7.29.0-d6d116c884-53815b6666.zip/node_modules/@sentry/types/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-types-npm-7.27.0-67702fc3e1-a22056aa58.zip/node_modules/@sentry/types/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/types", "npm:7.29.0"]\
|
||||
["@sentry/types", "npm:7.27.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@sentry/utils", [\
|
||||
["npm:7.29.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-utils-npm-7.29.0-5dbf6566da-9914a21296.zip/node_modules/@sentry/utils/",\
|
||||
["npm:7.27.0", {\
|
||||
"packageLocation": "./.yarn/cache/@sentry-utils-npm-7.27.0-1935a93244-d01f2d1999.zip/node_modules/@sentry/utils/",\
|
||||
"packageDependencies": [\
|
||||
["@sentry/utils", "npm:7.29.0"],\
|
||||
["@sentry/types", "npm:7.29.0"],\
|
||||
["@sentry/utils", "npm:7.27.0"],\
|
||||
["@sentry/types", "npm:7.27.0"],\
|
||||
["tslib", "npm:1.14.1"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
@ -4011,16 +3957,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@types/cors", [\
|
||||
["npm:2.8.13", {\
|
||||
"packageLocation": "./.yarn/cache/@types-cors-npm-2.8.13-4b8ac1068f-7ef197ea19.zip/node_modules/@types/cors/",\
|
||||
"packageDependencies": [\
|
||||
["@types/cors", "npm:2.8.13"],\
|
||||
["@types/node", "npm:18.11.9"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@types/eslint", [\
|
||||
["npm:8.4.10", {\
|
||||
"packageLocation": "./.yarn/cache/@types-eslint-npm-8.4.10-9df5f4bc78-21e009ed9e.zip/node_modules/@types/eslint/",\
|
||||
@ -5530,17 +5466,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["cors", [\
|
||||
["npm:2.8.5", {\
|
||||
"packageLocation": "./.yarn/cache/cors-npm-2.8.5-c9935a2d12-ced838404c.zip/node_modules/cors/",\
|
||||
"packageDependencies": [\
|
||||
["cors", "npm:2.8.5"],\
|
||||
["object-assign", "npm:4.1.1"],\
|
||||
["vary", "npm:1.1.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["cosmiconfig", [\
|
||||
["npm:7.1.0", {\
|
||||
"packageLocation": "./.yarn/cache/cosmiconfig-npm-7.1.0-13a5090bcd-c53bf7befc.zip/node_modules/cosmiconfig/",\
|
||||
@ -5555,15 +5480,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["countup.js", [\
|
||||
["npm:2.3.2", {\
|
||||
"packageLocation": "./.yarn/cache/countup.js-npm-2.3.2-fce559ea32-77bb509cd1.zip/node_modules/countup.js/",\
|
||||
"packageDependencies": [\
|
||||
["countup.js", "npm:2.3.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["create-hash", [\
|
||||
["npm:1.2.0", {\
|
||||
"packageLocation": "./.yarn/cache/create-hash-npm-1.2.0-afd048e1ce-02a6ae3bb9.zip/node_modules/create-hash/",\
|
||||
@ -7373,9 +7289,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["@keplr-wallet/proto-types", "npm:0.11.25"],\
|
||||
["@keplr-wallet/types", "npm:0.11.25"],\
|
||||
["@next/eslint-plugin-next", "npm:13.0.5"],\
|
||||
["@sentry/nextjs", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.29.0"],\
|
||||
["@sentry/nextjs", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.27.0"],\
|
||||
["@svgr/webpack", "npm:6.5.1"],\
|
||||
["@types/cors", "npm:2.8.13"],\
|
||||
["@types/eslint", "npm:8.4.10"],\
|
||||
["@types/node", "npm:18.11.9"],\
|
||||
["@types/react", "npm:18.0.25"],\
|
||||
@ -7387,7 +7302,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["@typescript-eslint/parser", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
||||
["axios", "npm:0.27.2"],\
|
||||
["buffer", "npm:6.0.3"],\
|
||||
["cors", "npm:2.8.5"],\
|
||||
["crypto", "npm:1.0.1"],\
|
||||
["eslint", "npm:8.28.0"],\
|
||||
["eslint-config-next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||
@ -7403,7 +7317,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||
["prettier", "npm:2.8.0"],\
|
||||
["react", "npm:18.2.0"],\
|
||||
["react-countup", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.4.0"],\
|
||||
["react-dom", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:18.2.0"],\
|
||||
["react-is", "npm:18.2.0"],\
|
||||
["react-modal", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:3.16.1"],\
|
||||
@ -9242,30 +9155,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["react-countup", [\
|
||||
["npm:6.4.0", {\
|
||||
"packageLocation": "./.yarn/cache/react-countup-npm-6.4.0-d1c6fe7973-259277fa70.zip/node_modules/react-countup/",\
|
||||
"packageDependencies": [\
|
||||
["react-countup", "npm:6.4.0"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.4.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/react-countup-virtual-9555373101/0/cache/react-countup-npm-6.4.0-d1c6fe7973-259277fa70.zip/node_modules/react-countup/",\
|
||||
"packageDependencies": [\
|
||||
["react-countup", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.4.0"],\
|
||||
["@rollup/plugin-babel", "virtual:9555373101f58738ea803ff9e79b0d8b52a66e88c21dac99d127fd080df7e60c5efb4c82f30a042556261bfb95e0c5292626cc000800b004d622753bbf9e02e5#npm:6.0.3"],\
|
||||
["@types/react", "npm:18.0.25"],\
|
||||
["countup.js", "npm:2.3.2"],\
|
||||
["react", "npm:18.2.0"]\
|
||||
],\
|
||||
"packagePeers": [\
|
||||
"@types/react",\
|
||||
"react"\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["react-dom", [\
|
||||
["npm:18.2.0", {\
|
||||
"packageLocation": "./.yarn/cache/react-dom-npm-18.2.0-dd675bca1c-7d323310be.zip/node_modules/react-dom/",\
|
||||
@ -10661,15 +10550,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["vary", [\
|
||||
["npm:1.1.2", {\
|
||||
"packageLocation": "./.yarn/cache/vary-npm-1.1.2-b49f70ae63-ae0123222c.zip/node_modules/vary/",\
|
||||
"packageDependencies": [\
|
||||
["vary", "npm:1.1.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["warning", [\
|
||||
["npm:4.0.3", {\
|
||||
"packageLocation": "./.yarn/cache/warning-npm-4.0.3-291e921d6d-4f2cb6a957.zip/node_modules/warning/",\
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/cors-npm-2.8.5-c9935a2d12-ced838404c.zip
vendored
BIN
.yarn/cache/cors-npm-2.8.5-c9935a2d12-ced838404c.zip
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/vary-npm-1.1.2-b49f70ae63-ae0123222c.zip
vendored
BIN
.yarn/cache/vary-npm-1.1.2-b49f70ae63-ae0123222c.zip
vendored
Binary file not shown.
@ -1,218 +0,0 @@
|
||||
import { FunctionComponent } from "react";
|
||||
import ReactModal from "react-modal";
|
||||
import Image from "next/image";
|
||||
import styled from "styled-components";
|
||||
import { WalletType } from "../../constants/wallet";
|
||||
import { loginWithTwitter } from "../../queries";
|
||||
import color from "../../styles/color";
|
||||
|
||||
interface Props {
|
||||
isModalOpen: boolean;
|
||||
onCloseModal: () => void;
|
||||
currentReferal?: string;
|
||||
walletKeyName: string;
|
||||
selectedWalletItem?: WalletType;
|
||||
}
|
||||
|
||||
export const BeforeYouStartModal: FunctionComponent<Props> = (props) => {
|
||||
const {
|
||||
isModalOpen,
|
||||
onCloseModal,
|
||||
currentReferal,
|
||||
walletKeyName,
|
||||
selectedWalletItem,
|
||||
} = props;
|
||||
|
||||
const handleClickButton = async () => {
|
||||
await loginWithTwitter();
|
||||
};
|
||||
|
||||
return (
|
||||
<ReactModal
|
||||
isOpen={isModalOpen}
|
||||
onRequestClose={onCloseModal}
|
||||
ariaHideApp={false}
|
||||
style={{
|
||||
overlay: { background: "#121212cc" },
|
||||
content: {
|
||||
top: "50%",
|
||||
left: "50%",
|
||||
right: "auto",
|
||||
bottom: "auto",
|
||||
padding: 0,
|
||||
marginRight: "-50%",
|
||||
transform: "translate(-50%, -50%)",
|
||||
background: color.grey["800"],
|
||||
border: 0,
|
||||
},
|
||||
}}
|
||||
>
|
||||
<ModalContainer>
|
||||
<ModalTitle>Before you start</ModalTitle>
|
||||
{currentReferal && (
|
||||
<ModalDescription>
|
||||
{"You're invited by"}
|
||||
<Image
|
||||
style={{ marginLeft: "4px" }}
|
||||
src="/images/icons/twitter-small.png"
|
||||
alt="twitter icon"
|
||||
width={18}
|
||||
height={18}
|
||||
/>
|
||||
<ModalDescriptionBold>{currentReferal}</ModalDescriptionBold>
|
||||
</ModalDescription>
|
||||
)}
|
||||
<SubTextsContainer>
|
||||
<SubTextList>
|
||||
<SubTextListItem>
|
||||
ICNS requires you to verify ownership of your Twitter account.
|
||||
</SubTextListItem>
|
||||
<br />
|
||||
<SubTextListItem>
|
||||
ICNS name stays the same even if your Twitter handle changes in
|
||||
the future.
|
||||
</SubTextListItem>
|
||||
<br />
|
||||
<SubTextListItem>
|
||||
ICNS names could permanently link your Twitter identity to your
|
||||
crypto wallet, recorded on the blockchain.
|
||||
</SubTextListItem>
|
||||
</SubTextList>
|
||||
</SubTextsContainer>
|
||||
<WalletAccountContainer>
|
||||
<WalletAccountLabel>{"Claim ICNS name for"}</WalletAccountLabel>
|
||||
<WalletAccountValue>
|
||||
{selectedWalletItem && (
|
||||
<selectedWalletItem.IconComponent width={16} height={16} />
|
||||
)}
|
||||
<WalletAccountName>{walletKeyName}</WalletAccountName>
|
||||
</WalletAccountValue>
|
||||
</WalletAccountContainer>
|
||||
<ClaimWithTwitterButton onClick={handleClickButton}>
|
||||
<Image
|
||||
src="/images/icons/twitter-small.png"
|
||||
alt="twitter icon"
|
||||
width={28}
|
||||
height={28}
|
||||
/>
|
||||
CLAIM WITH TWITTER
|
||||
</ClaimWithTwitterButton>
|
||||
</ModalContainer>
|
||||
</ReactModal>
|
||||
);
|
||||
};
|
||||
|
||||
const ModalContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.75rem;
|
||||
padding: 2.25rem;
|
||||
|
||||
max-width: 28.5rem;
|
||||
`;
|
||||
|
||||
const ModalTitle = styled.div`
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-size: 1.5rem;
|
||||
line-height: 1.8rem;
|
||||
|
||||
color: ${color.white};
|
||||
`;
|
||||
|
||||
const ModalDescription = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.25rem;
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-size: 0.925rem;
|
||||
line-height: 1.1rem;
|
||||
|
||||
color: ${color.grey["500"]};
|
||||
`;
|
||||
|
||||
const ModalDescriptionBold = styled.span`
|
||||
color: ${color.grey["100"]};
|
||||
`;
|
||||
|
||||
const SubTextsContainer = styled.div`
|
||||
padding: 1rem 1.75rem;
|
||||
|
||||
background-color: ${color.grey["700"]};
|
||||
`;
|
||||
|
||||
const SubTextList = styled.ul`
|
||||
margin: 0 0 1rem;
|
||||
padding: 0 0.75rem;
|
||||
`;
|
||||
|
||||
const SubTextListItem = styled.li`
|
||||
font-weight: 400;
|
||||
font-size: 0.825rem;
|
||||
line-height: 1.5rem;
|
||||
|
||||
color: ${color.grey["300"]};
|
||||
`;
|
||||
|
||||
const WalletAccountContainer = styled.div`
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
`;
|
||||
|
||||
const WalletAccountLabel = styled.div`
|
||||
font-weight: 500;
|
||||
font-size: 0.925rem;
|
||||
line-height: 1.125rem;
|
||||
|
||||
color: ${color.grey["200"]};
|
||||
`;
|
||||
|
||||
const WalletAccountValue = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.725rem;
|
||||
background: ${color.grey["700"]};
|
||||
|
||||
font-weight: 600;
|
||||
font-size: 0.925rem;
|
||||
line-height: 1.125rem;
|
||||
|
||||
color: ${color.grey["100"]};
|
||||
`;
|
||||
|
||||
const WalletAccountName = styled.div`
|
||||
max-width: 11rem;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
`;
|
||||
|
||||
const ClaimWithTwitterButton = styled.button`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.625rem;
|
||||
padding: 1.875rem;
|
||||
|
||||
background-color: ${color.grey["700"]};
|
||||
border: none;
|
||||
|
||||
font-weight: 600;
|
||||
font-size: 1.25rem;
|
||||
line-height: 102.5%;
|
||||
letter-spacing: 0.07em;
|
||||
|
||||
text-transform: uppercase;
|
||||
color: #03a9f4;
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
opacity: 0.5;
|
||||
}
|
||||
`;
|
@ -2,26 +2,19 @@ import { FunctionComponent, useState } from "react";
|
||||
import ReactModal from "react-modal";
|
||||
import styled from "styled-components";
|
||||
import color from "../../styles/color";
|
||||
import { WalletList, WalletType } from "../../constants/wallet";
|
||||
import { WalletList } from "../../constants/wallet";
|
||||
import { WalletItem } from "./wallet-item";
|
||||
import { ErrorMessage } from "../../types";
|
||||
import { ErrorModal } from "../error-modal";
|
||||
import { BeforeYouStartModal } from "../before-you-start-modal";
|
||||
|
||||
interface Props {
|
||||
isModalOpen: boolean;
|
||||
onCloseModal: () => void;
|
||||
currentReferal?: string;
|
||||
}
|
||||
|
||||
export const ConnectWalletModal: FunctionComponent<Props> = (props) => {
|
||||
const { isModalOpen, onCloseModal, currentReferal } = props;
|
||||
const { isModalOpen, onCloseModal } = props;
|
||||
const [isErrorModalOpen, setErrorModalOpen] = useState(false);
|
||||
const [isBeforeYouStartModalOpen, setBeforeYouStartModalOpen] =
|
||||
useState(false);
|
||||
const [selectedWalletItem, setSelectedWalletItem] = useState<WalletType>();
|
||||
const [walletKeyName, setWalletKeyName] = useState("");
|
||||
|
||||
const [errorMessage, setErrorMessage] = useState<ErrorMessage>();
|
||||
|
||||
return (
|
||||
@ -47,8 +40,8 @@ export const ConnectWalletModal: FunctionComponent<Props> = (props) => {
|
||||
<ModalContainer>
|
||||
<ModalTitle>Connect Wallet</ModalTitle>
|
||||
<ModalDescription>
|
||||
Make sure you have selected the correct account to link to your ICNS
|
||||
name.
|
||||
Make sure you have the correst account to cliam your ICNS name is
|
||||
slelected on your wallet
|
||||
</ModalDescription>
|
||||
|
||||
{WalletList.map((walletItem) => {
|
||||
@ -58,21 +51,11 @@ export const ConnectWalletModal: FunctionComponent<Props> = (props) => {
|
||||
key={walletItem.name}
|
||||
setErrorModalOpen={setErrorModalOpen}
|
||||
setErrorMessage={setErrorMessage}
|
||||
setBeforeYouStartModalOpen={setBeforeYouStartModalOpen}
|
||||
setWalletKeyName={setWalletKeyName}
|
||||
setSelectedWalletItem={setSelectedWalletItem}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</ModalContainer>
|
||||
|
||||
<BeforeYouStartModal
|
||||
isModalOpen={isBeforeYouStartModalOpen}
|
||||
onCloseModal={() => setBeforeYouStartModalOpen(false)}
|
||||
currentReferal={currentReferal}
|
||||
walletKeyName={walletKeyName}
|
||||
selectedWalletItem={selectedWalletItem}
|
||||
/>
|
||||
<ErrorModal
|
||||
isModalOpen={isErrorModalOpen}
|
||||
onCloseModal={() => setErrorModalOpen(false)}
|
||||
@ -106,7 +89,7 @@ const ModalDescription = styled.div`
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-size: 0.875rem;
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.1rem;
|
||||
|
||||
color: ${color.grey["400"]};
|
||||
|
@ -16,6 +16,7 @@ import {
|
||||
WalletType,
|
||||
} from "../../constants/wallet";
|
||||
import { getKeplrFromWindow, KeplrWallet } from "../../wallets";
|
||||
import { loginWithTwitter } from "../../queries";
|
||||
import {
|
||||
KEPLR_NO_ACCOUNT_ERROR,
|
||||
KEPLR_NO_ACCOUNT_MESSAGE,
|
||||
@ -24,26 +25,15 @@ import {
|
||||
} from "../../constants/error-message";
|
||||
import semver from "semver/preload";
|
||||
import { ErrorMessage } from "../../types";
|
||||
import { MAIN_CHAIN_ID } from "../../constants/icns";
|
||||
|
||||
interface Props {
|
||||
wallet: WalletType;
|
||||
setErrorMessage: Dispatch<SetStateAction<ErrorMessage | undefined>>;
|
||||
setErrorModalOpen: Dispatch<SetStateAction<boolean>>;
|
||||
setBeforeYouStartModalOpen: Dispatch<SetStateAction<boolean>>;
|
||||
setWalletKeyName: Dispatch<SetStateAction<string>>;
|
||||
setSelectedWalletItem: Dispatch<SetStateAction<WalletType | undefined>>;
|
||||
}
|
||||
|
||||
export const WalletItem: FunctionComponent<Props> = (props: Props) => {
|
||||
const {
|
||||
wallet,
|
||||
setErrorModalOpen,
|
||||
setErrorMessage,
|
||||
setBeforeYouStartModalOpen,
|
||||
setWalletKeyName,
|
||||
setSelectedWalletItem,
|
||||
} = props;
|
||||
const { wallet, setErrorModalOpen, setErrorMessage } = props;
|
||||
const [isInstalled, setIsInstalled] = useState<boolean>();
|
||||
|
||||
useEffect(() => {
|
||||
@ -51,14 +41,13 @@ export const WalletItem: FunctionComponent<Props> = (props: Props) => {
|
||||
}, []);
|
||||
|
||||
const onClickWalletItem = async () => {
|
||||
setSelectedWalletItem(wallet);
|
||||
try {
|
||||
if (wallet.name === "Keplr") {
|
||||
await connectKeplr();
|
||||
localStorage.setItem(SELECTED_WALLET_KEY, wallet.name);
|
||||
}
|
||||
|
||||
setBeforeYouStartModalOpen(true);
|
||||
await loginWithTwitter();
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
console.log(error.message);
|
||||
@ -89,22 +78,11 @@ export const WalletItem: FunctionComponent<Props> = (props: Props) => {
|
||||
|
||||
if (keplr) {
|
||||
const wallet = new KeplrWallet(keplr);
|
||||
|
||||
const chainIds = (await wallet.getChainInfosWithoutEndpoints()).map(
|
||||
(c) => c.chainId,
|
||||
);
|
||||
|
||||
await wallet.init(chainIds);
|
||||
const walletKey = await wallet.getKey(MAIN_CHAIN_ID);
|
||||
setWalletKeyName(walletKey.name);
|
||||
|
||||
// FIXME: Probably able to make memory leak.
|
||||
// setWalletKeyName should be persistent, so it is fine for now.
|
||||
// We should remove event listener well.
|
||||
window.addEventListener("keplr_keystorechange", async () => {
|
||||
const walletKey = await wallet.getKey(MAIN_CHAIN_ID);
|
||||
setWalletKeyName(walletKey.name);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -23,8 +23,7 @@ class ErrorBoundary extends Component<Props, State> {
|
||||
public componentDidCatch(error: Error, errorInfo: ErrorInfo) {
|
||||
console.error("Uncaught error:", error, errorInfo);
|
||||
|
||||
const errorMessage = error.message || error;
|
||||
captureException(errorMessage);
|
||||
captureException(error);
|
||||
}
|
||||
|
||||
public render() {
|
||||
|
@ -69,7 +69,7 @@ export const FinalCheckModal: FunctionComponent<Props> = (props) => {
|
||||
/>
|
||||
}
|
||||
title="Your Twitter Handle"
|
||||
content={`@${twitterUserName}`}
|
||||
content={`${twitterUserName}`}
|
||||
/>
|
||||
<div
|
||||
style={{
|
||||
@ -108,8 +108,8 @@ export const FinalCheckModal: FunctionComponent<Props> = (props) => {
|
||||
}}
|
||||
/>
|
||||
}
|
||||
title="Keplr Account"
|
||||
content={walletInfo?.name || "Keplr Account"}
|
||||
title="Keplr account"
|
||||
content={walletInfo?.name || "Keplr account"}
|
||||
contentTooltip={{
|
||||
id: "address-tooltip",
|
||||
content: walletInfo?.bech32Address || "",
|
||||
@ -128,9 +128,6 @@ export const FinalCheckModal: FunctionComponent<Props> = (props) => {
|
||||
<SubTextListItem>
|
||||
Please make sure you’ve selected the right account on your wallet.
|
||||
</SubTextListItem>
|
||||
<SubTextListItem>
|
||||
This is an irreversible onchain trasaction.
|
||||
</SubTextListItem>
|
||||
</SubTextList>
|
||||
<SubText>
|
||||
{MINIMUM_OSMO_FEE} will be spent as a spam-prevention fee.
|
||||
|
@ -75,7 +75,7 @@ const StyledPrimaryButton = styled.button`
|
||||
}
|
||||
`;
|
||||
|
||||
export const SpinnerWrapper = styled.div`
|
||||
const SpinnerWrapper = styled.div`
|
||||
display: flex;
|
||||
position: relative;
|
||||
|
||||
@ -92,7 +92,7 @@ const spinAnimation = keyframes`
|
||||
}
|
||||
`;
|
||||
|
||||
export const Spinner = styled.div<{ animationDelay?: string }>`
|
||||
const Spinner = styled.div<{ animationDelay?: string }>`
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
@ -1,80 +1,18 @@
|
||||
import color from "../../styles/color";
|
||||
import styled from "styled-components";
|
||||
import { TwitterAuthInfoResponse } from "../../types";
|
||||
import { FunctionComponent, useEffect, useState } from "react";
|
||||
import { FunctionComponent } from "react";
|
||||
import Image from "next/image";
|
||||
|
||||
import ICNSIcon from "../../public/images/svg/icns-logo.svg";
|
||||
|
||||
interface Props {
|
||||
isOwner?: boolean;
|
||||
registeredTwitterName?: string;
|
||||
twitterProfileInformation?: TwitterAuthInfoResponse | null;
|
||||
}
|
||||
|
||||
export const TwitterProfile: FunctionComponent<Props> = (props) => {
|
||||
const { isOwner, registeredTwitterName, twitterProfileInformation } = props;
|
||||
const [isCopied, setIsCopied] = useState<boolean>(false);
|
||||
|
||||
const onClickInviteLink = async () => {
|
||||
await navigator.clipboard.writeText(
|
||||
`https://app.icns.xyz?referral=${registeredTwitterName}`,
|
||||
);
|
||||
|
||||
setIsCopied(true);
|
||||
|
||||
setTimeout(() => {
|
||||
setIsCopied(false);
|
||||
}, 1000);
|
||||
};
|
||||
const { twitterProfileInformation } = props;
|
||||
|
||||
return (
|
||||
<ProfileContainer color={color.grey["900"]}>
|
||||
{registeredTwitterName ? (
|
||||
isCopied ? (
|
||||
<InviteLinkContainer>
|
||||
copied
|
||||
<CopiedIcon
|
||||
width="14"
|
||||
height="12"
|
||||
viewBox="0 0 14 12"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M2 4.92614L6.08333 9.9375L12.5 2.0625"
|
||||
stroke="current"
|
||||
strokeWidth="2"
|
||||
strokeLinecap="square"
|
||||
/>
|
||||
</CopiedIcon>
|
||||
</InviteLinkContainer>
|
||||
) : (
|
||||
<InviteLinkContainer onClick={onClickInviteLink}>
|
||||
copy invite link
|
||||
<CopyIcon
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="16"
|
||||
height="16"
|
||||
fill="none"
|
||||
viewBox="0 0 16 16"
|
||||
>
|
||||
<path
|
||||
stroke="current"
|
||||
strokeLinecap="square"
|
||||
strokeWidth="1.5"
|
||||
d="M10.667 2.667h-8v8"
|
||||
/>
|
||||
<path
|
||||
stroke="current"
|
||||
strokeLinecap="square"
|
||||
strokeWidth="1.5"
|
||||
d="M5.417 5.417H13.25V13.25H5.417z"
|
||||
/>
|
||||
</CopyIcon>
|
||||
</InviteLinkContainer>
|
||||
)
|
||||
) : null}
|
||||
<ProfileImageContainer>
|
||||
<Image
|
||||
src={twitterProfileInformation?.profile_image_url ?? ""}
|
||||
@ -86,13 +24,7 @@ export const TwitterProfile: FunctionComponent<Props> = (props) => {
|
||||
|
||||
<ProfileContentContainer>
|
||||
<ProfileNameContainer>
|
||||
<ProfileName>{twitterProfileInformation?.name}</ProfileName>
|
||||
|
||||
{isOwner ? (
|
||||
<IsOwnerIcon>
|
||||
<ICNSIcon />
|
||||
</IsOwnerIcon>
|
||||
) : null}
|
||||
{twitterProfileInformation?.name}
|
||||
</ProfileNameContainer>
|
||||
<ProfileUserNameContainer>
|
||||
@{twitterProfileInformation?.username}
|
||||
@ -126,8 +58,6 @@ export const ProfileContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
position: relative;
|
||||
|
||||
width: 100%;
|
||||
|
||||
padding: 1.5rem 2rem;
|
||||
@ -135,45 +65,6 @@ export const ProfileContainer = styled.div`
|
||||
background-color: ${(props) => props.color};
|
||||
`;
|
||||
|
||||
const CopyIcon = styled.svg`
|
||||
stroke: ${color.grey["100"]};
|
||||
`;
|
||||
|
||||
const CopiedIcon = styled.svg`
|
||||
stroke: ${color.grey["100"]};
|
||||
`;
|
||||
|
||||
export const InviteLinkContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 0.2rem;
|
||||
|
||||
position: absolute;
|
||||
|
||||
top: 1.75rem;
|
||||
right: 1.5rem;
|
||||
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-size: 0.875rem;
|
||||
line-height: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
|
||||
color: ${color.grey["100"]};
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: ${color.grey["200"]};
|
||||
|
||||
${CopyIcon} {
|
||||
stroke: ${color.grey["200"]};
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const ProfileContentContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -196,12 +87,6 @@ export const ProfileImageContainer = styled.div`
|
||||
`;
|
||||
|
||||
export const ProfileNameContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
`;
|
||||
|
||||
export const ProfileName = styled.div`
|
||||
font-weight: 600;
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.5rem;
|
||||
@ -209,15 +94,6 @@ export const ProfileName = styled.div`
|
||||
color: ${color.white};
|
||||
`;
|
||||
|
||||
export const IsOwnerIcon = styled.div`
|
||||
height: 1px;
|
||||
background-color: red;
|
||||
margin-top: 0.1rem;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
`;
|
||||
|
||||
export const ProfileUserNameContainer = styled.div`
|
||||
font-weight: 500;
|
||||
font-size: 0.8rem;
|
||||
|
@ -1,36 +1,9 @@
|
||||
export const TWITTER_LOGIN_ERROR = "Twitter login access denied";
|
||||
export const TWITTER_PROFILE_ERROR = "Twitter auth code is not valid";
|
||||
|
||||
export const KEPLR_NOT_FOUND_ERROR = "Can't found window.keplr";
|
||||
export const KEPLR_NOT_FOUND_ERROR = "Can't fount window.keplr";
|
||||
export const KEPLR_VERSION_ERROR = "You should update keplr";
|
||||
|
||||
export const KEPLR_NO_ACCOUNT_ERROR = "key doesn't exist";
|
||||
export const KEPLR_NO_ACCOUNT_MESSAGE =
|
||||
"Create a wallet account to get started with ICNS!";
|
||||
|
||||
export const INSUFFICIENT_GAS_ERROR = "insufficient funds: invalid request";
|
||||
export const INSUFFICIENT_GAS_MESSAGE =
|
||||
"Not enough OSMO in your account. Please add more OSMO to your account";
|
||||
|
||||
export const ACCOUNT_NOT_EXIST_ERROR = "does not exist: unknown address";
|
||||
export const ACCOUNT_NOT_EXIST_MESSAGE =
|
||||
"Account has not been registered on chain. Please add some OSMO to your account and try again.";
|
||||
|
||||
export const VERIFICATION_THRESHOLD_ERROR = "verfication is below threshold:";
|
||||
export const VERIFICATION_THRESHOLD_MESSAGE =
|
||||
"Verifier consensus failed. Verifiers may be offline. Please try again later.";
|
||||
|
||||
export const INVALID_REFERRAL_ERROR = "Invalid referral:";
|
||||
export const INVALID_REFERRAL_MESSAGE =
|
||||
"Make sure that the referrer ICNS name has been registered.";
|
||||
|
||||
export const TOO_MANY_CHAINS_IN_LEDGER_ERROR = "Output buffer too small";
|
||||
export const TOO_MANY_CHAINS_IN_LEDGER_MESSAGE =
|
||||
"Due to hardware constraints, limited number of chains can be linked at a time(1-2 on Ledger Nano S / 25 on Ledger Nano S+/X). Please select less chains and try again.";
|
||||
|
||||
export const EVM_CHAIN_IN_LEDGER_ERROR = "Ledger is unsupported for this chain";
|
||||
export const EVM_CHAIN_IN_LEDGER_MESSAGE =
|
||||
"ICNS for Cosmos chains using Ethereum/EVM keys are not supported. Remove EVM-based Cosmos SDK chains and try again.";
|
||||
|
||||
export const LEDGER_MAX_REGISTER_ERROR =
|
||||
"Data is invalid : JSON. Too many tokens";
|
||||
"Create an account first and connect it with your wallet";
|
||||
|
@ -20,9 +20,6 @@ export const RESOLVER_ADDRESS =
|
||||
process.env.NEXT_PUBLIC_ICNS_RESOLVER_CONTRACT_ADDRESS ??
|
||||
"osmo1002awr7frr9wk44lc3vfzt0d2w6vz5z03ql6fszjsjy8vdcvk0sskruz3c";
|
||||
|
||||
export const CLAIM_URL =
|
||||
"https://lcd-osmosis.keplr.app/cosmwasm/wasm/v1/contract/osmo1mypljhatv0prfr9cjzzvamxdf2ctg34xkt50sudxads9zhqnyneqjuvy26/smart/eyJudW1fdG9rZW5zIjp7fX0=";
|
||||
|
||||
export const CHAIN_ALLOWLIST =
|
||||
process.env.NEXT_PUBLIC_CHAIN_ALLOWLIST ||
|
||||
[
|
||||
@ -84,6 +81,4 @@ export const CHAIN_ALLOWLIST =
|
||||
"tgrade-mainnet-1",
|
||||
"umee-1",
|
||||
"vidulum-1",
|
||||
"evmos_9001-2",
|
||||
"injective-1",
|
||||
].join(",");
|
||||
|
@ -1,26 +0,0 @@
|
||||
import { useEffect, useRef } from "react";
|
||||
import useIsomorphicLayoutEffect from "./use-isomorphic-layout-effect";
|
||||
|
||||
function useInterval(callback: () => void, delay: number | null) {
|
||||
const savedCallback = useRef(callback);
|
||||
|
||||
// Remember the latest callback if it changes.
|
||||
useIsomorphicLayoutEffect(() => {
|
||||
savedCallback.current = callback;
|
||||
}, [callback]);
|
||||
|
||||
// Set up the interval.
|
||||
useEffect(() => {
|
||||
// Don't schedule if no delay is specified.
|
||||
// Note: 0 is a valid value for delay.
|
||||
if (!delay && delay !== 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const id = setInterval(() => savedCallback.current(), delay);
|
||||
|
||||
return () => clearInterval(id);
|
||||
}, [delay]);
|
||||
}
|
||||
|
||||
export default useInterval;
|
@ -1,6 +0,0 @@
|
||||
import { useEffect, useLayoutEffect } from "react";
|
||||
|
||||
const useIsomorphicLayoutEffect =
|
||||
typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
||||
|
||||
export default useIsomorphicLayoutEffect;
|
@ -2,11 +2,9 @@
|
||||
const { withSentryConfig } = require("@sentry/nextjs");
|
||||
|
||||
const nextConfig = {
|
||||
...(!!process.env.NEXT_PUBLIC_SENTRY_DSN && {
|
||||
sentry: {
|
||||
hideSourceMaps: true,
|
||||
},
|
||||
}),
|
||||
reactStrictMode: false,
|
||||
swcMinify: true,
|
||||
compiler: {
|
||||
@ -43,6 +41,7 @@ const sentryWebpackPluginOptions = {
|
||||
silent: true,
|
||||
};
|
||||
|
||||
module.exports = !!process.env.NEXT_PUBLIC_SENTRY_DSN
|
||||
module.exports =
|
||||
process.env.NEXT_IS_ENABLE_USER_TRACKING === "true"
|
||||
? withSentryConfig(nextConfig, sentryWebpackPluginOptions)
|
||||
: nextConfig;
|
||||
|
@ -15,15 +15,13 @@
|
||||
"@keplr-wallet/cosmos": "^0.11.25",
|
||||
"@keplr-wallet/proto-types": "^0.11.25",
|
||||
"@keplr-wallet/types": "^0.11.25",
|
||||
"@sentry/nextjs": "^7.29.0",
|
||||
"@sentry/nextjs": "^7.27.0",
|
||||
"axios": "^0.27.2",
|
||||
"buffer": "^6.0.3",
|
||||
"cors": "^2.8.5",
|
||||
"crypto": "^1.0.1",
|
||||
"iron-session": "^6.3.1",
|
||||
"next": "13.0.5",
|
||||
"react": "18.2.0",
|
||||
"react-countup": "^6.4.0",
|
||||
"react-dom": "18.2.0",
|
||||
"react-is": "^18.2.0",
|
||||
"react-modal": "^3.16.1",
|
||||
@ -35,7 +33,6 @@
|
||||
"devDependencies": {
|
||||
"@next/eslint-plugin-next": "^13.0.5",
|
||||
"@svgr/webpack": "^6.5.1",
|
||||
"@types/cors": "^2",
|
||||
"@types/eslint": "^8.4.10",
|
||||
"@types/node": "18.11.9",
|
||||
"@types/react": "18.0.25",
|
||||
|
@ -58,6 +58,102 @@ export default function App({ Component, pageProps }: AppProps) {
|
||||
<ThemeProvider theme={pageTheme}>
|
||||
<Head>
|
||||
<title>Interchain Name Service</title>
|
||||
<meta content="Interchain Name Service" property="og:title" />
|
||||
<meta content="Interchain Name Service" property="twitter:title" />
|
||||
<meta
|
||||
content="Your identity for the Interchain. Claim yours today."
|
||||
property="og:description"
|
||||
/>
|
||||
<meta
|
||||
content="Your identity for the Interchain. Claim yours today."
|
||||
property="twitter:description"
|
||||
/>
|
||||
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
|
||||
<meta
|
||||
content={`${origin}/images/og-image.webp`}
|
||||
property="twitter:image"
|
||||
/>
|
||||
<meta content={`${origin}/images/og-image.webp`} property="og:image" />
|
||||
<meta content="summary_large_image" name="twitter:card" />
|
||||
<meta property="og:type" content="website" />
|
||||
|
||||
{/* generated favicons */}
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="57x57"
|
||||
href="/images/favicon/apple-icon-57x57.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="60x60"
|
||||
href="/images/favicon/apple-icon-60x60.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="72x72"
|
||||
href="/images/favicon/apple-icon-72x72.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="76x76"
|
||||
href="/images/favicon/apple-icon-76x76.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="114x114"
|
||||
href="/images/favicon/apple-icon-114x114.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="120x120"
|
||||
href="/images/favicon/apple-icon-120x120.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="144x144"
|
||||
href="/images/favicon/apple-icon-144x144.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="152x152"
|
||||
href="/images/favicon/apple-icon-152x152.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
href="/images/favicon/apple-icon-180x180.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="192x192"
|
||||
href="/images/favicon/android-icon-192x192.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="/images/favicon/favicon-32x32.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="96x96"
|
||||
href="/images/favicon/favicon-96x96.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="/images/favicon/favicon-16x16.png"
|
||||
/>
|
||||
<link rel="manifest" href="/images/favicon/manifest.json" />
|
||||
<meta name="msapplication-TileColor" content="#ffffff" />
|
||||
<meta
|
||||
name="msapplication-TileImage"
|
||||
content="/images/favicon/ms-icon-144x144.png"
|
||||
/>
|
||||
<meta name="theme-color" content="#ffffff" />
|
||||
</Head>
|
||||
<React.Fragment>
|
||||
<GlobalStyle />
|
||||
|
@ -54,109 +54,6 @@ class MyDocument extends Document {
|
||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<meta content="Interchain Name Service" property="og:title" />
|
||||
<meta content="Interchain Name Service" name="twitter:title" />
|
||||
<meta
|
||||
content="Your identity for the Interchain. Claim yours today."
|
||||
property="og:description"
|
||||
/>
|
||||
<meta
|
||||
content="Your identity for the Interchain. Claim yours today."
|
||||
property="twitter:description"
|
||||
/>
|
||||
<meta
|
||||
name="viewport"
|
||||
content="initial-scale=1.0, width=device-width"
|
||||
/>
|
||||
<meta
|
||||
content={`https://app.icns.xyz/images/og-image.jpg`}
|
||||
name="twitter:image"
|
||||
/>
|
||||
<meta content={`ICNS image`} name="twitter:image:alt" />
|
||||
<meta
|
||||
content={`https://app.icns.xyz/images/og-image.jpg`}
|
||||
property="og:image"
|
||||
/>
|
||||
<meta content="summary_large_image" name="twitter:card" />
|
||||
<meta property="og:type" content="website" />
|
||||
|
||||
{/* generated favicons */}
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="57x57"
|
||||
href="/images/favicon/apple-icon-57x57.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="60x60"
|
||||
href="/images/favicon/apple-icon-60x60.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="72x72"
|
||||
href="/images/favicon/apple-icon-72x72.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="76x76"
|
||||
href="/images/favicon/apple-icon-76x76.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="114x114"
|
||||
href="/images/favicon/apple-icon-114x114.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="120x120"
|
||||
href="/images/favicon/apple-icon-120x120.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="144x144"
|
||||
href="/images/favicon/apple-icon-144x144.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="152x152"
|
||||
href="/images/favicon/apple-icon-152x152.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
href="/images/favicon/apple-icon-180x180.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="192x192"
|
||||
href="/images/favicon/android-icon-192x192.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="/images/favicon/favicon-32x32.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="96x96"
|
||||
href="/images/favicon/favicon-96x96.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="/images/favicon/favicon-16x16.png"
|
||||
/>
|
||||
<link rel="manifest" href="/images/favicon/manifest.json" />
|
||||
<meta name="msapplication-TileColor" content="#ffffff" />
|
||||
<meta
|
||||
name="msapplication-TileImage"
|
||||
content="/images/favicon/ms-icon-144x144.png"
|
||||
/>
|
||||
<meta name="theme-color" content="#ffffff" />
|
||||
</Head>
|
||||
<body>
|
||||
<Main />
|
||||
|
@ -1,23 +0,0 @@
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import { CHAIN_ALLOWLIST } from "../../constants/icns";
|
||||
import Cors from "cors";
|
||||
|
||||
const cors = Cors({
|
||||
methods: ["GET"],
|
||||
});
|
||||
|
||||
export default async function (req: NextApiRequest, res: NextApiResponse) {
|
||||
await new Promise((resolve, reject) => {
|
||||
cors(req, res, (result: any) => {
|
||||
if (result instanceof Error) {
|
||||
return reject(result);
|
||||
}
|
||||
|
||||
return resolve(result);
|
||||
});
|
||||
});
|
||||
|
||||
res.status(200).json({
|
||||
chains: CHAIN_ALLOWLIST,
|
||||
});
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
import { captureException } from "@sentry/nextjs";
|
||||
import { withIronSessionApiRoute } from "iron-session/next";
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import { ironOptions } from "../../iron.config";
|
||||
import { IcnsVerificationResponse } from "../../types";
|
||||
import { request } from "../../utils/url";
|
||||
|
||||
export default withIronSessionApiRoute(async function handler(
|
||||
req: NextApiRequest,
|
||||
@ -9,42 +10,30 @@ export default withIronSessionApiRoute(async function handler(
|
||||
) {
|
||||
try {
|
||||
if (!process.env.ICNS_VERIFIER_ORIGIN_LIST) {
|
||||
const errorMessage = ".env is not set";
|
||||
console.error(errorMessage);
|
||||
captureException(errorMessage);
|
||||
console.log(".env is not set");
|
||||
return res.status(500).json({ error: "Internal server error" });
|
||||
}
|
||||
const verifierOriginList = process.env.ICNS_VERIFIER_ORIGIN_LIST.split(",");
|
||||
|
||||
const verificationList = await Promise.allSettled(
|
||||
verifierOriginList.map(async (verfierOrigin) =>
|
||||
(
|
||||
await fetch(`${verfierOrigin}/api/verify_twitter`, {
|
||||
verifierOriginList.map((verfierOrigin) =>
|
||||
request<IcnsVerificationResponse>(
|
||||
`${verfierOrigin}/api/verify_twitter`,
|
||||
{
|
||||
method: "post",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify(req.body),
|
||||
})
|
||||
).json(),
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
const errorTrimmedVerificationList = verificationList.map(
|
||||
(verification) => ({
|
||||
...verification,
|
||||
...(verification.status === "rejected" && {
|
||||
reason: verification.reason.message || verification.reason,
|
||||
}),
|
||||
}),
|
||||
);
|
||||
|
||||
res.status(200).json({
|
||||
verificationList: errorTrimmedVerificationList,
|
||||
verificationList,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
captureException(error);
|
||||
res.status(500).json({ error: "Internal server error" });
|
||||
}
|
||||
},
|
||||
|
@ -1,8 +1,8 @@
|
||||
import { captureException } from "@sentry/nextjs";
|
||||
import { withIronSessionApiRoute } from "iron-session/next";
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import { twitterApiBaseUrl } from "../../constants/twitter";
|
||||
import { withIronSessionApiRoute } from "iron-session/next";
|
||||
import { request } from "../../utils/url";
|
||||
import { ironOptions } from "../../iron.config";
|
||||
import { twitterApiBaseUrl } from "../../constants/twitter";
|
||||
|
||||
export default withIronSessionApiRoute(async function handler(
|
||||
req: NextApiRequest,
|
||||
@ -45,13 +45,10 @@ export default withIronSessionApiRoute(async function handler(
|
||||
params.append("code_verifier", req.session.code_verifier);
|
||||
}
|
||||
|
||||
const {
|
||||
access_token: accessToken,
|
||||
refresh_token,
|
||||
error: authTokenErrorTitle,
|
||||
error_description: authTokenErrorDesc,
|
||||
}: TwitterOAuth2TokenResponse = await (
|
||||
await fetch(`${twitterApiBaseUrl}/oauth2/token`, {
|
||||
const { access_token: accessToken, refresh_token } =
|
||||
await request<TwitterOAuth2TokenResponse>(
|
||||
`${twitterApiBaseUrl}/oauth2/token`,
|
||||
{
|
||||
method: "post",
|
||||
headers: {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
@ -60,59 +57,41 @@ export default withIronSessionApiRoute(async function handler(
|
||||
).toString("base64")}`,
|
||||
},
|
||||
body: params,
|
||||
})
|
||||
).json();
|
||||
|
||||
if (authTokenErrorTitle) {
|
||||
throw new Error(`${authTokenErrorTitle}: ${authTokenErrorDesc}`);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
req.session.refresh_token = refresh_token;
|
||||
await req.session.save();
|
||||
const {
|
||||
data,
|
||||
title: usersMeErrorTitle,
|
||||
detail: usersMeErrorDesc,
|
||||
}: TwitterUsersMeResponse = await (
|
||||
await fetch(
|
||||
`${twitterApiBaseUrl}/users/me?user.fields=profile_image_url,public_metrics,description`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${accessToken}`,
|
||||
},
|
||||
},
|
||||
)
|
||||
).json();
|
||||
|
||||
if (usersMeErrorTitle) {
|
||||
throw new Error(`${usersMeErrorTitle}: ${usersMeErrorDesc}`);
|
||||
}
|
||||
|
||||
const {
|
||||
data: {
|
||||
id,
|
||||
username,
|
||||
name,
|
||||
profile_image_url,
|
||||
description,
|
||||
public_metrics,
|
||||
} = data || {};
|
||||
},
|
||||
} = await request<TwitterUsersMeResponse>(
|
||||
`${twitterApiBaseUrl}/users/me?user.fields=profile_image_url,public_metrics,description`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${accessToken}`,
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
res.status(200).json({
|
||||
accessToken,
|
||||
id,
|
||||
username,
|
||||
name,
|
||||
profile_image_url: profile_image_url?.replace(
|
||||
"normal.jpg",
|
||||
"400x400.jpg",
|
||||
),
|
||||
profile_image_url: profile_image_url.replace("normal.jpg", "400x400.jpg"),
|
||||
description,
|
||||
public_metrics,
|
||||
});
|
||||
} catch (error: any) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
captureException(error);
|
||||
res.status(500).json({ error: error.message });
|
||||
res.status(500).json({ error: "Internal server error " });
|
||||
}
|
||||
},
|
||||
ironOptions);
|
||||
@ -123,12 +102,10 @@ interface TwitterOAuth2TokenResponse {
|
||||
access_token: string;
|
||||
scope: string;
|
||||
refresh_token: string;
|
||||
error?: string;
|
||||
error_description?: string;
|
||||
}
|
||||
|
||||
interface TwitterUsersMeResponse {
|
||||
data?: {
|
||||
data: {
|
||||
id: string;
|
||||
username: string;
|
||||
name: string;
|
||||
@ -136,11 +113,6 @@ interface TwitterUsersMeResponse {
|
||||
description: string;
|
||||
public_metrics: TwitterPublicMetrics;
|
||||
};
|
||||
// Error data
|
||||
title?: string;
|
||||
detail?: string;
|
||||
type?: string;
|
||||
status?: string;
|
||||
}
|
||||
|
||||
export interface TwitterPublicMetrics {
|
||||
|
@ -1,14 +1,13 @@
|
||||
import { captureException } from "@sentry/nextjs";
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import crypto from "crypto";
|
||||
import { withIronSessionApiRoute } from "iron-session/next";
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import { base64URLEncode } from "../../utils/encoding";
|
||||
import { buildQueryString } from "../../utils/url";
|
||||
import { ironOptions } from "../../iron.config";
|
||||
import {
|
||||
twitterOAuthBaseUrl,
|
||||
twitterOAuthScopes,
|
||||
} from "../../constants/twitter";
|
||||
import { ironOptions } from "../../iron.config";
|
||||
import { base64URLEncode } from "../../utils/encoding";
|
||||
import { buildQueryString } from "../../utils/url";
|
||||
|
||||
export default withIronSessionApiRoute(async function handler(
|
||||
req: NextApiRequest,
|
||||
@ -47,7 +46,6 @@ export default withIronSessionApiRoute(async function handler(
|
||||
res.status(200).json({ authUrl });
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
captureException(error);
|
||||
res.status(500).json({ error: "Internal server error" });
|
||||
}
|
||||
},
|
||||
|
@ -8,13 +8,14 @@ import { Logo } from "../../components/logo";
|
||||
import color from "../../styles/color";
|
||||
|
||||
import AlertCircleOutlineIcon from "../../public/images/svg/alert-circle-outline.svg";
|
||||
|
||||
import TwitterIcon from "../../public/images/svg/twitter-icon.svg";
|
||||
import { useRouter } from "next/router";
|
||||
import { useEffect, useState } from "react";
|
||||
import { TendermintTxTracer } from "@keplr-wallet/cosmos";
|
||||
import { queryAddressesFromTwitterName } from "../../queries";
|
||||
import { RegisteredAddresses } from "../../types";
|
||||
import { SHARE_URL } from "../../constants/twitter";
|
||||
import { REST_URL, RPC_URL } from "../../constants/icns";
|
||||
import { RPC_URL } from "../../constants/icns";
|
||||
|
||||
export default function CompletePage() {
|
||||
const router = useRouter();
|
||||
@ -34,33 +35,19 @@ export default function CompletePage() {
|
||||
}, [router.query]);
|
||||
|
||||
const initialize = async (txHash: string, twitterUserName: string) => {
|
||||
const txTracer = new TendermintTxTracer(RPC_URL, "/websocket");
|
||||
|
||||
try {
|
||||
for (let i = 0; i < 20; i++) {
|
||||
// Try to fetch tx response per 3sec, 20times.
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||
const result: { code?: number } = await txTracer.traceTx(
|
||||
Buffer.from(txHash, "hex"),
|
||||
);
|
||||
|
||||
const res = await fetch(`${REST_URL}/cosmos/tx/v1beta1/txs/${txHash}`);
|
||||
|
||||
if (res.ok && res.status === 200) {
|
||||
const txRes = await res.json();
|
||||
|
||||
if (txRes && txRes.tx_response) {
|
||||
if (
|
||||
txRes.tx_response.code == null ||
|
||||
txRes.tx_response.code === 0
|
||||
) {
|
||||
if (!result.code || result.code === 0) {
|
||||
amplitude.track("complete registration");
|
||||
|
||||
const addresses = await queryAddressesFromTwitterName(
|
||||
twitterUserName,
|
||||
);
|
||||
const addresses = await queryAddressesFromTwitterName(twitterUserName);
|
||||
setRegisteredAddressed(addresses.data.addresses);
|
||||
setIsSuccess(true);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log("error", e);
|
||||
@ -77,7 +64,7 @@ export default function CompletePage() {
|
||||
const width = 500;
|
||||
const height = 700;
|
||||
window.open(
|
||||
`${SHARE_URL}?url=https://app.icns.xyz/?referral=${twitterUsername}&text=${shareMessage}`,
|
||||
`${SHARE_URL}?url=https://app.icns.xyz?referral=${twitterUsername}/&text=${shareMessage}`,
|
||||
"Share Twitter",
|
||||
`top=${(window.screen.height - height) / 2}, left=${
|
||||
(window.screen.width - width) / 2
|
||||
@ -111,9 +98,9 @@ export default function CompletePage() {
|
||||
strings={registeredAddressed.map(
|
||||
(address) => address.bech32_prefix,
|
||||
)}
|
||||
typeSpeed={30}
|
||||
backSpeed={30}
|
||||
backDelay={500}
|
||||
typeSpeed={150}
|
||||
backSpeed={150}
|
||||
backDelay={1000}
|
||||
loop
|
||||
smartBackspace
|
||||
onStringTyped={(arrayPos: number) => {
|
||||
@ -124,118 +111,22 @@ export default function CompletePage() {
|
||||
</AddressContainer>
|
||||
<AvailableAddressText>{availableAddress}</AvailableAddressText>
|
||||
</RecipentContainer>
|
||||
<SubLeaderboardIntroContainer>
|
||||
<SubLeaderboardIntroTitle>
|
||||
Make your way up the leaderboard
|
||||
</SubLeaderboardIntroTitle>
|
||||
<SubLeaderboardIntroDescription>
|
||||
Tweet an invite link and both you and your friend will earn points
|
||||
on the ICNS leaderboard.
|
||||
</SubLeaderboardIntroDescription>
|
||||
</SubLeaderboardIntroContainer>
|
||||
</ContentContainer>
|
||||
|
||||
<ShareButtonContainer onClick={onClickShareButton}>
|
||||
<Image
|
||||
src="/images/icons/twitter-small.png"
|
||||
alt="twitter icon"
|
||||
width={28}
|
||||
height={28}
|
||||
/>
|
||||
<ShareButtonText>TWEET INVITE LINK</ShareButtonText>
|
||||
</ShareButtonContainer>
|
||||
<CopyInviteLink
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
<DescriptionContainer>
|
||||
<AlertIcon>
|
||||
<AlertCircleOutlineIcon />
|
||||
</AlertIcon>
|
||||
<DescriptionText>
|
||||
ICNS name will stay the same even if your twitter handle changes in
|
||||
the future.
|
||||
</DescriptionText>
|
||||
</DescriptionContainer>
|
||||
|
||||
const { twitterUsername } = router.query;
|
||||
|
||||
navigator.clipboard.writeText(
|
||||
`https://app.icns.xyz?referral=${twitterUsername}`,
|
||||
);
|
||||
}}
|
||||
>
|
||||
copy invite link
|
||||
<svg
|
||||
style={{
|
||||
marginLeft: "4px",
|
||||
}}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="16"
|
||||
height="16"
|
||||
fill="none"
|
||||
viewBox="0 0 16 16"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="square"
|
||||
strokeWidth="1.5"
|
||||
d="M10.667 2.667h-8v8"
|
||||
/>
|
||||
<path
|
||||
strokeLinecap="square"
|
||||
strokeWidth="1.5"
|
||||
d="M5.417 5.417H13.25V13.25H5.417z"
|
||||
/>
|
||||
</svg>
|
||||
</CopyInviteLink>
|
||||
<ComingSoonLeaderboardContainer>
|
||||
<RotateSvg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="28"
|
||||
height="26"
|
||||
fill="none"
|
||||
viewBox="0 0 28 26"
|
||||
>
|
||||
<path
|
||||
fill="#424242"
|
||||
d="M0.473 1.852H26.823999999999998V3.8790000000000004H0.473z"
|
||||
/>
|
||||
<path
|
||||
fill="#6F6F6F"
|
||||
d="M0.473 22.122H26.823999999999998V24.149H0.473z"
|
||||
/>
|
||||
<path
|
||||
fill="#424242"
|
||||
d="M13.986 12.662l11.703 9.629H2.283l11.703-9.629z"
|
||||
/>
|
||||
<path
|
||||
fill="#6F6F6F"
|
||||
d="M13.986 12.662L2.284 3.54H25.69l-11.703 9.122z"
|
||||
/>
|
||||
</RotateSvg>
|
||||
<ComingSoonLeaderboardContent>
|
||||
<ComingSoonLeaderboardContent1>
|
||||
Coming soon
|
||||
</ComingSoonLeaderboardContent1>
|
||||
<ComingSoonLeaderboardContent2>
|
||||
Leaderboard
|
||||
</ComingSoonLeaderboardContent2>
|
||||
</ComingSoonLeaderboardContent>
|
||||
<RotateSvg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="28"
|
||||
height="26"
|
||||
fill="none"
|
||||
viewBox="0 0 28 26"
|
||||
>
|
||||
<path
|
||||
fill="#424242"
|
||||
d="M0.473 1.852H26.823999999999998V3.8790000000000004H0.473z"
|
||||
/>
|
||||
<path
|
||||
fill="#6F6F6F"
|
||||
d="M0.473 22.122H26.823999999999998V24.149H0.473z"
|
||||
/>
|
||||
<path
|
||||
fill="#424242"
|
||||
d="M13.986 12.662l11.703 9.629H2.283l11.703-9.629z"
|
||||
/>
|
||||
<path
|
||||
fill="#6F6F6F"
|
||||
d="M13.986 12.662L2.284 3.54H25.69l-11.703 9.122z"
|
||||
/>
|
||||
</RotateSvg>
|
||||
</ComingSoonLeaderboardContainer>
|
||||
{/*<ShareButtonContainer onClick={onClickShareButton}>*/}
|
||||
{/* <ShareButtonText>Tweet Invite Link</ShareButtonText>*/}
|
||||
{/* <TwitterIcon /> */}
|
||||
{/*</ShareButtonContainer>*/}
|
||||
</MainContainer>
|
||||
</Container>
|
||||
);
|
||||
@ -257,9 +148,9 @@ const MainContainer = styled.div`
|
||||
`;
|
||||
|
||||
const ContentContainer = styled.div`
|
||||
width: 31rem;
|
||||
width: 30rem;
|
||||
|
||||
padding: 2.625rem 0;
|
||||
padding: 2.625rem 4rem;
|
||||
|
||||
background-color: ${color.grey["900"]};
|
||||
`;
|
||||
@ -284,7 +175,6 @@ const TitleContainer = styled.div`
|
||||
const RecipentContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0 4rem;
|
||||
gap: 0.5rem;
|
||||
`;
|
||||
|
||||
@ -298,33 +188,6 @@ const RecipentTitle = styled.div`
|
||||
color: ${color.grey["400"]};
|
||||
`;
|
||||
|
||||
const SubLeaderboardIntroContainer = styled.div`
|
||||
margin: 0 2.5rem;
|
||||
margin-top: 2.5rem;
|
||||
|
||||
padding: 1.25rem 1.5rem;
|
||||
|
||||
background-color: ${color.grey["700"]};
|
||||
`;
|
||||
|
||||
const SubLeaderboardIntroTitle = styled.div`
|
||||
font-weight: 600;
|
||||
font-size: 0.8125rem;
|
||||
line-height: 123.5%;
|
||||
|
||||
margin-bottom: 0.75rem;
|
||||
|
||||
color: ${color.grey["100"]};
|
||||
`;
|
||||
|
||||
const SubLeaderboardIntroDescription = styled.div`
|
||||
font-weight: 400;
|
||||
font-size: 0.8125rem;
|
||||
line-height: 138%;
|
||||
|
||||
color: ${color.grey["300"]};
|
||||
`;
|
||||
|
||||
const AddressContainer = styled.div`
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
@ -351,12 +214,46 @@ const AvailableAddressText = styled.div`
|
||||
color: ${color.blue};
|
||||
`;
|
||||
|
||||
const DescriptionContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
gap: 1rem;
|
||||
|
||||
width: 30rem;
|
||||
|
||||
margin-top: 1.5rem;
|
||||
padding: 1.25rem 2rem;
|
||||
|
||||
background-color: ${color.grey["900"]};
|
||||
`;
|
||||
|
||||
const AlertIcon = styled.div`
|
||||
position: relative;
|
||||
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
`;
|
||||
|
||||
const DescriptionText = styled.div`
|
||||
width: 100%;
|
||||
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 0.8rem;
|
||||
line-height: 140%;
|
||||
|
||||
color: ${color.grey["400"]};
|
||||
`;
|
||||
|
||||
const SpinnerWrapper = styled.div`
|
||||
display: flex;
|
||||
position: relative;
|
||||
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
`;
|
||||
|
||||
const spinAnimation = keyframes`
|
||||
@ -377,13 +274,13 @@ const Spinner = styled.div<{ animationDelay?: string }>`
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
animation: ${spinAnimation} 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
||||
animation: ${spinAnimation} 1s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
||||
${({ animationDelay }) =>
|
||||
animationDelay ? `animation-delay: ${animationDelay};` : ""}
|
||||
|
||||
border-radius: 100%;
|
||||
border-style: solid;
|
||||
border-width: 5px;
|
||||
border-width: 3px;
|
||||
border-color: white transparent transparent transparent;
|
||||
`;
|
||||
|
||||
@ -397,8 +294,7 @@ const ShareButtonContainer = styled.div`
|
||||
width: 20rem;
|
||||
height: 5rem;
|
||||
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1.125rem;
|
||||
margin-top: 2.5rem;
|
||||
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
@ -412,78 +308,6 @@ const ShareButtonText = styled.div`
|
||||
font-weight: 700;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.25rem;
|
||||
letter-spacing: 0.07em;
|
||||
|
||||
color: ${color.grey["100"]};
|
||||
`;
|
||||
|
||||
const CopyInviteLink = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
font-weight: 600;
|
||||
font-size: 0.875rem;
|
||||
line-height: 102.5%;
|
||||
|
||||
text-align: center;
|
||||
letter-spacing: 0.07em;
|
||||
text-transform: uppercase;
|
||||
|
||||
color: ${color.grey["200"]};
|
||||
stroke: ${color.grey["200"]};
|
||||
|
||||
&:hover {
|
||||
color: ${color.grey["300"]};
|
||||
stroke: ${color.grey["300"]};
|
||||
}
|
||||
|
||||
cursor: pointer;
|
||||
`;
|
||||
|
||||
const ComingSoonLeaderboardContainer = styled.div`
|
||||
margin-top: 4.5rem;
|
||||
|
||||
height: 5rem;
|
||||
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
`;
|
||||
|
||||
const ComingSoonLeaderboardContent = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
width: 10rem;
|
||||
`;
|
||||
|
||||
const ComingSoonLeaderboardContent1 = styled.div`
|
||||
font-weight: 600;
|
||||
font-size: 0.8125rem;
|
||||
line-height: 102.5%;
|
||||
|
||||
letter-spacing: 0.19em;
|
||||
text-transform: uppercase;
|
||||
|
||||
margin-bottom: 0.5rem;
|
||||
|
||||
color: ${color.grey["700"]};
|
||||
`;
|
||||
|
||||
const ComingSoonLeaderboardContent2 = styled.div`
|
||||
font-weight: 600;
|
||||
font-size: 1rem;
|
||||
line-height: 102.5%;
|
||||
|
||||
letter-spacing: 0.07em;
|
||||
text-transform: uppercase;
|
||||
|
||||
color: ${color.grey["500"]};
|
||||
`;
|
||||
|
||||
const RotateSvg = styled.svg`
|
||||
animation: ${spinAnimation} 4s linear infinite;
|
||||
`;
|
||||
|
115
pages/index.tsx
115
pages/index.tsx
@ -6,36 +6,25 @@ import color from "../styles/color";
|
||||
|
||||
// Components
|
||||
import { ConnectWalletModal } from "../components/connect-wallet-modal";
|
||||
import {
|
||||
PrimaryButton,
|
||||
Spinner,
|
||||
SpinnerWrapper,
|
||||
} from "../components/primary-button";
|
||||
import { PrimaryButton } from "../components/primary-button";
|
||||
|
||||
// Image Assets
|
||||
import { useEffect, useState } from "react";
|
||||
import { Logo } from "../components/logo";
|
||||
import { CLAIM_URL, REFERRAL_KEY } from "../constants/icns";
|
||||
import { REFERRAL_KEY } from "../constants/icns";
|
||||
import { SELECTED_WALLET_KEY } from "../constants/wallet";
|
||||
import StarIcon from "../public/images/svg/bg-asset-3.svg";
|
||||
import CheckIcon from "../public/images/svg/check-icon.svg";
|
||||
import MainLogo from "../public/images/svg/main-logo.svg";
|
||||
import MainTitle from "../public/images/svg/main-title.svg";
|
||||
import CountUp from "react-countup";
|
||||
import useInterval from "../hooks/use-interval";
|
||||
|
||||
export default function Home() {
|
||||
const [currentReferral, setCurrentReferral] = useState("");
|
||||
|
||||
const [isConnectWalletModalOpen, setIsConnectWalletModalOpen] =
|
||||
useState(false);
|
||||
|
||||
const [count, setCount] = useState<{ start: number; end: number }>();
|
||||
const [isModalOpen, setModalOpen] = useState(false);
|
||||
|
||||
const onClickConnectWalletButton = async () => {
|
||||
amplitude.track("click connect wallet button");
|
||||
|
||||
setIsConnectWalletModalOpen(true);
|
||||
setModalOpen(true);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
@ -47,53 +36,16 @@ export default function Home() {
|
||||
|
||||
if (referral) {
|
||||
localStorage.setItem(REFERRAL_KEY, referral);
|
||||
setCurrentReferral(referral);
|
||||
}
|
||||
}
|
||||
|
||||
localStorage.removeItem(SELECTED_WALLET_KEY);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
setTimeout(() => {
|
||||
countUpCallback();
|
||||
}, 1000);
|
||||
}, []);
|
||||
|
||||
useInterval(async () => {
|
||||
await countUpCallback();
|
||||
}, 10000);
|
||||
|
||||
const countUpCallback = async () => {
|
||||
const response: { data: { count: number } } = await (
|
||||
await fetch(CLAIM_URL)
|
||||
).json();
|
||||
|
||||
setCount({
|
||||
start: (count?.end ?? 100) - 100,
|
||||
end: response.data.count,
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<Container>
|
||||
<Logo />
|
||||
|
||||
<CountUpContainer>
|
||||
{count ? (
|
||||
<CountUpText>
|
||||
<CountUp start={count?.start} end={count?.end ?? 0} duration={1} />
|
||||
</CountUpText>
|
||||
) : (
|
||||
<SpinnerWrapper>
|
||||
<Spinner />
|
||||
<Spinner />
|
||||
<Spinner />
|
||||
<Spinner />
|
||||
</SpinnerWrapper>
|
||||
)}
|
||||
<CountUpDescription>ICNS names claimed so far</CountUpDescription>
|
||||
</CountUpContainer>
|
||||
<MainContainer>
|
||||
<MainTitleContainer>
|
||||
<MainTitleImageBackground>
|
||||
@ -125,18 +77,11 @@ export default function Home() {
|
||||
<SubContainer>
|
||||
<CheckContainer>
|
||||
<CheckIcon />
|
||||
0.5+ Osmo is required for this transaction{" "}
|
||||
<a
|
||||
href="https://app.osmosis.zone"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
GET OSMO
|
||||
</a>
|
||||
Osmo is required for this transaction
|
||||
</CheckContainer>
|
||||
<CheckContainer>
|
||||
<CheckIcon />
|
||||
Make sure you have a Cosmos wallet installed
|
||||
More wallet support coming soon
|
||||
</CheckContainer>
|
||||
</SubContainer>
|
||||
</MainTitleContainer>
|
||||
@ -147,9 +92,8 @@ export default function Home() {
|
||||
</MainContainer>
|
||||
|
||||
<ConnectWalletModal
|
||||
isModalOpen={isConnectWalletModalOpen}
|
||||
onCloseModal={() => setIsConnectWalletModalOpen(false)}
|
||||
currentReferal={currentReferral}
|
||||
isModalOpen={isModalOpen}
|
||||
onCloseModal={() => setModalOpen(false)}
|
||||
/>
|
||||
</Container>
|
||||
);
|
||||
@ -194,45 +138,6 @@ const MainContainer = styled.div`
|
||||
}
|
||||
`;
|
||||
|
||||
const CountUpContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 1.25rem;
|
||||
|
||||
width: calc(25rem - 2px);
|
||||
height: calc(5rem - 2px);
|
||||
|
||||
position: absolute;
|
||||
|
||||
margin-top: calc(10rem + 2px);
|
||||
margin-left: calc(55rem + 2px);
|
||||
|
||||
background-color: ${color.black};
|
||||
`;
|
||||
|
||||
const CountUpText = styled.div`
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-size: 1rem;
|
||||
line-height: 1.2rem;
|
||||
letter-spacing: 0.46rem;
|
||||
|
||||
color: ${color.white};
|
||||
`;
|
||||
|
||||
const CountUpDescription = styled.div`
|
||||
font-family: "Inter", serif;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.1rem;
|
||||
|
||||
color: ${color.grey["400"]};
|
||||
`;
|
||||
|
||||
const MainTitleContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -336,8 +241,4 @@ const CheckContainer = styled.div`
|
||||
padding-left: 0.75rem;
|
||||
|
||||
color: ${color.grey["400"]};
|
||||
|
||||
a {
|
||||
color: ${color.grey["400"]};
|
||||
}
|
||||
`;
|
||||
|
@ -52,28 +52,14 @@ import {
|
||||
verifyTwitterAccount,
|
||||
} from "../../queries";
|
||||
import {
|
||||
ACCOUNT_NOT_EXIST_ERROR,
|
||||
ACCOUNT_NOT_EXIST_MESSAGE,
|
||||
EVM_CHAIN_IN_LEDGER_ERROR,
|
||||
EVM_CHAIN_IN_LEDGER_MESSAGE,
|
||||
INSUFFICIENT_GAS_ERROR,
|
||||
INSUFFICIENT_GAS_MESSAGE,
|
||||
INVALID_REFERRAL_ERROR,
|
||||
INVALID_REFERRAL_MESSAGE,
|
||||
KEPLR_NOT_FOUND_ERROR,
|
||||
LEDGER_MAX_REGISTER_ERROR,
|
||||
TOO_MANY_CHAINS_IN_LEDGER_ERROR,
|
||||
TOO_MANY_CHAINS_IN_LEDGER_MESSAGE,
|
||||
TWITTER_LOGIN_ERROR,
|
||||
VERIFICATION_THRESHOLD_ERROR,
|
||||
VERIFICATION_THRESHOLD_MESSAGE,
|
||||
} from "../../constants/error-message";
|
||||
import { makeClaimMessage, makeSetRecordMessage } from "../../messages";
|
||||
import Axios from "axios";
|
||||
import { BackButton } from "../../components/back-button";
|
||||
import { FinalCheckModal } from "../../components/final-check-modal";
|
||||
import { ErrorModal } from "../../components/error-modal";
|
||||
import { captureException } from "@sentry/nextjs";
|
||||
|
||||
export default function VerificationPage() {
|
||||
const router = useRouter();
|
||||
@ -106,8 +92,6 @@ export default function VerificationPage() {
|
||||
const [searchValue, setSearchValue] = useState("");
|
||||
|
||||
const [nftOwnerAddress, setNFTOwnerAddress] = useState("");
|
||||
// Handle the token id which actually registered.
|
||||
const [registeredTwitterName, setRegisteredTwitterName] = useState("");
|
||||
const [isOwner, setIsOwner] = useState(false);
|
||||
|
||||
const [isModalOpen, setModalOpen] = useState(false);
|
||||
@ -134,12 +118,6 @@ export default function VerificationPage() {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (walletKey) {
|
||||
if (walletKey.isLedgerNano && chain.isEthermintLike) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for (const registeredChain of registeredChainList) {
|
||||
if (
|
||||
chain.prefix === registeredChain.bech32_prefix &&
|
||||
@ -211,13 +189,6 @@ export default function VerificationPage() {
|
||||
isRegistered: "data" in registeredQueryResponse,
|
||||
});
|
||||
|
||||
if (
|
||||
"data" in registeredQueryResponse &&
|
||||
registeredQueryResponse.data?.name
|
||||
) {
|
||||
setRegisteredTwitterName(registeredQueryResponse.data.name);
|
||||
}
|
||||
|
||||
if ("data" in registeredQueryResponse) {
|
||||
const ownerOfQueryResponse = await queryOwnerOfTwitterName(
|
||||
registeredQueryResponse.data.name,
|
||||
@ -234,17 +205,16 @@ export default function VerificationPage() {
|
||||
);
|
||||
|
||||
setRegisteredChainList(addressesQueryResponse.data.addresses);
|
||||
} else {
|
||||
setRegisteredChainList([]);
|
||||
}
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
setErrorMessage({ message: error.message, path: "/" });
|
||||
if (error.message === TWITTER_LOGIN_ERROR) {
|
||||
setErrorMessage({ message: TWITTER_LOGIN_ERROR, path: "/" });
|
||||
setErrorModalOpen(true);
|
||||
}
|
||||
}
|
||||
|
||||
console.error(error);
|
||||
captureException(error);
|
||||
} finally {
|
||||
setIsLoadingInit(false);
|
||||
}
|
||||
@ -391,26 +361,6 @@ export default function VerificationPage() {
|
||||
twitterInfo.accessToken,
|
||||
);
|
||||
|
||||
console.log("icnsVerificationList", icnsVerificationList);
|
||||
|
||||
icnsVerificationList.forEach((verification) => {
|
||||
if (verification.status === "fulfilled") {
|
||||
if (verification.value.errors.length > 0) {
|
||||
verification.value.errors.forEach((error) => {
|
||||
const errorMessage = error.message || error;
|
||||
captureException(errorMessage);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (verification.status === "rejected") {
|
||||
if (verification.reason) {
|
||||
const errorMessage = verification.reason;
|
||||
captureException(errorMessage);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const registerMsg = makeClaimMessage(
|
||||
walletKey.bech32Address,
|
||||
twitterInfo.username,
|
||||
@ -472,67 +422,21 @@ export default function VerificationPage() {
|
||||
pathname: "complete",
|
||||
query: {
|
||||
txHash: Buffer.from(txHash).toString("hex"),
|
||||
twitterUsername: registeredTwitterName || twitterInfo.username,
|
||||
twitterUsername: twitterInfo.username,
|
||||
},
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
if (Axios.isAxiosError(error)) {
|
||||
const message = (error?.response?.data as QueryError).message;
|
||||
|
||||
if (message.includes(INSUFFICIENT_GAS_ERROR)) {
|
||||
setErrorMessage({ message: INSUFFICIENT_GAS_MESSAGE });
|
||||
setErrorModalOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.includes(ACCOUNT_NOT_EXIST_ERROR)) {
|
||||
setErrorMessage({ message: ACCOUNT_NOT_EXIST_MESSAGE });
|
||||
setErrorModalOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.includes(VERIFICATION_THRESHOLD_ERROR)) {
|
||||
setErrorMessage({ message: VERIFICATION_THRESHOLD_MESSAGE });
|
||||
setErrorModalOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.includes(INVALID_REFERRAL_ERROR)) {
|
||||
setErrorMessage({ message: INVALID_REFERRAL_MESSAGE });
|
||||
setErrorModalOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
const errorMessage = (error?.response?.data as QueryError).message;
|
||||
captureException(errorMessage);
|
||||
setErrorMessage({
|
||||
message: errorMessage,
|
||||
message: (error?.response?.data as QueryError).message,
|
||||
});
|
||||
setErrorModalOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (error instanceof Error) {
|
||||
const errorMessage = error.message || error;
|
||||
console.log(errorMessage);
|
||||
captureException(errorMessage);
|
||||
|
||||
if (
|
||||
error.message.includes(TOO_MANY_CHAINS_IN_LEDGER_ERROR) ||
|
||||
error.message.includes(LEDGER_MAX_REGISTER_ERROR)
|
||||
) {
|
||||
setErrorMessage({ message: TOO_MANY_CHAINS_IN_LEDGER_MESSAGE });
|
||||
setErrorModalOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (error.message.includes(EVM_CHAIN_IN_LEDGER_ERROR)) {
|
||||
setErrorMessage({ message: EVM_CHAIN_IN_LEDGER_MESSAGE });
|
||||
setErrorModalOpen(true);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(error.message);
|
||||
setErrorMessage({ message: error.message });
|
||||
setErrorModalOpen(true);
|
||||
}
|
||||
@ -561,11 +465,7 @@ export default function VerificationPage() {
|
||||
) : (
|
||||
<ContentContainer>
|
||||
<BackButton />
|
||||
<TwitterProfile
|
||||
isOwner={isOwner}
|
||||
registeredTwitterName={registeredTwitterName}
|
||||
twitterProfileInformation={twitterAuthInfo}
|
||||
/>
|
||||
<TwitterProfile twitterProfileInformation={twitterAuthInfo} />
|
||||
<ChainListTitleContainer>
|
||||
<ChainListTitle>Chain List</ChainListTitle>
|
||||
<SearchInput
|
||||
@ -601,10 +501,8 @@ export default function VerificationPage() {
|
||||
<OwnerAlert>
|
||||
You are not owner of this name.
|
||||
<br />
|
||||
Please select the account{" "}
|
||||
<AddressBold>
|
||||
({Bech32Address.shortenAddress(nftOwnerAddress, 28)})
|
||||
</AddressBold>
|
||||
Please select the account (
|
||||
{Bech32Address.shortenAddress(nftOwnerAddress, 28)})
|
||||
</OwnerAlert>
|
||||
) : null}
|
||||
|
||||
@ -714,7 +612,3 @@ const OwnerAlert = styled.div`
|
||||
|
||||
padding-top: 1.25rem;
|
||||
`;
|
||||
|
||||
const AddressBold = styled.span`
|
||||
color: ${color.white};
|
||||
`;
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 40 KiB |
@ -1,13 +0,0 @@
|
||||
<svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect y="0.5" width="19" height="19" rx="9.5" fill="#121212"/>
|
||||
<path d="M3.95654 6.78418H6.28393V10.0425H3.95654V6.78418Z" fill="#FB5232"/>
|
||||
<rect x="3.95654" y="4.45654" width="2.32738" height="2.32738" rx="1.16369" fill="#FFCDC4"/>
|
||||
<rect x="7.21484" y="10.042" width="2.32738" height="5.58572" fill="#EBFFBF"/>
|
||||
<path d="M3.95654 10.042V10.042C5.75607 10.042 7.21488 11.5008 7.21488 13.3003V15.6277H3.95654V10.042Z" fill="#00B86E"/>
|
||||
<path d="M6.28394 7.2494C6.28394 5.70695 7.53434 4.45654 9.0768 4.45654H15.128V10.0423H9.0768C7.53434 10.0423 6.28394 8.79186 6.28394 7.2494V7.2494Z" fill="#F4CC3E"/>
|
||||
<path d="M8.61133 7.24966C8.61133 6.99258 8.81973 6.78418 9.07681 6.78418H15.128V7.71513H9.07681C8.81973 7.71513 8.61133 7.50673 8.61133 7.24966V7.24966Z" fill="#121212"/>
|
||||
<path d="M9.5421 12.8353C9.5421 12.4686 9.61434 12.1054 9.75469 11.7666C9.89505 11.4277 10.1008 11.1198 10.3601 10.8605C10.6195 10.6011 10.9273 10.3954 11.2662 10.2551C11.605 10.1147 11.9682 10.0425 12.335 10.0425L12.335 12.8353H9.5421Z" fill="#BED4FF"/>
|
||||
<path d="M15.1278 12.835C15.1278 13.2017 15.0556 13.5649 14.9152 13.9037C14.7749 14.2426 14.5692 14.5505 14.3098 14.8098C14.0505 15.0692 13.7426 15.2749 13.4037 15.4152C13.0649 15.5556 12.7017 15.6278 12.335 15.6278L12.335 12.835H15.1278Z" fill="#5A4CFA"/>
|
||||
<path d="M12.335 10.0425H15.1278L12.335 12.8353V10.0425Z" fill="#BED4FF"/>
|
||||
<path d="M12.335 15.6279H9.5421L12.335 12.8351V15.6279Z" fill="#5A4CFA"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1,21 +1,23 @@
|
||||
<svg width="946" height="201" viewBox="0 0 946 201" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M516.01 0.916016C536.72 0.916016 553.509 17.7049 553.509 38.4151V38.9452H516.01V0.916016Z" fill="#00B86E"/>
|
||||
<path d="M553.511 38.4151C553.511 17.7049 570.3 0.916016 591.01 0.916016V38.9452H553.511V38.4151Z" fill="#FF77F3"/>
|
||||
<svg width="946" height="202" viewBox="0 0 946 202" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M691.953 69.1477H690.18C690.112 68.7689 689.985 68.4356 689.8 68.1477C689.614 67.8598 689.387 67.6155 689.118 67.4148C688.849 67.214 688.548 67.0625 688.214 66.9602C687.885 66.858 687.534 66.8068 687.163 66.8068C686.493 66.8068 685.892 66.9754 685.362 67.3125C684.836 67.6496 684.419 68.1439 684.112 68.7955C683.809 69.447 683.657 70.2424 683.657 71.1818C683.657 72.1288 683.809 72.928 684.112 73.5795C684.419 74.2311 684.837 74.7235 685.368 75.0568C685.898 75.3902 686.495 75.5568 687.157 75.5568C687.525 75.5568 687.873 75.5076 688.203 75.4091C688.536 75.3068 688.837 75.1572 689.106 74.9602C689.375 74.7633 689.603 74.5227 689.788 74.2386C689.978 73.9508 690.108 73.6212 690.18 73.25L691.953 73.2557C691.858 73.8277 691.675 74.3542 691.402 74.8352C691.133 75.3125 690.786 75.7254 690.362 76.0739C689.942 76.4186 689.461 76.6856 688.919 76.875C688.377 77.0644 687.786 77.1591 687.146 77.1591C686.139 77.1591 685.241 76.9205 684.453 76.4432C683.665 75.9621 683.044 75.2746 682.589 74.3807C682.139 73.4867 681.913 72.4205 681.913 71.1818C681.913 69.9394 682.14 68.8731 682.595 67.983C683.05 67.089 683.671 66.4034 684.459 65.9261C685.247 65.4451 686.142 65.2045 687.146 65.2045C687.764 65.2045 688.339 65.2936 688.873 65.4716C689.411 65.6458 689.894 65.9034 690.322 66.2443C690.75 66.5814 691.104 66.9943 691.385 67.483C691.665 67.9678 691.854 68.5227 691.953 69.1477ZM694.694 77V65.3636H696.449V75.4886H701.722V77H694.694ZM705.942 77H704.078L708.266 65.3636H710.294L714.482 77H712.618L709.328 67.4773H709.237L705.942 77ZM706.254 72.4432H712.3V73.9205H706.254V72.4432ZM718.558 65.3636V77H716.802V65.3636H718.558ZM721.754 65.3636H723.885L727.59 74.4091H727.726L731.431 65.3636H733.561V77H731.891V68.5795H731.783L728.351 76.983H726.965L723.533 68.5739H723.425V77H721.754V65.3636ZM743.907 77L740.679 65.3636H742.526L744.793 74.375H744.901L747.259 65.3636H749.088L751.446 74.3807H751.554L753.816 65.3636H755.668L752.435 77H750.668L748.219 68.2841H748.128L745.679 77H743.907ZM759.664 65.3636V77H757.909V65.3636H759.664ZM762.287 66.875V65.3636H771.293V66.875H767.662V77H765.912V66.875H762.287ZM773.923 77V65.3636H775.679V70.4205H781.48V65.3636H783.241V77H781.48V71.9261H775.679V77H773.923ZM790.739 66.875V65.3636H799.744V66.875H796.114V77H794.364V66.875H790.739ZM804.653 77L801.426 65.3636H803.272L805.539 74.375H805.647L808.005 65.3636H809.835L812.193 74.3807H812.301L814.562 65.3636H816.414L813.181 77H811.414L808.965 68.2841H808.874L806.426 77H804.653ZM820.411 65.3636V77H818.655V65.3636H820.411ZM823.034 66.875V65.3636H832.039V66.875H828.409V77H826.659V66.875H823.034ZM834.096 66.875V65.3636H843.101V66.875H839.471V77H837.721V66.875H834.096ZM845.731 77V65.3636H853.027V66.875H847.487V70.4205H852.646V71.9261H847.487V75.4886H853.095V77H845.731ZM856.012 77V65.3636H860.16C861.061 65.3636 861.809 65.5189 862.404 65.8295C863.002 66.1402 863.449 66.5701 863.745 67.1193C864.04 67.6648 864.188 68.2955 864.188 69.0114C864.188 69.7235 864.038 70.3504 863.739 70.892C863.444 71.4299 862.997 71.8485 862.398 72.1477C861.804 72.447 861.055 72.5966 860.154 72.5966H857.012V71.0852H859.995C860.563 71.0852 861.025 71.0038 861.381 70.8409C861.741 70.678 862.004 70.4413 862.171 70.1307C862.338 69.8201 862.421 69.447 862.421 69.0114C862.421 68.572 862.336 68.1913 862.165 67.8693C861.999 67.5473 861.735 67.3011 861.376 67.1307C861.02 66.9564 860.552 66.8693 859.972 66.8693H857.768V77H856.012ZM861.756 71.75L864.631 77H862.631L859.813 71.75H861.756Z" fill="#5B5B5B"/>
|
||||
<path d="M897.544 65.2736C896.826 65.5767 896.054 65.779 895.24 65.8747C896.067 65.406 896.704 64.6586 897.003 63.7757C896.229 64.2086 895.37 64.5267 894.457 64.6943C893.728 63.9572 892.688 63.5 891.535 63.5C889.322 63.5 887.527 65.1955 887.527 67.2862C887.527 67.5821 887.564 67.8702 887.632 68.15C884.302 67.9907 881.348 66.4814 879.372 64.191C879.025 64.7507 878.83 65.406 878.83 66.0976C878.83 67.4119 879.535 68.569 880.612 69.2507C879.955 69.2316 879.336 69.0572 878.795 68.7779C878.795 68.7893 878.795 68.8064 878.795 68.8224C878.795 70.6591 880.177 72.1886 882.008 72.5367C881.674 72.6241 881.32 72.6728 880.955 72.6728C880.697 72.6728 880.444 72.6448 880.2 72.6029C880.71 74.104 882.19 75.201 883.943 75.2336C882.571 76.2474 880.844 76.8547 878.965 76.8547C878.641 76.8547 878.323 76.8371 878.01 76.8009C879.785 77.8721 881.892 78.5 884.154 78.5C891.525 78.5 895.557 72.7297 895.557 67.7238C895.557 67.5598 895.551 67.3964 895.543 67.235C896.33 66.7053 897.008 66.0371 897.544 65.2736Z" fill="#03A9F4"/>
|
||||
<path d="M516.01 0.916016V0.916016C536.72 0.916016 553.509 17.7049 553.509 38.4151V38.9452H516.01V0.916016Z" fill="#00B86E"/>
|
||||
<path d="M553.511 38.4151C553.511 17.7049 570.3 0.916016 591.01 0.916016V0.916016V38.9452H553.511V38.4151Z" fill="#FF77F3"/>
|
||||
<rect x="516.01" y="38.9414" width="37.4991" height="38.0292" fill="#F4CC3E"/>
|
||||
<rect x="553.511" y="38.9414" width="37.4991" height="38.0292" fill="#FB5232"/>
|
||||
<path d="M155.51 41.5C155.51 18.5802 136.93 0 114.01 0V19.75C114.01 31.7622 123.748 41.5 135.76 41.5H155.51Z" fill="#5A4CFA"/>
|
||||
<path d="M155.51 41.5C155.51 64.4198 136.93 83 114.01 83V63.25C114.01 51.2378 123.748 41.5 135.76 41.5H155.51Z" fill="#F4CC3E"/>
|
||||
<path d="M72.5098 41.5C72.5098 18.5802 91.0899 0 114.01 0V19.75C114.01 31.7622 104.272 41.5 92.2598 41.5H72.5098Z" fill="#FF77F3"/>
|
||||
<path d="M72.5098 41.5C72.5098 64.4198 91.0899 83 114.01 83V63.25C114.01 51.2378 104.272 41.5 92.2598 41.5H72.5098Z" fill="#00B86E"/>
|
||||
<path d="M17.82 44.5498C19.8 49.1698 22.77 52.3598 26.07 54.3398V76.9998H42.13V54.2298C45.43 52.2498 48.29 49.0598 50.16 44.5498L68.2 2.9698H50.82L35.75 40.1498C35.09 41.4698 34.76 42.3498 34.1 42.3498C33.44 42.3498 33.11 41.5798 32.45 40.1498L17.27 2.9698H0L17.82 44.5498Z" fill="#DAECD5"/>
|
||||
<path d="M199.842 78.2098C221.842 78.2098 232.072 65.4498 232.072 44.1098V2.9698H216.012V43.7798C216.012 56.6498 210.732 62.9198 199.842 62.9198C188.952 62.9198 183.672 56.6498 183.672 43.7798V2.9698H167.612V44.1098C167.612 65.4498 177.732 78.2098 199.842 78.2098Z" fill="#DAECD5"/>
|
||||
<path d="M265.889 76.9998L265.999 53.3498H272.269C280.629 53.3498 283.819 56.9798 287.229 63.7998L293.829 76.9998H311.209L304.059 62.3698C300.209 54.6698 297.459 49.6098 292.729 46.9698C302.189 44.4398 308.129 36.6298 308.129 26.5098C308.129 10.7798 295.259 2.9698 278.539 2.9698H250.049V76.9998H265.889ZM278.759 17.8198C286.019 17.8198 291.629 20.8998 291.629 28.1598C291.629 35.0898 286.129 39.0498 278.539 39.0498H265.999L266.109 17.8198H278.759Z" fill="#DAECD5"/>
|
||||
<path d="M371.668 76.9998V22.2198L400.928 72.7098C403.348 76.7798 407.418 78.4298 412.148 78.4298C417.978 78.4298 423.368 74.2498 423.368 66.8798V2.9698H408.188V57.4198L378.928 7.25981C376.508 3.18981 372.658 1.4298 367.818 1.4298C361.768 1.4298 356.378 5.71981 356.378 13.0898V76.9998H371.668Z" fill="#DAECD5"/>
|
||||
<path d="M434.787 76.9998H451.177L455.467 61.9298L485.497 61.8198L489.787 76.9998H506.177L486.597 13.4198C484.067 5.3898 477.467 1.5398 470.427 1.5398C463.497 1.5398 456.897 5.3898 454.367 13.4198L434.787 76.9998ZM468.117 18.1498C468.557 16.6098 469.327 15.9498 470.537 15.9498C471.857 15.9498 472.517 16.6098 472.957 18.1498L481.317 47.5198H459.647L468.117 18.1498Z" fill="#DAECD5"/>
|
||||
<path d="M658.406 76.9998V62.5898H620.456V47.1898H655.436V32.7798H620.456V17.3798H657.746V2.9698H618.586C608.356 2.9698 604.396 8.3598 604.396 16.8298V63.2498C604.396 71.7198 608.356 76.9998 618.586 76.9998H658.406Z" fill="#DAECD5"/>
|
||||
<path d="M720.56 76.7797V51.6997H755.1V36.9597H720.56V17.5997H757.63V2.74969H718.69C708.57 2.74969 704.5 8.13969 704.5 16.6097V76.7797H720.56Z" fill="#DAECD5"/>
|
||||
<path d="M803.032 78.2097C824.922 78.2097 841.643 61.7097 841.643 39.8197C841.643 18.0397 825.032 1.42969 803.032 1.42969C781.142 1.42969 764.532 18.0397 764.532 39.8197C764.532 61.7097 781.142 78.2097 803.032 78.2097ZM803.032 63.0297C790.712 63.0297 781.032 52.9097 781.032 39.8197C781.032 26.7297 790.712 16.6097 803.032 16.6097C815.462 16.6097 825.032 26.7297 825.032 39.8197C825.032 52.9097 815.352 63.0297 803.032 63.0297Z" fill="#DAECD5"/>
|
||||
<path d="M868.071 76.7797L868.181 53.1297H874.451C882.811 53.1297 886.001 56.7597 889.411 63.5797L896.011 76.7797H913.391L906.241 62.1497C902.391 54.4497 899.641 49.3897 894.911 46.7497C904.371 44.2197 910.311 36.4097 910.311 26.2897C910.311 10.5597 897.441 2.74969 880.721 2.74969H852.231V76.7797H868.071ZM880.941 17.5997C888.201 17.5997 893.811 20.6797 893.811 27.9397C893.811 34.8697 888.311 38.8297 880.721 38.8297H868.181L868.291 17.5997H880.941Z" fill="#DAECD5"/>
|
||||
<path d="M155.51 41.5C155.51 18.5802 136.93 0 114.01 0V0V19.75C114.01 31.7622 123.748 41.5 135.76 41.5H155.51V41.5Z" fill="#5A4CFA"/>
|
||||
<path d="M155.51 41.5C155.51 64.4198 136.93 83 114.01 83V83V63.25C114.01 51.2378 123.748 41.5 135.76 41.5H155.51V41.5Z" fill="#F4CC3E"/>
|
||||
<path d="M72.5098 41.5C72.5098 18.5802 91.0899 0 114.01 0V0V19.75C114.01 31.7622 104.272 41.5 92.2598 41.5H72.5098V41.5Z" fill="#FF77F3"/>
|
||||
<path d="M72.5098 41.5C72.5098 64.4198 91.0899 83 114.01 83V83V63.25C114.01 51.2378 104.272 41.5 92.2598 41.5H72.5098V41.5Z" fill="#00B86E"/>
|
||||
<path d="M17.82 44.5497C19.8 49.1697 22.77 52.3597 26.07 54.3397V76.9997H42.13V54.2297C45.43 52.2497 48.29 49.0597 50.16 44.5497L68.2 2.96969H50.82L35.75 40.1497C35.09 41.4697 34.76 42.3497 34.1 42.3497C33.44 42.3497 33.11 41.5797 32.45 40.1497L17.27 2.96969H0L17.82 44.5497Z" fill="#DAECD5"/>
|
||||
<path d="M199.842 78.2097C221.842 78.2097 232.072 65.4497 232.072 44.1097V2.96969H216.012V43.7797C216.012 56.6497 210.732 62.9197 199.842 62.9197C188.952 62.9197 183.672 56.6497 183.672 43.7797V2.96969H167.612V44.1097C167.612 65.4497 177.732 78.2097 199.842 78.2097Z" fill="#DAECD5"/>
|
||||
<path d="M265.889 76.9997L265.999 53.3497H272.269C280.629 53.3497 283.819 56.9797 287.229 63.7997L293.829 76.9997H311.209L304.059 62.3697C300.209 54.6697 297.459 49.6097 292.729 46.9697C302.189 44.4397 308.129 36.6297 308.129 26.5097C308.129 10.7797 295.259 2.96969 278.539 2.96969H250.049V76.9997H265.889ZM278.759 17.8197C286.019 17.8197 291.629 20.8997 291.629 28.1597C291.629 35.0897 286.129 39.0497 278.539 39.0497H265.999L266.109 17.8197H278.759Z" fill="#DAECD5"/>
|
||||
<path d="M371.668 76.9997V22.2197L400.928 72.7097C403.348 76.7797 407.418 78.4297 412.148 78.4297C417.978 78.4297 423.368 74.2497 423.368 66.8797V2.96969H408.188V57.4197L378.928 7.25969C376.508 3.18969 372.658 1.42969 367.818 1.42969C361.768 1.42969 356.378 5.71969 356.378 13.0897V76.9997H371.668Z" fill="#DAECD5"/>
|
||||
<path d="M434.787 76.9997H451.177L455.467 61.9297L485.497 61.8197L489.787 76.9997H506.177L486.597 13.4197C484.067 5.38969 477.467 1.53969 470.427 1.53969C463.497 1.53969 456.897 5.38969 454.367 13.4197L434.787 76.9997ZM468.117 18.1497C468.557 16.6097 469.327 15.9497 470.537 15.9497C471.857 15.9497 472.517 16.6097 472.957 18.1497L481.317 47.5197H459.647L468.117 18.1497Z" fill="#DAECD5"/>
|
||||
<path d="M658.406 76.9997V62.5897H620.456V47.1897H655.436V32.7797H620.456V17.3797H657.746V2.96969H618.586C608.356 2.96969 604.396 8.35969 604.396 16.8297V63.2497C604.396 71.7197 608.356 76.9997 618.586 76.9997H658.406Z" fill="#DAECD5"/>
|
||||
<path d="M24.2 200V174.92H58.74V160.18H24.2V140.82H61.27V125.97H22.33C12.21 125.97 8.14 131.36 8.14 139.83V200H24.2Z" fill="#DAECD5"/>
|
||||
<path d="M106.673 201.43C128.563 201.43 145.283 184.93 145.283 163.04C145.283 141.26 128.673 124.65 106.673 124.65C84.7825 124.65 68.1725 141.26 68.1725 163.04C68.1725 184.93 84.7825 201.43 106.673 201.43ZM106.673 186.25C94.3525 186.25 84.6725 176.13 84.6725 163.04C84.6725 149.95 94.3525 139.83 106.673 139.83C119.103 139.83 128.673 149.95 128.673 163.04C128.673 176.13 118.992 186.25 106.673 186.25Z" fill="#DAECD5"/>
|
||||
<path d="M171.711 200L171.821 176.35H178.091C186.451 176.35 189.641 179.98 193.051 186.8L199.651 200H217.031L209.881 185.37C206.031 177.67 203.281 172.61 198.551 169.97C208.011 167.44 213.951 159.63 213.951 149.51C213.951 133.78 201.081 125.97 184.361 125.97H155.871V200H171.711ZM184.581 140.82C191.841 140.82 197.451 143.9 197.451 151.16C197.451 158.09 191.951 162.05 184.361 162.05H171.821L171.931 140.82H184.581Z" fill="#DAECD5"/>
|
||||
<path d="M324.979 199.395V144.742L354.171 195.115C356.585 199.176 360.646 200.822 365.365 200.822C371.182 200.822 376.559 196.651 376.559 189.299V125.536H361.414V179.86L332.222 129.817C329.808 125.756 325.966 124 321.138 124C315.102 124 309.724 128.28 309.724 135.633V199.395H324.979Z" fill="#DAECD5"/>
|
||||
<path d="M445.739 125.536H386.257V140.352H407.987V199.395H424.009V140.352H445.739V125.536Z" fill="#DAECD5"/>
|
||||
<path d="M510.082 199.395V185.018H472.219V169.654H507.118V155.277H472.219V139.913H509.423V125.536H470.354C460.147 125.536 456.197 130.914 456.197 139.364V185.677C456.197 194.127 460.147 199.395 470.354 199.395H510.082Z" fill="#DAECD5"/>
|
||||
@ -25,7 +27,7 @@
|
||||
<path d="M893.894 199.395V144.742L923.086 195.115C925.5 199.176 929.561 200.822 934.28 200.822C940.097 200.822 945.474 196.651 945.474 189.299V125.536H930.329V179.86L901.137 129.817C898.723 125.756 894.882 124 890.053 124C884.017 124 878.639 128.28 878.639 135.633V199.395H893.894Z" fill="#DAECD5"/>
|
||||
<path d="M522.01 125.018H559.547V162.555H522.01V125.018Z" fill="#FB5232"/>
|
||||
<path d="M522.01 162.554H559.547V200.091H522.01V162.554Z" fill="#F4CC3E"/>
|
||||
<path d="M559.548 125.018H578.317C588.682 125.018 597.085 133.421 597.085 143.786C597.085 154.152 588.682 162.555 578.317 162.555H559.548V125.018Z" fill="#00B86E"/>
|
||||
<path d="M559.548 125.018H578.317C588.682 125.018 597.085 133.421 597.085 143.786V143.786C597.085 154.152 588.682 162.555 578.317 162.555H559.548V125.018Z" fill="#00B86E"/>
|
||||
<path d="M559.548 162.554L597.085 200.091H559.548V162.554Z" fill="#5A4CFA"/>
|
||||
<path d="M796.354 124.018C817.169 124.018 834.044 140.892 834.044 161.707H815.199C804.791 161.707 796.354 153.27 796.354 142.862V124.018Z" fill="#FF77F3"/>
|
||||
<path d="M796.354 180.551C796.354 170.143 804.791 161.706 815.199 161.706H834.044V199.396H796.354V180.551Z" fill="#00B86E"/>
|
||||
@ -33,7 +35,4 @@
|
||||
<path d="M758.664 161.706H777.508C787.916 161.706 796.353 170.143 796.353 180.551V199.396H758.664V161.706Z" fill="#5A4CFA"/>
|
||||
<rect x="259.005" y="124.019" width="37.9915" height="37.9915" rx="18.9957" fill="#FB5232"/>
|
||||
<rect x="259.005" y="162.01" width="37.9915" height="37.9915" fill="#F4CC3E"/>
|
||||
<path d="M61.16 125.97H1.54004V140.82H23.32V200H39.38V140.82H61.16V125.97Z" fill="#DAECD5"/>
|
||||
<path d="M88.8018 200V170.52H122.572V200H138.632V125.97H122.572V155.78H88.8018V125.97H72.7418V200H88.8018Z" fill="#DAECD5"/>
|
||||
<path d="M211.374 200V185.59H173.424V170.19H208.404V155.78H173.424V140.38H210.714V125.97H171.554C161.324 125.97 157.364 131.36 157.364 139.83V186.25C157.364 194.72 161.324 200 171.554 200H211.374Z" fill="#DAECD5"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 11 KiB |
@ -29,7 +29,7 @@ export const queryRegisteredTwitterId = async (
|
||||
Buffer.from(JSON.stringify(msg)).toString("base64"),
|
||||
),
|
||||
{},
|
||||
{ isErrorIgnore: true },
|
||||
true,
|
||||
);
|
||||
};
|
||||
|
||||
@ -61,6 +61,6 @@ export const queryOwnerOfTwitterName = async (
|
||||
Buffer.from(JSON.stringify(msg)).toString("base64"),
|
||||
),
|
||||
{},
|
||||
{ isErrorIgnore: true },
|
||||
true,
|
||||
);
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
import {
|
||||
IcnsVerificationResponseOnFrontend,
|
||||
IcnsVerificationResponse,
|
||||
TwitterAuthInfoResponse,
|
||||
TwitterAuthUrlResponse,
|
||||
} from "../types";
|
||||
@ -27,9 +27,7 @@ export const verifyTwitterAccount = async (
|
||||
accessToken: string,
|
||||
) => {
|
||||
return (
|
||||
await request<IcnsVerificationResponseOnFrontend>(
|
||||
"/api/icns-verification",
|
||||
{
|
||||
await request<IcnsVerificationResponse>("/api/icns-verification", {
|
||||
method: "post",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
@ -38,7 +36,6 @@ export const verifyTwitterAccount = async (
|
||||
claimer: claimer,
|
||||
authToken: accessToken,
|
||||
}),
|
||||
},
|
||||
)
|
||||
})
|
||||
).verificationList;
|
||||
};
|
||||
|
@ -5,12 +5,15 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
|
||||
const SENTRY_DSN = process.env.NEXT_PUBLIC_SENTRY_DSN;
|
||||
const IS_ENABLE_USER_TRACKING = process.env.NEXT_PUBLIC_IS_ENABLE_USER_TRACKING;
|
||||
|
||||
Sentry.init({
|
||||
enabled: !!SENTRY_DSN,
|
||||
dsn: SENTRY_DSN,
|
||||
enabled: IS_ENABLE_USER_TRACKING === "true",
|
||||
dsn:
|
||||
SENTRY_DSN ||
|
||||
"https://78c91641e90f4f7cad28f50aaec9fb95@o4504343701946368.ingest.sentry.io/4504343708827648",
|
||||
// Adjust this value in production, or use tracesSampler for greater control
|
||||
tracesSampleRate: 0.2,
|
||||
tracesSampleRate: 1.0,
|
||||
// ...
|
||||
// Note: if you want to override the automatic release value, do not set a
|
||||
// `release` value here - use the environment variable `SENTRY_RELEASE`, so
|
||||
|
@ -1,4 +1,3 @@
|
||||
defaults.url=https://sentry.io/
|
||||
defaults.org=interchain-name-service
|
||||
defaults.project=icns-frontend
|
||||
cli.executable=../../.npm/_npx/a8388072043b4cbc/node_modules/@sentry/cli/bin/sentry-cli
|
@ -5,12 +5,17 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
|
||||
const SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN;
|
||||
const IS_ENABLE_USER_TRACKING =
|
||||
process.env.NEXT_PUBLIC_IS_ENABLE_USER_TRACKING ||
|
||||
process.env.NEXT_IS_ENABLE_USER_TRACKING;
|
||||
|
||||
Sentry.init({
|
||||
enabled: !!SENTRY_DSN,
|
||||
dsn: SENTRY_DSN,
|
||||
enabled: IS_ENABLE_USER_TRACKING === "true",
|
||||
dsn:
|
||||
SENTRY_DSN ||
|
||||
"https://78c91641e90f4f7cad28f50aaec9fb95@o4504343701946368.ingest.sentry.io/4504343708827648",
|
||||
// Adjust this value in production, or use tracesSampler for greater control
|
||||
tracesSampleRate: 0.2,
|
||||
tracesSampleRate: 1.0,
|
||||
// ...
|
||||
// Note: if you want to override the automatic release value, do not set a
|
||||
// `release` value here - use the environment variable `SENTRY_RELEASE`, so
|
||||
|
@ -38,30 +38,6 @@ export interface IcnsVerificationResponse {
|
||||
)[];
|
||||
}
|
||||
|
||||
export interface IcnsVerificationResponseOnFrontend {
|
||||
verificationList: (
|
||||
| {
|
||||
status: "fulfilled";
|
||||
value: {
|
||||
errors: Error[];
|
||||
data: {
|
||||
// JSON string
|
||||
verifying_msg: string;
|
||||
// Base64 encoded
|
||||
public_key: string;
|
||||
// Base64 encoded
|
||||
signature: string;
|
||||
algorithm: string;
|
||||
};
|
||||
};
|
||||
}
|
||||
| {
|
||||
status: "rejected";
|
||||
reason: string;
|
||||
}
|
||||
)[];
|
||||
}
|
||||
|
||||
export interface NameByTwitterIdQueryResponse {
|
||||
data: {
|
||||
name: string;
|
||||
|
29
utils/url.ts
29
utils/url.ts
@ -2,28 +2,21 @@ import { TwitterLoginSuccess } from "../types";
|
||||
import { TWITTER_LOGIN_ERROR } from "../constants/error-message";
|
||||
import { WALLET_INSTALL_URL } from "../constants/wallet";
|
||||
|
||||
export async function request<TResponse>(
|
||||
export function request<TResponse>(
|
||||
url: string,
|
||||
config: RequestInit = {},
|
||||
customConfig?: {
|
||||
isErrorIgnore?: boolean;
|
||||
},
|
||||
isIgnore?: boolean,
|
||||
): Promise<TResponse> {
|
||||
const response = await fetch(url, config);
|
||||
const data = await response.json();
|
||||
|
||||
if (
|
||||
(!response.ok || data.error || data.errors) &&
|
||||
!customConfig?.isErrorIgnore
|
||||
) {
|
||||
const { error, errors } = data;
|
||||
const errorMessage =
|
||||
(error && error.toString()) || (errors && errors.toString());
|
||||
|
||||
throw new Error(errorMessage);
|
||||
return fetch(url, config)
|
||||
.then((response) => {
|
||||
if (!response.ok && !isIgnore) {
|
||||
throw new Error(
|
||||
`This is an HTTP error: The status is ${response.status} ${response.statusText}`,
|
||||
);
|
||||
}
|
||||
|
||||
return data;
|
||||
return response.json();
|
||||
})
|
||||
.then((data) => data as TResponse);
|
||||
}
|
||||
|
||||
export function buildQueryString(query: Record<string, any>): string {
|
||||
|
@ -53,9 +53,7 @@ export class KeplrWallet implements Wallet {
|
||||
return chainInfos.map((chainInfo) => {
|
||||
return {
|
||||
...chainInfo,
|
||||
isEthermintLike:
|
||||
chainInfo.features?.includes("eth-address-gen") ||
|
||||
chainInfo.features?.includes("eth-key-sign"),
|
||||
isEthermintLike: chainInfo.features?.includes("eth-address-gen"),
|
||||
};
|
||||
});
|
||||
});
|
||||
|
227
yarn.lock
227
yarn.lock
@ -2090,25 +2090,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/plugin-babel@npm:^6.0.2":
|
||||
version: 6.0.3
|
||||
resolution: "@rollup/plugin-babel@npm:6.0.3"
|
||||
dependencies:
|
||||
"@babel/helper-module-imports": ^7.18.6
|
||||
"@rollup/pluginutils": ^5.0.1
|
||||
peerDependencies:
|
||||
"@babel/core": ^7.0.0
|
||||
"@types/babel__core": ^7.1.9
|
||||
rollup: ^1.20.0||^2.0.0||^3.0.0
|
||||
peerDependenciesMeta:
|
||||
"@types/babel__core":
|
||||
optional: true
|
||||
rollup:
|
||||
optional: true
|
||||
checksum: 412c1c3bb5dd029cbf0b37315ad54b51ef378b8d2fd91d1ec44d73cade723cec8718b5affa2ce8a8b06660710d11765056fac4068521f18737ce26142506a8b1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/plugin-sucrase@npm:4.0.4":
|
||||
version: 4.0.4
|
||||
resolution: "@rollup/plugin-sucrase@npm:4.0.4"
|
||||
@ -2143,22 +2124,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rollup/pluginutils@npm:^5.0.1":
|
||||
version: 5.0.2
|
||||
resolution: "@rollup/pluginutils@npm:5.0.2"
|
||||
dependencies:
|
||||
"@types/estree": ^1.0.0
|
||||
estree-walker: ^2.0.2
|
||||
picomatch: ^2.3.1
|
||||
peerDependencies:
|
||||
rollup: ^1.20.0||^2.0.0||^3.0.0
|
||||
peerDependenciesMeta:
|
||||
rollup:
|
||||
optional: true
|
||||
checksum: edea15e543bebc7dcac3b0ac8bc7b8e8e6dbd46e2864dbe5dd28072de1fbd5b0e10d545a610c0edaa178e8a7ac432e2a2a52e547ece1308471412caba47db8ce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@rushstack/eslint-patch@npm:^1.1.3":
|
||||
version: 1.2.0
|
||||
resolution: "@rushstack/eslint-patch@npm:1.2.0"
|
||||
@ -2166,16 +2131,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/browser@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/browser@npm:7.29.0"
|
||||
"@sentry/browser@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/browser@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/core": 7.29.0
|
||||
"@sentry/replay": 7.29.0
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/core": 7.27.0
|
||||
"@sentry/replay": 7.27.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
tslib: ^1.9.3
|
||||
checksum: 136b9d03a9ff38e72f4d8fd335f23469341d0095d1f075a36d85ef2cd6bd0763635a7e1cbc7abe14508291e88cffe549eda6016c858564b55c1d4e81ef67882f
|
||||
checksum: da5e50bd576126cadf4d96aa9485d0108ad047bc94ac9aba982f51ab76f792be4c89dbcca5f9714332d99676d03f18d53a9f3918b380c1ca7e084f7d790b9f7f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -2196,42 +2161,42 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/core@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/core@npm:7.29.0"
|
||||
"@sentry/core@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/core@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
tslib: ^1.9.3
|
||||
checksum: d9330ed3528f2328b524cb237e400368dcb6c36b8afb791d28141e98ab5c0b56dc306a65cfc7164108cb5616346dabe793a39a140257f723906dc25a03b7ebcd
|
||||
checksum: 36138a8f43e3f959a1fe5ddc0f67a3b80248fd7b3fcd4465965b4a75a148d9afdf0f09393da4d61f5c978b24f4243952b9af8acd83bd79f5b669ef3d89ba96c6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/integrations@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/integrations@npm:7.29.0"
|
||||
"@sentry/integrations@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/integrations@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
localforage: ^1.8.1
|
||||
tslib: ^1.9.3
|
||||
checksum: fec2b9b7902b9b097b5453ae4c797e4efa18ac05a3b539c58d037085e12846f443ebe2e8d916a273ee4df71a29891265db5723b7fd4b5e8287fe5864cb9b2e43
|
||||
checksum: 26cc2a10a4bb89ff131274efd448709e76b500a78594e7ebddcb2d9dfa533e3534373953f660603c6b21bb2a702d10f6602809f795e891d63aa783a2d3f2188c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/nextjs@npm:^7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/nextjs@npm:7.29.0"
|
||||
"@sentry/nextjs@npm:^7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/nextjs@npm:7.27.0"
|
||||
dependencies:
|
||||
"@rollup/plugin-sucrase": 4.0.4
|
||||
"@rollup/plugin-virtual": 3.0.0
|
||||
"@sentry/core": 7.29.0
|
||||
"@sentry/integrations": 7.29.0
|
||||
"@sentry/node": 7.29.0
|
||||
"@sentry/react": 7.29.0
|
||||
"@sentry/tracing": 7.29.0
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/core": 7.27.0
|
||||
"@sentry/integrations": 7.27.0
|
||||
"@sentry/node": 7.27.0
|
||||
"@sentry/react": 7.27.0
|
||||
"@sentry/tracing": 7.27.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
"@sentry/webpack-plugin": 1.20.0
|
||||
chalk: 3.0.0
|
||||
rollup: 2.78.0
|
||||
@ -2243,79 +2208,79 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
webpack:
|
||||
optional: true
|
||||
checksum: 53864f15c199c810b3efa21bcae88a075619d7328b6c70d65660a9e5a01170404a867ddb20a8e7ef7a8fbcfd8d8d23a2bb5399f0d7e9bddb30af7aebd4a8ec99
|
||||
checksum: fdc0ba40b41280ce841e4d841ffe9dd57a6dac6446a47b5c634c9fe48c2a668c1ed6ba4533f37252ba37d034eb2971685b6b56a34f35df0b4edad56069701d56
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/node@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/node@npm:7.29.0"
|
||||
"@sentry/node@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/node@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/core": 7.29.0
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/core": 7.27.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
cookie: ^0.4.1
|
||||
https-proxy-agent: ^5.0.0
|
||||
lru_map: ^0.3.3
|
||||
tslib: ^1.9.3
|
||||
checksum: 1669d47dfaede34080a63f385bbac9908d4de68d055e1b8414554a77b9e89aee9839ce081a01e3301365d327f457c040b685536dba10f6e9eb71bf866fa9d065
|
||||
checksum: a42cb398ed1e8579229cff2fb1303c9809369046995da3c382e27e28d053360dd007828b94a1ff599f85eacc1e7c822b484fc2875995f7d6bb61ac8bcb464542
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/react@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/react@npm:7.29.0"
|
||||
"@sentry/react@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/react@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/browser": 7.29.0
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/browser": 7.27.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
hoist-non-react-statics: ^3.3.2
|
||||
tslib: ^1.9.3
|
||||
peerDependencies:
|
||||
react: 15.x || 16.x || 17.x || 18.x
|
||||
checksum: 022bf398f2cf43bf5e1f7340cfc02ccfc4cdc026fb3d6805e760d182bcb2601d413cf412beaa37fecbbf0dc554ce38c4a01d9bf38d1591f80cd059ee5235205d
|
||||
checksum: 164cefe9efee1dc41bd7244c2da5567f3a772717bc537d40b961db1bb9e67458be13b79e0f68be4cbc2970daa868a5d786de682f40c8fbe0d0d42015bef32b81
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/replay@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/replay@npm:7.29.0"
|
||||
"@sentry/replay@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/replay@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/core": 7.29.0
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/core": 7.27.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
peerDependencies:
|
||||
"@sentry/browser": ">=7.24.0"
|
||||
checksum: 539e18c128bb7966c9d4ea91ebd9cde6d42f42f96fa648d7ead5bff699e643f3792f57a344376586fab26f659f5e1431176faf0e12e6ea53508fd48ba928dd12
|
||||
checksum: 440ac09c9acb2ced340c61ae56289dabdd006fd48a85545d8459990c93745b5e5cdbfcd0ec8311092a495094c2679239278650d2af373011df29d435333dbc66
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/tracing@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/tracing@npm:7.29.0"
|
||||
"@sentry/tracing@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/tracing@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/core": 7.29.0
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/utils": 7.29.0
|
||||
"@sentry/core": 7.27.0
|
||||
"@sentry/types": 7.27.0
|
||||
"@sentry/utils": 7.27.0
|
||||
tslib: ^1.9.3
|
||||
checksum: 7ad9040664a8c65693aba2bdd9cecc8334ce25a296c01727d38649c7141106b78c92142626ce8e44983b4272e0f411010a3df99843a1af6d4f89e4f67ce6f57e
|
||||
checksum: 203a3a6b467d6ccb12913f3da38e7d224f1d074dc3b3ac2e108a8ae6feff8d60ecb379eedf1b2bd82b1cdd58c11801df5b426e4a15be0a70845c9e2eae05b6ed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/types@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/types@npm:7.29.0"
|
||||
checksum: 53815b66662a193cfd7024b9fb2477afb8178a771aa59f3bef10578cc940a9d7207722f9f04e2ca65a8e118cef012ac42f4936aa921aacdfc00a914bec88b009
|
||||
"@sentry/types@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/types@npm:7.27.0"
|
||||
checksum: a22056aa589da4b17f42548b1a218edbb839d97f865c9214d89dc4a831389ac71c647af087c6f363df28d7adadb0e623ad77a7f3243d411458aafc655714424e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sentry/utils@npm:7.29.0":
|
||||
version: 7.29.0
|
||||
resolution: "@sentry/utils@npm:7.29.0"
|
||||
"@sentry/utils@npm:7.27.0":
|
||||
version: 7.27.0
|
||||
resolution: "@sentry/utils@npm:7.27.0"
|
||||
dependencies:
|
||||
"@sentry/types": 7.29.0
|
||||
"@sentry/types": 7.27.0
|
||||
tslib: ^1.9.3
|
||||
checksum: 9914a2129692a5713453437d75b957a18ad5a4ef8085776e5499208ad329dea8da27ee2e2b74fdc089a3831b4e2929f8e6c0f3bc75528f41023d85de5077f462
|
||||
checksum: d01f2d1999b877904df04e521a05a6978a756eeb518b6ca5099edf7888023691ed3b812eb089bd77c92069764b8928d285dd33cf667ab2030a8e590d79ca55da
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -2562,15 +2527,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/cors@npm:^2":
|
||||
version: 2.8.13
|
||||
resolution: "@types/cors@npm:2.8.13"
|
||||
dependencies:
|
||||
"@types/node": "*"
|
||||
checksum: 7ef197ea19d2e5bf1313b8416baa6f3fd6dd887fd70191da1f804f557395357dafd8bc8bed0ac60686923406489262a7c8a525b55748f7b2b8afa686700de907
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/eslint@npm:^8.4.10":
|
||||
version: 8.4.10
|
||||
resolution: "@types/eslint@npm:8.4.10"
|
||||
@ -2581,7 +2537,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/estree@npm:*, @types/estree@npm:^1.0.0":
|
||||
"@types/estree@npm:*":
|
||||
version: 1.0.0
|
||||
resolution: "@types/estree@npm:1.0.0"
|
||||
checksum: 910d97fb7092c6738d30a7430ae4786a38542023c6302b95d46f49420b797f21619cdde11fa92b338366268795884111c2eb10356e4bd2c8ad5b92941e9e6443
|
||||
@ -3785,16 +3741,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cors@npm:^2.8.5":
|
||||
version: 2.8.5
|
||||
resolution: "cors@npm:2.8.5"
|
||||
dependencies:
|
||||
object-assign: ^4
|
||||
vary: ^1
|
||||
checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cosmiconfig@npm:^7.0.1":
|
||||
version: 7.1.0
|
||||
resolution: "cosmiconfig@npm:7.1.0"
|
||||
@ -3808,13 +3754,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"countup.js@npm:^2.3.2":
|
||||
version: 2.3.2
|
||||
resolution: "countup.js@npm:2.3.2"
|
||||
checksum: 77bb509cd17619568c8d841f9dbba7d75c70948d7f9acd0a1acea80e3894c4b4173e27e8896268c1f53415ebee465229f1e623da5ad759083a618484ac4f9b60
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
|
||||
version: 1.2.0
|
||||
resolution: "create-hash@npm:1.2.0"
|
||||
@ -4642,7 +4581,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2":
|
||||
"estree-walker@npm:^2.0.1":
|
||||
version: 2.0.2
|
||||
resolution: "estree-walker@npm:2.0.2"
|
||||
checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc
|
||||
@ -5255,9 +5194,8 @@ __metadata:
|
||||
"@keplr-wallet/proto-types": ^0.11.25
|
||||
"@keplr-wallet/types": ^0.11.25
|
||||
"@next/eslint-plugin-next": ^13.0.5
|
||||
"@sentry/nextjs": ^7.29.0
|
||||
"@sentry/nextjs": ^7.27.0
|
||||
"@svgr/webpack": ^6.5.1
|
||||
"@types/cors": ^2
|
||||
"@types/eslint": ^8.4.10
|
||||
"@types/node": 18.11.9
|
||||
"@types/react": 18.0.25
|
||||
@ -5269,7 +5207,6 @@ __metadata:
|
||||
"@typescript-eslint/parser": ^5.45.0
|
||||
axios: ^0.27.2
|
||||
buffer: ^6.0.3
|
||||
cors: ^2.8.5
|
||||
crypto: ^1.0.1
|
||||
eslint: 8.28.0
|
||||
eslint-config-next: 13.0.5
|
||||
@ -5285,7 +5222,6 @@ __metadata:
|
||||
next: 13.0.5
|
||||
prettier: ^2.8.0
|
||||
react: 18.2.0
|
||||
react-countup: ^6.4.0
|
||||
react-dom: 18.2.0
|
||||
react-is: ^18.2.0
|
||||
react-modal: ^3.16.1
|
||||
@ -6475,7 +6411,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
|
||||
"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
|
||||
version: 4.1.1
|
||||
resolution: "object-assign@npm:4.1.1"
|
||||
checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
|
||||
@ -6905,18 +6841,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-countup@npm:^6.4.0":
|
||||
version: 6.4.0
|
||||
resolution: "react-countup@npm:6.4.0"
|
||||
dependencies:
|
||||
"@rollup/plugin-babel": ^6.0.2
|
||||
countup.js: ^2.3.2
|
||||
peerDependencies:
|
||||
react: ">= 16.3.0"
|
||||
checksum: 259277fa70fc778fa3d67b375f5c44fdc3c8e5c9cc73225605f456adff31406966ff00379cb23ec771cb624a70c91c46d8216583c9dfc3fedb69071d31cb3208
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-dom@npm:18.2.0":
|
||||
version: 18.2.0
|
||||
resolution: "react-dom@npm:18.2.0"
|
||||
@ -8123,13 +8047,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vary@npm:^1":
|
||||
version: 1.1.2
|
||||
resolution: "vary@npm:1.1.2"
|
||||
checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"warning@npm:^4.0.3":
|
||||
version: 4.0.3
|
||||
resolution: "warning@npm:4.0.3"
|
||||
|
Loading…
Reference in New Issue
Block a user