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
252f8b91
Commit
252f8b91
authored
Oct 12, 2020
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix#470
parent
e724491b
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
293 additions
and
28 deletions
+293
-28
checkVariableDebug.ts
apps/remix-ide-e2e/src/commands/checkVariableDebug.ts
+1
-1
goToVMTraceStep.ts
apps/remix-ide-e2e/src/commands/goToVMTraceStep.ts
+2
-5
debugger.test.ts
apps/remix-ide-e2e/src/tests/debugger.test.ts
+123
-1
Ethdebugger.js
libs/remix-debug/src/Ethdebugger.js
+4
-0
breakpointManager.js
libs/remix-debug/src/code/breakpointManager.js
+1
-1
debugger.js
libs/remix-debug/src/debugger/debugger.js
+2
-2
internalCallTree.js
libs/remix-debug/src/solidity-decoder/internalCallTree.js
+10
-0
sourceLocationTracker.js
libs/remix-debug/src/source/sourceLocationTracker.js
+22
-6
sourceMappingDecoder.js
libs/remix-debug/src/source/sourceMappingDecoder.js
+1
-7
testWeb3.js
libs/remix-debug/test/resources/testWeb3.js
+4
-0
testWeb3.json
libs/remix-debug/test/resources/testWeb3.json
+6
-2
traceWithABIEncoder.json
libs/remix-debug/test/resources/traceWithABIEncoder.json
+0
-0
sourceLocationTracker.js
libs/remix-debug/test/sourceLocationTracker.js
+113
-0
sourceMappingDecoder.js
libs/remix-debug/test/sourceMappingDecoder.js
+3
-3
tests.js
libs/remix-debug/test/tests.js
+1
-0
No files found.
apps/remix-ide-e2e/src/commands/checkVariableDebug.ts
View file @
252f8b91
...
@@ -33,7 +33,7 @@ function checkDebug (browser: NightwatchBrowser, id: string, debugValue: Nightwa
...
@@ -33,7 +33,7 @@ function checkDebug (browser: NightwatchBrowser, id: string, debugValue: Nightwa
}
}
const
equal
=
deepequal
(
debugValue
,
value
)
const
equal
=
deepequal
(
debugValue
,
value
)
if
(
!
equal
)
{
if
(
!
equal
)
{
browser
.
assert
.
fail
(
'checkDebug on '
+
id
,
'info about error
\
n '
+
JSON
.
stringify
(
debugValue
)
+
'
\
n '
+
JSON
.
stringify
(
value
),
''
)
browser
.
assert
.
fail
(
JSON
.
stringify
(
value
)
,
'info about error
\
n '
+
JSON
.
stringify
(
debugValue
)
+
'
\
n '
+
JSON
.
stringify
(
value
),
''
)
}
}
done
()
done
()
})
})
...
...
apps/remix-ide-e2e/src/commands/goToVMTraceStep.ts
View file @
252f8b91
...
@@ -2,11 +2,8 @@ import { NightwatchBrowser } from 'nightwatch'
...
@@ -2,11 +2,8 @@ import { NightwatchBrowser } from 'nightwatch'
import
EventEmitter
from
"events"
import
EventEmitter
from
"events"
class
GoToVmTraceStep
extends
EventEmitter
{
class
GoToVmTraceStep
extends
EventEmitter
{
command
(
this
:
NightwatchBrowser
,
step
:
number
,
incr
?:
number
):
NightwatchBrowser
{
command
(
this
:
NightwatchBrowser
,
step
:
number
,
incr
?:
number
):
NightwatchBrowser
{
this
.
api
.
perform
((
done
)
=>
{
goToVMtraceStep
(
this
.
api
,
step
,
incr
,
()
=>
{
goToVMtraceStep
(
this
.
api
,
step
,
incr
,
()
=>
{
this
.
emit
(
'complete'
)
done
()
this
.
emit
(
'complete'
)
})
})
})
return
this
return
this
}
}
...
...
apps/remix-ide-e2e/src/tests/debugger.test.ts
View file @
252f8b91
...
@@ -93,7 +93,43 @@ module.exports = {
...
@@ -93,7 +93,43 @@ module.exports = {
_decimals = 18;
_decimals = 18;
}`
)
!=
-
1
,
}`
)
!=
-
1
,
'current displayed content is not from the ERC20 source code'
)
'current displayed content is not from the ERC20 source code'
)
})
})
},
'Should display correct source highlighting while debugging a contract which has ABIEncoderV2'
:
function
(
browser
:
NightwatchBrowser
)
{
/*
localVariable_step266_ABIEncoder and localVariable_step717_ABIEncoder
still contains unwanted values (related to decoding calldata types)
This is still an issue @todo(https://github.com/ethereum/remix-project/issues/481), so this test will fail when this issue is fixed
*/
browser
.
clickLaunchIcon
(
'solidity'
)
.
setSolidityCompilerVersion
(
'soljson-v0.6.12+commit.27d51765.js'
)
.
clickLaunchIcon
(
'udapp'
)
.
testContracts
(
'withABIEncoderV2.sol'
,
sources
[
2
][
'browser/withABIEncoderV2.sol'
],
[
'test'
])
.
selectContract
(
'test'
)
.
createContract
(
''
)
.
clickInstance
(
2
)
.
clickFunction
(
'test1 - transact (not payable)'
,
{
types
:
'bytes userData'
,
values
:
'0x000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000015b38da6a701c568545dcfcb03fcb875f56beddc4'
})
.
debugTransaction
(
4
)
.
pause
(
2000
)
.
goToVMTraceStep
(
261
)
.
pause
(
1000
)
/*
for the test below:
source highlight should remain line `bytes32 idAsk = abi.decode(userData[:33], (bytes32));`
At this vmtrace index, the sourcemap has file = -1 because the execution is in the generated sources (ABIEncoderV2)
the atIndex of SourceLocationTracker was buggy and return an incorrect value, this is fixed
But the debugger uses now validSourcelocation, which means file is not -1.
In that case the source highlight at 261 should be the same as for step 262
*/
.
waitForElementPresent
(
'.highlightLine7'
)
.
goToVMTraceStep
(
266
)
.
pause
(
1000
)
.
checkVariableDebug
(
'soliditylocals'
,
localVariable_step266_ABIEncoder
)
// locals should not be initiated at this point, only idAsk should
.
goToVMTraceStep
(
717
)
.
pause
(
5000
)
.
checkVariableDebug
(
'soliditylocals'
,
localVariable_step717_ABIEncoder
)
// all locals should be initiaed
.
end
()
.
end
()
},
},
...
@@ -136,7 +172,92 @@ const sources = [
...
@@ -136,7 +172,92 @@ const sources = [
},
},
{
{
'browser/externalImport.sol'
:
{
content
:
'import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; contract test7 {}'
}
'browser/externalImport.sol'
:
{
content
:
'import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; contract test7 {}'
}
},
{
'browser/withABIEncoderV2.sol'
:
{
content
:
`
pragma experimental ABIEncoderV2;
contract test {
// 000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000015b38da6a701c568545dcfcb03fcb875f56beddc4
// 0000000000000000000000000000000000000000000000000000000000000002
function test1 (bytes calldata userData) external returns (bytes memory, bytes32, bytes32, uint) {
bytes32 idAsk = abi.decode(userData[:33], (bytes32));
bytes32 idOffer = abi.decode(userData[32:64], (bytes32));
bytes memory ro = abi.encodePacked(msg.sender, msg.sender, idAsk, idOffer);
return (ro, idAsk, idOffer, userData.length);
}
function testgp (bytes calldata userData) external returns (bytes4) {
return abi.decode(userData[:4], (bytes4));
}
}
`
}
}
}
]
]
const
localVariable_step266_ABIEncoder
=
{
"<1>"
:
{
"length"
:
"0xNaN"
,
"type"
:
"bytes"
,
"value"
:
"0x"
},
"<2>"
:
{
"type"
:
"bytes32"
,
"value"
:
"0x0000000000000000000000000000000000000000000000000000000000000000"
},
"<3>"
:
{
"type"
:
"bytes32"
,
"value"
:
"0x0000000000000000000000000000000000000000000000000000000000000000"
},
"<4>"
:
{
"type"
:
"uint256"
,
"value"
:
"0"
},
"idAsk"
:
{
"type"
:
"bytes32"
,
"value"
:
"0x0000000000000000000000000000000000000000000000000000000000000002"
},
"userData"
:
{
"error"
:
"<decoding failed - no decoder for calldata>"
,
"type"
:
"bytes"
}
}
const
localVariable_step717_ABIEncoder
=
{
"<1>"
:
{
"length"
:
"0xd0"
,
"type"
:
"bytes"
,
"value"
:
"0x5b38da6a701c568545dcfcb03fcb875f56beddc45b38da6a701c568545dcfcb03fcb875f56beddc400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001"
},
"<2>"
:
{
"type"
:
"bytes32"
,
"value"
:
"0x0000000000000000000000000000000000000000000000000000000000000002"
},
"<3>"
:
{
"type"
:
"bytes32"
,
"value"
:
"0x0000000000000000000000000000000000000000000000000000000000000001"
},
"<4>"
:
{
"type"
:
"uint256"
,
"value"
:
"84"
},
"idAsk"
:
{
"type"
:
"bytes32"
,
"value"
:
"0x0000000000000000000000000000000000000000000000000000000000000002"
},
"idOffer"
:
{
"type"
:
"bytes32"
,
"value"
:
"0x0000000000000000000000000000000000000000000000000000000000000001"
},
"ro"
:
{
"length"
:
"0xd0"
,
"type"
:
"bytes"
,
"value"
:
"0x5b38da6a701c568545dcfcb03fcb875f56beddc45b38da6a701c568545dcfcb03fcb875f56beddc400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001"
},
"userData"
:
{
"error"
:
"<decoding failed - no decoder for calldata>"
,
"type"
:
"bytes"
}
}
\ No newline at end of file
libs/remix-debug/src/Ethdebugger.js
View file @
252f8b91
...
@@ -60,6 +60,10 @@ Ethdebugger.prototype.sourceLocationFromVMTraceIndex = async function (address,
...
@@ -60,6 +60,10 @@ Ethdebugger.prototype.sourceLocationFromVMTraceIndex = async function (address,
return
this
.
callTree
.
sourceLocationTracker
.
getSourceLocationFromVMTraceIndex
(
address
,
stepIndex
,
this
.
solidityProxy
.
contracts
)
return
this
.
callTree
.
sourceLocationTracker
.
getSourceLocationFromVMTraceIndex
(
address
,
stepIndex
,
this
.
solidityProxy
.
contracts
)
}
}
Ethdebugger
.
prototype
.
getValidSourceLocationFromVMTraceIndex
=
async
function
(
address
,
stepIndex
)
{
return
this
.
callTree
.
sourceLocationTracker
.
getValidSourceLocationFromVMTraceIndex
(
address
,
stepIndex
,
this
.
solidityProxy
.
contracts
)
}
Ethdebugger
.
prototype
.
sourceLocationFromInstructionIndex
=
async
function
(
address
,
instIndex
,
callback
)
{
Ethdebugger
.
prototype
.
sourceLocationFromInstructionIndex
=
async
function
(
address
,
instIndex
,
callback
)
{
return
this
.
callTree
.
sourceLocationTracker
.
getSourceLocationFromInstructionIndex
(
address
,
instIndex
,
this
.
solidityProxy
.
contracts
)
return
this
.
callTree
.
sourceLocationTracker
.
getSourceLocationFromInstructionIndex
(
address
,
instIndex
,
this
.
solidityProxy
.
contracts
)
}
}
...
...
libs/remix-debug/src/code/breakpointManager.js
View file @
252f8b91
...
@@ -80,7 +80,7 @@ class BreakpointManager {
...
@@ -80,7 +80,7 @@ class BreakpointManager {
while
(
currentStep
>
0
&&
currentStep
<
this
.
debugger
.
traceManager
.
trace
.
length
)
{
while
(
currentStep
>
0
&&
currentStep
<
this
.
debugger
.
traceManager
.
trace
.
length
)
{
try
{
try
{
previousSourceLocation
=
sourceLocation
previousSourceLocation
=
sourceLocation
sourceLocation
=
await
this
.
debugger
.
callTree
.
extractSourceLocation
(
currentStep
)
sourceLocation
=
await
this
.
debugger
.
callTree
.
extract
Valid
SourceLocation
(
currentStep
)
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
'cannot jump to breakpoint '
+
e
)
console
.
log
(
'cannot jump to breakpoint '
+
e
)
return
return
...
...
libs/remix-debug/src/debugger/debugger.js
View file @
252f8b91
...
@@ -53,7 +53,7 @@ Debugger.prototype.registerAndHighlightCodeItem = async function (index) {
...
@@ -53,7 +53,7 @@ Debugger.prototype.registerAndHighlightCodeItem = async function (index) {
const
compilationResultForAddress
=
await
this
.
compilationResult
(
address
)
const
compilationResultForAddress
=
await
this
.
compilationResult
(
address
)
if
(
!
compilationResultForAddress
)
return
if
(
!
compilationResultForAddress
)
return
this
.
debugger
.
callTree
.
sourceLocationTracker
.
getSourceLocationFromVMTraceIndex
(
address
,
index
,
compilationResultForAddress
.
data
.
contracts
).
then
((
rawLocation
)
=>
{
this
.
debugger
.
callTree
.
sourceLocationTracker
.
get
Valid
SourceLocationFromVMTraceIndex
(
address
,
index
,
compilationResultForAddress
.
data
.
contracts
).
then
((
rawLocation
)
=>
{
if
(
compilationResultForAddress
&&
compilationResultForAddress
.
data
)
{
if
(
compilationResultForAddress
&&
compilationResultForAddress
.
data
)
{
var
lineColumnPos
=
this
.
offsetToLineColumnConverter
.
offsetToLineColumn
(
rawLocation
,
rawLocation
.
file
,
compilationResultForAddress
.
source
.
sources
,
compilationResultForAddress
.
data
.
sources
)
var
lineColumnPos
=
this
.
offsetToLineColumnConverter
.
offsetToLineColumn
(
rawLocation
,
rawLocation
.
file
,
compilationResultForAddress
.
source
.
sources
,
compilationResultForAddress
.
data
.
sources
)
this
.
event
.
trigger
(
'newSourceLocation'
,
[
lineColumnPos
,
rawLocation
])
this
.
event
.
trigger
(
'newSourceLocation'
,
[
lineColumnPos
,
rawLocation
])
...
@@ -114,7 +114,7 @@ Debugger.prototype.debugTx = function (tx, loadingCb) {
...
@@ -114,7 +114,7 @@ Debugger.prototype.debugTx = function (tx, loadingCb) {
this
.
step_manager
=
new
StepManager
(
this
.
debugger
,
this
.
debugger
.
traceManager
)
this
.
step_manager
=
new
StepManager
(
this
.
debugger
,
this
.
debugger
.
traceManager
)
this
.
debugger
.
codeManager
.
event
.
register
(
'changed'
,
this
,
(
code
,
address
,
instIndex
)
=>
{
this
.
debugger
.
codeManager
.
event
.
register
(
'changed'
,
this
,
(
code
,
address
,
instIndex
)
=>
{
this
.
debugger
.
callTree
.
sourceLocationTracker
.
getSourceLocationFromVMTraceIndex
(
address
,
this
.
step_manager
.
currentStepIndex
,
this
.
debugger
.
solidityProxy
.
contracts
).
then
((
sourceLocation
)
=>
{
this
.
debugger
.
callTree
.
sourceLocationTracker
.
get
Valid
SourceLocationFromVMTraceIndex
(
address
,
this
.
step_manager
.
currentStepIndex
,
this
.
debugger
.
solidityProxy
.
contracts
).
then
((
sourceLocation
)
=>
{
this
.
vmDebuggerLogic
.
event
.
trigger
(
'sourceLocationChanged'
,
[
sourceLocation
])
this
.
vmDebuggerLogic
.
event
.
trigger
(
'sourceLocationChanged'
,
[
sourceLocation
])
})
})
})
})
...
...
libs/remix-debug/src/solidity-decoder/internalCallTree.js
View file @
252f8b91
...
@@ -134,6 +134,16 @@ class InternalCallTree {
...
@@ -134,6 +134,16 @@ class InternalCallTree {
throw
new
Error
(
'InternalCallTree - Cannot retrieve sourcelocation for step '
+
step
+
' '
+
error
)
throw
new
Error
(
'InternalCallTree - Cannot retrieve sourcelocation for step '
+
step
+
' '
+
error
)
}
}
}
}
async
extractValidSourceLocation
(
step
)
{
try
{
const
address
=
this
.
traceManager
.
getCurrentCalledAddressAt
(
step
)
const
location
=
await
this
.
sourceLocationTracker
.
getValidSourceLocationFromVMTraceIndex
(
address
,
step
,
this
.
solidityProxy
.
contracts
)
return
location
}
catch
(
error
)
{
throw
new
Error
(
'InternalCallTree - Cannot retrieve valid sourcelocation for step '
+
step
+
' '
+
error
)
}
}
}
}
async
function
buildTree
(
tree
,
step
,
scopeId
,
isExternalCall
)
{
async
function
buildTree
(
tree
,
step
,
scopeId
,
isExternalCall
)
{
...
...
libs/remix-debug/src/source/sourceLocationTracker.js
View file @
252f8b91
...
@@ -3,6 +3,7 @@ const EventManager = require('../eventManager')
...
@@ -3,6 +3,7 @@ const EventManager = require('../eventManager')
const
helper
=
require
(
'../trace/traceHelper'
)
const
helper
=
require
(
'../trace/traceHelper'
)
const
SourceMappingDecoder
=
require
(
'./sourceMappingDecoder'
)
const
SourceMappingDecoder
=
require
(
'./sourceMappingDecoder'
)
const
remixLib
=
require
(
'@remix-project/remix-lib'
)
const
remixLib
=
require
(
'@remix-project/remix-lib'
)
const
{
map
}
=
require
(
'jquery'
)
const
util
=
remixLib
.
util
const
util
=
remixLib
.
util
/**
/**
...
@@ -16,12 +17,11 @@ function SourceLocationTracker (_codeManager) {
...
@@ -16,12 +17,11 @@ function SourceLocationTracker (_codeManager) {
}
}
/**
/**
* Return the source location associated with the given @arg index
* Return the source location associated with the given @arg index
(instruction index)
*
*
* @param {String} address - contract address from which the source location is retrieved
* @param {String} address - contract address from which the source location is retrieved
* @param {Int} index - index in the instruction list from where the source location is retrieved
* @param {Int} index - index in the instruction list from where the source location is retrieved
* @param {Object} contractDetails - AST of compiled contracts
* @param {Object} contractDetails - AST of compiled contracts
* @param {Function} cb - callback function
*/
*/
SourceLocationTracker
.
prototype
.
getSourceLocationFromInstructionIndex
=
async
function
(
address
,
index
,
contracts
)
{
SourceLocationTracker
.
prototype
.
getSourceLocationFromInstructionIndex
=
async
function
(
address
,
index
,
contracts
)
{
const
sourceMap
=
await
extractSourceMap
(
this
,
this
.
codeManager
,
address
,
contracts
)
const
sourceMap
=
await
extractSourceMap
(
this
,
this
.
codeManager
,
address
,
contracts
)
...
@@ -29,19 +29,35 @@ SourceLocationTracker.prototype.getSourceLocationFromInstructionIndex = async fu
...
@@ -29,19 +29,35 @@ SourceLocationTracker.prototype.getSourceLocationFromInstructionIndex = async fu
}
}
/**
/**
* Return the source location associated with the given @arg
pc
* Return the source location associated with the given @arg
vmTraceIndex
*
*
* @param {String} address - contract address from which the source location is retrieved
* @param {String} address - contract address from which the source location is retrieved
* @param {Int} vmtraceStepIndex - index of the current code in the vmtrace
* @param {Int} vmtraceStepIndex - index of the current code in the vmtrace
* @param {Object} contractDetails - AST of compiled contracts
* @param {Object} contractDetails - AST of compiled contracts
* @param {Function} cb - callback function
*/
*/
SourceLocationTracker
.
prototype
.
getSourceLocationFromVMTraceIndex
=
async
function
(
address
,
vmtraceStepIndex
,
contracts
)
{
SourceLocationTracker
.
prototype
.
getSourceLocationFromVMTraceIndex
=
async
function
(
address
,
vmtraceStepIndex
,
contracts
)
{
const
sourceMap
=
await
extractSourceMap
(
this
,
this
.
codeManager
,
address
,
contracts
)
const
sourceMap
=
await
extractSourceMap
(
this
,
this
.
codeManager
,
address
,
contracts
)
const
index
=
this
.
codeManager
.
getInstructionIndex
(
address
,
vmtraceStepIndex
)
const
index
=
this
.
codeManager
.
getInstructionIndex
(
address
,
vmtraceStepIndex
)
return
this
.
sourceMappingDecoder
.
atIndex
(
index
,
sourceMap
)
return
this
.
sourceMappingDecoder
.
atIndex
(
index
,
sourceMap
)
}
}
/**
* Return a valid source location associated with the given @arg vmTraceIndex
*
* @param {String} address - contract address from which the source location is retrieved
* @param {Int} vmtraceStepIndex - index of the current code in the vmtrace
* @param {Object} contractDetails - AST of compiled contracts
*/
SourceLocationTracker
.
prototype
.
getValidSourceLocationFromVMTraceIndex
=
async
function
(
address
,
vmtraceStepIndex
,
contracts
)
{
let
map
=
{
file
:
-
1
}
while
(
vmtraceStepIndex
>=
0
&&
map
.
file
===
-
1
)
{
map
=
await
this
.
getSourceLocationFromVMTraceIndex
(
address
,
vmtraceStepIndex
,
contracts
)
vmtraceStepIndex
=
vmtraceStepIndex
-
1
}
console
.
log
(
map
,
vmtraceStepIndex
)
return
map
}
SourceLocationTracker
.
prototype
.
clearCache
=
function
()
{
SourceLocationTracker
.
prototype
.
clearCache
=
function
()
{
this
.
sourceMapByAddress
=
{}
this
.
sourceMapByAddress
=
{}
}
}
...
@@ -52,7 +68,7 @@ function getSourceMap (address, code, contracts) {
...
@@ -52,7 +68,7 @@ function getSourceMap (address, code, contracts) {
for
(
let
file
in
contracts
)
{
for
(
let
file
in
contracts
)
{
for
(
let
contract
in
contracts
[
file
])
{
for
(
let
contract
in
contracts
[
file
])
{
const
bytecode
=
contracts
[
file
][
contract
].
evm
.
bytecode
const
bytecode
=
contracts
[
file
][
contract
].
evm
.
bytecode
const
deployedBytecode
=
contracts
[
file
][
contract
].
evm
.
deployedBytecode
const
deployedBytecode
=
contracts
[
file
][
contract
].
evm
.
deployedBytecode
if
(
!
deployedBytecode
)
continue
if
(
!
deployedBytecode
)
continue
bytes
=
isCreation
?
bytecode
.
object
:
deployedBytecode
.
object
bytes
=
isCreation
?
bytecode
.
object
:
deployedBytecode
.
object
...
...
libs/remix-debug/src/source/sourceMappingDecoder.js
View file @
252f8b91
...
@@ -205,19 +205,13 @@ function atIndex (index, mapping) {
...
@@ -205,19 +205,13 @@ function atIndex (index, mapping) {
continue
continue
}
}
current
=
current
.
split
(
':'
)
current
=
current
.
split
(
':'
)
if
(
current
[
2
]
===
'-1'
)
{
// if the current step has -1 for the file attribute, we discard it
// case: 'file' is not yet assigned, while processing the srcmap (reverse looping) to find 'start', 'length' (etc..), we tumble on -1 for the file.
// in that case the step has to be discarded
if
(
ret
.
file
===
undefined
)
ret
=
{}
continue
}
if
(
ret
.
start
===
undefined
&&
current
[
0
]
&&
current
[
0
]
!==
'-1'
&&
current
[
0
].
length
)
{
if
(
ret
.
start
===
undefined
&&
current
[
0
]
&&
current
[
0
]
!==
'-1'
&&
current
[
0
].
length
)
{
ret
.
start
=
parseInt
(
current
[
0
])
ret
.
start
=
parseInt
(
current
[
0
])
}
}
if
(
ret
.
length
===
undefined
&&
current
[
1
]
&&
current
[
1
]
!==
'-1'
&&
current
[
1
].
length
)
{
if
(
ret
.
length
===
undefined
&&
current
[
1
]
&&
current
[
1
]
!==
'-1'
&&
current
[
1
].
length
)
{
ret
.
length
=
parseInt
(
current
[
1
])
ret
.
length
=
parseInt
(
current
[
1
])
}
}
if
(
ret
.
file
===
undefined
&&
current
[
2
]
&&
current
[
2
]
!==
'-1'
&&
current
[
2
]
.
length
)
{
if
(
ret
.
file
===
undefined
&&
current
[
2
]
&&
current
[
2
].
length
)
{
ret
.
file
=
parseInt
(
current
[
2
])
ret
.
file
=
parseInt
(
current
[
2
])
}
}
if
(
ret
.
jump
===
undefined
&&
current
[
3
]
&&
current
[
3
].
length
)
{
if
(
ret
.
jump
===
undefined
&&
current
[
3
]
&&
current
[
3
].
length
)
{
...
...
libs/remix-debug/test/resources/testWeb3.js
View file @
252f8b91
...
@@ -6,6 +6,10 @@ web3Override.debug = {}
...
@@ -6,6 +6,10 @@ web3Override.debug = {}
var
data
=
init
.
readFile
(
require
(
'path'
).
resolve
(
__dirname
,
'testWeb3.json'
))
var
data
=
init
.
readFile
(
require
(
'path'
).
resolve
(
__dirname
,
'testWeb3.json'
))
data
=
JSON
.
parse
(
data
)
data
=
JSON
.
parse
(
data
)
var
traceWithABIEncoder
=
init
.
readFile
(
require
(
'path'
).
resolve
(
__dirname
,
'traceWithABIEncoder.json'
))
traceWithABIEncoder
=
data
.
testTraces
[
'0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd53'
]
=
JSON
.
parse
(
traceWithABIEncoder
)
web3Override
.
eth
.
getCode
=
function
(
address
,
callback
)
{
web3Override
.
eth
.
getCode
=
function
(
address
,
callback
)
{
if
(
callback
)
{
if
(
callback
)
{
callback
(
null
,
data
.
testCodes
[
address
])
callback
(
null
,
data
.
testCodes
[
address
])
...
...
libs/remix-debug/test/resources/testWeb3.json
View file @
252f8b91
{
{
"testTxs"
:
{
"testTxs"
:
{
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51"
:
{
"blockHash"
:
"0xd1d34932f8733e0485b7d9bf8500c4046d650f20ed7792508c304304fa7bbfac"
,
"blockNumber"
:
89
,
"from"
:
"0x00101c5bfa3fc8bad02c9f5fd65b069306251915"
,
"gas"
:
105967
,
"gasPrice"
:
"20000000000"
,
"hash"
:
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51"
,
"input"
:
"0x60fe47b10000000000000000000000000000000000000000000000000000000000000038"
,
"nonce"
:
3
,
"to"
:
"0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5"
,
"transactionIndex"
:
0
,
"value"
:
"0"
}
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51"
:
{
"blockHash"
:
"0xd1d34932f8733e0485b7d9bf8500c4046d650f20ed7792508c304304fa7bbfac"
,
"blockNumber"
:
89
,
"from"
:
"0x00101c5bfa3fc8bad02c9f5fd65b069306251915"
,
"gas"
:
105967
,
"gasPrice"
:
"20000000000"
,
"hash"
:
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51"
,
"input"
:
"0x60fe47b10000000000000000000000000000000000000000000000000000000000000038"
,
"nonce"
:
3
,
"to"
:
"0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5"
,
"transactionIndex"
:
0
,
"value"
:
"0"
},
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd52"
:
{
"blockHash"
:
"0xd1d34932f8733e0485b7d9bf8500c4046d650f20ed7792508c304304fa7bbfac"
,
"blockNumber"
:
89
,
"from"
:
"0x00101c5bfa3fc8bad02c9f5fd65b069306251915"
,
"gas"
:
105967
,
"gasPrice"
:
"20000000000"
,
"hash"
:
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd52"
,
"input"
:
"0xc27fc305"
,
"nonce"
:
3
,
"to"
:
"0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5"
,
"transactionIndex"
:
1
,
"value"
:
"0"
},
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd53"
:
{
"blockHash"
:
"0xd1d34932f8733e0485b7d9bf8500c4046d650f20ed7792508c304304fa7bbfac"
,
"blockNumber"
:
89
,
"from"
:
"0x00101c5bfa3fc8bad02c9f5fd65b069306251915"
,
"gas"
:
105967
,
"gasPrice"
:
"20000000000"
,
"hash"
:
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd53"
,
"input"
:
"0x4407e82200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000015b38da6a701c568545dcfcb03fcb875f56beddc4000000000000000000000000"
,
"nonce"
:
3
,
"to"
:
"0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5"
,
"transactionIndex"
:
1
,
"value"
:
"0"
}
},
},
"testTxsByBlock"
:
{
"testTxsByBlock"
:
{
...
@@ -12,6 +14,8 @@
...
@@ -12,6 +14,8 @@
},
},
"testTraces"
:
{
"testTraces"
:
{
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51"
:
{
"gas"
:
"0x0000000000000000000000000000000000000000000000000000000000019def"
,
"return"
:
"0x"
,
"structLogs"
:[{
"gas"
:
"84503"
,
"gasCost"
:
"3"
,
"memory"
:[],
"op"
:
"PUSH1"
,
"pc"
:
"0"
,
"stack"
:[]},{
"gas"
:
"84500"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"2"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"84497"
,
"gasCost"
:
"12"
,
"memexpand"
:
"3"
,
"op"
:
"MSTORE"
,
"pc"
:
"4"
,
"stack"
:[
"0x60"
,
"0x40"
]},{
"gas"
:
"84485"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"5"
,
"stack"
:[]},{
"gas"
:
"84482"
,
"gasCost"
:
"3"
,
"op"
:
"CALLDATALOAD"
,
"pc"
:
"7"
,
"stack"
:[
"0x00"
]},{
"gas"
:
"84479"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH29"
,
"pc"
:
"8"
,
"stack"
:[
"0x60fe47b100000000000000000000000000000000000000000000000000000000"
]},{
"gas"
:
"84476"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"38"
,
"stack"
:[
"0x60fe47b100000000000000000000000000000000000000000000000000000000"
,
"0x0100000000000000000000000000000000000000000000000000000000"
]},{
"gas"
:
"84473"
,
"gasCost"
:
"5"
,
"op"
:
"DIV"
,
"pc"
:
"39"
,
"stack"
:[
"0x0100000000000000000000000000000000000000000000000000000000"
,
"0x60fe47b100000000000000000000000000000000000000000000000000000000"
]},{
"gas"
:
"84468"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"40"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"84465"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH4"
,
"pc"
:
"41"
,
"stack"
:[
"0x60fe47b1"
,
"0x60fe47b1"
]},{
"gas"
:
"84462"
,
"gasCost"
:
"3"
,
"op"
:
"EQ"
,
"pc"
:
"46"
,
"stack"
:[
"0x60fe47b1"
,
"0x60fe47b1"
,
"0x60fe47b1"
]},{
"gas"
:
"84459"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"47"
,
"stack"
:[
"0x60fe47b1"
,
"0x01"
]},{
"gas"
:
"84456"
,
"gasCost"
:
"10"
,
"op"
:
"JUMPI"
,
"pc"
:
"49"
,
"stack"
:[
"0x60fe47b1"
,
"0x01"
,
"0x41"
]},{
"gas"
:
"84446"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"65"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"84445"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"66"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"84442"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"68"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
]},{
"gas"
:
"84439"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"70"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
]},{
"gas"
:
"84436"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"71"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x04"
]},{
"gas"
:
"84433"
,
"gasCost"
:
"3"
,
"op"
:
"CALLDATALOAD"
,
"pc"
:
"72"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x04"
,
"0x04"
]},{
"gas"
:
"84430"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"73"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x04"
,
"0x38"
]},{
"gas"
:
"84427"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"74"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x38"
,
"0x04"
]},{
"gas"
:
"84424"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"76"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x38"
,
"0x04"
,
"0x20"
]},{
"gas"
:
"84421"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"77"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x38"
,
"0x24"
]},{
"gas"
:
"84418"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"78"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x24"
,
"0x38"
]},{
"gas"
:
"84415"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"79"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x24"
,
"0x04"
]},{
"gas"
:
"84412"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"80"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x04"
,
"0x24"
]},{
"gas"
:
"84410"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"81"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x04"
]},{
"gas"
:
"84408"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"82"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"84405"
,
"gasCost"
:
"8"
,
"op"
:
"JUMP"
,
"pc"
:
"84"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x89"
]},{
"gas"
:
"84397"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"137"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"84396"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"138"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"84393"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"139"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
]},{
"gas"
:
"84390"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"141"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
]},{
"gas"
:
"84387"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"143"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
,
"0x00"
]},{
"gas"
:
"84385"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"144"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
]},{
"gas"
:
"84382"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"145"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
,
"0x38"
]},{
"gas"
:
"84379"
,
"gasCost"
:
"5000"
,
"op"
:
"SSTORE"
,
"pc"
:
"146"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x38"
,
"0x00"
]},{
"gas"
:
"79379"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"147"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
]},{
"gas"
:
"79377"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"148"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"79374"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"150"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
]},{
"gas"
:
"79371"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"152"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x40"
]},{
"gas"
:
"79368"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"153"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
]},{
"gas"
:
"79365"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"155"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
]},{
"gas"
:
"79362"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH2"
,
"pc"
:
"156"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
,
"0x45"
]},{
"gas"
:
"79359"
,
"gasCost"
:
"3"
,
"op"
:
"DUP4"
,
"pc"
:
"159"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
,
"0x45"
,
"0xf0"
]},{
"gas"
:
"79356"
,
"gasCost"
:
"21"
,
"memexpand"
:
"3"
,
"op"
:
"CODECOPY"
,
"pc"
:
"160"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
,
"0x45"
,
"0xf0"
,
"0x60"
]},{
"gas"
:
"79335"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
],
"op"
:
"ADD"
,
"pc"
:
"161"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
]},{
"gas"
:
"79332"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"162"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
]},{
"gas"
:
"79329"
,
"gasCost"
:
"3"
,
"op"
:
"DUP3"
,
"pc"
:
"163"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
]},{
"gas"
:
"79326"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"164"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
,
"0x2d"
]},{
"gas"
:
"79323"
,
"gasCost"
:
"6"
,
"memexpand"
:
"1"
,
"op"
:
"MSTORE"
,
"pc"
:
"165"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
,
"0x2d"
,
"0xa5"
]},{
"gas"
:
"79317"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"PUSH1"
,
"pc"
:
"166"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
]},{
"gas"
:
"79314"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"168"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
,
"0x20"
]},{
"gas"
:
"79311"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"169"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xc5"
]},{
"gas"
:
"79308"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"170"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0xa5"
,
"0x2d"
]},{
"gas"
:
"79306"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"171"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0xa5"
]},{
"gas"
:
"79304"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"172"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
]},{
"gas"
:
"79301"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"174"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0x40"
]},{
"gas"
:
"79298"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"DUP1"
,
"pc"
:
"175"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0x60"
]},{
"gas"
:
"79295"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"176"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0x60"
,
"0x60"
]},{
"gas"
:
"79292"
,
"gasCost"
:
"3"
,
"op"
:
"SUB"
,
"pc"
:
"177"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x60"
,
"0x60"
,
"0xc5"
]},{
"gas"
:
"79289"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"178"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x60"
,
"0x65"
]},{
"gas"
:
"79286"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"179"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x65"
,
"0x60"
]},{
"gas"
:
"79283"
,
"gasCost"
:
"32000"
,
"op"
:
"CREATE"
,
"pc"
:
"181"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x65"
,
"0x60"
,
"0x00"
]},{
"gas"
:
"47283"
,
"gasCost"
:
"3"
,
"memory"
:[],
"op"
:
"PUSH1"
,
"pc"
:
"0"
,
"stack"
:[]},{
"gas"
:
"47280"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"2"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"47277"
,
"gasCost"
:
"12"
,
"memexpand"
:
"3"
,
"op"
:
"MSTORE"
,
"pc"
:
"4"
,
"stack"
:[
"0x60"
,
"0x40"
]},{
"gas"
:
"47265"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"5"
,
"stack"
:[]},{
"gas"
:
"47262"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"7"
,
"stack"
:[
"0x40"
]},{
"gas"
:
"47259"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"8"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"47256"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"10"
,
"stack"
:[
"0x60"
,
"0x20"
]},{
"gas"
:
"47253"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"11"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x20"
]},{
"gas"
:
"47250"
,
"gasCost"
:
"3"
,
"op"
:
"DUP4"
,
"pc"
:
"13"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x20"
,
"0x45"
]},{
"gas"
:
"47247"
,
"gasCost"
:
"9"
,
"memexpand"
:
"1"
,
"op"
:
"CODECOPY"
,
"pc"
:
"14"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x20"
,
"0x45"
,
"0x60"
]},{
"gas"
:
"47238"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"DUP2"
,
"pc"
:
"15"
,
"stack"
:[
"0x60"
,
"0x20"
]},{
"gas"
:
"47235"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"16"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x60"
]},{
"gas"
:
"47232"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"17"
,
"stack"
:[
"0x60"
,
"0x80"
]},{
"gas"
:
"47229"
,
"gasCost"
:
"3"
,
"op"
:
"MSTORE"
,
"pc"
:
"19"
,
"stack"
:[
"0x60"
,
"0x80"
,
"0x40"
]},{
"gas"
:
"47226"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000080"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"DUP1"
,
"pc"
:
"20"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"47223"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"21"
,
"stack"
:[
"0x60"
,
"0x60"
]},{
"gas"
:
"47220"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"22"
,
"stack"
:[
"0x60"
,
"0x60"
,
"0x60"
]},{
"gas"
:
"47217"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000080"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"SWAP1"
,
"pc"
:
"23"
,
"stack"
:[
"0x60"
,
"0x60"
,
"0x2d"
]},{
"gas"
:
"47214"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"24"
,
"stack"
:[
"0x60"
,
"0x2d"
,
"0x60"
]},{
"gas"
:
"47211"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"26"
,
"stack"
:[
"0x60"
,
"0x2d"
,
"0x60"
,
"0x20"
]},{
"gas"
:
"47208"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"27"
,
"stack"
:[
"0x60"
,
"0x2d"
,
"0x80"
]},{
"gas"
:
"47205"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"28"
,
"stack"
:[
"0x60"
,
"0x80"
,
"0x2d"
]},{
"gas"
:
"47202"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"29"
,
"stack"
:[
"0x2d"
,
"0x80"
,
"0x60"
]},{
"gas"
:
"47199"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"30"
,
"stack"
:[
"0x2d"
,
"0x60"
,
"0x80"
]},{
"gas"
:
"47197"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"31"
,
"stack"
:[
"0x2d"
,
"0x60"
]},{
"gas"
:
"47195"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"32"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"47194"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"33"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"47191"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"34"
,
"stack"
:[
"0x2d"
,
"0x2d"
]},{
"gas"
:
"47188"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"36"
,
"stack"
:[
"0x2d"
,
"0x2d"
,
"0x01"
]},{
"gas"
:
"47185"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"37"
,
"stack"
:[
"0x2d"
,
"0x2e"
]},{
"gas"
:
"47182"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"39"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
]},{
"gas"
:
"47179"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"41"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
,
"0x00"
]},{
"gas"
:
"47177"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"42"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
]},{
"gas"
:
"47174"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"43"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
,
"0x2e"
]},{
"gas"
:
"47171"
,
"gasCost"
:
"20000"
,
"op"
:
"SSTORE"
,
"pc"
:
"44"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x2e"
,
"0x00"
]},{
"gas"
:
"27171"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"45"
,
"stack"
:[
"0x2d"
,
"0x2e"
]},{
"gas"
:
"27169"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"46"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"27168"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"47"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"27166"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"48"
,
"stack"
:[]},{
"gas"
:
"27163"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"50"
,
"stack"
:[
"0x0a"
]},{
"gas"
:
"27160"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"51"
,
"stack"
:[
"0x0a"
,
"0x0a"
]},{
"gas"
:
"27157"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"53"
,
"stack"
:[
"0x0a"
,
"0x0a"
,
"0x3b"
]},{
"gas"
:
"27154"
,
"gasCost"
:
"6"
,
"op"
:
"CODECOPY"
,
"pc"
:
"55"
,
"stack"
:[
"0x0a"
,
"0x0a"
,
"0x3b"
,
"0x00"
]},{
"gas"
:
"27148"
,
"gasCost"
:
"3"
,
"memory"
:[
"60606040526008565b0000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000080"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"PUSH1"
,
"pc"
:
"56"
,
"stack"
:[
"0x0a"
]},{
"gas"
:
"27145"
,
"gasCost"
:
"0"
,
"op"
:
"RETURN"
,
"pc"
:
"58"
,
"stack"
:[
"0x0a"
,
"0x00"
]},{
"gas"
:
"25145"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"PUSH1"
,
"pc"
:
"182"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25142"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"PUSH1"
,
"pc"
:
"184"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
]},{
"gas"
:
"25139"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH2"
,
"pc"
:
"186"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
]},{
"gas"
:
"25136"
,
"gasCost"
:
"10"
,
"op"
:
"EXP"
,
"pc"
:
"189"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0x0100"
]},{
"gas"
:
"25126"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"190"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
]},{
"gas"
:
"25123"
,
"gasCost"
:
"50"
,
"op"
:
"SLOAD"
,
"pc"
:
"191"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x01"
]},{
"gas"
:
"25073"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"192"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
]},{
"gas"
:
"25070"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH20"
,
"pc"
:
"193"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0x01"
]},{
"gas"
:
"25067"
,
"gasCost"
:
"5"
,
"op"
:
"MUL"
,
"pc"
:
"214"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0x01"
,
"0xffffffffffffffffffffffffffffffffffffffff"
]},{
"gas"
:
"25062"
,
"gasCost"
:
"3"
,
"op"
:
"NOT"
,
"pc"
:
"215"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0xffffffffffffffffffffffffffffffffffffffff"
]},{
"gas"
:
"25059"
,
"gasCost"
:
"3"
,
"op"
:
"AND"
,
"pc"
:
"216"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0xffffffffffffffffffffffff0000000000000000000000000000000000000000"
]},{
"gas"
:
"25056"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"217"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
]},{
"gas"
:
"25053"
,
"gasCost"
:
"3"
,
"op"
:
"DUP4"
,
"pc"
:
"218"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0x01"
]},{
"gas"
:
"25050"
,
"gasCost"
:
"5"
,
"op"
:
"MUL"
,
"pc"
:
"219"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0x01"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25045"
,
"gasCost"
:
"3"
,
"op"
:
"OR"
,
"pc"
:
"220"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25042"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"221"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25039"
,
"gasCost"
:
"20000"
,
"op"
:
"SSTORE"
,
"pc"
:
"222"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
]},{
"gas"
:
"5039"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"223"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"5037"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"224"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"5034"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"226"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x22"
]},{
"gas"
:
"5031"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"227"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x22"
,
"0x38"
]},{
"gas"
:
"5028"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"228"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
]},{
"gas"
:
"5025"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"230"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
]},{
"gas"
:
"5022"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"232"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
,
"0x00"
]},{
"gas"
:
"5020"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"233"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
]},{
"gas"
:
"5017"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"234"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
,
"0x5a"
]},{
"gas"
:
"5014"
,
"gasCost"
:
"5000"
,
"op"
:
"SSTORE"
,
"pc"
:
"235"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x5a"
,
"0x00"
]},{
"gas"
:
"14"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"236"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
]},{
"gas"
:
"12"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"237"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"11"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"238"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"9"
,
"gasCost"
:
"8"
,
"op"
:
"JUMP"
,
"pc"
:
"239"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
]},{
"gas"
:
"1"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"85"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"0"
,
"gasCost"
:
"0"
,
"op"
:
"STOP"
,
"pc"
:
"86"
,
"stack"
:[
"0x60fe47b1"
]}]}
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51"
:
{
"gas"
:
"0x0000000000000000000000000000000000000000000000000000000000019def"
,
"return"
:
"0x"
,
"structLogs"
:[{
"gas"
:
"84503"
,
"gasCost"
:
"3"
,
"memory"
:[],
"op"
:
"PUSH1"
,
"pc"
:
"0"
,
"stack"
:[]},{
"gas"
:
"84500"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"2"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"84497"
,
"gasCost"
:
"12"
,
"memexpand"
:
"3"
,
"op"
:
"MSTORE"
,
"pc"
:
"4"
,
"stack"
:[
"0x60"
,
"0x40"
]},{
"gas"
:
"84485"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"5"
,
"stack"
:[]},{
"gas"
:
"84482"
,
"gasCost"
:
"3"
,
"op"
:
"CALLDATALOAD"
,
"pc"
:
"7"
,
"stack"
:[
"0x00"
]},{
"gas"
:
"84479"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH29"
,
"pc"
:
"8"
,
"stack"
:[
"0x60fe47b100000000000000000000000000000000000000000000000000000000"
]},{
"gas"
:
"84476"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"38"
,
"stack"
:[
"0x60fe47b100000000000000000000000000000000000000000000000000000000"
,
"0x0100000000000000000000000000000000000000000000000000000000"
]},{
"gas"
:
"84473"
,
"gasCost"
:
"5"
,
"op"
:
"DIV"
,
"pc"
:
"39"
,
"stack"
:[
"0x0100000000000000000000000000000000000000000000000000000000"
,
"0x60fe47b100000000000000000000000000000000000000000000000000000000"
]},{
"gas"
:
"84468"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"40"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"84465"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH4"
,
"pc"
:
"41"
,
"stack"
:[
"0x60fe47b1"
,
"0x60fe47b1"
]},{
"gas"
:
"84462"
,
"gasCost"
:
"3"
,
"op"
:
"EQ"
,
"pc"
:
"46"
,
"stack"
:[
"0x60fe47b1"
,
"0x60fe47b1"
,
"0x60fe47b1"
]},{
"gas"
:
"84459"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"47"
,
"stack"
:[
"0x60fe47b1"
,
"0x01"
]},{
"gas"
:
"84456"
,
"gasCost"
:
"10"
,
"op"
:
"JUMPI"
,
"pc"
:
"49"
,
"stack"
:[
"0x60fe47b1"
,
"0x01"
,
"0x41"
]},{
"gas"
:
"84446"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"65"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"84445"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"66"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"84442"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"68"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
]},{
"gas"
:
"84439"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"70"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
]},{
"gas"
:
"84436"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"71"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x04"
]},{
"gas"
:
"84433"
,
"gasCost"
:
"3"
,
"op"
:
"CALLDATALOAD"
,
"pc"
:
"72"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x04"
,
"0x04"
]},{
"gas"
:
"84430"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"73"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x04"
,
"0x38"
]},{
"gas"
:
"84427"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"74"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x38"
,
"0x04"
]},{
"gas"
:
"84424"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"76"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x38"
,
"0x04"
,
"0x20"
]},{
"gas"
:
"84421"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"77"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x38"
,
"0x24"
]},{
"gas"
:
"84418"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"78"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x04"
,
"0x24"
,
"0x38"
]},{
"gas"
:
"84415"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"79"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x24"
,
"0x04"
]},{
"gas"
:
"84412"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"80"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x04"
,
"0x24"
]},{
"gas"
:
"84410"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"81"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x04"
]},{
"gas"
:
"84408"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"82"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"84405"
,
"gasCost"
:
"8"
,
"op"
:
"JUMP"
,
"pc"
:
"84"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x89"
]},{
"gas"
:
"84397"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"137"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"84396"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"138"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"84393"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"139"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
]},{
"gas"
:
"84390"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"141"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
]},{
"gas"
:
"84387"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"143"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
,
"0x00"
]},{
"gas"
:
"84385"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"144"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
]},{
"gas"
:
"84382"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"145"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x00"
,
"0x38"
]},{
"gas"
:
"84379"
,
"gasCost"
:
"5000"
,
"op"
:
"SSTORE"
,
"pc"
:
"146"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
,
"0x38"
,
"0x00"
]},{
"gas"
:
"79379"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"147"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x38"
]},{
"gas"
:
"79377"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"148"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"79374"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"150"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
]},{
"gas"
:
"79371"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"152"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x40"
]},{
"gas"
:
"79368"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"153"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
]},{
"gas"
:
"79365"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"155"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
]},{
"gas"
:
"79362"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH2"
,
"pc"
:
"156"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
,
"0x45"
]},{
"gas"
:
"79359"
,
"gasCost"
:
"3"
,
"op"
:
"DUP4"
,
"pc"
:
"159"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
,
"0x45"
,
"0xf0"
]},{
"gas"
:
"79356"
,
"gasCost"
:
"21"
,
"memexpand"
:
"3"
,
"op"
:
"CODECOPY"
,
"pc"
:
"160"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
,
"0x45"
,
"0xf0"
,
"0x60"
]},{
"gas"
:
"79335"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
],
"op"
:
"ADD"
,
"pc"
:
"161"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0x60"
,
"0x45"
]},{
"gas"
:
"79332"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"162"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
]},{
"gas"
:
"79329"
,
"gasCost"
:
"3"
,
"op"
:
"DUP3"
,
"pc"
:
"163"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
]},{
"gas"
:
"79326"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"164"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
,
"0x2d"
]},{
"gas"
:
"79323"
,
"gasCost"
:
"6"
,
"memexpand"
:
"1"
,
"op"
:
"MSTORE"
,
"pc"
:
"165"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
,
"0x2d"
,
"0xa5"
]},{
"gas"
:
"79317"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"PUSH1"
,
"pc"
:
"166"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
]},{
"gas"
:
"79314"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"168"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xa5"
,
"0x20"
]},{
"gas"
:
"79311"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"169"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x2d"
,
"0xa5"
,
"0xc5"
]},{
"gas"
:
"79308"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"170"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0xa5"
,
"0x2d"
]},{
"gas"
:
"79306"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"171"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0xa5"
]},{
"gas"
:
"79304"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"172"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
]},{
"gas"
:
"79301"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"174"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0x40"
]},{
"gas"
:
"79298"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"DUP1"
,
"pc"
:
"175"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0x60"
]},{
"gas"
:
"79295"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"176"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xc5"
,
"0x60"
,
"0x60"
]},{
"gas"
:
"79292"
,
"gasCost"
:
"3"
,
"op"
:
"SUB"
,
"pc"
:
"177"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x60"
,
"0x60"
,
"0xc5"
]},{
"gas"
:
"79289"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"178"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x60"
,
"0x65"
]},{
"gas"
:
"79286"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"179"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x65"
,
"0x60"
]},{
"gas"
:
"79283"
,
"gasCost"
:
"32000"
,
"op"
:
"CREATE"
,
"pc"
:
"181"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x65"
,
"0x60"
,
"0x00"
]},{
"gas"
:
"47283"
,
"gasCost"
:
"3"
,
"memory"
:[],
"op"
:
"PUSH1"
,
"pc"
:
"0"
,
"stack"
:[]},{
"gas"
:
"47280"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"2"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"47277"
,
"gasCost"
:
"12"
,
"memexpand"
:
"3"
,
"op"
:
"MSTORE"
,
"pc"
:
"4"
,
"stack"
:[
"0x60"
,
"0x40"
]},{
"gas"
:
"47265"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"5"
,
"stack"
:[]},{
"gas"
:
"47262"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"7"
,
"stack"
:[
"0x40"
]},{
"gas"
:
"47259"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
],
"op"
:
"PUSH1"
,
"pc"
:
"8"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"47256"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"10"
,
"stack"
:[
"0x60"
,
"0x20"
]},{
"gas"
:
"47253"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"11"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x20"
]},{
"gas"
:
"47250"
,
"gasCost"
:
"3"
,
"op"
:
"DUP4"
,
"pc"
:
"13"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x20"
,
"0x45"
]},{
"gas"
:
"47247"
,
"gasCost"
:
"9"
,
"memexpand"
:
"1"
,
"op"
:
"CODECOPY"
,
"pc"
:
"14"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x20"
,
"0x45"
,
"0x60"
]},{
"gas"
:
"47238"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"DUP2"
,
"pc"
:
"15"
,
"stack"
:[
"0x60"
,
"0x20"
]},{
"gas"
:
"47235"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"16"
,
"stack"
:[
"0x60"
,
"0x20"
,
"0x60"
]},{
"gas"
:
"47232"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"17"
,
"stack"
:[
"0x60"
,
"0x80"
]},{
"gas"
:
"47229"
,
"gasCost"
:
"3"
,
"op"
:
"MSTORE"
,
"pc"
:
"19"
,
"stack"
:[
"0x60"
,
"0x80"
,
"0x40"
]},{
"gas"
:
"47226"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000080"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"DUP1"
,
"pc"
:
"20"
,
"stack"
:[
"0x60"
]},{
"gas"
:
"47223"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"21"
,
"stack"
:[
"0x60"
,
"0x60"
]},{
"gas"
:
"47220"
,
"gasCost"
:
"3"
,
"op"
:
"MLOAD"
,
"pc"
:
"22"
,
"stack"
:[
"0x60"
,
"0x60"
,
"0x60"
]},{
"gas"
:
"47217"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000080"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"SWAP1"
,
"pc"
:
"23"
,
"stack"
:[
"0x60"
,
"0x60"
,
"0x2d"
]},{
"gas"
:
"47214"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"24"
,
"stack"
:[
"0x60"
,
"0x2d"
,
"0x60"
]},{
"gas"
:
"47211"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"26"
,
"stack"
:[
"0x60"
,
"0x2d"
,
"0x60"
,
"0x20"
]},{
"gas"
:
"47208"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"27"
,
"stack"
:[
"0x60"
,
"0x2d"
,
"0x80"
]},{
"gas"
:
"47205"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP2"
,
"pc"
:
"28"
,
"stack"
:[
"0x60"
,
"0x80"
,
"0x2d"
]},{
"gas"
:
"47202"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"29"
,
"stack"
:[
"0x2d"
,
"0x80"
,
"0x60"
]},{
"gas"
:
"47199"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"30"
,
"stack"
:[
"0x2d"
,
"0x60"
,
"0x80"
]},{
"gas"
:
"47197"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"31"
,
"stack"
:[
"0x2d"
,
"0x60"
]},{
"gas"
:
"47195"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"32"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"47194"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"33"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"47191"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"34"
,
"stack"
:[
"0x2d"
,
"0x2d"
]},{
"gas"
:
"47188"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"36"
,
"stack"
:[
"0x2d"
,
"0x2d"
,
"0x01"
]},{
"gas"
:
"47185"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"37"
,
"stack"
:[
"0x2d"
,
"0x2e"
]},{
"gas"
:
"47182"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"39"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
]},{
"gas"
:
"47179"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"41"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
,
"0x00"
]},{
"gas"
:
"47177"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"42"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
]},{
"gas"
:
"47174"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"43"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x00"
,
"0x2e"
]},{
"gas"
:
"47171"
,
"gasCost"
:
"20000"
,
"op"
:
"SSTORE"
,
"pc"
:
"44"
,
"stack"
:[
"0x2d"
,
"0x2e"
,
"0x2e"
,
"0x00"
]},{
"gas"
:
"27171"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"45"
,
"stack"
:[
"0x2d"
,
"0x2e"
]},{
"gas"
:
"27169"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"46"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"27168"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"47"
,
"stack"
:[
"0x2d"
]},{
"gas"
:
"27166"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"48"
,
"stack"
:[]},{
"gas"
:
"27163"
,
"gasCost"
:
"3"
,
"op"
:
"DUP1"
,
"pc"
:
"50"
,
"stack"
:[
"0x0a"
]},{
"gas"
:
"27160"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"51"
,
"stack"
:[
"0x0a"
,
"0x0a"
]},{
"gas"
:
"27157"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"53"
,
"stack"
:[
"0x0a"
,
"0x0a"
,
"0x3b"
]},{
"gas"
:
"27154"
,
"gasCost"
:
"6"
,
"op"
:
"CODECOPY"
,
"pc"
:
"55"
,
"stack"
:[
"0x0a"
,
"0x0a"
,
"0x3b"
,
"0x00"
]},{
"gas"
:
"27148"
,
"gasCost"
:
"3"
,
"memory"
:[
"60606040526008565b0000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000080"
,
"000000000000000000000000000000000000000000000000000000000000002d"
],
"op"
:
"PUSH1"
,
"pc"
:
"56"
,
"stack"
:[
"0x0a"
]},{
"gas"
:
"27145"
,
"gasCost"
:
"0"
,
"op"
:
"RETURN"
,
"pc"
:
"58"
,
"stack"
:[
"0x0a"
,
"0x00"
]},{
"gas"
:
"25145"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"PUSH1"
,
"pc"
:
"182"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25142"
,
"gasCost"
:
"3"
,
"memory"
:[
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000000"
,
"0000000000000000000000000000000000000000000000000000000000000060"
,
"6060604052604051602080604583398101604052808051906020019091905050"
,
"5b806001016000600050819055505b50600a80603b6000396000f36060604052"
,
"6008565b00000000000000000000000000000000000000000000000000000000"
,
"000000002d000000000000000000000000000000000000000000000000000000"
],
"op"
:
"PUSH1"
,
"pc"
:
"184"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
]},{
"gas"
:
"25139"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH2"
,
"pc"
:
"186"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
]},{
"gas"
:
"25136"
,
"gasCost"
:
"10"
,
"op"
:
"EXP"
,
"pc"
:
"189"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0x0100"
]},{
"gas"
:
"25126"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"190"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
]},{
"gas"
:
"25123"
,
"gasCost"
:
"50"
,
"op"
:
"SLOAD"
,
"pc"
:
"191"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x01"
]},{
"gas"
:
"25073"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"192"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
]},{
"gas"
:
"25070"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH20"
,
"pc"
:
"193"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0x01"
]},{
"gas"
:
"25067"
,
"gasCost"
:
"5"
,
"op"
:
"MUL"
,
"pc"
:
"214"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0x01"
,
"0xffffffffffffffffffffffffffffffffffffffff"
]},{
"gas"
:
"25062"
,
"gasCost"
:
"3"
,
"op"
:
"NOT"
,
"pc"
:
"215"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0xffffffffffffffffffffffffffffffffffffffff"
]},{
"gas"
:
"25059"
,
"gasCost"
:
"3"
,
"op"
:
"AND"
,
"pc"
:
"216"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
,
"0xffffffffffffffffffffffff0000000000000000000000000000000000000000"
]},{
"gas"
:
"25056"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"217"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x01"
,
"0x00"
]},{
"gas"
:
"25053"
,
"gasCost"
:
"3"
,
"op"
:
"DUP4"
,
"pc"
:
"218"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0x01"
]},{
"gas"
:
"25050"
,
"gasCost"
:
"5"
,
"op"
:
"MUL"
,
"pc"
:
"219"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0x01"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25045"
,
"gasCost"
:
"3"
,
"op"
:
"OR"
,
"pc"
:
"220"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0x00"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25042"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"221"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"25039"
,
"gasCost"
:
"20000"
,
"op"
:
"SSTORE"
,
"pc"
:
"222"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
,
"0x01"
]},{
"gas"
:
"5039"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"223"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0xd01f65e3472f24faf45f08f8698ec4da1bf32a95"
]},{
"gas"
:
"5037"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"224"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"5034"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"226"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x22"
]},{
"gas"
:
"5031"
,
"gasCost"
:
"3"
,
"op"
:
"ADD"
,
"pc"
:
"227"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x22"
,
"0x38"
]},{
"gas"
:
"5028"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"228"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
]},{
"gas"
:
"5025"
,
"gasCost"
:
"3"
,
"op"
:
"PUSH1"
,
"pc"
:
"230"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
]},{
"gas"
:
"5022"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"232"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
,
"0x00"
]},{
"gas"
:
"5020"
,
"gasCost"
:
"3"
,
"op"
:
"DUP2"
,
"pc"
:
"233"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
]},{
"gas"
:
"5017"
,
"gasCost"
:
"3"
,
"op"
:
"SWAP1"
,
"pc"
:
"234"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x00"
,
"0x5a"
]},{
"gas"
:
"5014"
,
"gasCost"
:
"5000"
,
"op"
:
"SSTORE"
,
"pc"
:
"235"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
,
"0x5a"
,
"0x00"
]},{
"gas"
:
"14"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"236"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
,
"0x5a"
]},{
"gas"
:
"12"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"237"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"11"
,
"gasCost"
:
"2"
,
"op"
:
"POP"
,
"pc"
:
"238"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
,
"0x38"
]},{
"gas"
:
"9"
,
"gasCost"
:
"8"
,
"op"
:
"JUMP"
,
"pc"
:
"239"
,
"stack"
:[
"0x60fe47b1"
,
"0x55"
]},{
"gas"
:
"1"
,
"gasCost"
:
"1"
,
"op"
:
"JUMPDEST"
,
"pc"
:
"85"
,
"stack"
:[
"0x60fe47b1"
]},{
"gas"
:
"0"
,
"gasCost"
:
"0"
,
"op"
:
"STOP"
,
"pc"
:
"86"
,
"stack"
:[
"0x60fe47b1"
]}]},
"0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd52"
:
{
"gas"
:
"0x53fa"
,
"return"
:
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"structLogs"
:[{
"stack"
:[],
"memory"
:[],
"op"
:
"PUSH1"
,
"pc"
:
0
,
"gasCost"
:
"3"
,
"gas"
:
"2978728"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[],
"op"
:
"PUSH1"
,
"pc"
:
2
,
"gasCost"
:
"3"
,
"gas"
:
"2978725"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000040"
],
"memory"
:[],
"op"
:
"MSTORE"
,
"pc"
:
4
,
"gasCost"
:
"3"
,
"gas"
:
"2978722"
,
"depth"
:
1
},{
"stack"
:[],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"CALLVALUE"
,
"pc"
:
5
,
"gasCost"
:
"2"
,
"gas"
:
"2978710"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP1"
,
"pc"
:
6
,
"gasCost"
:
"3"
,
"gas"
:
"2978708"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"ISZERO"
,
"pc"
:
7
,
"gasCost"
:
"3"
,
"gas"
:
"2978705"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000001"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
8
,
"gasCost"
:
"3"
,
"gas"
:
"2978702"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000001"
,
"0x000000000000000000000000000000000000000000000000000000000000000f"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPI"
,
"pc"
:
10
,
"gasCost"
:
"10"
,
"gas"
:
"2978699"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPDEST"
,
"pc"
:
15
,
"gasCost"
:
"1"
,
"gas"
:
"2978689"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"POP"
,
"pc"
:
16
,
"gasCost"
:
"2"
,
"gas"
:
"2978688"
,
"depth"
:
1
},{
"stack"
:[],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
17
,
"gasCost"
:
"3"
,
"gas"
:
"2978686"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"CALLDATASIZE"
,
"pc"
:
19
,
"gasCost"
:
"2"
,
"gas"
:
"2978683"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"LT"
,
"pc"
:
20
,
"gasCost"
:
"3"
,
"gas"
:
"2978681"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
21
,
"gasCost"
:
"3"
,
"gas"
:
"2978678"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000032"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPI"
,
"pc"
:
23
,
"gasCost"
:
"10"
,
"gas"
:
"2978675"
,
"depth"
:
1
},{
"stack"
:[],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
24
,
"gasCost"
:
"3"
,
"gas"
:
"2978665"
,
"depth"
:
1
},{
"stack"
:[
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"CALLDATALOAD"
,
"pc"
:
26
,
"gasCost"
:
"3"
,
"gas"
:
"2978662"
,
"depth"
:
1
},{
"stack"
:[
"0xc27fc30500000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
27
,
"gasCost"
:
"3"
,
"gas"
:
"2978659"
,
"depth"
:
1
},{
"stack"
:[
"0xc27fc30500000000000000000000000000000000000000000000000000000000"
,
"0x00000000000000000000000000000000000000000000000000000000000000e0"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"SHR"
,
"pc"
:
29
,
"gasCost"
:
"3"
,
"gas"
:
"2978656"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP1"
,
"pc"
:
30
,
"gasCost"
:
"3"
,
"gas"
:
"2978653"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH4"
,
"pc"
:
31
,
"gasCost"
:
"3"
,
"gas"
:
"2978650"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x000000000000000000000000000000000000000000000000000000009942ec6f"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"EQ"
,
"pc"
:
36
,
"gasCost"
:
"3"
,
"gas"
:
"2978647"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
37
,
"gasCost"
:
"3"
,
"gas"
:
"2978644"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000037"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPI"
,
"pc"
:
39
,
"gasCost"
:
"10"
,
"gas"
:
"2978641"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP1"
,
"pc"
:
40
,
"gasCost"
:
"3"
,
"gas"
:
"2978631"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH4"
,
"pc"
:
41
,
"gasCost"
:
"3"
,
"gas"
:
"2978628"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"EQ"
,
"pc"
:
46
,
"gasCost"
:
"3"
,
"gas"
:
"2978625"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000001"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
47
,
"gasCost"
:
"3"
,
"gas"
:
"2978622"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000001"
,
"0x000000000000000000000000000000000000000000000000000000000000003f"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPI"
,
"pc"
:
49
,
"gasCost"
:
"10"
,
"gas"
:
"2978619"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPDEST"
,
"pc"
:
63
,
"gasCost"
:
"1"
,
"gas"
:
"2978609"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
64
,
"gasCost"
:
"3"
,
"gas"
:
"2978608"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
66
,
"gasCost"
:
"3"
,
"gas"
:
"2978605"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x000000000000000000000000000000000000000000000000000000000000005d"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMP"
,
"pc"
:
68
,
"gasCost"
:
"8"
,
"gas"
:
"2978602"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPDEST"
,
"pc"
:
93
,
"gasCost"
:
"1"
,
"gas"
:
"2978594"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
94
,
"gasCost"
:
"3"
,
"gas"
:
"2978593"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP1"
,
"pc"
:
96
,
"gasCost"
:
"3"
,
"gas"
:
"2978590"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
97
,
"gasCost"
:
"3"
,
"gas"
:
"2978587"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"SWAP1"
,
"pc"
:
99
,
"gasCost"
:
"3"
,
"gas"
:
"2978584"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"POP"
,
"pc"
:
100
,
"gasCost"
:
"2"
,
"gas"
:
"2978581"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP1"
,
"pc"
:
101
,
"gasCost"
:
"3"
,
"gas"
:
"2978579"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"SWAP2"
,
"pc"
:
102
,
"gasCost"
:
"3"
,
"gas"
:
"2978576"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"POP"
,
"pc"
:
103
,
"gasCost"
:
"2"
,
"gas"
:
"2978573"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"POP"
,
"pc"
:
104
,
"gasCost"
:
"2"
,
"gas"
:
"2978571"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"SWAP1"
,
"pc"
:
105
,
"gasCost"
:
"3"
,
"gas"
:
"2978569"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000045"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMP"
,
"pc"
:
106
,
"gasCost"
:
"8"
,
"gas"
:
"2978566"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"JUMPDEST"
,
"pc"
:
69
,
"gasCost"
:
"1"
,
"gas"
:
"2978558"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"PUSH1"
,
"pc"
:
70
,
"gasCost"
:
"3"
,
"gas"
:
"2978557"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000040"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"MLOAD"
,
"pc"
:
72
,
"gasCost"
:
"3"
,
"gas"
:
"2978554"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP1"
,
"pc"
:
73
,
"gasCost"
:
"3"
,
"gas"
:
"2978551"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP3"
,
"pc"
:
74
,
"gasCost"
:
"3"
,
"gas"
:
"2978548"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"DUP2"
,
"pc"
:
75
,
"gasCost"
:
"3"
,
"gas"
:
"2978545"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
],
"op"
:
"MSTORE"
,
"pc"
:
76
,
"gasCost"
:
"3"
,
"gas"
:
"2978542"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"PUSH1"
,
"pc"
:
77
,
"gasCost"
:
"3"
,
"gas"
:
"2978533"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000020"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"ADD"
,
"pc"
:
79
,
"gasCost"
:
"3"
,
"gas"
:
"2978530"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"SWAP2"
,
"pc"
:
80
,
"gasCost"
:
"3"
,
"gas"
:
"2978527"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000004"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"POP"
,
"pc"
:
81
,
"gasCost"
:
"2"
,
"gas"
:
"2978524"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"POP"
,
"pc"
:
82
,
"gasCost"
:
"2"
,
"gas"
:
"2978522"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"PUSH1"
,
"pc"
:
83
,
"gasCost"
:
"3"
,
"gas"
:
"2978520"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
,
"0x0000000000000000000000000000000000000000000000000000000000000040"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"MLOAD"
,
"pc"
:
85
,
"gasCost"
:
"3"
,
"gas"
:
"2978517"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"DUP1"
,
"pc"
:
86
,
"gasCost"
:
"3"
,
"gas"
:
"2978514"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"SWAP2"
,
"pc"
:
87
,
"gasCost"
:
"3"
,
"gas"
:
"2978511"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x00000000000000000000000000000000000000000000000000000000000000a0"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"SUB"
,
"pc"
:
88
,
"gasCost"
:
"3"
,
"gas"
:
"2978508"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
,
"0x0000000000000000000000000000000000000000000000000000000000000020"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"SWAP1"
,
"pc"
:
89
,
"gasCost"
:
"3"
,
"gas"
:
"2978505"
,
"depth"
:
1
},{
"stack"
:[
"0x00000000000000000000000000000000000000000000000000000000c27fc305"
,
"0x0000000000000000000000000000000000000000000000000000000000000020"
,
"0x0000000000000000000000000000000000000000000000000000000000000080"
],
"memory"
:[
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000080"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000000"
,
"00000000000000000000000000000004"
],
"op"
:
"RETURN"
,
"pc"
:
90
,
"gasCost"
:
"0"
,
"gas"
:
"2978502"
,
"depth"
:
1
,
"error"
:
false
}]
}
}
}
}
}
libs/remix-debug/test/resources/traceWithABIEncoder.json
0 → 100644
View file @
252f8b91
This source diff could not be displayed because it is too large. You can
view the blob
instead.
libs/remix-debug/test/sourceLocationTracker.js
0 → 100644
View file @
252f8b91
'use strict'
const
tape
=
require
(
'tape'
)
const
TraceManager
=
require
(
'../src/trace/traceManager'
)
const
CodeManager
=
require
(
'../src/code/codeManager'
)
const
web3Test
=
require
(
'./resources/testWeb3'
)
const
sourceMapping
=
require
(
'./resources/sourceMapping'
)
const
SourceLocationTracker
=
require
(
'../src/source/sourceLocationTracker'
)
const
compiler
=
require
(
'solc'
)
const
compilerInput
=
require
(
'./helpers/compilerHelper'
).
compilerInput
tape
(
'SourceLocationTracker'
,
function
(
t
)
{
t
.
test
(
'SourceLocationTracker.getSourceLocationFromVMTraceIndex - simple contract'
,
async
function
(
st
)
{
const
traceManager
=
new
TraceManager
({
web3
:
web3Test
})
let
codeManager
=
new
CodeManager
(
traceManager
)
let
output
=
compiler
.
compile
(
compilerInput
(
contracts
))
output
=
JSON
.
parse
(
output
)
codeManager
.
codeResolver
.
cacheExecutingCode
(
'0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'
,
'0x'
+
output
.
contracts
[
'test.sol'
][
'test'
].
evm
.
deployedBytecode
.
object
)
const
tx
=
web3Test
.
eth
.
getTransaction
(
'0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd52'
)
traceManager
.
resolveTrace
(
tx
).
then
(
async
()
=>
{
const
sourceLocationTracker
=
new
SourceLocationTracker
(
codeManager
)
try
{
const
map
=
await
sourceLocationTracker
.
getSourceLocationFromVMTraceIndex
(
'0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'
,
0
,
output
.
contracts
)
st
.
equal
(
map
.
file
,
0
)
st
.
equal
(
map
.
start
,
0
)
}
catch
(
e
)
{
console
.
log
(
e
)
}
st
.
end
()
}).
catch
((
e
)
=>
{
t
.
fail
(
' - traceManager.resolveTrace - failed '
)
console
.
error
(
e
)
})
})
t
.
test
(
'SourceLocationTracker.getSourceLocationFromVMTraceIndex - ABIEncoder V2 contract'
,
async
function
(
st
)
{
const
traceManager
=
new
TraceManager
({
web3
:
web3Test
})
let
codeManager
=
new
CodeManager
(
traceManager
)
let
output
=
compiler
.
compile
(
compilerInput
(
ABIEncoderV2
))
output
=
JSON
.
parse
(
output
)
codeManager
.
codeResolver
.
cacheExecutingCode
(
'0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'
,
'0x'
+
output
.
contracts
[
'test.sol'
][
'test'
].
evm
.
deployedBytecode
.
object
)
const
tx
=
web3Test
.
eth
.
getTransaction
(
'0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd53'
)
traceManager
.
resolveTrace
(
tx
).
then
(
async
()
=>
{
const
sourceLocationTracker
=
new
SourceLocationTracker
(
codeManager
)
try
{
let
map
=
await
sourceLocationTracker
.
getSourceLocationFromVMTraceIndex
(
'0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'
,
0
,
output
.
contracts
)
console
.
log
(
map
)
st
.
equal
(
map
.
file
,
0
)
st
.
equal
(
map
.
start
,
35
)
map
=
await
sourceLocationTracker
.
getSourceLocationFromVMTraceIndex
(
'0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'
,
45
,
output
.
contracts
)
st
.
equal
(
map
.
file
,
-
1
)
map
=
await
sourceLocationTracker
.
getValidSourceLocationFromVMTraceIndex
(
'0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'
,
45
,
output
.
contracts
)
st
.
equal
(
map
.
file
,
0
)
st
.
equal
(
map
.
start
,
303
)
st
.
equal
(
map
.
length
,
448
)
}
catch
(
e
)
{
console
.
log
(
e
)
}
st
.
end
()
}).
catch
(()
=>
{
t
.
fail
(
' - traceManager.resolveTrace - failed '
)
})
})
})
const
contracts
=
`contract test {
function f1() public returns (uint) {
uint t = 4;
return t;
}
function f2() public {
}
}
`
const
ABIEncoderV2
=
`pragma experimental ABIEncoderV2;
contract test {
// 000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000015b38da6a701c568545dcfcb03fcb875f56beddc4
// 0000000000000000000000000000000000000000000000000000000000000002
function testg (bytes calldata userData) external returns (bytes memory, bytes32, bytes32, uint) {
bytes32 idAsk = abi.decode(userData[:33], (bytes32));
bytes32 idOffer = abi.decode(userData[32:64], (bytes32));
// bytes4 sellerAddress = abi.decode(userData[:4], (bytes4));
bytes memory ro = abi.encodePacked(msg.sender, msg.sender, idAsk, idOffer);
return (ro, idAsk, idOffer, userData.length);
}
function testgp (bytes calldata userData) external returns (bytes4) {
return abi.decode(userData[:4], (bytes4));
}
}
`
libs/remix-debug/test/sourceMappingDecoder.js
View file @
252f8b91
...
@@ -85,9 +85,9 @@ tape('SourceMappingDecoder', function (t) {
...
@@ -85,9 +85,9 @@ tape('SourceMappingDecoder', function (t) {
// TokenSaleChallenge - function test(uint256)
// TokenSaleChallenge - function test(uint256)
const
tokenSaleChallengeMap
=
sourceMappingDecoder
.
atIndex
(
170
,
sourceMapping
.
tokenSaleChallengeSourceMap
)
const
tokenSaleChallengeMap
=
sourceMappingDecoder
.
atIndex
(
170
,
sourceMapping
.
tokenSaleChallengeSourceMap
)
console
.
log
(
tokenSaleChallengeMap
)
console
.
log
(
tokenSaleChallengeMap
)
st
.
equal
(
tokenSaleChallengeMap
.
start
,
211
)
st
.
equal
(
tokenSaleChallengeMap
.
start
,
45
)
st
.
equal
(
tokenSaleChallengeMap
.
length
,
48
)
st
.
equal
(
tokenSaleChallengeMap
.
length
,
16
)
st
.
equal
(
tokenSaleChallengeMap
.
file
,
0
)
st
.
equal
(
tokenSaleChallengeMap
.
file
,
-
1
)
st
.
equal
(
tokenSaleChallengeMap
.
jump
,
'-'
)
st
.
equal
(
tokenSaleChallengeMap
.
jump
,
'-'
)
})
})
...
...
libs/remix-debug/test/tests.js
View file @
252f8b91
...
@@ -4,6 +4,7 @@ require('./traceManager.js')
...
@@ -4,6 +4,7 @@ require('./traceManager.js')
require
(
'./codeManager.js'
)
require
(
'./codeManager.js'
)
require
(
'./disassembler.js'
)
require
(
'./disassembler.js'
)
require
(
'./sourceMappingDecoder.js'
)
require
(
'./sourceMappingDecoder.js'
)
require
(
'./sourceLocationTracker.js'
)
require
(
'./decoder/decodeInfo.js'
)
require
(
'./decoder/decodeInfo.js'
)
require
(
'./decoder/storageLocation.js'
)
require
(
'./decoder/storageLocation.js'
)
require
(
'./decoder/storageDecoder.js'
)
require
(
'./decoder/storageDecoder.js'
)
...
...
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