diff --git a/.env.local b/.env.local index 4751b2f..932baee 100644 --- a/.env.local +++ b/.env.local @@ -1,4 +1,4 @@ -NEXT_PUBLIC_TEST_MONGODB_URI= "mongodb+srv://binanceShared:zJF4h69NSP0mvC9B@binance.hgrta.mongodb.net/koryntia?retryWrites=true&w=majority" +NEXT_PUBLIC_TEST_MONGODB_URI=mongodb+srv://memegoat:referral@koryntiatest.wnzx2uj.mongodb.net/?retryWrites=true&w=majority&appName=KoryntiaTest NEXT_PUBLIC_TEST_ORACLE_CONTRACT_ADDRESS=0x8A6e317be912B816F3cD34eB8EFc256a41ac59Fe NEXT_PUBLIC_TEST_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/sgd1Uq6Y0HvK2Hksy0tG9EDrE3agLuVO NEXT_PUBLIC_NETWORK_ID=11155111 diff --git a/next.config.mjs b/next.config.mjs index e69de29..9dfc2a4 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -0,0 +1,19 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + serverComponentsExternalPackages: ["mongoose", "@typegoose/typegoose"], + }, + images: { + unoptimized: true, + remotePatterns: [ + { + protocol: "https", + hostname: "images.unsplash.com", + port: "", + pathname: "/**", + }, + ], + }, +}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json index a276085..824bb13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,9 +17,11 @@ "@types/react": "18.2.22", "@types/react-dom": "18.2.7", "@wagmi/core": "^2.11.6", + "antd": "^5.19.3", "apexcharts": "^3.41.1", "autoprefixer": "10.4.15", "axios": "^1.6.7", + "blo": "^1.2.0", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "cron": "^3.1.7", @@ -110,6 +112,71 @@ "node": ">=6.0.0" } }, + "node_modules/@ant-design/colors": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.1.0.tgz", + "integrity": "sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==", + "dependencies": { + "@ctrl/tinycolor": "^3.6.1" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.21.0.tgz", + "integrity": "sha512-gIilraPl+9EoKdYxnupxjHB/Q6IHNRjEXszKbDxZdsgv4sAZ9pjkCq8yanDWNvyfjp4leir2OVAJm0vxwKK8YA==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.0.13" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.4.0.tgz", + "integrity": "sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" + }, + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.1.tgz", @@ -2196,9 +2263,9 @@ "peer": true }, "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2309,6 +2376,24 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -4059,6 +4144,146 @@ "node": ">=14" } }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.3.tgz", + "integrity": "sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw==", + "dependencies": { + "@babel/runtime": "^7.23.6", + "@ctrl/tinycolor": "^3.6.1", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", + "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.0.tgz", + "integrity": "sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.0.tgz", + "integrity": "sha512-QarBCji02YE9aRFhZgRZmOpXBj0IZutRippsVBv85sxvG4FGk/vRxwAlkn3MS9zK5mwbETd86mAVg2tKqTkdJA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/@react-jvectormap/core": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@react-jvectormap/core/-/core-1.0.4.tgz", @@ -6172,6 +6397,69 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/antd": { + "version": "5.19.3", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.19.3.tgz", + "integrity": "sha512-rhGI6yyZ4dA2MWl9bfO0MZjtNwWdzITpp3u7pKLiQpTjJYFlpF5wDFgGaG1or3sqyBihvqcO/OF1hSggmWczbQ==", + "dependencies": { + "@ant-design/colors": "^7.1.0", + "@ant-design/cssinjs": "^1.21.0", + "@ant-design/icons": "^5.3.7", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.24.8", + "@ctrl/tinycolor": "^3.6.1", + "@rc-component/color-picker": "~1.5.3", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.0", + "@rc-component/trigger": "^2.2.0", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.27.0", + "rc-checkbox": "~3.3.0", + "rc-collapse": "~3.7.3", + "rc-dialog": "~9.5.2", + "rc-drawer": "~7.2.0", + "rc-dropdown": "~4.2.0", + "rc-field-form": "~2.2.1", + "rc-image": "~7.9.0", + "rc-input": "~1.5.1", + "rc-input-number": "~9.1.0", + "rc-mentions": "~2.14.0", + "rc-menu": "~9.14.1", + "rc-motion": "^2.9.2", + "rc-notification": "~5.6.0", + "rc-pagination": "~4.2.0", + "rc-picker": "~4.6.9", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.0", + "rc-resize-observer": "^1.4.0", + "rc-segmented": "~2.3.0", + "rc-select": "~14.15.1", + "rc-slider": "~10.6.2", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.45.7", + "rc-tabs": "~15.1.1", + "rc-textarea": "~1.7.0", + "rc-tooltip": "~6.2.0", + "rc-tree": "~5.8.8", + "rc-tree-select": "~5.22.1", + "rc-upload": "~4.6.0", + "rc-util": "^5.43.0", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -6260,6 +6548,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -6774,6 +7067,14 @@ "ieee754": "^1.1.13" } }, + "node_modules/blo": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/blo/-/blo-1.2.0.tgz", + "integrity": "sha512-bZES7RzJ14B4WBT3JuOHSOAvCBmUhqznrojQ8xRjN1Fx9X9N7R+rygOFS3k4wXel2nFg4lwzL3luAYzObaDLng==", + "engines": { + "node": ">=16" + } + }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", @@ -7580,6 +7881,11 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "peer": true }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7652,6 +7958,14 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, "node_modules/core-js": { "version": "3.37.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", @@ -7918,10 +8232,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", - "peer": true + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==" }, "node_modules/debug": { "version": "4.3.4", @@ -15050,6 +15363,583 @@ "node": ">= 0.6" } }, + "node_modules/rc-cascader": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.27.0.tgz", + "integrity": "sha512-z5uq8VvQadFUBiuZJ7YF5UAUGNkZtdEtcEYiIA94N/Kc2MIKr6lEbN5HyVddvYSgwWlKqnL6pH5bFXFuIK3MNg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "array-tree-filter": "^2.1.0", + "classnames": "^2.3.1", + "rc-select": "~14.15.0", + "rc-tree": "~5.8.1", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.3.0.tgz", + "integrity": "sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.3.tgz", + "integrity": "sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.5.2.tgz", + "integrity": "sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", + "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.0.tgz", + "integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.2.1.tgz", + "integrity": "sha512-uoNqDoR7A4tn4QTSqoWPAzrR7ZwOK5I+vuZ/qdcHtbKx+ZjEsTg7QXm2wk/jalDiSksAQmATxL0T5LJkRREdIA==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.9.0.tgz", + "integrity": "sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.5.2", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.5.1.tgz", + "integrity": "sha512-+nOzQJDeIfIpNP/SgY45LXSKbuMlp4Yap2y8c+ZpU7XbLmNzUd6+d5/S75sA/52jsVE6S/AkhkkDEAOjIu7i6g==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.1.0.tgz", + "integrity": "sha512-NqJ6i25Xn/AgYfVxynlevIhX3FuKlMwIFpucGG1h98SlK32wQwDK0zhN9VY32McOmuaqzftduNYWWooWz8pXQA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.5.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.14.0.tgz", + "integrity": "sha512-qKR59FMuF8PK4ZqsbWX3UuA5P1M/snzyqV6Yt3y1DCFbCEdqUGIBgQp6vEfLCO6Z0RoRFlzXtCeSlBTcDDpg1A==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.5.0", + "rc-menu": "~9.14.0", + "rc-textarea": "~1.7.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.14.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.14.1.tgz", + "integrity": "sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.2.tgz", + "integrity": "sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.0.tgz", + "integrity": "sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", + "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.2.0.tgz", + "integrity": "sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.6.9", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.6.9.tgz", + "integrity": "sha512-kwQq5xDNJ1VcX7pauLlVBiuQorpZGUwA/YczVJTO1e33YsTyDuVjaQkYAiAupXbEPUBCU3doGZo0J25HGq2ZOQ==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.0.tgz", + "integrity": "sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", + "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.38.0", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", + "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.15.1", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.15.1.tgz", + "integrity": "sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "10.6.2", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.6.2.tgz", + "integrity": "sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.45.7", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.7.tgz", + "integrity": "sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.37.0", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.1.1.tgz", + "integrity": "sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.14.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.7.0.tgz", + "integrity": "sha512-UxizYJkWkmxP3zofXgc487QiGyDmhhheDLLjIWbFtDmiru1ls30KpO8odDaPyqNUIy9ugj5djxTEuezIn6t3Jg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.5.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.0.tgz", + "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.8.8", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.8.tgz", + "integrity": "sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.22.1.tgz", + "integrity": "sha512-b8mAK52xEpRgS+b2PTapCt29GoIrO5cO8jB7AfHttFsIJfcnynY9FCtnYzURsKXJkGHbFY6UzSEB2I3TETtdWg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-select": "~14.15.0", + "rc-tree": "~5.8.1", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.6.0.tgz", + "integrity": "sha512-Zr0DT1NHw/ApxrP7UAoxOtGaVYuzarrrCVr0ld7RiEFsKX07uFhE1EpCBxwL11ruFn89GMcshOKWp+s6FLyAlA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.43.0.tgz", + "integrity": "sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/rc-virtual-list": { + "version": "3.14.5", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz", + "integrity": "sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -16011,6 +16901,14 @@ "loose-envify": "^1.1.0" } }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, "node_modules/secp256k1": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", @@ -16736,6 +17634,11 @@ } } }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", @@ -17130,6 +18033,14 @@ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "peer": true }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "engines": { + "node": ">=12.22" + } + }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -17200,6 +18111,11 @@ "node": ">=8.0" } }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", diff --git a/package.json b/package.json index 90d9cc0..2e5dca1 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,11 @@ "@types/react": "18.2.22", "@types/react-dom": "18.2.7", "@wagmi/core": "^2.11.6", + "antd": "^5.19.3", "apexcharts": "^3.41.1", "autoprefixer": "10.4.15", "axios": "^1.6.7", + "blo": "^1.2.0", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "cron": "^3.1.7", diff --git a/public/tokens/$pac.svg b/public/tokens/$pac.svg new file mode 100644 index 0000000..792dab8 --- /dev/null +++ b/public/tokens/$pac.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/0xbtc.svg b/public/tokens/0xbtc.svg new file mode 100644 index 0000000..cda4ee3 --- /dev/null +++ b/public/tokens/0xbtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/1inch.svg b/public/tokens/1inch.svg new file mode 100644 index 0000000..7404ee8 --- /dev/null +++ b/public/tokens/1inch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/2give.svg b/public/tokens/2give.svg new file mode 100644 index 0000000..b5fbdde --- /dev/null +++ b/public/tokens/2give.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/aave.svg b/public/tokens/aave.svg new file mode 100644 index 0000000..c063465 --- /dev/null +++ b/public/tokens/aave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/abt.svg b/public/tokens/abt.svg new file mode 100644 index 0000000..890fa01 --- /dev/null +++ b/public/tokens/abt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/act.svg b/public/tokens/act.svg new file mode 100644 index 0000000..e720ac0 --- /dev/null +++ b/public/tokens/act.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/actn.svg b/public/tokens/actn.svg new file mode 100644 index 0000000..2ce79a9 --- /dev/null +++ b/public/tokens/actn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ada.svg b/public/tokens/ada.svg new file mode 100644 index 0000000..7c6c0cb --- /dev/null +++ b/public/tokens/ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/add.svg b/public/tokens/add.svg new file mode 100644 index 0000000..c650ef1 --- /dev/null +++ b/public/tokens/add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/adx.svg b/public/tokens/adx.svg new file mode 100644 index 0000000..c8efbd6 --- /dev/null +++ b/public/tokens/adx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ae.svg b/public/tokens/ae.svg new file mode 100644 index 0000000..d6314f8 --- /dev/null +++ b/public/tokens/ae.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/aeon.svg b/public/tokens/aeon.svg new file mode 100644 index 0000000..eaf871d --- /dev/null +++ b/public/tokens/aeon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/aeur.svg b/public/tokens/aeur.svg new file mode 100644 index 0000000..3ea5e62 --- /dev/null +++ b/public/tokens/aeur.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/agi.svg b/public/tokens/agi.svg new file mode 100644 index 0000000..1c298c8 --- /dev/null +++ b/public/tokens/agi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/agrs.svg b/public/tokens/agrs.svg new file mode 100644 index 0000000..fd4dfc7 --- /dev/null +++ b/public/tokens/agrs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/aion.svg b/public/tokens/aion.svg new file mode 100644 index 0000000..59fcd37 --- /dev/null +++ b/public/tokens/aion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/algo.svg b/public/tokens/algo.svg new file mode 100644 index 0000000..aa34cb0 --- /dev/null +++ b/public/tokens/algo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/amb.svg b/public/tokens/amb.svg new file mode 100644 index 0000000..7c6c363 --- /dev/null +++ b/public/tokens/amb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/amp.svg b/public/tokens/amp.svg new file mode 100644 index 0000000..2ca9a84 --- /dev/null +++ b/public/tokens/amp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ampl.svg b/public/tokens/ampl.svg new file mode 100644 index 0000000..82c1e3f --- /dev/null +++ b/public/tokens/ampl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ankr.svg b/public/tokens/ankr.svg new file mode 100644 index 0000000..085a232 --- /dev/null +++ b/public/tokens/ankr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ant.svg b/public/tokens/ant.svg new file mode 100644 index 0000000..b6f8231 --- /dev/null +++ b/public/tokens/ant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ape.svg b/public/tokens/ape.svg new file mode 100644 index 0000000..040f32e --- /dev/null +++ b/public/tokens/ape.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/apex.svg b/public/tokens/apex.svg new file mode 100644 index 0000000..46a02c1 --- /dev/null +++ b/public/tokens/apex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/appc.svg b/public/tokens/appc.svg new file mode 100644 index 0000000..e773b29 --- /dev/null +++ b/public/tokens/appc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ardr.svg b/public/tokens/ardr.svg new file mode 100644 index 0000000..b62f4c3 --- /dev/null +++ b/public/tokens/ardr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/arg.svg b/public/tokens/arg.svg new file mode 100644 index 0000000..b932089 --- /dev/null +++ b/public/tokens/arg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ark.svg b/public/tokens/ark.svg new file mode 100644 index 0000000..f936fcd --- /dev/null +++ b/public/tokens/ark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/arn.svg b/public/tokens/arn.svg new file mode 100644 index 0000000..9c8b484 --- /dev/null +++ b/public/tokens/arn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/arnx.svg b/public/tokens/arnx.svg new file mode 100644 index 0000000..8db4bc5 --- /dev/null +++ b/public/tokens/arnx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ary.svg b/public/tokens/ary.svg new file mode 100644 index 0000000..18a64ab --- /dev/null +++ b/public/tokens/ary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ast.svg b/public/tokens/ast.svg new file mode 100644 index 0000000..7cf8e26 --- /dev/null +++ b/public/tokens/ast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/atlas.svg b/public/tokens/atlas.svg new file mode 100644 index 0000000..9bf0172 --- /dev/null +++ b/public/tokens/atlas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/atm.svg b/public/tokens/atm.svg new file mode 100644 index 0000000..8fca3a4 --- /dev/null +++ b/public/tokens/atm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/atom.svg b/public/tokens/atom.svg new file mode 100644 index 0000000..7d14357 --- /dev/null +++ b/public/tokens/atom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/audr.svg b/public/tokens/audr.svg new file mode 100644 index 0000000..a7f8aeb --- /dev/null +++ b/public/tokens/audr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/aury.svg b/public/tokens/aury.svg new file mode 100644 index 0000000..114b03c --- /dev/null +++ b/public/tokens/aury.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/auto.svg b/public/tokens/auto.svg new file mode 100644 index 0000000..bd1ec75 --- /dev/null +++ b/public/tokens/auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/avax.svg b/public/tokens/avax.svg new file mode 100644 index 0000000..c9058e5 --- /dev/null +++ b/public/tokens/avax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/aywa.svg b/public/tokens/aywa.svg new file mode 100644 index 0000000..5f29fca --- /dev/null +++ b/public/tokens/aywa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bab.svg b/public/tokens/bab.svg new file mode 100644 index 0000000..2ac1eb1 --- /dev/null +++ b/public/tokens/bab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bal.svg b/public/tokens/bal.svg new file mode 100644 index 0000000..12280c2 --- /dev/null +++ b/public/tokens/bal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/band.svg b/public/tokens/band.svg new file mode 100644 index 0000000..d05ff78 --- /dev/null +++ b/public/tokens/band.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bat.svg b/public/tokens/bat.svg new file mode 100644 index 0000000..e53423f --- /dev/null +++ b/public/tokens/bat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bay.svg b/public/tokens/bay.svg new file mode 100644 index 0000000..5ed529f --- /dev/null +++ b/public/tokens/bay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bcbc.svg b/public/tokens/bcbc.svg new file mode 100644 index 0000000..ca45a3b --- /dev/null +++ b/public/tokens/bcbc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bcc.svg b/public/tokens/bcc.svg new file mode 100644 index 0000000..6840d59 --- /dev/null +++ b/public/tokens/bcc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bcd.svg b/public/tokens/bcd.svg new file mode 100644 index 0000000..4cea681 --- /dev/null +++ b/public/tokens/bcd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bch.svg b/public/tokens/bch.svg new file mode 100644 index 0000000..c945675 --- /dev/null +++ b/public/tokens/bch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bcio.svg b/public/tokens/bcio.svg new file mode 100644 index 0000000..f10f431 --- /dev/null +++ b/public/tokens/bcio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bcn.svg b/public/tokens/bcn.svg new file mode 100644 index 0000000..fcd4cc0 --- /dev/null +++ b/public/tokens/bcn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bco.svg b/public/tokens/bco.svg new file mode 100644 index 0000000..ddab22c --- /dev/null +++ b/public/tokens/bco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bcpt.svg b/public/tokens/bcpt.svg new file mode 100644 index 0000000..d30af83 --- /dev/null +++ b/public/tokens/bcpt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bdl.svg b/public/tokens/bdl.svg new file mode 100644 index 0000000..09d1386 --- /dev/null +++ b/public/tokens/bdl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/beam.svg b/public/tokens/beam.svg new file mode 100644 index 0000000..8354272 --- /dev/null +++ b/public/tokens/beam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bela.svg b/public/tokens/bela.svg new file mode 100644 index 0000000..acb1b91 --- /dev/null +++ b/public/tokens/bela.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bix.svg b/public/tokens/bix.svg new file mode 100644 index 0000000..c8d72a3 --- /dev/null +++ b/public/tokens/bix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/blcn.svg b/public/tokens/blcn.svg new file mode 100644 index 0000000..e49c98b --- /dev/null +++ b/public/tokens/blcn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/blk.svg b/public/tokens/blk.svg new file mode 100644 index 0000000..732f079 --- /dev/null +++ b/public/tokens/blk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/block.svg b/public/tokens/block.svg new file mode 100644 index 0000000..d05fd51 --- /dev/null +++ b/public/tokens/block.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/blz.svg b/public/tokens/blz.svg new file mode 100644 index 0000000..05072e3 --- /dev/null +++ b/public/tokens/blz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bnb.svg b/public/tokens/bnb.svg new file mode 100644 index 0000000..f1ce4e8 --- /dev/null +++ b/public/tokens/bnb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bnt.svg b/public/tokens/bnt.svg new file mode 100644 index 0000000..5e8ee9e --- /dev/null +++ b/public/tokens/bnt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bnty.svg b/public/tokens/bnty.svg new file mode 100644 index 0000000..4a1fffc --- /dev/null +++ b/public/tokens/bnty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/booty.svg b/public/tokens/booty.svg new file mode 100644 index 0000000..2f2e816 --- /dev/null +++ b/public/tokens/booty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bos.svg b/public/tokens/bos.svg new file mode 100644 index 0000000..79ca3b3 --- /dev/null +++ b/public/tokens/bos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bpt.svg b/public/tokens/bpt.svg new file mode 100644 index 0000000..055a066 --- /dev/null +++ b/public/tokens/bpt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bq.svg b/public/tokens/bq.svg new file mode 100644 index 0000000..12e7fe1 --- /dev/null +++ b/public/tokens/bq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/brd.svg b/public/tokens/brd.svg new file mode 100644 index 0000000..24ce0d2 --- /dev/null +++ b/public/tokens/brd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bsd.svg b/public/tokens/bsd.svg new file mode 100644 index 0000000..c38304a --- /dev/null +++ b/public/tokens/bsd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bsv.svg b/public/tokens/bsv.svg new file mode 100644 index 0000000..ead4fee --- /dev/null +++ b/public/tokens/bsv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btc.svg b/public/tokens/btc.svg new file mode 100644 index 0000000..8860649 --- /dev/null +++ b/public/tokens/btc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btcd.svg b/public/tokens/btcd.svg new file mode 100644 index 0000000..c1bf8b2 --- /dev/null +++ b/public/tokens/btcd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btch.svg b/public/tokens/btch.svg new file mode 100644 index 0000000..15f75b4 --- /dev/null +++ b/public/tokens/btch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btcp.svg b/public/tokens/btcp.svg new file mode 100644 index 0000000..ac80a67 --- /dev/null +++ b/public/tokens/btcp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btcz.svg b/public/tokens/btcz.svg new file mode 100644 index 0000000..2da3072 --- /dev/null +++ b/public/tokens/btcz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btdx.svg b/public/tokens/btdx.svg new file mode 100644 index 0000000..472320f --- /dev/null +++ b/public/tokens/btdx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btg.svg b/public/tokens/btg.svg new file mode 100644 index 0000000..8a40fd7 --- /dev/null +++ b/public/tokens/btg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btm.svg b/public/tokens/btm.svg new file mode 100644 index 0000000..46587bf --- /dev/null +++ b/public/tokens/btm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bts.svg b/public/tokens/bts.svg new file mode 100644 index 0000000..237d87f --- /dev/null +++ b/public/tokens/bts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btt.svg b/public/tokens/btt.svg new file mode 100644 index 0000000..4912ce4 --- /dev/null +++ b/public/tokens/btt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/btx.svg b/public/tokens/btx.svg new file mode 100644 index 0000000..1deee90 --- /dev/null +++ b/public/tokens/btx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/burst.svg b/public/tokens/burst.svg new file mode 100644 index 0000000..2483e12 --- /dev/null +++ b/public/tokens/burst.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/bze.svg b/public/tokens/bze.svg new file mode 100644 index 0000000..a7a4a00 --- /dev/null +++ b/public/tokens/bze.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/call.svg b/public/tokens/call.svg new file mode 100644 index 0000000..fb153ad --- /dev/null +++ b/public/tokens/call.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cc.svg b/public/tokens/cc.svg new file mode 100644 index 0000000..3cd57ff --- /dev/null +++ b/public/tokens/cc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cdn.svg b/public/tokens/cdn.svg new file mode 100644 index 0000000..0e809cb --- /dev/null +++ b/public/tokens/cdn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cdt.svg b/public/tokens/cdt.svg new file mode 100644 index 0000000..aceac27 --- /dev/null +++ b/public/tokens/cdt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cenz.svg b/public/tokens/cenz.svg new file mode 100644 index 0000000..089a363 --- /dev/null +++ b/public/tokens/cenz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/chain.svg b/public/tokens/chain.svg new file mode 100644 index 0000000..1a95fd2 --- /dev/null +++ b/public/tokens/chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/chat.svg b/public/tokens/chat.svg new file mode 100644 index 0000000..a555569 --- /dev/null +++ b/public/tokens/chat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/chips.svg b/public/tokens/chips.svg new file mode 100644 index 0000000..9c479eb --- /dev/null +++ b/public/tokens/chips.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/chsb.svg b/public/tokens/chsb.svg new file mode 100644 index 0000000..8a23c54 --- /dev/null +++ b/public/tokens/chsb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/chz.svg b/public/tokens/chz.svg new file mode 100644 index 0000000..1e2410a --- /dev/null +++ b/public/tokens/chz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cix.svg b/public/tokens/cix.svg new file mode 100644 index 0000000..886477e --- /dev/null +++ b/public/tokens/cix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/clam.svg b/public/tokens/clam.svg new file mode 100644 index 0000000..b359a91 --- /dev/null +++ b/public/tokens/clam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cloak.svg b/public/tokens/cloak.svg new file mode 100644 index 0000000..75e92b5 --- /dev/null +++ b/public/tokens/cloak.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cmm.svg b/public/tokens/cmm.svg new file mode 100644 index 0000000..4f09cf3 --- /dev/null +++ b/public/tokens/cmm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cmt.svg b/public/tokens/cmt.svg new file mode 100644 index 0000000..1628656 --- /dev/null +++ b/public/tokens/cmt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cnd.svg b/public/tokens/cnd.svg new file mode 100644 index 0000000..b123ea8 --- /dev/null +++ b/public/tokens/cnd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cnx.svg b/public/tokens/cnx.svg new file mode 100644 index 0000000..6ff0b35 --- /dev/null +++ b/public/tokens/cnx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cny.svg b/public/tokens/cny.svg new file mode 100644 index 0000000..dc275dc --- /dev/null +++ b/public/tokens/cny.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cob.svg b/public/tokens/cob.svg new file mode 100644 index 0000000..fd4b94a --- /dev/null +++ b/public/tokens/cob.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/colx.svg b/public/tokens/colx.svg new file mode 100644 index 0000000..4efac7f --- /dev/null +++ b/public/tokens/colx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/comp.svg b/public/tokens/comp.svg new file mode 100644 index 0000000..4607590 --- /dev/null +++ b/public/tokens/comp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/coqui.svg b/public/tokens/coqui.svg new file mode 100644 index 0000000..82d82e8 --- /dev/null +++ b/public/tokens/coqui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cred.svg b/public/tokens/cred.svg new file mode 100644 index 0000000..6996053 --- /dev/null +++ b/public/tokens/cred.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/crpt.svg b/public/tokens/crpt.svg new file mode 100644 index 0000000..9ca4566 --- /dev/null +++ b/public/tokens/crpt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/crv.svg b/public/tokens/crv.svg new file mode 100644 index 0000000..03bd590 --- /dev/null +++ b/public/tokens/crv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/crw.svg b/public/tokens/crw.svg new file mode 100644 index 0000000..668510e --- /dev/null +++ b/public/tokens/crw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cs.svg b/public/tokens/cs.svg new file mode 100644 index 0000000..e4bd2ca --- /dev/null +++ b/public/tokens/cs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ctr.svg b/public/tokens/ctr.svg new file mode 100644 index 0000000..d1d0a49 --- /dev/null +++ b/public/tokens/ctr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ctxc.svg b/public/tokens/ctxc.svg new file mode 100644 index 0000000..1c01dfb --- /dev/null +++ b/public/tokens/ctxc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/cvc.svg b/public/tokens/cvc.svg new file mode 100644 index 0000000..2c443d6 --- /dev/null +++ b/public/tokens/cvc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/d.svg b/public/tokens/d.svg new file mode 100644 index 0000000..19fdc77 --- /dev/null +++ b/public/tokens/d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dai.svg b/public/tokens/dai.svg new file mode 100644 index 0000000..fa61753 --- /dev/null +++ b/public/tokens/dai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dash.svg b/public/tokens/dash.svg new file mode 100644 index 0000000..74aae91 --- /dev/null +++ b/public/tokens/dash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dat.svg b/public/tokens/dat.svg new file mode 100644 index 0000000..fc1e671 --- /dev/null +++ b/public/tokens/dat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/data.svg b/public/tokens/data.svg new file mode 100644 index 0000000..9cea639 --- /dev/null +++ b/public/tokens/data.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dbc.svg b/public/tokens/dbc.svg new file mode 100644 index 0000000..5cefae5 --- /dev/null +++ b/public/tokens/dbc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dcn.svg b/public/tokens/dcn.svg new file mode 100644 index 0000000..ca4987b --- /dev/null +++ b/public/tokens/dcn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dcr.svg b/public/tokens/dcr.svg new file mode 100644 index 0000000..da4c215 --- /dev/null +++ b/public/tokens/dcr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/deez.svg b/public/tokens/deez.svg new file mode 100644 index 0000000..a8b1886 --- /dev/null +++ b/public/tokens/deez.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dent.svg b/public/tokens/dent.svg new file mode 100644 index 0000000..fda5a49 --- /dev/null +++ b/public/tokens/dent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dew.svg b/public/tokens/dew.svg new file mode 100644 index 0000000..59249b3 --- /dev/null +++ b/public/tokens/dew.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dgb.svg b/public/tokens/dgb.svg new file mode 100644 index 0000000..07ca23c --- /dev/null +++ b/public/tokens/dgb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dgd.svg b/public/tokens/dgd.svg new file mode 100644 index 0000000..7751f51 --- /dev/null +++ b/public/tokens/dgd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dlt.svg b/public/tokens/dlt.svg new file mode 100644 index 0000000..a1ede59 --- /dev/null +++ b/public/tokens/dlt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dnt.svg b/public/tokens/dnt.svg new file mode 100644 index 0000000..471e95c --- /dev/null +++ b/public/tokens/dnt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dock.svg b/public/tokens/dock.svg new file mode 100644 index 0000000..f55e8f1 --- /dev/null +++ b/public/tokens/dock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/doge.svg b/public/tokens/doge.svg new file mode 100644 index 0000000..07bfb53 --- /dev/null +++ b/public/tokens/doge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dot.svg b/public/tokens/dot.svg new file mode 100644 index 0000000..9238625 --- /dev/null +++ b/public/tokens/dot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/drgn.svg b/public/tokens/drgn.svg new file mode 100644 index 0000000..51bd1f2 --- /dev/null +++ b/public/tokens/drgn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/drop.svg b/public/tokens/drop.svg new file mode 100644 index 0000000..70925b4 --- /dev/null +++ b/public/tokens/drop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dta.svg b/public/tokens/dta.svg new file mode 100644 index 0000000..53dd217 --- /dev/null +++ b/public/tokens/dta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dth.svg b/public/tokens/dth.svg new file mode 100644 index 0000000..86bea28 --- /dev/null +++ b/public/tokens/dth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/dtr.svg b/public/tokens/dtr.svg new file mode 100644 index 0000000..1ee054d --- /dev/null +++ b/public/tokens/dtr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ebst.svg b/public/tokens/ebst.svg new file mode 100644 index 0000000..aeb173a --- /dev/null +++ b/public/tokens/ebst.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eca.svg b/public/tokens/eca.svg new file mode 100644 index 0000000..fa46c18 --- /dev/null +++ b/public/tokens/eca.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/edg.svg b/public/tokens/edg.svg new file mode 100644 index 0000000..a1a1dbb --- /dev/null +++ b/public/tokens/edg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/edo.svg b/public/tokens/edo.svg new file mode 100644 index 0000000..5a726c5 --- /dev/null +++ b/public/tokens/edo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/edoge.svg b/public/tokens/edoge.svg new file mode 100644 index 0000000..87e24f0 --- /dev/null +++ b/public/tokens/edoge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ela.svg b/public/tokens/ela.svg new file mode 100644 index 0000000..524b66b --- /dev/null +++ b/public/tokens/ela.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/elec.svg b/public/tokens/elec.svg new file mode 100644 index 0000000..d8f3864 --- /dev/null +++ b/public/tokens/elec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/elf.svg b/public/tokens/elf.svg new file mode 100644 index 0000000..08d8268 --- /dev/null +++ b/public/tokens/elf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/elix.svg b/public/tokens/elix.svg new file mode 100644 index 0000000..07535fe --- /dev/null +++ b/public/tokens/elix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ella.svg b/public/tokens/ella.svg new file mode 100644 index 0000000..ac7dd1d --- /dev/null +++ b/public/tokens/ella.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/emb.svg b/public/tokens/emb.svg new file mode 100644 index 0000000..f8a8bb1 --- /dev/null +++ b/public/tokens/emb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/emc.svg b/public/tokens/emc.svg new file mode 100644 index 0000000..360201f --- /dev/null +++ b/public/tokens/emc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/emc2.svg b/public/tokens/emc2.svg new file mode 100644 index 0000000..2b7e5e2 --- /dev/null +++ b/public/tokens/emc2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eng.svg b/public/tokens/eng.svg new file mode 100644 index 0000000..b3e7f57 --- /dev/null +++ b/public/tokens/eng.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/enj.svg b/public/tokens/enj.svg new file mode 100644 index 0000000..9792b4d --- /dev/null +++ b/public/tokens/enj.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/entrp.svg b/public/tokens/entrp.svg new file mode 100644 index 0000000..57453d1 --- /dev/null +++ b/public/tokens/entrp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eon.svg b/public/tokens/eon.svg new file mode 100644 index 0000000..74be159 --- /dev/null +++ b/public/tokens/eon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eop.svg b/public/tokens/eop.svg new file mode 100644 index 0000000..9b75465 --- /dev/null +++ b/public/tokens/eop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eos.svg b/public/tokens/eos.svg new file mode 100644 index 0000000..6468ee7 --- /dev/null +++ b/public/tokens/eos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eqli.svg b/public/tokens/eqli.svg new file mode 100644 index 0000000..cc3d368 --- /dev/null +++ b/public/tokens/eqli.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/equa.svg b/public/tokens/equa.svg new file mode 100644 index 0000000..b705be5 --- /dev/null +++ b/public/tokens/equa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/etc.svg b/public/tokens/etc.svg new file mode 100644 index 0000000..af2fe75 --- /dev/null +++ b/public/tokens/etc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eth.svg b/public/tokens/eth.svg new file mode 100644 index 0000000..9a5b1f7 --- /dev/null +++ b/public/tokens/eth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ethos.svg b/public/tokens/ethos.svg new file mode 100644 index 0000000..6acc2f0 --- /dev/null +++ b/public/tokens/ethos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/etn.svg b/public/tokens/etn.svg new file mode 100644 index 0000000..fb7f5b4 --- /dev/null +++ b/public/tokens/etn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/etp.svg b/public/tokens/etp.svg new file mode 100644 index 0000000..c23fc8b --- /dev/null +++ b/public/tokens/etp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/eur.svg b/public/tokens/eur.svg new file mode 100644 index 0000000..1bc3ab2 --- /dev/null +++ b/public/tokens/eur.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/evx.svg b/public/tokens/evx.svg new file mode 100644 index 0000000..7da79d8 --- /dev/null +++ b/public/tokens/evx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/exmo.svg b/public/tokens/exmo.svg new file mode 100644 index 0000000..37c4594 --- /dev/null +++ b/public/tokens/exmo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/exp.svg b/public/tokens/exp.svg new file mode 100644 index 0000000..e3e6296 --- /dev/null +++ b/public/tokens/exp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fair.svg b/public/tokens/fair.svg new file mode 100644 index 0000000..c689d0e --- /dev/null +++ b/public/tokens/fair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fct.svg b/public/tokens/fct.svg new file mode 100644 index 0000000..beb06b5 --- /dev/null +++ b/public/tokens/fct.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fida.svg b/public/tokens/fida.svg new file mode 100644 index 0000000..068f363 --- /dev/null +++ b/public/tokens/fida.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fil.svg b/public/tokens/fil.svg new file mode 100644 index 0000000..cb5c4e7 --- /dev/null +++ b/public/tokens/fil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fjc.svg b/public/tokens/fjc.svg new file mode 100644 index 0000000..be0a075 --- /dev/null +++ b/public/tokens/fjc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fldc.svg b/public/tokens/fldc.svg new file mode 100644 index 0000000..8f0e532 --- /dev/null +++ b/public/tokens/fldc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/flo.svg b/public/tokens/flo.svg new file mode 100644 index 0000000..1f26677 --- /dev/null +++ b/public/tokens/flo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/flux.svg b/public/tokens/flux.svg new file mode 100644 index 0000000..97011c0 --- /dev/null +++ b/public/tokens/flux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fsn.svg b/public/tokens/fsn.svg new file mode 100644 index 0000000..fc2df32 --- /dev/null +++ b/public/tokens/fsn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ftc.svg b/public/tokens/ftc.svg new file mode 100644 index 0000000..89b55b9 --- /dev/null +++ b/public/tokens/ftc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fuel.svg b/public/tokens/fuel.svg new file mode 100644 index 0000000..6163305 --- /dev/null +++ b/public/tokens/fuel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/fun.svg b/public/tokens/fun.svg new file mode 100644 index 0000000..0388f56 --- /dev/null +++ b/public/tokens/fun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/game.svg b/public/tokens/game.svg new file mode 100644 index 0000000..7f75009 --- /dev/null +++ b/public/tokens/game.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gas.svg b/public/tokens/gas.svg new file mode 100644 index 0000000..f38a3fa --- /dev/null +++ b/public/tokens/gas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gbp.svg b/public/tokens/gbp.svg new file mode 100644 index 0000000..6fabcde --- /dev/null +++ b/public/tokens/gbp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gbx.svg b/public/tokens/gbx.svg new file mode 100644 index 0000000..87d2c6b --- /dev/null +++ b/public/tokens/gbx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gbyte.svg b/public/tokens/gbyte.svg new file mode 100644 index 0000000..88239b3 --- /dev/null +++ b/public/tokens/gbyte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/generic.svg b/public/tokens/generic.svg new file mode 100644 index 0000000..d010a1e --- /dev/null +++ b/public/tokens/generic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gin.svg b/public/tokens/gin.svg new file mode 100644 index 0000000..4fef8cf --- /dev/null +++ b/public/tokens/gin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/glxt.svg b/public/tokens/glxt.svg new file mode 100644 index 0000000..ea17569 --- /dev/null +++ b/public/tokens/glxt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gmr.svg b/public/tokens/gmr.svg new file mode 100644 index 0000000..7d92486 --- /dev/null +++ b/public/tokens/gmr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gmt.svg b/public/tokens/gmt.svg new file mode 100644 index 0000000..04a6cb5 --- /dev/null +++ b/public/tokens/gmt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gno.svg b/public/tokens/gno.svg new file mode 100644 index 0000000..405eab4 --- /dev/null +++ b/public/tokens/gno.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gnt.svg b/public/tokens/gnt.svg new file mode 100644 index 0000000..4481bfd --- /dev/null +++ b/public/tokens/gnt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gold.svg b/public/tokens/gold.svg new file mode 100644 index 0000000..1036288 --- /dev/null +++ b/public/tokens/gold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/grc.svg b/public/tokens/grc.svg new file mode 100644 index 0000000..771e1c5 --- /dev/null +++ b/public/tokens/grc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/grin.svg b/public/tokens/grin.svg new file mode 100644 index 0000000..3299d96 --- /dev/null +++ b/public/tokens/grin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/grs.svg b/public/tokens/grs.svg new file mode 100644 index 0000000..966d00a --- /dev/null +++ b/public/tokens/grs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/grt.svg b/public/tokens/grt.svg new file mode 100644 index 0000000..34e8a1f --- /dev/null +++ b/public/tokens/grt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gsc.svg b/public/tokens/gsc.svg new file mode 100644 index 0000000..d5f2aa2 --- /dev/null +++ b/public/tokens/gsc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gto.svg b/public/tokens/gto.svg new file mode 100644 index 0000000..6d79298 --- /dev/null +++ b/public/tokens/gto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gup.svg b/public/tokens/gup.svg new file mode 100644 index 0000000..b5829dd --- /dev/null +++ b/public/tokens/gup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gusd.svg b/public/tokens/gusd.svg new file mode 100644 index 0000000..2e91f21 --- /dev/null +++ b/public/tokens/gusd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gvt.svg b/public/tokens/gvt.svg new file mode 100644 index 0000000..86ea569 --- /dev/null +++ b/public/tokens/gvt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gxs.svg b/public/tokens/gxs.svg new file mode 100644 index 0000000..69944a8 --- /dev/null +++ b/public/tokens/gxs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/gzr.svg b/public/tokens/gzr.svg new file mode 100644 index 0000000..5d5af8e --- /dev/null +++ b/public/tokens/gzr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/hight.svg b/public/tokens/hight.svg new file mode 100644 index 0000000..802d28d --- /dev/null +++ b/public/tokens/hight.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/hns.svg b/public/tokens/hns.svg new file mode 100644 index 0000000..24bfaa0 --- /dev/null +++ b/public/tokens/hns.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/hodl.svg b/public/tokens/hodl.svg new file mode 100644 index 0000000..b5415ac --- /dev/null +++ b/public/tokens/hodl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/hot.svg b/public/tokens/hot.svg new file mode 100644 index 0000000..367ae67 --- /dev/null +++ b/public/tokens/hot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/hpb.svg b/public/tokens/hpb.svg new file mode 100644 index 0000000..80e20d6 --- /dev/null +++ b/public/tokens/hpb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/hsr.svg b/public/tokens/hsr.svg new file mode 100644 index 0000000..cc8aca4 --- /dev/null +++ b/public/tokens/hsr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ht.svg b/public/tokens/ht.svg new file mode 100644 index 0000000..93c56ca --- /dev/null +++ b/public/tokens/ht.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/html.svg b/public/tokens/html.svg new file mode 100644 index 0000000..78c2110 --- /dev/null +++ b/public/tokens/html.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/huc.svg b/public/tokens/huc.svg new file mode 100644 index 0000000..dbebfba --- /dev/null +++ b/public/tokens/huc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/husd.svg b/public/tokens/husd.svg new file mode 100644 index 0000000..bd4fab0 --- /dev/null +++ b/public/tokens/husd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/hush.svg b/public/tokens/hush.svg new file mode 100644 index 0000000..dbcee11 --- /dev/null +++ b/public/tokens/hush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/icn.svg b/public/tokens/icn.svg new file mode 100644 index 0000000..de2453e --- /dev/null +++ b/public/tokens/icn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/icp.svg b/public/tokens/icp.svg new file mode 100644 index 0000000..b58299b --- /dev/null +++ b/public/tokens/icp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/icx.svg b/public/tokens/icx.svg new file mode 100644 index 0000000..debd407 --- /dev/null +++ b/public/tokens/icx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ignis.svg b/public/tokens/ignis.svg new file mode 100644 index 0000000..0bc3d1c --- /dev/null +++ b/public/tokens/ignis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ilk.svg b/public/tokens/ilk.svg new file mode 100644 index 0000000..3dde1b3 --- /dev/null +++ b/public/tokens/ilk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ink.svg b/public/tokens/ink.svg new file mode 100644 index 0000000..cfa5d5d --- /dev/null +++ b/public/tokens/ink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ins.svg b/public/tokens/ins.svg new file mode 100644 index 0000000..4010c2d --- /dev/null +++ b/public/tokens/ins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ion.svg b/public/tokens/ion.svg new file mode 100644 index 0000000..b17d740 --- /dev/null +++ b/public/tokens/ion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/iop.svg b/public/tokens/iop.svg new file mode 100644 index 0000000..a46effd --- /dev/null +++ b/public/tokens/iop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/iost.svg b/public/tokens/iost.svg new file mode 100644 index 0000000..40d1d99 --- /dev/null +++ b/public/tokens/iost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/iotx.svg b/public/tokens/iotx.svg new file mode 100644 index 0000000..3b8e322 --- /dev/null +++ b/public/tokens/iotx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/iq.svg b/public/tokens/iq.svg new file mode 100644 index 0000000..8f6bed8 --- /dev/null +++ b/public/tokens/iq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/itc.svg b/public/tokens/itc.svg new file mode 100644 index 0000000..d0da3c5 --- /dev/null +++ b/public/tokens/itc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/jnt.svg b/public/tokens/jnt.svg new file mode 100644 index 0000000..7fcdbb3 --- /dev/null +++ b/public/tokens/jnt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/jpy.svg b/public/tokens/jpy.svg new file mode 100644 index 0000000..69c040b --- /dev/null +++ b/public/tokens/jpy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/kcs.svg b/public/tokens/kcs.svg new file mode 100644 index 0000000..af76ba8 --- /dev/null +++ b/public/tokens/kcs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/kin.svg b/public/tokens/kin.svg new file mode 100644 index 0000000..c607af8 --- /dev/null +++ b/public/tokens/kin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/klown.svg b/public/tokens/klown.svg new file mode 100644 index 0000000..0135c3b --- /dev/null +++ b/public/tokens/klown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/kmd.svg b/public/tokens/kmd.svg new file mode 100644 index 0000000..37b854f --- /dev/null +++ b/public/tokens/kmd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/knc.svg b/public/tokens/knc.svg new file mode 100644 index 0000000..39781c6 --- /dev/null +++ b/public/tokens/knc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/krb.svg b/public/tokens/krb.svg new file mode 100644 index 0000000..411189e --- /dev/null +++ b/public/tokens/krb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ksm.svg b/public/tokens/ksm.svg new file mode 100644 index 0000000..c7986d2 --- /dev/null +++ b/public/tokens/ksm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/lbc.svg b/public/tokens/lbc.svg new file mode 100644 index 0000000..721ed65 --- /dev/null +++ b/public/tokens/lbc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/lend.svg b/public/tokens/lend.svg new file mode 100644 index 0000000..706fe27 --- /dev/null +++ b/public/tokens/lend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/leo.svg b/public/tokens/leo.svg new file mode 100644 index 0000000..80588d7 --- /dev/null +++ b/public/tokens/leo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/link.svg b/public/tokens/link.svg new file mode 100644 index 0000000..a39f06c --- /dev/null +++ b/public/tokens/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/lkk.svg b/public/tokens/lkk.svg new file mode 100644 index 0000000..3653092 --- /dev/null +++ b/public/tokens/lkk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/loom.svg b/public/tokens/loom.svg new file mode 100644 index 0000000..37e06d2 --- /dev/null +++ b/public/tokens/loom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/lpt.svg b/public/tokens/lpt.svg new file mode 100644 index 0000000..2f73cbd --- /dev/null +++ b/public/tokens/lpt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/lrc.svg b/public/tokens/lrc.svg new file mode 100644 index 0000000..a570f0c --- /dev/null +++ b/public/tokens/lrc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/lsk.svg b/public/tokens/lsk.svg new file mode 100644 index 0000000..055f549 --- /dev/null +++ b/public/tokens/lsk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ltc.svg b/public/tokens/ltc.svg new file mode 100644 index 0000000..cde8300 --- /dev/null +++ b/public/tokens/ltc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/lun.svg b/public/tokens/lun.svg new file mode 100644 index 0000000..ee57ca6 --- /dev/null +++ b/public/tokens/lun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/maid.svg b/public/tokens/maid.svg new file mode 100644 index 0000000..7c90c2a --- /dev/null +++ b/public/tokens/maid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mana.svg b/public/tokens/mana.svg new file mode 100644 index 0000000..50cdb38 --- /dev/null +++ b/public/tokens/mana.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/matic.svg b/public/tokens/matic.svg new file mode 100644 index 0000000..39211c7 --- /dev/null +++ b/public/tokens/matic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/max.svg b/public/tokens/max.svg new file mode 100644 index 0000000..75bc61b --- /dev/null +++ b/public/tokens/max.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mcap.svg b/public/tokens/mcap.svg new file mode 100644 index 0000000..066558a --- /dev/null +++ b/public/tokens/mcap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mco.svg b/public/tokens/mco.svg new file mode 100644 index 0000000..46579e4 --- /dev/null +++ b/public/tokens/mco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mda.svg b/public/tokens/mda.svg new file mode 100644 index 0000000..751da62 --- /dev/null +++ b/public/tokens/mda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mds.svg b/public/tokens/mds.svg new file mode 100644 index 0000000..e0c1731 --- /dev/null +++ b/public/tokens/mds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/med.svg b/public/tokens/med.svg new file mode 100644 index 0000000..8c603e7 --- /dev/null +++ b/public/tokens/med.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/meetone.svg b/public/tokens/meetone.svg new file mode 100644 index 0000000..84ef852 --- /dev/null +++ b/public/tokens/meetone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mft.svg b/public/tokens/mft.svg new file mode 100644 index 0000000..6ad8f1f --- /dev/null +++ b/public/tokens/mft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/miota.svg b/public/tokens/miota.svg new file mode 100644 index 0000000..11c0f2b --- /dev/null +++ b/public/tokens/miota.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mith.svg b/public/tokens/mith.svg new file mode 100644 index 0000000..c4f2795 --- /dev/null +++ b/public/tokens/mith.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mkr.svg b/public/tokens/mkr.svg new file mode 100644 index 0000000..b6cadab --- /dev/null +++ b/public/tokens/mkr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mln.svg b/public/tokens/mln.svg new file mode 100644 index 0000000..dcdb8df --- /dev/null +++ b/public/tokens/mln.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mnx.svg b/public/tokens/mnx.svg new file mode 100644 index 0000000..6c797f9 --- /dev/null +++ b/public/tokens/mnx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mnz.svg b/public/tokens/mnz.svg new file mode 100644 index 0000000..d1a1fe6 --- /dev/null +++ b/public/tokens/mnz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/moac.svg b/public/tokens/moac.svg new file mode 100644 index 0000000..1cf4a44 --- /dev/null +++ b/public/tokens/moac.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mod.svg b/public/tokens/mod.svg new file mode 100644 index 0000000..ee12b2a --- /dev/null +++ b/public/tokens/mod.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mona.svg b/public/tokens/mona.svg new file mode 100644 index 0000000..1ac803b --- /dev/null +++ b/public/tokens/mona.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/msr.svg b/public/tokens/msr.svg new file mode 100644 index 0000000..144dd8f --- /dev/null +++ b/public/tokens/msr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mth.svg b/public/tokens/mth.svg new file mode 100644 index 0000000..c843cc0 --- /dev/null +++ b/public/tokens/mth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mtl.svg b/public/tokens/mtl.svg new file mode 100644 index 0000000..c8a226e --- /dev/null +++ b/public/tokens/mtl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/music.svg b/public/tokens/music.svg new file mode 100644 index 0000000..cb3a005 --- /dev/null +++ b/public/tokens/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/mzc.svg b/public/tokens/mzc.svg new file mode 100644 index 0000000..37a77dc --- /dev/null +++ b/public/tokens/mzc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nano.svg b/public/tokens/nano.svg new file mode 100644 index 0000000..4e624b8 --- /dev/null +++ b/public/tokens/nano.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nas.svg b/public/tokens/nas.svg new file mode 100644 index 0000000..46c045c --- /dev/null +++ b/public/tokens/nas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nav.svg b/public/tokens/nav.svg new file mode 100644 index 0000000..d9f2d0a --- /dev/null +++ b/public/tokens/nav.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ncash.svg b/public/tokens/ncash.svg new file mode 100644 index 0000000..0c4369e --- /dev/null +++ b/public/tokens/ncash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ndz.svg b/public/tokens/ndz.svg new file mode 100644 index 0000000..3d60ab5 --- /dev/null +++ b/public/tokens/ndz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nebl.svg b/public/tokens/nebl.svg new file mode 100644 index 0000000..5900f51 --- /dev/null +++ b/public/tokens/nebl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/neo.svg b/public/tokens/neo.svg new file mode 100644 index 0000000..f38a3fa --- /dev/null +++ b/public/tokens/neo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/neos.svg b/public/tokens/neos.svg new file mode 100644 index 0000000..abcaa34 --- /dev/null +++ b/public/tokens/neos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/neu.svg b/public/tokens/neu.svg new file mode 100644 index 0000000..40f73a7 --- /dev/null +++ b/public/tokens/neu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nexo.svg b/public/tokens/nexo.svg new file mode 100644 index 0000000..b0a873f --- /dev/null +++ b/public/tokens/nexo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ngc.svg b/public/tokens/ngc.svg new file mode 100644 index 0000000..c705f95 --- /dev/null +++ b/public/tokens/ngc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nio.svg b/public/tokens/nio.svg new file mode 100644 index 0000000..b919ca2 --- /dev/null +++ b/public/tokens/nio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nkn.svg b/public/tokens/nkn.svg new file mode 100644 index 0000000..4fb0fa2 --- /dev/null +++ b/public/tokens/nkn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nlc2.svg b/public/tokens/nlc2.svg new file mode 100644 index 0000000..8fd8b56 --- /dev/null +++ b/public/tokens/nlc2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nlg.svg b/public/tokens/nlg.svg new file mode 100644 index 0000000..3764a31 --- /dev/null +++ b/public/tokens/nlg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nmc.svg b/public/tokens/nmc.svg new file mode 100644 index 0000000..18c9057 --- /dev/null +++ b/public/tokens/nmc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nmr.svg b/public/tokens/nmr.svg new file mode 100644 index 0000000..9a3b06d --- /dev/null +++ b/public/tokens/nmr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/npxs.svg b/public/tokens/npxs.svg new file mode 100644 index 0000000..b10f733 --- /dev/null +++ b/public/tokens/npxs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ntbc.svg b/public/tokens/ntbc.svg new file mode 100644 index 0000000..5e90015 --- /dev/null +++ b/public/tokens/ntbc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nuls.svg b/public/tokens/nuls.svg new file mode 100644 index 0000000..1078f66 --- /dev/null +++ b/public/tokens/nuls.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nxs.svg b/public/tokens/nxs.svg new file mode 100644 index 0000000..41a8ab5 --- /dev/null +++ b/public/tokens/nxs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/nxt.svg b/public/tokens/nxt.svg new file mode 100644 index 0000000..56ceedf --- /dev/null +++ b/public/tokens/nxt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/oax.svg b/public/tokens/oax.svg new file mode 100644 index 0000000..d5a9f61 --- /dev/null +++ b/public/tokens/oax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ok.svg b/public/tokens/ok.svg new file mode 100644 index 0000000..c13c99a --- /dev/null +++ b/public/tokens/ok.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/omg.svg b/public/tokens/omg.svg new file mode 100644 index 0000000..4eb0aa9 --- /dev/null +++ b/public/tokens/omg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/omni.svg b/public/tokens/omni.svg new file mode 100644 index 0000000..ef16feb --- /dev/null +++ b/public/tokens/omni.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/one.svg b/public/tokens/one.svg new file mode 100644 index 0000000..d54c30f --- /dev/null +++ b/public/tokens/one.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ong.svg b/public/tokens/ong.svg new file mode 100644 index 0000000..32731b6 --- /dev/null +++ b/public/tokens/ong.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ont.svg b/public/tokens/ont.svg new file mode 100644 index 0000000..f3fcbbb --- /dev/null +++ b/public/tokens/ont.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/oot.svg b/public/tokens/oot.svg new file mode 100644 index 0000000..b0f9eda --- /dev/null +++ b/public/tokens/oot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ost.svg b/public/tokens/ost.svg new file mode 100644 index 0000000..dcad995 --- /dev/null +++ b/public/tokens/ost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ox.svg b/public/tokens/ox.svg new file mode 100644 index 0000000..3c82aa6 --- /dev/null +++ b/public/tokens/ox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/oxt.svg b/public/tokens/oxt.svg new file mode 100644 index 0000000..687e7ba --- /dev/null +++ b/public/tokens/oxt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/oxy.svg b/public/tokens/oxy.svg new file mode 100644 index 0000000..6005360 --- /dev/null +++ b/public/tokens/oxy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/part.svg b/public/tokens/part.svg new file mode 100644 index 0000000..d38de98 --- /dev/null +++ b/public/tokens/part.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pasc.svg b/public/tokens/pasc.svg new file mode 100644 index 0000000..5b63f78 --- /dev/null +++ b/public/tokens/pasc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pasl.svg b/public/tokens/pasl.svg new file mode 100644 index 0000000..925d806 --- /dev/null +++ b/public/tokens/pasl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pax.svg b/public/tokens/pax.svg new file mode 100644 index 0000000..e29f228 --- /dev/null +++ b/public/tokens/pax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/paxg.svg b/public/tokens/paxg.svg new file mode 100644 index 0000000..e29f228 --- /dev/null +++ b/public/tokens/paxg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pay.svg b/public/tokens/pay.svg new file mode 100644 index 0000000..7d06584 --- /dev/null +++ b/public/tokens/pay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/payx.svg b/public/tokens/payx.svg new file mode 100644 index 0000000..fa81872 --- /dev/null +++ b/public/tokens/payx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pink.svg b/public/tokens/pink.svg new file mode 100644 index 0000000..3ba5641 --- /dev/null +++ b/public/tokens/pink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pirl.svg b/public/tokens/pirl.svg new file mode 100644 index 0000000..b3fc1c8 --- /dev/null +++ b/public/tokens/pirl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pivx.svg b/public/tokens/pivx.svg new file mode 100644 index 0000000..fe58b77 --- /dev/null +++ b/public/tokens/pivx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/plr.svg b/public/tokens/plr.svg new file mode 100644 index 0000000..4ee03a4 --- /dev/null +++ b/public/tokens/plr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/poa.svg b/public/tokens/poa.svg new file mode 100644 index 0000000..9fc8d07 --- /dev/null +++ b/public/tokens/poa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/poe.svg b/public/tokens/poe.svg new file mode 100644 index 0000000..d6c9768 --- /dev/null +++ b/public/tokens/poe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/polis.svg b/public/tokens/polis.svg new file mode 100644 index 0000000..571d081 --- /dev/null +++ b/public/tokens/polis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/poly.svg b/public/tokens/poly.svg new file mode 100644 index 0000000..1439cd7 --- /dev/null +++ b/public/tokens/poly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pot.svg b/public/tokens/pot.svg new file mode 100644 index 0000000..822195a --- /dev/null +++ b/public/tokens/pot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/powr.svg b/public/tokens/powr.svg new file mode 100644 index 0000000..bf3c22d --- /dev/null +++ b/public/tokens/powr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ppc.svg b/public/tokens/ppc.svg new file mode 100644 index 0000000..e53544d --- /dev/null +++ b/public/tokens/ppc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ppp.svg b/public/tokens/ppp.svg new file mode 100644 index 0000000..5d99b2a --- /dev/null +++ b/public/tokens/ppp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ppt.svg b/public/tokens/ppt.svg new file mode 100644 index 0000000..8819e56 --- /dev/null +++ b/public/tokens/ppt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pre.svg b/public/tokens/pre.svg new file mode 100644 index 0000000..b03261d --- /dev/null +++ b/public/tokens/pre.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/prl.svg b/public/tokens/prl.svg new file mode 100644 index 0000000..f3070a5 --- /dev/null +++ b/public/tokens/prl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pungo.svg b/public/tokens/pungo.svg new file mode 100644 index 0000000..93b2041 --- /dev/null +++ b/public/tokens/pungo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/pura.svg b/public/tokens/pura.svg new file mode 100644 index 0000000..fc99c8e --- /dev/null +++ b/public/tokens/pura.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/qash.svg b/public/tokens/qash.svg new file mode 100644 index 0000000..01f2556 --- /dev/null +++ b/public/tokens/qash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/qiwi.svg b/public/tokens/qiwi.svg new file mode 100644 index 0000000..a9daf00 --- /dev/null +++ b/public/tokens/qiwi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/qlc.svg b/public/tokens/qlc.svg new file mode 100644 index 0000000..3066a31 --- /dev/null +++ b/public/tokens/qlc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/qnt.svg b/public/tokens/qnt.svg new file mode 100644 index 0000000..d4f836e --- /dev/null +++ b/public/tokens/qnt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/qrl.svg b/public/tokens/qrl.svg new file mode 100644 index 0000000..f7e155a --- /dev/null +++ b/public/tokens/qrl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/qsp.svg b/public/tokens/qsp.svg new file mode 100644 index 0000000..1b61fba --- /dev/null +++ b/public/tokens/qsp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/qtum.svg b/public/tokens/qtum.svg new file mode 100644 index 0000000..c4f6646 --- /dev/null +++ b/public/tokens/qtum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/r.svg b/public/tokens/r.svg new file mode 100644 index 0000000..2efd5ae --- /dev/null +++ b/public/tokens/r.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rads.svg b/public/tokens/rads.svg new file mode 100644 index 0000000..fb1f64d --- /dev/null +++ b/public/tokens/rads.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rap.svg b/public/tokens/rap.svg new file mode 100644 index 0000000..ed5073c --- /dev/null +++ b/public/tokens/rap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ray.svg b/public/tokens/ray.svg new file mode 100644 index 0000000..a88d624 --- /dev/null +++ b/public/tokens/ray.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rcn.svg b/public/tokens/rcn.svg new file mode 100644 index 0000000..6c321eb --- /dev/null +++ b/public/tokens/rcn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rdd.svg b/public/tokens/rdd.svg new file mode 100644 index 0000000..17685da --- /dev/null +++ b/public/tokens/rdd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rdn.svg b/public/tokens/rdn.svg new file mode 100644 index 0000000..0eaf6b1 --- /dev/null +++ b/public/tokens/rdn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ren.svg b/public/tokens/ren.svg new file mode 100644 index 0000000..0253c95 --- /dev/null +++ b/public/tokens/ren.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rep.svg b/public/tokens/rep.svg new file mode 100644 index 0000000..065a70f --- /dev/null +++ b/public/tokens/rep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/repv2.svg b/public/tokens/repv2.svg new file mode 100644 index 0000000..0b4fb4c --- /dev/null +++ b/public/tokens/repv2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/req.svg b/public/tokens/req.svg new file mode 100644 index 0000000..75b577f --- /dev/null +++ b/public/tokens/req.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rhoc.svg b/public/tokens/rhoc.svg new file mode 100644 index 0000000..c33cf50 --- /dev/null +++ b/public/tokens/rhoc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ric.svg b/public/tokens/ric.svg new file mode 100644 index 0000000..12d751e --- /dev/null +++ b/public/tokens/ric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rise.svg b/public/tokens/rise.svg new file mode 100644 index 0000000..b73ff57 --- /dev/null +++ b/public/tokens/rise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rlc.svg b/public/tokens/rlc.svg new file mode 100644 index 0000000..3d43a92 --- /dev/null +++ b/public/tokens/rlc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rpx.svg b/public/tokens/rpx.svg new file mode 100644 index 0000000..bd752b6 --- /dev/null +++ b/public/tokens/rpx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rub.svg b/public/tokens/rub.svg new file mode 100644 index 0000000..535d636 --- /dev/null +++ b/public/tokens/rub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/rvn.svg b/public/tokens/rvn.svg new file mode 100644 index 0000000..87212b5 --- /dev/null +++ b/public/tokens/rvn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ryo.svg b/public/tokens/ryo.svg new file mode 100644 index 0000000..5ef8532 --- /dev/null +++ b/public/tokens/ryo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/safe.svg b/public/tokens/safe.svg new file mode 100644 index 0000000..2383f9c --- /dev/null +++ b/public/tokens/safe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/safemoon.svg b/public/tokens/safemoon.svg new file mode 100644 index 0000000..b412c55 --- /dev/null +++ b/public/tokens/safemoon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sai.svg b/public/tokens/sai.svg new file mode 100644 index 0000000..1667813 --- /dev/null +++ b/public/tokens/sai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/salt.svg b/public/tokens/salt.svg new file mode 100644 index 0000000..370f730 --- /dev/null +++ b/public/tokens/salt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/san.svg b/public/tokens/san.svg new file mode 100644 index 0000000..df819e7 --- /dev/null +++ b/public/tokens/san.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sand.svg b/public/tokens/sand.svg new file mode 100644 index 0000000..681fdcb --- /dev/null +++ b/public/tokens/sand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sbd.svg b/public/tokens/sbd.svg new file mode 100644 index 0000000..8eb6e46 --- /dev/null +++ b/public/tokens/sbd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sberbank.svg b/public/tokens/sberbank.svg new file mode 100644 index 0000000..9b8aed6 --- /dev/null +++ b/public/tokens/sberbank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sc.svg b/public/tokens/sc.svg new file mode 100644 index 0000000..46f3f21 --- /dev/null +++ b/public/tokens/sc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ser.svg b/public/tokens/ser.svg new file mode 100644 index 0000000..c1c0a17 --- /dev/null +++ b/public/tokens/ser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/shift.svg b/public/tokens/shift.svg new file mode 100644 index 0000000..05c5233 --- /dev/null +++ b/public/tokens/shift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sib.svg b/public/tokens/sib.svg new file mode 100644 index 0000000..a504193 --- /dev/null +++ b/public/tokens/sib.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sin.svg b/public/tokens/sin.svg new file mode 100644 index 0000000..819d5ec --- /dev/null +++ b/public/tokens/sin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/skl.svg b/public/tokens/skl.svg new file mode 100644 index 0000000..e6d3635 --- /dev/null +++ b/public/tokens/skl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sky.svg b/public/tokens/sky.svg new file mode 100644 index 0000000..2764593 --- /dev/null +++ b/public/tokens/sky.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/slr.svg b/public/tokens/slr.svg new file mode 100644 index 0000000..943b426 --- /dev/null +++ b/public/tokens/slr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sls.svg b/public/tokens/sls.svg new file mode 100644 index 0000000..f093db6 --- /dev/null +++ b/public/tokens/sls.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/smart.svg b/public/tokens/smart.svg new file mode 100644 index 0000000..5590615 --- /dev/null +++ b/public/tokens/smart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sngls.svg b/public/tokens/sngls.svg new file mode 100644 index 0000000..c86b11d --- /dev/null +++ b/public/tokens/sngls.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/snm.svg b/public/tokens/snm.svg new file mode 100644 index 0000000..348b721 --- /dev/null +++ b/public/tokens/snm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/snt.svg b/public/tokens/snt.svg new file mode 100644 index 0000000..02e8a00 --- /dev/null +++ b/public/tokens/snt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/snx.svg b/public/tokens/snx.svg new file mode 100644 index 0000000..a3fa5f9 --- /dev/null +++ b/public/tokens/snx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/soc.svg b/public/tokens/soc.svg new file mode 100644 index 0000000..6dffdc7 --- /dev/null +++ b/public/tokens/soc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sol.svg b/public/tokens/sol.svg new file mode 100644 index 0000000..c87b899 --- /dev/null +++ b/public/tokens/sol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/spacehbit.svg b/public/tokens/spacehbit.svg new file mode 100644 index 0000000..6d9453c --- /dev/null +++ b/public/tokens/spacehbit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/spank.svg b/public/tokens/spank.svg new file mode 100644 index 0000000..1bcc614 --- /dev/null +++ b/public/tokens/spank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sphtx.svg b/public/tokens/sphtx.svg new file mode 100644 index 0000000..b7fd4b9 --- /dev/null +++ b/public/tokens/sphtx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/srn.svg b/public/tokens/srn.svg new file mode 100644 index 0000000..02abb21 --- /dev/null +++ b/public/tokens/srn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/stak.svg b/public/tokens/stak.svg new file mode 100644 index 0000000..a6ef0d4 --- /dev/null +++ b/public/tokens/stak.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/start.svg b/public/tokens/start.svg new file mode 100644 index 0000000..b090cf8 --- /dev/null +++ b/public/tokens/start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/steem.svg b/public/tokens/steem.svg new file mode 100644 index 0000000..bdc83a8 --- /dev/null +++ b/public/tokens/steem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/storj.svg b/public/tokens/storj.svg new file mode 100644 index 0000000..0fead1c --- /dev/null +++ b/public/tokens/storj.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/storm.svg b/public/tokens/storm.svg new file mode 100644 index 0000000..7731f69 --- /dev/null +++ b/public/tokens/storm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/stox.svg b/public/tokens/stox.svg new file mode 100644 index 0000000..ef50eee --- /dev/null +++ b/public/tokens/stox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/stq.svg b/public/tokens/stq.svg new file mode 100644 index 0000000..b5a6ea3 --- /dev/null +++ b/public/tokens/stq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/strat.svg b/public/tokens/strat.svg new file mode 100644 index 0000000..19c89f2 --- /dev/null +++ b/public/tokens/strat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/stx.svg b/public/tokens/stx.svg new file mode 100644 index 0000000..482b2c7 --- /dev/null +++ b/public/tokens/stx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sub.svg b/public/tokens/sub.svg new file mode 100644 index 0000000..4ea6575 --- /dev/null +++ b/public/tokens/sub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sumo.svg b/public/tokens/sumo.svg new file mode 100644 index 0000000..1d91271 --- /dev/null +++ b/public/tokens/sumo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sushi.svg b/public/tokens/sushi.svg new file mode 100644 index 0000000..327f256 --- /dev/null +++ b/public/tokens/sushi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/sys.svg b/public/tokens/sys.svg new file mode 100644 index 0000000..c463f10 --- /dev/null +++ b/public/tokens/sys.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/taas.svg b/public/tokens/taas.svg new file mode 100644 index 0000000..cc76e16 --- /dev/null +++ b/public/tokens/taas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tau.svg b/public/tokens/tau.svg new file mode 100644 index 0000000..a8a652a --- /dev/null +++ b/public/tokens/tau.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tbx.svg b/public/tokens/tbx.svg new file mode 100644 index 0000000..61fb916 --- /dev/null +++ b/public/tokens/tbx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tel.svg b/public/tokens/tel.svg new file mode 100644 index 0000000..425ceeb --- /dev/null +++ b/public/tokens/tel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ten.svg b/public/tokens/ten.svg new file mode 100644 index 0000000..510e51e --- /dev/null +++ b/public/tokens/ten.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tern.svg b/public/tokens/tern.svg new file mode 100644 index 0000000..43d0517 --- /dev/null +++ b/public/tokens/tern.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tgch.svg b/public/tokens/tgch.svg new file mode 100644 index 0000000..100aea5 --- /dev/null +++ b/public/tokens/tgch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/theta.svg b/public/tokens/theta.svg new file mode 100644 index 0000000..a5d9d56 --- /dev/null +++ b/public/tokens/theta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tix.svg b/public/tokens/tix.svg new file mode 100644 index 0000000..a5aa9c2 --- /dev/null +++ b/public/tokens/tix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tkn.svg b/public/tokens/tkn.svg new file mode 100644 index 0000000..4e2a15c --- /dev/null +++ b/public/tokens/tkn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tks.svg b/public/tokens/tks.svg new file mode 100644 index 0000000..dcc9d55 --- /dev/null +++ b/public/tokens/tks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tnb.svg b/public/tokens/tnb.svg new file mode 100644 index 0000000..bfd9115 --- /dev/null +++ b/public/tokens/tnb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tnc.svg b/public/tokens/tnc.svg new file mode 100644 index 0000000..558db11 --- /dev/null +++ b/public/tokens/tnc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tnt.svg b/public/tokens/tnt.svg new file mode 100644 index 0000000..1c0ae6f --- /dev/null +++ b/public/tokens/tnt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tomo.svg b/public/tokens/tomo.svg new file mode 100644 index 0000000..a4c633a --- /dev/null +++ b/public/tokens/tomo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tpay.svg b/public/tokens/tpay.svg new file mode 100644 index 0000000..312abae --- /dev/null +++ b/public/tokens/tpay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/trig.svg b/public/tokens/trig.svg new file mode 100644 index 0000000..014d394 --- /dev/null +++ b/public/tokens/trig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/trtl.svg b/public/tokens/trtl.svg new file mode 100644 index 0000000..d936559 --- /dev/null +++ b/public/tokens/trtl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/trx.svg b/public/tokens/trx.svg new file mode 100644 index 0000000..6cd8557 --- /dev/null +++ b/public/tokens/trx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tusd.svg b/public/tokens/tusd.svg new file mode 100644 index 0000000..05607cd --- /dev/null +++ b/public/tokens/tusd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/tzc.svg b/public/tokens/tzc.svg new file mode 100644 index 0000000..5234c83 --- /dev/null +++ b/public/tokens/tzc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/ubq.svg b/public/tokens/ubq.svg new file mode 100644 index 0000000..00458cb --- /dev/null +++ b/public/tokens/ubq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/uma.svg b/public/tokens/uma.svg new file mode 100644 index 0000000..d59e4a1 --- /dev/null +++ b/public/tokens/uma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/uni.svg b/public/tokens/uni.svg new file mode 100644 index 0000000..f16fc31 --- /dev/null +++ b/public/tokens/uni.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/unity.svg b/public/tokens/unity.svg new file mode 100644 index 0000000..f34c88f --- /dev/null +++ b/public/tokens/unity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/usd.svg b/public/tokens/usd.svg new file mode 100644 index 0000000..c138325 --- /dev/null +++ b/public/tokens/usd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/usdc.svg b/public/tokens/usdc.svg new file mode 100644 index 0000000..691a861 --- /dev/null +++ b/public/tokens/usdc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/usdt.svg b/public/tokens/usdt.svg new file mode 100644 index 0000000..bfb2d84 --- /dev/null +++ b/public/tokens/usdt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/utk.svg b/public/tokens/utk.svg new file mode 100644 index 0000000..f37bc7e --- /dev/null +++ b/public/tokens/utk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/veri.svg b/public/tokens/veri.svg new file mode 100644 index 0000000..69138fe --- /dev/null +++ b/public/tokens/veri.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vet.svg b/public/tokens/vet.svg new file mode 100644 index 0000000..7228a54 --- /dev/null +++ b/public/tokens/vet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/via.svg b/public/tokens/via.svg new file mode 100644 index 0000000..58419aa --- /dev/null +++ b/public/tokens/via.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vib.svg b/public/tokens/vib.svg new file mode 100644 index 0000000..0420bc5 --- /dev/null +++ b/public/tokens/vib.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vibe.svg b/public/tokens/vibe.svg new file mode 100644 index 0000000..60d5e9a --- /dev/null +++ b/public/tokens/vibe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vivo.svg b/public/tokens/vivo.svg new file mode 100644 index 0000000..cfa7fb0 --- /dev/null +++ b/public/tokens/vivo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vrc.svg b/public/tokens/vrc.svg new file mode 100644 index 0000000..9f6a604 --- /dev/null +++ b/public/tokens/vrc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vrsc.svg b/public/tokens/vrsc.svg new file mode 100644 index 0000000..322e349 --- /dev/null +++ b/public/tokens/vrsc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vtc.svg b/public/tokens/vtc.svg new file mode 100644 index 0000000..e48e821 --- /dev/null +++ b/public/tokens/vtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/vtho.svg b/public/tokens/vtho.svg new file mode 100644 index 0000000..f622a8f --- /dev/null +++ b/public/tokens/vtho.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wabi.svg b/public/tokens/wabi.svg new file mode 100644 index 0000000..7eb6a1d --- /dev/null +++ b/public/tokens/wabi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wan.svg b/public/tokens/wan.svg new file mode 100644 index 0000000..e26a794 --- /dev/null +++ b/public/tokens/wan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/waves.svg b/public/tokens/waves.svg new file mode 100644 index 0000000..67cd724 --- /dev/null +++ b/public/tokens/waves.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wax.svg b/public/tokens/wax.svg new file mode 100644 index 0000000..86cf194 --- /dev/null +++ b/public/tokens/wax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wbtc.svg b/public/tokens/wbtc.svg new file mode 100644 index 0000000..a2239c4 --- /dev/null +++ b/public/tokens/wbtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wgr.svg b/public/tokens/wgr.svg new file mode 100644 index 0000000..fa483ba --- /dev/null +++ b/public/tokens/wgr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wicc.svg b/public/tokens/wicc.svg new file mode 100644 index 0000000..9fe110a --- /dev/null +++ b/public/tokens/wicc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wings.svg b/public/tokens/wings.svg new file mode 100644 index 0000000..590606f --- /dev/null +++ b/public/tokens/wings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wpr.svg b/public/tokens/wpr.svg new file mode 100644 index 0000000..a775786 --- /dev/null +++ b/public/tokens/wpr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/wtc.svg b/public/tokens/wtc.svg new file mode 100644 index 0000000..6b707d7 --- /dev/null +++ b/public/tokens/wtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/x.svg b/public/tokens/x.svg new file mode 100644 index 0000000..98a7835 --- /dev/null +++ b/public/tokens/x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xas.svg b/public/tokens/xas.svg new file mode 100644 index 0000000..6af8d9c --- /dev/null +++ b/public/tokens/xas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xbc.svg b/public/tokens/xbc.svg new file mode 100644 index 0000000..266febd --- /dev/null +++ b/public/tokens/xbc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xbp.svg b/public/tokens/xbp.svg new file mode 100644 index 0000000..16be1fd --- /dev/null +++ b/public/tokens/xbp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xby.svg b/public/tokens/xby.svg new file mode 100644 index 0000000..b1a2d7b --- /dev/null +++ b/public/tokens/xby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xcp.svg b/public/tokens/xcp.svg new file mode 100644 index 0000000..4bb0b31 --- /dev/null +++ b/public/tokens/xcp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xdn.svg b/public/tokens/xdn.svg new file mode 100644 index 0000000..8aa536c --- /dev/null +++ b/public/tokens/xdn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xem.svg b/public/tokens/xem.svg new file mode 100644 index 0000000..370a15c --- /dev/null +++ b/public/tokens/xem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xin.svg b/public/tokens/xin.svg new file mode 100644 index 0000000..47daedc --- /dev/null +++ b/public/tokens/xin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xlm.svg b/public/tokens/xlm.svg new file mode 100644 index 0000000..989360e --- /dev/null +++ b/public/tokens/xlm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xmcc.svg b/public/tokens/xmcc.svg new file mode 100644 index 0000000..6fb2fab --- /dev/null +++ b/public/tokens/xmcc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xmg.svg b/public/tokens/xmg.svg new file mode 100644 index 0000000..9429227 --- /dev/null +++ b/public/tokens/xmg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xmo.svg b/public/tokens/xmo.svg new file mode 100644 index 0000000..aa952a3 --- /dev/null +++ b/public/tokens/xmo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xmr.svg b/public/tokens/xmr.svg new file mode 100644 index 0000000..92ff487 --- /dev/null +++ b/public/tokens/xmr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xmy.svg b/public/tokens/xmy.svg new file mode 100644 index 0000000..632a666 --- /dev/null +++ b/public/tokens/xmy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xp.svg b/public/tokens/xp.svg new file mode 100644 index 0000000..7f6ddff --- /dev/null +++ b/public/tokens/xp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xpa.svg b/public/tokens/xpa.svg new file mode 100644 index 0000000..851ea5e --- /dev/null +++ b/public/tokens/xpa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xpm.svg b/public/tokens/xpm.svg new file mode 100644 index 0000000..f59eade --- /dev/null +++ b/public/tokens/xpm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xpr.svg b/public/tokens/xpr.svg new file mode 100644 index 0000000..9a70e0a --- /dev/null +++ b/public/tokens/xpr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xrp.svg b/public/tokens/xrp.svg new file mode 100644 index 0000000..9bf5acf --- /dev/null +++ b/public/tokens/xrp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xsg.svg b/public/tokens/xsg.svg new file mode 100644 index 0000000..71a7415 --- /dev/null +++ b/public/tokens/xsg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xtz.svg b/public/tokens/xtz.svg new file mode 100644 index 0000000..487dcf3 --- /dev/null +++ b/public/tokens/xtz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xuc.svg b/public/tokens/xuc.svg new file mode 100644 index 0000000..8284275 --- /dev/null +++ b/public/tokens/xuc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xvc.svg b/public/tokens/xvc.svg new file mode 100644 index 0000000..bd50138 --- /dev/null +++ b/public/tokens/xvc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xvg.svg b/public/tokens/xvg.svg new file mode 100644 index 0000000..63b42ba --- /dev/null +++ b/public/tokens/xvg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/xzc.svg b/public/tokens/xzc.svg new file mode 100644 index 0000000..f022a28 --- /dev/null +++ b/public/tokens/xzc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/yfi.svg b/public/tokens/yfi.svg new file mode 100644 index 0000000..fa2b4c3 --- /dev/null +++ b/public/tokens/yfi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/yoyow.svg b/public/tokens/yoyow.svg new file mode 100644 index 0000000..b590dc1 --- /dev/null +++ b/public/tokens/yoyow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zcl.svg b/public/tokens/zcl.svg new file mode 100644 index 0000000..85f0db7 --- /dev/null +++ b/public/tokens/zcl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zec.svg b/public/tokens/zec.svg new file mode 100644 index 0000000..a435294 --- /dev/null +++ b/public/tokens/zec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zel.svg b/public/tokens/zel.svg new file mode 100644 index 0000000..637e5ff --- /dev/null +++ b/public/tokens/zel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zen.svg b/public/tokens/zen.svg new file mode 100644 index 0000000..f14abf8 --- /dev/null +++ b/public/tokens/zen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zest.svg b/public/tokens/zest.svg new file mode 100644 index 0000000..7e5285c --- /dev/null +++ b/public/tokens/zest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zil.svg b/public/tokens/zil.svg new file mode 100644 index 0000000..7825c62 --- /dev/null +++ b/public/tokens/zil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zilla.svg b/public/tokens/zilla.svg new file mode 100644 index 0000000..5aeefa6 --- /dev/null +++ b/public/tokens/zilla.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/tokens/zrx.svg b/public/tokens/zrx.svg new file mode 100644 index 0000000..b9d625e --- /dev/null +++ b/public/tokens/zrx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/[locale]/(routes)/liquidation/page.tsx b/src/app/[locale]/(routes)/liquidation/page.tsx index d4e6438..7c05749 100644 --- a/src/app/[locale]/(routes)/liquidation/page.tsx +++ b/src/app/[locale]/(routes)/liquidation/page.tsx @@ -4,13 +4,13 @@ import PageTitle from "@/app/component/common/page-title"; import { positionCardsData } from "@/data"; import { LliquidationCards } from "@/app/component/liquidation"; -interface pageProps {} +interface pageProps { } const page: FC = () => { return (
- + {/* */}
); }; diff --git a/src/app/[locale]/(routes)/market/[positionId]/details/page.tsx b/src/app/[locale]/(routes)/market/[positionId]/details/page.tsx index ec0b0e8..1b06507 100644 --- a/src/app/[locale]/(routes)/market/[positionId]/details/page.tsx +++ b/src/app/[locale]/(routes)/market/[positionId]/details/page.tsx @@ -1,13 +1,43 @@ +"use client" import { MarketPositionDetail } from "@/app/component/market/market-position-detail"; -import { FC } from "react"; -interface pageProps {} +import { ILoanRequest } from "@/interfaces/loan-interface"; +import { getMarketLoan, getMarketLoans } from "@/services/api/market-loans"; +import { usePathname } from "next/navigation"; +import { FC, useCallback, useEffect, useState } from "react"; +interface pageProps { } + +const Page: FC = () => { + const [isLoading, setIsLoading] = useState(false); + const [loanData, setLoanData] = useState(null); + const [marketLoans, setMarketLoans] = useState([]); + + const pathname = usePathname() + + const handleGetMarketLoan = useCallback(() => { + if (loanData) return + const paths = pathname.split('/'); + setIsLoading(true); + getMarketLoan(paths[2]) + .then((data) => data ? setLoanData(data) : setLoanData(null)) + .finally(() => setIsLoading(false)); + + getMarketLoans() + .then((data) => data ? setMarketLoans(data) : setMarketLoans([])) + .finally(() => setIsLoading(false)); + }, [pathname, loanData]); + + + useEffect(() => { + handleGetMarketLoan() + }, [handleGetMarketLoan]); + + if (isLoading) return
Loading...
; -const page: FC = () => { return (
- -
+ + ); }; -export default page; +export default Page; diff --git a/src/app/[locale]/(routes)/mypositions/page.tsx b/src/app/[locale]/(routes)/mypositions/page.tsx index 2e24afc..e804559 100644 --- a/src/app/[locale]/(routes)/mypositions/page.tsx +++ b/src/app/[locale]/(routes)/mypositions/page.tsx @@ -4,7 +4,7 @@ import PageTitle from "@/app/component/common/page-title"; import { PositionTabs, PositionCards } from "@/app/component/my-positions"; import { positionCardsData } from "@/data"; -interface pageProps {} +interface pageProps { } const page: FC = () => { return ( @@ -12,13 +12,15 @@ const page: FC = () => { ); diff --git a/src/app/api/loan/route.ts b/src/app/api/loan/route.ts index 7db4709..1712db0 100644 --- a/src/app/api/loan/route.ts +++ b/src/app/api/loan/route.ts @@ -6,44 +6,50 @@ import { GetLoanDto } from "@/services/DTOs/LoanGet"; import connectDB from "@/lib/db"; export async function GET(req: Request) { - const url = new URL(req.url); - const query = { - borrowerID: url.searchParams.get("borrowerID"), - investorAddress: url.searchParams.get("investorAddress"), - loanToken: url.searchParams.get("loanToken"), - status: url.searchParams.get("status"), - }; + const url = new URL(req.url); + const query = { + borrowerID: url.searchParams.get("borrowerID"), + investorAddress: url.searchParams.get("investorAddress"), + loanToken: url.searchParams.get("loanToken"), + status: url.searchParams.get("status"), + name: url.searchParams.get("name"), + }; - try { - await connectDB(); + try { + await connectDB(); - try { - const getLoanDto = plainToClass(GetLoanDto, query); - await validateOrReject(getLoanDto); - } catch (error) { - console.error("Validation error", error); - return NextResponse.json({ error }, { status: 422 }); - } - - const filter: any = {}; - - if (query.borrowerID) { - filter.userAddress = query.borrowerID; - } - if (query.investorAddress) { - filter.investorAddress = query.investorAddress; - } - if (query.loanToken) { - filter.loanToken = query.loanToken; - } - if (query.status) { - filter.borrowedStatus = query.status; - } - - const loans = await LoanModel.find(filter); - return NextResponse.json(loans, { status: 200 }); - } catch (errors) { - console.error("Unexpected error", errors); - return NextResponse.json({ message: "Validation failed", errors }, { status: 400 }); - } + try { + const getLoanDto = plainToClass(GetLoanDto, query); + await validateOrReject(getLoanDto); + } catch (error) { + console.error("Validation error", error); + return NextResponse.json({ error }, { status: 422 }); + } + const filter: any = {}; + if (query.borrowerID) { + filter.userAddress = query.borrowerID; + } + if (query.investorAddress) { + filter.investorAddress = query.investorAddress; + } + if (query.loanToken) { + filter.loanToken = query.loanToken; + } + if (query.status) { + filter.loanStatus = query.status; + } + if (query.name) { + filter.name = query.name; + const loan = await LoanModel.findOne(filter); + return NextResponse.json(loan, { status: 200 }); + } + const loans = await LoanModel.find(filter); + return NextResponse.json(loans, { status: 200 }); + } catch (errors) { + console.error("Unexpected error", errors); + return NextResponse.json( + { message: "Validation failed", errors }, + { status: 400 } + ); + } } diff --git a/src/app/api/new-loan/route.ts b/src/app/api/new-loan/route.ts index 6190f62..0266c74 100644 --- a/src/app/api/new-loan/route.ts +++ b/src/app/api/new-loan/route.ts @@ -6,45 +6,45 @@ import { plainToInstance } from "class-transformer"; import { validateOrReject } from "class-validator"; export async function POST(req: Request) { - try { - const data: ILoanRequest = await req.json(); + try { + const data: ILoanRequest = await req.json(); - try { - const loanRequestDto = plainToInstance(LoanRequestDto, data); - await validateOrReject(loanRequestDto); - } catch (error) { - console.error("Validation error", error); - return NextResponse.json({ error }, { status: 422 }); - } + try { + const loanRequestDto = plainToInstance(LoanRequestDto, data); + await validateOrReject(loanRequestDto); + } catch (error) { + console.error("Validation error", error); + return NextResponse.json({ error }, { status: 422 }); + } - const existingLoan = await LoanModel.findOne({ loanToken: data.loanToken }); - if (existingLoan) { - return NextResponse.json({ - status: 409, - message: "Loan with the provided loanToken already exists.", - }); - } + const existingLoan = await LoanModel.findOne({ name: data.name }); + if (existingLoan) { + return NextResponse.json({ + status: 409, + message: "Loan with the provided name already exists.", + }); + } - const formattedLoanPeriod: Date = new Date(data.loanPeriod); - const formattedLoanRequestPeriod: Date = new Date(data.loanRequestPeriod); + const formattedLoanPeriod: Date = new Date(data.loanPeriod); + const formattedLoanRequestPeriod: Date = new Date(data.loanRequestPeriod); - const newLoan = new LoanModel({ - ...data, - loanPeriod: formattedLoanPeriod, - loanRequestPeriod: formattedLoanRequestPeriod, - }); + const newLoan = new LoanModel({ + ...data, + loanPeriod: formattedLoanPeriod, + loanRequestPeriod: formattedLoanRequestPeriod, + }); - const result = await newLoan.save(); - return NextResponse.json({ - status: 201, - message: "Loan created successfully.", - data: result, - }); - } catch (error) { - console.error("Error:", error); - return NextResponse.json({ - status: 500, - message: "Internal server error.", - }); - } + const result = await newLoan.save(); + return NextResponse.json({ + status: 201, + message: "Loan created successfully.", + data: result, + }); + } catch (error) { + console.error("Error:", error); + return NextResponse.json({ + status: 500, + message: "Internal server error.", + }); + } } diff --git a/src/app/component/common/Card/index.tsx b/src/app/component/common/Card/index.tsx index bd96e14..ccf23fc 100644 --- a/src/app/component/common/Card/index.tsx +++ b/src/app/component/common/Card/index.tsx @@ -9,10 +9,11 @@ export type CardProps = { image: string; title: string; time: string; - description: { - by: string; - collateral: string; - }; + // description: { + // by: string; + // collateral: string; + // }; + interestRate: string, bid: { amount: string | number; currency: string; @@ -21,7 +22,7 @@ export type CardProps = { buttonText?: string; isLliquidation?: boolean; isCurrentBid?: boolean; - onButtonClick?: () => void; + onButtonClick?: (title: string) => void; onCardClick?: () => void; }; @@ -29,7 +30,7 @@ const Card = ({ image, time, title, - description, + interestRate, bid, liked, isLliquidation, @@ -40,7 +41,7 @@ const Card = ({ }: CardProps) => { const handleButtonClick = (event: MouseEvent) => { event.stopPropagation(); - onButtonClick && onButtonClick(); + onButtonClick && onButtonClick(title); }; return ( @@ -77,15 +78,15 @@ const Card = ({ {title}

- By {description.by} - Collateral {description.collateral} + Interest Rate + {interestRate}%

- {isCurrentBid ? "Current Bid" : "Your Bid"} + Amount {" "} @@ -104,8 +105,8 @@ const Card = ({ {isLliquidation ? "Liquidate" : buttonText - ? buttonText - : "Supply"} + ? buttonText + : "Supply"}

diff --git a/src/app/component/common/Empty/index.tsx b/src/app/component/common/Empty/index.tsx new file mode 100644 index 0000000..c5632cb --- /dev/null +++ b/src/app/component/common/Empty/index.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { Button, Empty, Typography } from 'antd'; + +interface IEmpty { + image?: string; + description?: string; + action?: string; +} + +const EmptyComponent = ({ image, description, action }: IEmpty) => ( +
+ + {action && } + +
+ +); + +export default EmptyComponent; \ No newline at end of file diff --git a/src/app/component/common/Tables/active-position-container.tsx b/src/app/component/common/Tables/active-position-container.tsx index 0ea46b1..63caf4f 100644 --- a/src/app/component/common/Tables/active-position-container.tsx +++ b/src/app/component/common/Tables/active-position-container.tsx @@ -1,11 +1,10 @@ "use client"; -import { useEffect, useState } from "react"; -import positionsInfo from "@/app/data/carddata"; +import { useCallback, useEffect, useState } from "react"; import ActivePositionsTable from "./active-positions-table"; import { useTranslations } from "next-intl"; -import { LoanData, getMyLoan } from "@/services/api/my-position"; +import { getMyLoansByStatus, getMySuppliedLoan } from "@/services/api/my-position"; import { useAccount } from "wagmi"; -import { ILoanRequest } from "@/interfaces/loan-interface"; +import { ILoanRequest, STATUS } from "@/interfaces/loan-interface"; const ActivePositions = () => { const t = useTranslations("ActivePositions"); @@ -13,12 +12,12 @@ const ActivePositions = () => { const [active, setActive] = useState(true); const { address } = useAccount(); - const handleGetMyLoanAPI = () => { + const handleGetMyLoanAPI = useCallback(() => { if (!address) return; - getMyLoan(address).then((data) => setLoanData(data)); - }; + getMyLoansByStatus(address, STATUS.borrowed).then((data) => setLoanData(data)); + }, [address]); - useEffect(() => handleGetMyLoanAPI(), []); + useEffect(() => handleGetMyLoanAPI(), [handleGetMyLoanAPI]); let activePositionsTableData = active ? loanData?.slice(0, 2) : loanData; diff --git a/src/app/component/common/Tables/active-positions-table.tsx b/src/app/component/common/Tables/active-positions-table.tsx index 55af78d..2eaed1b 100644 --- a/src/app/component/common/Tables/active-positions-table.tsx +++ b/src/app/component/common/Tables/active-positions-table.tsx @@ -1,10 +1,10 @@ "use client"; import { ILoanRequest } from "@/interfaces/loan-interface"; -import { LoanData } from "@/services/api/my-position"; import Image from "next/image"; import { FC } from "react"; import { TbCurrencyEthereum } from "react-icons/tb"; +import EmptyComponent from "../Empty"; interface TablePorp { data: ILoanRequest[]; @@ -40,72 +40,81 @@ const ActivePositionsTable: FC = ({ data }) => { }; return ( - - - - - - - - - - - - - {data.map((key, index) => ( - - + {data.map((key, index) => ( + + + + + + + + + ))} + +
- Collection - - Amount - - APR - - Fees - - Supplier - - Health factor -
- Jese image -
-

{"static"}

-

{"static"}

-
+ <> + + + + + + + + + - - - - - - ))} - -
+ Collection + + Amount + + APR + + Fees + + Supplier + + Health factor - - - {key.loanAmount} - - -
{handleColor("-8")}
-
- - - {"static"} - - - {"static"} - - - {key.healthFactor || 0}% - -
+ +
+ Jese image +
+

{"static"}

+

{"static"}

+
+
+ + + {key.loanAmount} + + +
{handleColor("-8")}
+
+ + + {"static"} + + + {"static"} + + + {key.healthFactor || 0}% + +
+ + {data.length == 0 && +
+ +
+ } + + ); }; diff --git a/src/app/component/common/Tables/recent-loans-container.tsx b/src/app/component/common/Tables/recent-loans-container.tsx index 3fb49e9..7e0235d 100644 --- a/src/app/component/common/Tables/recent-loans-container.tsx +++ b/src/app/component/common/Tables/recent-loans-container.tsx @@ -4,6 +4,7 @@ import RecentLoans from "./recent-loans"; import { useTranslations } from "next-intl"; import { LoanData, getRecentLoan } from "@/services/api/dashboard"; import { useAccount } from "wagmi"; +import EmptyComponent from "../Empty"; const RecentPositionsList: FC = () => { const t = useTranslations("RecentLoans"); @@ -33,7 +34,7 @@ const RecentPositionsList: FC = () => { useEffect(() => { if (!address) return; _getRecentLoadAPI(address); - }, [active]); + }, [active, address]); const sortedData = recentLoan?.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()); const data = active ? sortedData?.slice(0, 3) : sortedData; @@ -46,7 +47,7 @@ const RecentPositionsList: FC = () => { {tableButtonInfo} - + {data && data.length > 0 ? : } ); }; diff --git a/src/app/component/common/Tables/recent-loans.tsx b/src/app/component/common/Tables/recent-loans.tsx index e335140..e63945e 100644 --- a/src/app/component/common/Tables/recent-loans.tsx +++ b/src/app/component/common/Tables/recent-loans.tsx @@ -1,9 +1,13 @@ "use client"; +import { Currency, requestAmountOptions } from "@/app/data/currency"; import { LoanData } from "@/services/api/dashboard"; +import { truncateAddress } from "@/utils/helper"; import { DEFAULT_IMAGE } from "@/utils/image"; import Image from "next/image"; import { FC } from "react"; -import { TbCurrencyEthereum } from "react-icons/tb"; +import { blo } from "blo"; +import { getImage } from "@/shared/constant"; + interface RecentLoansProps { data: LoanData[] | undefined; @@ -22,26 +26,34 @@ const RecentLoans: FC = ({ data }) => {
Jese image
- {/* {key._id} */} - Uzachi #4390 + {truncateAddress(key.userAddress)} + {/* Uzachi #4390 */}
{/* {key.collateralAmount} */} - From Ragnarok Meta + Koryntia Loans
- - {key.collateralAmount} {key.loanToken} + {/* */} + koryntia logo +   + {key.loanAmount} {key.loanToken} ))} diff --git a/src/app/component/common/Timer/index.tsx b/src/app/component/common/Timer/index.tsx index b2bf00d..5ba946a 100644 --- a/src/app/component/common/Timer/index.tsx +++ b/src/app/component/common/Timer/index.tsx @@ -20,12 +20,17 @@ const Timer = ({ endTime }: TimerProps) => { }; const timeDifference = Math.max(0, endTime.getTime() - currentTime.getTime()); - const hours = Math.floor(timeDifference / (1000 * 60 * 60)); + const days = Math.floor(timeDifference / (1000 * 24 * 60 * 60)) + const hours = Math.floor((timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((timeDifference % (1000 * 60)) / 1000); return ( <> + + {":"} diff --git a/src/app/component/create-loan/Summary.tsx b/src/app/component/create-loan/Summary.tsx index 3b1bf3b..693012e 100644 --- a/src/app/component/create-loan/Summary.tsx +++ b/src/app/component/create-loan/Summary.tsx @@ -9,9 +9,11 @@ interface ISummary { platformFee: string; period: string; healthFactor: string; + loanToken: string; + collateralToken: string; } -const Summary = ({ borrowingAmount, collateral, collateralRate, platformFee, period, healthFactor }: ISummary) => { +const Summary = ({ borrowingAmount, collateral, collateralRate, platformFee, period, healthFactor, loanToken, collateralToken }: ISummary) => { // the inputs are from create loan forms //is needed to call the contract for this step /*function calculateDebtAmount( @@ -24,17 +26,22 @@ We do not have the criteria to use to make these calculations. */ const currency = "USDC"; - const borrow = 11; - // const collateralRate = 1.2; - // const collateral = borrow * collateralRate; - // const months = 12; + + const calculateHealth = () => { + // uint256 collateralAdjustedThreshold = (collateralValueUsd * + // liquidationThreshold) / INTEREST_PRECISION; + // return (collateralAdjustedThreshold * PRECISION) / loanValueUsd; + + return 100; + } + return (
- - - + + + diff --git a/src/app/component/create-loan/create-loan-form.tsx b/src/app/component/create-loan/create-loan-form.tsx index 1b6343d..56bccb4 100644 --- a/src/app/component/create-loan/create-loan-form.tsx +++ b/src/app/component/create-loan/create-loan-form.tsx @@ -4,36 +4,33 @@ import { createNewLoan } from "@/services/api/loan-service"; import Button from "../elements/button/Button"; import { AiOutlineDollarCircle } from "react-icons/ai"; import { useAccount } from "wagmi"; -// import { toast } from "react-toastify"; -import init from "module-alias"; -import { platform } from "os"; import { getPriceApi } from "@/services/api/getPrice"; const INITIAL_THRESHOLD_PERCENTAGE = 15; const PLATFORM_FEE = 12; const INTEREST_PRECISION = 10 ** 18; import toast from "react-hot-toast"; +import { STATUS } from "@/interfaces/loan-interface"; interface FormValues { name: string; userAddress: string; loanAmount: string; - loanToken?: string; + loanToken: string; collateralAmount: string; - collateralToken?: string; - loanPeriod: string; + collateralToken: string; + loanPeriod: Date; + loanRequestPeriod: Date; healthFactor: string; - platformFee: string; interestRate: string; investorAddress: string; - borrowedStatus: string; + loanStatus: STATUS; nftManager: string; nftVersion: string; liquidationThreshold: string; initialThreshold: string; - loanRequestPeriod: string; - creationDate: string; - updatedDate: string; + creationDate: Date; + updatedDate: Date; } interface CreateLoanFormProps { @@ -42,6 +39,7 @@ interface CreateLoanFormProps { collateralAmount: number; requestToken: string; collateralToken: string; + initialThreshold: number; liquidationThreshold: number; interestRate: number; name: string; @@ -54,6 +52,7 @@ const CreateLoanForm: React.FC = ({ requestToken, collateralToken, liquidationThreshold, + initialThreshold, interestRate, name, }) => { @@ -61,6 +60,7 @@ const CreateLoanForm: React.FC = ({ const [connectedAccount, setConnectedAccount] = useState(account?.address || ""); const [loanTokenPrice, setLoanTokenPrice] = useState(0); const [collateralTokenPrice, setCollateralTokenPrice] = useState(0); + const platformFee = ((requestAmount * PLATFORM_FEE) / 100).toFixed(4).toString(); const initialState: FormValues = { name: name, @@ -69,19 +69,18 @@ const CreateLoanForm: React.FC = ({ loanToken: requestToken, collateralAmount: collateralAmount.toString(), collateralToken: collateralToken, - loanPeriod: loanPeriod.toString(), + loanPeriod: convertYearsToDateFormat(loanPeriod.toString()), healthFactor: "to_be_made_dynamic", - platformFee: ((requestAmount * PLATFORM_FEE) / 100).toFixed(4).toString(), investorAddress: "0x0000000000000000000000000000000000000000", - borrowedStatus: "new", + loanStatus: STATUS.pending, nftManager: "0x0000000000000000000000000000000000000000", nftVersion: "to_be_made_dynamic", liquidationThreshold: liquidationThreshold.toString(), interestRate: interestRate.toString(), - initialThreshold: ((collateralAmount * INITIAL_THRESHOLD_PERCENTAGE) / requestAmount).toFixed(4).toString(), - loanRequestPeriod: "2", - updatedDate: new Date().toISOString(), - creationDate: new Date().toISOString(), + initialThreshold: initialThreshold.toString(), + loanRequestPeriod: convertDaysToDateFormat("30"), + updatedDate: new Date(), + creationDate: new Date(), }; const [formValues, setFormValues] = useState(initialState); @@ -96,9 +95,6 @@ const CreateLoanForm: React.FC = ({ setFormValues((prevValues) => ({ ...prevValues, platformFee: ((+formValues.loanAmount * PLATFORM_FEE) / 100).toFixed(4).toString(), - initialThreshold: ((+formValues.collateralAmount * INITIAL_THRESHOLD_PERCENTAGE) / +formValues.loanAmount) - .toFixed(4) - .toString(), healthFactor: calculateHealthFactor( +formValues.loanAmount, +formValues.collateralAmount, @@ -110,7 +106,7 @@ const CreateLoanForm: React.FC = ({ .toFixed(2) .toString(), })); - }, [formValues.loanAmount, formValues.collateralAmount, loanTokenPrice, collateralTokenPrice]); + }, [formValues.loanAmount, formValues.collateralAmount, loanTokenPrice, collateralTokenPrice, formValues.liquidationThreshold, formValues.interestRate]); useEffect(() => { const { loanAmount, collateralAmount, healthFactor } = formValues; @@ -138,6 +134,8 @@ const CreateLoanForm: React.FC = ({ return; } + console.log(formValues) + if (formInvalid) { toast.error("Please fill all the required fields"); return; @@ -145,31 +143,37 @@ const CreateLoanForm: React.FC = ({ const data = { ...formValues, - loanPeriod: convertYearsToISOFormat(formValues.loanPeriod), - loanRequestPeriod: convertYearsToISOFormat(formValues.loanRequestPeriod), }; const response: any = await createNewLoan(data); + console.log(response) - if (response.status === 201) { - toast.success(response.message || "Successfully created a Loan"); - } else if (response.status === 400) { - toast.error(response.message || "Failed to create loan"); + if (response.data.status === 201) { + toast.success(response.data.message || "Successfully created a Loan"); + } else if (response.data.status === 400) { + toast.error(response.data.message || "Failed to create loan"); } else { - toast.error(response.message || "Server Error: Failed to create Loan"); + toast.error(response.data.message || "Server Error: Failed to create Loan"); } - setIsSubmitting(false); } catch (error) { + console.log(error) toast.error("An error occurred while creating the loan. Please try again."); setIsSubmitting(false); } } - function convertYearsToISOFormat(years: string): string { + function convertYearsToDateFormat(years: string): Date { const loanPeriodInYears = Number(years); const loanPeriodInSeconds = loanPeriodInYears * 365 * 24 * 60 * 60; - const loanPeriodInISOFormat = new Date(Date.now() + loanPeriodInSeconds * 1000).toISOString(); + const loanPeriodInISOFormat = new Date(Date.now() + loanPeriodInSeconds * 1000); + return loanPeriodInISOFormat; + } + + function convertDaysToDateFormat(days: string): Date { + const loanPeriodInDays = Number(days); + const loanPeriodInSeconds = loanPeriodInDays * 24 * 60 * 60; + const loanPeriodInISOFormat = new Date(Date.now() + loanPeriodInSeconds * 1000); return loanPeriodInISOFormat; } @@ -199,7 +203,7 @@ const CreateLoanForm: React.FC = ({ useEffect(() => { getCollateralTokenPrice(formValues.collateralToken || ""); getLoanTokenPrice(formValues.loanToken || ""); - }, []); + }, [formValues.collateralToken, formValues.loanToken]); return (
@@ -261,14 +265,13 @@ const CreateLoanForm: React.FC = ({ Loan Period
- + {loanPeriod} Year +
@@ -279,9 +282,11 @@ const CreateLoanForm: React.FC = ({ borrowingAmount={formValues.loanAmount} collateral={formValues?.collateralAmount} collateralRate={formValues.interestRate} - platformFee={formValues.platformFee} - period={formValues.loanPeriod} + platformFee={platformFee} + period={loanPeriod.toString()} healthFactor={formValues.healthFactor} + loanToken={formValues.loanToken} + collateralToken={formValues.collateralToken} />
diff --git a/src/app/component/create-loan/create-loan.tsx b/src/app/component/create-loan/create-loan.tsx index 2ac08e1..6526a09 100644 --- a/src/app/component/create-loan/create-loan.tsx +++ b/src/app/component/create-loan/create-loan.tsx @@ -1,244 +1,112 @@ -import React, { useEffect, useState } from "react"; +import React, { useCallback, useEffect, useState } from "react"; import toast from "react-hot-toast"; import Button from "../elements/button/Button"; import CreateLoanForm from "./create-loan-form"; import { RoundedInput } from "../elements/Input"; import Select from "../elements/select"; +import { Select as SelectComponent } from 'antd' +import { AiOutlineDollarCircle } from "react-icons/ai"; +import { collateralAmountOptions, requestAmountOptions } from "@/app/data/currency"; +import { getPriceApi } from "@/services/api/getPrice"; type LoanFormProps = { - name: string; - value: string; + name: string; + value: string; }; type CurrencyOption = { - name: string; - value: string; + name: string; + value: string; }; const CreateLoan = () => { - const requestAmountOptions: CurrencyOption[] = [ - { name: "USDT", value: "usdt" }, - { name: "BTC", value: "btc" }, - { name: "USDC", value: "usdc" }, - { name: "ETH", value: "eth" }, - { name: "MATIC", value: "matic" }, - { name: "SOL", value: "sol" }, - ]; + const loanPeriodValue: LoanFormProps[] = [ + { name: "1 Year", value: "1" }, + { name: "2 Years", value: "2" }, + { name: "3 Years", value: "3" }, + { name: "4 Years", value: "4" }, + ]; - const collateralAmountOptions: CurrencyOption[] = [ - { name: "USDT", value: "usdt" }, - { name: "BTC", value: "btc" }, - { name: "USDC", value: "usdc" }, - { name: "ETH", value: "eth" }, - { name: "MATIC", value: "matic" }, - { name: "SOL", value: "sol" }, - ]; + const [showModal, setShowModal] = useState(false); + const [selectedRequestAmountOption, setSelectedRequestAmountOption] = useState( + requestAmountOptions[0] + ); + const [selectedCollateralAmountOptions, setSelectedCollateralAmountOption] = useState( + collateralAmountOptions[0] + ); + const [requestAmount, setRequestAmount] = useState(""); + const [collateralAmount, setCollateralAmount] = useState(0); + const [loanPeriod, setLoanPeriod] = useState("1"); + const [initialThreshold, setInitialThreshold] = useState(""); + const [interestRate, setInterestRate] = useState(""); + const [name, setName] = useState(""); + const [formInvalid, setFormInvalid] = useState(false); - const loanPeriodValue: LoanFormProps[] = [ - { name: "1 Year", value: "1" }, - { name: "2 Years", value: "2" }, - { name: "3 Years", value: "3" }, - { name: "4 Years", value: "4" }, - ]; + const toggleModal = () => { + if (formInvalid) { + toast.error("Please provide loan details"); + } else { + setShowModal(!showModal); + } + }; -// import IconMap from "../common/Icons"; -// import { collateralAmountOptions, requestAmountOptions } from "@/constant/loan"; -// import { CurrencyOption } from "@/types/liquidation"; + useEffect(() => { + // Perform form validation + const isFormInvalid = + +requestAmount === 0 || + +collateralAmount === 0 || + +loanPeriod === 0 || + +initialThreshold === 0 || + +interestRate === 0 || + name === ""; -// const CreateLoan = () => { -// const [loanPeriodValue, setLoanPeriodValue] = useState([ -// { name: "1 Year", value: "1" }, -// { name: "2 Years", value: "2" }, -// { name: "3 Years", value: "3" }, -// { name: "4 Years", value: "4" }, -// ]); + // Set formInvalid state based on validation result + setFormInvalid(isFormInvalid); + }, [requestAmount, collateralAmount, loanPeriod, initialThreshold, interestRate, name]); + const handleRequestAmountOptionChange = (selectedValue: string) => { + const selectedOption = requestAmountOptions.find((option) => option.value === selectedValue); + if (!selectedOption) return; + setSelectedRequestAmountOption(selectedOption); + }; - const [showModal, setShowModal] = useState(false); - const [selectedRequestAmountOption, setSelectedRequestAmountOption] = useState( - requestAmountOptions[0] - ); - const [selectedCollateralAmountOptions, setSelectedCollateralAmountOption] = useState( - collateralAmountOptions[0] - ); - const [requestAmount, setRequestAmount] = useState(""); - const [collateralAmount, setCollateralAmount] = useState(""); - const [loanPeriod, setLoanPeriod] = useState("1"); - const [liquidationThreshold, setLiquidationThreshold] = useState(""); - const [interestRate, setInterestRate] = useState(""); - const [name, setName] = useState(""); - const [formInvalid, setFormInvalid] = useState(false); + const handleCollateralOptionChange = (selectedValue: string) => { + const selectedOption = collateralAmountOptions.find((option) => option.value === selectedValue); + if (!selectedOption) return; + setSelectedCollateralAmountOption(selectedOption); + }; - const toggleModal = () => { - if (formInvalid) { - toast.error("Please provide loan details"); - } else { - setShowModal(!showModal); - } - }; - - useEffect(() => { - // Perform form validation - const isFormInvalid = - +requestAmount === 0 || - +collateralAmount === 0 || - +loanPeriod === 0 || - +liquidationThreshold === 0 || - +interestRate === 0 || - name === ""; + const calculateMaxThreshold = () => { + if (!interestRate) return 0; + return Math.round((10000 * 10000 / (10000 + (Number(interestRate) * 100))) / 100) + } - // Set formInvalid state based on validation result - setFormInvalid(isFormInvalid); - }, [requestAmount, collateralAmount, loanPeriod, liquidationThreshold, interestRate, name]); + const handlePeriodChange = (value: string[]) => { + console.log(`selected ${value}`); + setLoanPeriod(value[0]) + }; - const handleRequestAmountOptionChange = (selectedValue: string) => { - const selectedOption = requestAmountOptions.find((option) => option.value === selectedValue); - if (!selectedOption) return; - setSelectedRequestAmountOption(selectedOption); - }; + const calculateRequestAmount = useCallback(async () => { + // get usd price of request token + // get total usdAmount + // get price of collateral token + // use total usdAmount to determine expected collateral amount + const requestToken = `${selectedRequestAmountOption.name}/USD` + const collateralToken = `${selectedCollateralAmountOptions.name}/USD` + const requestTokenPrice = await getPriceApi(requestToken) + const collateralTokenPrice = await getPriceApi(collateralToken); + if (requestTokenPrice && collateralTokenPrice) { + setCollateralAmount(requestTokenPrice?.price * Number(requestAmount) / collateralTokenPrice.price) + } + }, [requestAmount, selectedCollateralAmountOptions, selectedRequestAmountOption]) - const handleCollateralOptionChange = (selectedValue: string) => { - const selectedOption = collateralAmountOptions.find((option) => option.value === selectedValue); - if (!selectedOption) return; - setSelectedCollateralAmountOption(selectedOption); - }; + useEffect(() => { + if (Number(requestAmount) > 0 && selectedRequestAmountOption.value && selectedCollateralAmountOptions.value) { + calculateRequestAmount() + } + }, [calculateRequestAmount, requestAmount, selectedRequestAmountOption, selectedCollateralAmountOptions]) -// <<<<<<< api-integuration -// return ( -//
-//
-//

-// Create Loan position -//

-//
-//
-//

-// Request Amount -//

-//
-// setRequestAmount(e.target.value)} -// /> -//
-// {"|"} -//
-// -// -//
-//
-//
-//
-//
-//

-// Liquidation Threshold -//

-//
-// setLiquidationThreshold(e.target.value)} -// /> -//
-//
-//
-//

-// Interest Rate -//

-//
-// setInterestRate(e.target.value)} -// /> -//
-//
-//
-//

-// Loan Period -//

-//
-// -//
-//
-//
-//

-// Title -//

-//
-// setName(e.target.value)} -// /> -//
-//
-//
-// -//
-//
-//
-// {showModal && ( -//
@@ -253,22 +121,20 @@ const CreateLoan = () => {
setRequestAmount(e.target.value)} />
{"|"}
- + {/* + */} {

- Loan Period + Interest Rate

- setInitialThreshold(e.target.value)} + /> +
+
+
+

+ Loan Period +

+
+ setLoanPeriod(e.target.value)} + size="large" + className="w-full text-sm bg-transparent rounded-2xl focus:outline-none focus:ring-0 bg-gray-100" + onChange={handlePeriodChange} > - {loanPeriodValue.map((period, idx) => ( - - ))} - + {name} + {loanPeriodValue.map((period, index) => { + return ( + +

{period.name}

+
+ ) + })} +
+
+
+
+

+ Title +

+
+ setName(e.target.value)} + />
@@ -342,30 +254,34 @@ const CreateLoan = () => { className="absolute top-0 right-5 text-appColor1 cursor-pointer text-4xl " onClick={toggleModal} > -
- - × - -
- -
-
-
- )} -
- ); +
+ + × + +
+ +
+
+ +
+ + ) + } + + ); }; export default CreateLoan; diff --git a/src/app/component/dashboard/Dashboard.tsx b/src/app/component/dashboard/Dashboard.tsx index b8afc70..449ce76 100644 --- a/src/app/component/dashboard/Dashboard.tsx +++ b/src/app/component/dashboard/Dashboard.tsx @@ -6,8 +6,6 @@ import ActivePositions from "../common/Tables/active-position-container"; import Link from "next/link"; const Dashboard = () => { - const firstThreePositionData = positionCardsData.slice(0, 3); - return (
@@ -23,7 +21,7 @@ const Dashboard = () => {
- +
diff --git a/src/app/component/dashboard/banner.tsx b/src/app/component/dashboard/banner.tsx index 6360b29..7759a78 100644 --- a/src/app/component/dashboard/banner.tsx +++ b/src/app/component/dashboard/banner.tsx @@ -1,12 +1,17 @@ +import Image from "next/image"; +import Link from "next/link"; import React from "react"; +import type { Route } from "next"; const Banner = () => { return (
- bg

@@ -17,13 +22,14 @@ const Banner = () => {

- +
- + ); } diff --git a/src/app/component/market/market-position-detail.tsx b/src/app/component/market/market-position-detail.tsx index 6379c1a..515cfb0 100644 --- a/src/app/component/market/market-position-detail.tsx +++ b/src/app/component/market/market-position-detail.tsx @@ -2,7 +2,6 @@ import Image from "next/image"; import { useRouter } from "next/navigation"; import etheriumIcon from "../../../../public/icons/etherium.svg"; -import { positionCardsData } from "@/data"; import useElementWidth from "@/hooks/useElementWidth"; import Card from "../common/Card"; import { useEffect, useState } from "react"; @@ -11,16 +10,28 @@ import Slider from "react-slick"; import { calculateSlidesToShow } from "@/utils/helper"; import Timer from "../common/Timer"; import { Route } from "next"; +import { ILoanRequest } from "@/interfaces/loan-interface"; +import { DateTime } from "luxon"; +import EmptyComponent from "../common/Empty"; -export const MarketPositionDetail = () => { +export const MarketPositionDetail = ({ loanData, marketLoans }: { loanData: ILoanRequest | null, marketLoans: ILoanRequest[] }) => { const router = useRouter(); const [isPositionName, setIsPositionName] = useState(false); const [sectionWidth, sectionRef] = useElementWidth(); const [slidesToShow, setSlidesToShow] = useState(3); + console.log(marketLoans) + + function calculateCountdown(date: string) { + const targetDate = DateTime.fromISO(date); + const now = DateTime.now(); + const diff = targetDate.diff(now, ["days", "hours", "minutes", "seconds"]); + const countdown = `${Math.floor(diff.days)}d ${Math.floor(diff.hours)}h ${Math.floor(diff.minutes)}m ${Math.floor(diff.seconds)}s`; + return countdown; + } const currentDate = new Date(); - const endDate = new Date(currentDate); - endDate.setDate(currentDate.getDate() + 1); + const endDate = new Date(loanData ? loanData.loanRequestPeriod : currentDate); + endDate.setDate(endDate.getDate() + 1); useEffect(() => { if (sectionWidth) { @@ -51,119 +62,122 @@ export const MarketPositionDetail = () => {
-
-
- market-position details -
-
-
-

- Position Name -

-

{`The borrower is seeking a loan of [Insert Requested Tokens] tokens, showcasing a [Insert Risk Factor] risk factor while leveraging a robust [Insert Collateralization Ratio] collateralization ratio. This demonstrates the borrower's intention to secure the loan by offering a substantial collateral base, ensuring a lower risk profile within the lending ecosystem.`}

-
-
-
-
-

- Auction End In -

-
- -
-
+ { + loanData ? +
+
+ market-position details +
+
+
+

+

+

{`The borrower is seeking a loan of ${loanData.loanAmount} ${loanData.loanToken}, showcasing a ${loanData.interestRate}% interest rate while leveraging a robust ${loanData.liquidationThreshold}% collateralization ratio. This demonstrates the borrower's intention to secure the loan by offering a substantial collateral base of ${Number(loanData.collateralAmount).toFixed(4)} ${loanData.collateralToken}, ensuring a lower risk profile within the lending ecosystem.`}

-

- Required Amount -

-
- etherium icon -

- 3,89 ETH -

+
+
+
+

+ Auction End In +

+
+ +
+
+
+

+ Required Amount +

+
+ etherium icon +

+ {loanData.loanAmount} {loanData.loanToken} +

+
+
+
+

+ APR +

+
+

+ {loanData.interestRate}% +

+
+
-
-
-

- APR -

-
-

- {"8,9 %"} +

+

+ Health factor

+
-
-

- Health factor -

- -
-
-
- -
-
+ +
+
: + + }
- Anonther loan + Other loans
- {positionCardsData && - positionCardsData.map((item, index) => ( -
- setIsPositionName(true)} - onCardClick={() => - router.push(`/market/895/details` as Route) - } - /> -
- ))} + {marketLoans.map((item, index) => ( +
+ setIsPositionName(true)} + onCardClick={() => + router.push(`/market/${item.name}/details` as Route) + } + /> +
+ ))}
- setIsPositionName(false)} - /> + />} ); }; diff --git a/src/app/component/market/marketModal.tsx b/src/app/component/market/marketModal.tsx index f656ed0..315e0b0 100644 --- a/src/app/component/market/marketModal.tsx +++ b/src/app/component/market/marketModal.tsx @@ -1,57 +1,27 @@ -import { AiOutlineDollarCircle } from "react-icons/ai"; import Modal from "../common/Modal"; -import { useState } from "react"; import LoanSummaryContainer from "../create-loan/LoanSummaryContainer"; import LoanSummary from "../create-loan/LoanSummary"; import Button from "../elements/button/Button"; +import { ILoanRequest } from "@/interfaces/loan-interface"; +import { DateTime } from "luxon"; type MarketModalProps = { open: boolean; + loanData: ILoanRequest; handleClose: () => void; }; -type CurrencyOption = { - name: string; - value: string; -}; - -type LoanFormProps = { - name: string; - value: string; -}; - -const collateralAmountOptions: CurrencyOption[] = [ - { name: "USDT", value: "usdt" }, - { name: "BTC", value: "btc" }, - { name: "USDC", value: "usdc" }, - { name: "ETH", value: "eth" }, - { name: "MATIC", value: "matic" }, - { name: "SOL", value: "sol" }, -]; const MarketModal = (props: MarketModalProps) => { - const { open, handleClose } = props; - const [selectedCollateralAmountOptions, setSelectedCollateralAmountOption] = - useState(null); - const [collateralAmount, setCollateralAmount] = useState(""); - const [loanPeriod, setLoanPeriod] = useState("1"); - - const [loanPeriodValue, setLoanPeriodValue] = useState([ - { name: "1 Year", value: "1" }, - { name: "2 Years", value: "2" }, - { name: "3 Years", value: "3" }, - { name: "4 Years", value: "4" }, - ]); + const { open, loanData, handleClose } = props; - const handleCollateralOptionChange = ( - e: React.ChangeEvent - ) => { - const selectedValue = e.target.value; - const selectedOption = collateralAmountOptions.find( - (option) => option.value === selectedValue - ); - setSelectedCollateralAmountOption(selectedOption || null); - }; + function calculateCountdown(date: string) { + const targetDate = DateTime.fromISO(date); + const now = DateTime.now(); + const diff = targetDate.diff(now, ["days", "hours", "minutes", "seconds"]); + const countdown = `${Math.floor(diff.days)}d ${Math.floor(diff.hours)}h ${Math.floor(diff.minutes)}m ${Math.floor(diff.seconds)}s`; + return countdown; + } return ( @@ -59,37 +29,15 @@ const MarketModal = (props: MarketModalProps) => { Supply Loan position -
-
-

- Loan Period -

-
- -
-
-

- - - - + + + + - +
-======= --> - > -
- koryntia logo -
-

- Get Started -

-

- Select your wallet -

-

- Connecting your wallet is like “logging in” to Web3. Select your - wallet from the options to get started. -

-
- setAgreedToTermsOfServices(e.target.checked)} - /> - -
-
-
-
- {connectors - .slice(0, 4) - .filter( - (connector, index, self) => - self.findIndex((c) => c.name === connector.name) === index - ) - .map((connector) => ( - - ))}
diff --git a/src/app/component/my-positions/_components/card.tsx b/src/app/component/my-positions/_components/card.tsx index 431ed8d..046a7c0 100644 --- a/src/app/component/my-positions/_components/card.tsx +++ b/src/app/component/my-positions/_components/card.tsx @@ -6,6 +6,7 @@ import { TbCurrencyEthereum } from "react-icons/tb"; import Link from "next/link"; import { useRouter } from "next/navigation"; import Button from "../../elements/button/Button"; +import { getImage } from "@/shared/constant"; export type CardProps = { image: string; @@ -14,6 +15,7 @@ export type CardProps = { description: { by: string; collateral: string; + collateralToken?: string; }; bid: { amount: string | number; @@ -24,9 +26,6 @@ export type CardProps = { }; const Card: FC = ({ image, time, title, description, bid, liked, isLliquidation }) => { - const router = useRouter(); - - return ( = ({ image, time, title, description, bid, liked, isLl

{title}

By {description.by} - Collateral {description.collateral} +

+

+ Collateral: + {description.collateralToken && koryntia logo} + + {Number(description.collateral).toFixed(3)} {description.collateralToken}