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
f57be84d
Commit
f57be84d
authored
Dec 11, 2020
by
aniket-engg
Committed by
Aniket
Dec 21, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code src updated
parent
9381d571
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
15 additions
and
20 deletions
+15
-20
codeManager.ts
libs/remix-debug/src/code/codeManager.ts
+1
-1
codeResolver.ts
libs/remix-debug/src/code/codeResolver.ts
+2
-2
codeUtils.ts
libs/remix-debug/src/code/codeUtils.ts
+4
-4
disassembler.ts
libs/remix-debug/src/code/disassembler.ts
+8
-13
opcodes.ts
libs/remix-debug/src/code/opcodes.ts
+0
-0
No files found.
libs/remix-debug/src/code/codeManager.ts
View file @
f57be84d
...
...
@@ -3,7 +3,7 @@
const
EventManager
=
require
(
'../eventManager'
)
const
traceHelper
=
require
(
'../trace/traceHelper'
)
const
SourceMappingDecoder
=
require
(
'../source/sourceMappingDecoder'
)
const
CodeResolver
=
require
(
'./codeResolver'
)
import
{
CodeResolver
}
from
'./codeResolver'
/*
resolve contract code referenced by vmtrace in order to be used by asm listview.
...
...
libs/remix-debug/src/code/codeResolver.ts
View file @
f57be84d
'use strict'
const
codeUtils
=
require
(
'./codeUtils'
)
import
{
nameOpCodes
}
from
'./codeUtils'
export
class
CodeResolver
{
...
...
@@ -40,7 +40,7 @@ export class CodeResolver {
}
formatCode
(
hexCode
)
{
const
[
code
,
instructionsIndexByBytesOffset
]
=
codeUtils
.
nameOpCodes
(
Buffer
.
from
(
hexCode
.
substring
(
2
),
'hex'
))
const
[
code
,
instructionsIndexByBytesOffset
]
=
nameOpCodes
(
Buffer
.
from
(
hexCode
.
substring
(
2
),
'hex'
))
return
{
code
,
instructionsIndexByBytesOffset
}
}
...
...
libs/remix-debug/src/code/codeUtils.ts
View file @
f57be84d
'use strict'
const
opcodes
=
require
(
'./opcodes'
)
import
opcodes
from
'./opcodes'
export
function
nameOpCodes
(
raw
)
{
let
pushData
=
''
...
...
@@ -35,11 +35,11 @@ export function parseCode (raw) {
const
opcode
=
opcodes
(
raw
[
i
],
true
)
if
(
opcode
.
name
.
slice
(
0
,
4
)
===
'PUSH'
)
{
const
length
=
raw
[
i
]
-
0x5f
opcode
.
pushData
=
raw
.
slice
(
i
+
1
,
i
+
length
+
1
)
opcode
[
'pushData'
]
=
raw
.
slice
(
i
+
1
,
i
+
length
+
1
)
// in case pushdata extends beyond code
if
(
i
+
1
+
length
>
raw
.
length
)
{
for
(
let
j
=
opcode
.
pushData
.
length
;
j
<
length
;
j
++
)
{
opcode
.
pushData
.
push
(
0
)
for
(
let
j
=
opcode
[
'pushData'
]
.
length
;
j
<
length
;
j
++
)
{
opcode
[
'pushData'
]
.
push
(
0
)
}
}
i
+=
length
...
...
libs/remix-debug/src/code/disassembler.ts
View file @
f57be84d
'use strict'
const
parseCode
=
require
(
'./codeUtils'
).
parseCode
const
remixLib
=
require
(
'@remix-project/remix-lib'
)
const
util
=
remixLib
.
util
import
{
parseCode
}
from
'./codeUtils'
import
{
util
}
from
'@remix-project/remix-lib'
const
createExpressions
=
function
(
instructions
)
{
function
createExpressions
(
instructions
)
{
const
expressions
=
[]
let
labels
=
0
for
(
let
i
=
0
;
i
<
instructions
.
length
;
i
++
)
{
...
...
@@ -35,7 +34,7 @@ const createExpressions = function (instructions) {
return
expressions
}
const
toString
=
function
(
expr
)
{
function
toString
(
expr
)
{
if
(
expr
.
name
.
slice
(
0
,
4
)
===
'PUSH'
)
{
return
util
.
hexConvert
(
expr
.
pushData
)
}
else
if
(
expr
.
name
===
'JUMPDEST'
)
{
...
...
@@ -46,14 +45,10 @@ const toString = function (expr) {
return
expr
.
name
.
toLowerCase
()
}
const
disassemble
=
function
(
input
)
{
const
code
=
parseCode
(
util
.
hexToIntArray
(
input
))
return
createExpressions
(
code
).
map
(
toString
).
join
(
'
\
n'
)
}
module
.
exports
=
{
/**
/**
* Disassembler that turns bytecode (as a hex string) into Solidity inline assembly.
*/
disassemble
:
disassemble
export
function
disassemble
(
input
)
{
const
code
=
parseCode
(
util
.
hexToIntArray
(
input
))
return
createExpressions
(
code
).
map
(
toString
).
join
(
'
\
n'
)
}
libs/remix-debug/src/code/opcodes.ts
View file @
f57be84d
This diff is collapsed.
Click to expand it.
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