Commit 1aa2e452 authored by Eswara Sai's avatar Eswara Sai

Initial commit to check for valid address

parent 938d03b6
...@@ -12,6 +12,7 @@ var copyToClipboard = require('../ui/copy-to-clipboard') ...@@ -12,6 +12,7 @@ var copyToClipboard = require('../ui/copy-to-clipboard')
var Recorder = require('../../recorder') var Recorder = require('../../recorder')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var addTooltip = require('../ui/tooltip') var addTooltip = require('../ui/tooltip')
var ethJSUtil = require('ethereumjs-util')
var csjs = require('csjs-inject') var csjs = require('csjs-inject')
var css = require('./styles/run-tab-styles') var css = require('./styles/run-tab-styles')
...@@ -311,6 +312,12 @@ function contractDropdown (events, appAPI, appEvents, instanceContainer) { ...@@ -311,6 +312,12 @@ function contractDropdown (events, appAPI, appEvents, instanceContainer) {
noInstancesText.style.display = 'none' noInstancesText.style.display = 'none'
var contractNames = document.querySelector(`.${css.contractNames.classNames[0]}`) var contractNames = document.querySelector(`.${css.contractNames.classNames[0]}`)
var address = atAddressButtonInput.value var address = atAddressButtonInput.value
if (!ethJSUtil.isValidAddress(address)) {
return modalDialogCustom.alert('Invalid address.')
}
if (/[a-f]/.test(address) && /[A-F]/.test(address) && !ethJSUtil.isValidChecksumAddress(address)) {
return modalDialogCustom.alert('Invalid checksum address.')
}
if (/.(.abi)$/.exec(appAPI.currentFile())) { if (/.(.abi)$/.exec(appAPI.currentFile())) {
modalDialogCustom.confirm(null, 'Do you really want to interact with ' + address + ' using the current ABI definition ?', () => { modalDialogCustom.confirm(null, 'Do you really want to interact with ' + address + ' using the current ABI definition ?', () => {
var abi var abi
......
'use strict' 'use strict'
var deepequal = require('deep-equal') var deepequal = require('deep-equal')
var ethJSUtil = require('ethereumjs-util')
module.exports = { module.exports = {
getCompiledContracts: getCompiledContracts, getCompiledContracts: getCompiledContracts,
...@@ -161,11 +162,16 @@ function setEditorValue (value, callback) { ...@@ -161,11 +162,16 @@ function setEditorValue (value, callback) {
return this return this
} }
function addInstance (browser, address, callback) { function addInstance(browser, address, isValidFormat, isValidChecksum, callback) {
browser.setValue('.ataddressinput', address, function () { browser.setValue('.ataddressinput', address, function () {
browser.click('div[class^="atAddress"]') browser.click('div[class^="atAddress"]')
.perform((client, done) => { .perform((client, done) => {
browser.execute(function () { browser.execute(function () {
if (!isValidFormat) {
browser.assert.fail(document.querySelector('div[class^="modalBody"] div').innerHTML, 'Invalid address.', '')
} else if (!isValidChecksum) {
browser.assert.fail(document.querySelector('div[class^="modalBody"] div').innerHTML, 'Invalid checksum address.', '')
}
document.querySelector('#modal-footer-ok').click() document.querySelector('#modal-footer-ok').click()
}, [], function (result) { }, [], function (result) {
done() done()
......
...@@ -72,8 +72,14 @@ function runTests (browser, testData) { ...@@ -72,8 +72,14 @@ function runTests (browser, testData) {
}) })
}) })
.perform((client, done) => { .perform((client, done) => {
console.log('addInstance 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a') console.log('addInstance invalid checksum address 0x692a70d2e424a56d2c6c27aa97d1a86395877b3a')
contractHelper.addInstance(browser, '0x692a70d2e424a56d2c6c27aa97d1a86395877b3a', () => { contractHelper.addInstance(browser, '0x692a70d2e424a56d2c6c27aa97d1a86395877b3a', true, false, () => {
done()
})
})
.perform((client, done) => {
console.log('addInstance 0x692a70D2e424a56D2C6C27aA97D1a86395877b3A')
contractHelper.addInstance(browser, '0x692a70D2e424a56D2C6C27aA97D1a86395877b3A', true, true, () => {
done() done()
}) })
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment