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
a466f6ea
Commit
a466f6ea
authored
Jan 02, 2018
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor testing
parent
ee21320c
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
119 additions
and
139 deletions
+119
-139
localDecoder.js
remix-solidity/test/decoder/localDecoder.js
+2
-30
int.js
remix-solidity/test/decoder/localsTests/int.js
+2
-2
misc.js
remix-solidity/test/decoder/localsTests/misc.js
+2
-2
misc2.js
remix-solidity/test/decoder/localsTests/misc2.js
+2
-2
structArray.js
remix-solidity/test/decoder/localsTests/structArray.js
+2
-2
mapping.js
remix-solidity/test/decoder/stateTests/mapping.js
+75
-0
storageDecoder.js
remix-solidity/test/decoder/storageDecoder.js
+1
-100
vmCall.js
remix-solidity/test/decoder/vmCall.js
+33
-1
No files found.
remix-solidity/test/decoder/localDecoder.js
View file @
a466f6ea
...
@@ -4,11 +4,8 @@ var compiler = require('solc')
...
@@ -4,11 +4,8 @@ var compiler = require('solc')
var
intLocal
=
require
(
'./contracts/intLocal'
)
var
intLocal
=
require
(
'./contracts/intLocal'
)
var
miscLocal
=
require
(
'./contracts/miscLocal'
)
var
miscLocal
=
require
(
'./contracts/miscLocal'
)
var
structArrayLocal
=
require
(
'./contracts/structArrayLocal'
)
var
structArrayLocal
=
require
(
'./contracts/structArrayLocal'
)
var
VM
=
require
(
'ethereumjs-vm'
)
var
utileth
=
require
(
'ethereumjs-util'
)
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
Web3Providers
=
remixLib
.
vm
.
Web3Providers
var
vmCall
=
require
(
'./vmCall'
)
var
global
=
remixLib
.
global
var
intLocalTest
=
require
(
'./localsTests/int'
)
var
intLocalTest
=
require
(
'./localsTests/int'
)
var
miscLocalTest
=
require
(
'./localsTests/misc'
)
var
miscLocalTest
=
require
(
'./localsTests/misc'
)
var
misc2LocalTest
=
require
(
'./localsTests/misc2'
)
var
misc2LocalTest
=
require
(
'./localsTests/misc2'
)
...
@@ -18,36 +15,11 @@ var compilerInput = remixLib.helpers.compiler.compilerInput
...
@@ -18,36 +15,11 @@ var compilerInput = remixLib.helpers.compiler.compilerInput
tape
(
'solidity'
,
function
(
t
)
{
tape
(
'solidity'
,
function
(
t
)
{
t
.
test
(
'local decoder'
,
function
(
st
)
{
t
.
test
(
'local decoder'
,
function
(
st
)
{
var
privateKey
=
new
Buffer
(
'dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a'
,
'hex'
)
var
privateKey
=
new
Buffer
(
'dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a'
,
'hex'
)
var
address
=
utileth
.
privateToAddress
(
privateKey
)
var
vm
=
vmCall
.
initVM
(
st
,
privateKey
)
var
vm
=
initVM
(
st
,
address
)
test
(
st
,
vm
,
privateKey
)
test
(
st
,
vm
,
privateKey
)
})
})
})
})
/*
Init VM / Send Transaction
*/
function
initVM
(
st
,
address
)
{
var
vm
=
new
VM
({
enableHomestead
:
true
,
activatePrecompiles
:
true
})
vm
.
stateManager
.
putAccountBalance
(
address
,
'f00000000000000001'
,
function
cb
()
{})
var
web3Providers
=
new
Web3Providers
()
web3Providers
.
addVM
(
'VM'
,
vm
)
web3Providers
.
get
(
'VM'
,
function
(
error
,
obj
)
{
if
(
error
)
{
var
mes
=
'provider TEST not defined'
console
.
log
(
mes
)
st
.
fail
(
mes
)
}
else
{
global
.
web3
=
obj
st
.
end
()
}
})
return
vm
}
function
test
(
st
,
vm
,
privateKey
)
{
function
test
(
st
,
vm
,
privateKey
)
{
var
output
=
compiler
.
compileStandardWrapper
(
compilerInput
(
intLocal
.
contract
))
var
output
=
compiler
.
compileStandardWrapper
(
compilerInput
(
intLocal
.
contract
))
output
=
JSON
.
parse
(
output
)
output
=
JSON
.
parse
(
output
)
...
...
remix-solidity/test/decoder/localsTests/int.js
View file @
a466f6ea
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
var
remixCore
=
require
(
'remix-core'
)
var
remixCore
=
require
(
'remix-core'
)
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
vm
SendTx
=
require
(
'../vmCall'
)
var
vm
Call
=
require
(
'../vmCall'
)
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
traceHelper
=
remixLib
.
helpers
.
trace
var
traceHelper
=
remixLib
.
helpers
.
trace
...
@@ -13,7 +13,7 @@ var EventManager = remixLib.EventManager
...
@@ -13,7 +13,7 @@ var EventManager = remixLib.EventManager
var
helper
=
require
(
'./helper'
)
var
helper
=
require
(
'./helper'
)
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
vm
S
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
vm
Call
.
s
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
if
(
error
)
{
if
(
error
)
{
st
.
fail
(
error
)
st
.
fail
(
error
)
}
else
{
}
else
{
...
...
remix-solidity/test/decoder/localsTests/misc.js
View file @
a466f6ea
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
var
remixCore
=
require
(
'remix-core'
)
var
remixCore
=
require
(
'remix-core'
)
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
vm
SendTx
=
require
(
'../vmCall'
)
var
vm
Call
=
require
(
'../vmCall'
)
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
traceHelper
=
remixLib
.
helpers
.
trace
var
traceHelper
=
remixLib
.
helpers
.
trace
var
global
=
remixLib
.
global
var
global
=
remixLib
.
global
...
@@ -12,7 +12,7 @@ var EventManager = remixLib.EventManager
...
@@ -12,7 +12,7 @@ var EventManager = remixLib.EventManager
var
helper
=
require
(
'./helper'
)
var
helper
=
require
(
'./helper'
)
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
vm
S
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
vm
Call
.
s
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
if
(
error
)
{
if
(
error
)
{
st
.
fail
(
error
)
st
.
fail
(
error
)
}
else
{
}
else
{
...
...
remix-solidity/test/decoder/localsTests/misc2.js
View file @
a466f6ea
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
var
remixCore
=
require
(
'remix-core'
)
var
remixCore
=
require
(
'remix-core'
)
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
vm
SendTx
=
require
(
'../vmCall'
)
var
vm
Call
=
require
(
'../vmCall'
)
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
traceHelper
=
remixLib
.
helpers
.
trace
var
traceHelper
=
remixLib
.
helpers
.
trace
var
global
=
remixLib
.
global
var
global
=
remixLib
.
global
...
@@ -12,7 +12,7 @@ var EventManager = remixLib.EventManager
...
@@ -12,7 +12,7 @@ var EventManager = remixLib.EventManager
var
helper
=
require
(
'./helper'
)
var
helper
=
require
(
'./helper'
)
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
vm
S
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
vm
Call
.
s
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
if
(
error
)
{
if
(
error
)
{
st
.
fail
(
error
)
st
.
fail
(
error
)
}
else
{
}
else
{
...
...
remix-solidity/test/decoder/localsTests/structArray.js
View file @
a466f6ea
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
var
remixCore
=
require
(
'remix-core'
)
var
remixCore
=
require
(
'remix-core'
)
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
TraceManager
=
remixCore
.
trace
.
TraceManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
CodeManager
=
remixCore
.
code
.
CodeManager
var
vm
SendTx
=
require
(
'../vmCall'
)
var
vm
Call
=
require
(
'../vmCall'
)
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
traceHelper
=
remixLib
.
helpers
.
trace
var
traceHelper
=
remixLib
.
helpers
.
trace
var
global
=
remixLib
.
global
var
global
=
remixLib
.
global
...
@@ -12,7 +12,7 @@ var EventManager = remixLib.EventManager
...
@@ -12,7 +12,7 @@ var EventManager = remixLib.EventManager
var
helper
=
require
(
'./helper'
)
var
helper
=
require
(
'./helper'
)
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
module
.
exports
=
function
(
st
,
vm
,
privateKey
,
contractBytecode
,
compilationResult
,
cb
)
{
vm
S
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
vm
Call
.
s
endTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
contractBytecode
,
function
(
error
,
txHash
)
{
if
(
error
)
{
if
(
error
)
{
st
.
fail
(
error
)
st
.
fail
(
error
)
}
else
{
}
else
{
...
...
remix-solidity/test/decoder/stateTests/mapping.js
0 → 100644
View file @
a466f6ea
var
remixLib
=
require
(
'remix-lib'
)
var
compilerInput
=
remixLib
.
helpers
.
compiler
.
compilerInput
var
compiler
=
require
(
'solc'
)
var
stateDecoder
=
require
(
'../../../src/decoder/stateDecoder'
)
var
vmCall
=
require
(
'../vmCall'
)
module
.
exports
=
function
testMappingStorage
(
st
,
cb
)
{
var
mappingStorage
=
require
(
'../contracts/mappingStorage'
)
var
privateKey
=
new
Buffer
(
'dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a'
,
'hex'
)
var
vm
=
vmCall
.
initVM
(
st
,
privateKey
)
var
output
=
compiler
.
compileStandardWrapper
(
compilerInput
(
mappingStorage
.
contract
))
output
=
JSON
.
parse
(
output
)
vmCall
.
sendTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
output
.
contracts
[
'test.sol'
][
'SimpleMappingState'
].
evm
.
bytecode
.
object
,
function
(
error
,
txHash
)
{
if
(
error
)
{
console
.
log
(
error
)
st
.
end
(
error
)
}
else
{
remixLib
.
global
.
web3
.
eth
.
getTransaction
(
txHash
,
(
error
,
tx
)
=>
{
if
(
error
)
{
st
.
end
(
error
)
}
else
{
testMapping
(
st
,
vm
,
privateKey
,
tx
.
contractAddress
,
output
,
(
error
)
=>
{
st
.
end
(
error
)
cb
()
})
}
})
}
})
}
function
testMapping
(
st
,
vm
,
privateKey
,
contractAddress
,
output
,
cb
)
{
vmCall
.
sendTx
(
vm
,
{
nonce
:
1
,
privateKey
:
privateKey
},
contractAddress
,
0
,
'2fd0a83a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001074686973206973206120737472696e6700000000000000000000000000000000'
,
function
(
error
,
txHash
)
{
if
(
error
)
{
console
.
log
(
error
)
st
.
end
(
error
)
}
else
{
console
.
log
(
txHash
)
remixLib
.
global
.
web3
.
eth
.
getTransaction
(
txHash
,
(
error
,
tx
)
=>
{
if
(
error
)
{
st
.
end
(
error
)
}
else
{
var
TraceManager
=
require
(
'remix-core'
).
trace
.
TraceManager
var
traceManager
=
new
TraceManager
()
traceManager
.
resolveTrace
(
tx
,
()
=>
{
var
StorageResolver
=
require
(
'remix-core'
).
storage
.
StorageResolver
var
StorageViewer
=
require
(
'remix-core'
).
storage
.
StorageViewer
var
storageViewer
=
new
StorageViewer
({
stepIndex
:
199
,
tx
:
tx
,
address
:
contractAddress
},
new
StorageResolver
(),
traceManager
)
var
stateVars
=
stateDecoder
.
extractStateVariables
(
'SimpleMappingState'
,
output
.
sources
)
stateDecoder
.
decodeState
(
stateVars
,
storageViewer
).
then
((
result
)
=>
{
console
.
log
(
'ok'
,
JSON
.
stringify
(
result
))
st
.
equal
(
result
[
'_num'
].
value
,
'1'
)
st
.
equal
(
result
[
'_num'
].
type
,
'uint256'
)
st
.
equal
(
result
[
'_iBreakSolidityState'
].
type
,
'mapping(string => uint256)'
)
st
.
equal
(
result
[
'_iBreakSolidityState'
].
value
[
'74686973206973206120737472696e67'
].
value
,
'1'
)
st
.
equal
(
result
[
'_iBreakSolidityState'
].
value
[
'74686973206973206120737472696e67'
].
type
,
'uint256'
)
st
.
equal
(
result
[
'_iBreakSolidityStateInt'
].
type
,
'mapping(uint256 => uint256)'
)
st
.
equal
(
result
[
'_iBreakSolidityStateInt'
].
value
[
'0000000000000000000000000000000000000000000000000000000000000001'
].
value
,
'1'
)
st
.
equal
(
result
[
'_iBreakSolidityStateInt'
].
value
[
'0000000000000000000000000000000000000000000000000000000000000001'
].
type
,
'uint256'
)
// st.end()
},
(
reason
)
=>
{
console
.
log
(
'fail'
)
st
.
end
(
reason
)
})
})
}
})
}
})
}
remix-solidity/test/decoder/storageDecoder.js
View file @
a466f6ea
...
@@ -5,6 +5,7 @@ var stateDecoder = require('../../src/decoder/stateDecoder')
...
@@ -5,6 +5,7 @@ var stateDecoder = require('../../src/decoder/stateDecoder')
var
MockStorageResolver
=
require
(
'./mockStorageResolver'
)
var
MockStorageResolver
=
require
(
'./mockStorageResolver'
)
var
remixLib
=
require
(
'remix-lib'
)
var
remixLib
=
require
(
'remix-lib'
)
var
compilerInput
=
remixLib
.
helpers
.
compiler
.
compilerInput
var
compilerInput
=
remixLib
.
helpers
.
compiler
.
compilerInput
var
testMappingStorage
=
require
(
'./stateTests/mapping'
)
tape
(
'solidity'
,
function
(
t
)
{
tape
(
'solidity'
,
function
(
t
)
{
t
.
test
(
'storage decoder'
,
function
(
st
)
{
t
.
test
(
'storage decoder'
,
function
(
st
)
{
...
@@ -273,103 +274,3 @@ function testStructArrayStorage (st, cb) {
...
@@ -273,103 +274,3 @@ function testStructArrayStorage (st, cb) {
cb
()
cb
()
})
})
}
}
function
testMappingStorage
(
st
,
cb
)
{
var
mappingStorage
=
require
(
'./contracts/mappingStorage'
)
var
vmSendTx
=
require
(
'./vmCall'
)
var
privateKey
=
new
Buffer
(
'dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a'
,
'hex'
)
var
vm
=
initVM
(
st
,
privateKey
)
var
output
=
compiler
.
compileStandardWrapper
(
compilerInput
(
mappingStorage
.
contract
))
output
=
JSON
.
parse
(
output
)
vmSendTx
(
vm
,
{
nonce
:
0
,
privateKey
:
privateKey
},
null
,
0
,
output
.
contracts
[
'test.sol'
][
'SimpleMappingState'
].
evm
.
bytecode
.
object
,
function
(
error
,
txHash
)
{
if
(
error
)
{
console
.
log
(
error
)
st
.
end
(
error
)
}
else
{
remixLib
.
global
.
web3
.
eth
.
getTransaction
(
txHash
,
(
error
,
tx
)
=>
{
if
(
error
)
{
st
.
end
(
error
)
}
else
{
testMapping
(
st
,
vm
,
privateKey
,
tx
.
contractAddress
,
output
,
(
error
)
=>
{
st
.
end
(
error
)
})
}
})
}
})
}
/*
Init VM / Send Transaction
*/
function
initVM
(
st
,
privateKey
)
{
var
remixLib
=
require
(
'remix-lib'
)
var
utileth
=
require
(
'ethereumjs-util'
)
var
VM
=
require
(
'ethereumjs-vm'
)
var
Web3Providers
=
remixLib
.
vm
.
Web3Providers
var
address
=
utileth
.
privateToAddress
(
privateKey
)
var
vm
=
new
VM
({
enableHomestead
:
true
,
activatePrecompiles
:
true
})
vm
.
stateManager
.
putAccountBalance
(
address
,
'f00000000000000001'
,
function
cb
()
{})
var
web3Providers
=
new
Web3Providers
()
web3Providers
.
addVM
(
'VM'
,
vm
)
web3Providers
.
get
(
'VM'
,
function
(
error
,
obj
)
{
if
(
error
)
{
var
mes
=
'provider TEST not defined'
console
.
log
(
mes
)
st
.
fail
(
mes
)
}
else
{
remixLib
.
global
.
web3
=
obj
st
.
end
()
}
})
return
vm
}
function
testMapping
(
st
,
vm
,
privateKey
,
contractAddress
,
output
,
cb
)
{
var
vmSendTx
=
require
(
'./vmCall'
)
vmSendTx
(
vm
,
{
nonce
:
1
,
privateKey
:
privateKey
},
contractAddress
,
0
,
'2fd0a83a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001074686973206973206120737472696e6700000000000000000000000000000000'
,
function
(
error
,
txHash
)
{
if
(
error
)
{
console
.
log
(
error
)
st
.
end
(
error
)
}
else
{
console
.
log
(
txHash
)
remixLib
.
global
.
web3
.
eth
.
getTransaction
(
txHash
,
(
error
,
tx
)
=>
{
if
(
error
)
{
st
.
end
(
error
)
}
else
{
var
TraceManager
=
require
(
'remix-core'
).
trace
.
TraceManager
var
traceManager
=
new
TraceManager
()
traceManager
.
resolveTrace
(
tx
,
()
=>
{
var
StorageResolver
=
require
(
'remix-core'
).
storage
.
StorageResolver
var
StorageViewer
=
require
(
'remix-core'
).
storage
.
StorageViewer
var
storageViewer
=
new
StorageViewer
({
stepIndex
:
199
,
tx
:
tx
,
address
:
contractAddress
},
new
StorageResolver
(),
traceManager
)
var
stateVars
=
stateDecoder
.
extractStateVariables
(
'SimpleMappingState'
,
output
.
sources
)
stateDecoder
.
decodeState
(
stateVars
,
storageViewer
).
then
((
result
)
=>
{
console
.
log
(
'ok'
,
JSON
.
stringify
(
result
))
st
.
equal
(
result
[
'_num'
].
value
,
'1'
)
st
.
equal
(
result
[
'_num'
].
type
,
'uint256'
)
st
.
equal
(
result
[
'_iBreakSolidityState'
].
type
,
'mapping(string => uint256)'
)
st
.
equal
(
result
[
'_iBreakSolidityState'
].
value
[
'74686973206973206120737472696e67'
].
value
,
'1'
)
st
.
equal
(
result
[
'_iBreakSolidityState'
].
value
[
'74686973206973206120737472696e67'
].
type
,
'uint256'
)
st
.
equal
(
result
[
'_iBreakSolidityStateInt'
].
type
,
'mapping(uint256 => uint256)'
)
st
.
equal
(
result
[
'_iBreakSolidityStateInt'
].
value
[
'0000000000000000000000000000000000000000000000000000000000000001'
].
value
,
'1'
)
st
.
equal
(
result
[
'_iBreakSolidityStateInt'
].
value
[
'0000000000000000000000000000000000000000000000000000000000000001'
].
type
,
'uint256'
)
// st.end()
},
(
reason
)
=>
{
console
.
log
(
'fail'
)
st
.
end
(
reason
)
})
})
}
})
}
})
}
remix-solidity/test/decoder/vmCall.js
View file @
a466f6ea
...
@@ -29,4 +29,36 @@ function sendTx (vm, from, to, value, data, cb) {
...
@@ -29,4 +29,36 @@ function sendTx (vm, from, to, value, data, cb) {
})
})
}
}
module
.
exports
=
sendTx
/*
Init VM / Send Transaction
*/
function
initVM
(
st
,
privateKey
)
{
var
remixLib
=
require
(
'remix-lib'
)
var
utileth
=
require
(
'ethereumjs-util'
)
var
VM
=
require
(
'ethereumjs-vm'
)
var
Web3Providers
=
remixLib
.
vm
.
Web3Providers
var
address
=
utileth
.
privateToAddress
(
privateKey
)
var
vm
=
new
VM
({
enableHomestead
:
true
,
activatePrecompiles
:
true
})
vm
.
stateManager
.
putAccountBalance
(
address
,
'f00000000000000001'
,
function
cb
()
{})
var
web3Providers
=
new
Web3Providers
()
web3Providers
.
addVM
(
'VM'
,
vm
)
web3Providers
.
get
(
'VM'
,
function
(
error
,
obj
)
{
if
(
error
)
{
var
mes
=
'provider TEST not defined'
console
.
log
(
mes
)
st
.
fail
(
mes
)
}
else
{
remixLib
.
global
.
web3
=
obj
st
.
end
()
}
})
return
vm
}
module
.
exports
=
{
sendTx
:
sendTx
,
initVM
:
initVM
}
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