diff --git a/.eslintrc.js b/.eslintrc.js index f5746a21f..d2f28d9c4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,6 +7,7 @@ module.exports = { sourceType: 'module', }, env: { + 'es2020': true, 'browser': true, 'es2021': true, 'amd': true, @@ -35,7 +36,6 @@ module.exports = { 'comma-dangle': ['error', 'always-multiline'], 'indent': ['error', 4], 'quotes': ['error', 'single'], - 'max-len': ['error', { 'code': 120 }], 'eol-last': ['error', 'always'], 'object-curly-spacing': ['error', 'always'], 'array-bracket-spacing': ['error', 'never'], @@ -55,7 +55,8 @@ module.exports = { }], 'no-return-assign': ['error', 'always'], 'no-param-reassign': 'error', - + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': ['error'], 'vue/html-indent': ['warn', 4, { 'baseIndent': 0 }], 'vue/max-attributes-per-line': ['warn', { diff --git a/.gitignore b/.gitignore index c53a8a538..cfc0e8afc 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,9 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +# Locks +yarn.lock + # Editor directories and files .idea *.suo diff --git a/env.js b/env.js index 7fc74a2ee..f1df1cf4a 100644 --- a/env.js +++ b/env.js @@ -25,9 +25,11 @@ const TESTNET = { HYPERION_ENDPOINT: 'https://testnet.telos.net', NETWORK_EXPLORER: 'https://explorer-test.telos.net', TELOS_API_ENDPOINT: 'https://api-dev.telos.net/v1', //'http://localhost:9999/v1', //for local instance of api + INDEXER_API_ENDPOINT: 'https://api.testnet.teloscan.io/v1', VERIFIED_CONTRACTS_BUCKET: 'verified-evm-contracts-testnet', STAKED_TLOS_CONTRACT_ADDRESS: '0xa9991E4daA44922D00a78B6D986cDf628d46C4DD', TELOS_ESCROW_CONTRACT_ADDRESS: '0x7E9cF9fBc881652B05BB8F26298fFAB538163b6f', + MULTICALL_CONTRACT_ADDRESS: '0x39b0CF441E616e4e21a5f7b37c9CE0Ca750bd05B', OREID_APP_ID: 't_1e0417d2456e401893ec106e5e4c6314', OREID_APP_ID_NATIVE: 't_a61e9926d5204387a9ac113dfce7cbc5', }; @@ -45,10 +47,12 @@ const MAINNET = { NETWORK_EVM_NAME: 'telos-evm', HYPERION_ENDPOINT: 'https://mainnet.telos.net', NETWORK_EXPLORER: 'https://explorer.telos.net', - TELOS_API_ENDPOINT: 'https://api.telos.net/v1', //'http://localhost:9999/v1', //for local instance of api + TELOS_API_ENDPOINT: 'https://api.telos.net/v1', //'http://localhost:9999/v1', //for local instance of api + INDEXER_API_ENDPOINT: 'https://api.teloscan.io/v1', VERIFIED_CONTRACTS_BUCKET: 'verified-evm-contracts', STAKED_TLOS_CONTRACT_ADDRESS: '0xB4B01216a5Bc8F1C8A33CD990A1239030E60C905', TELOS_ESCROW_CONTRACT_ADDRESS: '0x95F5713A1422Aa3FBD3DCB8D553945C128ee3855', + MULTICALL_CONTRACT_ADDRESS: '0xdDCbf776dF3dE60163066A5ddDF2277cB445E0F3', OREID_APP_ID: 'p_b5cfbadeb17a44bdaf01e73b3120d202', OREID_APP_ID_NATIVE: 'p_751f87258d5b40998b55c626d612fd4e', }; diff --git a/package.json b/package.json index e70f1ac4c..5562a09bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "teloscan", - "version": "1.4.8", + "version": "1.5.0", "description": "Teloscan block explorer", "productName": "Teloscan", "author": "Jesse Schulman ", @@ -37,9 +37,11 @@ "fs": "^0.0.1-security", "highlight.js": "10", "highlightjs-solidity": "^2.0.3", + "js-big-decimal": "^1.4.1", "moment": "^2.29.4", "oreid-js": "^4.7.1", "oreid-webpopup": "^2.4.0", + "qrious": "^4.0.2", "quasar": "2", "rxjs": "^7.8.0", "ual-anchor": "^1.0.0", @@ -48,9 +50,9 @@ "vue": "3", "vue-i18n": "^9.0.0", "vue-inline-svg": "^3.1.2", + "vue-json-pretty": "^2.2.4", "vue-json-viewer": "3", "vue-router": "4", - "vue3-click-away": "^1.2.4", "vuex": "4", "web3": "^4.0.1" }, @@ -60,6 +62,7 @@ "@babel/preset-env": "7.19.3", "@babel/preset-typescript": "^7.23.0", "@quasar/app-webpack": "3.6.2", + "@quasar/quasar-app-extension-qmediaplayer": "^2.0.0-beta.6", "@types/jest": "29.1.1", "@types/lodash": "^4.14.182", "@typescript-eslint/eslint-plugin": "^5.48.2", diff --git a/public/branding/stlos.png b/public/branding/stlos.png deleted file mode 100644 index e1bc8030b..000000000 Binary files a/public/branding/stlos.png and /dev/null differ diff --git a/public/branding/telos-logo-dark.svg b/public/branding/telos-logo-dark.svg deleted file mode 100644 index 881e57253..000000000 Binary files a/public/branding/telos-logo-dark.svg and /dev/null differ diff --git a/public/branding/telos-logo.svg b/public/branding/telos-logo.svg deleted file mode 100644 index 716843365..000000000 Binary files a/public/branding/telos-logo.svg and /dev/null differ diff --git a/public/branding/telos.png b/public/branding/telos.png new file mode 100644 index 000000000..2be9c2c7c Binary files /dev/null and b/public/branding/telos.png differ diff --git a/quasar.conf.js b/quasar.conf.js index a962062c9..df0aa4be3 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -44,7 +44,7 @@ module.exports = function(/* ctx */) { ], // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css - css: ['fonts/silka/silka.css', 'app.sass'], + css: ['fonts/silka/silka.css', 'app.scss'], // https://github.com/quasarframework/quasar/tree/dev/extras extras: [ @@ -70,6 +70,11 @@ module.exports = function(/* ctx */) { chain.plugin('node-polyfill').use(nodePolyfillWebpackPlugin); }, + scssLoaderOptions: { + additionalData: '@import "~src/css/global/global-index.scss";', + sourceMap: false, // prevent issue where changing style in devtools breaks page styles + }, + // transpile: false, // Add dependencies for transpiling with Babel (Array of string/regex) @@ -98,7 +103,14 @@ module.exports = function(/* ctx */) { framework: { iconSet: 'material-icons', // Quasar icon set lang: 'en-US', // Quasar language pack - config: {}, + config: { + brand: { + // brand colors + primary: '#8B3F98', + secondary: '#348DCC', + accent: '#73C58F', + }, + }, // Possible values for "importStrategy": // * 'auto' - (DEFAULT) Auto-import needed Quasar components & directives @@ -118,7 +130,7 @@ module.exports = function(/* ctx */) { // animations: 'all', // --- includes all animations // https://quasar.dev/options/animations - animations: [], + animations: ['fadeIn', 'fadeOut'], // https://quasar.dev/quasar-cli/developing-ssr/configuring-ssr ssr: { diff --git a/quasar.extensions.json b/quasar.extensions.json index 7a73a41bf..9cef7b836 100644 --- a/quasar.extensions.json +++ b/quasar.extensions.json @@ -1,2 +1,3 @@ { + "@quasar/qmediaplayer": {} } \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 3c670a318..5829078c8 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,42 +1,77 @@ - - - diff --git a/src/components/ContractTab/GenericContractInterface.vue b/src/components/ContractTab/GenericContractInterface.vue index fd7321893..9b23fe378 100644 --- a/src/components/ContractTab/GenericContractInterface.vue +++ b/src/components/ContractTab/GenericContractInterface.vue @@ -1,331 +1,387 @@ -