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
d24904b4
Commit
d24904b4
authored
Apr 09, 2019
by
Grandschtroumpf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change `ApiFactory` for `BaseApi`
parent
e8e3e709
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
185 additions
and
225 deletions
+185
-225
app.js
src/app.js
+9
-11
plugin-manager-component.js
src/app/components/plugin-manager-component.js
+13
-16
SourceHighlighters.js
src/app/editor/SourceHighlighters.js
+10
-12
browser-files-tree.js
src/app/files/browser-files-tree.js
+7
-12
fileManager.js
src/app/files/fileManager.js
+12
-14
remixd-handle.js
src/app/files/remixd-handle.js
+11
-13
file-panel.js
src/app/panels/file-panel.js
+13
-16
analysis-tab.js
src/app/tabs/analysis-tab.js
+13
-16
compile-tab.js
src/app/tabs/compile-tab.js
+14
-17
debugger-tab.js
src/app/tabs/debugger-tab.js
+13
-16
run-tab.js
src/app/tabs/run-tab.js
+13
-16
settings-tab.js
src/app/tabs/settings-tab.js
+15
-15
test-tab.js
src/app/tabs/test-tab.js
+12
-15
theme-module.js
src/app/tabs/theme-module.js
+9
-11
txlistener-module.js
src/app/tabs/txlistener-module.js
+11
-13
landing-page.js
src/app/ui/landing-page/landing-page.js
+0
-0
universal-dapp.js
src/universal-dapp.js
+10
-12
No files found.
src/app.js
View file @
d24904b4
...
@@ -54,7 +54,7 @@ import { EntityStore } from './lib/store'
...
@@ -54,7 +54,7 @@ import { EntityStore } from './lib/store'
import
{
RemixAppManager
}
from
'./remixAppManager'
import
{
RemixAppManager
}
from
'./remixAppManager'
import
{
LandingPage
}
from
'./app/ui/landing-page/landing-page'
import
{
LandingPage
}
from
'./app/ui/landing-page/landing-page'
import
framingService
from
'./framingService'
import
framingService
from
'./framingService'
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
import
{
TxListenerModule
}
from
'./app/tabs/txlistener-module'
import
{
TxListenerModule
}
from
'./app/tabs/txlistener-module'
import
{
ThemeModule
}
from
'./app/tabs/theme-module'
import
{
ThemeModule
}
from
'./app/tabs/theme-module'
...
@@ -116,9 +116,15 @@ var css = csjs`
...
@@ -116,9 +116,15 @@ var css = csjs`
}
}
`
`
class
App
extends
ApiFactory
{
const
profile
=
{
name
:
'app'
,
description
:
'service - provides information about current context (network).'
,
methods
:
[
'getExecutionContextProvider'
,
'getProviderEndpoint'
,
'detectNetWork'
,
'addProvider'
,
'removeProvider'
]
}
class
App
extends
BaseApi
{
constructor
(
api
=
{},
events
=
{},
opts
=
{})
{
constructor
(
api
=
{},
events
=
{},
opts
=
{})
{
super
()
super
(
profile
)
var
self
=
this
var
self
=
this
this
.
event
=
new
EventManager
()
this
.
event
=
new
EventManager
()
self
.
_components
=
{}
self
.
_components
=
{}
...
@@ -171,14 +177,6 @@ class App extends ApiFactory {
...
@@ -171,14 +177,6 @@ class App extends ApiFactory {
run
.
apply
(
self
)
run
.
apply
(
self
)
}
}
get
profile
()
{
return
{
name
:
'app'
,
description
:
'service - provides information about current context (network).'
,
methods
:
[
'getExecutionContextProvider'
,
'getProviderEndpoint'
,
'detectNetWork'
,
'addProvider'
,
'removeProvider'
]
}
}
render
()
{
render
()
{
var
self
=
this
var
self
=
this
if
(
self
.
_view
.
el
)
return
self
.
_view
.
el
if
(
self
.
_view
.
el
)
return
self
.
_view
.
el
...
...
src/app/components/plugin-manager-component.js
View file @
d24904b4
...
@@ -2,7 +2,7 @@ const yo = require('yo-yo')
...
@@ -2,7 +2,7 @@ const yo = require('yo-yo')
const
csjs
=
require
(
'csjs-inject'
)
const
csjs
=
require
(
'csjs-inject'
)
const
EventEmitter
=
require
(
'events'
)
const
EventEmitter
=
require
(
'events'
)
const
LocalPlugin
=
require
(
'./local-plugin'
)
const
LocalPlugin
=
require
(
'./local-plugin'
)
import
{
Plugin
,
ApiFactory
}
from
'remix-plugin'
import
{
Plugin
,
BaseApi
}
from
'remix-plugin'
const
css
=
csjs
`
const
css
=
csjs
`
.pluginSearch {
.pluginSearch {
...
@@ -34,10 +34,20 @@ const css = csjs`
...
@@ -34,10 +34,20 @@ const css = csjs`
}
}
`
`
class
PluginManagerComponent
extends
ApiFactory
{
const
profile
=
{
displayName
:
'plugin manager'
,
name
:
'pluginManager'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzU1IDQ1M3EzNyAzOCAzNyA5MC41dC0zNyA5MC41bC00MDEgNDAwIDE1MCAxNTAtMTYwIDE2MHEtMTYzIDE2My0zODkuNSAxODYuNXQtNDExLjUtMTAwLjVsLTM2MiAzNjJoLTE4MXYtMTgxbDM2Mi0zNjJxLTEyNC0xODUtMTAwLjUtNDExLjV0MTg2LjUtMzg5LjVsMTYwLTE2MCAxNTAgMTUwIDQwMC00MDFxMzgtMzcgOTEtMzd0OTAgMzcgMzcgOTAuNS0zNyA5MC41bC00MDAgNDAxIDIzNCAyMzQgNDAxLTQwMHEzOC0zNyA5MS0zN3Q5MCAzN3oiLz48L3N2Zz4='
,
description
:
'start/stop services, modules and plugins'
,
kind
:
'settings'
}
class
PluginManagerComponent
extends
BaseApi
{
constructor
()
{
constructor
()
{
super
()
super
(
profile
)
this
.
event
=
new
EventEmitter
()
this
.
event
=
new
EventEmitter
()
this
.
views
=
{
this
.
views
=
{
root
:
null
,
root
:
null
,
...
@@ -47,19 +57,6 @@ class PluginManagerComponent extends ApiFactory {
...
@@ -47,19 +57,6 @@ class PluginManagerComponent extends ApiFactory {
this
.
filter
=
''
this
.
filter
=
''
}
}
get
profile
()
{
return
{
displayName
:
'plugin manager'
,
name
:
'pluginManager'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzU1IDQ1M3EzNyAzOCAzNyA5MC41dC0zNyA5MC41bC00MDEgNDAwIDE1MCAxNTAtMTYwIDE2MHEtMTYzIDE2My0zODkuNSAxODYuNXQtNDExLjUtMTAwLjVsLTM2MiAzNjJoLTE4MXYtMTgxbDM2Mi0zNjJxLTEyNC0xODUtMTAwLjUtNDExLjV0MTg2LjUtMzg5LjVsMTYwLTE2MCAxNTAgMTUwIDQwMC00MDFxMzgtMzcgOTEtMzd0OTAgMzcgMzcgOTAuNS0zNyA5MC41bC00MDAgNDAxIDIzNCAyMzQgNDAxLTQwMHEzOC0zNyA5MS0zN3Q5MCAzN3oiLz48L3N2Zz4='
,
description
:
'start/stop services, modules and plugins'
,
kind
:
'settings'
,
location
:
'swapPanel'
}
}
setApp
(
appManager
)
{
setApp
(
appManager
)
{
this
.
appManager
=
appManager
this
.
appManager
=
appManager
}
}
...
...
src/app/editor/SourceHighlighters.js
View file @
d24904b4
'use strict'
'use strict'
const
SourceHighlighter
=
require
(
'./sourceHighlighter'
)
const
SourceHighlighter
=
require
(
'./sourceHighlighter'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
EditorApi
}
from
'remix-plugin'
class
SourceHighlighters
extends
ApiFactory
{
const
profile
=
{
displayName
:
'source highlighters'
,
name
:
'sourceHighlighters'
,
methods
:
[
'highlight'
,
'discardHighlight'
],
description
:
'service - highlight source code'
}
class
SourceHighlighters
extends
EditorApi
{
constructor
()
{
constructor
()
{
super
()
super
(
profile
)
this
.
highlighters
=
{}
this
.
highlighters
=
{}
}
}
get
profile
()
{
return
{
displayName
:
'source highlighters'
,
name
:
'sourceHighlighters'
,
methods
:
[
'highlight'
,
'discardHighlight'
],
description
:
'service - highlight source code'
}
}
highlight
(
lineColumnPos
,
filePath
,
hexColor
)
{
highlight
(
lineColumnPos
,
filePath
,
hexColor
)
{
const
{
from
}
=
this
.
currentRequest
const
{
from
}
=
this
.
currentRequest
try
{
try
{
...
...
src/app/files/browser-files-tree.js
View file @
d24904b4
...
@@ -2,12 +2,16 @@
...
@@ -2,12 +2,16 @@
var
EventManager
=
require
(
'../../lib/events'
)
var
EventManager
=
require
(
'../../lib/events'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
class
FilesTree
extends
ApiFactory
{
class
FilesTree
extends
BaseApi
{
constructor
(
name
,
storage
)
{
constructor
(
name
,
storage
)
{
super
()
super
({
name
:
name
,
methods
:
[
'get'
,
'set'
,
'remove'
],
description
:
'service - read/write file to the `config` explorer without need of additionnal permission.'
})
this
.
event
=
new
EventManager
()
this
.
event
=
new
EventManager
()
this
.
storage
=
storage
this
.
storage
=
storage
this
.
type
=
name
this
.
type
=
name
...
@@ -15,15 +19,6 @@ class FilesTree extends ApiFactory {
...
@@ -15,15 +19,6 @@ class FilesTree extends ApiFactory {
this
.
tree
=
{}
this
.
tree
=
{}
}
}
get
profile
()
{
// TODO should make them promisable
return
{
name
:
this
.
type
,
methods
:
[
'get'
,
'set'
,
'remove'
],
description
:
'service - read/write file to the `config` explorer without need of additionnal permission.'
}
}
exists
(
path
,
cb
)
{
exists
(
path
,
cb
)
{
cb
(
null
,
this
.
_exists
(
path
))
cb
(
null
,
this
.
_exists
(
path
))
}
}
...
...
src/app/files/fileManager.js
View file @
d24904b4
...
@@ -6,15 +6,25 @@ const EventEmitter = require('events')
...
@@ -6,15 +6,25 @@ const EventEmitter = require('events')
var
globalRegistry
=
require
(
'../../global/registry'
)
var
globalRegistry
=
require
(
'../../global/registry'
)
var
CompilerImport
=
require
(
'../compiler/compiler-imports'
)
var
CompilerImport
=
require
(
'../compiler/compiler-imports'
)
var
toaster
=
require
(
'../ui/tooltip'
)
var
toaster
=
require
(
'../ui/tooltip'
)
import
{
FileSystemApi
}
from
'remix-plugin'
/*
/*
attach to files event (removed renamed)
attach to files event (removed renamed)
trigger: currentFileChanged
trigger: currentFileChanged
*/
*/
class
FileManager
extends
ApiFactory
{
const
profile
=
{
displayName
:
'file manager'
,
name
:
'fileManager'
,
methods
:
[
'getFilesFromPath'
,
'getCurrentFile'
,
'getFile'
,
'setFile'
],
events
:
[
'currentFileChanged'
],
description
:
'service - read/write to any files or folders, require giving permissions'
,
permission
:
true
}
class
FileManager
extends
FileSystemApi
{
constructor
(
localRegistry
)
{
constructor
(
localRegistry
)
{
super
()
super
(
profile
)
this
.
openedFiles
=
{}
// list all opened files
this
.
openedFiles
=
{}
// list all opened files
this
.
events
=
new
EventEmitter
()
this
.
events
=
new
EventEmitter
()
this
.
_components
=
{}
this
.
_components
=
{}
...
@@ -42,18 +52,6 @@ class FileManager extends ApiFactory {
...
@@ -42,18 +52,6 @@ class FileManager extends ApiFactory {
this
.
_deps
.
localhostExplorer
.
event
.
register
(
'closed'
,
(
event
)
=>
{
this
.
removeTabsOf
(
this
.
_deps
.
localhostExplorer
)
})
this
.
_deps
.
localhostExplorer
.
event
.
register
(
'closed'
,
(
event
)
=>
{
this
.
removeTabsOf
(
this
.
_deps
.
localhostExplorer
)
})
}
}
get
profile
()
{
return
{
displayName
:
'file manager'
,
name
:
'fileManager'
,
methods
:
[
'getFilesFromPath'
,
'getCurrentFile'
,
'getFile'
,
'setFile'
],
events
:
[
'currentFileChanged'
],
description
:
'service - read/write to any files or folders, require giving permissions'
,
permission
:
true
,
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjk2IDM4NHE0MCAwIDY4IDI4dDI4IDY4djEyMTZxMCA0MC0yOCA2OHQtNjggMjhoLTk2MHEtNDAgMC02OC0yOHQtMjgtNjh2LTI4OGgtNTQ0cS00MCAwLTY4LTI4dC0yOC02OHYtNjcycTAtNDAgMjAtODh0NDgtNzZsNDA4LTQwOHEyOC0yOCA3Ni00OHQ4OC0yMGg0MTZxNDAgMCA2OCAyOHQyOCA2OHYzMjhxNjgtNDAgMTI4LTQwaDQxNnptLTU0NCAyMTNsLTI5OSAyOTloMjk5di0yOTl6bS02NDAtMzg0bC0yOTkgMjk5aDI5OXYtMjk5em0xOTYgNjQ3bDMxNi0zMTZ2LTQxNmgtMzg0djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djY0MGg1MTJ2LTI1NnEwLTQwIDIwLTg4dDQ4LTc2em05NTYgODA0di0xMTUyaC0zODR2NDE2cTAgNDAtMjggNjh0LTY4IDI4aC00MTZ2NjQwaDg5NnoiLz48L3N2Zz4='
}
}
fileRenamedEvent
(
oldName
,
newName
,
isFolder
)
{
fileRenamedEvent
(
oldName
,
newName
,
isFolder
)
{
if
(
!
isFolder
)
{
if
(
!
isFolder
)
{
this
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
this
.
_deps
.
config
.
set
(
'currentFile'
,
''
)
...
...
src/app/files/remixd-handle.js
View file @
d24904b4
import
{
ApiFactory
}
from
'remix-plugin'
let
globalRegistry
=
require
(
'../../global/registry'
)
let
globalRegistry
=
require
(
'../../global/registry'
)
import
{
BaseApi
}
from
'remix-plugin'
var
yo
=
require
(
'yo-yo'
)
var
yo
=
require
(
'yo-yo'
)
var
modalDialog
=
require
(
'../ui/modaldialog'
)
var
modalDialog
=
require
(
'../ui/modaldialog'
)
...
@@ -18,23 +18,21 @@ var css = csjs`
...
@@ -18,23 +18,21 @@ var css = csjs`
}
}
`
`
export
class
RemixdHandle
extends
ApiFactory
{
const
profile
=
{
name
:
'remixd'
,
methods
:
[],
events
:
[],
description
:
'using Remixd daemon, allow to access file system'
,
kind
:
'other'
}
export
class
RemixdHandle
extends
BaseApi
{
constructor
(
fileSystemExplorer
,
locahostProvider
)
{
constructor
(
fileSystemExplorer
,
locahostProvider
)
{
super
()
super
(
profile
)
this
.
fileSystemExplorer
=
fileSystemExplorer
this
.
fileSystemExplorer
=
fileSystemExplorer
this
.
locahostProvider
=
locahostProvider
this
.
locahostProvider
=
locahostProvider
}
}
get
profile
()
{
return
{
name
:
'remixd'
,
methods
:
[],
events
:
[],
description
:
'using Remixd daemon, allow to access file system'
,
kind
:
'other'
}
}
deactivate
()
{
deactivate
()
{
this
.
locahostProvider
.
close
((
error
)
=>
{
this
.
locahostProvider
.
close
((
error
)
=>
{
if
(
error
)
console
.
log
(
error
)
if
(
error
)
console
.
log
(
error
)
...
...
src/app/panels/file-panel.js
View file @
d24904b4
...
@@ -6,7 +6,7 @@ var { RemixdHandle } = require('../files/remixd-handle.js')
...
@@ -6,7 +6,7 @@ var { RemixdHandle } = require('../files/remixd-handle.js')
var
globalRegistry
=
require
(
'../../global/registry'
)
var
globalRegistry
=
require
(
'../../global/registry'
)
var
css
=
require
(
'./styles/file-panel-styles'
)
var
css
=
require
(
'./styles/file-panel-styles'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
var
canUpload
=
window
.
File
||
window
.
FileReader
||
window
.
FileList
||
window
.
Blob
var
canUpload
=
window
.
File
||
window
.
FileReader
||
window
.
FileList
||
window
.
Blob
...
@@ -27,10 +27,20 @@ var canUpload = window.File || window.FileReader || window.FileList || window.Bl
...
@@ -27,10 +27,20 @@ var canUpload = window.File || window.FileReader || window.FileList || window.Bl
- call fileProvider API
- call fileProvider API
*/
*/
module
.
exports
=
class
Filepanel
extends
ApiFactory
{
const
profile
=
{
name
:
'fileExplorers'
,
displayName
:
'file explorers'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjk2IDM4NHE0MCAwIDY4IDI4dDI4IDY4djEyMTZxMCA0MC0yOCA2OHQtNjggMjhoLTk2MHEtNDAgMC02OC0yOHQtMjgtNjh2LTI4OGgtNTQ0cS00MCAwLTY4LTI4dC0yOC02OHYtNjcycTAtNDAgMjAtODh0NDgtNzZsNDA4LTQwOHEyOC0yOCA3Ni00OHQ4OC0yMGg0MTZxNDAgMCA2OCAyOHQyOCA2OHYzMjhxNjgtNDAgMTI4LTQwaDQxNnptLTU0NCAyMTNsLTI5OSAyOTloMjk5di0yOTl6bS02NDAtMzg0bC0yOTkgMjk5aDI5OXYtMjk5em0xOTYgNjQ3bDMxNi0zMTZ2LTQxNmgtMzg0djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djY0MGg1MTJ2LTI1NnEwLTQwIDIwLTg4dDQ4LTc2em05NTYgODA0di0xMTUyaC0zODR2NDE2cTAgNDAtMjggNjh0LTY4IDI4aC00MTZ2NjQwaDg5NnoiLz48L3N2Zz4='
,
description
:
' - '
,
kind
:
'fileexplorer'
}
module
.
exports
=
class
Filepanel
extends
BaseApi
{
constructor
(
localRegistry
)
{
constructor
(
localRegistry
)
{
super
()
super
(
profile
)
var
self
=
this
var
self
=
this
self
.
_components
=
{}
self
.
_components
=
{}
self
.
_components
.
registry
=
localRegistry
||
globalRegistry
self
.
_components
.
registry
=
localRegistry
||
globalRegistry
...
@@ -132,18 +142,5 @@ module.exports = class Filepanel extends ApiFactory {
...
@@ -132,18 +142,5 @@ module.exports = class Filepanel extends ApiFactory {
self
.
render
=
function
render
()
{
return
element
}
self
.
render
=
function
render
()
{
return
element
}
}
}
get
profile
()
{
return
{
name
:
'fileExplorers'
,
displayName
:
'file explorers'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjk2IDM4NHE0MCAwIDY4IDI4dDI4IDY4djEyMTZxMCA0MC0yOCA2OHQtNjggMjhoLTk2MHEtNDAgMC02OC0yOHQtMjgtNjh2LTI4OGgtNTQ0cS00MCAwLTY4LTI4dC0yOC02OHYtNjcycTAtNDAgMjAtODh0NDgtNzZsNDA4LTQwOHEyOC0yOCA3Ni00OHQ4OC0yMGg0MTZxNDAgMCA2OCAyOHQyOCA2OHYzMjhxNjgtNDAgMTI4LTQwaDQxNnptLTU0NCAyMTNsLTI5OSAyOTloMjk5di0yOTl6bS02NDAtMzg0bC0yOTkgMjk5aDI5OXYtMjk5em0xOTYgNjQ3bDMxNi0zMTZ2LTQxNmgtMzg0djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djY0MGg1MTJ2LTI1NnEwLTQwIDIwLTg4dDQ4LTc2em05NTYgODA0di0xMTUyaC0zODR2NDE2cTAgNDAtMjggNjh0LTY4IDI4aC00MTZ2NjQwaDg5NnoiLz48L3N2Zz4='
,
description
:
' - '
,
kind
:
'fileexplorer'
,
location
:
'swapPanel'
}
}
}
}
src/app/tabs/analysis-tab.js
View file @
d24904b4
...
@@ -3,31 +3,28 @@ var StaticAnalysis = require('../staticanalysis/staticAnalysisView')
...
@@ -3,31 +3,28 @@ var StaticAnalysis = require('../staticanalysis/staticAnalysisView')
var
EventManager
=
require
(
'../../lib/events'
)
var
EventManager
=
require
(
'../../lib/events'
)
var
css
=
require
(
'./styles/analysis-tab-styles'
)
var
css
=
require
(
'./styles/analysis-tab-styles'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
import
{
EventEmitter
}
from
'events'
import
{
EventEmitter
}
from
'events'
class
AnalysisTab
extends
ApiFactory
{
const
profile
=
{
name
:
'solidityStaticAnalysis'
,
displayName
:
'solidity static analysis'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMjA0OCIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMjA0OCAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMDQ4IDE1MzZ2MTI4aC0yMDQ4di0xNTM2aDEyOHYxNDA4aDE5MjB6bS0xMjgtMTI0OHY0MzVxMCAyMS0xOS41IDI5LjV0LTM1LjUtNy41bC0xMjEtMTIxLTYzMyA2MzNxLTEwIDEwLTIzIDEwdC0yMy0xMGwtMjMzLTIzMy00MTYgNDE2LTE5Mi0xOTIgNTg1LTU4NXExMC0xMCAyMy0xMHQyMyAxMGwyMzMgMjMzIDQ2NC00NjQtMTIxLTEyMXEtMTYtMTYtNy41LTM1LjV0MjkuNS0xOS41aDQzNXExNCAwIDIzIDl0OSAyM3oiLz48L3N2Zz4='
,
description
:
' - '
,
kind
:
'analysis'
}
class
AnalysisTab
extends
BaseApi
{
constructor
(
registry
)
{
constructor
(
registry
)
{
super
()
super
(
profile
)
this
.
event
=
new
EventManager
()
this
.
event
=
new
EventManager
()
this
.
events
=
new
EventEmitter
()
this
.
events
=
new
EventEmitter
()
this
.
registry
=
registry
this
.
registry
=
registry
}
}
get
profile
()
{
return
{
name
:
'solidityStaticAnalysis'
,
displayName
:
'solidity static analysis'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMjA0OCIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMjA0OCAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMDQ4IDE1MzZ2MTI4aC0yMDQ4di0xNTM2aDEyOHYxNDA4aDE5MjB6bS0xMjgtMTI0OHY0MzVxMCAyMS0xOS41IDI5LjV0LTM1LjUtNy41bC0xMjEtMTIxLTYzMyA2MzNxLTEwIDEwLTIzIDEwdC0yMy0xMGwtMjMzLTIzMy00MTYgNDE2LTE5Mi0xOTIgNTg1LTU4NXExMC0xMCAyMy0xMHQyMyAxMGwyMzMgMjMzIDQ2NC00NjQtMTIxLTEyMXEtMTYtMTYtNy41LTM1LjV0MjkuNS0xOS41aDQzNXExNCAwIDIzIDl0OSAyM3oiLz48L3N2Zz4='
,
description
:
' - '
,
kind
:
'analysis'
,
location
:
'swapPanel'
}
}
render
()
{
render
()
{
var
staticanalysis
=
new
StaticAnalysis
()
var
staticanalysis
=
new
StaticAnalysis
()
staticanalysis
.
event
.
register
(
'staticAnaysisWarning'
,
(
count
)
=>
{
staticanalysis
.
event
.
register
(
'staticAnaysisWarning'
,
(
count
)
=>
{
...
...
src/app/tabs/compile-tab.js
View file @
d24904b4
...
@@ -17,12 +17,23 @@ var css = require('./styles/compile-tab-styles')
...
@@ -17,12 +17,23 @@ var css = require('./styles/compile-tab-styles')
const
CompileTabLogic
=
require
(
'./compileTab/compileTab.js'
)
const
CompileTabLogic
=
require
(
'./compileTab/compileTab.js'
)
const
CompilerContainer
=
require
(
'./compileTab/compilerContainer.js'
)
const
CompilerContainer
=
require
(
'./compileTab/compilerContainer.js'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
const
profile
=
{
displayName
:
'solidity compiler'
,
name
:
'solidity'
,
methods
:
[
'getCompilationResult'
],
events
:
[
'compilationFinished'
],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMywgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zOnNrZXRjaD0iaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoL25zIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTMwMHB4IiBoZWlnaHQ9IjEzMDBweCIKCSB2aWV3Qm94PSIwIDAgMTMwMCAxMzAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMzAwIDEzMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8dGl0bGU+VmVjdG9yIDE8L3RpdGxlPgo8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KPGcgaWQ9IlBhZ2UtMSIgc2tldGNoOnR5cGU9Ik1TUGFnZSI+Cgk8ZyBpZD0ic29saWRpdHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQwMi4wMDAwMDAsIDExOC4wMDAwMDApIiBza2V0Y2g6dHlwZT0iTVNMYXllckdyb3VwIj4KCQk8ZyBpZD0iR3JvdXAiIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPgoJCQk8cGF0aCBpZD0iU2hhcGUiIG9wYWNpdHk9IjAuNDUiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIiBkPSJNMzcxLjc3MiwxMzUuMzA4TDI0MS4wNjgsMzY3LjYxSC0yMC4xNThsMTMwLjYxNC0yMzIuMzAyCgkJCQlIMzcxLjc3MiIvPgoJCQk8cGF0aCBpZD0iU2hhcGVfMV8iIG9wYWNpdHk9IjAuNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiIGQ9Ik0yNDEuMDY4LDM2Ny42MWgyNjEuMzE4TDM3MS43NzIsMTM1LjMwOEgxMTAuNDU2CgkJCQlMMjQxLjA2OCwzNjcuNjF6Ii8+CgkJCTxwYXRoIGlkPSJTaGFwZV8yXyIgb3BhY2l0eT0iMC44IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3ICAgICIgZD0iTTExMC40NTYsNTk5LjgyMkwyNDEuMDY4LDM2Ny42MUwxMTAuNDU2LDEzNS4zMDgKCQkJCUwtMjAuMTU4LDM2Ny42MUwxMTAuNDU2LDU5OS44MjJ6Ii8+CgkJCTxwYXRoIGlkPSJTaGFwZV8zXyIgb3BhY2l0eT0iMC40NSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiIGQ9Ik0xMTEuNzIxLDk0OC4yNzVsMTMwLjcwNC0yMzIuMzAzaDI2MS4zMThMMzczLjAzOCw5NDguMjc1CgkJCQlIMTExLjcyMSIvPgoJCQk8cGF0aCBpZD0iU2hhcGVfNF8iIG9wYWNpdHk9IjAuNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiIGQ9Ik0yNDIuNDI0LDcxNS45NzNILTE4Ljg5M2wxMzAuNjEzLDIzMi4zMDNoMjYxLjMxNwoJCQkJTDI0Mi40MjQsNzE1Ljk3M3oiLz4KCQkJPHBhdGggaWQ9IlNoYXBlXzVfIiBvcGFjaXR5PSIwLjgiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIiBkPSJNMzczLjAzOCw0ODMuNzYxTDI0Mi40MjQsNzE1Ljk3M2wxMzAuNjE0LDIzMi4zMDMKCQkJCWwxMzAuNzA0LTIzMi4zMDNMMzczLjAzOCw0ODMuNzYxeiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K'
,
description
:
'compile solidity contracts'
,
kind
:
'compile'
,
permission
:
true
}
class
CompileTab
extends
ApiFactory
{
class
CompileTab
extends
BaseApi
{
constructor
(
editor
,
config
,
renderer
,
swarmfileProvider
,
fileManager
,
fileProviders
,
pluginManager
)
{
constructor
(
editor
,
config
,
renderer
,
swarmfileProvider
,
fileManager
,
fileProviders
,
pluginManager
)
{
super
()
super
(
profile
)
this
.
events
=
new
EventEmitter
()
this
.
events
=
new
EventEmitter
()
this
.
_view
=
{
this
.
_view
=
{
el
:
null
,
el
:
null
,
...
@@ -57,20 +68,6 @@ class CompileTab extends ApiFactory {
...
@@ -57,20 +68,6 @@ class CompileTab extends ApiFactory {
)
)
}
}
get
profile
()
{
return
{
displayName
:
'solidity compiler'
,
name
:
'solidity'
,
methods
:
[
'getCompilationResult'
],
events
:
[
'compilationFinished'
],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMywgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zOnNrZXRjaD0iaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoL25zIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTMwMHB4IiBoZWlnaHQ9IjEzMDBweCIKCSB2aWV3Qm94PSIwIDAgMTMwMCAxMzAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMzAwIDEzMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8dGl0bGU+VmVjdG9yIDE8L3RpdGxlPgo8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KPGcgaWQ9IlBhZ2UtMSIgc2tldGNoOnR5cGU9Ik1TUGFnZSI+Cgk8ZyBpZD0ic29saWRpdHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQwMi4wMDAwMDAsIDExOC4wMDAwMDApIiBza2V0Y2g6dHlwZT0iTVNMYXllckdyb3VwIj4KCQk8ZyBpZD0iR3JvdXAiIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPgoJCQk8cGF0aCBpZD0iU2hhcGUiIG9wYWNpdHk9IjAuNDUiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIiBkPSJNMzcxLjc3MiwxMzUuMzA4TDI0MS4wNjgsMzY3LjYxSC0yMC4xNThsMTMwLjYxNC0yMzIuMzAyCgkJCQlIMzcxLjc3MiIvPgoJCQk8cGF0aCBpZD0iU2hhcGVfMV8iIG9wYWNpdHk9IjAuNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiIGQ9Ik0yNDEuMDY4LDM2Ny42MWgyNjEuMzE4TDM3MS43NzIsMTM1LjMwOEgxMTAuNDU2CgkJCQlMMjQxLjA2OCwzNjcuNjF6Ii8+CgkJCTxwYXRoIGlkPSJTaGFwZV8yXyIgb3BhY2l0eT0iMC44IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3ICAgICIgZD0iTTExMC40NTYsNTk5LjgyMkwyNDEuMDY4LDM2Ny42MUwxMTAuNDU2LDEzNS4zMDgKCQkJCUwtMjAuMTU4LDM2Ny42MUwxMTAuNDU2LDU5OS44MjJ6Ii8+CgkJCTxwYXRoIGlkPSJTaGFwZV8zXyIgb3BhY2l0eT0iMC40NSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiIGQ9Ik0xMTEuNzIxLDk0OC4yNzVsMTMwLjcwNC0yMzIuMzAzaDI2MS4zMThMMzczLjAzOCw5NDguMjc1CgkJCQlIMTExLjcyMSIvPgoJCQk8cGF0aCBpZD0iU2hhcGVfNF8iIG9wYWNpdHk9IjAuNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAgICAiIGQ9Ik0yNDIuNDI0LDcxNS45NzNILTE4Ljg5M2wxMzAuNjEzLDIzMi4zMDNoMjYxLjMxNwoJCQkJTDI0Mi40MjQsNzE1Ljk3M3oiLz4KCQkJPHBhdGggaWQ9IlNoYXBlXzVfIiBvcGFjaXR5PSIwLjgiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIiBkPSJNMzczLjAzOCw0ODMuNzYxTDI0Mi40MjQsNzE1Ljk3M2wxMzAuNjE0LDIzMi4zMDMKCQkJCWwxMzAuNzA0LTIzMi4zMDNMMzczLjAzOCw0ODMuNzYxeiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K'
,
description
:
'compile solidity contracts'
,
kind
:
'compile'
,
permission
:
true
,
location
:
'swapPanel'
}
}
/************
/************
* EVENTS
* EVENTS
*/
*/
...
...
src/app/tabs/debugger-tab.js
View file @
d24904b4
...
@@ -3,28 +3,25 @@ var css = require('./styles/debugger-tab-styles')
...
@@ -3,28 +3,25 @@ var css = require('./styles/debugger-tab-styles')
var
DebuggerUI
=
require
(
'../debugger/debuggerUI'
)
var
DebuggerUI
=
require
(
'../debugger/debuggerUI'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
const
profile
=
{
displayName
:
'debugger'
,
name
:
'debugger'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjk2IDk2MHEwIDI2LTE5IDQ1dC00NSAxOWgtMjI0cTAgMTcxLTY3IDI5MGwyMDggMjA5cTE5IDE5IDE5IDQ1dC0xOSA0NXEtMTggMTktNDUgMTl0LTQ1LTE5bC0xOTgtMTk3cS01IDUtMTUgMTN0LTQyIDI4LjUtNjUgMzYuNS04MiAyOS05NyAxM3YtODk2aC0xMjh2ODk2cS01MSAwLTEwMS41LTEzLjV0LTg3LTMzLTY2LTM5LTQzLjUtMzIuNWwtMTUtMTQtMTgzIDIwN3EtMjAgMjEtNDggMjEtMjQgMC00My0xNi0xOS0xOC0yMC41LTQ0LjV0MTUuNS00Ni41bDIwMi0yMjdxLTU4LTExNC01OC0yNzRoLTIyNHEtMjYgMC00NS0xOXQtMTktNDUgMTktNDUgNDUtMTloMjI0di0yOTRsLTE3My0xNzNxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5IDQ1IDE5bDE3MyAxNzNoODQ0bDE3My0xNzNxMTktMTkgNDUtMTl0NDUgMTkgMTkgNDUtMTkgNDVsLTE3MyAxNzN2Mjk0aDIyNHEyNiAwIDQ1IDE5dDE5IDQ1em0tNDgwLTU3NmgtNjQwcTAtMTMzIDkzLjUtMjI2LjV0MjI2LjUtOTMuNSAyMjYuNSA5My41IDkzLjUgMjI2LjV6Ii8+PC9zdmc+'
,
description
:
'debug transactions'
,
kind
:
'debugging'
}
class
DebuggerTab
extends
ApiFactory
{
class
DebuggerTab
extends
BaseApi
{
constructor
()
{
constructor
()
{
super
()
super
(
profile
)
this
.
el
=
null
this
.
el
=
null
}
}
get
profile
()
{
return
{
displayName
:
'debugger'
,
name
:
'debugger'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjk2IDk2MHEwIDI2LTE5IDQ1dC00NSAxOWgtMjI0cTAgMTcxLTY3IDI5MGwyMDggMjA5cTE5IDE5IDE5IDQ1dC0xOSA0NXEtMTggMTktNDUgMTl0LTQ1LTE5bC0xOTgtMTk3cS01IDUtMTUgMTN0LTQyIDI4LjUtNjUgMzYuNS04MiAyOS05NyAxM3YtODk2aC0xMjh2ODk2cS01MSAwLTEwMS41LTEzLjV0LTg3LTMzLTY2LTM5LTQzLjUtMzIuNWwtMTUtMTQtMTgzIDIwN3EtMjAgMjEtNDggMjEtMjQgMC00My0xNi0xOS0xOC0yMC41LTQ0LjV0MTUuNS00Ni41bDIwMi0yMjdxLTU4LTExNC01OC0yNzRoLTIyNHEtMjYgMC00NS0xOXQtMTktNDUgMTktNDUgNDUtMTloMjI0di0yOTRsLTE3My0xNzNxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5IDQ1IDE5bDE3MyAxNzNoODQ0bDE3My0xNzNxMTktMTkgNDUtMTl0NDUgMTkgMTkgNDUtMTkgNDVsLTE3MyAxNzN2Mjk0aDIyNHEyNiAwIDQ1IDE5dDE5IDQ1em0tNDgwLTU3NmgtNjQwcTAtMTMzIDkzLjUtMjI2LjV0MjI2LjUtOTMuNSAyMjYuNSA5My41IDkzLjUgMjI2LjV6Ii8+PC9zdmc+'
,
description
:
'debug transactions'
,
kind
:
'debugging'
,
location
:
'swapPanel'
}
}
render
()
{
render
()
{
if
(
this
.
el
)
return
this
.
el
if
(
this
.
el
)
return
this
.
el
...
...
src/app/tabs/run-tab.js
View file @
d24904b4
...
@@ -12,12 +12,22 @@ var ContractDropdownUI = require('./runTab/contractDropdown.js')
...
@@ -12,12 +12,22 @@ var ContractDropdownUI = require('./runTab/contractDropdown.js')
var
Recorder
=
require
(
'./runTab/model/recorder.js'
)
var
Recorder
=
require
(
'./runTab/model/recorder.js'
)
var
RecorderUI
=
require
(
'./runTab/recorder.js'
)
var
RecorderUI
=
require
(
'./runTab/recorder.js'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
const
profile
=
{
name
:
'run'
,
displayName
:
'run transactions'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNTc2IDkyN2wtMTMyOCA3MzhxLTIzIDEzLTM5LjUgM3QtMTYuNS0zNnYtMTQ3MnEwLTI2IDE2LjUtMzZ0MzkuNSAzbDEzMjggNzM4cTIzIDEzIDIzIDMxdC0yMyAzMXoiLz48L3N2Zz4='
,
description
:
'execute and save transactions'
,
kind
:
'run'
}
class
RunTab
extends
ApiFactory
{
class
RunTab
extends
BaseApi
{
constructor
(
udapp
,
udappUI
,
config
,
fileManager
,
editor
,
logCallback
,
filePanel
,
pluginManager
,
compilersArtefacts
)
{
constructor
(
udapp
,
udappUI
,
config
,
fileManager
,
editor
,
logCallback
,
filePanel
,
pluginManager
,
compilersArtefacts
)
{
super
()
super
(
profile
)
this
.
event
=
new
EventManager
()
this
.
event
=
new
EventManager
()
this
.
renderInstanceContainer
()
this
.
renderInstanceContainer
()
...
@@ -28,19 +38,6 @@ class RunTab extends ApiFactory {
...
@@ -28,19 +38,6 @@ class RunTab extends ApiFactory {
this
.
renderContainer
()
this
.
renderContainer
()
}
}
get
profile
()
{
return
{
name
:
'run'
,
displayName
:
'run transactions'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNTc2IDkyN2wtMTMyOCA3MzhxLTIzIDEzLTM5LjUgM3QtMTYuNS0zNnYtMTQ3MnEwLTI2IDE2LjUtMzZ0MzkuNSAzbDEzMjggNzM4cTIzIDEzIDIzIDMxdC0yMyAzMXoiLz48L3N2Zz4='
,
description
:
'execute and save transactions'
,
kind
:
'run'
,
location
:
'swapPanel'
}
}
renderContainer
()
{
renderContainer
()
{
this
.
container
=
yo
`<div class="
${
css
.
runTabView
}
" id="runTabView" ></div>`
this
.
container
=
yo
`<div class="
${
css
.
runTabView
}
" id="runTabView" ></div>`
...
...
src/app/tabs/settings-tab.js
View file @
d24904b4
...
@@ -4,11 +4,22 @@ var tooltip = require('../ui/tooltip')
...
@@ -4,11 +4,22 @@ var tooltip = require('../ui/tooltip')
var
copyToClipboard
=
require
(
'../ui/copy-to-clipboard'
)
var
copyToClipboard
=
require
(
'../ui/copy-to-clipboard'
)
var
EventManager
=
require
(
'../../lib/events'
)
var
EventManager
=
require
(
'../../lib/events'
)
var
css
=
require
(
'./styles/settings-tab-styles'
)
var
css
=
require
(
'./styles/settings-tab-styles'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
module
.
exports
=
class
SettingsTab
extends
ApiFactory
{
const
profile
=
{
displayName
:
'settings'
,
name
:
'settings'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMTUyIDg5NnEwLTEwNi03NS0xODF0LTE4MS03NS0xODEgNzUtNzUgMTgxIDc1IDE4MSAxODEgNzUgMTgxLTc1IDc1LTE4MXptNTEyLTEwOXYyMjJxMCAxMi04IDIzdC0yMCAxM2wtMTg1IDI4cS0xOSA1NC0zOSA5MSAzNSA1MCAxMDcgMTM4IDEwIDEyIDEwIDI1dC05IDIzcS0yNyAzNy05OSAxMDh0LTk0IDcxcS0xMiAwLTI2LTlsLTEzOC0xMDhxLTQ0IDIzLTkxIDM4LTE2IDEzNi0yOSAxODYtNyAyOC0zNiAyOGgtMjIycS0xNCAwLTI0LjUtOC41dC0xMS41LTIxLjVsLTI4LTE4NHEtNDktMTYtOTAtMzdsLTE0MSAxMDdxLTEwIDktMjUgOS0xNCAwLTI1LTExLTEyNi0xMTQtMTY1LTE2OC03LTEwLTctMjMgMC0xMiA4LTIzIDE1LTIxIDUxLTY2LjV0NTQtNzAuNXEtMjctNTAtNDEtOTlsLTE4My0yN3EtMTMtMi0yMS0xMi41dC04LTIzLjV2LTIyMnEwLTEyIDgtMjN0MTktMTNsMTg2LTI4cTE0LTQ2IDM5LTkyLTQwLTU3LTEwNy0xMzgtMTAtMTItMTAtMjQgMC0xMCA5LTIzIDI2LTM2IDk4LjUtMTA3LjV0OTQuNS03MS41cTEzIDAgMjYgMTBsMTM4IDEwN3E0NC0yMyA5MS0zOCAxNi0xMzYgMjktMTg2IDctMjggMzYtMjhoMjIycTE0IDAgMjQuNSA4LjV0MTEuNSAyMS41bDI4IDE4NHE0OSAxNiA5MCAzN2wxNDItMTA3cTktOSAyNC05IDEzIDAgMjUgMTAgMTI5IDExOSAxNjUgMTcwIDcgOCA3IDIyIDAgMTItOCAyMy0xNSAyMS01MSA2Ni41dC01NCA3MC41cTI2IDUwIDQxIDk4bDE4MyAyOHExMyAyIDIxIDEyLjV0OCAyMy41eiIvPjwvc3ZnPg=='
,
description
:
' - '
,
kind
:
'settings'
,
location
:
'swapPanel'
}
module
.
exports
=
class
SettingsTab
extends
BaseApi
{
constructor
(
config
,
editor
,
appManager
)
{
constructor
(
config
,
editor
,
appManager
)
{
super
()
super
(
profile
)
this
.
config
=
config
this
.
config
=
config
this
.
editor
=
editor
this
.
editor
=
editor
this
.
appManager
=
appManager
this
.
appManager
=
appManager
...
@@ -30,18 +41,7 @@ module.exports = class SettingsTab extends ApiFactory {
...
@@ -30,18 +41,7 @@ module.exports = class SettingsTab extends ApiFactory {
initTheme
()
{
initTheme
()
{
this
.
currentTheme
=
this
.
_deps
.
themeModule
.
currentTheme
()
this
.
currentTheme
=
this
.
_deps
.
themeModule
.
currentTheme
()
}
}
get
profile
()
{
return
{
displayName
:
'settings'
,
name
:
'settings'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMTUyIDg5NnEwLTEwNi03NS0xODF0LTE4MS03NS0xODEgNzUtNzUgMTgxIDc1IDE4MSAxODEgNzUgMTgxLTc1IDc1LTE4MXptNTEyLTEwOXYyMjJxMCAxMi04IDIzdC0yMCAxM2wtMTg1IDI4cS0xOSA1NC0zOSA5MSAzNSA1MCAxMDcgMTM4IDEwIDEyIDEwIDI1dC05IDIzcS0yNyAzNy05OSAxMDh0LTk0IDcxcS0xMiAwLTI2LTlsLTEzOC0xMDhxLTQ0IDIzLTkxIDM4LTE2IDEzNi0yOSAxODYtNyAyOC0zNiAyOGgtMjIycS0xNCAwLTI0LjUtOC41dC0xMS41LTIxLjVsLTI4LTE4NHEtNDktMTYtOTAtMzdsLTE0MSAxMDdxLTEwIDktMjUgOS0xNCAwLTI1LTExLTEyNi0xMTQtMTY1LTE2OC03LTEwLTctMjMgMC0xMiA4LTIzIDE1LTIxIDUxLTY2LjV0NTQtNzAuNXEtMjctNTAtNDEtOTlsLTE4My0yN3EtMTMtMi0yMS0xMi41dC04LTIzLjV2LTIyMnEwLTEyIDgtMjN0MTktMTNsMTg2LTI4cTE0LTQ2IDM5LTkyLTQwLTU3LTEwNy0xMzgtMTAtMTItMTAtMjQgMC0xMCA5LTIzIDI2LTM2IDk4LjUtMTA3LjV0OTQuNS03MS41cTEzIDAgMjYgMTBsMTM4IDEwN3E0NC0yMyA5MS0zOCAxNi0xMzYgMjktMTg2IDctMjggMzYtMjhoMjIycTE0IDAgMjQuNSA4LjV0MTEuNSAyMS41bDI4IDE4NHE0OSAxNiA5MCAzN2wxNDItMTA3cTktOSAyNC05IDEzIDAgMjUgMTAgMTI5IDExOSAxNjUgMTcwIDcgOCA3IDIyIDAgMTItOCAyMy0xNSAyMS01MSA2Ni41dC01NCA3MC41cTI2IDUwIDQxIDk4bDE4MyAyOHExMyAyIDIxIDEyLjV0OCAyMy41eiIvPjwvc3ZnPg=='
,
description
:
' - '
,
kind
:
'settings'
,
location
:
'swapPanel'
}
}
createThemeCheckies
()
{
createThemeCheckies
()
{
let
themes
=
this
.
_deps
.
themeModule
.
getThemes
()
let
themes
=
this
.
_deps
.
themeModule
.
getThemes
()
const
onswitchTheme
=
(
event
,
name
)
=>
{
const
onswitchTheme
=
(
event
,
name
)
=>
{
...
...
src/app/tabs/test-tab.js
View file @
d24904b4
...
@@ -3,13 +3,22 @@ var async = require('async')
...
@@ -3,13 +3,22 @@ var async = require('async')
var
tooltip
=
require
(
'../ui/tooltip'
)
var
tooltip
=
require
(
'../ui/tooltip'
)
var
css
=
require
(
'./styles/test-tab-styles'
)
var
css
=
require
(
'./styles/test-tab-styles'
)
var
remixTests
=
require
(
'remix-tests'
)
var
remixTests
=
require
(
'remix-tests'
)
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
const
TestTabLogic
=
require
(
'./testTab/testTab'
)
const
TestTabLogic
=
require
(
'./testTab/testTab'
)
module
.
exports
=
class
TestTab
extends
ApiFactory
{
const
profile
=
{
name
:
'solidityUnitTesting'
,
displayName
:
'solidity unit testing'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMjMwNCIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMjMwNCAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDQ0OGwtMzg0IDcwNGg3Njh6bS0xMjgwIDBsLTM4NCA3MDRoNzY4em04MjEtMTkycS0xNCA0MC00NS41IDcxLjV0LTcxLjUgNDUuNXYxMjkxaDYwOHExNCAwIDIzIDl0OSAyM3Y2NHEwIDE0LTkgMjN0LTIzIDloLTEzNDRxLTE0IDAtMjMtOXQtOS0yM3YtNjRxMC0xNCA5LTIzdDIzLTloNjA4di0xMjkxcS00MC0xNC03MS41LTQ1LjV0LTQ1LjUtNzEuNWgtNDkxcS0xNCAwLTIzLTl0LTktMjN2LTY0cTAtMTQgOS0yM3QyMy05aDQ5MXEyMS01NyA3MC05Mi41dDExMS0zNS41IDExMSAzNS41IDcwIDkyLjVoNDkxcTE0IDAgMjMgOXQ5IDIzdjY0cTAgMTQtOSAyM3QtMjMgOWgtNDkxem0tMTgxIDE2cTMzIDAgNTYuNS0yMy41dDIzLjUtNTYuNS0yMy41LTU2LjUtNTYuNS0yMy41LTU2LjUgMjMuNS0yMy41IDU2LjUgMjMuNSA1Ni41IDU2LjUgMjMuNXptMTA4OCA4ODBxMCA3My00Ni41IDEzMXQtMTE3LjUgOTEtMTQ0LjUgNDkuNS0xMzkuNSAxNi41LTEzOS41LTE2LjUtMTQ0LjUtNDkuNS0xMTcuNS05MS00Ni41LTEzMXEwLTExIDM1LTgxdDkyLTE3NC41IDEwNy0xOTUuNSAxMDItMTg0IDU2LTEwMHExOC0zMyA1Ni0zM3Q1NiAzM3E0IDcgNTYgMTAwdDEwMiAxODQgMTA3IDE5NS41IDkyIDE3NC41IDM1IDgxem0tMTI4MCAwcTAgNzMtNDYuNSAxMzF0LTExNy41IDkxLTE0NC41IDQ5LjUtMTM5LjUgMTYuNS0xMzkuNS0xNi41LTE0NC41LTQ5LjUtMTE3LjUtOTEtNDYuNS0xMzFxMC0xMSAzNS04MXQ5Mi0xNzQuNSAxMDctMTk1LjUgMTAyLTE4NCA1Ni0xMDBxMTgtMzMgNTYtMzN0NTYgMzNxNCA3IDU2IDEwMHQxMDIgMTg0IDEwNyAxOTUuNSA5MiAxNzQuNSAzNSA4MXoiLz48L3N2Zz4='
,
description
:
' - '
}
module
.
exports
=
class
TestTab
extends
BaseApi
{
constructor
(
fileManager
,
filePanel
,
compileTab
)
{
constructor
(
fileManager
,
filePanel
,
compileTab
)
{
super
()
super
(
profile
)
this
.
compileTab
=
compileTab
this
.
compileTab
=
compileTab
this
.
_view
=
{
el
:
null
}
this
.
_view
=
{
el
:
null
}
this
.
compileTab
=
compileTab
this
.
compileTab
=
compileTab
...
@@ -20,18 +29,6 @@ module.exports = class TestTab extends ApiFactory {
...
@@ -20,18 +29,6 @@ module.exports = class TestTab extends ApiFactory {
this
.
testList
=
yo
`<div class=
${
css
.
testList
}
></div>`
this
.
testList
=
yo
`<div class=
${
css
.
testList
}
></div>`
}
}
get
profile
()
{
return
{
name
:
'solidityUnitTesting'
,
displayName
:
'solidity unit testing'
,
methods
:
[],
events
:
[],
icon
:
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMjMwNCIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMjMwNCAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDQ0OGwtMzg0IDcwNGg3Njh6bS0xMjgwIDBsLTM4NCA3MDRoNzY4em04MjEtMTkycS0xNCA0MC00NS41IDcxLjV0LTcxLjUgNDUuNXYxMjkxaDYwOHExNCAwIDIzIDl0OSAyM3Y2NHEwIDE0LTkgMjN0LTIzIDloLTEzNDRxLTE0IDAtMjMtOXQtOS0yM3YtNjRxMC0xNCA5LTIzdDIzLTloNjA4di0xMjkxcS00MC0xNC03MS41LTQ1LjV0LTQ1LjUtNzEuNWgtNDkxcS0xNCAwLTIzLTl0LTktMjN2LTY0cTAtMTQgOS0yM3QyMy05aDQ5MXEyMS01NyA3MC05Mi41dDExMS0zNS41IDExMSAzNS41IDcwIDkyLjVoNDkxcTE0IDAgMjMgOXQ5IDIzdjY0cTAgMTQtOSAyM3QtMjMgOWgtNDkxem0tMTgxIDE2cTMzIDAgNTYuNS0yMy41dDIzLjUtNTYuNS0yMy41LTU2LjUtNTYuNS0yMy41LTU2LjUgMjMuNS0yMy41IDU2LjUgMjMuNSA1Ni41IDU2LjUgMjMuNXptMTA4OCA4ODBxMCA3My00Ni41IDEzMXQtMTE3LjUgOTEtMTQ0LjUgNDkuNS0xMzkuNSAxNi41LTEzOS41LTE2LjUtMTQ0LjUtNDkuNS0xMTcuNS05MS00Ni41LTEzMXEwLTExIDM1LTgxdDkyLTE3NC41IDEwNy0xOTUuNSAxMDItMTg0IDU2LTEwMHExOC0zMyA1Ni0zM3Q1NiAzM3E0IDcgNTYgMTAwdDEwMiAxODQgMTA3IDE5NS41IDkyIDE3NC41IDM1IDgxem0tMTI4MCAwcTAgNzMtNDYuNSAxMzF0LTExNy41IDkxLTE0NC41IDQ5LjUtMTM5LjUgMTYuNS0xMzkuNS0xNi41LTE0NC41LTQ5LjUtMTE3LjUtOTEtNDYuNS0xMzFxMC0xMSAzNS04MXQ5Mi0xNzQuNSAxMDctMTk1LjUgMTAyLTE4NCA1Ni0xMDBxMTgtMzMgNTYtMzN0NTYgMzNxNCA3IDU2IDEwMHQxMDIgMTg0IDEwNyAxOTUuNSA5MiAxNzQuNSAzNSA4MXoiLz48L3N2Zz4='
,
description
:
' - '
,
location
:
'swapPanel'
}
}
activate
()
{
activate
()
{
this
.
listenToEvents
()
this
.
listenToEvents
()
}
}
...
...
src/app/tabs/theme-module.js
View file @
d24904b4
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
import
{
EventEmitter
}
from
'events'
import
{
EventEmitter
}
from
'events'
const
Storage
=
require
(
'remix-lib'
).
Storage
const
Storage
=
require
(
'remix-lib'
).
Storage
...
@@ -17,24 +17,22 @@ const themes = [
...
@@ -17,24 +17,22 @@ const themes = [
{
name
:
'Superhero'
,
quality
:
'dark'
,
url
:
'https://stackpath.bootstrapcdn.com/bootswatch/4.3.1/superhero/bootstrap.min.css'
}
{
name
:
'Superhero'
,
quality
:
'dark'
,
url
:
'https://stackpath.bootstrapcdn.com/bootswatch/4.3.1/superhero/bootstrap.min.css'
}
]
]
export
class
ThemeModule
extends
ApiFactory
{
const
profile
=
{
name
:
'theme'
,
events
:
[
'themeChanged'
],
methods
:
[
'switchTheme'
,
'getThemes'
,
'currentTheme'
]
}
export
class
ThemeModule
extends
BaseApi
{
constructor
()
{
constructor
()
{
super
()
super
(
profile
)
this
.
events
=
new
EventEmitter
()
this
.
events
=
new
EventEmitter
()
this
.
storage
=
new
Storage
(
'style:'
)
this
.
storage
=
new
Storage
(
'style:'
)
this
.
themes
=
themes
.
reduce
((
acc
,
theme
)
=>
({
...
acc
,
[
theme
.
name
]:
theme
}),
{})
this
.
themes
=
themes
.
reduce
((
acc
,
theme
)
=>
({
...
acc
,
[
theme
.
name
]:
theme
}),
{})
this
.
active
=
this
.
storage
.
exists
(
'theme'
)
?
this
.
storage
.
get
(
'theme'
)
:
'Cerulean'
this
.
active
=
this
.
storage
.
exists
(
'theme'
)
?
this
.
storage
.
get
(
'theme'
)
:
'Cerulean'
}
}
get
profile
()
{
return
{
name
:
'theme'
,
events
:
[
'themeChanged'
],
methods
:
[
'switchTheme'
,
'getThemes'
,
'currentTheme'
]
}
}
/** Return the active theme */
/** Return the active theme */
currentTheme
()
{
currentTheme
()
{
return
this
.
themes
[
this
.
active
]
return
this
.
themes
[
this
.
active
]
...
...
src/app/tabs/txlistener-module.js
View file @
d24904b4
import
{
ApiFactory
}
from
'remix-plugin'
import
{
BaseApi
}
from
'remix-plugin'
import
{
EventEmitter
}
from
'events'
import
{
EventEmitter
}
from
'events'
export
class
TxListenerModule
extends
ApiFactory
{
const
profile
=
{
name
:
'txListener'
,
displayName
:
'transaction listener'
,
events
:
[
'newTransaction'
],
description
:
'service - notify new transactions'
,
permission
:
true
}
export
class
TxListenerModule
extends
BaseApi
{
constructor
(
txlistener
)
{
constructor
(
txlistener
)
{
super
()
super
(
profile
)
this
.
events
=
new
EventEmitter
()
this
.
events
=
new
EventEmitter
()
txlistener
.
event
.
register
(
'newTransaction'
,
(
tx
)
=>
{
txlistener
.
event
.
register
(
'newTransaction'
,
(
tx
)
=>
{
this
.
events
.
emit
(
'newTransaction'
,
tx
)
this
.
events
.
emit
(
'newTransaction'
,
tx
)
})
})
}
}
get
profile
()
{
return
{
name
:
'txListener'
,
displayName
:
'transaction listener'
,
events
:
[
'newTransaction'
],
description
:
'service - notify new transactions'
,
permission
:
true
}
}
}
}
src/app/ui/landing-page/landing-page.js
View file @
d24904b4
This diff is collapsed.
Click to expand it.
src/universal-dapp.js
View file @
d24904b4
...
@@ -7,12 +7,19 @@ var TxRunner = remixLib.execution.txRunner
...
@@ -7,12 +7,19 @@ var TxRunner = remixLib.execution.txRunner
var
txHelper
=
remixLib
.
execution
.
txHelper
var
txHelper
=
remixLib
.
execution
.
txHelper
var
EventManager
=
remixLib
.
EventManager
var
EventManager
=
remixLib
.
EventManager
var
executionContext
=
remixLib
.
execution
.
executionContext
var
executionContext
=
remixLib
.
execution
.
executionContext
import
{
ApiFactory
}
from
'remix-plugin'
import
{
UdappApi
}
from
'remix-plugin'
module
.
exports
=
class
UniversalDApp
extends
ApiFactory
{
const
profile
=
{
name
:
'udapp'
,
displayName
:
'universal dapp'
,
methods
:
[
'runTestTx'
,
'getAccounts'
,
'createVMAccount'
],
description
:
'service - run transaction and access account'
}
module
.
exports
=
class
UniversalDApp
extends
UdappApi
{
constructor
(
registry
)
{
constructor
(
registry
)
{
super
()
super
(
profile
)
this
.
event
=
new
EventManager
()
this
.
event
=
new
EventManager
()
this
.
_deps
=
{
this
.
_deps
=
{
config
:
registry
.
get
(
'config'
).
api
config
:
registry
.
get
(
'config'
).
api
...
@@ -32,15 +39,6 @@ module.exports = class UniversalDApp extends ApiFactory {
...
@@ -32,15 +39,6 @@ module.exports = class UniversalDApp extends ApiFactory {
executionContext
.
event
.
register
(
'contextChanged'
,
this
.
resetEnvironment
.
bind
(
this
))
executionContext
.
event
.
register
(
'contextChanged'
,
this
.
resetEnvironment
.
bind
(
this
))
}
}
get
profile
()
{
return
{
name
:
'udapp'
,
displayName
:
'universal dapp'
,
methods
:
[
'runTestTx'
,
'getAccounts'
,
'createVMAccount'
],
description
:
'service - run transaction and access account'
}
}
resetEnvironment
()
{
resetEnvironment
()
{
this
.
accounts
=
{}
this
.
accounts
=
{}
if
(
executionContext
.
isVM
())
{
if
(
executionContext
.
isVM
())
{
...
...
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