Fixed uncaught error when clicking solidity icon from homepage

pull/1339/head
ioedeveloper 3 years ago
parent 8ae133e442
commit 071f0bdf65
  1. 48
      apps/remix-ide/src/app/tabs/compile-tab.js
  2. 234
      apps/remix-ide/src/app/tabs/compileTab/compileTab.js
  3. 2
      libs/remix-ui/publish-to-storage/src/index.ts
  4. 2
      libs/remix-ui/solidity-compiler/src/index.ts
  5. 40
      libs/remix-ui/solidity-compiler/src/lib/actions/compiler.ts
  6. 54
      libs/remix-ui/solidity-compiler/src/lib/compileTabLogic.ts
  7. 40
      libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx
  8. 2
      libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx
  9. 52
      libs/remix-ui/solidity-compiler/src/lib/reducers/compiler.ts
  10. 18
      libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx
  11. 3
      libs/remix-ui/solidity-compiler/src/lib/types/index.ts
  12. 10
      tsconfig.json

@ -1,4 +1,7 @@
/* global */
import React from 'react' // eslint-disable-line
import ReactDOM from 'react-dom'
import { SolidityCompiler } from '@remix-ui/solidity-compiler' // eslint-disable-line
import { ViewPlugin } from '@remixproject/engine-web'
import * as packageJson from '../../../../../package.json'
import publishToStorage from '../../publishToStorage'
@ -19,9 +22,7 @@ const Renderer = require('../ui/renderer')
const globalRegistry = require('../../global/registry')
var css = require('./styles/compile-tab-styles')
const CompileTabLogic = require('./compileTab/compileTab.js')
const CompilerContainer = require('./compileTab/compilerContainer.js')
// const CompilerContainer = require('./compileTab/compilerContainer.js')
const profile = {
name: 'solidity',
@ -73,18 +74,11 @@ class CompileTab extends ViewPlugin {
this.fileProvider,
this.contentImport
)
}
onActivationInternal () {
this.compiler = this.compileTabLogic.compiler
this.compileTabLogic.init()
this.compilerContainer = new CompilerContainer(
this.compileTabLogic,
this.editor,
this.config,
this.queryParams
)
this.el = document.createElement('div')
this.el.setAttribute('id', 'compileTabView')
}
resetResults () {
@ -490,19 +484,23 @@ class CompileTab extends ViewPlugin {
}
render () {
if (this._view.el) return this._view.el
this.onActivationInternal()
this._view.errorContainer = yo`<div class="${css.errorBlobs} p-4" data-id="compiledErrors" ></div>`
this._view.contractSelection = this.contractSelection()
this._view.compilerContainer = this.compilerContainer.render()
this.compilerContainer.activate()
this._view.el = yo`
<div id="compileTabView">
${this._view.compilerContainer}
${this._view.contractSelection}
${this._view.errorContainer}
</div>`
return this._view.el
this.renderComponent()
return this.el
}
renderComponent () {
ReactDOM.render(
<SolidityCompiler
editor={this.editor}
config={this.config}
fileProvider={this.fileProvider}
fileManager={this.fileManager}
contentImport={this.contentImport}
queryParams={this.queryParams}
plugin={this}
compileTabLogic={this.compileTabLogic}
/>
, this.el)
}
onActivation () {

@ -1,130 +1,130 @@
import * as packageJson from '../../../../../../package.json'
import { Plugin } from '@remixproject/engine'
const EventEmitter = require('events')
var Compiler = require('@remix-project/remix-solidity').Compiler
// import * as packageJson from '../../../../../../package.json'
// import { Plugin } from '@remixproject/engine'
// const EventEmitter = require('events')
// var Compiler = require('@remix-project/remix-solidity').Compiler
const profile = {
name: 'solidity-logic',
displayName: 'Solidity compiler logic',
description: 'Compile solidity contracts - Logic',
version: packageJson.version
}
// const profile = {
// name: 'solidity-logic',
// displayName: 'Solidity compiler logic',
// description: 'Compile solidity contracts - Logic',
// version: packageJson.version
// }
class CompileTab extends Plugin {
constructor (queryParams, fileManager, editor, config, fileProvider, contentImport) {
super(profile)
this.event = new EventEmitter()
this.queryParams = queryParams
this.compilerImport = contentImport
this.compiler = new Compiler((url, cb) => this.compilerImport.resolveAndSave(url).then((result) => cb(null, result)).catch((error) => cb(error.message)))
this.fileManager = fileManager
this.editor = editor
this.config = config
this.fileProvider = fileProvider
}
// class CompileTab extends Plugin {
// constructor (queryParams, fileManager, editor, config, fileProvider, contentImport) {
// super(profile)
// this.event = new EventEmitter()
// this.queryParams = queryParams
// this.compilerImport = contentImport
// this.compiler = new Compiler((url, cb) => this.compilerImport.resolveAndSave(url).then((result) => cb(null, result)).catch((error) => cb(error.message)))
// this.fileManager = fileManager
// this.editor = editor
// this.config = config
// this.fileProvider = fileProvider
// }
init () {
this.optimize = this.queryParams.get().optimize
this.optimize = this.optimize === 'true'
this.queryParams.update({ optimize: this.optimize })
this.compiler.set('optimize', this.optimize)
// init () {
// this.optimize = this.queryParams.get().optimize
// this.optimize = this.optimize === 'true'
// this.queryParams.update({ optimize: this.optimize })
// this.compiler.set('optimize', this.optimize)
this.runs = this.queryParams.get().runs
this.runs = this.runs || 200
this.queryParams.update({ runs: this.runs })
this.compiler.set('runs', this.runs)
// this.runs = this.queryParams.get().runs
// this.runs = this.runs || 200
// this.queryParams.update({ runs: this.runs })
// this.compiler.set('runs', this.runs)
this.evmVersion = this.queryParams.get().evmVersion
if (this.evmVersion === 'undefined' || this.evmVersion === 'null' || !this.evmVersion) {
this.evmVersion = null
}
this.queryParams.update({ evmVersion: this.evmVersion })
this.compiler.set('evmVersion', this.evmVersion)
}
// this.evmVersion = this.queryParams.get().evmVersion
// if (this.evmVersion === 'undefined' || this.evmVersion === 'null' || !this.evmVersion) {
// this.evmVersion = null
// }
// this.queryParams.update({ evmVersion: this.evmVersion })
// this.compiler.set('evmVersion', this.evmVersion)
// }
setOptimize (newOptimizeValue) {
this.optimize = newOptimizeValue
this.queryParams.update({ optimize: this.optimize })
this.compiler.set('optimize', this.optimize)
}
// setOptimize (newOptimizeValue) {
// this.optimize = newOptimizeValue
// this.queryParams.update({ optimize: this.optimize })
// this.compiler.set('optimize', this.optimize)
// }
setRuns (runs) {
this.runs = runs
this.queryParams.update({ runs: this.runs })
this.compiler.set('runs', this.runs)
}
// setRuns (runs) {
// this.runs = runs
// this.queryParams.update({ runs: this.runs })
// this.compiler.set('runs', this.runs)
// }
setEvmVersion (newEvmVersion) {
this.evmVersion = newEvmVersion
this.queryParams.update({ evmVersion: this.evmVersion })
this.compiler.set('evmVersion', this.evmVersion)
}
// setEvmVersion (newEvmVersion) {
// this.evmVersion = newEvmVersion
// this.queryParams.update({ evmVersion: this.evmVersion })
// this.compiler.set('evmVersion', this.evmVersion)
// }
/**
* Set the compiler to using Solidity or Yul (default to Solidity)
* @params lang {'Solidity' | 'Yul'} ...
*/
setLanguage (lang) {
this.compiler.set('language', lang)
}
// /**
// * Set the compiler to using Solidity or Yul (default to Solidity)
// * @params lang {'Solidity' | 'Yul'} ...
// */
// setLanguage (lang) {
// this.compiler.set('language', lang)
// }
/**
* Compile a specific file of the file manager
* @param {string} target the path to the file to compile
*/
compileFile (target) {
if (!target) throw new Error('No target provided for compiliation')
const provider = this.fileManager.fileProviderOf(target)
if (!provider) throw new Error(`cannot compile ${target}. Does not belong to any explorer`)
return new Promise((resolve, reject) => {
provider.get(target, (error, content) => {
if (error) return reject(error)
const sources = { [target]: { content } }
this.event.emit('startingCompilation')
// setTimeout fix the animation on chrome... (animation triggered by 'staringCompilation')
setTimeout(() => { this.compiler.compile(sources, target); resolve() }, 100)
})
})
}
// /**
// * Compile a specific file of the file manager
// * @param {string} target the path to the file to compile
// */
// compileFile (target) {
// if (!target) throw new Error('No target provided for compiliation')
// const provider = this.fileManager.fileProviderOf(target)
// if (!provider) throw new Error(`cannot compile ${target}. Does not belong to any explorer`)
// return new Promise((resolve, reject) => {
// provider.get(target, (error, content) => {
// if (error) return reject(error)
// const sources = { [target]: { content } }
// this.event.emit('startingCompilation')
// // setTimeout fix the animation on chrome... (animation triggered by 'staringCompilation')
// setTimeout(() => { this.compiler.compile(sources, target); resolve() }, 100)
// })
// })
// }
async isHardhatProject () {
if (this.fileManager.mode === 'localhost') {
return await this.fileManager.exists('hardhat.config.js')
} else return false
}
// async isHardhatProject () {
// if (this.fileManager.mode === 'localhost') {
// return await this.fileManager.exists('hardhat.config.js')
// } else return false
// }
runCompiler (hhCompilation) {
try {
if (this.fileManager.mode === 'localhost' && hhCompilation) {
const { currentVersion, optimize, runs } = this.compiler.state
if (currentVersion) {
const fileContent = `module.exports = {
solidity: '${currentVersion.substring(0, currentVersion.indexOf('+commit'))}',
settings: {
optimizer: {
enabled: ${optimize},
runs: ${runs}
}
}
}
`
const configFilePath = 'remix-compiler.config.js'
this.fileManager.setFileContent(configFilePath, fileContent)
this.call('hardhat', 'compile', configFilePath).then((result) => {
this.call('terminal', 'log', { type: 'info', value: result })
}).catch((error) => {
this.call('terminal', 'log', { type: 'error', value: error })
})
}
}
this.fileManager.saveCurrentFile()
this.event.emit('removeAnnotations')
var currentFile = this.config.get('currentFile')
return this.compileFile(currentFile)
} catch (err) {
console.error(err)
}
}
}
// runCompiler (hhCompilation) {
// try {
// if (this.fileManager.mode === 'localhost' && hhCompilation) {
// const { currentVersion, optimize, runs } = this.compiler.state
// if (currentVersion) {
// const fileContent = `module.exports = {
// solidity: '${currentVersion.substring(0, currentVersion.indexOf('+commit'))}',
// settings: {
// optimizer: {
// enabled: ${optimize},
// runs: ${runs}
// }
// }
// }
// `
// const configFilePath = 'remix-compiler.config.js'
// this.fileManager.setFileContent(configFilePath, fileContent)
// this.call('hardhat', 'compile', configFilePath).then((result) => {
// this.call('terminal', 'log', { type: 'info', value: result })
// }).catch((error) => {
// this.call('terminal', 'log', { type: 'error', value: error })
// })
// }
// }
// this.fileManager.saveCurrentFile()
// this.event.emit('removeAnnotations')
// var currentFile = this.config.get('currentFile')
// return this.compileFile(currentFile)
// } catch (err) {
// console.error(err)
// }
// }
// }
module.exports = CompileTab
// module.exports = CompileTab

@ -1 +1 @@
export * from './lib/remix-ui-publish-to-storage';
export * from './lib/publish-to-storage'

@ -1 +1 @@
export * from './lib/remix-ui-solidity-compiler';
export * from './lib/solidity-compiler'

@ -0,0 +1,40 @@
import React from 'react'
const queuedEvents = []
const pendingEvents = {}
let provider = null
let plugin = null
let dispatch: React.Dispatch<any> = null
export const fetchCompilerError = (error: any) => {
return {
type: 'FETCH_COMPILER_ERROR',
payload: error
}
}
export const fetchCompilerRequest = (promise: Promise<any>) => {
return {
type: 'FETCH_COMPILER_REQUEST',
payload: promise
}
}
export const fetchCompilerSuccess = (compiler) => {
return {
type: 'FETCH_COMPILER_SUCCESS',
payload: compiler
}
}
export const fetchCompiler = (provider, path: string) => (dispatch: React.Dispatch<any>) => {
const promise = fetchDirectoryContent(provider, path)
dispatch(fetchDirectoryRequest(promise))
promise.then((files) => {
dispatch(fetchDirectorySuccess(path, files))
}).catch((error) => {
dispatch(fetchDirectoryError({ error }))
})
return promise
}

@ -1,14 +1,25 @@
var Compiler = require('@remix-project/remix-solidity').Compiler
import { Plugin } from '@remixproject/engine'
export default class CompileTab {
const packageJson = require('../../../../../package.json')
const Compiler = require('@remix-project/remix-solidity').Compiler
const EventEmitter = require('events')
const profile = {
name: 'solidity-logic',
displayName: 'Solidity compiler logic',
description: 'Compile solidity contracts - Logic',
version: packageJson.version
}
export default class CompileTab extends Plugin {
public compiler
public optimize
public runs: number
public evmVersion: string
public compilerImport
public event
constructor (public queryParams, public fileManager, public editor, public config, public fileProvider, public contentImport, public miscApi) {
// this.event = new EventEmitter()
constructor (public queryParams, public fileManager, public editor, public config, public fileProvider, public contentImport) {
super(profile)
this.event = new EventEmitter()
this.compiler = new Compiler((url, cb) => this.compilerImport.resolveAndSave(url).then((result) => cb(null, result)).catch((error) => cb(error.message)))
}
@ -64,23 +75,50 @@ export default class CompileTab {
compileFile (target) {
if (!target) throw new Error('No target provided for compiliation')
const provider = this.fileManager.fileProviderOf(target)
if (!provider) throw new Error(`cannot compile ${target}. Does not belong to any explorer`)
return new Promise((resolve, reject) => {
provider.get(target, (error, content) => {
if (error) return reject(error)
const sources = { [target]: { content } }
// this.event.emit('startingCompilation')
this.event.emit('startingCompilation')
// setTimeout fix the animation on chrome... (animation triggered by 'staringCompilation')
setTimeout(() => { this.compiler.compile(sources, target); resolve(true) }, 100)
})
})
}
runCompiler () {
async isHardhatProject () {
if (this.fileManager.mode === 'localhost') {
return await this.fileManager.exists('hardhat.config.js')
} else return false
}
runCompiler (hhCompilation) {
try {
if (this.fileManager.mode === 'localhost' && hhCompilation) {
const { currentVersion, optimize, runs } = this.compiler.state
if (currentVersion) {
const fileContent = `module.exports = {
solidity: '${currentVersion.substring(0, currentVersion.indexOf('+commit'))}',
settings: {
optimizer: {
enabled: ${optimize},
runs: ${runs}
}
}
}
`
const configFilePath = 'remix-compiler.config.js'
this.fileManager.setFileContent(configFilePath, fileContent)
this.call('hardhat', 'compile', configFilePath).then((result) => {
this.call('terminal', 'log', { type: 'info', value: result })
}).catch((error) => {
this.call('terminal', 'log', { type: 'error', value: error })
})
}
}
this.fileManager.saveCurrentFile()
this.miscApi.clearAnnotations()
this.event.emit('removeAnnotations')
var currentFile = this.config.get('currentFile')
return this.compileFile(currentFile)
} catch (err) {

@ -16,7 +16,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
timeout: 300,
allversions: [],
selectedVersion: null,
defaultVersion: 'soljson-v0.7.4+commit.3f05b770.js', // this default version is defined: in makeMockCompiler (for browser test)
defaultVersion: 'soljson-v0.8.4+commit.c7e474f2.js', // this default version is defined: in makeMockCompiler (for browser test)
selectedLanguage: '',
runs: '',
compiledFileName: '',
@ -38,7 +38,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
setState(prevState => {
return { ...prevState, selectedVersion }
})
// if (this._view.versionSelector) this._updateVersionSelector()
_updateVersionSelector()
}
})
}, [])
@ -48,7 +48,13 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
compileTabLogic.compiler.event.register('compilerLoaded', compilerLoaded)
setState(prevState => {
return { ...prevState, hideWarnings: config.get('hideWarnings'), autoCompile: config.get('autoCompile'), optimise: config.get('optimise') }
return {
...prevState,
hideWarnings: config.get('hideWarnings') || false,
autoCompile: config.get('autoCompile') || false,
optimise: config.get('optimise') || false,
includeNightlies: config.get('includeNightlies') || false
}
})
}
}, [compileTabLogic])
@ -286,7 +292,6 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
if (!location.endsWith('/')) location += '/'
url = location + 'soljson.js'
} else {
console.log('selectedVersion: ', selectedVersion)
if (selectedVersion.indexOf('soljson') !== 0 || helper.checkSpecialChars(selectedVersion)) {
return console.log('loading ' + selectedVersion + ' not allowed')
}
@ -406,9 +411,12 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
})
}
const handleNightliesChange = () => {
const handleNightliesChange = (e) => {
const checked = e.target.checked
config.set('includeNightlies', checked)
setState(prevState => {
return { ...prevState, includeNightlies: !prevState.includeNightlies }
return { ...prevState, includeNightlies: checked }
})
}
@ -441,19 +449,19 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
Compiler
<button className="far fa-plus-square border-0 p-0 mx-2 btn-sm" onClick={promtCompiler} title="Add a custom compiler with URL"></button>
</label>
<select onChange={(e) => handleLoadVersion(e.target.value) } className="custom-select" id="versionSelector" disabled={state.allversions.length <= 0}>
{ state.allversions.length <= 0 && <option disabled selected>{ state.defaultVersion }</option> }
<select defaultValue={ state.selectedVersion || state.defaultVersion } onChange={(e) => handleLoadVersion(e.target.value) } className="custom-select" id="versionSelector" disabled={state.allversions.length <= 0}>
{ state.allversions.length <= 0 && <option disabled>{ state.defaultVersion }</option> }
{ state.allversions.length <= 0 && <option disabled>builtin</option> }
{ state.allversions.map((build, i) => {
return _shouldBeAdded(build.longVersion)
? <option key={i} value={build.path} selected={build.path === state.selectedVersion}>{build.longVersion}</option>
? <option key={i} value={build.path}>{build.longVersion}</option>
: null
})
}
</select>
</div>
<div className="mb-2 remixui_nightlyBuilds custom-control custom-checkbox">
<input className="mr-2 custom-control-input" id="nightlies" type="checkbox" onChange={handleNightliesChange} />
<input className="mr-2 custom-control-input" id="nightlies" type="checkbox" onChange={handleNightliesChange} checked={state.includeNightlies} />
<label htmlFor="nightlies" className="form-check-label custom-control-label">Include nightly builds</label>
</div>
<div className="mb-2">
@ -480,28 +488,28 @@ export const CompilerContainer = (props: CompilerContainerProps) => {
<div className="mt-3">
<p className="mt-2 remixui_compilerLabel">Compiler Configuration</p>
<div className="mt-2 remixui_compilerConfig custom-control custom-checkbox">
<input className="remixui_autocompile custom-control-input" onChange={handleAutoCompile} data-id="compilerContainerAutoCompile" id="autoCompile" type="checkbox" title="Auto compile" checked={state.autoCompile} />
<input className="remixui_autocompile custom-control-input" type="checkbox" onChange={handleAutoCompile} data-id="compilerContainerAutoCompile" id="autoCompile" title="Auto compile" checked={state.autoCompile} />
<label className="form-check-label custom-control-label" htmlFor="autoCompile">Auto compile</label>
</div>
<div className="mt-2 remixui_compilerConfig custom-control custom-checkbox">
<div className="justify-content-between align-items-center d-flex">
<input onChange={handleOptimizeChange} className="custom-control-input" id="optimize" type="checkbox" checked={state.optimise} />
{/* <input onChange={handleOptimizeChange} className="custom-control-input" id="optimize" type="checkbox" checked={state.optimise} /> */}
<label className="form-check-label custom-control-label" htmlFor="optimize">Enable optimization</label>
<input
{/* <input
min="1"
className="custom-select ml-2 remixui_runs"
id="runs"
placeholder="200"
value="200"
defaultValue="200"
type="number"
title="Estimated number of times each opcode of the deployed code will be executed across the life-time of the contract."
onChange={onChangeRuns}
disabled={!state.optimise}
/>
/> */}
</div>
</div>
<div className="mt-2 remixui_compilerConfig custom-control custom-checkbox">
<input className="remixui_autocompile custom-control-input" onChange={handleHideWarningsChange} id="hideWarningsBox" type="checkbox" title="Hide warnings" checked={state.hideWarnings} />
{/* <input className="remixui_autocompile custom-control-input" onChange={handleHideWarningsChange} id="hideWarningsBox" type="checkbox" title="Hide warnings" checked={state.hideWarnings} /> */}
<label className="form-check-label custom-control-label" htmlFor="hideWarningsBox">Hide warnings</label>
</div>
</div>

@ -5,7 +5,7 @@ import { PublishToStorage } from '@remix-ui/publish-to-storage'
import './css/style.css'
export const ContractSelection = (props: ContractSelectionProps) => {
const { contractMap, fileManager, fileProvider } = props
const { contractMap } = props
const [state, setState] = useState({
contractList: null,
selectedContract: ''

@ -0,0 +1,52 @@
interface Action {
type: string;
payload: Record<string, any>;
}
export const compilerInitialState = {
compiler: {
compiler: null,
isRequesting: false,
isSuccessful: false,
error: null
}
}
export const compilerReducer = (state = compilerInitialState, action: Action) => {
switch (action.type) {
case 'FETCH_COMPILER_REQUEST': {
return {
...state,
compiler: action.payload,
isRequesting: true,
isSuccessful: false,
error: null
}
}
case 'FETCH_COMPILER_SUCCESS': {
return {
...state,
provider: {
...state,
compiler: action.payload,
isRequesting: false,
isSuccessful: true,
error: null
}
}
}
case 'FETCH_COMPILER_ERROR': {
return {
...state,
provider: {
...state,
isRequesting: false,
isSuccessful: false,
error: action.payload
}
}
}
default:
throw new Error()
}
}

@ -1,14 +1,13 @@
import React, { useState, useEffect } from 'react' // eslint-disable-line
import { SolidityCompilerProps } from './types'
import { CompilerContainer } from './compiler-container' // eslint-disable-line
import CompileTabLogic from './compileTabLogic'
import { Toaster } from '@remix-ui/toaster' // eslint-disable-line
import { ModalDialog } from '@remix-ui/modal-dialog' // eslint-disable-line
import './css/style.css'
export const SolidityCompiler = (props: SolidityCompilerProps) => {
const { editor, config, fileProvider, fileManager, contentImport, queryParams, plugin } = props
const { editor, config, queryParams, plugin, compileTabLogic } = props
const [state, setState] = useState({
contractsDetails: {},
eventHandlers: {},
@ -28,17 +27,6 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => {
}
})
useEffect(() => {
const miscApi = { clearAnnotations }
const compileTabLogic = new CompileTabLogic(queryParams, fileManager, editor, config, fileProvider, contentImport, miscApi)
const compiler = compileTabLogic.compiler
compileTabLogic.init()
setState(prevState => {
return { ...prevState, compileTabLogic, compiler }
})
}, [])
const toast = (message: string) => {
setState(prevState => {
return { ...prevState, toasterMsg: message }
@ -71,11 +59,11 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => {
return { ...prevState, modal: { ...state.modal, hide: true, message: null } }
})
}
// this.onActivationInternal()
return (
<>
<div id="compileTabView">
<CompilerContainer editor={editor} config={config} queryParams={queryParams} compileTabLogic={state.compileTabLogic} tooltip={toast} modal={modal} />
<CompilerContainer editor={editor} config={config} queryParams={queryParams} compileTabLogic={compileTabLogic} tooltip={toast} modal={modal} />
{/* ${this._view.contractSelection} */}
<div className="remixui_errorBlobs p-4" data-id="compiledErrors"></div>
</div>

@ -6,7 +6,8 @@ export interface SolidityCompilerProps {
fileManager: any,
contentImport: any,
plugin: any,
queryParams: any
queryParams: any,
compileTabLogic: any
}
export interface CompilerContainerProps {

@ -20,14 +20,10 @@
"@remix-project/remix-astwalker": ["dist/libs/remix-astwalker/index.js"],
"@remix-project/remix-debug": ["dist/libs/remix-debug/src/index.js"],
"@remix-project/remix-lib": ["dist/libs/remix-lib/src/index.js"],
"@remix-project/remix-simulator": [
"dist/libs/remix-simulator/src/index.js"
],
"@remix-project/remix-simulator": ["dist/libs/remix-simulator/src/index.js"],
"@remix-project/remix-solidity": ["dist/libs/remix-solidity/index.js"],
"@remix-project/remix-tests": ["dist/libs/remix-tests/src/index.js"],
"@remix-project/remix-url-resolver": [
"dist/libs/remix-url-resolver/index.js"
],
"@remix-project/remix-url-resolver": ["dist/libs/remix-url-resolver/index.js"],
"@remixproject/debugger-plugin": ["apps/debugger/src/index.ts"],
"@remix-project/remixd": ["dist/libs/remixd/index.js"],
"@remix-ui/tree-view": ["libs/remix-ui/tree-view/src/index.ts"],
@ -44,7 +40,7 @@
"@remix-ui/settings": ["libs/remix-ui/settings/src/index.ts"],
"@remix-project/core-plugin": ["libs/remix-core-plugin/src/index.ts"],
"@remix-ui/solidity-compiler": ["libs/remix-ui/solidity-compiler/src/index.ts"],
"@remix-project/publish-to-storage": ["libs/remix-ui/publish-to-storage/src/index.ts"]
"@remix-ui/publish-to-storage": ["libs/remix-ui/publish-to-storage/src/index.ts"]
}
},
"exclude": ["node_modules", "tmp"]

Loading…
Cancel
Save