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
51ed62b4
Commit
51ed62b4
authored
Oct 31, 2016
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tests
parent
7d3736b5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
0 deletions
+70
-0
decodeInfo.js
test/decodeInfo.js
+69
-0
tests.js
test/tests.js
+1
-0
No files found.
test/decodeInfo.js
0 → 100644
View file @
51ed62b4
'use strict'
var
tape
=
require
(
'tape'
)
var
compiler
=
require
(
'solc'
)
var
index
=
require
(
'../src/index'
)
tape
(
'solidity'
,
function
(
t
)
{
t
.
test
(
'astHelper, decodeInfo'
,
function
(
st
)
{
var
output
=
compiler
.
compile
(
contracts
,
0
)
var
stateDec
=
index
.
solidity
.
astHelper
.
extractStateVariables
(
'contractUint'
,
output
.
sources
)
var
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
0
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
false
,
1
,
'uint8'
,
'uint'
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
2
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
false
,
32
,
'uint256'
,
'uint'
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
3
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
false
,
32
,
'uint256'
,
'uint'
)
stateDec
=
index
.
solidity
.
astHelper
.
extractStateVariables
(
'contractStructAndArray'
,
output
.
sources
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
1
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
true
,
64
,
'struct structDef'
,
'struct'
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
2
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
true
,
192
,
'struct structDef[3]'
,
'arrayType'
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
3
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
true
,
48
,
'bytes12[4]'
,
'arrayType'
)
stateDec
=
index
.
solidity
.
astHelper
.
extractStateVariables
(
'contractArray'
,
output
.
sources
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
0
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
true
,
4
*
5
,
'uint32[5]'
,
'arrayType'
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
1
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
true
,
32
,
'int8[]'
,
'arrayType'
)
decodeInfo
=
index
.
solidity
.
decodeInfo
.
decode
(
stateDec
[
2
].
attributes
.
type
,
stateDec
)
checkDecodeInfo
(
st
,
decodeInfo
,
true
,
4
*
32
,
'int16[][3][][4]'
,
'arrayType'
)
st
.
end
()
})
})
function
checkDecodeInfo
(
st
,
decodeInfo
,
freeSlot
,
storageBytes
,
typeName
,
name
)
{
st
.
equal
(
decodeInfo
.
needsFreeStorageSlot
,
freeSlot
)
st
.
equal
(
decodeInfo
.
storageBytes
,
storageBytes
)
st
.
equal
(
decodeInfo
.
typeName
,
typeName
)
st
.
equal
(
decodeInfo
.
name
,
name
)
}
var
contracts
=
`
contract baseContract {
uint8 u;
}
contract contractUint is baseContract {
uint256 ui;
uint ui1;
}
contract contractStructAndArray {
struct structDef {
uint8 ui;
string str;
}
structDef structDec;
structDef[3] array;
bytes12[4] bytesArray;
}
contract contractArray {
uint32[5] i32st;
int8[] i8dyn;
int16[][3][][4] i16dyn;
}
`
test/tests.js
View file @
51ed62b4
...
@@ -7,3 +7,4 @@ require('./astwalker.js')
...
@@ -7,3 +7,4 @@ require('./astwalker.js')
require
(
'./disassembler.js'
)
require
(
'./disassembler.js'
)
require
(
'./eventManager.js'
)
require
(
'./eventManager.js'
)
require
(
'./sourceMappingDecoder.js'
)
require
(
'./sourceMappingDecoder.js'
)
require
(
'./decodeInfo.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