1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

Merge branch 'main' into feature/multinetwork

This commit is contained in:
Matthias Kretschmann 2021-07-22 15:17:18 +02:00
commit 37ea73d421
Signed by: m
GPG Key ID: 606EEEF3C479A91F
9 changed files with 316 additions and 172 deletions

328
package-lock.json generated
View File

@ -19,7 +19,7 @@
"@sindresorhus/slugify": "^2.1.0", "@sindresorhus/slugify": "^2.1.0",
"@tippyjs/react": "^4.2.5", "@tippyjs/react": "^4.2.5",
"@urql/introspection": "^0.3.0", "@urql/introspection": "^0.3.0",
"@walletconnect/web3-provider": "^1.4.1", "@walletconnect/web3-provider": "^1.5.0-rc.7",
"axios": "^0.21.1", "axios": "^0.21.1",
"chart.js": "^2.9.4", "chart.js": "^2.9.4",
"classnames": "^2.3.1", "classnames": "^2.3.1",
@ -71,7 +71,7 @@
"swr": "^0.5.6", "swr": "^0.5.6",
"urql": "^2.0.3", "urql": "^2.0.3",
"use-dark-mode": "^2.3.1", "use-dark-mode": "^2.3.1",
"web3": "^1.3.6", "web3": "^1.4.0",
"web3modal": "^1.9.3", "web3modal": "^1.9.3",
"yup": "^0.32.9" "yup": "^0.32.9"
}, },
@ -5494,19 +5494,20 @@
"optional": true "optional": true
}, },
"node_modules/@json-rpc-tools/types": { "node_modules/@json-rpc-tools/types": {
"version": "1.7.6", "version": "2.0.0-beta.12",
"resolved": "https://registry.npmjs.org/@json-rpc-tools/types/-/types-1.7.6.tgz", "resolved": "https://registry.npmjs.org/@json-rpc-tools/types/-/types-2.0.0-beta.12.tgz",
"integrity": "sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==", "integrity": "sha512-UM8w0RnD4DjYql/HlThe051ivW2Q8ulWarr7ux5Aas1UsOmcGQEg4slQo46p+BXgh1Nth7SHWS2tVnW/UUnCwQ==",
"dependencies": { "dependencies": {
"keyvaluestorage-interface": "^1.0.0" "keyvaluestorage-interface": "^1.0.0"
} }
}, },
"node_modules/@json-rpc-tools/utils": { "node_modules/@json-rpc-tools/utils": {
"version": "1.6.1", "version": "2.0.0-beta.12",
"resolved": "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-1.6.1.tgz", "resolved": "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-2.0.0-beta.12.tgz",
"integrity": "sha512-cNwP4QapAls+xATU8zLLqPYa9qCbgwEyWEK7vE1oH91b3LfbUYwHtiWZ1+rv0X/mh/9cWNTo2Oi2Sah/QX0WwA==", "integrity": "sha512-7j3REzegFNXdgA0rjllNKz84ikIAXm4Yv3mO8Lx9D64hUOU2tUZfELtKEm2wr8FsP5if46Xl9ZH/Ch7JB4nXJQ==",
"dependencies": { "dependencies": {
"@json-rpc-tools/types": "^1.6.1" "@json-rpc-tools/types": "^2.0.0-beta.12",
"@pedrouid/environment": "^1.0.1"
} }
}, },
"node_modules/@ledgerhq/devices": { "node_modules/@ledgerhq/devices": {
@ -6613,20 +6614,21 @@
"integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==" "integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug=="
}, },
"node_modules/@pedrouid/iso-crypto": { "node_modules/@pedrouid/iso-crypto": {
"version": "1.1.0", "version": "2.0.0-beta.7",
"resolved": "https://registry.npmjs.org/@pedrouid/iso-crypto/-/iso-crypto-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@pedrouid/iso-crypto/-/iso-crypto-2.0.0-beta.7.tgz",
"integrity": "sha512-twi+tW67XT0BSOv4rsegnGo4TQMhfFswS/GY3KhrjFiNw3z9x+cMkfO+itNe1JZghQxsxHuhifvfsnG814g1hQ==", "integrity": "sha512-5FxV0kH1gWeI+ejAh3yub/niB/ecxdtUUw8BvKFsPNjNHYF4Zz7zMa1EcSSjOri5D/mw6PLW/Vp+3I2wfeICcw==",
"dependencies": { "dependencies": {
"@pedrouid/iso-random": "^1.1.0", "@pedrouid/environment": "^1.0.1",
"@pedrouid/iso-random": "^2.0.0-beta.6",
"aes-js": "^3.1.2", "aes-js": "^3.1.2",
"enc-utils": "^3.0.0", "enc-utils": "^3.0.0",
"hash.js": "^1.1.7" "hash.js": "^1.1.7"
} }
}, },
"node_modules/@pedrouid/iso-random": { "node_modules/@pedrouid/iso-random": {
"version": "1.2.1", "version": "2.0.0-beta.6",
"resolved": "https://registry.npmjs.org/@pedrouid/iso-random/-/iso-random-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@pedrouid/iso-random/-/iso-random-2.0.0-beta.6.tgz",
"integrity": "sha512-C35NqYMmLsg61WDiEup4OwjRhgfZIcK4BL+Qg49xowHUJ+f7/LFZCO+TGuQqoXFAj1beKIOpUN33f0fqV7zneQ==", "integrity": "sha512-y2oAAPULxBWVSF2FLA0veB/qAfclbyJqepxx2p9/dT4166B+iVfIO5Y+YBXo3t9yhKfSpjdg8lJcd4Cyfe2Yvg==",
"dependencies": { "dependencies": {
"@pedrouid/environment": "^1.0.1", "@pedrouid/environment": "^1.0.1",
"enc-utils": "^3.0.0", "enc-utils": "^3.0.0",
@ -10109,57 +10111,57 @@
} }
}, },
"node_modules/@walletconnect/browser-utils": { "node_modules/@walletconnect/browser-utils": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.5.0-rc.7.tgz",
"integrity": "sha512-ONrkPSI/27o1Wj8kUwE0uUZFk0GDCDQBJy614GsrhcwuQwJEW/B+nXPQ+Ca/4WvQySM5hWVHp1gO1kozSUkh3A==", "integrity": "sha512-bSXB7hQbrXlE4uIayK5MmNTlsCewgvI+QhWpBOIgNTGHHxhgtHFiuw4HHJ4p2398L1J3SY2+7xt62PzrjVNuRA==",
"dependencies": { "dependencies": {
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"detect-browser": "5.2.0", "detect-browser": "5.2.0",
"safe-json-utils": "1.0.0", "safe-json-utils": "2.0.0-beta.0",
"window-getters": "1.0.0", "window-getters": "1.0.0",
"window-metadata": "1.0.0" "window-metadata": "1.0.0"
} }
}, },
"node_modules/@walletconnect/client": { "node_modules/@walletconnect/client": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.5.0-rc.7.tgz",
"integrity": "sha512-JRW+9+j9LwszY76/WcIumEiLmhX7eidorH9SFFmI2pFfbrhB6KLe87FaA106kxwZUyWKOLZ6jVV4d1urYSdEwA==", "integrity": "sha512-oz46HCWaxiIYm9i+tswRZCG870h+IFmFUb4AF/FqCCNcLbDkMY74neX48Nzl9JEsgxA/fJPbS0hRjocD2yEtjQ==",
"dependencies": { "dependencies": {
"@walletconnect/core": "^1.4.1", "@walletconnect/core": "^1.5.0-rc.7",
"@walletconnect/iso-crypto": "^1.4.1", "@walletconnect/iso-crypto": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1" "@walletconnect/utils": "^1.5.0-rc.7"
} }
}, },
"node_modules/@walletconnect/core": { "node_modules/@walletconnect/core": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.5.0-rc.7.tgz",
"integrity": "sha512-NzWvhk4akI2uhORUxMDMS/8yAdfp+nzvb5QdTE0eTD0WOrK16qAfYLSU/IjFc2J2lqhuPVxfO2XV7QoxgCXfwA==", "integrity": "sha512-FKYAQFDyBtpENyChhYXzj+y/zdfJFYORCGu23VqdlVjCX9/PK+IlOWNCzTwMXJrFaFtWhowqZEoj8tBJt8wEZw==",
"dependencies": { "dependencies": {
"@walletconnect/socket-transport": "^1.4.1", "@walletconnect/socket-transport": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1" "@walletconnect/utils": "^1.5.0-rc.7"
} }
}, },
"node_modules/@walletconnect/http-connection": { "node_modules/@walletconnect/http-connection": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.5.0-rc.7.tgz",
"integrity": "sha512-nxpaTjS89exDQQdrp/NJsbbfREio6WQ0aJ9+nZv1YGIIGVu/7WaNDuVY+UXbaBWPEKYrysf4nvzNHJ2BWhkqoA==", "integrity": "sha512-jMac+OJ9FzsfdHgdhrtW9Pjv1oLtGY1peNfjxXwhdr3ZNaWiOmdu9XJf7L+hrcTiFqwGnuy8maBzyYWbirRR+g==",
"dependencies": { "dependencies": {
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1", "@walletconnect/utils": "^1.5.0-rc.7",
"eventemitter3": "4.0.7", "eventemitter3": "4.0.7",
"xhr2-cookies": "1.1.0" "xhr2-cookies": "1.1.0"
} }
}, },
"node_modules/@walletconnect/iso-crypto": { "node_modules/@walletconnect/iso-crypto": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.5.0-rc.7.tgz",
"integrity": "sha512-rzfqM/DFhzNxBriMCU4DOarPkH+Brgll+2a2YeO6zHgMlwZtBKi5mMgzBwbDC3XygOvKbcRTB9G9hr8uYn+i5g==", "integrity": "sha512-UpUN5ddxxi6Fy8KDS0tEjd3x6rRX4EPA/k6DSiaPSoIa+9eJ0S8uGAtxN5lYpxu6fuBXU4ZoHbcJQ7bVZr7uxA==",
"dependencies": { "dependencies": {
"@pedrouid/iso-crypto": "^1.0.0", "@pedrouid/iso-crypto": "^2.0.0-beta.3",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1" "@walletconnect/utils": "^1.5.0-rc.7"
} }
}, },
"node_modules/@walletconnect/mobile-registry": { "node_modules/@walletconnect/mobile-registry": {
@ -10169,40 +10171,41 @@
"deprecated": "Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry" "deprecated": "Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry"
}, },
"node_modules/@walletconnect/qrcode-modal": { "node_modules/@walletconnect/qrcode-modal": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.5.0-rc.7.tgz",
"integrity": "sha512-cIPKwYg+029UQY0natMyuNudxppYMfAzV2zAgdOSViphKTRY8RTI0DcJXVGPXEwx4k6Os3Vj6Fhqqo3RXOtgKg==", "integrity": "sha512-gfcPZADyzS5PdblEe6T6hkbRI3PWw4Hm0nvGc1JylsM70zrISw4KzUJ2V05T8T4qZcfSUi0oC3zxiFglSzjhOg==",
"dependencies": { "dependencies": {
"@walletconnect/browser-utils": "^1.4.1", "@walletconnect/browser-utils": "^1.5.0-rc.7",
"@walletconnect/mobile-registry": "^1.4.0", "@walletconnect/mobile-registry": "^1.4.0",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"copy-to-clipboard": "^3.3.1",
"preact": "10.4.1", "preact": "10.4.1",
"qrcode": "1.4.4" "qrcode": "1.4.4"
} }
}, },
"node_modules/@walletconnect/socket-transport": { "node_modules/@walletconnect/socket-transport": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.5.0-rc.7.tgz",
"integrity": "sha512-/5Mhu4bu3tS52LqTlmmjx5x/N89XqbuT0YMobvQ+k/m+VqSeBDntqIjwBt7XiFlCbrUTq3/yTajavGFxWFB6pA==", "integrity": "sha512-FBb3pBQwZ7Y4+NAeHwDQ1UhYeaMG3u174w/TelNOygnXzfwKsFuQ58ORyHCfGtVV5s3z1KhDPqtWlXJZCPvh3Q==",
"dependencies": { "dependencies": {
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1", "@walletconnect/utils": "^1.5.0-rc.7",
"ws": "7.3.0" "ws": "7.3.0"
} }
}, },
"node_modules/@walletconnect/types": { "node_modules/@walletconnect/types": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.5.0-rc.7.tgz",
"integrity": "sha512-lzS9NbXjVb5N+W/UnCZAflxjLtYepUi4ev1IeFozSvr/cWxAhEe/sjixe7WEIpYklW27kfBhKccMH/KjUoRC7w==" "integrity": "sha512-YHMRcSJFHehNEJiSvXr/kKvmOSsJNFi/T6Ea3vOmvtX3LvbX3S4cx9WNDlvrYlmcY95kGeqWr4ZW3JD/UICyKA=="
}, },
"node_modules/@walletconnect/utils": { "node_modules/@walletconnect/utils": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.5.0-rc.7.tgz",
"integrity": "sha512-JrVjcXmWVcU02fmVNZFBpJ48f84qyar24CF7szGv+k9ZxvU9J7XkM+Fic4790Dt3DaWhOzS9/eBUa+BEZcBbNw==", "integrity": "sha512-T1TX5zXI4fEKV1O0hre90P9enWYkKsZ0a2BJf2i1BW6O4kunKLmdy64tDSQMkBbqhUNvfN4xFCxvQUx3A5AcGA==",
"dependencies": { "dependencies": {
"@json-rpc-tools/utils": "1.6.1", "@json-rpc-tools/utils": "^2.0.0-beta.11",
"@walletconnect/browser-utils": "^1.4.1", "@walletconnect/browser-utils": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"bn.js": "4.11.8", "bn.js": "4.11.8",
"enc-utils": "3.0.0", "enc-utils": "3.0.0",
"js-sha3": "0.8.0", "js-sha3": "0.8.0",
@ -10226,15 +10229,15 @@
} }
}, },
"node_modules/@walletconnect/web3-provider": { "node_modules/@walletconnect/web3-provider": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.5.0-rc.7.tgz",
"integrity": "sha512-gUoBGM5hdtcXSoLXDTG1/WTamnUNpEWfaYMIVkfVnvVFd4whIjb0iOW5ywvDOf/49wq0C2+QThZL2Wc+r+jKLA==", "integrity": "sha512-e5oFGAhkUKXYlYd/WONBFti/JejoF/jdjSSGjIHgru6ww083Dgi3Q/xTbll10fJQk/YZjJ9kvQOMpWQwLq0FRA==",
"dependencies": { "dependencies": {
"@walletconnect/client": "^1.4.1", "@walletconnect/client": "^1.5.0-rc.7",
"@walletconnect/http-connection": "^1.4.1", "@walletconnect/http-connection": "^1.5.0-rc.7",
"@walletconnect/qrcode-modal": "^1.4.1", "@walletconnect/qrcode-modal": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1", "@walletconnect/utils": "^1.5.0-rc.7",
"web3-provider-engine": "16.0.1" "web3-provider-engine": "16.0.1"
} }
}, },
@ -16346,6 +16349,14 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/copy-to-clipboard": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz",
"integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==",
"dependencies": {
"toggle-selection": "^1.0.6"
}
},
"node_modules/copyfiles": { "node_modules/copyfiles": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz",
@ -45823,9 +45834,9 @@
} }
}, },
"node_modules/safe-json-utils": { "node_modules/safe-json-utils": {
"version": "1.0.0", "version": "2.0.0-beta.0",
"resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.0.0.tgz", "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-2.0.0-beta.0.tgz",
"integrity": "sha512-n0hJm6BgX8wk3G+AS8MOQnfcA8dfE6ZMUfwkHUNx69YxPlU3HDaZTHXWto35Z+C4mOjK1odlT95WutkGC+0Idw==" "integrity": "sha512-kaIaayQoR1EoeX0UIQqQyHvWNNWKnQcrNmebCpR80zSjML/EMmulChGJDSoJvFR8eWkVIpDD5kAF0dMuxl1ngg=="
}, },
"node_modules/safe-regex": { "node_modules/safe-regex": {
"version": "1.1.0", "version": "1.1.0",
@ -50448,6 +50459,11 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/toggle-selection": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
"integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI="
},
"node_modules/toidentifier": { "node_modules/toidentifier": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
@ -60030,19 +60046,20 @@
"optional": true "optional": true
}, },
"@json-rpc-tools/types": { "@json-rpc-tools/types": {
"version": "1.7.6", "version": "2.0.0-beta.12",
"resolved": "https://registry.npmjs.org/@json-rpc-tools/types/-/types-1.7.6.tgz", "resolved": "https://registry.npmjs.org/@json-rpc-tools/types/-/types-2.0.0-beta.12.tgz",
"integrity": "sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==", "integrity": "sha512-UM8w0RnD4DjYql/HlThe051ivW2Q8ulWarr7ux5Aas1UsOmcGQEg4slQo46p+BXgh1Nth7SHWS2tVnW/UUnCwQ==",
"requires": { "requires": {
"keyvaluestorage-interface": "^1.0.0" "keyvaluestorage-interface": "^1.0.0"
} }
}, },
"@json-rpc-tools/utils": { "@json-rpc-tools/utils": {
"version": "1.6.1", "version": "2.0.0-beta.12",
"resolved": "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-1.6.1.tgz", "resolved": "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-2.0.0-beta.12.tgz",
"integrity": "sha512-cNwP4QapAls+xATU8zLLqPYa9qCbgwEyWEK7vE1oH91b3LfbUYwHtiWZ1+rv0X/mh/9cWNTo2Oi2Sah/QX0WwA==", "integrity": "sha512-7j3REzegFNXdgA0rjllNKz84ikIAXm4Yv3mO8Lx9D64hUOU2tUZfELtKEm2wr8FsP5if46Xl9ZH/Ch7JB4nXJQ==",
"requires": { "requires": {
"@json-rpc-tools/types": "^1.6.1" "@json-rpc-tools/types": "^2.0.0-beta.12",
"@pedrouid/environment": "^1.0.1"
} }
}, },
"@ledgerhq/devices": { "@ledgerhq/devices": {
@ -60919,20 +60936,21 @@
"integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==" "integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug=="
}, },
"@pedrouid/iso-crypto": { "@pedrouid/iso-crypto": {
"version": "1.1.0", "version": "2.0.0-beta.7",
"resolved": "https://registry.npmjs.org/@pedrouid/iso-crypto/-/iso-crypto-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@pedrouid/iso-crypto/-/iso-crypto-2.0.0-beta.7.tgz",
"integrity": "sha512-twi+tW67XT0BSOv4rsegnGo4TQMhfFswS/GY3KhrjFiNw3z9x+cMkfO+itNe1JZghQxsxHuhifvfsnG814g1hQ==", "integrity": "sha512-5FxV0kH1gWeI+ejAh3yub/niB/ecxdtUUw8BvKFsPNjNHYF4Zz7zMa1EcSSjOri5D/mw6PLW/Vp+3I2wfeICcw==",
"requires": { "requires": {
"@pedrouid/iso-random": "^1.1.0", "@pedrouid/environment": "^1.0.1",
"@pedrouid/iso-random": "^2.0.0-beta.6",
"aes-js": "^3.1.2", "aes-js": "^3.1.2",
"enc-utils": "^3.0.0", "enc-utils": "^3.0.0",
"hash.js": "^1.1.7" "hash.js": "^1.1.7"
} }
}, },
"@pedrouid/iso-random": { "@pedrouid/iso-random": {
"version": "1.2.1", "version": "2.0.0-beta.6",
"resolved": "https://registry.npmjs.org/@pedrouid/iso-random/-/iso-random-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@pedrouid/iso-random/-/iso-random-2.0.0-beta.6.tgz",
"integrity": "sha512-C35NqYMmLsg61WDiEup4OwjRhgfZIcK4BL+Qg49xowHUJ+f7/LFZCO+TGuQqoXFAj1beKIOpUN33f0fqV7zneQ==", "integrity": "sha512-y2oAAPULxBWVSF2FLA0veB/qAfclbyJqepxx2p9/dT4166B+iVfIO5Y+YBXo3t9yhKfSpjdg8lJcd4Cyfe2Yvg==",
"requires": { "requires": {
"@pedrouid/environment": "^1.0.1", "@pedrouid/environment": "^1.0.1",
"enc-utils": "^3.0.0", "enc-utils": "^3.0.0",
@ -63956,57 +63974,57 @@
"requires": {} "requires": {}
}, },
"@walletconnect/browser-utils": { "@walletconnect/browser-utils": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.5.0-rc.7.tgz",
"integrity": "sha512-ONrkPSI/27o1Wj8kUwE0uUZFk0GDCDQBJy614GsrhcwuQwJEW/B+nXPQ+Ca/4WvQySM5hWVHp1gO1kozSUkh3A==", "integrity": "sha512-bSXB7hQbrXlE4uIayK5MmNTlsCewgvI+QhWpBOIgNTGHHxhgtHFiuw4HHJ4p2398L1J3SY2+7xt62PzrjVNuRA==",
"requires": { "requires": {
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"detect-browser": "5.2.0", "detect-browser": "5.2.0",
"safe-json-utils": "1.0.0", "safe-json-utils": "2.0.0-beta.0",
"window-getters": "1.0.0", "window-getters": "1.0.0",
"window-metadata": "1.0.0" "window-metadata": "1.0.0"
} }
}, },
"@walletconnect/client": { "@walletconnect/client": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.5.0-rc.7.tgz",
"integrity": "sha512-JRW+9+j9LwszY76/WcIumEiLmhX7eidorH9SFFmI2pFfbrhB6KLe87FaA106kxwZUyWKOLZ6jVV4d1urYSdEwA==", "integrity": "sha512-oz46HCWaxiIYm9i+tswRZCG870h+IFmFUb4AF/FqCCNcLbDkMY74neX48Nzl9JEsgxA/fJPbS0hRjocD2yEtjQ==",
"requires": { "requires": {
"@walletconnect/core": "^1.4.1", "@walletconnect/core": "^1.5.0-rc.7",
"@walletconnect/iso-crypto": "^1.4.1", "@walletconnect/iso-crypto": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1" "@walletconnect/utils": "^1.5.0-rc.7"
} }
}, },
"@walletconnect/core": { "@walletconnect/core": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.5.0-rc.7.tgz",
"integrity": "sha512-NzWvhk4akI2uhORUxMDMS/8yAdfp+nzvb5QdTE0eTD0WOrK16qAfYLSU/IjFc2J2lqhuPVxfO2XV7QoxgCXfwA==", "integrity": "sha512-FKYAQFDyBtpENyChhYXzj+y/zdfJFYORCGu23VqdlVjCX9/PK+IlOWNCzTwMXJrFaFtWhowqZEoj8tBJt8wEZw==",
"requires": { "requires": {
"@walletconnect/socket-transport": "^1.4.1", "@walletconnect/socket-transport": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1" "@walletconnect/utils": "^1.5.0-rc.7"
} }
}, },
"@walletconnect/http-connection": { "@walletconnect/http-connection": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.5.0-rc.7.tgz",
"integrity": "sha512-nxpaTjS89exDQQdrp/NJsbbfREio6WQ0aJ9+nZv1YGIIGVu/7WaNDuVY+UXbaBWPEKYrysf4nvzNHJ2BWhkqoA==", "integrity": "sha512-jMac+OJ9FzsfdHgdhrtW9Pjv1oLtGY1peNfjxXwhdr3ZNaWiOmdu9XJf7L+hrcTiFqwGnuy8maBzyYWbirRR+g==",
"requires": { "requires": {
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1", "@walletconnect/utils": "^1.5.0-rc.7",
"eventemitter3": "4.0.7", "eventemitter3": "4.0.7",
"xhr2-cookies": "1.1.0" "xhr2-cookies": "1.1.0"
} }
}, },
"@walletconnect/iso-crypto": { "@walletconnect/iso-crypto": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.5.0-rc.7.tgz",
"integrity": "sha512-rzfqM/DFhzNxBriMCU4DOarPkH+Brgll+2a2YeO6zHgMlwZtBKi5mMgzBwbDC3XygOvKbcRTB9G9hr8uYn+i5g==", "integrity": "sha512-UpUN5ddxxi6Fy8KDS0tEjd3x6rRX4EPA/k6DSiaPSoIa+9eJ0S8uGAtxN5lYpxu6fuBXU4ZoHbcJQ7bVZr7uxA==",
"requires": { "requires": {
"@pedrouid/iso-crypto": "^1.0.0", "@pedrouid/iso-crypto": "^2.0.0-beta.3",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1" "@walletconnect/utils": "^1.5.0-rc.7"
} }
}, },
"@walletconnect/mobile-registry": { "@walletconnect/mobile-registry": {
@ -64015,40 +64033,41 @@
"integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==" "integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw=="
}, },
"@walletconnect/qrcode-modal": { "@walletconnect/qrcode-modal": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.5.0-rc.7.tgz",
"integrity": "sha512-cIPKwYg+029UQY0natMyuNudxppYMfAzV2zAgdOSViphKTRY8RTI0DcJXVGPXEwx4k6Os3Vj6Fhqqo3RXOtgKg==", "integrity": "sha512-gfcPZADyzS5PdblEe6T6hkbRI3PWw4Hm0nvGc1JylsM70zrISw4KzUJ2V05T8T4qZcfSUi0oC3zxiFglSzjhOg==",
"requires": { "requires": {
"@walletconnect/browser-utils": "^1.4.1", "@walletconnect/browser-utils": "^1.5.0-rc.7",
"@walletconnect/mobile-registry": "^1.4.0", "@walletconnect/mobile-registry": "^1.4.0",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"copy-to-clipboard": "^3.3.1",
"preact": "10.4.1", "preact": "10.4.1",
"qrcode": "1.4.4" "qrcode": "1.4.4"
} }
}, },
"@walletconnect/socket-transport": { "@walletconnect/socket-transport": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.5.0-rc.7.tgz",
"integrity": "sha512-/5Mhu4bu3tS52LqTlmmjx5x/N89XqbuT0YMobvQ+k/m+VqSeBDntqIjwBt7XiFlCbrUTq3/yTajavGFxWFB6pA==", "integrity": "sha512-FBb3pBQwZ7Y4+NAeHwDQ1UhYeaMG3u174w/TelNOygnXzfwKsFuQ58ORyHCfGtVV5s3z1KhDPqtWlXJZCPvh3Q==",
"requires": { "requires": {
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1", "@walletconnect/utils": "^1.5.0-rc.7",
"ws": "7.3.0" "ws": "7.3.0"
} }
}, },
"@walletconnect/types": { "@walletconnect/types": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.5.0-rc.7.tgz",
"integrity": "sha512-lzS9NbXjVb5N+W/UnCZAflxjLtYepUi4ev1IeFozSvr/cWxAhEe/sjixe7WEIpYklW27kfBhKccMH/KjUoRC7w==" "integrity": "sha512-YHMRcSJFHehNEJiSvXr/kKvmOSsJNFi/T6Ea3vOmvtX3LvbX3S4cx9WNDlvrYlmcY95kGeqWr4ZW3JD/UICyKA=="
}, },
"@walletconnect/utils": { "@walletconnect/utils": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.5.0-rc.7.tgz",
"integrity": "sha512-JrVjcXmWVcU02fmVNZFBpJ48f84qyar24CF7szGv+k9ZxvU9J7XkM+Fic4790Dt3DaWhOzS9/eBUa+BEZcBbNw==", "integrity": "sha512-T1TX5zXI4fEKV1O0hre90P9enWYkKsZ0a2BJf2i1BW6O4kunKLmdy64tDSQMkBbqhUNvfN4xFCxvQUx3A5AcGA==",
"requires": { "requires": {
"@json-rpc-tools/utils": "1.6.1", "@json-rpc-tools/utils": "^2.0.0-beta.11",
"@walletconnect/browser-utils": "^1.4.1", "@walletconnect/browser-utils": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"bn.js": "4.11.8", "bn.js": "4.11.8",
"enc-utils": "3.0.0", "enc-utils": "3.0.0",
"js-sha3": "0.8.0", "js-sha3": "0.8.0",
@ -64068,15 +64087,15 @@
} }
}, },
"@walletconnect/web3-provider": { "@walletconnect/web3-provider": {
"version": "1.4.1", "version": "1.5.0-rc.7",
"resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.4.1.tgz", "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.5.0-rc.7.tgz",
"integrity": "sha512-gUoBGM5hdtcXSoLXDTG1/WTamnUNpEWfaYMIVkfVnvVFd4whIjb0iOW5ywvDOf/49wq0C2+QThZL2Wc+r+jKLA==", "integrity": "sha512-e5oFGAhkUKXYlYd/WONBFti/JejoF/jdjSSGjIHgru6ww083Dgi3Q/xTbll10fJQk/YZjJ9kvQOMpWQwLq0FRA==",
"requires": { "requires": {
"@walletconnect/client": "^1.4.1", "@walletconnect/client": "^1.5.0-rc.7",
"@walletconnect/http-connection": "^1.4.1", "@walletconnect/http-connection": "^1.5.0-rc.7",
"@walletconnect/qrcode-modal": "^1.4.1", "@walletconnect/qrcode-modal": "^1.5.0-rc.7",
"@walletconnect/types": "^1.4.1", "@walletconnect/types": "^1.5.0-rc.7",
"@walletconnect/utils": "^1.4.1", "@walletconnect/utils": "^1.5.0-rc.7",
"web3-provider-engine": "16.0.1" "web3-provider-engine": "16.0.1"
} }
}, },
@ -69086,6 +69105,14 @@
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
}, },
"copy-to-clipboard": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz",
"integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==",
"requires": {
"toggle-selection": "^1.0.6"
}
},
"copyfiles": { "copyfiles": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz",
@ -92634,9 +92661,9 @@
} }
}, },
"safe-json-utils": { "safe-json-utils": {
"version": "1.0.0", "version": "2.0.0-beta.0",
"resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.0.0.tgz", "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-2.0.0-beta.0.tgz",
"integrity": "sha512-n0hJm6BgX8wk3G+AS8MOQnfcA8dfE6ZMUfwkHUNx69YxPlU3HDaZTHXWto35Z+C4mOjK1odlT95WutkGC+0Idw==" "integrity": "sha512-kaIaayQoR1EoeX0UIQqQyHvWNNWKnQcrNmebCpR80zSjML/EMmulChGJDSoJvFR8eWkVIpDD5kAF0dMuxl1ngg=="
}, },
"safe-regex": { "safe-regex": {
"version": "1.1.0", "version": "1.1.0",
@ -96397,6 +96424,11 @@
"is-number": "^7.0.0" "is-number": "^7.0.0"
} }
}, },
"toggle-selection": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
"integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI="
},
"toidentifier": { "toidentifier": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",

View File

@ -34,7 +34,7 @@
"@sindresorhus/slugify": "^2.1.0", "@sindresorhus/slugify": "^2.1.0",
"@tippyjs/react": "^4.2.5", "@tippyjs/react": "^4.2.5",
"@urql/introspection": "^0.3.0", "@urql/introspection": "^0.3.0",
"@walletconnect/web3-provider": "^1.4.1", "@walletconnect/web3-provider": "^1.5.0-rc.7",
"axios": "^0.21.1", "axios": "^0.21.1",
"chart.js": "^2.9.4", "chart.js": "^2.9.4",
"classnames": "^2.3.1", "classnames": "^2.3.1",
@ -86,7 +86,7 @@
"swr": "^0.5.6", "swr": "^0.5.6",
"urql": "^2.0.3", "urql": "^2.0.3",
"use-dark-mode": "^2.3.1", "use-dark-mode": "^2.3.1",
"web3": "^1.3.6", "web3": "^1.4.0",
"web3modal": "^1.9.3", "web3modal": "^1.9.3",
"yup": "^0.32.9" "yup": "^0.32.9"
}, },

