From 3b74112f918c6f7867038e06d44f5ae78f977c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:23:38 +0900 Subject: [PATCH 01/10] chore(deps): add .knip.jsonc and update dependencies in package.json --- .knip.jsonc | 5 + package.json | 21 +--- yarn.lock | 278 ++++----------------------------------------------- 3 files changed, 30 insertions(+), 274 deletions(-) create mode 100644 .knip.jsonc diff --git a/.knip.jsonc b/.knip.jsonc new file mode 100644 index 00000000..3b28c2af --- /dev/null +++ b/.knip.jsonc @@ -0,0 +1,5 @@ +{ + "$schema": "https://unpkg.com/knip@5/schema.json", + "entry": ["static/scripts/rewards/init.ts"], + "ignore": ["lib/**"] +} diff --git a/package.json b/package.json index 865c69d9..c1981063 100644 --- a/package.json +++ b/package.json @@ -33,22 +33,13 @@ ], "dependencies": { "@ethersproject/providers": "^5.7.2", - "@octokit/core": "^5.1.0", - "@octokit/plugin-create-or-update-text-file": "^4.0.1", - "@octokit/plugin-throttling": "^8.1.3", - "@octokit/rest": "^20.0.2", - "@sinclair/typebox": "^0.32.14", - "@supabase/supabase-js": "2.39.7", - "@types/libsodium-wrappers": "^0.7.13", + "@sinclair/typebox": "^0.32.15", + "@supabase/supabase-js": "^2.39.8", "@uniswap/permit2-sdk": "^1.2.0", "axios": "^1.6.7", "dotenv": "^16.4.4", "ethers": "^5.7.2", - "godb": "^0.6.2", - "libsodium-wrappers": "^0.7.13", - "npm-run-all": "^4.1.5", - "retry-axios": "^3.1.3", - "yaml": "^2.3.4" + "npm-run-all": "^4.1.5" }, "devDependencies": { "@commitlint/cli": "^18.6.1", @@ -61,11 +52,8 @@ "@typescript-eslint/eslint-plugin": "^7.0.1", "@typescript-eslint/parser": "^7.0.1", "cspell": "^8.3.2", - "cspell-dict-html": "^1.2.5", "esbuild": "^0.20.0", "eslint": "^8.56.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-sonarjs": "^0.24.0", "husky": "^9.0.11", "knip": "^5.0.1", @@ -74,8 +62,7 @@ "npm-run-all": "^4.1.5", "prettier": "^3.2.5", "tsx": "^4.7.1", - "typescript": "^5.3.3", - "yarn-upgrade-all": "^0.7.2" + "typescript": "^5.3.3" }, "lint-staged": { "*.ts": [ diff --git a/yarn.lock b/yarn.lock index cf356f4f..d94f49e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -400,11 +400,6 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz#4d86ac18a4a11fdb61dfb6f5929acd768a52564f" integrity sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw== -"@cspell/dict-html@^1.1.9": - version "1.1.9" - resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-1.1.9.tgz#e506ca550ffcdad820ba0aa157a48be869f23bf2" - integrity sha512-vvnYia0tyIS5Fdoz+gEQm77MGZZE66kOJjuNpIYyRHCXFAhWdYz3SmkRm6YKJSWSvuO+WBJYTKDvkOxSh3Fx/w== - "@cspell/dict-html@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-4.0.5.tgz#03a5182148d80e6c25f71339dbb2b7c5b9894ef8" @@ -1285,127 +1280,11 @@ dependencies: which "^4.0.0" -"@octokit/auth-token@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" - integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== - -"@octokit/core@^5.0.0", "@octokit/core@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" - integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== - dependencies: - "@octokit/auth-token" "^4.0.0" - "@octokit/graphql" "^7.0.0" - "@octokit/request" "^8.0.2" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^9.0.0": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" - integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== - dependencies: - "@octokit/types" "^12.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" - integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== - dependencies: - "@octokit/request" "^8.0.1" - "@octokit/types" "^12.0.0" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-20.0.0.tgz#9ec2daa0090eeb865ee147636e0c00f73790c6e5" - integrity sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA== - -"@octokit/plugin-create-or-update-text-file@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-create-or-update-text-file/-/plugin-create-or-update-text-file-4.0.1.tgz#fc4785fba989288286cb2e0de05e99e626c6316c" - integrity sha512-r0kY7MrV+QTTPeVzNmjeAuuPraF8i6cQ2ff2/W+C2monXTAyx21jLd/2jczrC2e+ohnXQvDT3acqpBhtBcqXYQ== - dependencies: - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" - -"@octokit/plugin-paginate-rest@^9.0.0": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz#2e2a2f0f52c9a4b1da1a3aa17dabe3c459b9e401" - integrity sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw== - dependencies: - "@octokit/types" "^12.6.0" - -"@octokit/plugin-request-log@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz#98a3ca96e0b107380664708111864cb96551f958" - integrity sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA== - -"@octokit/plugin-rest-endpoint-methods@^10.0.0": - version "10.4.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz#41ba478a558b9f554793075b2e20cd2ef973be17" - integrity sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg== - dependencies: - "@octokit/types" "^12.6.0" - -"@octokit/plugin-throttling@^8.1.3": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz#9ec3ea2e37b92fac63f06911d0c8141b46dc4941" - integrity sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ== - dependencies: - "@octokit/types" "^12.2.0" - bottleneck "^2.15.3" - -"@octokit/request-error@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" - integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== - dependencies: - "@octokit/types" "^12.0.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.2.0.tgz#125c547bc3f4c0e2dfa38c6829a1cf00027fbd98" - integrity sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ== - dependencies: - "@octokit/endpoint" "^9.0.0" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" - universal-user-agent "^6.0.0" - -"@octokit/rest@^20.0.2": - version "20.0.2" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.0.2.tgz#5cc8871ba01b14604439049e5f06c74b45c99594" - integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ== - dependencies: - "@octokit/core" "^5.0.0" - "@octokit/plugin-paginate-rest" "^9.0.0" - "@octokit/plugin-request-log" "^4.0.0" - "@octokit/plugin-rest-endpoint-methods" "^10.0.0" - -"@octokit/types@^12.0.0", "@octokit/types@^12.2.0", "@octokit/types@^12.6.0": - version "12.6.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.6.0.tgz#8100fb9eeedfe083aae66473bd97b15b62aedcb2" - integrity sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw== - dependencies: - "@octokit/openapi-types" "^20.0.0" - "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - "@pnpm/constants@7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@pnpm/constants/-/constants-7.1.1.tgz#3db261425fe15425aa213a2b003f4f60c9378b43" @@ -1513,7 +1392,7 @@ "@pnpm/resolve-workspace-range" "5.0.1" ramda "npm:@pnpm/ramda@0.28.1" -"@sinclair/typebox@^0.32.14": +"@sinclair/typebox@^0.32.15": version "0.32.15" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.15.tgz#92dcdc12907f7c0f6d954ba3700b5bb888d2eb34" integrity sha512-5Lrwo7VOiWEBJBhHmqNmf3TPB9ll8gcEshvYJyAIJyCZ2PF48MFOtiDHJNj8+FsNcqImaQYmxVkKBCBlyAa/wg== @@ -1572,10 +1451,10 @@ dependencies: "@supabase/node-fetch" "^2.6.14" -"@supabase/supabase-js@2.39.7": - version "2.39.7" - resolved "https://registry.yarnpkg.com/@supabase/supabase-js/-/supabase-js-2.39.7.tgz#61c3277a94bd9fd0574b39ecdf4fecffd73a139c" - integrity sha512-1vxsX10Uhc2b+Dv9pRjBjHfqmw2N2h1PyTg9LEfICR3x2xwE24By1MGCjDZuzDKH5OeHCsf4it6K8KRluAAEXA== +"@supabase/supabase-js@^2.39.8": + version "2.39.8" + resolved "https://registry.yarnpkg.com/@supabase/supabase-js/-/supabase-js-2.39.8.tgz#2d8935438bdd6add82484ecd46edb0cd5b3f8c38" + integrity sha512-WpiawHjseIRcCQTZbMJtHUSOepz5+M9qE1jP9BDmg8X7ehALFwgEkiKyHAu59qm/pKP2ryyQXLtu2XZNRbUarw== dependencies: "@supabase/functions-js" "2.1.5" "@supabase/gotrue-js" "2.62.2" @@ -1596,17 +1475,19 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/libsodium-wrappers@^0.7.13": - version "0.7.13" - resolved "https://registry.yarnpkg.com/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#769c4ea01de96bb297207586a70777ebf066dcb4" - integrity sha512-KeAKtlObirLJk/na6jHBFEdTDjDfFS6Vcr0eG2FjiHKn3Nw8axJFfIu0Y9TpwaauRldQBj/pZm/MHtK76r6OWg== - "@types/minimist@^1.2.0": version "1.2.5" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== -"@types/node@*", "@types/node@^20.11.19": +"@types/node@*": + version "20.11.27" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.27.tgz#debe5cfc8a507dd60fe2a3b4875b1604f215c2ac" + integrity sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg== + dependencies: + undici-types "~5.26.4" + +"@types/node@^20.11.19": version "20.11.25" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.25.tgz#0f50d62f274e54dd7a49f7704cc16bfbcccaf49f" integrity sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw== @@ -1946,11 +1827,6 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - bignumber.js@7.2.1: version "7.2.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" @@ -1979,11 +1855,6 @@ bole@^5.0.0: fast-safe-stringify "^2.0.7" individual "^3.0.0" -bottleneck@^2.15.3: - version "2.19.5" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" - integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2216,18 +2087,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -configstore@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - configstore@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" @@ -2326,14 +2185,6 @@ cspell-config-lib@8.6.0: comment-json "^4.2.3" yaml "^2.4.0" -cspell-dict-html@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/cspell-dict-html/-/cspell-dict-html-1.2.5.tgz#e670859986d7d2ea8feed29875cb8a411ad7c005" - integrity sha512-UgenFUHqMOZCH634DipKVWeSixlLTVJnmDGaPevLQuGPp057ucAb0QwDQlLRAAZh9RDfiBGvotX2hImFVN/l0Q== - dependencies: - "@cspell/dict-html" "^1.1.9" - configstore "^5.0.0" - cspell-dictionary@8.6.0: version "8.6.0" resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.6.0.tgz#f6a53e7dd4118a0764d45d8d357267a05815db19" @@ -2505,11 +2356,6 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2524,7 +2370,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dot-prop@^5.1.0, dot-prop@^5.2.0: +dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== @@ -2754,19 +2600,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-plugin-prettier@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" - eslint-plugin-sonarjs@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.24.0.tgz#b594ccb9b1d6123edd3c3fe3a45b4392e14932d7" @@ -2943,11 +2776,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - fast-equals@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" @@ -3066,9 +2894,9 @@ flatted@^3.2.9: integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" @@ -3278,11 +3106,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -godb@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/godb/-/godb-0.6.2.tgz#0c380310558a7c9114f49aa70c1a1da67313120e" - integrity sha512-641W5/CzvwWCCW8Z5ETT6Js6posF5XXbc93F8fwJNseTpuQsTuJPxRntZPe6iYtb9ExfNlGteK09cN3Sl2avXw== - gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -3831,18 +3654,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -libsodium-wrappers@^0.7.13: - version "0.7.13" - resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" - integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== - dependencies: - libsodium "^0.7.13" - -libsodium@^0.7.13: - version "0.7.13" - resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" - integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== - lilconfig@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" @@ -4005,13 +3816,6 @@ magic-string@^0.16.0: dependencies: vlq "^0.2.1" -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -4353,7 +4157,7 @@ object.assign@^4.1.5: has-symbols "^1.0.3" object-keys "^1.1.1" -once@^1.3.0, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -4580,13 +4384,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - prettier@^3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" @@ -4779,11 +4576,6 @@ restore-cursor@^4.0.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry-axios@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/retry-axios/-/retry-axios-3.1.3.tgz#c263313e5148e8747b13d4861e3f8316f49088ed" - integrity sha512-uwnlAjqg6twTcQB7RvH3OSgAqjqBDS9GFUOT+BhgADDYjoxsB7KfvS6SqYHOPjxM/Z/jVwSwGYdJnPE8at1PoA== - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -4859,7 +4651,7 @@ semver@7.6.0, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.0: +semver@^6.1.0: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -5173,14 +4965,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - text-extensions@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" @@ -5256,11 +5040,6 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tsx@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84" @@ -5405,11 +5184,6 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" -universal-user-agent@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" - integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== - universalify@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" @@ -5566,7 +5340,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: +write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -5586,11 +5360,6 @@ ws@^8.14.2: resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - xdg-basedir@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" @@ -5611,7 +5380,7 @@ yaml@2.3.4: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== -yaml@^2.3.4, yaml@^2.4.0: +yaml@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== @@ -5639,11 +5408,6 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" -yarn-upgrade-all@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.7.2.tgz#5d2afa9230661c55f22d3f848f22258db732ae20" - integrity sha512-iVxmoBuNdpxeahAIehJ039Pp6S8zQ/qTENQRMV5hp7x/2tLGUzytCODIKZFjfUwcRRKT3boGgHheUEWC7+VlQw== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 08e1aa99324989e40de074cd73d7a25a0adeb435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:25:34 +0900 Subject: [PATCH 02/10] style: run knip --- scripts/typescript/utils.ts | 2 +- static/scripts/rewards/constants.ts | 8 ++++---- .../render-transaction/claim-rewards-pagination.ts | 2 +- .../rewards/render-transaction/insert-table-data.ts | 2 +- static/scripts/rewards/toaster.ts | 6 +++--- static/scripts/rewards/web3/erc20-permit.ts | 10 +++++----- static/scripts/rewards/web3/erc721-permit.ts | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/scripts/typescript/utils.ts b/scripts/typescript/utils.ts index 3fc2fd6c..a8188a88 100644 --- a/scripts/typescript/utils.ts +++ b/scripts/typescript/utils.ts @@ -40,7 +40,7 @@ const colors = { bgCyan: "\x1b[46m", bgWhite: "\x1b[47m", }; -export function colorizeText(text: string, color: keyof typeof colors): string { +function colorizeText(text: string, color: keyof typeof colors): string { return colors[color].concat(text).concat(colors.reset); } diff --git a/static/scripts/rewards/constants.ts b/static/scripts/rewards/constants.ts index 7dd21ff9..f0e8422b 100644 --- a/static/scripts/rewards/constants.ts +++ b/static/scripts/rewards/constants.ts @@ -4,19 +4,19 @@ declare const extraRpcs: Record; // @DEV: passed in at build time check build/esbuild-build.ts -export enum NetworkIds { +enum NetworkIds { Mainnet = 1, Goerli = 5, Gnosis = 100, Anvil = 31337, } -export enum Tokens { +enum Tokens { DAI = "0x6b175474e89094c44da98b954eedeac495271d0f", WXDAI = "0xe91d153e0b41518a2ce8dd3d7944fa863463a97d", } -export const networkNames = { +const networkNames = { [NetworkIds.Mainnet]: "Ethereum Mainnet", [NetworkIds.Goerli]: "Goerli Testnet", [NetworkIds.Gnosis]: "Gnosis Chain", @@ -53,4 +53,4 @@ export const networkRpcs: Record = { }; export const permit2Address = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; -export const nftAddress = "0xAa1bfC0e51969415d64d6dE74f27CDa0587e645b"; +const nftAddress = "0xAa1bfC0e51969415d64d6dE74f27CDa0587e645b"; diff --git a/static/scripts/rewards/render-transaction/claim-rewards-pagination.ts b/static/scripts/rewards/render-transaction/claim-rewards-pagination.ts index 548d6c71..37735ba5 100644 --- a/static/scripts/rewards/render-transaction/claim-rewards-pagination.ts +++ b/static/scripts/rewards/render-transaction/claim-rewards-pagination.ts @@ -13,7 +13,7 @@ export function claimRewardsPagination(rewardsCount: HTMLElement) { if (prevTxButton) prevTxButton.addEventListener("click", () => transactionHandler("previous")); } -export function transactionHandler(direction: "next" | "previous") { +function transactionHandler(direction: "next" | "previous") { removeAllEventListeners(getMakeClaimButton()) as HTMLButtonElement; direction === "next" ? app.nextPermit() : app.previousPermit(); table.setAttribute(`data-make-claim`, "error"); diff --git a/static/scripts/rewards/render-transaction/insert-table-data.ts b/static/scripts/rewards/render-transaction/insert-table-data.ts index 5c9e8e24..0a6c6d7f 100644 --- a/static/scripts/rewards/render-transaction/insert-table-data.ts +++ b/static/scripts/rewards/render-transaction/insert-table-data.ts @@ -2,7 +2,7 @@ import { BigNumber, ethers } from "ethers"; import { AppState, app } from "../app-state"; import { Erc20Permit, Erc721Permit } from "./tx-type"; -export function shortenAddress(address: string): string { +function shortenAddress(address: string): string { return `${address.slice(0, 10)}...${address.slice(-8)}`; } diff --git a/static/scripts/rewards/toaster.ts b/static/scripts/rewards/toaster.ts index 53c5f332..f5ed7b60 100644 --- a/static/scripts/rewards/toaster.ts +++ b/static/scripts/rewards/toaster.ts @@ -11,15 +11,15 @@ export const toaster = { }, }; -export const controls = document.getElementById("controls") as HTMLDivElement; +const controls = document.getElementById("controls") as HTMLDivElement; export function getMakeClaimButton() { return document.getElementById("make-claim") as HTMLButtonElement; } export const viewClaimButton = document.getElementById("view-claim") as HTMLButtonElement; -export const notifications = document.querySelector(".notifications") as HTMLUListElement; +const notifications = document.querySelector(".notifications") as HTMLUListElement; export const buttonController = new ButtonController(controls); -export function createToast(meaning: keyof typeof toaster.icons, text: string) { +function createToast(meaning: keyof typeof toaster.icons, text: string) { if (meaning != "info") buttonController.hideLoader(); const toastDetails = { timer: 5000, diff --git a/static/scripts/rewards/web3/erc20-permit.ts b/static/scripts/rewards/web3/erc20-permit.ts index dbcb11f7..858694ac 100644 --- a/static/scripts/rewards/web3/erc20-permit.ts +++ b/static/scripts/rewards/web3/erc20-permit.ts @@ -128,7 +128,7 @@ export function claimErc20PermitHandlerWrapper(app: AppState) { }; } -export async function checkPermitClaimable(app: AppState): Promise { +async function checkPermitClaimable(app: AppState): Promise { let isClaimed: boolean; try { isClaimed = await isNonceClaimed(app); @@ -248,7 +248,7 @@ invalidateButton.addEventListener("click", async function invalidateButtonClickH }); //mimics https://github.com/Uniswap/permit2/blob/a7cd186948b44f9096a35035226d7d70b9e24eaf/src/SignatureTransfer.sol#L150 -export async function isNonceClaimed(app: AppState): Promise { +async function isNonceClaimed(app: AppState): Promise { const provider = app.provider; const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, provider); @@ -266,7 +266,7 @@ export async function isNonceClaimed(app: AppState): Promise { return bit.and(flipped).eq(0); } -export async function invalidateNonce(signer: JsonRpcSigner, nonce: BigNumberish): Promise { +async function invalidateNonce(signer: JsonRpcSigner, nonce: BigNumberish): Promise { const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, signer); const { wordPos, bitPos } = nonceBitmap(nonce); // mimics https://github.com/ubiquity/pay.ubq.fi/blob/c9e7ed90718fe977fd9f348db27adf31d91d07fb/scripts/solidity/test/Permit2.t.sol#L428 @@ -277,7 +277,7 @@ export async function invalidateNonce(signer: JsonRpcSigner, nonce: BigNumberish } // mimics https://github.com/Uniswap/permit2/blob/db96e06278b78123970183d28f502217bef156f4/src/SignatureTransfer.sol#L142 -export function nonceBitmap(nonce: BigNumberish): { wordPos: BigNumber; bitPos: number } { +function nonceBitmap(nonce: BigNumberish): { wordPos: BigNumber; bitPos: number } { // wordPos is the first 248 bits of the nonce const wordPos = BigNumber.from(nonce).shr(8); // bitPos is the last 8 bits of the nonce @@ -285,7 +285,7 @@ export function nonceBitmap(nonce: BigNumberish): { wordPos: BigNumber; bitPos: return { wordPos, bitPos }; } -export async function updatePermitTxHash(app: AppState, hash: string): Promise { +async function updatePermitTxHash(app: AppState, hash: string): Promise { const { error } = await supabase .from("permits") .update({ transaction: hash }) diff --git a/static/scripts/rewards/web3/erc721-permit.ts b/static/scripts/rewards/web3/erc721-permit.ts index dd545539..a6bf6e49 100644 --- a/static/scripts/rewards/web3/erc721-permit.ts +++ b/static/scripts/rewards/web3/erc721-permit.ts @@ -62,7 +62,7 @@ export function claimErc721PermitHandler(reward: Erc721Permit) { }; } -export async function isNonceRedeemed(reward: Erc721Permit, provider: JsonRpcProvider): Promise { +async function isNonceRedeemed(reward: Erc721Permit, provider: JsonRpcProvider): Promise { const nftContract = new ethers.Contract(reward.permit.permitted.token, nftRewardAbi, provider); return nftContract.nonceRedeemed(reward.request.nonce); } From dbbee980debee4fda77cbddb0095bfbc1065a28e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:26:07 +0900 Subject: [PATCH 03/10] chore: delete unused file caught by knip --- build/plugins/invert-colors.ts | 54 ---------------------------------- 1 file changed, 54 deletions(-) delete mode 100644 build/plugins/invert-colors.ts diff --git a/build/plugins/invert-colors.ts b/build/plugins/invert-colors.ts deleted file mode 100644 index 88af8b76..00000000 --- a/build/plugins/invert-colors.ts +++ /dev/null @@ -1,54 +0,0 @@ -import esbuild from "esbuild"; -import fs from "fs"; -import path, { basename, dirname } from "path"; - -export const invertColors: esbuild.Plugin = { - name: "invert-colors", - setup(build) { - build.onEnd(async (result) => { - console.log(result); - }); - build.onLoad({ filter: /\.css$/ }, async (args) => { - const contents = await fs.promises.readFile(args.path, "utf8"); - - const updatedContents = contents.replace(/prefers-color-scheme: dark/g, "prefers-color-scheme: light"); - - // Invert greyscale colors and accommodate alpha channels in the CSS content - const invertedContents = updatedContents.replace(/#([0-9A-Fa-f]{3,6})([0-9A-Fa-f]{2})?\b/g, (match, rgb, alpha) => { - let color = rgb.startsWith("#") ? rgb.slice(1) : rgb; - if (color.length === 3) { - color = color - .split("") - .map((char: string) => char + char) - .join(""); - } - const r = parseInt(color.slice(0, 2), 16); - const g = parseInt(color.slice(2, 4), 16); - const b = parseInt(color.slice(4, 6), 16); - - // Check if the color is greyscale (R, G, and B components are equal) - if (r === g && g === b) { - // Invert RGB values - const invertedColorValue = (255 - r).toString(16).padStart(2, "0"); - // Return the inverted greyscale color with alpha channel if present - return `#${invertedColorValue}${invertedColorValue}${invertedColorValue}${alpha || ""}`; - } - - // If the color is not greyscale, return it as is, including the alpha channel if present - return `#${color}${alpha || ""}`; - }); - - // Define the output path for the new CSS file - const fileBasename = basename(args.path); - const fileDirname = dirname(args.path); - const outputPath = path.resolve(fileDirname, `inverted-${fileBasename}`); - const outputDir = path.dirname(outputPath); - await fs.promises.mkdir(outputDir, { recursive: true }); - // Write the new contents to the output file - await fs.promises.writeFile(outputPath, invertedContents, "utf8"); - - // Return an empty result to esbuild since we're writing the file ourselves - return { contents: "", loader: "css" }; - }); - }, -}; From d6c9f4ffd273b1b6beb7477f134db85507291bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:26:37 +0900 Subject: [PATCH 04/10] chore: fix log message --- .../rewards/render-transaction/read-claim-data-from-url.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts index bd00b673..05edf862 100644 --- a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts +++ b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts @@ -68,7 +68,7 @@ function decodeClaimData(base64encodedTxData: string): RewardPermit[] { permit = JSON.parse(atob(base64encodedTxData)); } catch (error) { console.error(error); - setClaimMessage({ type: "Error", message: `1. Invalid claim data passed in URL` }); + setClaimMessage({ type: "Error", message: `Invalid claim data passed in URL` }); table.setAttribute(`data-make-claim`, "error"); throw error; } @@ -76,7 +76,7 @@ function decodeClaimData(base64encodedTxData: string): RewardPermit[] { return [Value.Decode(Type.Array(claimTxT), permit)]; } catch (error) { console.error(error); - setClaimMessage({ type: "Error", message: `2. Invalid claim data passed in URL` }); + setClaimMessage({ type: "Error", message: `Invalid claim data passed in URL` }); table.setAttribute(`data-make-claim`, "error"); throw error; } From baa1b38fa911f059710daa73b6e73565153840b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:27:02 +0900 Subject: [PATCH 05/10] refactor: make less redundant --- .../rewards/render-transaction/read-claim-data-from-url.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts index 05edf862..e54fa2e2 100644 --- a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts +++ b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts @@ -66,13 +66,6 @@ function decodeClaimData(base64encodedTxData: string): RewardPermit[] { try { permit = JSON.parse(atob(base64encodedTxData)); - } catch (error) { - console.error(error); - setClaimMessage({ type: "Error", message: `Invalid claim data passed in URL` }); - table.setAttribute(`data-make-claim`, "error"); - throw error; - } - try { return [Value.Decode(Type.Array(claimTxT), permit)]; } catch (error) { console.error(error); From 0c55859e08d727735b9c89aee1f9254cb04317a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:36:10 +0900 Subject: [PATCH 06/10] refactor: handle type errors --- static/scripts/rewards/app-state.ts | 4 ++-- .../read-claim-data-from-url.ts | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/static/scripts/rewards/app-state.ts b/static/scripts/rewards/app-state.ts index 00d5fdbe..61549f63 100644 --- a/static/scripts/rewards/app-state.ts +++ b/static/scripts/rewards/app-state.ts @@ -1,4 +1,4 @@ -import { JsonRpcProvider } from "@ethersproject/providers"; +import { JsonRpcProvider, JsonRpcSigner } from "@ethersproject/providers"; import { networkExplorers } from "./constants"; import { RewardPermit } from "./render-transaction/tx-type"; @@ -7,7 +7,7 @@ export class AppState { public claimTxs: Record = {}; private _provider!: JsonRpcProvider; private _currentIndex = 0; - private _signer; + private _signer: JsonRpcSigner | null = null; get signer() { return this._signer; diff --git a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts index e54fa2e2..99c1cca8 100644 --- a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts +++ b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts @@ -33,11 +33,14 @@ export async function readClaimDataFromUrl(app: AppState) { app.claimTxs = await getClaimedTxs(app); app.provider = await useFastestRpc(app); if (window.ethereum) { - app.signer = await connectWallet().catch(console.error); - window.ethereum.on("accountsChanged", () => { - checkRenderMakeClaimControl(app).catch(console.error); - checkRenderInvalidatePermitAdminControl(app).catch(console.error); - }); + try { + app.signer = await connectWallet(); + } catch (error) { + window.ethereum.on("accountsChanged", () => { + checkRenderMakeClaimControl(app).catch(console.error); + checkRenderInvalidatePermitAdminControl(app).catch(console.error); + }); + } } else { buttonController.hideAll(); toaster.create("info", "Please use a web3 enabled browser to collect this reward."); @@ -46,7 +49,11 @@ export async function readClaimDataFromUrl(app: AppState) { displayRewardPagination(); await renderTransaction(); - await verifyCurrentNetwork(app.networkId); + if (app.networkId !== null) { + await verifyCurrentNetwork(app.networkId); + } else { + throw new Error("Network ID is null"); + } } async function getClaimedTxs(app: AppState): Promise> { From 55f68840ab85bf6f184bfce959e0b5e12279ff5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:36:32 +0900 Subject: [PATCH 07/10] fix: tsconfig complaining about js import --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 31f00cd4..31241232 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "include": ["src", "lib/chainlist/constants/extraRpcs.js", "static", "build", "scripts/typescript", "globals.d.ts"], + "include": ["src", "static", "build", "scripts/typescript", "globals.d.ts"], "compilerOptions": { /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ From 1f6f6064b17bda8fc5a97093918d0ba9695774ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Fri, 15 Mar 2024 12:39:38 +0900 Subject: [PATCH 08/10] refactor: window.ethereum to ethereum it is concise --- globals.d.ts | 7 ++++--- static/scripts/rewards/ButtonController.ts | 12 ++++++------ .../render-transaction/read-claim-data-from-url.ts | 4 ++-- .../rewards/render-transaction/render-transaction.ts | 2 +- static/scripts/rewards/web3/connect-wallet.ts | 2 +- .../scripts/rewards/web3/verify-current-network.ts | 6 +++--- 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/globals.d.ts b/globals.d.ts index 1a9ff4d3..475dd38f 100644 --- a/globals.d.ts +++ b/globals.d.ts @@ -1,7 +1,8 @@ import { Ethereum } from "ethereum-protocol"; declare global { - interface Window { - ethereum: Ethereum; - } + const ethereum: Ethereum; + // interface Window { + // ethereum: Ethereum; + // } } diff --git a/static/scripts/rewards/ButtonController.ts b/static/scripts/rewards/ButtonController.ts index 5f7372ef..8fea529d 100644 --- a/static/scripts/rewards/ButtonController.ts +++ b/static/scripts/rewards/ButtonController.ts @@ -11,10 +11,10 @@ export class ButtonController { } public showLoader(): void { - if (window.ethereum) { + if (ethereum) { this._controls.setAttribute(LOADER, "true"); } else { - throw new Error("Can not show loader without `window.ethereum`"); + throw new Error("Can not show loader without `ethereum`"); } } @@ -27,10 +27,10 @@ export class ButtonController { } public showMakeClaim(): void { - if (window.ethereum) { + if (ethereum) { this._controls.setAttribute(MAKE_CLAIM, "true"); } else { - throw new Error("Can not show make claim button without `window.ethereum`"); + throw new Error("Can not show make claim button without `ethereum`"); } } @@ -47,10 +47,10 @@ export class ButtonController { } public showInvalidator(): void { - if (window.ethereum) { + if (ethereum) { this._controls.setAttribute(INVALIDATOR, "true"); } else { - throw new Error("Can not show invalidator button without `window.ethereum`"); + throw new Error("Can not show invalidator button without `ethereum`"); } } diff --git a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts index 99c1cca8..fe499447 100644 --- a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts +++ b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts @@ -32,11 +32,11 @@ export async function readClaimDataFromUrl(app: AppState) { app.claims = decodeClaimData(base64encodedTxData).flat(); app.claimTxs = await getClaimedTxs(app); app.provider = await useFastestRpc(app); - if (window.ethereum) { + if (ethereum) { try { app.signer = await connectWallet(); } catch (error) { - window.ethereum.on("accountsChanged", () => { + ethereum.on("accountsChanged", () => { checkRenderMakeClaimControl(app).catch(console.error); checkRenderInvalidatePermitAdminControl(app).catch(console.error); }); diff --git a/static/scripts/rewards/render-transaction/render-transaction.ts b/static/scripts/rewards/render-transaction/render-transaction.ts index b3a69a94..2bbc0346 100644 --- a/static/scripts/rewards/render-transaction/render-transaction.ts +++ b/static/scripts/rewards/render-transaction/render-transaction.ts @@ -53,7 +53,7 @@ export async function renderTransaction(): Promise { if (app.claimTxs[app.reward.permit.nonce.toString()] !== undefined) { buttonController.showViewClaim(); viewClaimButton.addEventListener("click", () => window.open(`${app.currentExplorerUrl}/tx/${app.claimTxs[app.reward.permit.nonce.toString()]}`)); - } else if (window.ethereum) { + } else if (ethereum) { // requires wallet connection to claim buttonController.showMakeClaim(); getMakeClaimButton().addEventListener("click", claimErc20PermitHandlerWrapper(app)); diff --git a/static/scripts/rewards/web3/connect-wallet.ts b/static/scripts/rewards/web3/connect-wallet.ts index 81a29cb7..fcfae3df 100644 --- a/static/scripts/rewards/web3/connect-wallet.ts +++ b/static/scripts/rewards/web3/connect-wallet.ts @@ -4,7 +4,7 @@ import { buttonController, toaster } from "../toaster"; export async function connectWallet(): Promise { try { - const wallet = new ethers.providers.Web3Provider(window.ethereum); + const wallet = new ethers.providers.Web3Provider(ethereum); await wallet.send("eth_requestAccounts", []); diff --git a/static/scripts/rewards/web3/verify-current-network.ts b/static/scripts/rewards/web3/verify-current-network.ts index 8d1e530d..1f9b7a4e 100644 --- a/static/scripts/rewards/web3/verify-current-network.ts +++ b/static/scripts/rewards/web3/verify-current-network.ts @@ -5,18 +5,18 @@ import { notOnCorrectNetwork } from "./not-on-correct-network"; // verifyCurrentNetwork checks if the user is on the correct network and displays an error if not export async function verifyCurrentNetwork(desiredNetworkId: number) { - if (!window.ethereum) { + if (!ethereum) { buttonController.hideAll(); return; } - const web3provider = new ethers.providers.Web3Provider(window.ethereum); + const web3provider = new ethers.providers.Web3Provider(ethereum); const network = await web3provider.getNetwork(); const currentNetworkId = network.chainId; // watch for network changes - window.ethereum.on("chainChanged", (newNetworkId: T | string) => handleIfOnCorrectNetwork(parseInt(newNetworkId as string, 16), desiredNetworkId)); + ethereum.on("chainChanged", (newNetworkId: T | string) => handleIfOnCorrectNetwork(parseInt(newNetworkId as string, 16), desiredNetworkId)); // if its not on ethereum mainnet, gnosis, or goerli, display error notOnCorrectNetwork(currentNetworkId, desiredNetworkId, web3provider); From a61642364f94e8f4d73ac9edb42d0483498ce672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Wed, 20 Mar 2024 21:21:25 +0900 Subject: [PATCH 09/10] fix: ethereum accounts changed handler --- .../render-transaction/read-claim-data-from-url.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts index fe499447..19bf9429 100644 --- a/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts +++ b/static/scripts/rewards/render-transaction/read-claim-data-from-url.ts @@ -36,11 +36,12 @@ export async function readClaimDataFromUrl(app: AppState) { try { app.signer = await connectWallet(); } catch (error) { - ethereum.on("accountsChanged", () => { - checkRenderMakeClaimControl(app).catch(console.error); - checkRenderInvalidatePermitAdminControl(app).catch(console.error); - }); + /* empty */ } + ethereum.on("accountsChanged", () => { + checkRenderMakeClaimControl(app).catch(console.error); + checkRenderInvalidatePermitAdminControl(app).catch(console.error); + }); } else { buttonController.hideAll(); toaster.create("info", "Please use a web3 enabled browser to collect this reward."); From 98aed2e9c82f9a459ef658373940c8de651753fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A2=E3=83=AC=E3=82=AF=E3=82=B5=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=83=BC=2Eeth?= Date: Wed, 20 Mar 2024 21:22:14 +0900 Subject: [PATCH 10/10] chore: clean commented out code --- globals.d.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/globals.d.ts b/globals.d.ts index 475dd38f..e19d1266 100644 --- a/globals.d.ts +++ b/globals.d.ts @@ -2,7 +2,4 @@ import { Ethereum } from "ethereum-protocol"; declare global { const ethereum: Ethereum; - // interface Window { - // ethereum: Ethereum; - // } }