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
dd2ba18e
Commit
dd2ba18e
authored
Mar 07, 2019
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix debugger
parent
ac6b8116
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
168 deletions
+12
-168
app.js
src/app.js
+0
-2
debuggerUI.js
src/app/debugger/debuggerUI.js
+12
-64
settings-tab.js
src/app/tabs/settings-tab.js
+0
-1
support-tab.js
src/app/tabs/support-tab.js
+0
-101
No files found.
src/app.js
View file @
dd2ba18e
...
...
@@ -46,7 +46,6 @@ const CompileTab = require('./app/tabs/compile-tab')
const
SettingsTab
=
require
(
'./app/tabs/settings-tab'
)
const
AnalysisTab
=
require
(
'./app/tabs/analysis-tab'
)
const
DebuggerTab
=
require
(
'./app/tabs/debugger-tab'
)
// const SupportTab = require('./app/tabs/support-tab')
const
TestTab
=
require
(
'./app/tabs/test-tab'
)
const
RunTab
=
require
(
'./app/tabs/run-tab'
)
const
FilePanel
=
require
(
'./app/panels/file-panel'
)
...
...
@@ -460,7 +459,6 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
let
analysis
=
new
AnalysisTab
(
registry
)
let
debug
=
new
DebuggerTab
()
const
landingPage
=
new
LandingPage
(
appManager
,
appStore
)
// let support = new SupportTab()
let
test
=
new
TestTab
(
registry
.
get
(
'filemanager'
).
api
,
registry
.
get
(
'filepanel'
).
api
,
...
...
src/app/debugger/debuggerUI.js
View file @
dd2ba18e
...
...
@@ -12,8 +12,6 @@ var executionContext = require('../../execution-context')
var
globalRegistry
=
require
(
'../../global/registry'
)
var
remixLib
=
require
(
'remix-lib'
)
var
Web3Providers
=
remixLib
.
vm
.
Web3Providers
var
DummyProvider
=
remixLib
.
vm
.
DummyProvider
var
init
=
remixLib
.
init
...
...
@@ -30,72 +28,12 @@ var css = csjs`
}
`
class
ContextManager
{
constructor
()
{
this
.
executionContext
=
executionContext
this
.
web3
=
this
.
executionContext
.
web3
()
this
.
event
=
new
EventManager
()
}
initProviders
()
{
this
.
web3Providers
=
new
Web3Providers
()
this
.
addProvider
(
'DUMMYWEB3'
,
new
DummyProvider
())
this
.
switchProvider
(
'DUMMYWEB3'
)
this
.
addProvider
(
'vm'
,
this
.
executionContext
.
vm
())
this
.
addProvider
(
'injected'
,
this
.
executionContext
.
internalWeb3
())
this
.
addProvider
(
'web3'
,
this
.
executionContext
.
internalWeb3
())
this
.
switchProvider
(
this
.
executionContext
.
getProvider
())
}
getWeb3
()
{
return
this
.
web3
}
addProvider
(
type
,
obj
)
{
this
.
web3Providers
.
addProvider
(
type
,
obj
)
this
.
event
.
trigger
(
'providerAdded'
,
[
type
])
}
switchProvider
(
type
)
{
var
self
=
this
this
.
web3Providers
.
get
(
type
,
function
(
error
,
obj
)
{
if
(
error
)
{
console
.
log
(
'provider '
+
type
+
' not defined'
)
}
else
{
self
.
web3
=
obj
self
.
executionContext
.
detectNetwork
((
error
,
network
)
=>
{
if
(
error
||
!
network
)
{
self
.
web3
=
obj
}
else
{
var
webDebugNode
=
init
.
web3DebugNode
(
network
.
name
)
self
.
web3
=
(
!
webDebugNode
?
obj
:
webDebugNode
)
}
self
.
event
.
trigger
(
'providerChanged'
,
[
type
,
self
.
web3
])
})
self
.
event
.
trigger
(
'providerChanged'
,
[
type
,
self
.
web3
])
}
})
}
}
class
DebuggerUI
{
constructor
(
container
)
{
this
.
registry
=
globalRegistry
this
.
event
=
new
EventManager
()
this
.
executionContext
=
executionContext
this
.
contextManager
=
new
ContextManager
()
this
.
contextManager
.
initProviders
()
this
.
contextManager
.
event
.
register
(
'providerChanged'
,
()
=>
{
if
(
this
.
debugger
)
this
.
debugger
.
updateWeb3
(
this
.
contextManager
.
getWeb3
())
})
this
.
isActive
=
false
this
.
sourceHighlighter
=
new
SourceHighlighter
()
...
...
@@ -173,20 +111,30 @@ class DebuggerUI {
if
(
compilers
[
'__last'
])
lastCompilationResult
=
compilers
[
'__last'
]
// TODO debugging with source highlight is disabled. see line 98
executionContext
.
detectNetwork
((
error
,
network
)
=>
{
let
web3
if
(
error
||
!
network
)
{
web3
=
init
.
web3DebugNode
(
executionContext
.
web3
())
}
else
{
var
webDebugNode
=
init
.
web3DebugNode
(
network
.
name
)
web3
=
(
!
webDebugNode
?
executionContext
.
web3
()
:
webDebugNode
)
}
init
.
extendWeb3
(
web3
)
this
.
debugger
=
new
Debugger
({
web3
:
this
.
contextManager
.
getWeb3
()
,
web3
,
offsetToLineColumnConverter
:
this
.
registry
.
get
(
'offsettolinecolumnconverter'
).
api
,
compiler
:
{
lastCompilationResult
}
})
this
.
listenToEvents
()
this
.
debugger
.
debugger
.
updateWeb3
(
this
.
executionContext
.
web3
())
this
.
debugger
.
debug
(
blockNumber
,
txNumber
,
tx
,
()
=>
{
self
.
stepManager
=
new
StepManagerUI
(
this
.
debugger
.
step_manager
)
self
.
vmDebugger
=
new
VmDebugger
(
this
.
debugger
.
vmDebuggerLogic
)
self
.
renderDebugger
()
})
})
}
debug
(
txHash
)
{
...
...
src/app/tabs/settings-tab.js
View file @
dd2ba18e
...
...
@@ -150,7 +150,6 @@ module.exports = class SettingsTab extends ApiFactory {
${
this
.
_view
.
config
.
themes
}
</div>`
var
self
=
this
function
onchangeGenerateContractMetadata
(
event
)
{
self
.
config
.
set
(
'settings/generate-contract-metadata'
,
!
self
.
config
.
get
(
'settings/generate-contract-metadata'
))
}
...
...
src/app/tabs/support-tab.js
deleted
100644 → 0
View file @
ac6b8116
const
yo
=
require
(
'yo-yo'
)
var
css
=
require
(
'./styles/support-tab-styles'
)
import
{
ApiFactory
}
from
'remix-plugin'
class
SupportTab
extends
ApiFactory
{
constructor
(
localRegistry
)
{
super
()
this
.
el
=
null
this
.
gitterIframe
=
''
this
.
gitterIsLoaded
=
false
}
__showing
()
{
if
(
this
.
gitterIsLoaded
)
return
const
iframe
=
yo
`<iframe class="
${
css
.
chatIframe
}
" src='https://gitter.im/ethereum/remix/~embed'></iframe>`
this
.
gitterIframe
.
parentNode
.
replaceChild
(
iframe
,
this
.
gitterIframe
)
this
.
gitterIframe
=
iframe
this
.
el
.
style
.
display
=
'block'
this
.
gitterIsLoaded
=
true
}
get
profile
()
{
return
{
name
:
'support'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03MDQgMTkycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em04OTYtMzJ2MzIwcTAgMTYtMTIgMjUtOCA3LTIwIDctNCAwLTctMWwtNDQ4LTk2cS0xMS0yLTE4LTExdC03LTIwaC0yNTZ2MTAycTExMSAyMyAxODMuNSAxMTF0NzIuNSAyMDN2ODAwcTAgMjYtMTkgNDV0LTQ1IDE5aC01MTJxLTI2IDAtNDUtMTl0LTE5LTQ1di04MDBxMC0xMDYgNjIuNS0xOTAuNXQxNjEuNS0xMTQuNXYtMTExaC0zMnEtNTkgMC0xMTUgMjMuNXQtOTEuNSA1My02NiA2Ni41LTQwLjUgNTMuNS0xNCAyNC41cS0xNyAzNS01NyAzNS0xNiAwLTI5LTctMjMtMTItMzEuNS0zN3QzLjUtNDlxNS0xMCAxNC41LTI2dDM3LjUtNTMuNSA2MC41LTcwIDg1LTY3IDEwOC41LTUyLjVxLTI1LTQyLTI1LTg2IDAtNjYgNDctMTEzdDExMy00NyAxMTMgNDcgNDcgMTEzcTAgMzMtMTQgNjRoMzAycTAtMTEgNy0yMHQxOC0xMWw0NDgtOTZxMy0xIDctMSAxMiAwIDIwIDcgMTIgOSAxMiAyNXoiLz48L3N2Zz4='
,
description
:
'help center'
}
}
render
()
{
if
(
this
.
el
)
return
this
.
el
this
.
gitterIframe
=
yo
`<div></div>`
generateRemixdUI
()
{
const
remixd
=
yo
`
<div class="
${
css
.
info
}
">
<div class=
${
css
.
title
}
>Accessing local files</div>
<div class="
${
css
.
crow
}
">
Remixd is a tool which allow Remix IDE to access files located in your local computer.
it can also be used to setup a development environment.
</div>
<div class="
${
css
.
crow
}
">More infos:</div>
<div class="
${
css
.
crow
}
"><a target="_blank" href="https://github.com/ethereum/remixd"> https://github.com/ethereum/remixd</a></div>
<div class="
${
css
.
crow
}
"><a target="_blank" href="https://remix.readthedocs.io/en/latest/tutorial_remixd_filesystem">http://remix.readthedocs.io/en/latest/tutorial_remixd_filesystem.html</a></div>
<div class="
${
css
.
crow
}
">Installation: <pre class=
${
css
.
remixdinstallation
}
>npm install remixd -g</pre></div>
</div>`
return
remixd
}
generateLocalRemixdUI
()
{
const
localremixd
=
yo
`
<div class="
${
css
.
info
}
">
<div class=
${
css
.
title
}
>Running Remix locally</div>
<div class="
${
css
.
crow
}
">
as a NPM module:
</div>
<a target="_blank" href="https://www.npmjs.com/package/remix-ide">https://www.npmjs.com/package/remix-ide</a>
<pre class=
${
css
.
remixdinstallation
}
>npm install remix-ide -g</pre>
<div class="
${
css
.
crow
}
">
as an electron app:
</div>
<a target="_blank" href="https://github.com/horizon-games/remix-app">https://github.com/horizon-games/remix-app</a>
</div>`
return
localremixd
}
render
()
{
if
(
this
.
el
)
return
this
.
el
this
.
gitterIframe
=
yo
`<div></div>`
this
.
el
=
yo
`
<div class="
${
css
.
supportTabView
}
" id="supportView">
<div class="
${
css
.
infoBox
}
">
Have a question, found a bug or want to propose a feature? Have a look at the
<a target="_blank" href='https://github.com/ethereum/remix-ide/issues'> issues</a> or check out
<a target="_blank" href='https://remix.readthedocs.io/en/latest/'> the documentation page on Remix</a> or
<a target="_blank" href='https://solidity.readthedocs.io/en/latest/'> Solidity</a>.
</div>
<div class="
${
css
.
chat
}
">
<div class="
${
css
.
chatTitle
}
" onclick=
${()
=>
{
window
.
open
(
'https://gitter.im/ethereum/remix'
)
}}
title
=
'Click to open chat in Gitter'
>
<
div
class
=
"${css.chatTitleText}"
>
ethereum
/
remix
community
chat
<
/div
>
<
/div
>
$
{
this
.
gitterIframe
}
</div>
${
this
.
generateRemixdUI
()}
${
this
.
generateLocalRemixdUI
()}
</div>`
return
this
.
el
}
}
module
.
exports
=
SupportTab
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