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
f0a2e6e5
Commit
f0a2e6e5
authored
Mar 15, 2017
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix tests
parent
05645cb5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
276 additions
and
225 deletions
+276
-225
Struct.js
src/solidity/types/Struct.js
+3
-2
mockStorageResolver.js
test/solidity/mockStorageResolver.js
+38
-0
storageDecoder.js
test/solidity/storageDecoder.js
+231
-219
traceManager.js
test/traceManager.js
+4
-4
No files found.
src/solidity/types/Struct.js
View file @
f0a2e6e5
...
@@ -10,13 +10,14 @@ class Struct extends RefType {
...
@@ -10,13 +10,14 @@ class Struct extends RefType {
async
decodeFromStorage
(
location
,
storageResolver
)
{
async
decodeFromStorage
(
location
,
storageResolver
)
{
var
ret
=
{}
var
ret
=
{}
this
.
members
.
map
(
async
(
item
,
i
)
=>
{
for
(
var
k
in
this
.
members
)
{
var
item
=
this
.
members
[
k
]
var
globalLocation
=
{
var
globalLocation
=
{
offset
:
location
.
offset
+
item
.
storagelocation
.
offset
,
offset
:
location
.
offset
+
item
.
storagelocation
.
offset
,
slot
:
util
.
add
(
location
.
slot
,
item
.
storagelocation
.
slot
)
slot
:
util
.
add
(
location
.
slot
,
item
.
storagelocation
.
slot
)
}
}
ret
[
item
.
name
]
=
await
item
.
type
.
decodeFromStorage
(
globalLocation
,
storageResolver
)
ret
[
item
.
name
]
=
await
item
.
type
.
decodeFromStorage
(
globalLocation
,
storageResolver
)
}
)
}
return
{
return
{
value
:
ret
,
value
:
ret
,
type
:
this
.
typeName
type
:
this
.
typeName
...
...
test/solidity/mockStorageResolver.js
0 → 100644
View file @
f0a2e6e5
'use strict'
var
util
=
require
(
'../../babelify-src/helpers/util'
)
class
MockStorageResolver
{
constructor
(
_storage
)
{
this
.
storage
=
{}
for
(
var
k
in
_storage
)
{
var
hashed
=
util
.
sha3
(
k
)
this
.
storage
[
hashed
]
=
{
hashed
:
hashed
,
key
:
k
,
value
:
_storage
[
k
]
}
}
}
storageRange
(
callback
)
{
callback
(
null
,
this
.
storage
)
}
storageSlot
(
slot
,
callback
)
{
var
hashed
=
util
.
sha3
(
slot
)
callback
(
null
,
this
.
storage
[
hashed
])
}
isComplete
(
address
)
{
return
true
}
fromCache
(
address
,
slotKey
)
{
return
this
.
storage
[
slotKey
]
}
toCache
(
address
,
storage
,
complete
)
{
}
}
module
.
exports
=
MockStorageResolver
test/solidity/storageDecoder.js
View file @
f0a2e6e5
...
@@ -2,150 +2,166 @@
...
@@ -2,150 +2,166 @@
var
tape
=
require
(
'tape'
)
var
tape
=
require
(
'tape'
)
var
compiler
=
require
(
'solc'
)
var
compiler
=
require
(
'solc'
)
var
stateDecoder
=
require
(
'../../src/index'
).
solidity
.
stateDecoder
var
stateDecoder
=
require
(
'../../src/index'
).
solidity
.
stateDecoder
var
MockStorageResolver
=
require
(
'./mockStorageResolver'
)
tape
(
'solidity'
,
function
(
t
)
{
tape
(
'solidity'
,
function
(
t
)
{
t
.
test
(
'storage decoder'
,
function
(
st
)
{
t
.
test
(
'storage decoder'
,
function
(
st
)
{
testIntStorage
(
st
)
testIntStorage
(
st
,
function
()
{
testByteStorage
(
st
)
testByteStorage
(
st
,
function
()
{
testStructArrayStorage
(
st
)
testStructArrayStorage
(
st
,
function
()
{
st
.
end
()
st
.
end
()
})
})
})
})
})
})
})
function
testIntStorage
(
st
)
{
function
testIntStorage
(
st
,
cb
)
{
var
intStorage
=
require
(
'./contracts/intStorage'
)
var
intStorage
=
require
(
'./contracts/intStorage'
)
var
output
=
compiler
.
compile
(
intStorage
.
contract
,
0
)
var
output
=
compiler
.
compile
(
intStorage
.
contract
,
0
)
var
mockStorageResolver
for
(
var
storage
of
[
intStorage
.
fullStorage
,
shrinkStorage
(
intStorage
.
fullStorage
)])
{
for
(
var
storage
of
[
intStorage
.
fullStorage
,
shrinkStorage
(
intStorage
.
fullStorage
)])
{
var
decoded
=
stateDecoder
.
solidityState
(
storage
,
output
.
sources
,
'intStorage'
)
mockStorageResolver
=
new
MockStorageResolver
(
storage
)
st
.
equal
(
decoded
[
'ui8'
].
value
,
'130'
)
stateDecoder
.
solidityState
(
mockStorageResolver
,
output
.
sources
,
'intStorage'
).
then
((
decoded
)
=>
{
st
.
equal
(
decoded
[
'ui16'
].
value
,
'456'
)
st
.
equal
(
decoded
[
'ui8'
].
value
,
'130'
)
st
.
equal
(
decoded
[
'ui32'
].
value
,
'4356'
)
st
.
equal
(
decoded
[
'ui16'
].
value
,
'456'
)
st
.
equal
(
decoded
[
'ui64'
].
value
,
'3543543543'
)
st
.
equal
(
decoded
[
'ui32'
].
value
,
'4356'
)
st
.
equal
(
decoded
[
'ui128'
].
value
,
'234567'
)
st
.
equal
(
decoded
[
'ui64'
].
value
,
'3543543543'
)
st
.
equal
(
decoded
[
'ui256'
].
value
,
'115792089237316195423570985008687907853269984665640564039457584007880697216513'
)
st
.
equal
(
decoded
[
'ui128'
].
value
,
'234567'
)
st
.
equal
(
decoded
[
'ui'
].
value
,
'123545666'
)
st
.
equal
(
decoded
[
'ui256'
].
value
,
'115792089237316195423570985008687907853269984665640564039457584007880697216513'
)
st
.
equal
(
decoded
[
'i8'
].
value
,
'-45'
)
st
.
equal
(
decoded
[
'ui'
].
value
,
'123545666'
)
st
.
equal
(
decoded
[
'i16'
].
value
,
'-1234'
)
st
.
equal
(
decoded
[
'i8'
].
value
,
'-45'
)
st
.
equal
(
decoded
[
'i32'
].
value
,
'3455'
)
st
.
equal
(
decoded
[
'i16'
].
value
,
'-1234'
)
st
.
equal
(
decoded
[
'i64'
].
value
,
'-35566'
)
st
.
equal
(
decoded
[
'i32'
].
value
,
'3455'
)
st
.
equal
(
decoded
[
'i128'
].
value
,
'-444444'
)
st
.
equal
(
decoded
[
'i64'
].
value
,
'-35566'
)
st
.
equal
(
decoded
[
'i256'
].
value
,
'3434343'
)
st
.
equal
(
decoded
[
'i128'
].
value
,
'-444444'
)
st
.
equal
(
decoded
[
'i'
].
value
,
'-32432423423'
)
st
.
equal
(
decoded
[
'i256'
].
value
,
'3434343'
)
st
.
equal
(
decoded
[
'ishrink'
].
value
,
'2'
)
st
.
equal
(
decoded
[
'i'
].
value
,
'-32432423423'
)
st
.
equal
(
decoded
[
'ishrink'
].
value
,
'2'
)
})
}
}
decoded
=
stateDecoder
.
solidityState
({},
output
.
sources
,
'intStorage'
)
mockStorageResolver
=
new
MockStorageResolver
({})
st
.
equal
(
decoded
[
'ui8'
].
value
,
'0'
)
stateDecoder
.
solidityState
(
mockStorageResolver
,
output
.
sources
,
'intStorage'
).
then
((
decoded
)
=>
{
st
.
equal
(
decoded
[
'ui16'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui8'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui32'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui16'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui64'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui32'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui128'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui64'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui256'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui128'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui256'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i8'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ui'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i16'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i8'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i32'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i16'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i64'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i32'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i128'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i64'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i256'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i128'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i256'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ishrink'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'i'
].
value
,
'0'
)
st
.
equal
(
decoded
[
'ishrink'
].
value
,
'0'
)
cb
()
})
}
}
function
testByteStorage
(
st
)
{
function
testByteStorage
(
st
,
cb
)
{
var
byteStorage
=
require
(
'./contracts/byteStorage'
)
var
byteStorage
=
require
(
'./contracts/byteStorage'
)
var
output
=
compiler
.
compile
(
byteStorage
.
contract
,
0
)
var
output
=
compiler
.
compile
(
byteStorage
.
contract
,
0
)
var
mockStorageResolver
for
(
var
storage
of
[
byteStorage
.
storage
,
shrinkStorage
(
byteStorage
.
storage
)])
{
for
(
var
storage
of
[
byteStorage
.
storage
,
shrinkStorage
(
byteStorage
.
storage
)])
{
var
decoded
=
stateDecoder
.
solidityState
(
storage
,
output
.
sources
,
'byteStorage'
)
mockStorageResolver
=
new
MockStorageResolver
(
storage
)
st
.
equal
(
decoded
[
'b1'
].
value
,
false
)
stateDecoder
.
solidityState
(
mockStorageResolver
,
output
.
sources
,
'byteStorage'
).
then
((
decoded
)
=>
{
st
.
equal
(
decoded
[
'a1'
].
value
,
'0xFE350F199F244AC9A79038D254400B632A633225'
)
st
.
equal
(
decoded
[
'b1'
].
value
,
false
)
st
.
equal
(
decoded
[
'b2'
].
value
,
true
)
st
.
equal
(
decoded
[
'a1'
].
value
,
'0xFE350F199F244AC9A79038D254400B632A633225'
)
st
.
equal
(
decoded
[
'dynb1'
].
value
,
'0x64796e616d69636279746573'
)
st
.
equal
(
decoded
[
'b2'
].
value
,
true
)
st
.
equal
(
decoded
[
'dynb1'
].
length
,
'0xc'
)
st
.
equal
(
decoded
[
'dynb1'
].
value
,
'0x64796e616d69636279746573'
)
st
.
equal
(
decoded
[
'stab'
].
value
,
'0x01'
)
st
.
equal
(
decoded
[
'dynb1'
].
length
,
'0xc'
)
st
.
equal
(
decoded
[
'stab1'
].
value
,
'0x12'
)
st
.
equal
(
decoded
[
'stab'
].
value
,
'0x01'
)
st
.
equal
(
decoded
[
'stab2'
].
value
,
'0x1579'
)
st
.
equal
(
decoded
[
'stab1'
].
value
,
'0x12'
)
st
.
equal
(
decoded
[
'stab3'
].
value
,
'0x359356'
)
st
.
equal
(
decoded
[
'stab2'
].
value
,
'0x1579'
)
st
.
equal
(
decoded
[
'stab4'
].
value
,
'0x23750000'
)
st
.
equal
(
decoded
[
'stab3'
].
value
,
'0x359356'
)
st
.
equal
(
decoded
[
'stab5'
].
value
,
'0x0235764500'
)
st
.
equal
(
decoded
[
'stab4'
].
value
,
'0x23750000'
)
st
.
equal
(
decoded
[
'stab6'
].
value
,
'0x324435000000'
)
st
.
equal
(
decoded
[
'stab5'
].
value
,
'0x0235764500'
)
st
.
equal
(
decoded
[
'stab7'
].
value
,
'0x00432400000000'
)
st
.
equal
(
decoded
[
'stab6'
].
value
,
'0x324435000000'
)
st
.
equal
(
decoded
[
'stab8'
].
value
,
'0x3245546457650000'
)
st
.
equal
(
decoded
[
'stab7'
].
value
,
'0x00432400000000'
)
st
.
equal
(
decoded
[
'stab9'
].
value
,
'0x034345430000000000'
)
st
.
equal
(
decoded
[
'stab8'
].
value
,
'0x3245546457650000'
)
st
.
equal
(
decoded
[
'stab10'
].
value
,
'0x04543543654657000000'
)
st
.
equal
(
decoded
[
'stab9'
].
value
,
'0x034345430000000000'
)
st
.
equal
(
decoded
[
'stab11'
].
value
,
'0x5435465400000000000000'
)
st
.
equal
(
decoded
[
'stab10'
].
value
,
'0x04543543654657000000'
)
st
.
equal
(
decoded
[
'stab12'
].
value
,
'0x030000000000000000000000'
)
st
.
equal
(
decoded
[
'stab11'
].
value
,
'0x5435465400000000000000'
)
st
.
equal
(
decoded
[
'stab13'
].
value
,
'0x03243242345435000000000000'
)
st
.
equal
(
decoded
[
'stab12'
].
value
,
'0x030000000000000000000000'
)
st
.
equal
(
decoded
[
'stab14'
].
value
,
'0x3245435435435300000000000000'
)
st
.
equal
(
decoded
[
'stab13'
].
value
,
'0x03243242345435000000000000'
)
st
.
equal
(
decoded
[
'stab15'
].
value
,
'0x032454434435000000000000000000'
)
st
.
equal
(
decoded
[
'stab14'
].
value
,
'0x3245435435435300000000000000'
)
st
.
equal
(
decoded
[
'stab16'
].
value
,
'0x32454354440000000000000000000000'
)
st
.
equal
(
decoded
[
'stab15'
].
value
,
'0x032454434435000000000000000000'
)
st
.
equal
(
decoded
[
'stab17'
].
value
,
'0x0324543432432432450000000000000000'
)
st
.
equal
(
decoded
[
'stab16'
].
value
,
'0x32454354440000000000000000000000'
)
st
.
equal
(
decoded
[
'stab18'
].
value
,
'0x032453432543543500000000000000000000'
)
st
.
equal
(
decoded
[
'stab17'
].
value
,
'0x0324543432432432450000000000000000'
)
st
.
equal
(
decoded
[
'stab19'
].
value
,
'0x03245434354354350000000000000000000000'
)
st
.
equal
(
decoded
[
'stab18'
].
value
,
'0x032453432543543500000000000000000000'
)
st
.
equal
(
decoded
[
'stab20'
].
value
,
'0x032454543543AB35000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab19'
].
value
,
'0x03245434354354350000000000000000000000'
)
st
.
equal
(
decoded
[
'stab21'
].
value
,
'0x324544324234350000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab20'
].
value
,
'0x032454543543AB35000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab22'
].
value
,
'0x324543AEF50000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab21'
].
value
,
'0x324544324234350000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab23'
].
value
,
'0x3245435FFF000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab22'
].
value
,
'0x324543AEF50000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab24'
].
value
,
'0x3245435F0000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab23'
].
value
,
'0x3245435FFF000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab25'
].
value
,
'0x3245435F000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab24'
].
value
,
'0x3245435F0000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab26'
].
value
,
'0x3245435F00000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab25'
].
value
,
'0x3245435F000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab27'
].
value
,
'0x03245FFFFFFF000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab26'
].
value
,
'0x3245435F00000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab28'
].
value
,
'0x03241235000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab27'
].
value
,
'0x03245FFFFFFF000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab29'
].
value
,
'0x0325213213000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab28'
].
value
,
'0x03241235000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab30'
].
value
,
'0x032454352324230000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab29'
].
value
,
'0x0325213213000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab31'
].
value
,
'0x32454351230000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab30'
].
value
,
'0x032454352324230000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab32'
].
value
,
'0x324324423432543543AB00000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab31'
].
value
,
'0x32454351230000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'enumDec'
].
value
,
'e240'
)
st
.
equal
(
decoded
[
'stab32'
].
value
,
'0x324324423432543543AB00000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'str1'
].
value
,
'short'
)
st
.
equal
(
decoded
[
'enumDec'
].
value
,
'e240'
)
st
.
equal
(
decoded
[
'str12'
].
value
,
'шеллы'
)
st
.
equal
(
decoded
[
'str1'
].
value
,
'short'
)
st
.
equal
(
decoded
[
'str2'
].
value
,
'long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long'
)
st
.
equal
(
decoded
[
'str12'
].
value
,
'шеллы'
)
st
.
equal
(
decoded
[
'str2'
].
value
,
'long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long__long'
)
})
}
}
decoded
=
stateDecoder
.
solidityState
({},
output
.
sources
,
'byteStorage'
)
mockStorageResolver
=
new
MockStorageResolver
({})
st
.
equal
(
decoded
[
'b1'
].
value
,
false
)
stateDecoder
.
solidityState
(
mockStorageResolver
,
output
.
sources
,
'byteStorage'
).
then
((
decoded
)
=>
{
st
.
equal
(
decoded
[
'a1'
].
value
,
'0x0000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'b1'
].
value
,
false
)
st
.
equal
(
decoded
[
'b2'
].
value
,
false
)
st
.
equal
(
decoded
[
'a1'
].
value
,
'0x0000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'dynb1'
].
value
,
'0x'
)
st
.
equal
(
decoded
[
'b2'
].
value
,
false
)
st
.
equal
(
decoded
[
'dynb1'
].
length
,
'0x0'
)
st
.
equal
(
decoded
[
'dynb1'
].
value
,
'0x'
)
st
.
equal
(
decoded
[
'stab'
].
value
,
'0x00'
)
st
.
equal
(
decoded
[
'dynb1'
].
length
,
'0x0'
)
st
.
equal
(
decoded
[
'stab1'
].
value
,
'0x00'
)
st
.
equal
(
decoded
[
'stab'
].
value
,
'0x00'
)
st
.
equal
(
decoded
[
'stab2'
].
value
,
'0x0000'
)
st
.
equal
(
decoded
[
'stab1'
].
value
,
'0x00'
)
st
.
equal
(
decoded
[
'stab3'
].
value
,
'0x000000'
)
st
.
equal
(
decoded
[
'stab2'
].
value
,
'0x0000'
)
st
.
equal
(
decoded
[
'stab4'
].
value
,
'0x00000000'
)
st
.
equal
(
decoded
[
'stab3'
].
value
,
'0x000000'
)
st
.
equal
(
decoded
[
'stab5'
].
value
,
'0x0000000000'
)
st
.
equal
(
decoded
[
'stab4'
].
value
,
'0x00000000'
)
st
.
equal
(
decoded
[
'stab6'
].
value
,
'0x000000000000'
)
st
.
equal
(
decoded
[
'stab5'
].
value
,
'0x0000000000'
)
st
.
equal
(
decoded
[
'stab7'
].
value
,
'0x00000000000000'
)
st
.
equal
(
decoded
[
'stab6'
].
value
,
'0x000000000000'
)
st
.
equal
(
decoded
[
'stab8'
].
value
,
'0x0000000000000000'
)
st
.
equal
(
decoded
[
'stab7'
].
value
,
'0x00000000000000'
)
st
.
equal
(
decoded
[
'stab9'
].
value
,
'0x000000000000000000'
)
st
.
equal
(
decoded
[
'stab8'
].
value
,
'0x0000000000000000'
)
st
.
equal
(
decoded
[
'stab10'
].
value
,
'0x00000000000000000000'
)
st
.
equal
(
decoded
[
'stab9'
].
value
,
'0x000000000000000000'
)
st
.
equal
(
decoded
[
'stab11'
].
value
,
'0x0000000000000000000000'
)
st
.
equal
(
decoded
[
'stab10'
].
value
,
'0x00000000000000000000'
)
st
.
equal
(
decoded
[
'stab12'
].
value
,
'0x000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab11'
].
value
,
'0x0000000000000000000000'
)
st
.
equal
(
decoded
[
'stab13'
].
value
,
'0x00000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab12'
].
value
,
'0x000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab14'
].
value
,
'0x0000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab13'
].
value
,
'0x00000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab15'
].
value
,
'0x000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab14'
].
value
,
'0x0000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab16'
].
value
,
'0x00000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab15'
].
value
,
'0x000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab17'
].
value
,
'0x0000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab16'
].
value
,
'0x00000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab18'
].
value
,
'0x000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab17'
].
value
,
'0x0000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab19'
].
value
,
'0x00000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab18'
].
value
,
'0x000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab20'
].
value
,
'0x0000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab19'
].
value
,
'0x00000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab21'
].
value
,
'0x000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab20'
].
value
,
'0x0000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab22'
].
value
,
'0x00000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab21'
].
value
,
'0x000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab23'
].
value
,
'0x0000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab22'
].
value
,
'0x00000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab24'
].
value
,
'0x000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab23'
].
value
,
'0x0000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab25'
].
value
,
'0x00000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab24'
].
value
,
'0x000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab26'
].
value
,
'0x0000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab25'
].
value
,
'0x00000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab27'
].
value
,
'0x000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab26'
].
value
,
'0x0000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab28'
].
value
,
'0x00000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab27'
].
value
,
'0x000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab29'
].
value
,
'0x0000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab28'
].
value
,
'0x00000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab30'
].
value
,
'0x000000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab29'
].
value
,
'0x0000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab31'
].
value
,
'0x00000000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab30'
].
value
,
'0x000000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab32'
].
value
,
'0x0000000000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'stab31'
].
value
,
'0x00000000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'enumDec'
].
value
,
'e0'
)
st
.
equal
(
decoded
[
'stab32'
].
value
,
'0x0000000000000000000000000000000000000000000000000000000000000000'
)
st
.
equal
(
decoded
[
'str1'
].
length
,
'0x0'
)
st
.
equal
(
decoded
[
'enumDec'
].
value
,
'e0'
)
st
.
equal
(
decoded
[
'str2'
].
length
,
'0x0'
)
st
.
equal
(
decoded
[
'str1'
].
length
,
'0x0'
)
st
.
equal
(
decoded
[
'str1'
].
value
,
''
)
st
.
equal
(
decoded
[
'str2'
].
length
,
'0x0'
)
st
.
equal
(
decoded
[
'str12'
].
value
,
''
)
st
.
equal
(
decoded
[
'str1'
].
value
,
''
)
st
.
equal
(
decoded
[
'str2'
].
value
,
''
)
st
.
equal
(
decoded
[
'str12'
].
value
,
''
)
st
.
equal
(
decoded
[
'str2'
].
value
,
''
)
cb
()
})
}
}
function
shrinkStorage
(
storage
)
{
function
shrinkStorage
(
storage
)
{
...
@@ -158,99 +174,95 @@ function shrinkStorage (storage) {
...
@@ -158,99 +174,95 @@ function shrinkStorage (storage) {
return
shrinkedStorage
return
shrinkedStorage
}
}
function
testStructArrayStorage
(
st
)
{
function
testStructArrayStorage
(
st
,
cb
)
{
var
structArrayStorage
=
require
(
'./contracts/structArrayStorage'
)
var
structArrayStorage
=
require
(
'./contracts/structArrayStorage'
)
var
output
=
compiler
.
compile
(
structArrayStorage
.
contract
,
0
)
var
output
=
compiler
.
compile
(
structArrayStorage
.
contract
,
0
)
var
decoded
=
stateDecoder
.
solidityState
(
structArrayStorage
.
storage
,
output
.
sources
,
'structArrayStorage'
)
var
mockStorageResolver
=
new
MockStorageResolver
(
structArrayStorage
.
storage
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i8'
].
value
,
'32'
)
stateDecoder
.
solidityState
(
mockStorageResolver
,
output
.
sources
,
'structArrayStorage'
).
then
((
decoded
)
=>
{
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i16'
].
value
,
'-54'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i8'
].
value
,
'32'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'ui32'
].
value
,
'128'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i16'
].
value
,
'-54'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i256'
].
value
,
'-1243565465756'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'ui32'
].
value
,
'128'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'ui16'
].
value
,
'34556'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i256'
].
value
,
'-1243565465756'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i32'
].
value
,
'-345446546'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'ui16'
].
value
,
'34556'
)
st
.
equal
(
decoded
[
'intStructDec'
].
value
[
'i32'
].
value
,
'-345446546'
)
st
.
equal
(
decoded
[
'i5'
].
length
,
'0x7'
)
st
.
equal
(
decoded
[
'i5'
].
length
,
'0x7'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
0
].
value
,
'-2134'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
0
].
value
,
'-2134'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
1
].
value
,
'345'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
1
].
value
,
'345'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
2
].
value
,
'-3246'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
2
].
value
,
'-3246'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
3
].
value
,
'4357'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
3
].
value
,
'4357'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
4
].
value
,
'324'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
4
].
value
,
'324'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
5
].
value
,
'-2344'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
5
].
value
,
'-2344'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
6
].
value
,
'3254'
)
st
.
equal
(
decoded
[
'i5'
].
value
[
6
].
value
,
'3254'
)
st
.
equal
(
decoded
[
'idyn5'
].
length
,
'0x9'
)
st
.
equal
(
decoded
[
'idyn5'
].
length
,
'0x9'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
0
].
value
,
'-2134'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
0
].
value
,
'-2134'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
1
].
value
,
'345'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
1
].
value
,
'345'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
2
].
value
,
'-3246'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
2
].
value
,
'-3246'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
3
].
value
,
'4357'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
3
].
value
,
'4357'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
4
].
value
,
'324'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
4
].
value
,
'324'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
5
].
value
,
'-2344'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
5
].
value
,
'-2344'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
6
].
value
,
'3254'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
6
].
value
,
'3254'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
7
].
value
,
'-254'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
7
].
value
,
'-254'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
8
].
value
,
'-2354'
)
st
.
equal
(
decoded
[
'idyn5'
].
value
[
8
].
value
,
'-2354'
)
st
.
equal
(
decoded
[
'dyn1'
].
length
,
'0x4'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
0
].
length
,
'0x1'
)
st
.
equal
(
decoded
[
'dyn1'
].
length
,
'0x4'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
0
].
value
[
0
].
value
,
'3'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
0
].
length
,
'0x1'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
length
,
'0x3'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
0
].
value
[
0
].
value
,
'3'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
value
[
0
].
value
,
'12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
value
[
1
].
value
,
'-12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
length
,
'0x3'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
value
[
2
].
value
,
'-1234'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
value
[
0
].
value
,
'12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
length
,
'0xa'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
value
[
1
].
value
,
'-12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
0
].
value
,
'1'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
1
].
value
[
2
].
value
,
'-1234'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
1
].
value
,
'12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
2
].
value
,
'1235'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
length
,
'0xa'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
3
].
value
,
'-12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
0
].
value
,
'1'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
4
].
value
,
'-123456'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
1
].
value
,
'12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
5
].
value
,
'-23435435'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
2
].
value
,
'1235'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
6
].
value
,
'543543'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
3
].
value
,
'-12'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
7
].
value
,
'2'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
4
].
value
,
'-123456'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
8
].
value
,
'-1'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
5
].
value
,
'-23435435'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
9
].
value
,
'232432'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
6
].
value
,
'543543'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
3
].
length
,
'0x2'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
7
].
value
,
'2'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
3
].
value
[
0
].
value
,
'232432'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
8
].
value
,
'-1'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
3
].
value
[
0
].
value
,
'232432'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
2
].
value
[
9
].
value
,
'232432'
)
st
.
equal
(
decoded
[
'dyn2'
].
length
,
'0x2'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
length
,
'0x4'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
3
].
length
,
'0x2'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
0
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
3
].
value
[
0
].
value
,
'232432'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
0
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn1'
].
value
[
3
].
value
[
0
].
value
,
'232432'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
0
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
1
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
length
,
'0x2'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
1
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
length
,
'0x4'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
1
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
0
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
2
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
0
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
2
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
0
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
2
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
1
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
3
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
1
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
3
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
1
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
3
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
2
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
length
,
'0x4'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
2
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
0
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
2
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
0
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
3
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
0
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
3
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
1
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
0
].
value
[
3
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
1
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
length
,
'0x4'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
1
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
0
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
2
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
0
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
2
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
0
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
2
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
1
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
3
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
1
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
3
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
1
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
3
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
2
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
0
].
value
.
i8
.
value
,
'34'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
2
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
0
].
value
.
str
.
value
,
'test_str_short'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
2
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
1
].
value
.
i8
.
value
,
'-123'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
3
].
value
[
0
].
value
,
'23'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
1
].
value
.
str
.
value
,
'test_str_long test_str_lo ngtest_str_longtest_str_ longtest_str_longtest_ str_longtest_str_l ongtest_str_long'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
3
].
value
[
1
].
value
,
'-23'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
1
].
value
[
0
].
value
.
i8
.
value
,
'50'
)
st
.
equal
(
decoded
[
'dyn2'
].
value
[
1
].
value
[
3
].
value
[
2
].
value
,
'-28'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
1
].
value
[
0
].
value
.
str
.
value
,
'test_str_short'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
0
].
value
.
i8
.
value
,
'34'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
0
].
value
.
i8
.
value
,
'60'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
0
].
value
.
str
.
value
,
'test_str_short'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
0
].
value
.
str
.
value
,
'test_str_short'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
1
].
value
.
i8
.
value
,
'-123'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
1
].
value
.
i8
.
value
,
'84'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
0
].
value
[
1
].
value
.
str
.
value
,
'test_str_long test_str_lo ngtest_str_longtest_str_ longtest_str_longtest_ str_longtest_str_l ongtest_str_long'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
1
].
value
.
str
.
value
,
'test_str_long test_str_lo ngtest_str_longtest_str_ longtest_str_longtest_ str_longtest_str_l ongtest_str_long'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
1
].
value
[
0
].
value
.
i8
.
value
,
'50'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
2
].
value
.
i8
.
value
,
'-34'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
1
].
value
[
0
].
value
.
str
.
value
,
'test_str_short'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
2
].
value
.
str
.
value
,
'test_str_short'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
0
].
value
.
i8
.
value
,
'60'
)
cb
()
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
0
].
value
.
str
.
value
,
'test_str_short'
)
})
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
1
].
value
.
i8
.
value
,
'84'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
1
].
value
.
str
.
value
,
'test_str_long test_str_lo ngtest_str_longtest_str_ longtest_str_longtest_ str_longtest_str_l ongtest_str_long'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
2
].
value
.
i8
.
value
,
'-34'
)
st
.
equal
(
decoded
[
'arrayStruct'
].
value
[
2
].
value
[
2
].
value
.
str
.
value
,
'test_str_short'
)
}
}
test/traceManager.js
View file @
f0a2e6e5
...
@@ -53,13 +53,13 @@ tape('TraceManager', function (t) {
...
@@ -53,13 +53,13 @@ tape('TraceManager', function (t) {
st
.
end
()
st
.
end
()
})
})
t
.
test
(
'TraceManager.getStorageAt'
,
function
(
st
)
{
t
.
test
(
'TraceManager.resolveStorage'
,
function
(
st
)
{
var
tx
=
util
.
web3
.
eth
.
getTransaction
(
'0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51'
)
traceManager
.
resolveStorage
(
110
,
'0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'
,
{},
function
(
error
,
result
)
{
traceManager
.
getStorageAt
(
110
,
tx
,
function
(
error
,
result
)
{
if
(
error
)
{
if
(
error
)
{
st
.
fail
(
error
)
st
.
fail
(
error
)
}
else
{
}
else
{
st
.
ok
(
result
[
'0x00'
]
===
'0x38'
)
console
.
log
(
JSON
.
stringify
(
result
))
st
.
ok
(
result
[
'0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563'
].
value
===
'0x38'
)
st
.
end
()
st
.
end
()
}
}
})
})
...
...
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