View File

@ -10,6 +10,7 @@ interface ButtonBuyProps {
hasDatatoken: boolean hasDatatoken: boolean
dtSymbol: string dtSymbol: string
dtBalance: string dtBalance: string
datasetLowPoolLiquidity: boolean
assetType: string assetType: string
assetTimeout: string assetTimeout: string
isConsumable: boolean isConsumable: boolean
@ -18,6 +19,7 @@ interface ButtonBuyProps {
hasDatatokenSelectedComputeAsset?: boolean hasDatatokenSelectedComputeAsset?: boolean
dtSymbolSelectedComputeAsset?: string dtSymbolSelectedComputeAsset?: string
dtBalanceSelectedComputeAsset?: string dtBalanceSelectedComputeAsset?: string
selectedComputeAssetLowPoolLiquidity?: boolean
selectedComputeAssetType?: string selectedComputeAssetType?: string
isLoading: boolean isLoading: boolean
onClick?: (e: FormEvent<HTMLButtonElement>) => void onClick?: (e: FormEvent<HTMLButtonElement>) => void
@ -33,6 +35,7 @@ function getConsumeHelpText(
dtSymbol: string, dtSymbol: string,
hasDatatoken: boolean, hasDatatoken: boolean,
hasPreviousOrder: boolean, hasPreviousOrder: boolean,
lowPoolLiquidity: boolean,
assetType: string, assetType: string,
isConsumable: boolean, isConsumable: boolean,
consumableFeedback: string consumableFeedback: string
@ -44,8 +47,9 @@ function getConsumeHelpText(
? `You bought this ${assetType} already allowing you to use it without paying again.` ? `You bought this ${assetType} already allowing you to use it without paying again.`
: hasDatatoken : hasDatatoken
? `You own ${dtBalance} ${dtSymbol} allowing you to use this data set by spending 1 ${dtSymbol}, but without paying OCEAN again.` ? `You own ${dtBalance} ${dtSymbol} allowing you to use this data set by spending 1 ${dtSymbol}, but without paying OCEAN again.`
: lowPoolLiquidity
? `There are not enought ${dtSymbol} available in the pool for the transaction to take place`
: `For using this ${assetType}, you will buy 1 ${dtSymbol} and immediately spend it back to the publisher and pool.` : `For using this ${assetType}, you will buy 1 ${dtSymbol} and immediately spend it back to the publisher and pool.`
return text return text
} }
@ -54,6 +58,7 @@ function getComputeAssetHelpText(
hasDatatoken: boolean, hasDatatoken: boolean,
dtSymbol: string, dtSymbol: string,
dtBalance: string, dtBalance: string,
lowPoolLiquidity: boolean,
assetType: string, assetType: string,
isConsumable: boolean, isConsumable: boolean,
consumableFeedback: string, consumableFeedback: string,
@ -61,6 +66,7 @@ function getComputeAssetHelpText(
hasDatatokenSelectedComputeAsset?: boolean, hasDatatokenSelectedComputeAsset?: boolean,
dtSymbolSelectedComputeAsset?: string, dtSymbolSelectedComputeAsset?: string,
dtBalanceSelectedComputeAsset?: string, dtBalanceSelectedComputeAsset?: string,
selectedComputeAssettLowPoolLiquidity?: boolean,
selectedComputeAssetType?: string, selectedComputeAssetType?: string,
algorithmConsumableStatus?: number algorithmConsumableStatus?: number
) { ) {
@ -69,11 +75,12 @@ function getComputeAssetHelpText(
dtSymbol, dtSymbol,
hasDatatoken, hasDatatoken,
hasPreviousOrder, hasPreviousOrder,
lowPoolLiquidity,
assetType, assetType,
isConsumable, isConsumable,
consumableFeedback consumableFeedback
) )
const text = const computeAlgoHelpText =
(!dtSymbolSelectedComputeAsset && !dtBalanceSelectedComputeAsset) || (!dtSymbolSelectedComputeAsset && !dtBalanceSelectedComputeAsset) ||
isConsumable === false isConsumable === false
? '' ? ''
@ -87,9 +94,15 @@ function getComputeAssetHelpText(
? `You already bought the selected ${selectedComputeAssetType}, allowing you to use it without paying again.` ? `You already bought the selected ${selectedComputeAssetType}, allowing you to use it without paying again.`
: hasDatatokenSelectedComputeAsset : hasDatatokenSelectedComputeAsset
? `You own ${dtBalanceSelectedComputeAsset} ${dtSymbolSelectedComputeAsset} allowing you to use the selected ${selectedComputeAssetType} by spending 1 ${dtSymbolSelectedComputeAsset}, but without paying OCEAN again.` ? `You own ${dtBalanceSelectedComputeAsset} ${dtSymbolSelectedComputeAsset} allowing you to use the selected ${selectedComputeAssetType} by spending 1 ${dtSymbolSelectedComputeAsset}, but without paying OCEAN again.`
: selectedComputeAssettLowPoolLiquidity
? `There are not enought ${dtSymbolSelectedComputeAsset} available in the pool for the transaction to take place`
: `Additionally, you will buy 1 ${dtSymbolSelectedComputeAsset} for the ${selectedComputeAssetType} and spend it back to its publisher and pool.` : `Additionally, you will buy 1 ${dtSymbolSelectedComputeAsset} for the ${selectedComputeAssetType} and spend it back to its publisher and pool.`
const computeHelpText = selectedComputeAssettLowPoolLiquidity
return `${computeAssetHelpText} ${text}` ? computeAlgoHelpText
: lowPoolLiquidity
? computeAssetHelpText
: `${computeAssetHelpText} ${computeAlgoHelpText}`
return computeHelpText
} }
export default function ButtonBuy({ export default function ButtonBuy({
@ -99,6 +112,7 @@ export default function ButtonBuy({
hasDatatoken, hasDatatoken,
dtSymbol, dtSymbol,
dtBalance, dtBalance,
datasetLowPoolLiquidity,
assetType, assetType,
assetTimeout, assetTimeout,
isConsumable, isConsumable,
@ -107,6 +121,7 @@ export default function ButtonBuy({
hasDatatokenSelectedComputeAsset, hasDatatokenSelectedComputeAsset,
dtSymbolSelectedComputeAsset, dtSymbolSelectedComputeAsset,
dtBalanceSelectedComputeAsset, dtBalanceSelectedComputeAsset,
selectedComputeAssetLowPoolLiquidity,
selectedComputeAssetType, selectedComputeAssetType,
onClick, onClick,
stepText, stepText,
@ -150,6 +165,7 @@ export default function ButtonBuy({
dtSymbol, dtSymbol,
hasDatatoken, hasDatatoken,
hasPreviousOrder, hasPreviousOrder,
datasetLowPoolLiquidity,
assetType, assetType,
isConsumable, isConsumable,
consumableFeedback consumableFeedback
@ -159,6 +175,7 @@ export default function ButtonBuy({
hasDatatoken, hasDatatoken,
dtSymbol, dtSymbol,
dtBalance, dtBalance,
datasetLowPoolLiquidity,
assetType, assetType,
isConsumable, isConsumable,
consumableFeedback, consumableFeedback,
@ -166,6 +183,7 @@ export default function ButtonBuy({
hasDatatokenSelectedComputeAsset, hasDatatokenSelectedComputeAsset,
dtSymbolSelectedComputeAsset, dtSymbolSelectedComputeAsset,
dtBalanceSelectedComputeAsset, dtBalanceSelectedComputeAsset,
selectedComputeAssetLowPoolLiquidity,
selectedComputeAssetType, selectedComputeAssetType,
algorithmConsumableStatus algorithmConsumableStatus
)} )}

View File

@ -14,6 +14,7 @@ export default function Details(): ReactElement {
const { const {
web3Provider, web3Provider,
web3ProviderInfo, web3ProviderInfo,
web3Modal,
connect, connect,
logout, logout,
networkData, networkData,
@ -107,8 +108,8 @@ export default function Details(): ReactElement {
<Button <Button
style="text" style="text"
size="small" size="small"
onClick={() => { onClick={async () => {
logout() await web3Modal?.clearCachedProvider()
connect() connect()
}} }}
> >

View File

@ -51,12 +51,14 @@ export default function FormStartCompute({
hasPreviousOrder, hasPreviousOrder,
hasDatatoken, hasDatatoken,
dtBalance, dtBalance,
datasetLowPoolLiquidity,
assetType, assetType,
assetTimeout, assetTimeout,
hasPreviousOrderSelectedComputeAsset, hasPreviousOrderSelectedComputeAsset,
hasDatatokenSelectedComputeAsset, hasDatatokenSelectedComputeAsset,
dtSymbolSelectedComputeAsset, dtSymbolSelectedComputeAsset,
dtBalanceSelectedComputeAsset, dtBalanceSelectedComputeAsset,
selectedComputeAssetLowPoolLiquidity,
selectedComputeAssetType, selectedComputeAssetType,
selectedComputeAssetTimeout, selectedComputeAssetTimeout,
stepText, stepText,
@ -72,12 +74,14 @@ export default function FormStartCompute({
hasPreviousOrder: boolean hasPreviousOrder: boolean
hasDatatoken: boolean hasDatatoken: boolean
dtBalance: string dtBalance: string
datasetLowPoolLiquidity: boolean
assetType: string assetType: string
assetTimeout: string assetTimeout: string
hasPreviousOrderSelectedComputeAsset?: boolean hasPreviousOrderSelectedComputeAsset?: boolean
hasDatatokenSelectedComputeAsset?: boolean hasDatatokenSelectedComputeAsset?: boolean
dtSymbolSelectedComputeAsset?: string dtSymbolSelectedComputeAsset?: string
dtBalanceSelectedComputeAsset?: string dtBalanceSelectedComputeAsset?: string
selectedComputeAssetLowPoolLiquidity?: boolean
selectedComputeAssetType?: string selectedComputeAssetType?: string
selectedComputeAssetTimeout?: string selectedComputeAssetTimeout?: string
stepText: string stepText: string
@ -180,6 +184,7 @@ export default function FormStartCompute({
hasDatatoken={hasDatatoken} hasDatatoken={hasDatatoken}
dtSymbol={ddo.dataTokenInfo.symbol} dtSymbol={ddo.dataTokenInfo.symbol}
dtBalance={dtBalance} dtBalance={dtBalance}
datasetLowPoolLiquidity={datasetLowPoolLiquidity}
assetTimeout={assetTimeout} assetTimeout={assetTimeout}
assetType={assetType} assetType={assetType}
hasPreviousOrderSelectedComputeAsset={ hasPreviousOrderSelectedComputeAsset={
@ -188,6 +193,9 @@ export default function FormStartCompute({
hasDatatokenSelectedComputeAsset={hasDatatokenSelectedComputeAsset} hasDatatokenSelectedComputeAsset={hasDatatokenSelectedComputeAsset}
dtSymbolSelectedComputeAsset={dtSymbolSelectedComputeAsset} dtSymbolSelectedComputeAsset={dtSymbolSelectedComputeAsset}
dtBalanceSelectedComputeAsset={dtBalanceSelectedComputeAsset} dtBalanceSelectedComputeAsset={dtBalanceSelectedComputeAsset}
selectedComputeAssetLowPoolLiquidity={
selectedComputeAssetLowPoolLiquidity
}
selectedComputeAssetType={selectedComputeAssetType} selectedComputeAssetType={selectedComputeAssetType}
stepText={stepText} stepText={stepText}
isLoading={isLoading} isLoading={isLoading}

View File

@ -73,6 +73,8 @@ export default function Compute({
const [ddoAlgorithmList, setDdoAlgorithmList] = useState<DDO[]>() const [ddoAlgorithmList, setDdoAlgorithmList] = useState<DDO[]>()
const [selectedAlgorithmAsset, setSelectedAlgorithmAsset] = useState<DDO>() const [selectedAlgorithmAsset, setSelectedAlgorithmAsset] = useState<DDO>()
const [hasAlgoAssetDatatoken, setHasAlgoAssetDatatoken] = useState<boolean>() const [hasAlgoAssetDatatoken, setHasAlgoAssetDatatoken] = useState<boolean>()
const [datasetMaxDT, setDatasetMaxDT] = useState<number>(1)
const [algoMaxDT, setAlgoMaxDT] = useState<number>(1)
const [isPublished, setIsPublished] = useState(false) const [isPublished, setIsPublished] = useState(false)
const [hasPreviousDatasetOrder, setHasPreviousDatasetOrder] = useState(false) const [hasPreviousDatasetOrder, setHasPreviousDatasetOrder] = useState(false)
const [previousDatasetOrderId, setPreviousDatasetOrderId] = useState<string>() const [previousDatasetOrderId, setPreviousDatasetOrderId] = useState<string>()
@ -85,13 +87,15 @@ export default function Compute({
const [datasetTimeout, setDatasetTimeout] = useState<string>() const [datasetTimeout, setDatasetTimeout] = useState<string>()
const [algorithmTimeout, setAlgorithmTimeout] = useState<string>() const [algorithmTimeout, setAlgorithmTimeout] = useState<string>()
const hasDatatoken = Number(dtBalance) >= 1
const isComputeButtonDisabled = const isComputeButtonDisabled =
isJobStarting === true || isJobStarting === true ||
file === null || file === null ||
!ocean || !ocean ||
!isBalanceSufficient || !isBalanceSufficient ||
!isConsumable (!hasPreviousDatasetOrder && !hasDatatoken && !(datasetMaxDT >= 1)) ||
const hasDatatoken = Number(dtBalance) >= 1 (!hasPreviousAlgorithmOrder && !hasAlgoAssetDatatoken && !(algoMaxDT >= 1))
async function checkPreviousOrders(ddo: DDO) { async function checkPreviousOrders(ddo: DDO) {
const { timeout } = ( const { timeout } = (
@ -121,6 +125,22 @@ export default function Compute({
setHasAlgoAssetDatatoken(Number(AssetDtBalance) >= 1) setHasAlgoAssetDatatoken(Number(AssetDtBalance) >= 1)
} }
async function checkAssetDTMaxBuyQuantity(
price: BestPrice,
assetType: string
) {
if (!ocean || !price || !assetType) return
const maxTokensInPool =
price.type === 'pool'
? await ocean.pool.getDTMaxBuyQuantity(price.address)
: 1
if (assetType === 'algorithm') {
setAlgoMaxDT(Number(maxTokensInPool))
} else {
setDatasetMaxDT(Number(maxTokensInPool))
}
}
function getQuerryString( function getQuerryString(
trustedAlgorithmList: publisherTrustedAlgorithm[], trustedAlgorithmList: publisherTrustedAlgorithm[],
chainId?: number chainId?: number
@ -188,6 +208,11 @@ export default function Compute({
if (!ddo) return if (!ddo) return
const price = await getPrice(ddo) const price = await getPrice(ddo)
setAlgorithmPrice(price) setAlgorithmPrice(price)
ocean &&
checkAssetDTMaxBuyQuantity(
price,
ddo.findServiceByType('metadata').attributes.main.type
)
}, []) }, [])
useEffect(() => { useEffect(() => {
@ -200,6 +225,10 @@ export default function Compute({
useEffect(() => { useEffect(() => {
if (!ocean || !accountId) return if (!ocean || !accountId) return
checkPreviousOrders(ddo) checkPreviousOrders(ddo)
checkAssetDTMaxBuyQuantity(
price,
ddo.findServiceByType('metadata').attributes.main.type
)
}, [ocean, ddo, accountId]) }, [ocean, ddo, accountId])
useEffect(() => { useEffect(() => {
@ -416,6 +445,7 @@ export default function Compute({
hasPreviousOrder={hasPreviousDatasetOrder} hasPreviousOrder={hasPreviousDatasetOrder}
hasDatatoken={hasDatatoken} hasDatatoken={hasDatatoken}
dtBalance={dtBalance} dtBalance={dtBalance}
datasetLowPoolLiquidity={!(datasetMaxDT >= 1)}
assetType={type} assetType={type}
assetTimeout={datasetTimeout} assetTimeout={datasetTimeout}
hasPreviousOrderSelectedComputeAsset={hasPreviousAlgorithmOrder} hasPreviousOrderSelectedComputeAsset={hasPreviousAlgorithmOrder}
@ -424,6 +454,7 @@ export default function Compute({
selectedAlgorithmAsset?.dataTokenInfo?.symbol selectedAlgorithmAsset?.dataTokenInfo?.symbol
} }
dtBalanceSelectedComputeAsset={algorithmDTBalance} dtBalanceSelectedComputeAsset={algorithmDTBalance}
selectedComputeAssetLowPoolLiquidity={!(algoMaxDT >= 1)}
selectedComputeAssetType="algorithm" selectedComputeAssetType="algorithm"
selectedComputeAssetTimeout={algorithmTimeout} selectedComputeAssetTimeout={algorithmTimeout}
stepText={pricingStepText || 'Starting Compute Job...'} stepText={pricingStepText || 'Starting Compute Job...'}

View File

@ -1,6 +1,6 @@
import React, { ReactElement, useEffect, useState } from 'react' import React, { ReactElement, useEffect, useState } from 'react'
import { toast } from 'react-toastify' import { toast } from 'react-toastify'
import { File as FileMetadata, DDO } from '@oceanprotocol/lib' import { File as FileMetadata, DDO, BestPrice } from '@oceanprotocol/lib'
import File from '../../atoms/File' import File from '../../atoms/File'
import Price from '../../atoms/Price' import Price from '../../atoms/Price'
import { useSiteMetadata } from '../../../hooks/useSiteMetadata' import { useSiteMetadata } from '../../../hooks/useSiteMetadata'
@ -59,6 +59,7 @@ export default function Consume({
const { consumeStepText, consume, consumeError, isLoading } = useConsume() const { consumeStepText, consume, consumeError, isLoading } = useConsume()
const [isDisabled, setIsDisabled] = useState(true) const [isDisabled, setIsDisabled] = useState(true)
const [hasDatatoken, setHasDatatoken] = useState(false) const [hasDatatoken, setHasDatatoken] = useState(false)
const [maxDt, setMaxDT] = useState<number>(1)
const [isConsumablePrice, setIsConsumablePrice] = useState(true) const [isConsumablePrice, setIsConsumablePrice] = useState(true)
const [assetTimeout, setAssetTimeout] = useState('') const [assetTimeout, setAssetTimeout] = useState('')
const [result] = useQuery<OrdersData>({ const [result] = useQuery<OrdersData>({
@ -71,12 +72,20 @@ export default function Consume({
}) })
const { data } = result const { data } = result
async function checkMaxAvaialableTokens(price: BestPrice) {
if (!ocean || !price) return
const maxTokensInPool =
price.type === 'pool'
? await ocean.pool.getDTMaxBuyQuantity(price.address)
: 1
setMaxDT(Number(maxTokensInPool))
}
useEffect(() => { useEffect(() => {
if (!data || !assetTimeout || data.tokenOrders.length === 0) return if (!data || !assetTimeout || data.tokenOrders.length === 0) return
const lastOrder = data.tokenOrders[0] const lastOrder = data.tokenOrders[0]
if (assetTimeout === '0') {
if (assetTimeout === 'Forever') {
setPreviousOrderId(lastOrder.tx) setPreviousOrderId(lastOrder.tx)
setHasPreviousOrder(true) setHasPreviousOrder(true)
} else { } else {
@ -102,6 +111,7 @@ export default function Consume({
setIsConsumablePrice( setIsConsumablePrice(
price.isConsumable !== undefined ? price.isConsumable === 'true' : true price.isConsumable !== undefined ? price.isConsumable === 'true' : true
) )
checkMaxAvaialableTokens(price)
}, [price]) }, [price])
useEffect(() => { useEffect(() => {
@ -116,6 +126,7 @@ export default function Consume({
!isAssetNetwork || !isAssetNetwork ||
typeof consumeStepText !== 'undefined' || typeof consumeStepText !== 'undefined' ||
pricingIsLoading || pricingIsLoading ||
(!hasPreviousOrder && !hasDatatoken && !(maxDt >= 1)) ||
!isConsumablePrice) && !isConsumablePrice) &&
!hasPreviousOrder && !hasPreviousOrder &&
!hasDatatoken) !hasDatatoken)
@ -164,6 +175,7 @@ export default function Consume({
hasDatatoken={hasDatatoken} hasDatatoken={hasDatatoken}
dtSymbol={ddo.dataTokenInfo?.symbol} dtSymbol={ddo.dataTokenInfo?.symbol}
dtBalance={dtBalance} dtBalance={dtBalance}
datasetLowPoolLiquidity={!(maxDt >= 1)}
onClick={handleConsume} onClick={handleConsume}
assetTimeout={secondsToString(parseInt(assetTimeout))} assetTimeout={secondsToString(parseInt(assetTimeout))}
assetType={type} assetType={type}

View File

@ -81,6 +81,30 @@ div.walletconnect-modal__base {
box-shadow: 0 6px 17px 0 var(--box-shadow-color); box-shadow: 0 6px 17px 0 var(--box-shadow-color);
} }
div.walletconnect-modal__mobile__toggle {
width: 95%;
text-transform: uppercase;
cursor: pointer;
background: var(--background-body);
border: 1px solid var(--border-color);
}
div.walletconnect-modal__mobile__toggle a {
color: var(--color-secondary);
font-weight: var(--font-weight-bold);
font-size: var(--font-size-small);
padding: calc(var(--spacer) / 12) var(--spacer);
white-space: nowrap;
}
div.walletconnect-modal__mobile__toggle_selector {
background: var(--font-color-heading);
color: var(--background-body);
border-color: var(--font-color-heading);
height: calc(100% - calc(var(--spacer) / 12));
top: calc(var(--spacer) / 24);
}
div.walletconnect-modal__header p { div.walletconnect-modal__header p {
color: var(--font-color-heading); color: var(--font-color-heading);
} }
@ -89,6 +113,11 @@ p.walletconnect-qrcode__text {
color: var(--color-secondary); color: var(--color-secondary);
} }
h3.walletconnect-modal__base__row__h3 {
font-size: var(--font-size-base);
color: var(--font-color-text);
}
svg.walletconnect-qrcode__image path:first-child { svg.walletconnect-qrcode__image path:first-child {
fill: var(--background-body); fill: var(--background-body);
} }

View File

@ -31,6 +31,7 @@ interface Web3ProviderValue {
accountId: string accountId: string
balance: UserBalance balance: UserBalance
networkId: number networkId: number
chainId: number
networkDisplayName: string networkDisplayName: string
networkData: EthereumListsChain networkData: EthereumListsChain
block: number block: number
@ -113,6 +114,7 @@ function Web3Provider({ children }: { children: ReactNode }): ReactElement {
const [web3Modal, setWeb3Modal] = useState<Web3Modal>() const [web3Modal, setWeb3Modal] = useState<Web3Modal>()
const [web3ProviderInfo, setWeb3ProviderInfo] = useState<IProviderInfo>() const [web3ProviderInfo, setWeb3ProviderInfo] = useState<IProviderInfo>()
const [networkId, setNetworkId] = useState<number>() const [networkId, setNetworkId] = useState<number>()
const [chainId, setChainId] = useState<number>()
const [networkDisplayName, setNetworkDisplayName] = useState<string>() const [networkDisplayName, setNetworkDisplayName] = useState<string>()
const [networkData, setNetworkData] = useState<EthereumListsChain>() const [networkData, setNetworkData] = useState<EthereumListsChain>()
const [block, setBlock] = useState<number>() const [block, setBlock] = useState<number>()
@ -147,6 +149,10 @@ function Web3Provider({ children }: { children: ReactNode }): ReactElement {
setNetworkId(networkId) setNetworkId(networkId)
Logger.log('[web3] network id ', networkId) Logger.log('[web3] network id ', networkId)
const chainId = await web3.eth.getChainId()
setChainId(chainId)
Logger.log('[web3] chain id ', chainId)
const accountId = (await web3.eth.getAccounts())[0] const accountId = (await web3.eth.getAccounts())[0]
setAccountId(accountId) setAccountId(accountId)
Logger.log('[web3] account id', accountId) Logger.log('[web3] account id', accountId)
@ -277,16 +283,27 @@ function Web3Provider({ children }: { children: ReactNode }): ReactElement {
// Logout helper // Logout helper
// ----------------------------------- // -----------------------------------
async function logout() { async function logout() {
web3Modal?.clearCachedProvider() if (web3 && web3.currentProvider && (web3.currentProvider as any).close) {
await (web3.currentProvider as any).close()
}
await web3Modal.clearCachedProvider()
} }
// ----------------------------------- // -----------------------------------
// Handle change events // Handle change events
// ----------------------------------- // -----------------------------------
async function handleChainChanged(chainId: string) {
Logger.log('[web3] Chain changed', chainId)
const networkId = await web3.eth.net.getId()
setChainId(Number(chainId))
setNetworkId(Number(networkId))
}
async function handleNetworkChanged(networkId: string) { async function handleNetworkChanged(networkId: string) {
Logger.log('[web3] Network changed', networkId) Logger.log('[web3] Network changed', networkId)
// const networkId = Number(chainId.replace('0x', '')) const chainId = await web3.eth.getChainId()
setNetworkId(Number(networkId)) setNetworkId(Number(networkId))
setChainId(Number(chainId))
} }
async function handleAccountsChanged(accounts: string[]) { async function handleAccountsChanged(accounts: string[]) {
@ -297,19 +314,14 @@ function Web3Provider({ children }: { children: ReactNode }): ReactElement {
useEffect(() => { useEffect(() => {
if (!web3Provider || !web3) return if (!web3Provider || !web3) return
// web3Provider.on('chainChanged', handleChainChanged)
// HEADS UP! We should rather listen to `chainChanged` exposing the `chainId`
// but for whatever reason the exposed `chainId` is wildly different from
// what is shown on https://chainid.network, in turn breaking our network/config
// mapping. The networkChanged is deprecated but works as expected for our case.
// See: https://eips.ethereum.org/EIPS/eip-1193#chainchanged
//
web3Provider.on('networkChanged', handleNetworkChanged) web3Provider.on('networkChanged', handleNetworkChanged)
web3Provider.on('accountsChanged', handleAccountsChanged) web3Provider.on('accountsChanged', handleAccountsChanged)
return () => { return () => {
web3Provider.removeListener('networkChanged') web3Provider.removeListener('chainChanged', handleChainChanged)
web3Provider.removeListener('accountsChanged') web3Provider.removeListener('networkChanged', handleNetworkChanged)
web3Provider.removeListener('accountsChanged', handleAccountsChanged)
} }
}, [web3Provider, web3]) }, [web3Provider, web3])
@ -323,6 +335,7 @@ function Web3Provider({ children }: { children: ReactNode }): ReactElement {
accountId, accountId,
balance, balance,
networkId, networkId,
chainId,
networkDisplayName, networkDisplayName,
networkData, networkData,
block, block,