on master help sign in
Merge pull request #1107 from urbit/wcconnect-v2-migration

WalletConnect: migrate to v2

commitc1a90c8d16d5869cc10835f5e3254deeec1cda11 authorPyry Kovanen <pkova@users.noreply.github.com> dateSat 29 Jul 2023, 14:33 (3 years ago) parentd49bb35c400b5c
41 files changed+2394−855
.env+1 DEVELOPMENT.md+6 package-lock.json+1855−555 package.json+5−3 src/components/L2/Dropdowns/FeeDropdown.tsx+11−7 src/components/L2/InviteConverter.tsx+1−1 src/lib/WalletConnect.ts+11−3 src/lib/authToken.ts+6−7 src/lib/getSuggestedGasPrice.js+41−28 src/lib/metamask.ts+6−5 src/lib/reticket.js+1−3 src/lib/txn.ts+39−20 src/lib/types/ITxData.ts+9 src/lib/types/L2Transaction.ts+3−1 src/lib/types/Point.ts+4−1 src/lib/useGasPrice.js+6−4 src/lib/useKeyfileGenerator.ts+1−1 src/lib/useReticketL2Spawn.ts+5−3 src/lib/useRoller.ts+92−36 src/lib/useWalletConnect.ts+169−107 src/lib/utils/hex.ts+11 src/lib/utils/roller.ts+29−10 src/lib/walletgen.ts+10−2 src/store/network.jsx+6−2 src/store/pointCache.jsx+6−7 src/store/pointCursor.jsx+1−1 src/store/wallet.jsx+1−1 src/views/Activate/ActivateView.tsx+1−1 src/views/Activate/CodeExpired.tsx−2 src/views/Activate/MasterKeyCopy.tsx+1−5 src/views/Activate/MasterKeyTransfer.tsx+4−2 src/views/Activate/useActivateFlowState.js+3−1 src/views/Disclaimer.jsx+1−2 src/views/Invite/useInvites.ts+13−8 src/views/Login/LoginSelector.tsx+2−2 src/views/Login/Mnemonic.tsx+1 src/views/Ops/Ops.tsx+21−17 src/views/Point/Point.tsx+3−2 src/views/UrbitID/Home.tsx+3−3 src/views/UrbitID/ResetKeys/ResetExecute.tsx+3−1 src/worker/index.ts+2−1
.env+1
@@ -1 +1,2 @@
11VITE_INFURA_ENDPOINT='2599df54929b47099bda360958d75aaf'
2+VITE_WALLET_CONNECT_PROJECT_ID=''
DEVELOPMENT.md+6
@@ -94,6 +94,11 @@ websocket. Do this by going to `about:config` and setting the
9494Additionally you need to run with the `HTTPS` environment variable set to
9595`true`. Note that `npm run pilot` will handle this automatically.
9696
97+## WalletConnect
98+
99+To get WalletConnect working you need to set the `VITE_WALLET_CONNECT_PROJECT_ID`
100+environment variable with a project id that you can get at https://cloud.walletconnect.com/sign-in
101+
97102## Testing
98103
99104Automated tests for critical user journeys are coming Soon™️. Until then, here are several manual test cases to consider when making changes. It's worth noting that what to test depends on what the changes are. These test cases have limited utility when you are making a small change on a single screen; however, they are certainly a good idea when touching critical pieces such as transaction sending or secrets derivation.
@@ -140,6 +145,7 @@ const baseUrl = 'https://gas-tank.urbit.org:3011';
1401451. On the Bridge landing page, click the small "Activate" link
1411462. Paste the Invite code from the previous test case, and click "Go"
1421473. Download the Passport file, then use the enclosed Master Ticket and ID to login to Bridge again
148+
143149### Known Issues
144150
145151When testing the invite acceptance and login flow on Goerli, some of the Azimuth API calls will fail (e.g., `getConditional`).
package-lock.json+1855−555
@@ -30,8 +30,10 @@
3030 "@types/styled-system__css": "^5.0.15",
3131 "@urbit/nockjs": "^0.0.1",
3232 "@urbit/roller-api": "^0.1.15",
33− "@walletconnect/client": "^1.8.0",
34− "@walletconnect/qrcode-modal": "^1.8.0",
33+ "@walletconnect/encoding": "^1.0.2",
34+ "@walletconnect/sign-client": "^2.7.6",
35+ "@walletconnect/types": "^2.7.6",
36+ "@web3modal/standalone": "^2.4.1",
3537 "@welldone-software/why-did-you-render": "^3.2.3",
3638 "agent-base": "^6.0.2",
3739 "async-retry": "^1.2.3",
@@ -3217,6 +3219,19 @@
32173219 "version": "5.50.0",
32183220 "license": "Apache-2.0"
32193221 },
3222+ "node_modules/@lit-labs/ssr-dom-shim": {
3223+ "version": "1.1.1",
3224+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz",
3225+ "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ=="
3226+ },
3227+ "node_modules/@lit/reactive-element": {
3228+ "version": "1.6.2",
3229+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.2.tgz",
3230+ "integrity": "sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA==",
3231+ "dependencies": {
3232+ "@lit-labs/ssr-dom-shim": "^1.0.0"
3233+ }
3234+ },
32203235 "node_modules/@metamask/detect-provider": {
32213236 "version": "1.2.0",
32223237 "license": "ISC",
@@ -3224,6 +3239,117 @@
32243239 "node": ">= 10"
32253240 }
32263241 },
3242+ "node_modules/@motionone/animation": {
3243+ "version": "10.15.1",
3244+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz",
3245+ "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==",
3246+ "dependencies": {
3247+ "@motionone/easing": "^10.15.1",
3248+ "@motionone/types": "^10.15.1",
3249+ "@motionone/utils": "^10.15.1",
3250+ "tslib": "^2.3.1"
3251+ }
3252+ },
3253+ "node_modules/@motionone/animation/node_modules/tslib": {
3254+ "version": "2.6.0",
3255+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
3256+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
3257+ },
3258+ "node_modules/@motionone/dom": {
3259+ "version": "10.16.2",
3260+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.16.2.tgz",
3261+ "integrity": "sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg==",
3262+ "dependencies": {
3263+ "@motionone/animation": "^10.15.1",
3264+ "@motionone/generators": "^10.15.1",
3265+ "@motionone/types": "^10.15.1",
3266+ "@motionone/utils": "^10.15.1",
3267+ "hey-listen": "^1.0.8",
3268+ "tslib": "^2.3.1"
3269+ }
3270+ },
3271+ "node_modules/@motionone/dom/node_modules/tslib": {
3272+ "version": "2.6.0",
3273+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
3274+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
3275+ },
3276+ "node_modules/@motionone/easing": {
3277+ "version": "10.15.1",
3278+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz",
3279+ "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==",
3280+ "dependencies": {
3281+ "@motionone/utils": "^10.15.1",
3282+ "tslib": "^2.3.1"
3283+ }
3284+ },
3285+ "node_modules/@motionone/easing/node_modules/tslib": {
3286+ "version": "2.6.0",
3287+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
3288+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
3289+ },
3290+ "node_modules/@motionone/generators": {
3291+ "version": "10.15.1",
3292+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz",
3293+ "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==",
3294+ "dependencies": {
3295+ "@motionone/types": "^10.15.1",
3296+ "@motionone/utils": "^10.15.1",
3297+ "tslib": "^2.3.1"
3298+ }
3299+ },
3300+ "node_modules/@motionone/generators/node_modules/tslib": {
3301+ "version": "2.6.0",
3302+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
3303+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
3304+ },
3305+ "node_modules/@motionone/svelte": {
3306+ "version": "10.16.2",
3307+ "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.2.tgz",
3308+ "integrity": "sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==",
3309+ "dependencies": {
3310+ "@motionone/dom": "^10.16.2",
3311+ "tslib": "^2.3.1"
3312+ }
3313+ },
3314+ "node_modules/@motionone/svelte/node_modules/tslib": {
3315+ "version": "2.6.0",
3316+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
3317+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
3318+ },
3319+ "node_modules/@motionone/types": {
3320+ "version": "10.15.1",
3321+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz",
3322+ "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA=="
3323+ },
3324+ "node_modules/@motionone/utils": {
3325+ "version": "10.15.1",
3326+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz",
3327+ "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==",
3328+ "dependencies": {
3329+ "@motionone/types": "^10.15.1",
3330+ "hey-listen": "^1.0.8",
3331+ "tslib": "^2.3.1"
3332+ }
3333+ },
3334+ "node_modules/@motionone/utils/node_modules/tslib": {
3335+ "version": "2.6.0",
3336+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
3337+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
3338+ },
3339+ "node_modules/@motionone/vue": {
3340+ "version": "10.16.2",
3341+ "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.2.tgz",
3342+ "integrity": "sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==",
3343+ "dependencies": {
3344+ "@motionone/dom": "^10.16.2",
3345+ "tslib": "^2.3.1"
3346+ }
3347+ },
3348+ "node_modules/@motionone/vue/node_modules/tslib": {
3349+ "version": "2.6.0",
3350+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
3351+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
3352+ },
32273353 "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
32283354 "version": "5.1.1-v1",
32293355 "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
@@ -3636,6 +3762,152 @@
36363762 "@scure/base": "~1.1.0"
36373763 }
36383764 },
3765+ "node_modules/@stablelib/aead": {
3766+ "version": "1.0.1",
3767+ "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
3768+ "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg=="
3769+ },
3770+ "node_modules/@stablelib/binary": {
3771+ "version": "1.0.1",
3772+ "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
3773+ "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
3774+ "dependencies": {
3775+ "@stablelib/int": "^1.0.1"
3776+ }
3777+ },
3778+ "node_modules/@stablelib/bytes": {
3779+ "version": "1.0.1",
3780+ "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
3781+ "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
3782+ },
3783+ "node_modules/@stablelib/chacha": {
3784+ "version": "1.0.1",
3785+ "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
3786+ "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==",
3787+ "dependencies": {
3788+ "@stablelib/binary": "^1.0.1",
3789+ "@stablelib/wipe": "^1.0.1"
3790+ }
3791+ },
3792+ "node_modules/@stablelib/chacha20poly1305": {
3793+ "version": "1.0.1",
3794+ "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
3795+ "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==",
3796+ "dependencies": {
3797+ "@stablelib/aead": "^1.0.1",
3798+ "@stablelib/binary": "^1.0.1",
3799+ "@stablelib/chacha": "^1.0.1",
3800+ "@stablelib/constant-time": "^1.0.1",
3801+ "@stablelib/poly1305": "^1.0.1",
3802+ "@stablelib/wipe": "^1.0.1"
3803+ }
3804+ },
3805+ "node_modules/@stablelib/constant-time": {
3806+ "version": "1.0.1",
3807+ "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
3808+ "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
3809+ },
3810+ "node_modules/@stablelib/ed25519": {
3811+ "version": "1.0.3",
3812+ "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz",
3813+ "integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==",
3814+ "dependencies": {
3815+ "@stablelib/random": "^1.0.2",
3816+ "@stablelib/sha512": "^1.0.1",
3817+ "@stablelib/wipe": "^1.0.1"
3818+ }
3819+ },
3820+ "node_modules/@stablelib/hash": {
3821+ "version": "1.0.1",
3822+ "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
3823+ "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
3824+ },
3825+ "node_modules/@stablelib/hkdf": {
3826+ "version": "1.0.1",
3827+ "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz",
3828+ "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==",
3829+ "dependencies": {
3830+ "@stablelib/hash": "^1.0.1",
3831+ "@stablelib/hmac": "^1.0.1",
3832+ "@stablelib/wipe": "^1.0.1"
3833+ }
3834+ },
3835+ "node_modules/@stablelib/hmac": {
3836+ "version": "1.0.1",
3837+ "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
3838+ "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==",
3839+ "dependencies": {
3840+ "@stablelib/constant-time": "^1.0.1",
3841+ "@stablelib/hash": "^1.0.1",
3842+ "@stablelib/wipe": "^1.0.1"
3843+ }
3844+ },
3845+ "node_modules/@stablelib/int": {
3846+ "version": "1.0.1",
3847+ "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
3848+ "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
3849+ },
3850+ "node_modules/@stablelib/keyagreement": {
3851+ "version": "1.0.1",
3852+ "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
3853+ "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
3854+ "dependencies": {
3855+ "@stablelib/bytes": "^1.0.1"
3856+ }
3857+ },
3858+ "node_modules/@stablelib/poly1305": {
3859+ "version": "1.0.1",
3860+ "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
3861+ "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
3862+ "dependencies": {
3863+ "@stablelib/constant-time": "^1.0.1",
3864+ "@stablelib/wipe": "^1.0.1"
3865+ }
3866+ },
3867+ "node_modules/@stablelib/random": {
3868+ "version": "1.0.2",
3869+ "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
3870+ "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==",
3871+ "dependencies": {
3872+ "@stablelib/binary": "^1.0.1",
3873+ "@stablelib/wipe": "^1.0.1"
3874+ }
3875+ },
3876+ "node_modules/@stablelib/sha256": {
3877+ "version": "1.0.1",
3878+ "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
3879+ "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==",
3880+ "dependencies": {
3881+ "@stablelib/binary": "^1.0.1",
3882+ "@stablelib/hash": "^1.0.1",
3883+ "@stablelib/wipe": "^1.0.1"
3884+ }
3885+ },
3886+ "node_modules/@stablelib/sha512": {
3887+ "version": "1.0.1",
3888+ "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
3889+ "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==",
3890+ "dependencies": {
3891+ "@stablelib/binary": "^1.0.1",
3892+ "@stablelib/hash": "^1.0.1",
3893+ "@stablelib/wipe": "^1.0.1"
3894+ }
3895+ },
3896+ "node_modules/@stablelib/wipe": {
3897+ "version": "1.0.1",
3898+ "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
3899+ "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
3900+ },
3901+ "node_modules/@stablelib/x25519": {
3902+ "version": "1.0.3",
3903+ "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
3904+ "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==",
3905+ "dependencies": {
3906+ "@stablelib/keyagreement": "^1.0.1",
3907+ "@stablelib/random": "^1.0.2",
3908+ "@stablelib/wipe": "^1.0.1"
3909+ }
3910+ },
36393911 "node_modules/@styled-system/background": {
36403912 "version": "5.1.2",
36413913 "license": "MIT",
@@ -4478,6 +4750,11 @@
44784750 "@types/jest": "*"
44794751 }
44804752 },
4753+ "node_modules/@types/trusted-types": {
4754+ "version": "2.0.3",
4755+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz",
4756+ "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g=="
4757+ },
44814758 "node_modules/@types/warning": {
44824759 "version": "3.0.0",
44834760 "license": "MIT"
@@ -4927,178 +5204,497 @@
49275204 "node": ">=0.10.0"
49285205 }
49295206 },
4930− "node_modules/@walletconnect/browser-utils": {
4931− "version": "1.8.0",
4932− "license": "Apache-2.0",
5207+ "node_modules/@walletconnect/encoding": {
5208+ "version": "1.0.2",
5209+ "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.2.tgz",
5210+ "integrity": "sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==",
49335211 "dependencies": {
4934− "@walletconnect/safe-json": "1.0.0",
4935− "@walletconnect/types": "^1.8.0",
4936− "@walletconnect/window-getters": "1.0.0",
4937− "@walletconnect/window-metadata": "1.0.0",
4938− "detect-browser": "5.2.0"
5212+ "is-typedarray": "1.0.0",
5213+ "tslib": "1.14.1",
5214+ "typedarray-to-buffer": "3.1.5"
49395215 }
49405216 },
4941− "node_modules/@walletconnect/client": {
4942− "version": "1.8.0",
4943− "license": "Apache-2.0",
5217+ "node_modules/@walletconnect/environment": {
5218+ "version": "1.0.1",
5219+ "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz",
5220+ "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==",
49445221 "dependencies": {
4945− "@walletconnect/core": "^1.8.0",
4946− "@walletconnect/iso-crypto": "^1.8.0",
4947− "@walletconnect/types": "^1.8.0",
4948− "@walletconnect/utils": "^1.8.0"
5222+ "tslib": "1.14.1"
49495223 }
49505224 },
4951− "node_modules/@walletconnect/core": {
4952− "version": "1.8.0",
4953− "license": "Apache-2.0",
5225+ "node_modules/@walletconnect/events": {
5226+ "version": "1.0.1",
5227+ "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz",
5228+ "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==",
5229+ "dependencies": {
5230+ "keyvaluestorage-interface": "^1.0.0",
5231+ "tslib": "1.14.1"
5232+ }
5233+ },
5234+ "node_modules/@walletconnect/heartbeat": {
5235+ "version": "1.2.1",
5236+ "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz",
5237+ "integrity": "sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==",
49545238 "dependencies": {
4955− "@walletconnect/socket-transport": "^1.8.0",
4956− "@walletconnect/types": "^1.8.0",
4957− "@walletconnect/utils": "^1.8.0"
5239+ "@walletconnect/events": "^1.0.1",
5240+ "@walletconnect/time": "^1.0.2",
5241+ "tslib": "1.14.1"
49585242 }
49595243 },
4960− "node_modules/@walletconnect/crypto": {
5244+ "node_modules/@walletconnect/jsonrpc-provider": {
5245+ "version": "1.0.13",
5246+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz",
5247+ "integrity": "sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==",
5248+ "dependencies": {
5249+ "@walletconnect/jsonrpc-utils": "^1.0.8",
5250+ "@walletconnect/safe-json": "^1.0.2",
5251+ "tslib": "1.14.1"
5252+ }
5253+ },
5254+ "node_modules/@walletconnect/jsonrpc-provider/node_modules/@walletconnect/safe-json": {
49615255 "version": "1.0.2",
4962− "license": "MIT",
5256+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
5257+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
49635258 "dependencies": {
4964− "@walletconnect/encoding": "^1.0.1",
4965− "@walletconnect/environment": "^1.0.0",
4966− "@walletconnect/randombytes": "^1.0.2",
4967− "aes-js": "^3.1.2",
4968− "hash.js": "^1.1.7"
5259+ "tslib": "1.14.1"
49695260 }
49705261 },
4971− "node_modules/@walletconnect/crypto/node_modules/aes-js": {
4972− "version": "3.1.2",
4973− "license": "MIT"
5262+ "node_modules/@walletconnect/jsonrpc-types": {
5263+ "version": "1.0.3",
5264+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz",
5265+ "integrity": "sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==",
5266+ "dependencies": {
5267+ "keyvaluestorage-interface": "^1.0.0",
5268+ "tslib": "1.14.1"
5269+ }
49745270 },
4975− "node_modules/@walletconnect/encoding": {
4976− "version": "1.0.1",
4977− "license": "MIT",
5271+ "node_modules/@walletconnect/jsonrpc-utils": {
5272+ "version": "1.0.8",
5273+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz",
5274+ "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==",
49785275 "dependencies": {
4979− "is-typedarray": "1.0.0",
4980− "typedarray-to-buffer": "3.1.5"
5276+ "@walletconnect/environment": "^1.0.1",
5277+ "@walletconnect/jsonrpc-types": "^1.0.3",
5278+ "tslib": "1.14.1"
49815279 }
49825280 },
4983− "node_modules/@walletconnect/environment": {
4984− "version": "1.0.0",
4985− "license": "MIT"
5281+ "node_modules/@walletconnect/jsonrpc-ws-connection": {
5282+ "version": "1.0.12",
5283+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.12.tgz",
5284+ "integrity": "sha512-HAcadga3Qjt1Cqy+qXEW6zjaCs8uJGdGQrqltzl3OjiK4epGZRdvSzTe63P+t/3z+D2wG+ffEPn0GVcDozmN1w==",
5285+ "dependencies": {
5286+ "@walletconnect/jsonrpc-utils": "^1.0.6",
5287+ "@walletconnect/safe-json": "^1.0.2",
5288+ "events": "^3.3.0",
5289+ "tslib": "1.14.1",
5290+ "ws": "^7.5.1"
5291+ }
49865292 },
4987− "node_modules/@walletconnect/iso-crypto": {
4988− "version": "1.8.0",
4989− "license": "Apache-2.0",
5293+ "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/@walletconnect/safe-json": {
5294+ "version": "1.0.2",
5295+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
5296+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
49905297 "dependencies": {
4991− "@walletconnect/crypto": "^1.0.2",
4992− "@walletconnect/types": "^1.8.0",
4993− "@walletconnect/utils": "^1.8.0"
5298+ "tslib": "1.14.1"
49945299 }
49955300 },
4996− "node_modules/@walletconnect/jsonrpc-types": {
4997− "version": "1.0.1",
4998− "license": "MIT",
5301+ "node_modules/@walletconnect/logger": {
5302+ "version": "2.0.1",
5303+ "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.0.1.tgz",
5304+ "integrity": "sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==",
49995305 "dependencies": {
5000− "keyvaluestorage-interface": "^1.0.0"
5306+ "pino": "7.11.0",
5307+ "tslib": "1.14.1"
50015308 }
50025309 },
5003− "node_modules/@walletconnect/jsonrpc-utils": {
5004− "version": "1.0.3",
5005− "license": "MIT",
5310+ "node_modules/@walletconnect/relay-api": {
5311+ "version": "1.0.9",
5312+ "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.9.tgz",
5313+ "integrity": "sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==",
50065314 "dependencies": {
5007− "@walletconnect/environment": "^1.0.0",
5008− "@walletconnect/jsonrpc-types": "^1.0.1"
5315+ "@walletconnect/jsonrpc-types": "^1.0.2",
5316+ "tslib": "1.14.1"
50095317 }
50105318 },
5011− "node_modules/@walletconnect/mobile-registry": {
5012− "version": "1.4.0",
5013− "license": "MIT"
5319+ "node_modules/@walletconnect/relay-auth": {
5320+ "version": "1.0.4",
5321+ "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz",
5322+ "integrity": "sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==",
5323+ "dependencies": {
5324+ "@stablelib/ed25519": "^1.0.2",
5325+ "@stablelib/random": "^1.0.1",
5326+ "@walletconnect/safe-json": "^1.0.1",
5327+ "@walletconnect/time": "^1.0.2",
5328+ "tslib": "1.14.1",
5329+ "uint8arrays": "^3.0.0"
5330+ }
50145331 },
5015− "node_modules/@walletconnect/qrcode-modal": {
5016− "version": "1.8.0",
5017− "license": "Apache-2.0",
5332+ "node_modules/@walletconnect/relay-auth/node_modules/@walletconnect/safe-json": {
5333+ "version": "1.0.2",
5334+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
5335+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
50185336 "dependencies": {
5019− "@walletconnect/browser-utils": "^1.8.0",
5020− "@walletconnect/mobile-registry": "^1.4.0",
5021− "@walletconnect/types": "^1.8.0",
5022− "copy-to-clipboard": "^3.3.1",
5023− "preact": "10.4.1",
5024− "qrcode": "1.4.4"
5337+ "tslib": "1.14.1"
5338+ }
5339+ },
5340+ "node_modules/@walletconnect/sign-client": {
5341+ "version": "2.9.0",
5342+ "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.9.0.tgz",
5343+ "integrity": "sha512-mEKc4LlLMebCe45qzqh+MX4ilQK4kOEBzLY6YJpG8EhyT45eX4JMNA7qQoYa9MRMaaVb/7USJcc4e3ZrjZvQmA==",
5344+ "dependencies": {
5345+ "@walletconnect/core": "2.9.0",
5346+ "@walletconnect/events": "^1.0.1",
5347+ "@walletconnect/heartbeat": "1.2.1",
5348+ "@walletconnect/jsonrpc-utils": "1.0.8",
5349+ "@walletconnect/logger": "^2.0.1",
5350+ "@walletconnect/time": "^1.0.2",
5351+ "@walletconnect/types": "2.9.0",
5352+ "@walletconnect/utils": "2.9.0",
5353+ "events": "^3.3.0"
50255354 }
50265355 },
5027− "node_modules/@walletconnect/randombytes": {
5356+ "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/core": {
5357+ "version": "2.9.0",
5358+ "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.9.0.tgz",
5359+ "integrity": "sha512-MZYJghS9YCvGe32UOgDj0mCasaOoGHQaYXWeQblXE/xb8HuaM6kAWhjIQN9P+MNp5QP134BHP5olQostcCotXQ==",
5360+ "dependencies": {
5361+ "@walletconnect/heartbeat": "1.2.1",
5362+ "@walletconnect/jsonrpc-provider": "1.0.13",
5363+ "@walletconnect/jsonrpc-types": "1.0.3",
5364+ "@walletconnect/jsonrpc-utils": "1.0.8",
5365+ "@walletconnect/jsonrpc-ws-connection": "1.0.12",
5366+ "@walletconnect/keyvaluestorage": "^1.0.2",
5367+ "@walletconnect/logger": "^2.0.1",
5368+ "@walletconnect/relay-api": "^1.0.9",
5369+ "@walletconnect/relay-auth": "^1.0.4",
5370+ "@walletconnect/safe-json": "^1.0.2",
5371+ "@walletconnect/time": "^1.0.2",
5372+ "@walletconnect/types": "2.9.0",
5373+ "@walletconnect/utils": "2.9.0",
5374+ "events": "^3.3.0",
5375+ "lodash.isequal": "4.5.0",
5376+ "uint8arrays": "^3.1.0"
5377+ }
5378+ },
5379+ "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/keyvaluestorage": {
50285380 "version": "1.0.2",
5029− "license": "MIT",
5381+ "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz",
5382+ "integrity": "sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==",
50305383 "dependencies": {
5031− "@walletconnect/encoding": "^1.0.1",
5032− "@walletconnect/environment": "^1.0.0",
5033− "randombytes": "^2.1.0"
5384+ "safe-json-utils": "^1.1.1",
5385+ "tslib": "1.14.1"
5386+ },
5387+ "peerDependencies": {
5388+ "@react-native-async-storage/async-storage": "1.x",
5389+ "lokijs": "1.x"
5390+ },
5391+ "peerDependenciesMeta": {
5392+ "@react-native-async-storage/async-storage": {
5393+ "optional": true
5394+ },
5395+ "lokijs": {
5396+ "optional": true
5397+ }
50345398 }
50355399 },
5036− "node_modules/@walletconnect/safe-json": {
5037− "version": "1.0.0",
5038− "license": "MIT"
5400+ "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/safe-json": {
5401+ "version": "1.0.2",
5402+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
5403+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
5404+ "dependencies": {
5405+ "tslib": "1.14.1"
5406+ }
50395407 },
5040− "node_modules/@walletconnect/socket-transport": {
5041− "version": "1.8.0",
5042− "license": "Apache-2.0",
5408+ "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/utils": {
5409+ "version": "2.9.0",
5410+ "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.9.0.tgz",
5411+ "integrity": "sha512-7Tu3m6dZL84KofrNBcblsgpSqU2vdo9ImLD7zWimLXERVGNQ8smXG+gmhQYblebIBhsPzjy9N38YMC3nPlfQNw==",
5412+ "dependencies": {
5413+ "@stablelib/chacha20poly1305": "1.0.1",
5414+ "@stablelib/hkdf": "1.0.1",
5415+ "@stablelib/random": "^1.0.2",
5416+ "@stablelib/sha256": "1.0.1",
5417+ "@stablelib/x25519": "^1.0.3",
5418+ "@walletconnect/relay-api": "^1.0.9",
5419+ "@walletconnect/safe-json": "^1.0.2",
5420+ "@walletconnect/time": "^1.0.2",
5421+ "@walletconnect/types": "2.9.0",
5422+ "@walletconnect/window-getters": "^1.0.1",
5423+ "@walletconnect/window-metadata": "^1.0.1",
5424+ "detect-browser": "5.3.0",
5425+ "query-string": "7.1.3",
5426+ "uint8arrays": "^3.1.0"
5427+ }
5428+ },
5429+ "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-getters": {
5430+ "version": "1.0.1",
5431+ "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz",
5432+ "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==",
50435433 "dependencies": {
5044− "@walletconnect/types": "^1.8.0",
5045− "@walletconnect/utils": "^1.8.0",
5046− "ws": "7.5.3"
5434+ "tslib": "1.14.1"
50475435 }
50485436 },
5049− "node_modules/@walletconnect/socket-transport/node_modules/ws": {
5050− "version": "7.5.3",
5051− "license": "MIT",
5437+ "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-metadata": {
5438+ "version": "1.0.1",
5439+ "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz",
5440+ "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==",
5441+ "dependencies": {
5442+ "@walletconnect/window-getters": "^1.0.1",
5443+ "tslib": "1.14.1"
5444+ }
5445+ },
5446+ "node_modules/@walletconnect/sign-client/node_modules/detect-browser": {
5447+ "version": "5.3.0",
5448+ "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
5449+ "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w=="
5450+ },
5451+ "node_modules/@walletconnect/sign-client/node_modules/query-string": {
5452+ "version": "7.1.3",
5453+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
5454+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
5455+ "dependencies": {
5456+ "decode-uri-component": "^0.2.2",
5457+ "filter-obj": "^1.1.0",
5458+ "split-on-first": "^1.0.0",
5459+ "strict-uri-encode": "^2.0.0"
5460+ },
50525461 "engines": {
5053− "node": ">=8.3.0"
5462+ "node": ">=6"
5463+ },
5464+ "funding": {
5465+ "url": "https://github.com/sponsors/sindresorhus"
5466+ }
5467+ },
5468+ "node_modules/@walletconnect/time": {
5469+ "version": "1.0.2",
5470+ "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz",
5471+ "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==",
5472+ "dependencies": {
5473+ "tslib": "1.14.1"
5474+ }
5475+ },
5476+ "node_modules/@walletconnect/types": {
5477+ "version": "2.9.0",
5478+ "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.9.0.tgz",
5479+ "integrity": "sha512-ORopsMfSRvUYqtjKKd6scfg8o4/aGebipLxx92AuuUgMTERSU6cGmIrK6rdLu7W6FBJkmngPLEGc9mRqAb9Lug==",
5480+ "dependencies": {
5481+ "@walletconnect/events": "^1.0.1",
5482+ "@walletconnect/heartbeat": "1.2.1",
5483+ "@walletconnect/jsonrpc-types": "1.0.3",
5484+ "@walletconnect/keyvaluestorage": "^1.0.2",
5485+ "@walletconnect/logger": "^2.0.1",
5486+ "events": "^3.3.0"
5487+ }
5488+ },
5489+ "node_modules/@walletconnect/types/node_modules/@walletconnect/keyvaluestorage": {
5490+ "version": "1.0.2",
5491+ "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz",
5492+ "integrity": "sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==",
5493+ "dependencies": {
5494+ "safe-json-utils": "^1.1.1",
5495+ "tslib": "1.14.1"
50545496 },
50555497 "peerDependencies": {
5056− "bufferutil": "^4.0.1",
5057− "utf-8-validate": "^5.0.2"
5498+ "@react-native-async-storage/async-storage": "1.x",
5499+ "lokijs": "1.x"
50585500 },
50595501 "peerDependenciesMeta": {
5060− "bufferutil": {
5502+ "@react-native-async-storage/async-storage": {
50615503 "optional": true
50625504 },
5063− "utf-8-validate": {
5505+ "lokijs": {
50645506 "optional": true
50655507 }
50665508 }
50675509 },
5068− "node_modules/@walletconnect/types": {
5069− "version": "1.8.0",
5070− "license": "Apache-2.0"
5510+ "node_modules/@web3modal/core": {
5511+ "version": "2.4.3",
5512+ "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-2.4.3.tgz",
5513+ "integrity": "sha512-7Z/sDe9RIYQ2k9ITcxgEa/u7FvlI76vcVVZn9UY4ISivefqrH4JAS3GX4JmVNUUlovwuiZdyqBv4llAQOMK6Rg==",
5514+ "dependencies": {
5515+ "buffer": "6.0.3",
5516+ "valtio": "1.10.5"
5517+ }
50715518 },
5072− "node_modules/@walletconnect/utils": {
5073− "version": "1.8.0",
5074− "license": "Apache-2.0",
5519+ "node_modules/@web3modal/standalone": {
5520+ "version": "2.4.3",
5521+ "resolved": "https://registry.npmjs.org/@web3modal/standalone/-/standalone-2.4.3.tgz",
5522+ "integrity": "sha512-5ATXBoa4GGm+TIUSsKWsfWCJunv1XevOizpgTFhqyeGgRDmWhqsz9UIPzH/1mk+g0iJ/xqMKs5F6v9D2QeKxag==",
5523+ "deprecated": "This package has been deprecated in favor of @walletconnect/modal. Please read more at https://docs.walletconnect.com",
50755524 "dependencies": {
5076− "@walletconnect/browser-utils": "^1.8.0",
5077− "@walletconnect/encoding": "^1.0.1",
5078− "@walletconnect/jsonrpc-utils": "^1.0.3",
5079− "@walletconnect/types": "^1.8.0",
5080− "bn.js": "4.11.8",
5081− "js-sha3": "0.8.0",
5082− "query-string": "6.13.5"
5525+ "@web3modal/core": "2.4.3",
5526+ "@web3modal/ui": "2.4.3"
50835527 }
50845528 },
5085− "node_modules/@walletconnect/utils/node_modules/bn.js": {
5086− "version": "4.11.8",
5087− "license": "MIT"
5529+ "node_modules/@web3modal/ui": {
5530+ "version": "2.4.3",
5531+ "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-2.4.3.tgz",
5532+ "integrity": "sha512-J989p8CdtEhI9gZHf/rZ/WFqYlrAHWw9GmAhFoiNODwjAp0BoG/uoaPiijJMchXdngihZOjLGCQwDXU16DHiKg==",
5533+ "dependencies": {
5534+ "@web3modal/core": "2.4.3",
5535+ "lit": "2.7.5",
5536+ "motion": "10.16.2",
5537+ "qrcode": "1.5.3"
5538+ }
50885539 },
5089− "node_modules/@walletconnect/utils/node_modules/js-sha3": {
5090− "version": "0.8.0",
5091− "license": "MIT"
5540+ "node_modules/@web3modal/ui/node_modules/cliui": {
5541+ "version": "6.0.0",
5542+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
5543+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
5544+ "dependencies": {
5545+ "string-width": "^4.2.0",
5546+ "strip-ansi": "^6.0.0",
5547+ "wrap-ansi": "^6.2.0"
5548+ }
50925549 },
5093− "node_modules/@walletconnect/window-getters": {
5094− "version": "1.0.0",
5095− "license": "MIT"
5550+ "node_modules/@web3modal/ui/node_modules/emoji-regex": {
5551+ "version": "8.0.0",
5552+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
5553+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
50965554 },
5097− "node_modules/@walletconnect/window-metadata": {
5098− "version": "1.0.0",
5099− "license": "MIT",
5555+ "node_modules/@web3modal/ui/node_modules/find-up": {
5556+ "version": "4.1.0",
5557+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
5558+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
51005559 "dependencies": {
5101− "@walletconnect/window-getters": "^1.0.0"
5560+ "locate-path": "^5.0.0",
5561+ "path-exists": "^4.0.0"
5562+ },
5563+ "engines": {
5564+ "node": ">=8"
5565+ }
5566+ },
5567+ "node_modules/@web3modal/ui/node_modules/is-fullwidth-code-point": {
5568+ "version": "3.0.0",
5569+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
5570+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
5571+ "engines": {
5572+ "node": ">=8"
5573+ }
5574+ },
5575+ "node_modules/@web3modal/ui/node_modules/locate-path": {
5576+ "version": "5.0.0",
5577+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
5578+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
5579+ "dependencies": {
5580+ "p-locate": "^4.1.0"
5581+ },
5582+ "engines": {
5583+ "node": ">=8"
5584+ }
5585+ },
5586+ "node_modules/@web3modal/ui/node_modules/p-locate": {
5587+ "version": "4.1.0",
5588+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
5589+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
5590+ "dependencies": {
5591+ "p-limit": "^2.2.0"
5592+ },
5593+ "engines": {
5594+ "node": ">=8"
5595+ }
5596+ },
5597+ "node_modules/@web3modal/ui/node_modules/path-exists": {
5598+ "version": "4.0.0",
5599+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
5600+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
5601+ "engines": {
5602+ "node": ">=8"
5603+ }
5604+ },
5605+ "node_modules/@web3modal/ui/node_modules/pngjs": {
5606+ "version": "5.0.0",
5607+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
5608+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
5609+ "engines": {
5610+ "node": ">=10.13.0"
5611+ }
5612+ },
5613+ "node_modules/@web3modal/ui/node_modules/qrcode": {
5614+ "version": "1.5.3",
5615+ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
5616+ "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
5617+ "dependencies": {
5618+ "dijkstrajs": "^1.0.1",
5619+ "encode-utf8": "^1.0.3",
5620+ "pngjs": "^5.0.0",
5621+ "yargs": "^15.3.1"
5622+ },
5623+ "bin": {
5624+ "qrcode": "bin/qrcode"
5625+ },
5626+ "engines": {
5627+ "node": ">=10.13.0"
5628+ }
5629+ },
5630+ "node_modules/@web3modal/ui/node_modules/string-width": {
5631+ "version": "4.2.3",
5632+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
5633+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
5634+ "dependencies": {
5635+ "emoji-regex": "^8.0.0",
5636+ "is-fullwidth-code-point": "^3.0.0",
5637+ "strip-ansi": "^6.0.1"
5638+ },
5639+ "engines": {
5640+ "node": ">=8"
5641+ }
5642+ },
5643+ "node_modules/@web3modal/ui/node_modules/strip-ansi": {
5644+ "version": "6.0.1",
5645+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5646+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5647+ "dependencies": {
5648+ "ansi-regex": "^5.0.1"
5649+ },
5650+ "engines": {
5651+ "node": ">=8"
5652+ }
5653+ },
5654+ "node_modules/@web3modal/ui/node_modules/wrap-ansi": {
5655+ "version": "6.2.0",
5656+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
5657+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
5658+ "dependencies": {
5659+ "ansi-styles": "^4.0.0",
5660+ "string-width": "^4.1.0",
5661+ "strip-ansi": "^6.0.0"
5662+ },
5663+ "engines": {
5664+ "node": ">=8"
5665+ }
5666+ },
5667+ "node_modules/@web3modal/ui/node_modules/yargs": {
5668+ "version": "15.4.1",
5669+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
5670+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
5671+ "dependencies": {
5672+ "cliui": "^6.0.0",
5673+ "decamelize": "^1.2.0",
5674+ "find-up": "^4.1.0",
5675+ "get-caller-file": "^2.0.1",
5676+ "require-directory": "^2.1.1",
5677+ "require-main-filename": "^2.0.0",
5678+ "set-blocking": "^2.0.0",
5679+ "string-width": "^4.2.0",
5680+ "which-module": "^2.0.0",
5681+ "y18n": "^4.0.0",
5682+ "yargs-parser": "^18.1.2"
5683+ },
5684+ "engines": {
5685+ "node": ">=8"
5686+ }
5687+ },
5688+ "node_modules/@web3modal/ui/node_modules/yargs-parser": {
5689+ "version": "18.1.3",
5690+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
5691+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
5692+ "dependencies": {
5693+ "camelcase": "^5.0.0",
5694+ "decamelize": "^1.2.0"
5695+ },
5696+ "engines": {
5697+ "node": ">=6"
51025698 }
51035699 },
51045700 "node_modules/@welldone-software/why-did-you-render": {
@@ -5506,6 +6102,14 @@
55066102 "node": ">= 4.5.0"
55076103 }
55086104 },
6105+ "node_modules/atomic-sleep": {
6106+ "version": "1.0.0",
6107+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
6108+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
6109+ "engines": {
6110+ "node": ">=8.0.0"
6111+ }
6112+ },
55096113 "node_modules/available-typed-arrays": {
55106114 "version": "1.0.5",
55116115 "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
@@ -6342,25 +6946,12 @@
63426946 "ieee754": "^1.2.1"
63436947 }
63446948 },
6345− "node_modules/buffer-alloc": {
6346− "version": "1.2.0",
6347− "license": "MIT",
6348− "dependencies": {
6349− "buffer-alloc-unsafe": "^1.1.0",
6350− "buffer-fill": "^1.0.0"
6351− }
6352− },
6353− "node_modules/buffer-alloc-unsafe": {
6354− "version": "1.1.0",
6355− "license": "MIT"
6356− },
6357− "node_modules/buffer-fill": {
6358− "version": "1.0.0",
6359− "license": "MIT"
6360− },
63616949 "node_modules/buffer-from": {
63626950 "version": "1.1.2",
6363− "license": "MIT"
6951+ "dev": true,
6952+ "license": "MIT",
6953+ "optional": true,
6954+ "peer": true
63646955 },
63656956 "node_modules/buffer-to-arraybuffer": {
63666957 "version": "0.0.5",
@@ -6736,15 +7327,6 @@
67367327 "dev": true,
67377328 "license": "ISC"
67387329 },
6739− "node_modules/cliui": {
6740− "version": "5.0.0",
6741− "license": "ISC",
6742− "dependencies": {
6743− "string-width": "^3.1.0",
6744− "strip-ansi": "^5.2.0",
6745− "wrap-ansi": "^5.1.0"
6746− }
6747− },
67487330 "node_modules/clone-response": {
67497331 "version": "1.0.2",
67507332 "license": "MIT",
@@ -7146,8 +7728,9 @@
71467728 }
71477729 },
71487730 "node_modules/decode-uri-component": {
7149− "version": "0.2.0",
7150− "license": "MIT",
7731+ "version": "0.2.2",
7732+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
7733+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
71517734 "engines": {
71527735 "node": ">=0.10"
71537736 }
@@ -7243,10 +7826,6 @@
72437826 "version": "1.0.4",
72447827 "license": "MIT"
72457828 },
7246− "node_modules/detect-browser": {
7247− "version": "5.2.0",
7248− "license": "MIT"
7249− },
72507829 "node_modules/detect-indent": {
72517830 "version": "4.0.0",
72527831 "license": "MIT",
@@ -7341,6 +7920,17 @@
73417920 "version": "0.1.4",
73427921 "license": "BSD-3-Clause"
73437922 },
7923+ "node_modules/duplexify": {
7924+ "version": "4.1.2",
7925+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
7926+ "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
7927+ "dependencies": {
7928+ "end-of-stream": "^1.4.1",
7929+ "inherits": "^2.0.3",
7930+ "readable-stream": "^3.1.1",
7931+ "stream-shift": "^1.0.0"
7932+ }
7933+ },
73447934 "node_modules/ecc-jsbn": {
73457935 "version": "0.1.2",
73467936 "license": "MIT",
@@ -7372,9 +7962,10 @@
73727962 "minimalistic-crypto-utils": "^1.0.1"
73737963 }
73747964 },
7375− "node_modules/emoji-regex": {
7376− "version": "7.0.3",
7377− "license": "MIT"
7965+ "node_modules/encode-utf8": {
7966+ "version": "1.0.3",
7967+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
7968+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
73787969 },
73797970 "node_modules/encodeurl": {
73807971 "version": "1.0.2",
@@ -8742,6 +9333,14 @@
87429333 "dev": true,
87439334 "license": "MIT"
87449335 },
9336+ "node_modules/fast-redact": {
9337+ "version": "3.2.0",
9338+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz",
9339+ "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==",
9340+ "engines": {
9341+ "node": ">=6"
9342+ }
9343+ },
87459344 "node_modules/fast-safe-stringify": {
87469345 "version": "2.1.1",
87479346 "license": "MIT"
@@ -8807,6 +9406,14 @@
88079406 "node": ">=8"
88089407 }
88099408 },
9409+ "node_modules/filter-obj": {
9410+ "version": "1.1.0",
9411+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
9412+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
9413+ "engines": {
9414+ "node": ">=0.10.0"
9415+ }
9416+ },
88109417 "node_modules/final-form": {
88119418 "version": "4.20.2",
88129419 "license": "MIT",
@@ -8850,6 +9457,7 @@
88509457 },
88519458 "node_modules/find-up": {
88529459 "version": "3.0.0",
9460+ "dev": true,
88539461 "license": "MIT",
88549462 "dependencies": {
88559463 "locate-path": "^3.0.0"
@@ -10408,6 +11016,11 @@
1040811016 "minimalistic-assert": "^1.0.1"
1040911017 }
1041011018 },
11019+ "node_modules/hey-listen": {
11020+ "version": "1.0.8",
11021+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
11022+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
11023+ },
1041111024 "node_modules/hmac-drbg": {
1041211025 "version": "1.0.1",
1041311026 "license": "MIT",
@@ -10962,6 +11575,7 @@
1096211575 },
1096311576 "node_modules/is-fullwidth-code-point": {
1096411577 "version": "2.0.0",
11578+ "dev": true,
1096511579 "license": "MIT",
1096611580 "engines": {
1096711581 "node": ">=4"
@@ -11618,6 +12232,34 @@
1161812232 "dev": true,
1161912233 "license": "MIT"
1162012234 },
12235+ "node_modules/lit": {
12236+ "version": "2.7.5",
12237+ "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.5.tgz",
12238+ "integrity": "sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ==",
12239+ "dependencies": {
12240+ "@lit/reactive-element": "^1.6.0",
12241+ "lit-element": "^3.3.0",
12242+ "lit-html": "^2.7.0"
12243+ }
12244+ },
12245+ "node_modules/lit-element": {
12246+ "version": "3.3.2",
12247+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz",
12248+ "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==",
12249+ "dependencies": {
12250+ "@lit-labs/ssr-dom-shim": "^1.1.0",
12251+ "@lit/reactive-element": "^1.3.0",
12252+ "lit-html": "^2.7.0"
12253+ }
12254+ },
12255+ "node_modules/lit-html": {
12256+ "version": "2.7.5",
12257+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.5.tgz",
12258+ "integrity": "sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA==",
12259+ "dependencies": {
12260+ "@types/trusted-types": "^2.0.2"
12261+ }
12262+ },
1162112263 "node_modules/local-pkg": {
1162212264 "version": "0.4.2",
1162312265 "dev": true,
@@ -11631,6 +12273,7 @@
1163112273 },
1163212274 "node_modules/locate-path": {
1163312275 "version": "3.0.0",
12276+ "dev": true,
1163412277 "license": "MIT",
1163512278 "dependencies": {
1163612279 "p-locate": "^3.0.0",
@@ -11929,6 +12572,19 @@
1192912572 "iced-runtime": ">=0.0.1"
1193012573 }
1193112574 },
12575+ "node_modules/motion": {
12576+ "version": "10.16.2",
12577+ "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz",
12578+ "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==",
12579+ "dependencies": {
12580+ "@motionone/animation": "^10.15.1",
12581+ "@motionone/dom": "^10.16.2",
12582+ "@motionone/svelte": "^10.16.2",
12583+ "@motionone/types": "^10.15.1",
12584+ "@motionone/utils": "^10.15.1",
12585+ "@motionone/vue": "^10.16.2"
12586+ }
12587+ },
1193212588 "node_modules/ms": {
1193312589 "version": "2.0.0",
1193412590 "license": "MIT"
@@ -11971,6 +12627,11 @@
1197112627 "varint": "^5.0.0"
1197212628 }
1197312629 },
12630+ "node_modules/multiformats": {
12631+ "version": "9.9.0",
12632+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
12633+ "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
12634+ },
1197412635 "node_modules/multihashes": {
1197512636 "version": "0.4.21",
1197612637 "license": "MIT",
@@ -12401,6 +13062,11 @@
1240113062 "node": ">=0.10.0"
1240213063 }
1240313064 },
13065+ "node_modules/on-exit-leak-free": {
13066+ "version": "0.2.0",
13067+ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz",
13068+ "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="
13069+ },
1240413070 "node_modules/on-finished": {
1240513071 "version": "2.3.0",
1240613072 "license": "MIT",
@@ -12495,6 +13161,7 @@
1249513161 },
1249613162 "node_modules/p-locate": {
1249713163 "version": "3.0.0",
13164+ "dev": true,
1249813165 "license": "MIT",
1249913166 "dependencies": {
1250013167 "p-limit": "^2.0.0"
@@ -12559,6 +13226,7 @@
1255913226 },
1256013227 "node_modules/path-exists": {
1256113228 "version": "3.0.0",
13229+ "dev": true,
1256213230 "license": "MIT",
1256313231 "engines": {
1256413232 "node": ">=4"
@@ -12663,6 +13331,41 @@
1266313331 "node": ">=4"
1266413332 }
1266513333 },
13334+ "node_modules/pino": {
13335+ "version": "7.11.0",
13336+ "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz",
13337+ "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==",
13338+ "dependencies": {
13339+ "atomic-sleep": "^1.0.0",
13340+ "fast-redact": "^3.0.0",
13341+ "on-exit-leak-free": "^0.2.0",
13342+ "pino-abstract-transport": "v0.5.0",
13343+ "pino-std-serializers": "^4.0.0",
13344+ "process-warning": "^1.0.0",
13345+ "quick-format-unescaped": "^4.0.3",
13346+ "real-require": "^0.1.0",
13347+ "safe-stable-stringify": "^2.1.0",
13348+ "sonic-boom": "^2.2.1",
13349+ "thread-stream": "^0.15.1"
13350+ },
13351+ "bin": {
13352+ "pino": "bin.js"
13353+ }
13354+ },
13355+ "node_modules/pino-abstract-transport": {
13356+ "version": "0.5.0",
13357+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz",
13358+ "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==",
13359+ "dependencies": {
13360+ "duplexify": "^4.1.2",
13361+ "split2": "^4.0.0"
13362+ }
13363+ },
13364+ "node_modules/pino-std-serializers": {
13365+ "version": "4.0.0",
13366+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz",
13367+ "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q=="
13368+ },
1266613369 "node_modules/please-upgrade-node": {
1266713370 "version": "3.2.0",
1266813371 "dev": true,
@@ -12671,13 +13374,6 @@
1267113374 "semver-compare": "^1.0.0"
1267213375 }
1267313376 },
12674− "node_modules/pngjs": {
12675− "version": "3.4.0",
12676− "license": "MIT",
12677− "engines": {
12678− "node": ">=4.0.0"
12679− }
12680− },
1268113377 "node_modules/pnglib": {
1268213378 "version": "0.0.1",
1268313379 "license": "BSD"
@@ -12686,14 +13382,6 @@
1268613382 "version": "4.1.0",
1268713383 "license": "MIT"
1268813384 },
12689− "node_modules/preact": {
12690− "version": "10.4.1",
12691− "license": "MIT",
12692− "funding": {
12693− "type": "opencollective",
12694− "url": "https://opencollective.com/preact"
12695− }
12696− },
1269713385 "node_modules/prelude-ls": {
1269813386 "version": "1.1.2",
1269913387 "dev": true,
@@ -12767,6 +13455,11 @@
1276713455 "node": ">= 0.6.0"
1276813456 }
1276913457 },
13458+ "node_modules/process-warning": {
13459+ "version": "1.0.0",
13460+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz",
13461+ "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="
13462+ },
1277013463 "node_modules/prop-types": {
1277113464 "version": "15.8.1",
1277213465 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
@@ -12788,6 +13481,11 @@
1278813481 "node": ">= 0.10"
1278913482 }
1279013483 },
13484+ "node_modules/proxy-compare": {
13485+ "version": "2.5.1",
13486+ "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz",
13487+ "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA=="
13488+ },
1279113489 "node_modules/pseudomap": {
1279213490 "version": "1.0.2",
1279313491 "dev": true,
@@ -12831,52 +13529,6 @@
1283113529 "bitcoin-ops": "^1.3.0"
1283213530 }
1283313531 },
12834− "node_modules/qrcode": {
12835− "version": "1.4.4",
12836− "license": "MIT",
12837− "dependencies": {
12838− "buffer": "^5.4.3",
12839− "buffer-alloc": "^1.2.0",
12840− "buffer-from": "^1.1.1",
12841− "dijkstrajs": "^1.0.1",
12842− "isarray": "^2.0.1",
12843− "pngjs": "^3.3.0",
12844− "yargs": "^13.2.4"
12845− },
12846− "bin": {
12847− "qrcode": "bin/qrcode"
12848− },
12849− "engines": {
12850− "node": ">=4"
12851− }
12852− },
12853− "node_modules/qrcode/node_modules/buffer": {
12854− "version": "5.7.1",
12855− "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
12856− "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
12857− "funding": [
12858− {
12859− "type": "github",
12860− "url": "https://github.com/sponsors/feross"
12861− },
12862− {
12863− "type": "patreon",
12864− "url": "https://www.patreon.com/feross"
12865− },
12866− {
12867− "type": "consulting",
12868− "url": "https://feross.org/support"
12869− }
12870− ],
12871− "dependencies": {
12872− "base64-js": "^1.3.1",
12873− "ieee754": "^1.1.13"
12874− }
12875− },
12876− "node_modules/qrcode/node_modules/isarray": {
12877− "version": "2.0.5",
12878− "license": "MIT"
12879− },
1288013532 "node_modules/qs": {
1288113533 "version": "6.7.0",
1288213534 "license": "BSD-3-Clause",
@@ -12884,21 +13536,6 @@
1288413536 "node": ">=0.6"
1288513537 }
1288613538 },
12887− "node_modules/query-string": {
12888− "version": "6.13.5",
12889− "license": "MIT",
12890− "dependencies": {
12891− "decode-uri-component": "^0.2.0",
12892− "split-on-first": "^1.0.0",
12893− "strict-uri-encode": "^2.0.0"
12894− },
12895− "engines": {
12896− "node": ">=6"
12897− },
12898− "funding": {
12899− "url": "https://github.com/sponsors/sindresorhus"
12900− }
12901− },
1290213539 "node_modules/queue-microtask": {
1290313540 "version": "1.2.3",
1290413541 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -12919,6 +13556,11 @@
1291913556 }
1292013557 ]
1292113558 },
13559+ "node_modules/quick-format-unescaped": {
13560+ "version": "4.0.4",
13561+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
13562+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="
13563+ },
1292213564 "node_modules/quick-lru": {
1292313565 "version": "5.1.1",
1292413566 "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
@@ -13097,6 +13739,14 @@
1309713739 "node": ">=8.10.0"
1309813740 }
1309913741 },
13742+ "node_modules/real-require": {
13743+ "version": "0.1.0",
13744+ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz",
13745+ "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==",
13746+ "engines": {
13747+ "node": ">= 12.13.0"
13748+ }
13749+ },
1310013750 "node_modules/redent": {
1310113751 "version": "3.0.0",
1310213752 "dev": true,
@@ -13473,6 +14123,11 @@
1347314123 ],
1347414124 "license": "MIT"
1347514125 },
14126+ "node_modules/safe-json-utils": {
14127+ "version": "1.1.1",
14128+ "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz",
14129+ "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ=="
14130+ },
1347614131 "node_modules/safe-regex-test": {
1347714132 "version": "1.0.0",
1347814133 "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
@@ -13486,6 +14141,14 @@
1348614141 "url": "https://github.com/sponsors/ljharb"
1348714142 }
1348814143 },
14144+ "node_modules/safe-stable-stringify": {
14145+ "version": "2.4.3",
14146+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
14147+ "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
14148+ "engines": {
14149+ "node": ">=10"
14150+ }
14151+ },
1348914152 "node_modules/safer-buffer": {
1349014153 "version": "2.1.2",
1349114154 "license": "MIT"
@@ -13919,6 +14582,14 @@
1391914582 "node": ">=0.10.0"
1392014583 }
1392114584 },
14585+ "node_modules/sonic-boom": {
14586+ "version": "2.8.0",
14587+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz",
14588+ "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==",
14589+ "dependencies": {
14590+ "atomic-sleep": "^1.0.0"
14591+ }
14592+ },
1392214593 "node_modules/source-map": {
1392314594 "version": "0.5.7",
1392414595 "license": "BSD-3-Clause",
@@ -14138,6 +14809,14 @@
1413814809 "node": ">=6"
1413914810 }
1414014811 },
14812+ "node_modules/split2": {
14813+ "version": "4.2.0",
14814+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
14815+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
14816+ "engines": {
14817+ "node": ">= 10.x"
14818+ }
14819+ },
1414114820 "node_modules/sprintf-js": {
1414214821 "version": "1.0.3",
1414314822 "dev": true,
@@ -14183,6 +14862,11 @@
1418314862 "readable-stream": "^3.5.0"
1418414863 }
1418514864 },
14865+ "node_modules/stream-shift": {
14866+ "version": "1.0.1",
14867+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
14868+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
14869+ },
1418614870 "node_modules/strict-event-emitter-types": {
1418714871 "version": "2.0.0",
1418814872 "license": "ISC"
@@ -14207,18 +14891,6 @@
1420714891 "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
1420814892 "dev": true
1420914893 },
14210− "node_modules/string-width": {
14211− "version": "3.1.0",
14212− "license": "MIT",
14213− "dependencies": {
14214− "emoji-regex": "^7.0.1",
14215− "is-fullwidth-code-point": "^2.0.0",
14216− "strip-ansi": "^5.1.0"
14217− },
14218− "engines": {
14219− "node": ">=6"
14220− }
14221− },
1422214894 "node_modules/string.prototype.matchall": {
1422314895 "version": "4.0.8",
1422414896 "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
@@ -14280,23 +14952,6 @@
1428014952 "url": "https://github.com/sponsors/ljharb"
1428114953 }
1428214954 },
14283− "node_modules/strip-ansi": {
14284− "version": "5.2.0",
14285− "license": "MIT",
14286− "dependencies": {
14287− "ansi-regex": "^4.1.0"
14288− },
14289− "engines": {
14290− "node": ">=6"
14291− }
14292− },
14293− "node_modules/strip-ansi/node_modules/ansi-regex": {
14294− "version": "4.1.0",
14295− "license": "MIT",
14296− "engines": {
14297− "node": ">=6"
14298− }
14299− },
1430014955 "node_modules/strip-bom": {
1430114956 "version": "3.0.0",
1430214957 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -14741,6 +15396,14 @@
1474115396 "dev": true,
1474215397 "license": "MIT"
1474315398 },
15399+ "node_modules/thread-stream": {
15400+ "version": "0.15.2",
15401+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz",
15402+ "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==",
15403+ "dependencies": {
15404+ "real-require": "^0.1.0"
15405+ }
15406+ },
1474415407 "node_modules/timed-out": {
1474515408 "version": "4.0.1",
1474615409 "license": "MIT",
@@ -14984,6 +15647,14 @@
1498415647 "node": "*"
1498515648 }
1498615649 },
15650+ "node_modules/uint8arrays": {
15651+ "version": "3.1.1",
15652+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz",
15653+ "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==",
15654+ "dependencies": {
15655+ "multiformats": "^9.4.2"
15656+ }
15657+ },
1498715658 "node_modules/ultron": {
1498815659 "version": "1.1.1",
1498915660 "license": "MIT"
@@ -15242,6 +15913,14 @@
1524215913 "node": ">= 4"
1524315914 }
1524415915 },
15916+ "node_modules/use-sync-external-store": {
15917+ "version": "1.2.0",
15918+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
15919+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
15920+ "peerDependencies": {
15921+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
15922+ }
15923+ },
1524515924 "node_modules/utf-8-validate": {
1524615925 "version": "5.0.5",
1524715926 "hasInstallScript": true,
@@ -15287,6 +15966,26 @@
1528715966 "spdx-expression-parse": "^3.0.0"
1528815967 }
1528915968 },
15969+ "node_modules/valtio": {
15970+ "version": "1.10.5",
15971+ "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.10.5.tgz",
15972+ "integrity": "sha512-jTp0k63VXf4r5hPoaC6a6LCG4POkVSh629WLi1+d5PlajLsbynTMd7qAgEiOSPxzoX5iNvbN7iZ/k/g29wrNiQ==",
15973+ "dependencies": {
15974+ "proxy-compare": "2.5.1",
15975+ "use-sync-external-store": "1.2.0"
15976+ },
15977+ "engines": {
15978+ "node": ">=12.20.0"
15979+ },
15980+ "peerDependencies": {
15981+ "react": ">=16.8"
15982+ },
15983+ "peerDependenciesMeta": {
15984+ "react": {
15985+ "optional": true
15986+ }
15987+ }
15988+ },
1529015989 "node_modules/varint": {
1529115990 "version": "5.0.2",
1529215991 "license": "MIT"
@@ -16273,46 +16972,14 @@
1627316972 "node": ">=0.10.0"
1627416973 }
1627516974 },
16276− "node_modules/wrap-ansi": {
16277− "version": "5.1.0",
16278− "license": "MIT",
16279− "dependencies": {
16280− "ansi-styles": "^3.2.0",
16281− "string-width": "^3.0.0",
16282− "strip-ansi": "^5.0.0"
16283− },
16284− "engines": {
16285− "node": ">=6"
16286− }
16287− },
16288− "node_modules/wrap-ansi/node_modules/ansi-styles": {
16289− "version": "3.2.1",
16290− "license": "MIT",
16291− "dependencies": {
16292− "color-convert": "^1.9.0"
16293− },
16294− "engines": {
16295− "node": ">=4"
16296− }
16297− },
16298− "node_modules/wrap-ansi/node_modules/color-convert": {
16299− "version": "1.9.3",
16300− "license": "MIT",
16301− "dependencies": {
16302− "color-name": "1.1.3"
16303− }
16304− },
16305− "node_modules/wrap-ansi/node_modules/color-name": {
16306− "version": "1.1.3",
16307− "license": "MIT"
16308− },
1630916975 "node_modules/wrappy": {
1631016976 "version": "1.0.2",
1631116977 "license": "ISC"
1631216978 },
1631316979 "node_modules/ws": {
16314− "version": "7.4.6",
16315− "license": "MIT",
16980+ "version": "7.5.9",
16981+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
16982+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
1631616983 "engines": {
1631716984 "node": ">=8.3.0"
1631816985 },
@@ -16420,39 +17087,15 @@
1642017087 }
1642117088 },
1642217089 "node_modules/yallist": {
16423− "version": "4.0.0",
16424− "license": "ISC"
16425− },
16426− "node_modules/yaml": {
16427− "version": "1.10.2",
16428− "dev": true,
16429− "license": "ISC",
16430− "engines": {
16431− "node": ">= 6"
16432− }
16433− },
16434− "node_modules/yargs": {
16435− "version": "13.3.2",
16436− "license": "MIT",
16437− "dependencies": {
16438− "cliui": "^5.0.0",
16439− "find-up": "^3.0.0",
16440− "get-caller-file": "^2.0.1",
16441− "require-directory": "^2.1.1",
16442− "require-main-filename": "^2.0.0",
16443− "set-blocking": "^2.0.0",
16444− "string-width": "^3.0.0",
16445− "which-module": "^2.0.0",
16446− "y18n": "^4.0.0",
16447− "yargs-parser": "^13.1.2"
16448− }
17090+ "version": "4.0.0",
17091+ "license": "ISC"
1644917092 },
16450− "node_modules/yargs-parser": {
16451− "version": "13.1.2",
17093+ "node_modules/yaml": {
17094+ "version": "1.10.2",
17095+ "dev": true,
1645217096 "license": "ISC",
16453− "dependencies": {
16454− "camelcase": "^5.0.0",
16455− "decamelize": "^1.2.0"
17097+ "engines": {
17098+ "node": ">= 6"
1645617099 }
1645717100 },
1645817101 "node_modules/yocto-queue": {
@@ -18570,9 +19213,147 @@
1857019213 }
1857119214 }
1857219215 },
19216+ "@lit-labs/ssr-dom-shim": {
19217+ "version": "1.1.1",
19218+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz",
19219+ "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ=="
19220+ },
19221+ "@lit/reactive-element": {
19222+ "version": "1.6.2",
19223+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.2.tgz",
19224+ "integrity": "sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA==",
19225+ "requires": {
19226+ "@lit-labs/ssr-dom-shim": "^1.0.0"
19227+ }
19228+ },
1857319229 "@metamask/detect-provider": {
1857419230 "version": "1.2.0"
1857519231 },
19232+ "@motionone/animation": {
19233+ "version": "10.15.1",
19234+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz",
19235+ "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==",
19236+ "requires": {
19237+ "@motionone/easing": "^10.15.1",
19238+ "@motionone/types": "^10.15.1",
19239+ "@motionone/utils": "^10.15.1",
19240+ "tslib": "^2.3.1"
19241+ },
19242+ "dependencies": {
19243+ "tslib": {
19244+ "version": "2.6.0",
19245+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
19246+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
19247+ }
19248+ }
19249+ },
19250+ "@motionone/dom": {
19251+ "version": "10.16.2",
19252+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.16.2.tgz",
19253+ "integrity": "sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg==",
19254+ "requires": {
19255+ "@motionone/animation": "^10.15.1",
19256+ "@motionone/generators": "^10.15.1",
19257+ "@motionone/types": "^10.15.1",
19258+ "@motionone/utils": "^10.15.1",
19259+ "hey-listen": "^1.0.8",
19260+ "tslib": "^2.3.1"
19261+ },
19262+ "dependencies": {
19263+ "tslib": {
19264+ "version": "2.6.0",
19265+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
19266+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
19267+ }
19268+ }
19269+ },
19270+ "@motionone/easing": {
19271+ "version": "10.15.1",
19272+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz",
19273+ "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==",
19274+ "requires": {
19275+ "@motionone/utils": "^10.15.1",
19276+ "tslib": "^2.3.1"
19277+ },
19278+ "dependencies": {
19279+ "tslib": {
19280+ "version": "2.6.0",
19281+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
19282+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
19283+ }
19284+ }
19285+ },
19286+ "@motionone/generators": {
19287+ "version": "10.15.1",
19288+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz",
19289+ "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==",
19290+ "requires": {
19291+ "@motionone/types": "^10.15.1",
19292+ "@motionone/utils": "^10.15.1",
19293+ "tslib": "^2.3.1"
19294+ },
19295+ "dependencies": {
19296+ "tslib": {
19297+ "version": "2.6.0",
19298+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
19299+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
19300+ }
19301+ }
19302+ },
19303+ "@motionone/svelte": {
19304+ "version": "10.16.2",
19305+ "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.2.tgz",
19306+ "integrity": "sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==",
19307+ "requires": {
19308+ "@motionone/dom": "^10.16.2",
19309+ "tslib": "^2.3.1"
19310+ },
19311+ "dependencies": {
19312+ "tslib": {
19313+ "version": "2.6.0",
19314+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
19315+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
19316+ }
19317+ }
19318+ },
19319+ "@motionone/types": {
19320+ "version": "10.15.1",
19321+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz",
19322+ "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA=="
19323+ },
19324+ "@motionone/utils": {
19325+ "version": "10.15.1",
19326+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz",
19327+ "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==",
19328+ "requires": {
19329+ "@motionone/types": "^10.15.1",
19330+ "hey-listen": "^1.0.8",
19331+ "tslib": "^2.3.1"
19332+ },
19333+ "dependencies": {
19334+ "tslib": {
19335+ "version": "2.6.0",
19336+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
19337+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
19338+ }
19339+ }
19340+ },
19341+ "@motionone/vue": {
19342+ "version": "10.16.2",
19343+ "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.2.tgz",
19344+ "integrity": "sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==",
19345+ "requires": {
19346+ "@motionone/dom": "^10.16.2",
19347+ "tslib": "^2.3.1"
19348+ },
19349+ "dependencies": {
19350+ "tslib": {
19351+ "version": "2.6.0",
19352+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
19353+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
19354+ }
19355+ }
19356+ },
1857619357 "@nicolo-ribaudo/eslint-scope-5-internals": {
1857719358 "version": "5.1.1-v1",
1857819359 "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
@@ -18866,6 +19647,152 @@
1886619647 "@scure/base": "~1.1.0"
1886719648 }
1886819649 },
19650+ "@stablelib/aead": {
19651+ "version": "1.0.1",
19652+ "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
19653+ "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg=="
19654+ },
19655+ "@stablelib/binary": {
19656+ "version": "1.0.1",
19657+ "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
19658+ "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
19659+ "requires": {
19660+ "@stablelib/int": "^1.0.1"
19661+ }
19662+ },
19663+ "@stablelib/bytes": {
19664+ "version": "1.0.1",
19665+ "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
19666+ "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
19667+ },
19668+ "@stablelib/chacha": {
19669+ "version": "1.0.1",
19670+ "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
19671+ "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==",
19672+ "requires": {
19673+ "@stablelib/binary": "^1.0.1",
19674+ "@stablelib/wipe": "^1.0.1"
19675+ }
19676+ },
19677+ "@stablelib/chacha20poly1305": {
19678+ "version": "1.0.1",
19679+ "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
19680+ "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==",
19681+ "requires": {
19682+ "@stablelib/aead": "^1.0.1",
19683+ "@stablelib/binary": "^1.0.1",
19684+ "@stablelib/chacha": "^1.0.1",
19685+ "@stablelib/constant-time": "^1.0.1",
19686+ "@stablelib/poly1305": "^1.0.1",
19687+ "@stablelib/wipe": "^1.0.1"
19688+ }
19689+ },
19690+ "@stablelib/constant-time": {
19691+ "version": "1.0.1",
19692+ "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
19693+ "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
19694+ },
19695+ "@stablelib/ed25519": {
19696+ "version": "1.0.3",
19697+ "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz",
19698+ "integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==",
19699+ "requires": {
19700+ "@stablelib/random": "^1.0.2",
19701+ "@stablelib/sha512": "^1.0.1",
19702+ "@stablelib/wipe": "^1.0.1"
19703+ }
19704+ },
19705+ "@stablelib/hash": {
19706+ "version": "1.0.1",
19707+ "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
19708+ "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
19709+ },
19710+ "@stablelib/hkdf": {
19711+ "version": "1.0.1",
19712+ "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz",
19713+ "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==",
19714+ "requires": {
19715+ "@stablelib/hash": "^1.0.1",
19716+ "@stablelib/hmac": "^1.0.1",
19717+ "@stablelib/wipe": "^1.0.1"
19718+ }
19719+ },
19720+ "@stablelib/hmac": {
19721+ "version": "1.0.1",
19722+ "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
19723+ "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==",
19724+ "requires": {
19725+ "@stablelib/constant-time": "^1.0.1",
19726+ "@stablelib/hash": "^1.0.1",
19727+ "@stablelib/wipe": "^1.0.1"
19728+ }
19729+ },
19730+ "@stablelib/int": {
19731+ "version": "1.0.1",
19732+ "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
19733+ "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
19734+ },
19735+ "@stablelib/keyagreement": {
19736+ "version": "1.0.1",
19737+ "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
19738+ "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
19739+ "requires": {
19740+ "@stablelib/bytes": "^1.0.1"
19741+ }
19742+ },
19743+ "@stablelib/poly1305": {
19744+ "version": "1.0.1",
19745+ "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
19746+ "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
19747+ "requires": {
19748+ "@stablelib/constant-time": "^1.0.1",
19749+ "@stablelib/wipe": "^1.0.1"
19750+ }
19751+ },
19752+ "@stablelib/random": {
19753+ "version": "1.0.2",
19754+ "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
19755+ "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==",
19756+ "requires": {
19757+ "@stablelib/binary": "^1.0.1",
19758+ "@stablelib/wipe": "^1.0.1"
19759+ }
19760+ },
19761+ "@stablelib/sha256": {
19762+ "version": "1.0.1",
19763+ "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
19764+ "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==",
19765+ "requires": {
19766+ "@stablelib/binary": "^1.0.1",
19767+ "@stablelib/hash": "^1.0.1",
19768+ "@stablelib/wipe": "^1.0.1"
19769+ }
19770+ },
19771+ "@stablelib/sha512": {
19772+ "version": "1.0.1",
19773+ "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
19774+ "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==",
19775+ "requires": {
19776+ "@stablelib/binary": "^1.0.1",
19777+ "@stablelib/hash": "^1.0.1",
19778+ "@stablelib/wipe": "^1.0.1"
19779+ }
19780+ },
19781+ "@stablelib/wipe": {
19782+ "version": "1.0.1",
19783+ "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
19784+ "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
19785+ },
19786+ "@stablelib/x25519": {
19787+ "version": "1.0.3",
19788+ "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
19789+ "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==",
19790+ "requires": {
19791+ "@stablelib/keyagreement": "^1.0.1",
19792+ "@stablelib/random": "^1.0.2",
19793+ "@stablelib/wipe": "^1.0.1"
19794+ }
19795+ },
1886919796 "@styled-system/background": {
1887019797 "version": "5.1.2",
1887119798 "requires": {
@@ -19447,6 +20374,11 @@
1944720374 "@types/jest": "*"
1944820375 }
1944920376 },
20377+ "@types/trusted-types": {
20378+ "version": "2.0.3",
20379+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz",
20380+ "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g=="
20381+ },
1945020382 "@types/warning": {
1945120383 "version": "3.0.0"
1945220384 },
@@ -19740,150 +20672,441 @@
1974020672 }
1974120673 }
1974220674 },
19743− "@walletconnect/browser-utils": {
19744− "version": "1.8.0",
20675+ "@walletconnect/encoding": {
20676+ "version": "1.0.2",
20677+ "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.2.tgz",
20678+ "integrity": "sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==",
1974520679 "requires": {
19746− "@walletconnect/safe-json": "1.0.0",
19747− "@walletconnect/types": "^1.8.0",
19748− "@walletconnect/window-getters": "1.0.0",
19749− "@walletconnect/window-metadata": "1.0.0",
19750− "detect-browser": "5.2.0"
20680+ "is-typedarray": "1.0.0",
20681+ "tslib": "1.14.1",
20682+ "typedarray-to-buffer": "3.1.5"
1975120683 }
1975220684 },
19753− "@walletconnect/client": {
19754− "version": "1.8.0",
20685+ "@walletconnect/environment": {
20686+ "version": "1.0.1",
20687+ "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz",
20688+ "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==",
1975520689 "requires": {
19756− "@walletconnect/core": "^1.8.0",
19757− "@walletconnect/iso-crypto": "^1.8.0",
19758− "@walletconnect/types": "^1.8.0",
19759− "@walletconnect/utils": "^1.8.0"
20690+ "tslib": "1.14.1"
1976020691 }
1976120692 },
19762− "@walletconnect/core": {
19763− "version": "1.8.0",
20693+ "@walletconnect/events": {
20694+ "version": "1.0.1",
20695+ "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz",
20696+ "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==",
1976420697 "requires": {
19765− "@walletconnect/socket-transport": "^1.8.0",
19766− "@walletconnect/types": "^1.8.0",
19767− "@walletconnect/utils": "^1.8.0"
20698+ "keyvaluestorage-interface": "^1.0.0",
20699+ "tslib": "1.14.1"
1976820700 }
1976920701 },
19770− "@walletconnect/crypto": {
19771− "version": "1.0.2",
20702+ "@walletconnect/heartbeat": {
20703+ "version": "1.2.1",
20704+ "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz",
20705+ "integrity": "sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==",
20706+ "requires": {
20707+ "@walletconnect/events": "^1.0.1",
20708+ "@walletconnect/time": "^1.0.2",
20709+ "tslib": "1.14.1"
20710+ }
20711+ },
20712+ "@walletconnect/jsonrpc-provider": {
20713+ "version": "1.0.13",
20714+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz",
20715+ "integrity": "sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==",
1977220716 "requires": {
19773− "@walletconnect/encoding": "^1.0.1",
19774− "@walletconnect/environment": "^1.0.0",
19775− "@walletconnect/randombytes": "^1.0.2",
19776− "aes-js": "^3.1.2",
19777− "hash.js": "^1.1.7"
20717+ "@walletconnect/jsonrpc-utils": "^1.0.8",
20718+ "@walletconnect/safe-json": "^1.0.2",
20719+ "tslib": "1.14.1"
1977820720 },
1977920721 "dependencies": {
19780− "aes-js": {
19781− "version": "3.1.2"
20722+ "@walletconnect/safe-json": {
20723+ "version": "1.0.2",
20724+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
20725+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
20726+ "requires": {
20727+ "tslib": "1.14.1"
20728+ }
1978220729 }
1978320730 }
1978420731 },
19785− "@walletconnect/encoding": {
19786− "version": "1.0.1",
20732+ "@walletconnect/jsonrpc-types": {
20733+ "version": "1.0.3",
20734+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz",
20735+ "integrity": "sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==",
1978720736 "requires": {
19788− "is-typedarray": "1.0.0",
19789− "typedarray-to-buffer": "3.1.5"
20737+ "keyvaluestorage-interface": "^1.0.0",
20738+ "tslib": "1.14.1"
1979020739 }
1979120740 },
19792− "@walletconnect/environment": {
19793− "version": "1.0.0"
19794− },
19795− "@walletconnect/iso-crypto": {
19796− "version": "1.8.0",
20741+ "@walletconnect/jsonrpc-utils": {
20742+ "version": "1.0.8",
20743+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz",
20744+ "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==",
1979720745 "requires": {
19798− "@walletconnect/crypto": "^1.0.2",
19799− "@walletconnect/types": "^1.8.0",
19800− "@walletconnect/utils": "^1.8.0"
20746+ "@walletconnect/environment": "^1.0.1",
20747+ "@walletconnect/jsonrpc-types": "^1.0.3",
20748+ "tslib": "1.14.1"
1980120749 }
1980220750 },
19803− "@walletconnect/jsonrpc-types": {
19804− "version": "1.0.1",
20751+ "@walletconnect/jsonrpc-ws-connection": {
20752+ "version": "1.0.12",
20753+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.12.tgz",
20754+ "integrity": "sha512-HAcadga3Qjt1Cqy+qXEW6zjaCs8uJGdGQrqltzl3OjiK4epGZRdvSzTe63P+t/3z+D2wG+ffEPn0GVcDozmN1w==",
1980520755 "requires": {
19806− "keyvaluestorage-interface": "^1.0.0"
20756+ "@walletconnect/jsonrpc-utils": "^1.0.6",
20757+ "@walletconnect/safe-json": "^1.0.2",
20758+ "events": "^3.3.0",
20759+ "tslib": "1.14.1",
20760+ "ws": "^7.5.1"
20761+ },
20762+ "dependencies": {
20763+ "@walletconnect/safe-json": {
20764+ "version": "1.0.2",
20765+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
20766+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
20767+ "requires": {
20768+ "tslib": "1.14.1"
20769+ }
20770+ }
1980720771 }
1980820772 },
19809− "@walletconnect/jsonrpc-utils": {
19810− "version": "1.0.3",
20773+ "@walletconnect/logger": {
20774+ "version": "2.0.1",
20775+ "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.0.1.tgz",
20776+ "integrity": "sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==",
1981120777 "requires": {
19812− "@walletconnect/environment": "^1.0.0",
19813− "@walletconnect/jsonrpc-types": "^1.0.1"
20778+ "pino": "7.11.0",
20779+ "tslib": "1.14.1"
1981420780 }
1981520781 },
19816− "@walletconnect/mobile-registry": {
19817− "version": "1.4.0"
19818− },
19819− "@walletconnect/qrcode-modal": {
19820− "version": "1.8.0",
20782+ "@walletconnect/relay-api": {
20783+ "version": "1.0.9",
20784+ "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.9.tgz",
20785+ "integrity": "sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==",
1982120786 "requires": {
19822− "@walletconnect/browser-utils": "^1.8.0",
19823− "@walletconnect/mobile-registry": "^1.4.0",
19824− "@walletconnect/types": "^1.8.0",
19825− "copy-to-clipboard": "^3.3.1",
19826− "preact": "10.4.1",
19827− "qrcode": "1.4.4"
20787+ "@walletconnect/jsonrpc-types": "^1.0.2",
20788+ "tslib": "1.14.1"
1982820789 }
1982920790 },
19830− "@walletconnect/randombytes": {
19831− "version": "1.0.2",
20791+ "@walletconnect/relay-auth": {
20792+ "version": "1.0.4",
20793+ "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz",
20794+ "integrity": "sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==",
1983220795 "requires": {
19833− "@walletconnect/encoding": "^1.0.1",
19834− "@walletconnect/environment": "^1.0.0",
19835− "randombytes": "^2.1.0"
20796+ "@stablelib/ed25519": "^1.0.2",
20797+ "@stablelib/random": "^1.0.1",
20798+ "@walletconnect/safe-json": "^1.0.1",
20799+ "@walletconnect/time": "^1.0.2",
20800+ "tslib": "1.14.1",
20801+ "uint8arrays": "^3.0.0"
20802+ },
20803+ "dependencies": {
20804+ "@walletconnect/safe-json": {
20805+ "version": "1.0.2",
20806+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
20807+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
20808+ "requires": {
20809+ "tslib": "1.14.1"
20810+ }
20811+ }
1983620812 }
1983720813 },
19838− "@walletconnect/safe-json": {
19839− "version": "1.0.0"
20814+ "@walletconnect/sign-client": {
20815+ "version": "2.9.0",
20816+ "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.9.0.tgz",
20817+ "integrity": "sha512-mEKc4LlLMebCe45qzqh+MX4ilQK4kOEBzLY6YJpG8EhyT45eX4JMNA7qQoYa9MRMaaVb/7USJcc4e3ZrjZvQmA==",
20818+ "requires": {
20819+ "@walletconnect/core": "2.9.0",
20820+ "@walletconnect/events": "^1.0.1",
20821+ "@walletconnect/heartbeat": "1.2.1",
20822+ "@walletconnect/jsonrpc-utils": "1.0.8",
20823+ "@walletconnect/logger": "^2.0.1",
20824+ "@walletconnect/time": "^1.0.2",
20825+ "@walletconnect/types": "2.9.0",
20826+ "@walletconnect/utils": "2.9.0",
20827+ "events": "^3.3.0"
20828+ },
20829+ "dependencies": {
20830+ "@walletconnect/core": {
20831+ "version": "2.9.0",
20832+ "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.9.0.tgz",
20833+ "integrity": "sha512-MZYJghS9YCvGe32UOgDj0mCasaOoGHQaYXWeQblXE/xb8HuaM6kAWhjIQN9P+MNp5QP134BHP5olQostcCotXQ==",
20834+ "requires": {
20835+ "@walletconnect/heartbeat": "1.2.1",
20836+ "@walletconnect/jsonrpc-provider": "1.0.13",
20837+ "@walletconnect/jsonrpc-types": "1.0.3",
20838+ "@walletconnect/jsonrpc-utils": "1.0.8",
20839+ "@walletconnect/jsonrpc-ws-connection": "1.0.12",
20840+ "@walletconnect/keyvaluestorage": "^1.0.2",
20841+ "@walletconnect/logger": "^2.0.1",
20842+ "@walletconnect/relay-api": "^1.0.9",
20843+ "@walletconnect/relay-auth": "^1.0.4",
20844+ "@walletconnect/safe-json": "^1.0.2",
20845+ "@walletconnect/time": "^1.0.2",
20846+ "@walletconnect/types": "2.9.0",
20847+ "@walletconnect/utils": "2.9.0",
20848+ "events": "^3.3.0",
20849+ "lodash.isequal": "4.5.0",
20850+ "uint8arrays": "^3.1.0"
20851+ }
20852+ },
20853+ "@walletconnect/keyvaluestorage": {
20854+ "version": "1.0.2",
20855+ "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz",
20856+ "integrity": "sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==",
20857+ "requires": {
20858+ "safe-json-utils": "^1.1.1",
20859+ "tslib": "1.14.1"
20860+ }
20861+ },
20862+ "@walletconnect/safe-json": {
20863+ "version": "1.0.2",
20864+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
20865+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
20866+ "requires": {
20867+ "tslib": "1.14.1"
20868+ }
20869+ },
20870+ "@walletconnect/utils": {
20871+ "version": "2.9.0",
20872+ "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.9.0.tgz",
20873+ "integrity": "sha512-7Tu3m6dZL84KofrNBcblsgpSqU2vdo9ImLD7zWimLXERVGNQ8smXG+gmhQYblebIBhsPzjy9N38YMC3nPlfQNw==",
20874+ "requires": {
20875+ "@stablelib/chacha20poly1305": "1.0.1",
20876+ "@stablelib/hkdf": "1.0.1",
20877+ "@stablelib/random": "^1.0.2",
20878+ "@stablelib/sha256": "1.0.1",
20879+ "@stablelib/x25519": "^1.0.3",
20880+ "@walletconnect/relay-api": "^1.0.9",
20881+ "@walletconnect/safe-json": "^1.0.2",
20882+ "@walletconnect/time": "^1.0.2",
20883+ "@walletconnect/types": "2.9.0",
20884+ "@walletconnect/window-getters": "^1.0.1",
20885+ "@walletconnect/window-metadata": "^1.0.1",
20886+ "detect-browser": "5.3.0",
20887+ "query-string": "7.1.3",
20888+ "uint8arrays": "^3.1.0"
20889+ }
20890+ },
20891+ "@walletconnect/window-getters": {
20892+ "version": "1.0.1",
20893+ "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz",
20894+ "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==",
20895+ "requires": {
20896+ "tslib": "1.14.1"
20897+ }
20898+ },
20899+ "@walletconnect/window-metadata": {
20900+ "version": "1.0.1",
20901+ "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz",
20902+ "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==",
20903+ "requires": {
20904+ "@walletconnect/window-getters": "^1.0.1",
20905+ "tslib": "1.14.1"
20906+ }
20907+ },
20908+ "detect-browser": {
20909+ "version": "5.3.0",
20910+ "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
20911+ "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w=="
20912+ },
20913+ "query-string": {
20914+ "version": "7.1.3",
20915+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
20916+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
20917+ "requires": {
20918+ "decode-uri-component": "^0.2.2",
20919+ "filter-obj": "^1.1.0",
20920+ "split-on-first": "^1.0.0",
20921+ "strict-uri-encode": "^2.0.0"
20922+ }
20923+ }
20924+ }
1984020925 },
19841− "@walletconnect/socket-transport": {
19842− "version": "1.8.0",
20926+ "@walletconnect/time": {
20927+ "version": "1.0.2",
20928+ "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz",
20929+ "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==",
1984320930 "requires": {
19844− "@walletconnect/types": "^1.8.0",
19845− "@walletconnect/utils": "^1.8.0",
19846− "ws": "7.5.3"
20931+ "tslib": "1.14.1"
20932+ }
20933+ },
20934+ "@walletconnect/types": {
20935+ "version": "2.9.0",
20936+ "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.9.0.tgz",
20937+ "integrity": "sha512-ORopsMfSRvUYqtjKKd6scfg8o4/aGebipLxx92AuuUgMTERSU6cGmIrK6rdLu7W6FBJkmngPLEGc9mRqAb9Lug==",
20938+ "requires": {
20939+ "@walletconnect/events": "^1.0.1",
20940+ "@walletconnect/heartbeat": "1.2.1",
20941+ "@walletconnect/jsonrpc-types": "1.0.3",
20942+ "@walletconnect/keyvaluestorage": "^1.0.2",
20943+ "@walletconnect/logger": "^2.0.1",
20944+ "events": "^3.3.0"
1984720945 },
1984820946 "dependencies": {
19849− "ws": {
19850− "version": "7.5.3",
19851− "requires": {}
20947+ "@walletconnect/keyvaluestorage": {
20948+ "version": "1.0.2",
20949+ "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz",
20950+ "integrity": "sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==",
20951+ "requires": {
20952+ "safe-json-utils": "^1.1.1",
20953+ "tslib": "1.14.1"
20954+ }
1985220955 }
1985320956 }
1985420957 },
19855− "@walletconnect/types": {
19856− "version": "1.8.0"
20958+ "@web3modal/core": {
20959+ "version": "2.4.3",
20960+ "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-2.4.3.tgz",
20961+ "integrity": "sha512-7Z/sDe9RIYQ2k9ITcxgEa/u7FvlI76vcVVZn9UY4ISivefqrH4JAS3GX4JmVNUUlovwuiZdyqBv4llAQOMK6Rg==",
20962+ "requires": {
20963+ "buffer": "6.0.3",
20964+ "valtio": "1.10.5"
20965+ }
1985720966 },
19858− "@walletconnect/utils": {
19859− "version": "1.8.0",
20967+ "@web3modal/standalone": {
20968+ "version": "2.4.3",
20969+ "resolved": "https://registry.npmjs.org/@web3modal/standalone/-/standalone-2.4.3.tgz",
20970+ "integrity": "sha512-5ATXBoa4GGm+TIUSsKWsfWCJunv1XevOizpgTFhqyeGgRDmWhqsz9UIPzH/1mk+g0iJ/xqMKs5F6v9D2QeKxag==",
20971+ "requires": {
20972+ "@web3modal/core": "2.4.3",
20973+ "@web3modal/ui": "2.4.3"
20974+ }
20975+ },
20976+ "@web3modal/ui": {
20977+ "version": "2.4.3",
20978+ "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-2.4.3.tgz",
20979+ "integrity": "sha512-J989p8CdtEhI9gZHf/rZ/WFqYlrAHWw9GmAhFoiNODwjAp0BoG/uoaPiijJMchXdngihZOjLGCQwDXU16DHiKg==",
1986020980 "requires": {
19861− "@walletconnect/browser-utils": "^1.8.0",
19862− "@walletconnect/encoding": "^1.0.1",
19863− "@walletconnect/jsonrpc-utils": "^1.0.3",
19864− "@walletconnect/types": "^1.8.0",
19865− "bn.js": "4.11.8",
19866− "js-sha3": "0.8.0",
19867− "query-string": "6.13.5"
20981+ "@web3modal/core": "2.4.3",
20982+ "lit": "2.7.5",
20983+ "motion": "10.16.2",
20984+ "qrcode": "1.5.3"
1986820985 },
1986920986 "dependencies": {
19870− "bn.js": {
19871− "version": "4.11.8"
20987+ "cliui": {
20988+ "version": "6.0.0",
20989+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
20990+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
20991+ "requires": {
20992+ "string-width": "^4.2.0",
20993+ "strip-ansi": "^6.0.0",
20994+ "wrap-ansi": "^6.2.0"
20995+ }
20996+ },
20997+ "emoji-regex": {
20998+ "version": "8.0.0",
20999+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
21000+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
21001+ },
21002+ "find-up": {
21003+ "version": "4.1.0",
21004+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
21005+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
21006+ "requires": {
21007+ "locate-path": "^5.0.0",
21008+ "path-exists": "^4.0.0"
21009+ }
1987221010 },
19873− "js-sha3": {
19874− "version": "0.8.0"
21011+ "is-fullwidth-code-point": {
21012+ "version": "3.0.0",
21013+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
21014+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
21015+ },
21016+ "locate-path": {
21017+ "version": "5.0.0",
21018+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
21019+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
21020+ "requires": {
21021+ "p-locate": "^4.1.0"
21022+ }
21023+ },
21024+ "p-locate": {
21025+ "version": "4.1.0",
21026+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
21027+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
21028+ "requires": {
21029+ "p-limit": "^2.2.0"
21030+ }
21031+ },
21032+ "path-exists": {
21033+ "version": "4.0.0",
21034+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
21035+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
21036+ },
21037+ "pngjs": {
21038+ "version": "5.0.0",
21039+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
21040+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
21041+ },
21042+ "qrcode": {
21043+ "version": "1.5.3",
21044+ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
21045+ "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
21046+ "requires": {
21047+ "dijkstrajs": "^1.0.1",
21048+ "encode-utf8": "^1.0.3",
21049+ "pngjs": "^5.0.0",
21050+ "yargs": "^15.3.1"
21051+ }
21052+ },
21053+ "string-width": {
21054+ "version": "4.2.3",
21055+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
21056+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
21057+ "requires": {
21058+ "emoji-regex": "^8.0.0",
21059+ "is-fullwidth-code-point": "^3.0.0",
21060+ "strip-ansi": "^6.0.1"
21061+ }
21062+ },
21063+ "strip-ansi": {
21064+ "version": "6.0.1",
21065+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
21066+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
21067+ "requires": {
21068+ "ansi-regex": "^5.0.1"
21069+ }
21070+ },
21071+ "wrap-ansi": {
21072+ "version": "6.2.0",
21073+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
21074+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
21075+ "requires": {
21076+ "ansi-styles": "^4.0.0",
21077+ "string-width": "^4.1.0",
21078+ "strip-ansi": "^6.0.0"
21079+ }
21080+ },
21081+ "yargs": {
21082+ "version": "15.4.1",
21083+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
21084+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
21085+ "requires": {
21086+ "cliui": "^6.0.0",
21087+ "decamelize": "^1.2.0",
21088+ "find-up": "^4.1.0",
21089+ "get-caller-file": "^2.0.1",
21090+ "require-directory": "^2.1.1",
21091+ "require-main-filename": "^2.0.0",
21092+ "set-blocking": "^2.0.0",
21093+ "string-width": "^4.2.0",
21094+ "which-module": "^2.0.0",
21095+ "y18n": "^4.0.0",
21096+ "yargs-parser": "^18.1.2"
21097+ }
21098+ },
21099+ "yargs-parser": {
21100+ "version": "18.1.3",
21101+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
21102+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
21103+ "requires": {
21104+ "camelcase": "^5.0.0",
21105+ "decamelize": "^1.2.0"
21106+ }
1987521107 }
1987621108 }
1987721109 },
19878− "@walletconnect/window-getters": {
19879− "version": "1.0.0"
19880− },
19881− "@walletconnect/window-metadata": {
19882− "version": "1.0.0",
19883− "requires": {
19884− "@walletconnect/window-getters": "^1.0.0"
19885− }
19886− },
1988721110 "@welldone-software/why-did-you-render": {
1988821111 "version": "3.6.0",
1988921112 "requires": {
@@ -20155,6 +21378,11 @@
2015521378 "version": "2.1.2",
2015621379 "dev": true
2015721380 },
21381+ "atomic-sleep": {
21382+ "version": "1.0.0",
21383+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
21384+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="
21385+ },
2015821386 "available-typed-arrays": {
2015921387 "version": "1.0.5",
2016021388 "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
@@ -20778,21 +22006,11 @@
2077822006 "ieee754": "^1.2.1"
2077922007 }
2078022008 },
20781− "buffer-alloc": {
20782− "version": "1.2.0",
20783− "requires": {
20784− "buffer-alloc-unsafe": "^1.1.0",
20785− "buffer-fill": "^1.0.0"
20786− }
20787− },
20788− "buffer-alloc-unsafe": {
20789− "version": "1.1.0"
20790− },
20791− "buffer-fill": {
20792− "version": "1.0.0"
20793− },
2079422009 "buffer-from": {
20795− "version": "1.1.2"
22010+ "version": "1.1.2",
22011+ "dev": true,
22012+ "optional": true,
22013+ "peer": true
2079622014 },
2079722015 "buffer-to-arraybuffer": {
2079822016 "version": "0.0.5"
@@ -21034,14 +22252,6 @@
2103422252 }
2103522253 }
2103622254 },
21037− "cliui": {
21038− "version": "5.0.0",
21039− "requires": {
21040− "string-width": "^3.1.0",
21041− "strip-ansi": "^5.2.0",
21042− "wrap-ansi": "^5.1.0"
21043− }
21044− },
2104522255 "clone-response": {
2104622256 "version": "1.0.2",
2104722257 "requires": {
@@ -21335,7 +22545,9 @@
2133522545 "version": "1.2.0"
2133622546 },
2133722547 "decode-uri-component": {
21338− "version": "0.2.0"
22548+ "version": "0.2.2",
22549+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
22550+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
2133922551 },
2134022552 "decompress-response": {
2134122553 "version": "3.3.0",
@@ -21392,9 +22604,6 @@
2139222604 "destroy": {
2139322605 "version": "1.0.4"
2139422606 },
21395− "detect-browser": {
21396− "version": "5.2.0"
21397− },
2139822607 "detect-indent": {
2139922608 "version": "4.0.0",
2140022609 "requires": {
@@ -21463,6 +22672,17 @@
2146322672 "duplexer3": {
2146422673 "version": "0.1.4"
2146522674 },
22675+ "duplexify": {
22676+ "version": "4.1.2",
22677+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
22678+ "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
22679+ "requires": {
22680+ "end-of-stream": "^1.4.1",
22681+ "inherits": "^2.0.3",
22682+ "readable-stream": "^3.1.1",
22683+ "stream-shift": "^1.0.0"
22684+ }
22685+ },
2146622686 "ecc-jsbn": {
2146722687 "version": "0.1.2",
2146822688 "requires": {
@@ -21491,8 +22711,10 @@
2149122711 "minimalistic-crypto-utils": "^1.0.1"
2149222712 }
2149322713 },
21494− "emoji-regex": {
21495− "version": "7.0.3"
22714+ "encode-utf8": {
22715+ "version": "1.0.3",
22716+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
22717+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
2149622718 },
2149722719 "encodeurl": {
2149822720 "version": "1.0.2"
@@ -22507,6 +23729,11 @@
2250723729 "version": "2.0.6",
2250823730 "dev": true
2250923731 },
23732+ "fast-redact": {
23733+ "version": "3.2.0",
23734+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz",
23735+ "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw=="
23736+ },
2251023737 "fast-safe-stringify": {
2251123738 "version": "2.1.1"
2251223739 },
@@ -22562,6 +23789,11 @@
2256223789 "to-regex-range": "^5.0.1"
2256323790 }
2256423791 },
23792+ "filter-obj": {
23793+ "version": "1.1.0",
23794+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
23795+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="
23796+ },
2256523797 "final-form": {
2256623798 "version": "4.20.2",
2256723799 "requires": {
@@ -22590,6 +23822,7 @@
2259023822 },
2259123823 "find-up": {
2259223824 "version": "3.0.0",
23825+ "dev": true,
2259323826 "requires": {
2259423827 "locate-path": "^3.0.0"
2259523828 }
@@ -23695,6 +24928,11 @@
2369524928 "minimalistic-assert": "^1.0.1"
2369624929 }
2369724930 },
24931+ "hey-listen": {
24932+ "version": "1.0.8",
24933+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
24934+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
24935+ },
2369824936 "hmac-drbg": {
2369924937 "version": "1.0.1",
2370024938 "requires": {
@@ -24044,7 +25282,8 @@
2404425282 "version": "1.1.0"
2404525283 },
2404625284 "is-fullwidth-code-point": {
24047− "version": "2.0.0"
25285+ "version": "2.0.0",
25286+ "dev": true
2404825287 },
2404925288 "is-function": {
2405025289 "version": "1.0.2"
@@ -24496,12 +25735,41 @@
2449625735 "version": "1.1.6",
2449725736 "dev": true
2449825737 },
25738+ "lit": {
25739+ "version": "2.7.5",
25740+ "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.5.tgz",
25741+ "integrity": "sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ==",
25742+ "requires": {
25743+ "@lit/reactive-element": "^1.6.0",
25744+ "lit-element": "^3.3.0",
25745+ "lit-html": "^2.7.0"
25746+ }
25747+ },
25748+ "lit-element": {
25749+ "version": "3.3.2",
25750+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz",
25751+ "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==",
25752+ "requires": {
25753+ "@lit-labs/ssr-dom-shim": "^1.1.0",
25754+ "@lit/reactive-element": "^1.3.0",
25755+ "lit-html": "^2.7.0"
25756+ }
25757+ },
25758+ "lit-html": {
25759+ "version": "2.7.5",
25760+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.5.tgz",
25761+ "integrity": "sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA==",
25762+ "requires": {
25763+ "@types/trusted-types": "^2.0.2"
25764+ }
25765+ },
2449925766 "local-pkg": {
2450025767 "version": "0.4.2",
2450125768 "dev": true
2450225769 },
2450325770 "locate-path": {
2450425771 "version": "3.0.0",
25772+ "dev": true,
2450525773 "requires": {
2450625774 "p-locate": "^3.0.0",
2450725775 "path-exists": "^3.0.0"
@@ -24698,6 +25966,19 @@
2469825966 "iced-runtime": ">=0.0.1"
2469925967 }
2470025968 },
25969+ "motion": {
25970+ "version": "10.16.2",
25971+ "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz",
25972+ "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==",
25973+ "requires": {
25974+ "@motionone/animation": "^10.15.1",
25975+ "@motionone/dom": "^10.16.2",
25976+ "@motionone/svelte": "^10.16.2",
25977+ "@motionone/types": "^10.15.1",
25978+ "@motionone/utils": "^10.15.1",
25979+ "@motionone/vue": "^10.16.2"
25980+ }
25981+ },
2470125982 "ms": {
2470225983 "version": "2.0.0"
2470325984 },
@@ -24725,6 +26006,11 @@
2472526006 "varint": "^5.0.0"
2472626007 }
2472726008 },
26009+ "multiformats": {
26010+ "version": "9.9.0",
26011+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
26012+ "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
26013+ },
2472826014 "multihashes": {
2472926015 "version": "0.4.21",
2473026016 "requires": {
@@ -25015,6 +26301,11 @@
2501526301 "unset-value": "^0.1.1"
2501626302 }
2501726303 },
26304+ "on-exit-leak-free": {
26305+ "version": "0.2.0",
26306+ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz",
26307+ "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="
26308+ },
2501826309 "on-finished": {
2501926310 "version": "2.3.0",
2502026311 "requires": {
@@ -25070,6 +26361,7 @@
2507026361 },
2507126362 "p-locate": {
2507226363 "version": "3.0.0",
26364+ "dev": true,
2507326365 "requires": {
2507426366 "p-limit": "^2.0.0"
2507526367 }
@@ -25110,7 +26402,8 @@
2511026402 "version": "1.3.3"
2511126403 },
2511226404 "path-exists": {
25113− "version": "3.0.0"
26405+ "version": "3.0.0",
26406+ "dev": true
2511426407 },
2511526408 "path-is-absolute": {
2511626409 "version": "1.0.1"
@@ -25170,6 +26463,38 @@
2517026463 "version": "3.0.0",
2517126464 "dev": true
2517226465 },
26466+ "pino": {
26467+ "version": "7.11.0",
26468+ "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz",
26469+ "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==",
26470+ "requires": {
26471+ "atomic-sleep": "^1.0.0",
26472+ "fast-redact": "^3.0.0",
26473+ "on-exit-leak-free": "^0.2.0",
26474+ "pino-abstract-transport": "v0.5.0",
26475+ "pino-std-serializers": "^4.0.0",
26476+ "process-warning": "^1.0.0",
26477+ "quick-format-unescaped": "^4.0.3",
26478+ "real-require": "^0.1.0",
26479+ "safe-stable-stringify": "^2.1.0",
26480+ "sonic-boom": "^2.2.1",
26481+ "thread-stream": "^0.15.1"
26482+ }
26483+ },
26484+ "pino-abstract-transport": {
26485+ "version": "0.5.0",
26486+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz",
26487+ "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==",
26488+ "requires": {
26489+ "duplexify": "^4.1.2",
26490+ "split2": "^4.0.0"
26491+ }
26492+ },
26493+ "pino-std-serializers": {
26494+ "version": "4.0.0",
26495+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz",
26496+ "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q=="
26497+ },
2517326498 "please-upgrade-node": {
2517426499 "version": "3.2.0",
2517526500 "dev": true,
@@ -25177,18 +26502,12 @@
2517726502 "semver-compare": "^1.0.0"
2517826503 }
2517926504 },
25180− "pngjs": {
25181− "version": "3.4.0"
25182− },
2518326505 "pnglib": {
2518426506 "version": "0.0.1"
2518526507 },
2518626508 "postcss-value-parser": {
2518726509 "version": "4.1.0"
2518826510 },
25189− "preact": {
25190− "version": "10.4.1"
25191− },
2519226511 "prelude-ls": {
2519326512 "version": "1.1.2",
2519426513 "dev": true,
@@ -25231,6 +26550,11 @@
2523126550 "process": {
2523226551 "version": "0.11.10"
2523326552 },
26553+ "process-warning": {
26554+ "version": "1.0.0",
26555+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz",
26556+ "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="
26557+ },
2523426558 "prop-types": {
2523526559 "version": "15.8.1",
2523626560 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
@@ -25248,6 +26572,11 @@
2524826572 "ipaddr.js": "1.9.1"
2524926573 }
2525026574 },
26575+ "proxy-compare": {
26576+ "version": "2.5.1",
26577+ "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz",
26578+ "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA=="
26579+ },
2525126580 "pseudomap": {
2525226581 "version": "1.0.2",
2525326582 "dev": true
@@ -25282,49 +26611,20 @@
2528226611 "bitcoin-ops": "^1.3.0"
2528326612 }
2528426613 },
25285− "qrcode": {
25286− "version": "1.4.4",
25287− "requires": {
25288− "buffer": "^5.4.3",
25289− "buffer-alloc": "^1.2.0",
25290− "buffer-from": "^1.1.1",
25291− "dijkstrajs": "^1.0.1",
25292− "isarray": "^2.0.1",
25293− "pngjs": "^3.3.0",
25294− "yargs": "^13.2.4"
25295− },
25296− "dependencies": {
25297− "buffer": {
25298− "version": "5.7.1",
25299− "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
25300− "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
25301− "requires": {
25302− "base64-js": "^1.3.1",
25303− "ieee754": "^1.1.13"
25304− }
25305− },
25306− "isarray": {
25307− "version": "2.0.5"
25308− }
25309− }
25310− },
2531126614 "qs": {
2531226615 "version": "6.7.0"
2531326616 },
25314− "query-string": {
25315− "version": "6.13.5",
25316− "requires": {
25317− "decode-uri-component": "^0.2.0",
25318− "split-on-first": "^1.0.0",
25319− "strict-uri-encode": "^2.0.0"
25320− }
25321− },
2532226617 "queue-microtask": {
2532326618 "version": "1.2.3",
2532426619 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2532526620 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2532626621 "dev": true
2532726622 },
26623+ "quick-format-unescaped": {
26624+ "version": "4.0.4",
26625+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
26626+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="
26627+ },
2532826628 "quick-lru": {
2532926629 "version": "5.1.1",
2533026630 "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
@@ -25431,6 +26731,11 @@
2543126731 "picomatch": "^2.2.1"
2543226732 }
2543326733 },
26734+ "real-require": {
26735+ "version": "0.1.0",
26736+ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz",
26737+ "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg=="
26738+ },
2543426739 "redent": {
2543526740 "version": "3.0.0",
2543626741 "dev": true,
@@ -25696,6 +27001,11 @@
2569627001 "safe-buffer": {
2569727002 "version": "5.2.1"
2569827003 },
27004+ "safe-json-utils": {
27005+ "version": "1.1.1",
27006+ "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz",
27007+ "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ=="
27008+ },
2569927009 "safe-regex-test": {
2570027010 "version": "1.0.0",
2570127011 "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
@@ -25706,6 +27016,11 @@
2570627016 "is-regex": "^1.1.4"
2570727017 }
2570827018 },
27019+ "safe-stable-stringify": {
27020+ "version": "2.4.3",
27021+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
27022+ "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g=="
27023+ },
2570927024 "safer-buffer": {
2571027025 "version": "2.1.2"
2571127026 },
@@ -26004,6 +27319,14 @@
2600427319 "slash": {
2600527320 "version": "1.0.0"
2600627321 },
27322+ "sonic-boom": {
27323+ "version": "2.8.0",
27324+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz",
27325+ "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==",
27326+ "requires": {
27327+ "atomic-sleep": "^1.0.0"
27328+ }
27329+ },
2600727330 "source-map": {
2600827331 "version": "0.5.7"
2600927332 },
@@ -26148,6 +27471,11 @@
2614827471 "split-on-first": {
2614927472 "version": "1.1.0"
2615027473 },
27474+ "split2": {
27475+ "version": "4.2.0",
27476+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
27477+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="
27478+ },
2615127479 "sprintf-js": {
2615227480 "version": "1.0.3",
2615327481 "dev": true
@@ -26179,6 +27507,11 @@
2617927507 "readable-stream": "^3.5.0"
2618027508 }
2618127509 },
27510+ "stream-shift": {
27511+ "version": "1.0.1",
27512+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
27513+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
27514+ },
2618227515 "strict-event-emitter-types": {
2618327516 "version": "2.0.0"
2618427517 },
@@ -26197,14 +27530,6 @@
2619727530 "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
2619827531 "dev": true
2619927532 },
26200− "string-width": {
26201− "version": "3.1.0",
26202− "requires": {
26203− "emoji-regex": "^7.0.1",
26204− "is-fullwidth-code-point": "^2.0.0",
26205− "strip-ansi": "^5.1.0"
26206− }
26207− },
2620827533 "string.prototype.matchall": {
2620927534 "version": "4.0.8",
2621027535 "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
@@ -26250,17 +27575,6 @@
2625027575 "es-abstract": "^1.19.5"
2625127576 }
2625227577 },
26253− "strip-ansi": {
26254− "version": "5.2.0",
26255− "requires": {
26256− "ansi-regex": "^4.1.0"
26257− },
26258− "dependencies": {
26259− "ansi-regex": {
26260− "version": "4.1.0"
26261− }
26262− }
26263− },
2626427578 "strip-bom": {
2626527579 "version": "3.0.0",
2626627580 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -26570,6 +27884,14 @@
2657027884 "version": "0.2.0",
2657127885 "dev": true
2657227886 },
27887+ "thread-stream": {
27888+ "version": "0.15.2",
27889+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz",
27890+ "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==",
27891+ "requires": {
27892+ "real-require": "^0.1.0"
27893+ }
27894+ },
2657327895 "timed-out": {
2657427896 "version": "4.0.1"
2657527897 },
@@ -26720,6 +28042,14 @@
2672028042 "ua-parser-js": {
2672128043 "version": "0.7.28"
2672228044 },
28045+ "uint8arrays": {
28046+ "version": "3.1.1",
28047+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz",
28048+ "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==",
28049+ "requires": {
28050+ "multiformats": "^9.4.2"
28051+ }
28052+ },
2672328053 "ultron": {
2672428054 "version": "1.1.1"
2672528055 },
@@ -26902,6 +28232,12 @@
2690228232 "url-to-options": {
2690328233 "version": "1.0.1"
2690428234 },
28235+ "use-sync-external-store": {
28236+ "version": "1.2.0",
28237+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
28238+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
28239+ "requires": {}
28240+ },
2690528241 "utf-8-validate": {
2690628242 "version": "5.0.5",
2690728243 "requires": {
@@ -26938,6 +28274,15 @@
2693828274 "spdx-expression-parse": "^3.0.0"
2693928275 }
2694028276 },
28277+ "valtio": {
28278+ "version": "1.10.5",
28279+ "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.10.5.tgz",
28280+ "integrity": "sha512-jTp0k63VXf4r5hPoaC6a6LCG4POkVSh629WLi1+d5PlajLsbynTMd7qAgEiOSPxzoX5iNvbN7iZ/k/g29wrNiQ==",
28281+ "requires": {
28282+ "proxy-compare": "2.5.1",
28283+ "use-sync-external-store": "1.2.0"
28284+ }
28285+ },
2694128286 "varint": {
2694228287 "version": "5.0.2"
2694328288 },
@@ -27638,36 +28983,13 @@
2763828983 "optional": true,
2763928984 "peer": true
2764028985 },
27641− "wrap-ansi": {
27642− "version": "5.1.0",
27643− "requires": {
27644− "ansi-styles": "^3.2.0",
27645− "string-width": "^3.0.0",
27646− "strip-ansi": "^5.0.0"
27647− },
27648− "dependencies": {
27649− "ansi-styles": {
27650− "version": "3.2.1",
27651− "requires": {
27652− "color-convert": "^1.9.0"
27653− }
27654− },
27655− "color-convert": {
27656− "version": "1.9.3",
27657− "requires": {
27658− "color-name": "1.1.3"
27659− }
27660− },
27661− "color-name": {
27662− "version": "1.1.3"
27663− }
27664− }
27665− },
2766628986 "wrappy": {
2766728987 "version": "1.0.2"
2766828988 },
2766928989 "ws": {
27670− "version": "7.4.6",
28990+ "version": "7.5.9",
28991+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
28992+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
2767128993 "requires": {}
2767228994 },
2767328995 "xhr": {
@@ -27747,28 +29069,6 @@
2774729069 "version": "1.10.2",
2774829070 "dev": true
2774929071 },
27750− "yargs": {
27751− "version": "13.3.2",
27752− "requires": {
27753− "cliui": "^5.0.0",
27754− "find-up": "^3.0.0",
27755− "get-caller-file": "^2.0.1",
27756− "require-directory": "^2.1.1",
27757− "require-main-filename": "^2.0.0",
27758− "set-blocking": "^2.0.0",
27759− "string-width": "^3.0.0",
27760− "which-module": "^2.0.0",
27761− "y18n": "^4.0.0",
27762− "yargs-parser": "^13.1.2"
27763− }
27764− },
27765− "yargs-parser": {
27766− "version": "13.1.2",
27767− "requires": {
27768− "camelcase": "^5.0.0",
27769− "decamelize": "^1.2.0"
27770− }
27771− },
2777229072 "yocto-queue": {
2777329073 "version": "0.1.0",
2777429074 "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
package.json+5−3
@@ -36,8 +36,10 @@
3636 "@types/styled-system__css": "^5.0.15",
3737 "@urbit/nockjs": "^0.0.1",
3838 "@urbit/roller-api": "^0.1.15",
39− "@walletconnect/client": "^1.8.0",
40− "@walletconnect/qrcode-modal": "^1.8.0",
39+ "@walletconnect/encoding": "^1.0.2",
40+ "@walletconnect/sign-client": "^2.7.6",
41+ "@walletconnect/types": "^2.7.6",
42+ "@web3modal/standalone": "^2.4.1",
4143 "@welldone-software/why-did-you-render": "^3.2.3",
4244 "agent-base": "^6.0.2",
4345 "async-retry": "^1.2.3",
@@ -163,4 +165,4 @@
163165 "pre-commit": "npm-run-all lint:check"
164166 }
165167 }
166−}
168+}
src/components/L2/Dropdowns/FeeDropdown.tsx+11−7
@@ -25,11 +25,15 @@ export default function FeeDropdown({
2525}: {
2626 setGasPrice: (g: GasPriceData) => void;
2727}) {
28− const { suggestedGasPrices }: { suggestedGasPrices: {
29− fast: GasPriceData,
30− average: GasPriceData,
31− low: GasPriceData,
32− }} = useGasPrice(DEFAULT_GAS_PRICE_GWEI);
28+ const {
29+ suggestedGasPrices,
30+ }: {
31+ suggestedGasPrices: {
32+ fast: GasPriceData;
33+ average: GasPriceData;
34+ low: GasPriceData;
35+ };
36+ } = useGasPrice(DEFAULT_GAS_PRICE_GWEI);
3337
3438 const [open, setOpen] = useState(false);
3539 const [useCustom, setUseCustom] = useState(false);
@@ -58,12 +62,12 @@ export default function FeeDropdown({
5862 customWait = `< ${fast.wait}`;
5963 }
6064
61− setSelected({
65+ setSelected({
6266 price: cleanedNum,
6367 wait: customWait,
6468 maxFeePerGas: cleanedNum,
6569 maxPriorityFeePerGas: cleanedNum,
66− suggestedBaseFeePerGas: cleanedNum
70+ suggestedBaseFeePerGas: cleanedNum,
6771 });
6872 };
6973
src/components/L2/InviteConverter.tsx+1−1
@@ -99,7 +99,7 @@ export const InviteConverter = ({ points }: InviteConverterProps) => {
9999 }
100100
101101 collect();
102− }, [points]);
102+ }, [points, api]);
103103
104104 const selectChildren = useCallback(
105105 (children: Point[]) => {
src/lib/WalletConnect.ts+11−3
@@ -1,9 +1,13 @@
1−import { ITxData } from '@walletconnect/types';
2−import { JsonTx, Transaction, FeeMarketEIP1559Transaction as EIP1559Transaction } from '@ethereumjs/tx';
1+import {
2+ JsonTx,
3+ Transaction,
4+ FeeMarketEIP1559Transaction as EIP1559Transaction,
5+} from '@ethereumjs/tx';
36import { stripHexPrefix } from './utils/address';
47import { FakeSignableTx, FakeSignResult } from './txn';
58import Web3 from 'web3';
69import { EIP1559_TRANSACTION_TYPE } from './constants';
10+import { ITxData } from './types/ITxData';
711
812type SignWalletConnectTransactionArgs = {
913 from: string;
@@ -31,9 +35,13 @@ const walletConnectSignTransaction = async ({
3135 try {
3236 signature = await txnSigner(wcFormattedTx);
3337 } catch (e) {
34− if (e.message === 'METHOD_NOT_SUPPORTED' || e.message === '"eth_signTransaction" not implemented') {
38+ if (
39+ e.message === 'METHOD_NOT_SUPPORTED' ||
40+ e.message === '"eth_signTransaction" not implemented'
41+ ) {
3542 console.log('connected wc wallet does not support tx signing.');
3643 return FakeSignResult(
44+ //@ts-ignore
3745 wcFormattedTx,
3846 //@ts-ignore // TODO
3947 walletConnectSendTransaction(txnSender)
src/lib/authToken.ts+6−7
@@ -2,7 +2,6 @@ import { crypto } from 'bitcoinjs-lib';
22import { ecdsaSign } from 'secp256k1';
33import Web3 from 'web3';
44import { hexToBytes } from 'web3-utils';
5−import WalletConnect from '@walletconnect/client';
65import { hashPersonalMessage } from '@ethereumjs/util';
76import { WALLET_TYPES } from './constants';
87import BridgeWallet from './types/BridgeWallet';
@@ -14,10 +13,10 @@ function signMessage(privateKey: Buffer, useLegacyTokenSigning = false) {
1413 const msg = '\x19Ethereum Signed Message:\n' + MESSAGE.length + MESSAGE;
1514 const hashed = useLegacyTokenSigning
1615 ? crypto.sha256(Buffer.from(msg))
17− : hashPersonalMessage(Buffer.from(MESSAGE)) // msg prefix is handled by lib
16+ : hashPersonalMessage(Buffer.from(MESSAGE)); // msg prefix is handled by lib
1817
1918 const hashAry = new Uint8Array(hashed.buffer);
20− const { signature, recid: _recid } = ecdsaSign(hashAry, privateKey);
19+ const { signature } = ecdsaSign(hashAry, privateKey);
2120
2221 // add key recovery parameter
2322 const ethSignature = new Uint8Array(65);
@@ -56,7 +55,7 @@ type MetamaskAuthTokenArgs = {
5655
5756type WalletConnectAuthTokenArgs = {
5857 address: string;
59− connector: WalletConnect;
58+ signPersonalMessage: Function;
6059 walletType: symbol;
6160};
6261
@@ -87,11 +86,11 @@ const getMetamaskAuthToken = ({ address, web3 }: MetamaskAuthTokenArgs) => {
8786 }
8887};
8988
90−const getWalletConnectAuthToken = ({
89+const getWalletConnectAuthToken = async ({
9190 address,
92− connector,
91+ signPersonalMessage,
9392}: WalletConnectAuthTokenArgs) => {
94− return connector.signPersonalMessage([MESSAGE, address]);
93+ return await signPersonalMessage({ message: MESSAGE, address: address });
9594};
9695
9796const getDefaultAuthToken = ({
src/lib/getSuggestedGasPrice.js+41−28
@@ -7,14 +7,15 @@ import Web3 from 'web3';
77// we don't want to charge users more than the gas tank funds
88const minGas = gas => Math.min(Math.ceil(gas), MAX_GAS_PRICE_GWEI);
99
10−const feeToInt = (f) => f < 1 ? 1 : Math.round(f);
10+const feeToInt = f => (f < 1 ? 1 : Math.round(f));
1111
12−const feeToWei = (fee) => Web3.utils.toHex(Web3.utils.toWei(String(fee), 'gwei' ))
12+const feeToWei = fee => Web3.utils.toHex(Web3.utils.toWei(String(fee), 'gwei'));
1313
14−const calculateMaxFee = (baseFee, maxPriorityFee) => feeToWei(Math.round((2 * baseFee) + maxPriorityFee))
14+const calculateMaxFee = (baseFee, maxPriorityFee) =>
15+ feeToWei(Math.round(2 * baseFee + maxPriorityFee));
1516
1617// Convert seconds to minutes prettily
17−const formatWait = (wait) => Math.round((wait * 100) / 60) / 100;
18+const formatWait = wait => Math.round((wait * 100) / 60) / 100;
1819
1920export const defaultGasValues = value => ({
2021 fast: {
@@ -22,25 +23,25 @@ export const defaultGasValues = value => ({
2223 wait: '1',
2324 maxFeePerGas: value,
2425 maxPriorityFeePerGas: 1,
25− suggestedBaseFeePerGas: value > 2 ? value -1 : 1,
26+ suggestedBaseFeePerGas: value > 2 ? value - 1 : 1,
2627 },
2728 average: {
2829 price: value,
2930 wait: '1',
3031 maxFeePerGas: value,
3132 maxPriorityFeePerGas: 1,
32− suggestedBaseFeePerGas: value > 2 ? value -1 : 1,
33+ suggestedBaseFeePerGas: value > 2 ? value - 1 : 1,
3334 },
3435 low: {
3536 price: value,
3637 wait: '1',
3738 maxFeePerGas: value,
3839 maxPriorityFeePerGas: 1,
39− suggestedBaseFeePerGas: value > 2 ? value -1 : 1,
40+ suggestedBaseFeePerGas: value > 2 ? value - 1 : 1,
4041 },
4142});
4243
43−const getGasForNetwork = async (providerUrl) => {
44+const getGasForNetwork = async providerUrl => {
4445 try {
4546 const [feeResponse, waitResponse] = await Promise.all([
4647 fetch(
@@ -53,19 +54,16 @@ const getGasForNetwork = async (providerUrl) => {
5354 cache: 'no-cache',
5455 }
5556 ),
56− fetch(
57− 'https://ethereum-api.xyz/gas-prices',
58− {
59− method: 'GET',
60− cache: 'no-cache',
61− }
62− )
57+ fetch('https://ethereum-api.xyz/gas-prices', {
58+ method: 'GET',
59+ cache: 'no-cache',
60+ }),
6361 ]);
6462
6563 const [feeJson, waitJson] = await Promise.all([
6664 feeResponse.json(),
67− waitResponse.json()
68− ])
65+ waitResponse.json(),
66+ ]);
6967
7068 const suggestedBaseFeePerGas = Number(feeJson.result.suggestBaseFee);
7169
@@ -75,35 +73,50 @@ const getGasForNetwork = async (providerUrl) => {
7573 fast: {
7674 price: minGas(feeJson.result.FastGasPrice),
7775 wait: formatWait(waitJson.result.fast.time),
78− maxFeePerGas: calculateMaxFee(suggestedBaseFeePerGas, feeJson.result.FastGasPrice - suggestedBaseFeePerGas),
79− maxPriorityFeePerGas: feeToInt((feeJson.result.FastGasPrice - suggestedBaseFeePerGas)),
80− suggestedBaseFeePerGas
76+ maxFeePerGas: calculateMaxFee(
77+ suggestedBaseFeePerGas,
78+ feeJson.result.FastGasPrice - suggestedBaseFeePerGas
79+ ),
80+ maxPriorityFeePerGas: feeToInt(
81+ feeJson.result.FastGasPrice - suggestedBaseFeePerGas
82+ ),
83+ suggestedBaseFeePerGas,
8184 },
8285 average: {
8386 price: minGas(feeJson.result.ProposeGasPrice),
8487 wait: formatWait(waitJson.result.average.time),
85− maxFeePerGas: calculateMaxFee(suggestedBaseFeePerGas, feeJson.result.ProposeGasPrice - suggestedBaseFeePerGas),
86− maxPriorityFeePerGas: feeToInt((feeJson.result.ProposeGasPrice - suggestedBaseFeePerGas)),
87− suggestedBaseFeePerGas
88+ maxFeePerGas: calculateMaxFee(
89+ suggestedBaseFeePerGas,
90+ feeJson.result.ProposeGasPrice - suggestedBaseFeePerGas
91+ ),
92+ maxPriorityFeePerGas: feeToInt(
93+ feeJson.result.ProposeGasPrice - suggestedBaseFeePerGas
94+ ),
95+ suggestedBaseFeePerGas,
8896 },
8997 low: {
9098 price: minGas(feeJson.result.SafeGasPrice),
9199 wait: formatWait(waitJson.result.slow.time),
92− maxFeePerGas: calculateMaxFee(suggestedBaseFeePerGas, feeJson.result.SafeGasPrice - suggestedBaseFeePerGas),
93− maxPriorityFeePerGas: feeToInt((feeJson.result.SafeGasPrice - suggestedBaseFeePerGas)),
94− suggestedBaseFeePerGas
100+ maxFeePerGas: calculateMaxFee(
101+ suggestedBaseFeePerGas,
102+ feeJson.result.SafeGasPrice - suggestedBaseFeePerGas
103+ ),
104+ maxPriorityFeePerGas: feeToInt(
105+ feeJson.result.SafeGasPrice - suggestedBaseFeePerGas
106+ ),
107+ suggestedBaseFeePerGas,
95108 },
96109 };
97110 } catch (e) {
98111 console.warn(e);
99112 return defaultGasValues(DEFAULT_GAS_PRICE_GWEI);
100113 }
101−}
114+};
102115
103116export default async function getSuggestedGasPrice(networkType) {
104117 switch (networkType) {
105118 case NETWORK_TYPES.GOERLI:
106− return getGasForNetwork('https://api-goerli.etherscan.io')
119+ return getGasForNetwork('https://api-goerli.etherscan.io');
107120 case NETWORK_TYPES.OFFLINE:
108121 return defaultGasValues(DEFAULT_GAS_PRICE_GWEI);
109122 case NETWORK_TYPES.LOCAL:
src/lib/metamask.ts+6−5
@@ -1,6 +1,5 @@
1−import { FeeMarketEIP1559Transaction as EIP1559Transaction, JsonTx } from '@ethereumjs/tx';
1+import { FeeMarketEIP1559Transaction as EIP1559Transaction } from '@ethereumjs/tx';
22import Web3 from 'web3';
3−import { toHex } from 'web3-utils';
43import { FakeSignableTx, FakeSignResult } from './txn';
54
65export class MetamaskWallet {
@@ -19,14 +18,16 @@ export const metamaskSignTransaction = async (txn: EIP1559Transaction) => {
1918
2019const metamaskSendTransaction = async (txn: FakeSignableTx, web3: Web3) => {
2120 /**
22− * Depending which version of Metamask is installed, there are different
21+ * Depending which version of Metamask is installed, there are different
2322 * approaches to get the `from` address.
2423 */
2524 let from = null;
2625 if (window.ethereum) {
2726 from = window.ethereum.selectedAddress;
2827 if (!from) {
29− const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' });
28+ const accounts = await window.ethereum.request({
29+ method: 'eth_requestAccounts',
30+ });
3031 from = accounts[0] ?? null;
3132 }
3233 } else if (window.web3) {
@@ -53,7 +54,7 @@ const metamaskSendTransaction = async (txn: FakeSignableTx, web3: Web3) => {
5354 value,
5455 data,
5556 maxPriorityFeePerGas,
56− maxFeePerGas
57+ maxFeePerGas,
5758 };
5859
5960 let txHash;
src/lib/reticket.js+1−3
@@ -146,9 +146,7 @@ export async function reticketPointBetweenWallets({
146146
147147 progress(TRANSACTION_PROGRESS.SIGNING);
148148
149− const gasPriceData = (
150− await getSuggestedGasPrice(networkType)
151− ).average;
149+ const gasPriceData = (await getSuggestedGasPrice(networkType)).average;
152150 const gasPriceGwei = gasPriceData.price.toFixed();
153151 const chainId = await web3.eth.net.getId();
154152 const gasPriceWeiBN = toBN(safeToWei(gasPriceGwei, 'gwei'));
src/lib/txn.ts+39−20
@@ -1,17 +1,25 @@
11import { Common, Chain, Hardfork } from '@ethereumjs/common';
2−import { Transaction, FeeMarketEIP1559Transaction as EIP1559Transaction, TxOptions, TxData, FeeMarketEIP1559TxData as EIP1559TxData } from '@ethereumjs/tx';
3−import { ITxData } from '@walletconnect/types';
2+import {
3+ FeeMarketEIP1559Transaction as EIP1559Transaction,
4+ TxOptions,
5+ FeeMarketEIP1559TxData as EIP1559TxData,
6+} from '@ethereumjs/tx';
47import { toHex, toWei } from 'web3-utils';
58import retry from 'async-retry';
69import { NETWORK_TYPES } from './network';
710import { walletConnectSignTransaction } from './WalletConnect';
811import { metamaskSignTransaction } from './metamask';
912import { addHexPrefix } from './utils/address';
10−import { CHECK_BLOCK_EVERY_MS, EIP1559_TRANSACTION_TYPE, WALLET_TYPES } from './constants';
13+import {
14+ CHECK_BLOCK_EVERY_MS,
15+ EIP1559_TRANSACTION_TYPE,
16+ WALLET_TYPES,
17+} from './constants';
1118import Web3 from 'web3';
1219import { TransactionConfig, TransactionReceipt } from 'web3-core';
1320import BridgeWallet from './types/BridgeWallet';
1421import { GasPriceData } from 'components/L2/Dropdowns/FeeDropdown';
22+import { ITxData } from './types/ITxData';
1523
1624const RETRY_OPTIONS = {
1725 retries: 99999,
@@ -45,7 +53,7 @@ interface signTransactionProps {
4553 walletType: symbol;
4654 walletHdPath: string; // TODO: is this still needed?
4755 networkType: symbol;
48− txn: { data: string, to: string, value: number }
56+ txn: { data: string; to: string; value: number };
4957 nonce: number | string;
5058 chainId: number | string;
5159 gasPriceData: GasPriceData;
@@ -55,28 +63,33 @@ interface signTransactionProps {
5563}
5664
5765const _web3 = () => {
58− const ENDPOINT = `https://mainnet.infura.io/v3/${import.meta.env.VITE_INFURA_ENDPOINT}`;
66+ const ENDPOINT = `https://mainnet.infura.io/v3/${
67+ import.meta.env.VITE_INFURA_ENDPOINT
68+ }`;
5969 return new Web3(new Web3.providers.HttpProvider(ENDPOINT));
60−}
70+};
6171
6272const estimateGasLimit = async (utx: TransactionConfig) => {
6373 const web3 = _web3();
6474 const estimate = await web3.eth.estimateGas(utx);
65− return web3.utils.toBN(estimate).muln(120).divn(100); // 20% cushion
66−}
75+ return web3.utils
76+ .toBN(estimate)
77+ .muln(120)
78+ .divn(100); // 20% cushion
79+};
6780
6881const getMaxFeePerGas = async () => {
6982 const web3 = _web3();
7083 const fee = await web3.eth.getGasPrice();
71− return (Number(fee) * 1.20).toFixed(0); // 20% cushion
72−}
84+ return (Number(fee) * 1.2).toFixed(0); // 20% cushion
85+};
7386
7487const signTransaction = async ({
7588 wallet,
7689 walletType,
7790 walletHdPath, // TODO
7891 networkType,
79− txn, // output of transactionBuilder in useEthereumTransaction
92+ txn, // output of transactionBuilder in useEthereumTransaction
8093 nonce, // number
8194 chainId, // number
8295 gasPriceData, // GasPriceData
@@ -85,7 +98,7 @@ const signTransaction = async ({
8598 txnSender, // and a sending function, for wallets that need these passed in.
8699}: signTransactionProps) => {
87100 const from = wallet.address;
88− const estimate = await estimateGasLimit({...txn, from });
101+ const estimate = await estimateGasLimit({ ...txn, from });
89102 const maxFeePerGas = await getMaxFeePerGas();
90103
91104 const txParams: EIP1559TxData = {
@@ -93,24 +106,26 @@ const signTransaction = async ({
93106 to: toHex(txn.to),
94107 gasLimit: toHex(estimate),
95108 maxFeePerGas: toHex(maxFeePerGas),
96− maxPriorityFeePerGas: toHex(toWei(Math.round(gasPriceData.maxPriorityFeePerGas).toFixed(0), 'gwei')),
109+ maxPriorityFeePerGas: toHex(
110+ toWei(Math.round(gasPriceData.maxPriorityFeePerGas).toFixed(0), 'gwei')
111+ ),
97112 nonce: toHex(nonce),
98113 chainId: toHex(chainId),
99114 type: toHex(EIP1559_TRANSACTION_TYPE),
100− }
101−
115+ };
116+
102117 const chain =
103− networkType === NETWORK_TYPES.GOERLI ? Chain.Goerli : Chain.Mainnet;
118+ networkType === NETWORK_TYPES.GOERLI ? Chain.Goerli : Chain.Mainnet;
104119
105120 const txConfig: TxOptions = {
106121 freeze: false,
107122 common: new Common({
108123 chain,
109124 hardfork: Hardfork.Merge,
110− })
125+ }),
111126 };
112127
113− let stx = EIP1559Transaction.fromTxData(txParams, txConfig)
128+ let stx = EIP1559Transaction.fromTxData(txParams, txConfig);
114129
115130 if (walletType === WALLET_TYPES.METAMASK) {
116131 return metamaskSignTransaction(stx);
@@ -139,7 +154,8 @@ const sendSignedTransaction = (
139154 doubtNonceError: boolean
140155): Promise<string> => {
141156 // if we couldn't sign it, we depend on the given sender function
142− if (!(stx instanceof EIP1559Transaction)) { // TODO
157+ if (!(stx instanceof EIP1559Transaction)) {
158+ // TODO
143159 if (doubtNonceError) {
144160 console.log('why doubting nonce error? tank unavailable without rawtx.');
145161 }
@@ -221,7 +237,10 @@ const sendAndAwaitAllSerial = (
221237) => {
222238 //@ts-expect-error tsc complains that stxs.reduce() is not callable
223239 return stxs.reduce(
224− (promise: Promise<TransactionReceipt[]>, stx: EIP1559Transaction | FakeSignedTx) =>
240+ (
241+ promise: Promise<TransactionReceipt[]>,
242+ stx: EIP1559Transaction | FakeSignedTx
243+ ) =>
225244 promise.then(async (receipts = []) => {
226245 const txHash = await sendSignedTransaction(web3, stx, doubtNonceError);
227246 return [...receipts, await waitForTransactionConfirm(web3, txHash)];
src/lib/types/ITxData.tsnew file+9
@@ -0,0 +1,9 @@
1+export type ITxData = {
2+ from: string;
3+ to?: string;
4+ gas: string;
5+ gasPrice?: string;
6+ value?: string;
7+ data?: string;
8+ nonce?: string;
9+};
src/lib/types/L2Transaction.ts+3−1
@@ -11,8 +11,8 @@ import RollerRPCAPI, {
1111 Spawn,
1212 TransferPoint,
1313} from '@urbit/roller-api';
14−import WalletConnect from '@walletconnect/client';
1514import BridgeWallet from './BridgeWallet';
15+import { SignClient as WalletConnect } from '@walletconnect/sign-client/dist/types/client';
1616
1717export type TransactionType =
1818 | 'transferPoint'
@@ -45,6 +45,8 @@ export interface L2TransactionArgs extends SendL2Params {
4545 walletType: symbol;
4646 web3: any;
4747 connector: WalletConnect | null;
48+ isConnected: Function;
49+ signPersonalMessage: Function;
4850}
4951
5052export interface TransactionData {
src/lib/types/Point.ts+4−1
@@ -209,7 +209,10 @@ export default class Point {
209209 this.ownManageSpawnVote =
210210 !this.isPlaceholder &&
211211 !this.isDefault &&
212− (this.isOwner || this.isSpawnProxy || this.isManagementProxy || this.isVotingProxy);
212+ (this.isOwner ||
213+ this.isSpawnProxy ||
214+ this.isManagementProxy ||
215+ this.isVotingProxy);
213216 this.shouldDisplay = this.ownManageSpawnVote || this.isTransferProxy;
214217 this.isOutgoing =
215218 this.isTransferProxySet &&
src/lib/useGasPrice.js+6−4
@@ -20,7 +20,9 @@ export default function useGasPrice(initialGasPrice = DEFAULT_GAS_PRICE_GWEI) {
2020 const [suggestedGasPrices, setSuggestedGasPrices] = useState(
2121 defaultGasValues(initialGasPrice)
2222 ); // fast, average, low. In gwei
23− const [gasPrice, setGasPrice] = useState(defaultGasValues(initialGasPrice).average); // GasPriceData
23+ const [gasPrice, setGasPrice] = useState(
24+ defaultGasValues(initialGasPrice).average
25+ ); // GasPriceData
2426
2527 const fetchPrices = useCallback(async () => {
2628 if (!mounted) {
@@ -33,13 +35,13 @@ export default function useGasPrice(initialGasPrice = DEFAULT_GAS_PRICE_GWEI) {
3335 // TODO: BN
3436 setSuggestedGasPrices(suggestedGasPrices);
3537 setGasPrice(suggestedGasPrices.average);
36− }, [mounted]);
38+ }, [mounted, networkType]);
3739
3840 useEffect(() => {
3941 setMounted(true);
4042 fetchPrices();
41− return () => (setMounted(false));
42− }, [mounted, networkType]);
43+ return () => setMounted(false);
44+ }, [mounted, networkType, fetchPrices]);
4345
4446 const resetGasPrice = useCallback(
4547 () => setGasPrice(suggestedGasPrices.average),
src/lib/useKeyfileGenerator.ts+1−1
@@ -24,7 +24,7 @@ interface useKeyfileGeneratorArgs {
2424
2525/**
2626 * The default Keyfile Generator. Can be used by itself, or composed with
27− * other hooks (see `useActivationKeyfileGenerator` and
27+ * other hooks (see `useActivationKeyfileGenerator` and
2828 * `useSingleKeyfileGenerator`).
2929 *
3030 * @param point Point - (optional) the Point for which to generate keys
src/lib/useReticketL2Spawn.ts+5−3
@@ -1,7 +1,6 @@
11import { EthAddress, Ship } from '@urbit/roller-api';
22import { useCallback } from 'react';
33import Web3 from 'web3';
4−import { ITxData } from '@walletconnect/types';
54import { INITIAL_NETWORK_KEY_REVISION } from './constants';
65import { reticketPointBetweenWallets } from './reticket';
76import BridgeWallet from './types/BridgeWallet';
@@ -10,6 +9,7 @@ import useRoller from './useRoller';
109import { registerProxyAddress } from './utils/roller';
1110import { useWallet } from 'store/wallet';
1211import { useWalletConnect } from './useWalletConnect';
12+import { ITxData } from './types/ITxData';
1313
1414interface ReticketL2SpawnParams {
1515 fromWallet: BridgeWallet;
@@ -58,7 +58,7 @@ interface ReticketL2SpawnParams {
5858export const useReticketL2Spawn = () => {
5959 const { api } = useRoller();
6060 const { walletType }: any = useWallet();
61− const { connector } = useWalletConnect();
61+ const { connector, signPersonalMessage, isConnected } = useWalletConnect();
6262
6363 const performL2SpawnReticket = useCallback(
6464 async ({
@@ -122,10 +122,12 @@ export const useReticketL2Spawn = () => {
122122 walletType,
123123 web3,
124124 connector,
125+ isConnected,
126+ signPersonalMessage,
125127 true
126128 );
127129 },
128− [api, connector, walletType]
130+ [api, connector, walletType, isConnected, signPersonalMessage]
129131 );
130132
131133 return {
src/lib/useRoller.ts+92−36
@@ -12,7 +12,6 @@ import { useNetwork } from 'store/network';
1212import { usePointCursor } from 'store/pointCursor';
1313import { EMPTY_POINT, useRollerStore } from 'store/rollerStore';
1414import { useWallet } from 'store/wallet';
15−import { usePointCache } from 'store/pointCache';
1615
1716import { getUpdatedPointMessage, isPlanet, toL1Details } from './utils/point';
1817import { convertToInt } from './convertToInt';
@@ -60,11 +59,9 @@ export default function useRoller() {
6059 urbitWallet,
6160 walletType,
6261 }: any = useWallet();
63− const { connector } = useWalletConnect();
62+ const { connector, isConnected, signPersonalMessage } = useWalletConnect();
6463 const { pointCursor }: any = usePointCursor();
6564 const { web3, contracts }: any = useNetwork();
66− const allPoints: any = usePointCache();
67− const getDetails = allPoints?.getDetails;
6865
6966 const {
7067 point,
@@ -211,9 +208,7 @@ export default function useRoller() {
211208 l1Txn,
212209 intervalTime = TEN_SECONDS,
213210 }: UpdateParams) => {
214−
215−
216− const pVal = (typeof point === 'number' ? point : point.value);
211+ const pVal = typeof point === 'number' ? point : point.value;
217212 const p = await initPoint(pVal);
218213
219214 if (l1Txn) storePendingL1Txn(l1Txn);
@@ -288,6 +283,8 @@ export default function useRoller() {
288283 walletType,
289284 web3: _web3,
290285 connector,
286+ isConnected,
287+ signPersonalMessage,
291288 });
292289 },
293290 [
@@ -301,6 +298,8 @@ export default function useRoller() {
301298 walletType,
302299 web3,
303300 quotaReached,
301+ signPersonalMessage,
302+ isConnected,
304303 ]
305304 );
306305
@@ -310,14 +309,14 @@ export default function useRoller() {
310309 proxy === 'own'
311310 ? await api.getOwnedPoints(address)
312311 : proxy === 'manage'
313− ? await api.getManagerFor(address)
314− : proxy === 'vote'
315− ? await api.getVotingFor(address)
316− : proxy === 'transfer'
317− ? await api.getTransferringFor(address)
318− : proxy === 'spawn'
319− ? await api.getSpawningFor(address)
320− : [];
312+ ? await api.getManagerFor(address)
313+ : proxy === 'vote'
314+ ? await api.getVotingFor(address)
315+ : proxy === 'transfer'
316+ ? await api.getTransferringFor(address)
317+ : proxy === 'spawn'
318+ ? await api.getSpawningFor(address)
319+ : [];
321320
322321 return points;
323322 },
@@ -366,14 +365,14 @@ export default function useRoller() {
366365 const networkSeed = customNetworkSeed
367366 ? customNetworkSeed
368367 : await attemptNetworkSeedDerivation({
369− urbitWallet,
370− wallet,
371− authMnemonic,
372− details: point,
373− authToken,
374− point: point.value,
375− revision: nextRevision,
376− });
368+ urbitWallet,
369+ wallet,
370+ authMnemonic,
371+ details: point,
372+ authToken,
373+ point: point.value,
374+ revision: nextRevision,
375+ });
377376 const txHash = await submitL2Transaction({
378377 api,
379378 wallet: _wallet,
@@ -385,6 +384,8 @@ export default function useRoller() {
385384 walletType,
386385 web3: _web3,
387386 connector,
387+ isConnected,
388+ signPersonalMessage,
388389 breach,
389390 });
390391
@@ -400,8 +401,10 @@ export default function useRoller() {
400401 wallet,
401402 walletType,
402403 web3,
403− getDetails,
404404 quotaReached,
405+ connector,
406+ isConnected,
407+ signPersonalMessage,
405408 ]
406409 );
407410
@@ -419,7 +422,7 @@ export default function useRoller() {
419422 let nonce = await api.getNonce({ ship: point, proxy });
420423 const progress = onUpdate
421424 ? (state: number) => onUpdate({ type: 'progress', state })
422− : () => {};
425+ : () => { };
423426
424427 let requests = [];
425428
@@ -442,6 +445,8 @@ export default function useRoller() {
442445 type: 'configureKeys',
443446 web3: _web3,
444447 connector,
448+ signPersonalMessage,
449+ isConnected,
445450 });
446451 nonce = nonce + 1;
447452 requests.push(configureKeysRequest);
@@ -458,7 +463,9 @@ export default function useRoller() {
458463 manager,
459464 walletType,
460465 _web3,
461− connector
466+ connector,
467+ signPersonalMessage,
468+ isConnected
462469 );
463470 nonce = nonce + 1;
464471 requests.push(registerMgmtRequest);
@@ -476,7 +483,9 @@ export default function useRoller() {
476483 toWallet?.spawn?.keys?.address || to,
477484 walletType,
478485 _web3,
479− connector
486+ connector,
487+ signPersonalMessage,
488+ isConnected
480489 );
481490 nonce = nonce + 1;
482491 requests.push(registerSpawnRequest);
@@ -495,6 +504,8 @@ export default function useRoller() {
495504 walletType,
496505 web3: _web3,
497506 connector,
507+ signPersonalMessage,
508+ isConnected,
498509 });
499510 requests.push(transferTxRequest);
500511
@@ -510,7 +521,6 @@ export default function useRoller() {
510521 if (quotaReached()) {
511522 return;
512523 }
513−
514524 const _wallet = wallet.getOrElse(null);
515525 const _web3 = web3.getOrElse(null);
516526
@@ -523,14 +533,12 @@ export default function useRoller() {
523533 // not using need because we want a custom error
524534 throw new Error('Internal Error: Invalid point');
525535 }
526−
527536 const proxy = point.getAddressProxy(proxyType);
528537
529538 if (proxy === undefined)
530539 throw new Error("Error: Address doesn't match expected proxy");
531540
532541 const nonce = await api.getNonce({ ship: point.value, proxy });
533−
534542 const txHash = await registerProxyAddress(
535543 api,
536544 _wallet,
@@ -541,12 +549,23 @@ export default function useRoller() {
541549 address,
542550 walletType,
543551 _web3,
544− connector
552+ connector,
553+ signPersonalMessage,
554+ isConnected
545555 );
546−
547556 return api.getPendingTx(txHash);
548557 },
549− [api, connector, point, wallet, web3, walletType, quotaReached]
558+ [
559+ api,
560+ connector,
561+ signPersonalMessage,
562+ isConnected,
563+ point,
564+ wallet,
565+ web3,
566+ walletType,
567+ quotaReached,
568+ ]
550569 );
551570
552571 const changeSponsorship = useCallback(
@@ -582,11 +601,23 @@ export default function useRoller() {
582601 walletType,
583602 web3: _web3,
584603 connector,
604+ signPersonalMessage,
605+ isConnected,
585606 });
586607
587608 return api.getPendingTx(txHash);
588609 },
589− [api, point, wallet, walletType, web3, connector, quotaReached]
610+ [
611+ api,
612+ point,
613+ wallet,
614+ walletType,
615+ web3,
616+ connector,
617+ quotaReached,
618+ isConnected,
619+ signPersonalMessage,
620+ ]
590621 );
591622
592623 const transferPoint = useCallback(
@@ -622,12 +653,25 @@ export default function useRoller() {
622653 walletType,
623654 web3: _web3,
624655 connector,
656+ signPersonalMessage,
657+ isConnected,
625658 reset,
626659 });
627660
628661 return api.getPendingTx(txHash);
629662 },
630− [api, connector, point, pointCursor, wallet, web3, walletType, quotaReached]
663+ [
664+ api,
665+ connector,
666+ point,
667+ pointCursor,
668+ wallet,
669+ web3,
670+ walletType,
671+ quotaReached,
672+ isConnected,
673+ signPersonalMessage,
674+ ]
631675 );
632676
633677 const sendL2Transaction = useCallback(
@@ -651,10 +695,22 @@ export default function useRoller() {
651695 walletType,
652696 web3: _web3,
653697 connector,
698+ signPersonalMessage,
699+ isConnected,
654700 ship: point.value,
655701 });
656702 },
657− [api, connector, point, wallet, web3, walletType, quotaReached]
703+ [
704+ api,
705+ connector,
706+ point,
707+ wallet,
708+ web3,
709+ walletType,
710+ quotaReached,
711+ isConnected,
712+ signPersonalMessage,
713+ ]
658714 );
659715
660716 const changeSponsor = useCallback(
src/lib/useWalletConnect.ts+169−107
@@ -1,6 +1,7 @@
1−import WalletConnect from '@walletconnect/client';
2−import QRCodeModal from '@walletconnect/qrcode-modal';
3−import { ITxData } from '@walletconnect/types';
1+import { SignClient as Connector } from '@walletconnect/sign-client';
2+import { SignClient } from '@walletconnect/sign-client/dist/types/client';
3+import { Web3Modal } from '@web3modal/standalone';
4+import { SessionTypes } from '@walletconnect/types';
45
56import { useEffect, useMemo, useState } from 'react';
67import { Just, Nothing } from 'folktale/maybe';
@@ -9,6 +10,9 @@ import { useWallet } from 'store/wallet';
910import { getAuthToken } from './authToken';
1011import { WALLET_TYPES } from './constants';
1112import WalletConnectWallet from './types/WalletConnectWallet';
13+import { isGoerli } from './flags';
14+import { ITxData } from './types/ITxData';
15+import { mayCreateHexString } from './utils/hex';
1216
1317type PeerMeta = {
1418 description: string;
@@ -17,69 +21,132 @@ type PeerMeta = {
1721 url: string;
1822};
1923
20−type ConnectEvent = {
21− event: 'connect';
22− params: [
23− {
24− accounts: string[];
25− chainId: number;
26− peerId: string;
27− peerMeta: PeerMeta;
28− }
29− ];
24+type PersonalSign = {
25+ message: string;
26+ address: string;
27+};
28+
29+const getChain = () => {
30+ return isGoerli ? 'eip155:5' : 'eip155:1';
3031};
3132
3233export const useWalletConnect = () => {
3334 const {
35+ wallet,
3436 setWallet,
3537 setAuthToken,
3638 setFakeToken,
3739 skipLoginSigning,
3840 resetWallet,
3941 }: any = useWallet();
40− const [connector, setConnector] = useState<WalletConnect | null>(null);
42+
43+ const [connector, setConnector] = useState<SignClient | null>(null);
4144 const [address, setAddress] = useState<string | null>(null);
4245 const [peerMeta, setPeerMeta] = useState<PeerMeta | null>(null);
46+ const [session, setSession] = useState<SessionTypes.Struct | null>(null);
47+ const [modal, setModal] = useState<Web3Modal | null>(null);
48+
49+ const resetSession = () => {
50+ setSession(null);
51+ setAddress(null);
52+ setPeerMeta(null);
53+ };
54+
55+ const updateSession = (_session: SessionTypes.Struct) => {
56+ setSession(_session);
57+ setAddress(_session.namespaces.eip155.accounts[0].slice(9));
58+ setPeerMeta(_session.peer.metadata);
59+ };
4360
44− const resetConnector = () => {
45− const newConnector = new WalletConnect({
46− bridge: 'https://bridge.walletconnect.org',
47− qrcodeModal: QRCodeModal,
61+ const initConnector = async () => {
62+ if (connector) return;
63+
64+ const newConnector = await Connector.init({
65+ projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID,
4866 });
4967
5068 setConnector(newConnector);
5169
70+ const newModal = new Web3Modal({
71+ projectId: import.meta.env.VITE_WALLET_CONNECT_PROJECT_ID,
72+ standaloneChains: [getChain()],
73+ walletConnectVersion: 2,
74+ });
75+
76+ setModal(newModal);
77+
5278 // restore state from cached connection
53− if (newConnector.accounts.length > 0) {
54− setAddress(newConnector.accounts[0]);
55− }
79+ if (Just.hasInstance(wallet) && !session) {
80+ const cached_sessions = [
81+ ...newConnector.session.map,
82+ ].map(([key, value]) => ({ key, value }));
83+
84+ var restored: SessionTypes.Struct | null = null;
85+
86+ // this will set restored to the last
87+ // cached session with the same address
88+ for (var key in cached_sessions) {
89+ if (
90+ cached_sessions[key].value.namespaces.eip155.accounts[0].slice(9) ===
91+ wallet.value.address
92+ ) {
93+ restored = cached_sessions[key].value;
94+ }
95+ }
5696
57− if (newConnector.peerMeta) {
58− setPeerMeta(newConnector.peerMeta);
97+ if (restored) {
98+ updateSession(restored);
99+ }
59100 }
60101 };
61102
62103 // Init connector
63104 useEffect(() => {
64− resetConnector();
105+ initConnector();
65106 // eslint-disable-next-line react-hooks/exhaustive-deps
66107 }, []);
67108
68109 // Behavior
69110 const connect = async () => {
70− if (!connector || connector.connected) {
111+ if (!connector) {
71112 return;
72113 }
73114
74− await connector.createSession();
115+ const proposalNamespace = {
116+ eip155: {
117+ chains: [getChain()],
118+ methods: [
119+ 'eth_sendTransaction',
120+ 'eth_signTransaction',
121+ 'personal_sign',
122+ ],
123+ events: ['connect', 'disconnect'],
124+ },
125+ };
126+
127+ const { uri, approval } = await connector.connect({
128+ requiredNamespaces: proposalNamespace,
129+ });
130+
131+ if (uri) {
132+ modal?.openModal({ uri });
133+ const session = await approval();
134+ updateSession(session);
135+ modal?.closeModal();
136+ }
75137 };
76138
77139 const disconnect = async () => {
78− if (!connector) {
140+ if (!connector || !session) {
79141 return;
80142 }
81143
82− await connector.killSession();
144+ await connector.disconnect({
145+ topic: session.topic,
146+ reason: { code: 6000, message: 'User disconnected' },
147+ });
148+
149+ resetSession();
83150 };
84151
85152 const authenticate = async () => {
@@ -91,20 +158,22 @@ export const useWalletConnect = () => {
91158 address,
92159 };
93160 setWallet(Just(wallet));
161+
94162 if (skipLoginSigning) {
95163 setFakeToken();
96164 return;
97165 }
98−
99166 let authToken = Nothing();
167+
100168 try {
101169 const token = await getAuthToken({
102− address,
103− connector,
170+ address: address,
104171 walletType: WALLET_TYPES.WALLET_CONNECT,
172+ signPersonalMessage: signPersonalMessage,
105173 });
106174 authToken = Just(token);
107175 setAuthToken(authToken);
176+ modal?.closeModal();
108177 } catch (e) {
109178 if (e.message === 'METHOD_NOT_SUPPORTED') {
110179 console.warn(
@@ -118,11 +187,11 @@ export const useWalletConnect = () => {
118187 };
119188
120189 const isConnected = () => {
121− if (!connector) {
190+ if (!connector || !session) {
122191 return false;
123192 }
124193
125− return connector.connected;
194+ return session?.acknowledged;
126195 };
127196
128197 const peerIcon = useMemo(() => {
@@ -152,14 +221,23 @@ export const useWalletConnect = () => {
152221 }
153222
154223 return connector
155− .signTransaction({
156− from,
157− to,
158− gas,
159− gasPrice,
160− value,
161− data,
162− nonce,
224+ .request<string>({
225+ topic: session?.topic!,
226+ chainId: getChain(),
227+ request: {
228+ method: 'eth_signTransaction',
229+ params: [
230+ {
231+ to,
232+ from,
233+ data: mayCreateHexString(data),
234+ nonce: mayCreateHexString(nonce),
235+ gasPrice: mayCreateHexString(gasPrice),
236+ gasLimit: mayCreateHexString(gas),
237+ value: mayCreateHexString(value),
238+ },
239+ ],
240+ },
163241 })
164242 .then((signature: string) => resolve(signature))
165243 .catch((error: Error) => reject(error));
@@ -181,78 +259,66 @@ export const useWalletConnect = () => {
181259 return;
182260 }
183261
184− //REVIEW .then path untested
185262 return connector
186− .sendTransaction({
187− from,
188− to,
189− gas,
190− gasPrice,
191− value,
192− data,
193− nonce,
263+ .request<string>({
264+ topic: session?.topic!,
265+ chainId: getChain(),
266+ request: {
267+ method: 'eth_sendTransaction',
268+ params: [
269+ {
270+ to,
271+ from,
272+ data: mayCreateHexString(data),
273+ nonce: mayCreateHexString(nonce),
274+ gasPrice: mayCreateHexString(gasPrice),
275+ gasLimit: mayCreateHexString(gas),
276+ value: mayCreateHexString(value),
277+ },
278+ ],
279+ },
194280 })
195281 .then((txHash: string) => resolve(txHash))
196282 .catch((error: Error) => reject(error));
197283 });
198284 };
199285
200− // Event Handlers
201− const initConnectHandler = () => {
202− if (!connector) {
203− return;
204− }
205−
206− connector.on('connect', async (error, payload: ConnectEvent) => {
207− if (error) {
208− throw error;
209− }
210−
211− const address = payload.params[0].accounts[0];
212− setAddress(address);
213− setPeerMeta(payload.params[0].peerMeta);
214− });
215− };
216−
217− const initDisconnectHandler = () => {
218− if (!connector) {
219− return;
220− }
221−
222− connector.on('disconnect', (error, _payload) => {
223− if (error) {
224− throw error;
286+ const signPersonalMessage = async ({ message, address }: PersonalSign) => {
287+ return new Promise((resolve, reject) => {
288+ if (!connector || !isConnected()) {
289+ reject(new Error('No connected wallet available for signing'));
290+ return;
225291 }
226292
227− setAddress(null);
228− setPeerMeta(null);
229− resetWallet();
293+ return connector
294+ .request({
295+ topic: session?.topic!,
296+ chainId: getChain(),
297+ request: {
298+ method: 'personal_sign',
299+ params: [mayCreateHexString(message), address],
300+ },
301+ })
302+ .then(result => {
303+ resolve(result);
304+ })
305+ .catch((error: Error) => reject(error));
230306 });
231307 };
232308
233− const initSessionUpdateHandler = () => {
234− if (!connector) {
235− return;
236− }
309+ // Event handlers
237310
238− connector.on('session_update', (error, payload) => {
239− if (error) {
240− throw error;
241− }
242−
243− disconnect();
244− });
311+ const onSessionDelete = () => {
312+ setAddress(null);
313+ setPeerMeta(null);
314+ resetWallet();
245315 };
246316
247− const initModalClosedHandler = () => {
248− if (!connector) {
249− return;
317+ const onSessionUpdate = ({ topic, params }: any) => {
318+ const _session = connector?.session.get(topic);
319+ if (_session) {
320+ updateSession(_session);
250321 }
251−
252− connector.on('modal_closed', () => {
253− resetWallet();
254− resetConnector();
255− });
256322 };
257323
258324 // Init and clean up
@@ -260,18 +326,13 @@ export const useWalletConnect = () => {
260326 if (!connector) {
261327 return;
262328 }
263−
264− initConnectHandler();
265− initDisconnectHandler();
266− initSessionUpdateHandler();
267− initModalClosedHandler();
329+ connector.on('session_delete', onSessionDelete);
330+ connector.on('session_update', onSessionUpdate);
268331
269332 return () => {
270333 // Clean up listeners
271− connector.off('connect');
272− connector.off('disconnect');
273− connector.off('session_update');
274− connector.off('modal_closed');
334+ connector.off('session_delete', onSessionDelete);
335+ connector.off('session_update', onSessionUpdate);
275336 };
276337 // eslint-disable-next-line react-hooks/exhaustive-deps
277338 }, [connector]);
@@ -285,8 +346,9 @@ export const useWalletConnect = () => {
285346 isConnected,
286347 peerIcon,
287348 peerMeta,
288− resetConnector,
349+ initConnector,
289350 signTransaction,
290351 sendTransaction,
352+ signPersonalMessage,
291353 };
292354};
src/lib/utils/hex.tsnew file+11
@@ -0,0 +1,11 @@
1+import * as encoding from '@walletconnect/encoding';
2+
3+export const mayCreateHexString = (data?: number | string) => {
4+ if (!data || encoding.isHexString(data)) return data;
5+
6+ if (typeof data === 'number')
7+ return encoding.sanitizeHex(encoding.numberToHex(data));
8+
9+ if (typeof data === 'string')
10+ return encoding.sanitizeHex(encoding.utf8ToHex(data));
11+};
src/lib/utils/roller.ts+29−10
@@ -1,6 +1,6 @@
11import { Just, Nothing } from 'folktale/maybe';
22import { randomHex } from 'web3-utils';
3−import WalletConnect from '@walletconnect/client';
3+import { SignClient as WalletConnect } from '@walletconnect/sign-client/dist/types/client';
44import RollerRPCAPI, {
55 Proxy,
66 Signature,
@@ -62,7 +62,9 @@ export const generateHashAndSign = async (
6262 data: any,
6363 walletType: symbol,
6464 web3: any,
65− connector: WalletConnect | null
65+ connector: WalletConnect | null,
66+ isConnected: Function,
67+ signPersonalMessage: Function
6668) => {
6769 if (walletType === WALLET_TYPES.METAMASK) {
6870 const hash = await api.prepareForSigning(nonce, from, type, data);
@@ -81,12 +83,14 @@ export const generateHashAndSign = async (
8183
8284 return sig;
8385 } else if (walletType === WALLET_TYPES.WALLET_CONNECT) {
84− if (!connector || !connector.connected) {
86+ if (!connector || !isConnected()) {
8587 throw new Error('Awaiting WalletConnect connection...');
8688 }
87−
8889 const hash = await api.prepareForSigning(nonce, from, type, data);
89− const sig = await connector.signPersonalMessage([hash, wallet.address]);
90+ const sig = await signPersonalMessage({
91+ message: hash,
92+ address: wallet.address,
93+ });
9094 return sig;
9195 } else {
9296 const hash = await api.getUnsignedTx(nonce, from, type, data);
@@ -105,6 +109,8 @@ export const configureKeys = async (
105109 walletType: symbol,
106110 web3: any,
107111 connector: WalletConnect | null,
112+ isConnected: Function,
113+ signPersonalMessage: Function,
108114 breach?: boolean,
109115 force: boolean = false
110116) => {
@@ -141,7 +147,9 @@ export const configureKeys = async (
141147 data,
142148 walletType,
143149 web3,
144− connector
150+ connector,
151+ signPersonalMessage,
152+ isConnected
145153 );
146154 return api.configureKeys(sig, force, from, wallet.address, data);
147155};
@@ -156,6 +164,8 @@ export const transferPointRequest = async (
156164 walletType: symbol,
157165 web3: any,
158166 connector: WalletConnect | null,
167+ isConnected: Function,
168+ signPersonalMessage: Function,
159169 reset?: boolean,
160170 force: boolean = false
161171) => {
@@ -178,7 +188,9 @@ export const transferPointRequest = async (
178188 data,
179189 walletType,
180190 web3,
181− connector
191+ connector,
192+ signPersonalMessage,
193+ isConnected
182194 );
183195
184196 return api.transferPoint(sig, force, from, wallet.address, data);
@@ -229,6 +241,8 @@ export const registerProxyAddress = async (
229241 walletType: symbol,
230242 web3: any,
231243 connector: WalletConnect | null,
244+ isConnected: Function,
245+ signPersonalMessage: Function,
232246 force?: boolean
233247) => {
234248 const from = {
@@ -246,9 +260,10 @@ export const registerProxyAddress = async (
246260 data,
247261 walletType,
248262 web3,
249− connector
263+ connector,
264+ signPersonalMessage,
265+ isConnected
250266 );
251−
252267 return setProxy(
253268 api,
254269 proxyAddressType,
@@ -343,6 +358,8 @@ export const submitL2Transaction = async (args: L2TransactionArgs) => {
343358 walletType,
344359 web3,
345360 connector,
361+ isConnected,
362+ signPersonalMessage,
346363 } = args;
347364
348365 const from = { ship, proxy };
@@ -357,7 +374,9 @@ export const submitL2Transaction = async (args: L2TransactionArgs) => {
357374 data,
358375 walletType,
359376 web3,
360− connector
377+ connector,
378+ isConnected,
379+ signPersonalMessage
361380 );
362381
363382 return method(sig, false, from, wallet.address, data);
src/lib/walletgen.ts+10−2
@@ -68,7 +68,12 @@ export const makeDeterministicTicket = (point: number, seed: string) => {
6868};
6969
7070// return a wallet object
71−export const generateWallet = async (point: number, ticket: string, boot: boolean, revision = 0) => {
71+export const generateWallet = async (
72+ point: number,
73+ ticket: string,
74+ boot: boolean,
75+ revision = 0
76+) => {
7277 const config = {
7378 ticket: ticket,
7479 seedSize: SEED_LENGTH_BYTES,
@@ -109,7 +114,10 @@ export const generateTemporaryTicketAndWallet = async (point: number) => {
109114 return { ticket, owner };
110115};
111116
112−export const generateTemporaryDeterministicWallet = async (point: number, seed: string) => {
117+export const generateTemporaryDeterministicWallet = async (
118+ point: number,
119+ seed: string
120+) => {
113121 const ticket = makeDeterministicTicket(point, seed);
114122 const owner = await generateOwnershipWallet(ZOD, ticket);
115123
src/store/network.jsx+6−2
@@ -85,7 +85,9 @@ function _useNetwork(initialNetworkType = null) {
8585 return;
8686 }
8787 case NETWORK_TYPES.GOERLI: {
88− const endpoint = `https://goerli.infura.io/v3/${import.meta.env.VITE_INFURA_ENDPOINT}`;
88+ const endpoint = `https://goerli.infura.io/v3/${
89+ import.meta.env.VITE_INFURA_ENDPOINT
90+ }`;
8991
9092 initWeb3(
9193 new Web3.providers.HttpProvider(endpoint),
@@ -94,7 +96,9 @@ function _useNetwork(initialNetworkType = null) {
9496 return;
9597 }
9698 case NETWORK_TYPES.MAINNET: {
97− const endpoint = `https://mainnet.infura.io/v3/${import.meta.env.VITE_INFURA_ENDPOINT}`;
99+ const endpoint = `https://mainnet.infura.io/v3/${
100+ import.meta.env.VITE_INFURA_ENDPOINT
101+ }`;
98102
99103 initWeb3(
100104 new Web3.providers.HttpProvider(endpoint),
src/store/pointCache.jsx+6−7
@@ -1,5 +1,4 @@
1−import { Just, Nothing } from 'folktale/maybe';
2−import Result from 'folktale/result';
1+import { Nothing } from 'folktale/maybe';
32import React, { createContext, forwardRef, useContext } from 'react';
43import { noop } from 'lodash';
54
@@ -7,11 +6,11 @@ import useDeepEqualReference from 'lib/useDeepEqualReference';
76import usePointStore from './lib/usePointStore';
87
98/**
10− * Avoid race condition by setting an initial dummy state. Previously, on
11− * occasion the application would render before the points queries finished
9+ * Avoid race condition by setting an initial dummy state. Previously, on
10+ * occasion the application would render before the points queries finished
1211 * loading data asynchronously from the roller and Infura. This would cause
1312 * a crash in Points.tsx when attempting to destructure the data.
14−*/
13+ */
1514const initialContext = {
1615 details: Nothing(),
1716 rekeyDates: Nothing(),
@@ -20,13 +19,13 @@ const initialContext = {
2019 residents: Nothing(),
2120 pointCursor: Nothing(),
2221 syncDetails: noop,
23− syncEclipticOwner:noop,
22+ syncEclipticOwner: noop,
2423 syncRekeyDate: noop,
2524 syncControlledPoints: noop,
2625 syncDates: noop,
2726 syncResidents: noop,
2827 syncExtras: noop,
29−}
28+};
3029
3130export const PointCacheContext = createContext(initialContext);
3231
src/store/pointCursor.jsx+1−1
@@ -12,7 +12,7 @@ import { noop } from 'lodash';
1212const initialContext = {
1313 pointCursor: Nothing(),
1414 setPointCursor: noop,
15−}
15+};
1616
1717export const PointCursorContext = createContext(initialContext);
1818
src/store/wallet.jsx+1−1
@@ -52,7 +52,7 @@ const initialContext = {
5252 skipLoginSigning: false,
5353 setSkipLoginSigning: noop,
5454 setFakeToken: noop,
55−}
55+};
5656
5757export const WalletContext = createContext(initialContext);
5858
src/views/Activate/ActivateView.tsx+1−1
@@ -1,5 +1,5 @@
11import { Box } from '@tlon/indigo-react';
2−import { Grid, Text } from 'indigo-react';
2+import { Grid } from 'indigo-react';
33import HeaderButton from 'components/L2/Headers/HeaderButton';
44import { useHistory } from 'store/history';
55import Window from 'components/L2/Window/Window';
src/views/Activate/CodeExpired.tsx−2
@@ -1,5 +1,3 @@
1−import View from 'components/View';
2−
31import { Box, Button } from '@tlon/indigo-react';
42import { FadeableActivateHeader as ActivateHeader } from './ActivateHeader';
53import useFadeIn from './useFadeIn';
src/views/Activate/MasterKeyCopy.tsx+1−5
@@ -23,11 +23,7 @@ const MasterKeyCopy = ({ text, className }: MasterKeyCopyProps) => {
2323 alignItems={'center'}
2424 cursor={'pointer'}
2525 padding={'10px 15px'}>
26− <Icon
27− color={color}
28− icon={icon as 'Checkmark' | 'Copy'}
29− size="16px"
30− />
26+ <Icon color={color} icon={icon as 'Checkmark' | 'Copy'} size="16px" />
3127 <Text color={color} fontSize={'14px'} ml="4px" fontFamily={'Inter'}>
3228 {label}
3329 </Text>
src/views/Activate/MasterKeyTransfer.tsx+4−2
@@ -96,8 +96,10 @@ const MasterKeyTransfer = () => {
9696 justifyContent={'space-between'}>
9797 {error && <DangerBox>{error.toString()}</DangerBox>}
9898 <ActivateButton
99− onClick={() => window.open('https://urbit.org/getting-started/cloud-hosting')}
100− className='pointer-hover'
99+ onClick={() =>
100+ window.open('https://urbit.org/getting-started/cloud-hosting')
101+ }
102+ className="pointer-hover"
101103 disabled={error}
102104 success={true}>
103105 To use it, set up a cloud instance for your urbit
src/views/Activate/useActivateFlowState.js+3−1
@@ -16,7 +16,9 @@ export default function useActivateFlowState() {
1616 // the Master Key (ticket) and downloads the passport / mnemonic,
1717 // it is for this wallet
1818 // type UrbitWallet
19− const [inviteMasterTicketWallet, setInviteMasterTicketWallet] = useState(Nothing());
19+ const [inviteMasterTicketWallet, setInviteMasterTicketWallet] = useState(
20+ Nothing()
21+ );
2022 // The wallet generated deterministically during the invite creation flow;
2123 // it is re-generated when the user starts the Activate flow. It is used
2224 // to derive and confirm a shareable ticket that a user can activate a point with.
src/views/Disclaimer.jsx+1−2
@@ -1,6 +1,5 @@
11import React, { useCallback, useMemo } from 'react';
2−import cn from 'classnames';
3−import { Grid, H3, B, Text, CheckboxInput } from 'indigo-react';
2+import { Grid, Text, CheckboxInput } from 'indigo-react';
43
54import useHasDisclaimed from 'lib/useHasDisclaimed';
65import { useLocalRouter } from 'lib/LocalRouter';
src/views/Invite/useInvites.ts+13−8
@@ -24,7 +24,6 @@ import {
2424 setStoredInvites,
2525} from 'store/storage/roller';
2626import { useWallet } from 'store/wallet';
27−import { usePointCache } from 'store/pointCache';
2827import create from 'zustand';
2928import { generateCsvLine } from 'lib/utils/invite';
3029import Point from 'lib/types/Point';
@@ -94,11 +93,9 @@ export const useInviteStore = create<InviteStore>((set, get) => ({
9493
9594export function useInvites() {
9695 const { wallet, authToken, walletType }: any = useWallet();
97− const { connector } = useWalletConnect();
96+ const { connector, isConnected, signPersonalMessage } = useWalletConnect();
9897 const { pointCursor }: any = usePointCursor();
9998 const { web3, contracts }: any = useNetwork();
100− const allPoints: any = usePointCache();
101− const getDetails = allPoints?.getDetails;
10299 const { api, ls, performL2Reticket } = useRoller();
103100 const { point, pointList, setPendingTransactions } = useRollerStore();
104101 const {
@@ -208,6 +205,7 @@ export function useInvites() {
208205 setInvites,
209206 setPendingTransactions,
210207 updateJob,
208+ inviteJobs,
211209 ]);
212210
213211 const generateInviteCodes = useCallback(
@@ -277,6 +275,8 @@ export function useInvites() {
277275 walletType,
278276 web3: _web3,
279277 connector,
278+ signPersonalMessage,
279+ isConnected,
280280 });
281281
282282 const networkSeed = await deriveNetworkSeedFromUrbitWallet(
@@ -294,6 +294,8 @@ export function useInvites() {
294294 walletType,
295295 web3: _web3,
296296 connector,
297+ signPersonalMessage,
298+ isConnected,
297299 });
298300
299301 await registerProxyAddress(
@@ -306,7 +308,9 @@ export function useInvites() {
306308 inviteWallet.management.keys.address,
307309 walletType,
308310 _web3,
309− connector
311+ connector,
312+ signPersonalMessage,
313+ isConnected
310314 );
311315
312316 await submitL2Transaction({
@@ -320,6 +324,8 @@ export function useInvites() {
320324 walletType,
321325 web3: _web3,
322326 connector,
327+ signPersonalMessage,
328+ isConnected,
323329 });
324330 }
325331
@@ -342,13 +348,12 @@ export function useInvites() {
342348 api,
343349 authToken,
344350 connector,
351+ isConnected,
352+ signPersonalMessage,
345353 contracts,
346− pointCursor,
347− point,
348354 wallet,
349355 walletType,
350356 web3,
351− getDetails,
352357 ls,
353358 getInvites,
354359 updateJob,
src/views/Login/LoginSelector.tsx+2−2
@@ -1,6 +1,6 @@
11import React, { useCallback, useState } from 'react';
22import cn from 'classnames';
3−import { Flex, Grid } from 'indigo-react';
3+import { Grid } from 'indigo-react';
44import {
55 Box,
66 Button,
@@ -167,7 +167,7 @@ export default function LoginSelector({
167167 if (value === NAMES.METAMASK) {
168168 selectMetamask();
169169 } else if (value === NAMES.WALLET_CONNECT) {
170− connect();
170+ !isConnected() && connect();
171171 } else {
172172 setCurrentTab(value);
173173 }
src/views/Login/Mnemonic.tsx+1
@@ -82,6 +82,7 @@ export default function Mnemonic({ className, goHome }: MnemonicProps) {
8282 setWallet,
8383 setWalletHdPath,
8484 skipValidation,
85+ debouncedOnValues,
8586 ]);
8687
8788 const initialValues = {
src/views/Ops/Ops.tsx+21−17
@@ -67,9 +67,10 @@ export const Ops = () => {
6767 </Row>
6868 </HeaderPane>
6969 <BodyPane>
70− <Row className={"between-row management" +
71− (point.canManage ? "" : " disabled")}
72− >
70+ <Row
71+ className={
72+ 'between-row management' + (point.canManage ? '' : ' disabled')
73+ }>
7374 <Box>
7475 <Box className="section-title">Residents</Box>
7576 <Box className="subtitle">
@@ -77,15 +78,16 @@ export const Ops = () => {
7778 for
7879 </Box>
7980 </Box>
80− <Button className="secondary"
81− onClick={point.canManage ? goResidents : undefined}
82− >
81+ <Button
82+ className="secondary"
83+ onClick={point.canManage ? goResidents : undefined}>
8384 View
8485 </Button>
8586 </Row>
86− <Row className={"between-row management" +
87− (point.canManage ? "" : " disabled")}
88− >
87+ <Row
88+ className={
89+ 'between-row management' + (point.canManage ? '' : ' disabled')
90+ }>
8991 <Box>
9092 <Box className="section-title">Requests</Box>
9193 <Box className="subtitle">
@@ -93,23 +95,25 @@ export const Ops = () => {
9395 sponsorship
9496 </Box>
9597 </Box>
96− <Button className="secondary"
97− onClick={point.canManage ? goRequests : undefined}
98− >
98+ <Button
99+ className="secondary"
100+ onClick={point.canManage ? goRequests : undefined}>
99101 View
100102 </Button>
101103 </Row>
102104 {point.isGalaxy && (
103− <Row className={"between-row management" +
104− (point.canVote ? "" : " disabled")}
105− >
106− <Box >
105+ <Row
106+ className={
107+ 'between-row management' + (point.canVote ? '' : ' disabled')
108+ }>
109+ <Box>
107110 <Box className="section-title">Proposals</Box>
108111 <Box className="subtitle">
109112 View or vote on proposals in the Senate
110113 </Box>
111114 </Box>
112− <Button className="secondary"
115+ <Button
116+ className="secondary"
113117 onClick={point.canVote ? goSenate : undefined}>
114118 View
115119 </Button>
src/views/Point/Point.tsx+3−2
@@ -114,8 +114,9 @@ export default function Point() {
114114 <PendingTransaction
115115 layer={2}
116116 nextRoll={nextRoll}
117− title={`${spawnedPending} Planet${spawnedPending > 1 ? 's' : ''
118− } Spawned`}
117+ title={`${spawnedPending} Planet${
118+ spawnedPending > 1 ? 's' : ''
119+ } Spawned`}
119120 />
120121 )}
121122 {!!otherPending.length &&
src/views/UrbitID/Home.tsx+3−3
@@ -79,9 +79,9 @@ export default function UrbitIDHome() {
7979 {keysDownloaded
8080 ? 'Downloaded!'
8181 : paper.matchWith({
82− Nothing: () => 'Printing and folding...',
83− Just: (_: any) => 'Download Passport',
84− })}
82+ Nothing: () => 'Printing and folding...',
83+ Just: (_: any) => 'Download Passport',
84+ })}
8585 </Button>
8686 )}
8787 </Row>
src/views/UrbitID/ResetKeys/ResetExecute.tsx+3−1
@@ -77,6 +77,7 @@ export default function ResetExecute({
7777 signTransaction: wcSign,
7878 sendTransaction: wcSend,
7979 connector,
80+ isConnected,
8081 } = useWalletConnect();
8182 const { performL2SpawnReticket } = useReticketL2Spawn();
8283
@@ -130,7 +131,7 @@ export default function ResetExecute({
130131 // due to react shenanigans we may need to wait for the connector
131132 if (
132133 walletType === WALLET_TYPES.WALLET_CONNECT &&
133− (!connector || !connector.connected)
134+ (!connector || isConnected())
134135 ) {
135136 setGeneralError(new Error('Awaiting WalletConnect connection...'));
136137 return;
@@ -214,6 +215,7 @@ export default function ResetExecute({
214215 walletType,
215216 wcSend,
216217 wcSign,
218+ isConnected,
217219 web3,
218220 ]);
219221
src/worker/index.ts+2−1
@@ -1,6 +1,7 @@
11import { Buffer } from 'buffer/';
2+// eslint-disable-next-line
23(self as any).Buffer = Buffer;
34
45export const walletgenWorker = new ComlinkWorker<typeof import('./worker')>(
56 new URL('./worker.ts', import.meta.url)
6−)
7+);