Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
e125ba10
Commit
e125ba10
authored
Jul 20, 2021
by
ioedeveloper
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed old compileTab and contractParser files
parent
be8ee683
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
257 deletions
+0
-257
compileTab.js
apps/remix-ide/src/app/tabs/compileTab/compileTab.js
+0
-135
contractParser.js
apps/remix-ide/src/app/tabs/compileTab/contractParser.js
+0
-122
No files found.
apps/remix-ide/src/app/tabs/compileTab/compileTab.js
deleted
100644 → 0
View file @
be8ee683
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'
,
methods
:
[
'getCompilerState'
],
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
}
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
.
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
)
}
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
)
}
/**
* Set the compiler to using Solidity or Yul (default to Solidity)
* @params lang {'Solidity' | 'Yul'} ...
*/
setLanguage
(
lang
)
{
this
.
compiler
.
set
(
'language'
,
lang
)
}
getCompilerState
()
{
return
this
.
compiler
.
state
}
/**
* 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
}
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
apps/remix-ide/src/app/tabs/compileTab/contractParser.js
deleted
100644 → 0
View file @
be8ee683
'use strict'
var
solcTranslate
=
require
(
'solc/translate'
)
var
remixLib
=
require
(
'@remix-project/remix-lib'
)
var
txHelper
=
remixLib
.
execution
.
txHelper
module
.
exports
=
(
contractName
,
contract
,
compiledSource
)
=>
{
return
getDetails
(
contractName
,
contract
,
compiledSource
)
}
var
getDetails
=
function
(
contractName
,
contract
,
source
)
{
var
detail
=
{}
detail
.
name
=
contractName
detail
.
metadata
=
contract
.
metadata
if
(
contract
.
evm
.
bytecode
.
object
)
{
detail
.
bytecode
=
contract
.
evm
.
bytecode
.
object
}
detail
.
abi
=
contract
.
abi
if
(
contract
.
evm
.
bytecode
.
object
)
{
detail
.
bytecode
=
contract
.
evm
.
bytecode
detail
.
web3Deploy
=
gethDeploy
(
contractName
.
toLowerCase
(),
contract
.
abi
,
contract
.
evm
.
bytecode
.
object
)
detail
.
metadataHash
=
retrieveMetadataHash
(
contract
.
evm
.
bytecode
.
object
)
if
(
detail
.
metadataHash
)
{
detail
.
swarmLocation
=
'bzzr://'
+
detail
.
metadataHash
}
}
detail
.
functionHashes
=
{}
for
(
var
fun
in
contract
.
evm
.
methodIdentifiers
)
{
detail
.
functionHashes
[
contract
.
evm
.
methodIdentifiers
[
fun
]]
=
fun
}
detail
.
gasEstimates
=
formatGasEstimates
(
contract
.
evm
.
gasEstimates
)
detail
.
devdoc
=
contract
.
devdoc
detail
.
userdoc
=
contract
.
userdoc
if
(
contract
.
evm
.
deployedBytecode
&&
contract
.
evm
.
deployedBytecode
.
object
.
length
>
0
)
{
detail
[
'Runtime Bytecode'
]
=
contract
.
evm
.
deployedBytecode
}
if
(
source
&&
contract
.
assembly
!==
null
)
{
detail
.
Assembly
=
solcTranslate
.
prettyPrintLegacyAssemblyJSON
(
contract
.
evm
.
legacyAssembly
,
source
.
content
)
}
return
detail
}
var
retrieveMetadataHash
=
function
(
bytecode
)
{
var
match
=
/a165627a7a72305820
([
0-9a-f
]{64})
0029$/
.
exec
(
bytecode
)
if
(
!
match
)
{
match
=
/a265627a7a72305820
([
0-9a-f
]{64})
6c6578706572696d656e74616cf50037$/
.
exec
(
bytecode
)
}
if
(
match
)
{
return
match
[
1
]
}
}
var
gethDeploy
=
function
(
contractName
,
jsonInterface
,
bytecode
)
{
var
code
=
''
var
funABI
=
txHelper
.
getConstructorInterface
(
jsonInterface
)
funABI
.
inputs
.
forEach
(
function
(
inp
)
{
code
+=
'var '
+
inp
.
name
+
' = /* var of type '
+
inp
.
type
+
' here */ ;
\
n'
})
contractName
=
contractName
.
replace
(
/
[
:.
/]
/g
,
'_'
)
code
+=
'var '
+
contractName
+
'Contract = new web3.eth.Contract('
+
JSON
.
stringify
(
jsonInterface
).
replace
(
'
\
n'
,
''
)
+
');'
+
'
\
nvar '
+
contractName
+
' = '
+
contractName
+
'Contract.deploy({'
+
"
\
n data: '0x"
+
bytecode
+
"', "
+
'
\
n arguments: ['
funABI
.
inputs
.
forEach
(
function
(
inp
)
{
code
+=
'
\
n '
+
inp
.
name
+
','
})
code
+=
'
\
n ]'
+
'
\
n}).send({'
+
'
\
n from: web3.eth.accounts[0], '
+
"
\
n gas: '4700000'"
+
'
\
n }, function (e, contract){'
+
'
\
n console.log(e, contract);'
+
"
\
n if (typeof contract.address !== 'undefined') {"
+
"
\
n console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);"
+
'
\
n }'
+
'
\
n })'
return
code
}
var
formatGasEstimates
=
function
(
data
)
{
if
(
!
data
)
return
{}
if
(
data
.
creation
===
undefined
&&
data
.
external
===
undefined
&&
data
.
internal
===
undefined
)
return
{}
var
gasToText
=
function
(
g
)
{
return
g
===
null
?
'unknown'
:
g
}
var
ret
=
{}
var
fun
if
(
'creation'
in
data
)
{
ret
.
Creation
=
data
.
creation
}
if
(
'external'
in
data
)
{
ret
.
External
=
{}
for
(
fun
in
data
.
external
)
{
ret
.
External
[
fun
]
=
gasToText
(
data
.
external
[
fun
])
}
}
if
(
'internal'
in
data
)
{
ret
.
Internal
=
{}
for
(
fun
in
data
.
internal
)
{
ret
.
Internal
[
fun
]
=
gasToText
(
data
.
internal
[
fun
])
}
}
return
ret
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment