From 6e2e46d8ea1474034e91f38186cbc431d7dfe48d Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 29 Mar 2022 14:32:45 +0100 Subject: [PATCH] Disable pool fetching interval (#1265) * disable pool fetching interval * change requestPolicy * trigger refetch on back button click for add/remove * fix memory leak error * refetch on refocus * add manual refresh button --- package-lock.json | 300 ++++++++++-------- package.json | 3 +- src/@context/Pool/index.tsx | 42 +-- src/@context/UrqlProvider.tsx | 13 +- src/@utils/subgraph.ts | 2 +- .../Asset/AssetActions/Download.tsx | 13 +- .../Asset/AssetActions/Pool/Add/index.tsx | 11 +- .../Asset/AssetActions/Pool/Remove/index.tsx | 11 +- .../Asset/AssetActions/Pool/index.module.css | 4 +- .../Asset/AssetActions/Pool/index.tsx | 9 +- 10 files changed, 226 insertions(+), 182 deletions(-) diff --git a/package-lock.json b/package-lock.json index 41bb41a3c..038ba2c99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,8 @@ "@oceanprotocol/typographies": "^0.1.0", "@portis/web3": "^4.0.7", "@tippyjs/react": "^4.2.6", - "@walletconnect/web3-provider": "^1.7.5", + "@urql/exchange-refocus": "^0.2.5", + "@walletconnect/web3-provider": "^1.7.6", "axios": "^0.26.1", "bignumber.js": "^9.0.2", "chart.js": "^3.7.1", @@ -3975,9 +3976,9 @@ } }, "node_modules/@oclif/plugin-help/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, "engines": { "node": ">=4" @@ -5005,9 +5006,9 @@ "integrity": "sha512-o7nBlaMuasuADCCL2WzhvOXA5GT5ewd/F35cY6ZU69U5OUASR3ZP4CZetVCc5MZePPa/3CL9pzJ4Rhtg1ChwVA==" }, "node_modules/@truffle/codec": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.12.3.tgz", - "integrity": "sha512-szDlA5KmTwFDL6yjB0i9bwz48nxObbxAwL6MERJRLrs7yQu/3jTtTW3cfw9owtsfqu7DzX4TXAPLp0eYb4PPUQ==", + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.12.4.tgz", + "integrity": "sha512-8XCKMAP22fEVa8xGFA9lqBr5kWhyYW/41ekP0yFEXQhCSPEcZamc6I9h2KQGBrChdxGsKd82Y4138rHGKiQtjQ==", "dependencies": { "@truffle/abi-utils": "^0.2.10", "@truffle/compile-common": "^0.7.29", @@ -5451,11 +5452,11 @@ } }, "node_modules/@truffle/debug-utils": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.13.tgz", - "integrity": "sha512-8BZ82FqOpnfzs2IvfYOgTzthQ0e8yO1Zm86CO4vPlrbTVI0bSemCFevau0QzR5bPXVg558MHpDOhZHmZN6yU1w==", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.14.tgz", + "integrity": "sha512-LhtoKI86QzLFbb0dOQojNR1jl8Le0GL/fkhkaK/thdxMtkt5F7BVoO0f0CbnC9+vfp7qbgEcRct1suw38sVVGQ==", "dependencies": { - "@truffle/codec": "^0.12.3", + "@truffle/codec": "^0.12.4", "@trufflesuite/chromafi": "^3.0.0", "bn.js": "^5.1.3", "chalk": "^2.4.2", @@ -6736,6 +6737,18 @@ "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, + "node_modules/@urql/exchange-refocus": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@urql/exchange-refocus/-/exchange-refocus-0.2.5.tgz", + "integrity": "sha512-JlrEXlG37mK/WgyxqVrHkLZtBMVC7x3GtgGJHiiXK41AQdU2hVy3IAQ208ENMIrkFw9SHQf8d8h7Wb2EY/1zdw==", + "dependencies": { + "@urql/core": ">=2.3.6", + "wonka": "^4.0.14" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, "node_modules/@use-it/event-listener": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/@use-it/event-listener/-/event-listener-0.1.7.tgz", @@ -6745,36 +6758,36 @@ } }, "node_modules/@walletconnect/browser-utils": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.7.5.tgz", - "integrity": "sha512-gm9ufi0n5cGBXoGWDtMVSqIJ0eXYW+ZFuTNVN0fm4oal26J7cPrOdFjzhv5zvx5fKztWQ21DNFZ+PRXBjXg04Q==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.7.6.tgz", + "integrity": "sha512-7dZkvybjxIt59YdGqMCft8ydghlR7axSzZVW3Oy6NOYdq0ztZGCV/hpUcQ3pgC3uhpn93XqVPrBAyKLqt+/u5A==", "dependencies": { "@walletconnect/safe-json": "1.0.0", - "@walletconnect/types": "^1.7.5", + "@walletconnect/types": "^1.7.6", "@walletconnect/window-getters": "1.0.0", "@walletconnect/window-metadata": "1.0.0", "detect-browser": "5.2.0" } }, "node_modules/@walletconnect/client": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.7.5.tgz", - "integrity": "sha512-Vh3h1kfhmJ4Jx//H0lmmfDc5Q2s+R73Nh5cetVN41QPRrAcqHE4lR2ZS8XxRCNBl4/gcHZJIZS9J2Ui4tTXBLA==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.7.6.tgz", + "integrity": "sha512-ZAcH9aL+p3psXwcsts51liKiqS/Kez05bYM193QC7mfcGwlFhQWMCRWHb38y8yHrWQMUmtOZ+jKotKjrOitDUw==", "dependencies": { - "@walletconnect/core": "^1.7.5", - "@walletconnect/iso-crypto": "^1.7.5", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5" + "@walletconnect/core": "^1.7.6", + "@walletconnect/iso-crypto": "^1.7.6", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6" } }, "node_modules/@walletconnect/core": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.7.5.tgz", - "integrity": "sha512-c4B8s9fZ/Ah2p460Hxo4e9pwLQVYT2+dVYAfqaxVzfYjhAokDEtO55Bdm1hujtRjQVqwTvCljKxBB+LgMp3k8w==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.7.6.tgz", + "integrity": "sha512-gWD80GTgJ/xpYbJ/R5sbto1daDcDqeHl3ODzdtaVbDR2whS16spsEsXxgsM6BXFKqbGJ0r90SkHsNHa8xiekLQ==", "dependencies": { - "@walletconnect/socket-transport": "^1.7.5", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5" + "@walletconnect/socket-transport": "^1.7.6", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6" } }, "node_modules/@walletconnect/crypto": { @@ -6804,24 +6817,24 @@ "integrity": "sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==" }, "node_modules/@walletconnect/http-connection": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.7.5.tgz", - "integrity": "sha512-WDy2Y/07c1F107362jel0voeV6QMJuWbwAKNLtxlX8Y9KNzqZAGlHhIZykSWrMjNGwxBaXoqLPmu60uVvodc6A==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.7.6.tgz", + "integrity": "sha512-G2xgqALcy2naHeiFS1N3VEwsgqIbFrbBv9gYaHE3R6RuEb4VVSIVGy6brpN+CoLmI680Kj2EmiJG7yvpNsHKdg==", "dependencies": { - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6", "eventemitter3": "4.0.7", "xhr2-cookies": "1.1.0" } }, "node_modules/@walletconnect/iso-crypto": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.7.5.tgz", - "integrity": "sha512-mJdRs2SqAPOLBBqLhU+ZnAh2c8TL2uDuL/ojV4aBzZ0ZHNT7X2zSOjAiixCb3vvH8GAt30OKmiRo3+ChI/9zvA==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.7.6.tgz", + "integrity": "sha512-x80OVfarjPzD02kJgnpmLCxlsFRaymGjlGWzLmtwO8/hp1mrtT/ukFOsl1Fs6Tunp7BdCoJT+9FYFarcvbsG8Q==", "dependencies": { "@walletconnect/crypto": "^1.0.2", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5" + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6" } }, "node_modules/@walletconnect/jsonrpc-types": { @@ -6848,13 +6861,13 @@ "deprecated": "Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry" }, "node_modules/@walletconnect/qrcode-modal": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.5.tgz", - "integrity": "sha512-LVq35jc3VMGq1EMcGCObQtEiercMDmUHDnc7A3AmUo0LoAbaPo6c8Hq0zqy2+JhtLmxUhU3ktf+szmCoiUDTUQ==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.6.tgz", + "integrity": "sha512-SXx8eTllgyGpArwdB8v1WsmAKbxiizqebJLn32C6KRzWVW5FP4FizzgEi+r6xINWSEpWLX72GbeWAoiQDwFVFw==", "dependencies": { - "@walletconnect/browser-utils": "^1.7.5", + "@walletconnect/browser-utils": "^1.7.6", "@walletconnect/mobile-registry": "^1.4.0", - "@walletconnect/types": "^1.7.5", + "@walletconnect/types": "^1.7.6", "copy-to-clipboard": "^3.3.1", "preact": "10.4.1", "qrcode": "1.4.4" @@ -6876,29 +6889,29 @@ "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==" }, "node_modules/@walletconnect/socket-transport": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.7.5.tgz", - "integrity": "sha512-4TYCxrNWb4f5a1NGsALXidr+/6dOiqgVfUQJ4fdP6R7ijL+7jtdiktguU9FIDq5wFXRE+ZdpCpwSAfOt60q/mQ==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.7.6.tgz", + "integrity": "sha512-yH2eKD9P34gnOxOfCarERROl5SkiwBR9UcASjcnp2L7r02ZaXHbhheXHUWzcU5HpEXrvz8DGciE7GBQn+aNgQg==", "dependencies": { - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6", "ws": "7.5.3" } }, "node_modules/@walletconnect/types": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.7.5.tgz", - "integrity": "sha512-0HvZzxD93et4DdrYgAvclI1BqclkZS7iPWRtbGg3r+PQhRPbOkNypzBy6XH6wflbmr+WBGdmyJvynHsdhcCqUA==" + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.7.6.tgz", + "integrity": "sha512-3JVjEzvJgDc5DzaXNxhg4JcdG4U8Qk6HVBELOu+TwiWG31TZRt82uL9CcVZKieFPP/nTWQnj+QkiKSpO7T1KTQ==" }, "node_modules/@walletconnect/utils": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.7.5.tgz", - "integrity": "sha512-U954rIIA/g/Cmdqy+n3hMY1DDMmXxGs8w/QmrK9b/H5nkQ3e4QicOyynq5g/JTTesN5HZdDTFiyX9r0GSKa+iA==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.7.6.tgz", + "integrity": "sha512-GLneac0Hx52pNHAOkTt/07K+Ht8LmWFaK0nQlHqrLmOJm8WZPnUvMZGMTpSOzgKw47u0cjhE38ipbXOaq8qReA==", "dependencies": { - "@walletconnect/browser-utils": "^1.7.5", + "@walletconnect/browser-utils": "^1.7.6", "@walletconnect/encoding": "^1.0.1", "@walletconnect/jsonrpc-utils": "^1.0.0", - "@walletconnect/types": "^1.7.5", + "@walletconnect/types": "^1.7.6", "bn.js": "4.11.8", "js-sha3": "0.8.0", "query-string": "6.13.5" @@ -6926,15 +6939,15 @@ } }, "node_modules/@walletconnect/web3-provider": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.7.5.tgz", - "integrity": "sha512-x+UWOTu7jd9qog9NWhaspOmVRDJPnQrgZBscnaSC+x/aAsi52VUrd1GZ9c5UNZFgss41fdx3Z2KhkPeVrlrbuQ==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.7.6.tgz", + "integrity": "sha512-INjHVTuuISm9rk9QGr8v0IvcmjygEyt+rDB6Iw6G5hK+qwEB+UlrRbXyu0bAmEe4wREpiJmegz7KjiHIxmCTNA==", "dependencies": { - "@walletconnect/client": "^1.7.5", - "@walletconnect/http-connection": "^1.7.5", - "@walletconnect/qrcode-modal": "^1.7.5", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5", + "@walletconnect/client": "^1.7.6", + "@walletconnect/http-connection": "^1.7.6", + "@walletconnect/qrcode-modal": "^1.7.6", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6", "web3-provider-engine": "16.0.1" } }, @@ -7129,9 +7142,9 @@ } }, "node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "engines": { "node": ">=4" } @@ -17422,9 +17435,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { "version": "2.9.0", @@ -27146,9 +27159,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true }, "string-width": { @@ -27907,9 +27920,9 @@ "integrity": "sha512-o7nBlaMuasuADCCL2WzhvOXA5GT5ewd/F35cY6ZU69U5OUASR3ZP4CZetVCc5MZePPa/3CL9pzJ4Rhtg1ChwVA==" }, "@truffle/codec": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.12.3.tgz", - "integrity": "sha512-szDlA5KmTwFDL6yjB0i9bwz48nxObbxAwL6MERJRLrs7yQu/3jTtTW3cfw9owtsfqu7DzX4TXAPLp0eYb4PPUQ==", + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.12.4.tgz", + "integrity": "sha512-8XCKMAP22fEVa8xGFA9lqBr5kWhyYW/41ekP0yFEXQhCSPEcZamc6I9h2KQGBrChdxGsKd82Y4138rHGKiQtjQ==", "requires": { "@truffle/abi-utils": "^0.2.10", "@truffle/compile-common": "^0.7.29", @@ -28283,11 +28296,11 @@ } }, "@truffle/debug-utils": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.13.tgz", - "integrity": "sha512-8BZ82FqOpnfzs2IvfYOgTzthQ0e8yO1Zm86CO4vPlrbTVI0bSemCFevau0QzR5bPXVg558MHpDOhZHmZN6yU1w==", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.14.tgz", + "integrity": "sha512-LhtoKI86QzLFbb0dOQojNR1jl8Le0GL/fkhkaK/thdxMtkt5F7BVoO0f0CbnC9+vfp7qbgEcRct1suw38sVVGQ==", "requires": { - "@truffle/codec": "^0.12.3", + "@truffle/codec": "^0.12.4", "@trufflesuite/chromafi": "^3.0.0", "bn.js": "^5.1.3", "chalk": "^2.4.2", @@ -29400,6 +29413,15 @@ "wonka": "^4.0.14" } }, + "@urql/exchange-refocus": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@urql/exchange-refocus/-/exchange-refocus-0.2.5.tgz", + "integrity": "sha512-JlrEXlG37mK/WgyxqVrHkLZtBMVC7x3GtgGJHiiXK41AQdU2hVy3IAQ208ENMIrkFw9SHQf8d8h7Wb2EY/1zdw==", + "requires": { + "@urql/core": ">=2.3.6", + "wonka": "^4.0.14" + } + }, "@use-it/event-listener": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/@use-it/event-listener/-/event-listener-0.1.7.tgz", @@ -29407,36 +29429,36 @@ "requires": {} }, "@walletconnect/browser-utils": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.7.5.tgz", - "integrity": "sha512-gm9ufi0n5cGBXoGWDtMVSqIJ0eXYW+ZFuTNVN0fm4oal26J7cPrOdFjzhv5zvx5fKztWQ21DNFZ+PRXBjXg04Q==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.7.6.tgz", + "integrity": "sha512-7dZkvybjxIt59YdGqMCft8ydghlR7axSzZVW3Oy6NOYdq0ztZGCV/hpUcQ3pgC3uhpn93XqVPrBAyKLqt+/u5A==", "requires": { "@walletconnect/safe-json": "1.0.0", - "@walletconnect/types": "^1.7.5", + "@walletconnect/types": "^1.7.6", "@walletconnect/window-getters": "1.0.0", "@walletconnect/window-metadata": "1.0.0", "detect-browser": "5.2.0" } }, "@walletconnect/client": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.7.5.tgz", - "integrity": "sha512-Vh3h1kfhmJ4Jx//H0lmmfDc5Q2s+R73Nh5cetVN41QPRrAcqHE4lR2ZS8XxRCNBl4/gcHZJIZS9J2Ui4tTXBLA==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.7.6.tgz", + "integrity": "sha512-ZAcH9aL+p3psXwcsts51liKiqS/Kez05bYM193QC7mfcGwlFhQWMCRWHb38y8yHrWQMUmtOZ+jKotKjrOitDUw==", "requires": { - "@walletconnect/core": "^1.7.5", - "@walletconnect/iso-crypto": "^1.7.5", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5" + "@walletconnect/core": "^1.7.6", + "@walletconnect/iso-crypto": "^1.7.6", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6" } }, "@walletconnect/core": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.7.5.tgz", - "integrity": "sha512-c4B8s9fZ/Ah2p460Hxo4e9pwLQVYT2+dVYAfqaxVzfYjhAokDEtO55Bdm1hujtRjQVqwTvCljKxBB+LgMp3k8w==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.7.6.tgz", + "integrity": "sha512-gWD80GTgJ/xpYbJ/R5sbto1daDcDqeHl3ODzdtaVbDR2whS16spsEsXxgsM6BXFKqbGJ0r90SkHsNHa8xiekLQ==", "requires": { - "@walletconnect/socket-transport": "^1.7.5", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5" + "@walletconnect/socket-transport": "^1.7.6", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6" } }, "@walletconnect/crypto": { @@ -29466,24 +29488,24 @@ "integrity": "sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==" }, "@walletconnect/http-connection": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.7.5.tgz", - "integrity": "sha512-WDy2Y/07c1F107362jel0voeV6QMJuWbwAKNLtxlX8Y9KNzqZAGlHhIZykSWrMjNGwxBaXoqLPmu60uVvodc6A==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.7.6.tgz", + "integrity": "sha512-G2xgqALcy2naHeiFS1N3VEwsgqIbFrbBv9gYaHE3R6RuEb4VVSIVGy6brpN+CoLmI680Kj2EmiJG7yvpNsHKdg==", "requires": { - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6", "eventemitter3": "4.0.7", "xhr2-cookies": "1.1.0" } }, "@walletconnect/iso-crypto": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.7.5.tgz", - "integrity": "sha512-mJdRs2SqAPOLBBqLhU+ZnAh2c8TL2uDuL/ojV4aBzZ0ZHNT7X2zSOjAiixCb3vvH8GAt30OKmiRo3+ChI/9zvA==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.7.6.tgz", + "integrity": "sha512-x80OVfarjPzD02kJgnpmLCxlsFRaymGjlGWzLmtwO8/hp1mrtT/ukFOsl1Fs6Tunp7BdCoJT+9FYFarcvbsG8Q==", "requires": { "@walletconnect/crypto": "^1.0.2", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5" + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6" } }, "@walletconnect/jsonrpc-types": { @@ -29509,13 +29531,13 @@ "integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==" }, "@walletconnect/qrcode-modal": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.5.tgz", - "integrity": "sha512-LVq35jc3VMGq1EMcGCObQtEiercMDmUHDnc7A3AmUo0LoAbaPo6c8Hq0zqy2+JhtLmxUhU3ktf+szmCoiUDTUQ==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.6.tgz", + "integrity": "sha512-SXx8eTllgyGpArwdB8v1WsmAKbxiizqebJLn32C6KRzWVW5FP4FizzgEi+r6xINWSEpWLX72GbeWAoiQDwFVFw==", "requires": { - "@walletconnect/browser-utils": "^1.7.5", + "@walletconnect/browser-utils": "^1.7.6", "@walletconnect/mobile-registry": "^1.4.0", - "@walletconnect/types": "^1.7.5", + "@walletconnect/types": "^1.7.6", "copy-to-clipboard": "^3.3.1", "preact": "10.4.1", "qrcode": "1.4.4" @@ -29537,29 +29559,29 @@ "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==" }, "@walletconnect/socket-transport": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.7.5.tgz", - "integrity": "sha512-4TYCxrNWb4f5a1NGsALXidr+/6dOiqgVfUQJ4fdP6R7ijL+7jtdiktguU9FIDq5wFXRE+ZdpCpwSAfOt60q/mQ==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.7.6.tgz", + "integrity": "sha512-yH2eKD9P34gnOxOfCarERROl5SkiwBR9UcASjcnp2L7r02ZaXHbhheXHUWzcU5HpEXrvz8DGciE7GBQn+aNgQg==", "requires": { - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6", "ws": "7.5.3" } }, "@walletconnect/types": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.7.5.tgz", - "integrity": "sha512-0HvZzxD93et4DdrYgAvclI1BqclkZS7iPWRtbGg3r+PQhRPbOkNypzBy6XH6wflbmr+WBGdmyJvynHsdhcCqUA==" + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.7.6.tgz", + "integrity": "sha512-3JVjEzvJgDc5DzaXNxhg4JcdG4U8Qk6HVBELOu+TwiWG31TZRt82uL9CcVZKieFPP/nTWQnj+QkiKSpO7T1KTQ==" }, "@walletconnect/utils": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.7.5.tgz", - "integrity": "sha512-U954rIIA/g/Cmdqy+n3hMY1DDMmXxGs8w/QmrK9b/H5nkQ3e4QicOyynq5g/JTTesN5HZdDTFiyX9r0GSKa+iA==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.7.6.tgz", + "integrity": "sha512-GLneac0Hx52pNHAOkTt/07K+Ht8LmWFaK0nQlHqrLmOJm8WZPnUvMZGMTpSOzgKw47u0cjhE38ipbXOaq8qReA==", "requires": { - "@walletconnect/browser-utils": "^1.7.5", + "@walletconnect/browser-utils": "^1.7.6", "@walletconnect/encoding": "^1.0.1", "@walletconnect/jsonrpc-utils": "^1.0.0", - "@walletconnect/types": "^1.7.5", + "@walletconnect/types": "^1.7.6", "bn.js": "4.11.8", "js-sha3": "0.8.0", "query-string": "6.13.5" @@ -29583,15 +29605,15 @@ } }, "@walletconnect/web3-provider": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.7.5.tgz", - "integrity": "sha512-x+UWOTu7jd9qog9NWhaspOmVRDJPnQrgZBscnaSC+x/aAsi52VUrd1GZ9c5UNZFgss41fdx3Z2KhkPeVrlrbuQ==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.7.6.tgz", + "integrity": "sha512-INjHVTuuISm9rk9QGr8v0IvcmjygEyt+rDB6Iw6G5hK+qwEB+UlrRbXyu0bAmEe4wREpiJmegz7KjiHIxmCTNA==", "requires": { - "@walletconnect/client": "^1.7.5", - "@walletconnect/http-connection": "^1.7.5", - "@walletconnect/qrcode-modal": "^1.7.5", - "@walletconnect/types": "^1.7.5", - "@walletconnect/utils": "^1.7.5", + "@walletconnect/client": "^1.7.6", + "@walletconnect/http-connection": "^1.7.6", + "@walletconnect/qrcode-modal": "^1.7.6", + "@walletconnect/types": "^1.7.6", + "@walletconnect/utils": "^1.7.6", "web3-provider-engine": "16.0.1" } }, @@ -29749,9 +29771,9 @@ } }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" }, "ansi-styles": { "version": "3.2.1", @@ -38016,9 +38038,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "2.9.0", diff --git a/package.json b/package.json index 0908527ed..1f8eb39c5 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "@oceanprotocol/typographies": "^0.1.0", "@portis/web3": "^4.0.7", "@tippyjs/react": "^4.2.6", - "@walletconnect/web3-provider": "^1.7.5", + "@urql/exchange-refocus": "^0.2.5", + "@walletconnect/web3-provider": "^1.7.6", "axios": "^0.26.1", "bignumber.js": "^9.0.2", "chart.js": "^3.7.1", diff --git a/src/@context/Pool/index.tsx b/src/@context/Pool/index.tsx index d34c056e4..34f28e5bb 100644 --- a/src/@context/Pool/index.tsx +++ b/src/@context/Pool/index.tsx @@ -53,7 +53,7 @@ function PoolProvider({ children }: { children: ReactNode }): ReactElement { const [poolSnapshots, setPoolSnapshots] = useState() const [hasUserAddedLiquidity, setUserHasAddedLiquidity] = useState(false) const [isRemoveDisabled, setIsRemoveDisabled] = useState(false) - const [fetchInterval, setFetchInterval] = useState() + // const [fetchInterval, setFetchInterval] = useState() const fetchAllData = useCallback(async () => { if (!asset?.chainId || !asset?.accessDetails?.addressOrId || !owner) return @@ -78,27 +78,27 @@ function PoolProvider({ children }: { children: ReactNode }): ReactElement { }, [asset?.chainId, asset?.accessDetails?.addressOrId, owner, accountId]) // Helper: start interval fetching - const initFetchInterval = useCallback(() => { - if (fetchInterval) return + // const initFetchInterval = useCallback(() => { + // if (fetchInterval) return - const newInterval = setInterval(() => { - fetchAllData() - LoggerInstance.log( - `[pool] Refetch interval fired after ${refreshInterval / 1000}s` - ) - }, refreshInterval) - setFetchInterval(newInterval) + // const newInterval = setInterval(() => { + // fetchAllData() + // LoggerInstance.log( + // `[pool] Refetch interval fired after ${refreshInterval / 1000}s` + // ) + // }, refreshInterval) + // setFetchInterval(newInterval) - // Having `accountId` as dependency is important for interval to - // change after user account switch. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [fetchInterval, fetchAllData, accountId]) + // // Having `accountId` as dependency is important for interval to + // // change after user account switch. + // // eslint-disable-next-line react-hooks/exhaustive-deps + // }, [fetchInterval, fetchAllData, accountId]) - useEffect(() => { - return () => { - clearInterval(fetchInterval) - } - }, [fetchInterval]) + // useEffect(() => { + // return () => { + // clearInterval(fetchInterval) + // } + // }, [fetchInterval]) // // 0 Fetch all the data on mount if we are on a pool. @@ -109,8 +109,8 @@ function PoolProvider({ children }: { children: ReactNode }): ReactElement { if (asset?.accessDetails?.type !== 'dynamic') return fetchAllData() - initFetchInterval() - }, [fetchAllData, initFetchInterval, asset?.accessDetails?.type]) + // initFetchInterval() + }, [fetchAllData, asset?.accessDetails?.type]) // // 1 General Pool Info diff --git a/src/@context/UrqlProvider.tsx b/src/@context/UrqlProvider.tsx index 877f118a8..de0fd2930 100644 --- a/src/@context/UrqlProvider.tsx +++ b/src/@context/UrqlProvider.tsx @@ -1,4 +1,12 @@ -import { createClient, Provider, Client } from 'urql' +import { + createClient, + Provider, + Client, + cacheExchange, + dedupExchange, + fetchExchange +} from 'urql' +import { refocusExchange } from '@urql/exchange-refocus' import React, { useState, useEffect, ReactNode, ReactElement } from 'react' import { LoggerInstance } from '@oceanprotocol/lib' import { getOceanConfig } from '@utils/ocean' @@ -7,7 +15,8 @@ let urqlClient: Client function createUrqlClient(subgraphUri: string) { const client = createClient({ - url: `${subgraphUri}/subgraphs/name/oceanprotocol/ocean-subgraph` + url: `${subgraphUri}/subgraphs/name/oceanprotocol/ocean-subgraph`, + exchanges: [dedupExchange, refocusExchange(), cacheExchange, fetchExchange] }) return client } diff --git a/src/@utils/subgraph.ts b/src/@utils/subgraph.ts index 37d7dc41b..5c00f8424 100644 --- a/src/@utils/subgraph.ts +++ b/src/@utils/subgraph.ts @@ -211,7 +211,7 @@ export function getQueryContext(chainId: number): OperationContext { url: `${getSubgraphUri( Number(chainId) )}/subgraphs/name/oceanprotocol/ocean-subgraph`, - requestPolicy: 'cache-and-network' + requestPolicy: 'network-only' } return queryContext } catch (error) { diff --git a/src/components/Asset/AssetActions/Download.tsx b/src/components/Asset/AssetActions/Download.tsx index 67c48b511..b3643121e 100644 --- a/src/components/Asset/AssetActions/Download.tsx +++ b/src/components/Asset/AssetActions/Download.tsx @@ -16,6 +16,7 @@ import { getOrderFeedback } from '@utils/feedback' import { getOrderPriceAndFees } from '@utils/accessDetailsAndPricing' import { OrderPriceAndFees } from 'src/@types/Price' import { toast } from 'react-toastify' +import { useIsMounted } from '@hooks/useIsMounted' export default function Download({ asset, @@ -34,6 +35,8 @@ export default function Download({ }): ReactElement { const { accountId, web3 } = useWeb3() const { isInPurgatory, isAssetNetwork } = useAsset() + const isMounted = useIsMounted() + const [isDisabled, setIsDisabled] = useState(true) const [hasDatatoken, setHasDatatoken] = useState(false) const [statusText, setStatusText] = useState('') @@ -71,12 +74,14 @@ export default function Download({ }, [dtBalance]) useEffect(() => { - if (!accountId || !asset?.accessDetails) return - setIsDisabled( + if (!isMounted || !accountId || !asset?.accessDetails) return + + const isDisabled = !asset?.accessDetails.isPurchasable || - ((!isBalanceSufficient || !isAssetNetwork) && !isOwned && !hasDatatoken) - ) + ((!isBalanceSufficient || !isAssetNetwork) && !isOwned && !hasDatatoken) + setIsDisabled(isDisabled) }, [ + isMounted, asset?.accessDetails, isBalanceSufficient, isAssetNetwork, diff --git a/src/components/Asset/AssetActions/Pool/Add/index.tsx b/src/components/Asset/AssetActions/Pool/Add/index.tsx index a9cb35a2f..d70fee089 100644 --- a/src/components/Asset/AssetActions/Pool/Add/index.tsx +++ b/src/components/Asset/AssetActions/Pool/Add/index.tsx @@ -14,6 +14,7 @@ import { useWeb3 } from '@context/Web3' import { useAsset } from '@context/Asset' import content from '../../../../../../content/price.json' import { calcMaxExactIn, LoggerInstance, Pool } from '@oceanprotocol/lib' +import { usePool } from '@context/Pool' export interface FormAddLiquidity { amount: string @@ -31,8 +32,7 @@ export default function Add({ swapFee, datatokenSymbol, tokenInSymbol, - tokenInAddress, - fetchAllData + tokenInAddress }: { setShowAdd: (show: boolean) => void poolAddress: string @@ -42,10 +42,10 @@ export default function Add({ datatokenSymbol: string tokenInSymbol: string tokenInAddress: string - fetchAllData: () => void }): ReactElement { const { accountId, balance, web3 } = useWeb3() const { isAssetNetwork } = useAsset() + const { fetchAllData } = usePool() const { debug } = useUserPreferences() const [txId, setTxId] = useState() const [amountMax, setAmountMax] = useState() @@ -123,7 +123,10 @@ export default function Add({ <>
setShowAdd(false)} + backAction={() => { + setShowAdd(false) + fetchAllData() + }} /> void poolAddress: string @@ -38,10 +38,10 @@ export default function Remove({ totalPoolTokens: string tokenOutAddress: string tokenOutSymbol: string - fetchAllData: () => void }): ReactElement { const { accountId, web3 } = useWeb3() const { isAssetNetwork } = useAsset() + const { fetchAllData } = usePool() const [amountPercent, setAmountPercent] = useState('0') const [amountMaxPercent, setAmountMaxPercent] = useState('100') @@ -157,7 +157,10 @@ export default function Remove({
setShowRemove(false)} + backAction={() => { + setShowRemove(false) + fetchAllData() + }} />
diff --git a/src/components/Asset/AssetActions/Pool/index.module.css b/src/components/Asset/AssetActions/Pool/index.module.css index 9f103e74d..a1e8b02ca 100644 --- a/src/components/Asset/AssetActions/Pool/index.module.css +++ b/src/components/Asset/AssetActions/Pool/index.module.css @@ -49,7 +49,7 @@ padding-bottom: calc(var(--spacer) / 4); } -.update:before { +/* .update:before { content: ''; width: 6px; height: 6px; @@ -72,4 +72,4 @@ 100% { background: transparent; } -} +} */ diff --git a/src/components/Asset/AssetActions/Pool/index.tsx b/src/components/Asset/AssetActions/Pool/index.tsx index 53abcd8ea..26eebff59 100644 --- a/src/components/Asset/AssetActions/Pool/index.tsx +++ b/src/components/Asset/AssetActions/Pool/index.tsx @@ -29,8 +29,8 @@ export default function Pool(): ReactElement { poolSnapshots, hasUserAddedLiquidity, isRemoveDisabled, - refreshInterval, fetchAllData + // refreshInterval } = usePool() const [showAdd, setShowAdd] = useState(false) @@ -51,7 +51,6 @@ export default function Pool(): ReactElement { datatokenSymbol={poolInfo?.datatokenSymbol} tokenInAddress={poolInfo?.baseTokenAddress} tokenInSymbol={poolInfo?.baseTokenSymbol} - fetchAllData={fetchAllData} /> ) : showRemove ? ( ) : ( <> @@ -180,7 +178,10 @@ export default function Pool(): ReactElement {
- Fetching every {refreshInterval / 1000} sec. + + {/* Fetching every {refreshInterval / 1000} sec. */}