diff --git a/package.json b/package.json index 1251d3d..dd4793a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rsk-explorer", - "version": "2.0.0", + "version": "2.0.1", "private": true, "description": "Rsk explorer client", "author": "emi ", @@ -8,14 +8,19 @@ "dev:mainnet": "env-cmd -f .env.mainnet npx vue-cli-service serve", "dev:testnet": "env-cmd -f .env.testnet npx vue-cli-service serve", "dev:staging": "env-cmd -f .env.staging npx vue-cli-service serve", + "dev:local": "env-cmd -f .env.local npx vue-cli-service serve", "dev-with-tracking:mainnet": "env-cmd -f .env.mainnet npx vue-cli-service serve src/main.with.tracking.js", "dev-with-tracking:testnet": "env-cmd -f .env.testnet npx vue-cli-service serve src/main.with.tracking.js", + "dev-with-tracking:staging": "env-cmd -f .env.staging npx vue-cli-service serve src/main.with.tracking.js", + "dev-with-tracking:local": "env-cmd -f .env.local npx vue-cli-service serve src/main.with.tracking.js", "build:mainnet": "env-cmd -f .env.mainnet npx vue-cli-service build --modern", "build:testnet": "env-cmd -f .env.testnet npx vue-cli-service build --modern", "build:staging": "env-cmd -f .env.staging npx vue-cli-service build --modern", + "build:local": "env-cmd -f .env.local npx vue-cli-service build --modern", "build-with-tracking:mainnet": "env-cmd -f .env.mainnet npx vue-cli-service build src/main.with.tracking.js --modern", "build-with-tracking:testnet": "env-cmd -f .env.testnet npx vue-cli-service build src/main.with.tracking.js --modern", "build-with-tracking:staging": "env-cmd -f .env.staging npx vue-cli-service build src/main.with.tracking.js --modern", + "build-with-tracking:local": "env-cmd -f .env.local npx vue-cli-service build src/main.with.tracking.js --modern", "test:unit": "npx vue-cli-service test:unit", "test:e2e": "npx vue-cli-service test:e2e", "lint": "npx vue-cli-service lint", diff --git a/src/components/ContractInteraction.vue b/src/components/ContractInteraction.vue index b053394..b67517e 100644 --- a/src/components/ContractInteraction.vue +++ b/src/components/ContractInteraction.vue @@ -343,6 +343,7 @@ export default { this.validateInputs(inputs, method) + // TODO: abstract inputs formatter method.inputs.forEach((input, index) => { const { type } = input @@ -352,6 +353,8 @@ export default { throw new Error('Invalid boolean input (possible values: true, false, 1, 0)') } else if (type.startsWith('uint') || type.startsWith('int')) { args[index] = this.formatBigNumber(args[index]) + } else if (type.includes('[]')) { + args[index] = this.parseArrayFromString(args[index]) } }) @@ -380,6 +383,7 @@ export default { const contract = this.getReadOnlyContractInstance() const args = inputs + // TODO: abstract inputs formatter method.inputs.forEach((input, index) => { const { type } = input @@ -388,6 +392,8 @@ export default { args[index] = this.normalizeAddress(args[index]) } else if (type === 'bool') { if (!this.isValidBoolean(args[index])) throw new Error('Invalid boolean input (possible values: true, false, 1, 0)') + } else if (type.includes('[]')) { + args[index] = this.parseArrayFromString(args[index]) } }) @@ -413,6 +419,11 @@ export default { this.$set(method.interactionData, 'requested', false) }, + parseArrayFromString (str) { + if (!str.startsWith('[') || !str.endsWith(']')) throw new Error('Value must be a valid array') + + return JSON.parse(str) + }, validateInputs (inputs, method) { const nonEmptyInputs = inputs.filter(input => input !== '' && input !== undefined && input !== null) diff --git a/src/jsonRpcProvider.js b/src/jsonRpcProvider.js index 44e1330..2e0ad9f 100644 --- a/src/jsonRpcProvider.js +++ b/src/jsonRpcProvider.js @@ -6,7 +6,7 @@ if (!['mainnet', 'testnet'].includes(envNetwork)) throw new Error(`Invalid env n export const rskNetworks = { mainnet: { - chainName: 'Rootstock Mainnet - RPC API', + chainName: 'Rootstock Mainnet', chainId: '0x1e', // 30 nativeCurrency: { name: 'Smart Bitcoin', @@ -22,7 +22,7 @@ export const rskNetworks = { ] }, testnet: { - chainName: 'Rootstock Testnet - RPC API', + chainName: 'Rootstock Testnet', chainId: '0x1f', // 31 nativeCurrency: { name: 'Test Smart Bitcoin',