From b4f106d2c341ea1ae000553c18636c00cad5e577 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Tue, 31 Dec 2019 10:45:25 -0500 Subject: [PATCH] remove udapp and executionContext from universal dapp ui --- src/app/tabs/runTab/model/blockchain.js | 4 ++++ src/app/udapp/run-tab.js | 2 +- src/app/ui/universal-dapp-ui.js | 20 ++++++++++++-------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/app/tabs/runTab/model/blockchain.js b/src/app/tabs/runTab/model/blockchain.js index 173f6c93e7..c59bdf0d63 100644 --- a/src/app/tabs/runTab/model/blockchain.js +++ b/src/app/tabs/runTab/model/blockchain.js @@ -306,6 +306,10 @@ class Blockchain { }) } + context () { + return (this.executionContext.isVM() ? 'memory' : 'blockchain') + } + } module.exports = Blockchain diff --git a/src/app/udapp/run-tab.js b/src/app/udapp/run-tab.js index f9cfc583bc..24171f6ab8 100644 --- a/src/app/udapp/run-tab.js +++ b/src/app/udapp/run-tab.js @@ -49,7 +49,7 @@ export class RunTab extends LibraryPlugin { } onActivationInternal () { - this.udappUI = new UniversalDAppUI(this.blockchain, this.udapp, this.logCallback, this.executionContext) + this.udappUI = new UniversalDAppUI(this.blockchain, this.logCallback) this.udapp.resetAPI({ getAddress: (cb) => { cb(null, $('#txorigin').val()) diff --git a/src/app/ui/universal-dapp-ui.js b/src/app/ui/universal-dapp-ui.js index 8b93a0fc8d..226df2393d 100644 --- a/src/app/ui/universal-dapp-ui.js +++ b/src/app/ui/universal-dapp-ui.js @@ -11,18 +11,17 @@ var css = require('../../universal-dapp-styles') var MultiParamManager = require('./multiParamManager') var remixLib = require('remix-lib') var txFormat = remixLib.execution.txFormat +var txHelper = remixLib.execution.txHelper var confirmDialog = require('./confirmDialog') var modalCustom = require('./modal-dialog-custom') var modalDialog = require('./modaldialog') var TreeView = require('./TreeView') -function UniversalDAppUI (blockchain, udapp, logCallback, executionContext) { +function UniversalDAppUI (blockchain, logCallback) { this.blockchain = blockchain - this.udapp = udapp this.logCallback = logCallback this.compilerData = {contractsDetails: {}} - this.executionContext = executionContext } function decodeResponseToTreeView (response, fnabi) { @@ -46,7 +45,7 @@ UniversalDAppUI.prototype.renderInstance = function (contract, address, contract if (noInstances) { noInstances.parentNode.removeChild(noInstances) } - var abi = this.udapp.getABI(contract) + const abi = txHelper.sortAbiFunction(contract.abi) return this.renderInstanceFromABI(abi, address, contractName) } @@ -55,11 +54,10 @@ UniversalDAppUI.prototype.renderInstance = function (contract, address, contract // basically this has to be called for the "atAddress" (line 393) and when a contract creation succeed // this returns a DOM element UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address, contractName) { - var self = this address = (address.slice(0, 2) === '0x' ? '' : '0x') + address.toString('hex') address = ethJSUtil.toChecksumAddress(address) var instance = yo`
` - var context = self.udapp.context() + const context = this.blockchain.context() var shortAddress = helper.shortenAddress(address) var title = yo` @@ -111,7 +109,8 @@ UniversalDAppUI.prototype.renderInstanceFromABI = function (contractABI, address instance.appendChild(contractActionsWrapper) // Add the fallback function - var fallback = self.udapp.getFallbackInterface(contractABI) + const fallback = txHelper.getFallbackInterface(contractABI) + if (fallback) { contractActionsWrapper.appendChild(this.getCallButton({ funABI: fallback, @@ -226,9 +225,14 @@ UniversalDAppUI.prototype.getCallButton = function (args) { self.blockchain.runOrCallContractMethod(args.contractName, args.contractAbi, args.funABI, inputsValues, args.address, callType, lookupOnly, logMsg, self.logCallback, outputCb, confirmationCb, continueCb, promptCb) } + let inputs = '' + if (args.funABI.inputs) { + inputs = txHelper.inputParametersDeclarationToString(args.funABI.inputs) + } + const multiParamManager = new MultiParamManager(lookupOnly, args.funABI, (valArray, inputsValues, domEl) => { clickButton(valArray, inputsValues, domEl) - }, self.udapp.getInputs(args.funABI)) + }, inputs) const contractActionsContainer = yo`
${multiParamManager.render()}
` contractActionsContainer.appendChild(outputOverride)