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
91ae8e36
Commit
91ae8e36
authored
Jan 07, 2020
by
Iuri Matias
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move resetEnvironment accounts reset to vm provider
parent
2404852e
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
39 additions
and
35 deletions
+39
-35
blockchain.js
src/blockchain/blockchain.js
+4
-35
injected.js
src/blockchain/providers/injected.js
+3
-0
node.js
src/blockchain/providers/node.js
+3
-0
vm.js
src/blockchain/providers/vm.js
+29
-0
No files found.
src/blockchain/blockchain.js
View file @
91ae8e36
...
...
@@ -11,7 +11,7 @@ const Personal = require('web3-eth-personal')
const
Web3
=
require
(
'web3'
)
const
async
=
require
(
'async'
)
const
{
BN
,
privateToAddress
,
isValidPrivate
,
stripHexPrefix
,
toChecksumAddress
}
=
require
(
'ethereumjs-util'
)
const
{
BN
,
privateToAddress
,
isValidPrivate
,
stripHexPrefix
}
=
require
(
'ethereumjs-util'
)
const
crypto
=
require
(
'crypto'
)
const
{
EventEmitter
}
=
require
(
'events'
)
...
...
@@ -350,14 +350,7 @@ class Blockchain {
}
resetEnvironment
()
{
this
.
providers
.
vm
.
accounts
=
{}
if
(
this
.
executionContext
.
isVM
())
{
this
.
_addAccount
(
'3cd7232cd6f3fc66a57a6bedc1a8ed6c228fff0a327e169c2bcc5e869ed49511'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'2ac6c190b09897cd8987869cc7b918cfea07ee82038d492abce033c75c1b1d0c'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'd74aa6d18aa79a05f3473dd030a97d3305737cbc8337d940344345c1f6b72eea'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'71975fbf7fe448e004ac7ae54cad0a383c3906055a65468714156a07385e96ce'
,
'0x56BC75E2D63100000'
)
}
this
.
getCurrentProvider
().
resetEnvironment
()
// TODO: most params here can be refactored away in txRunner
this
.
txRunner
=
new
TxRunner
(
this
.
providers
.
vm
.
accounts
,
{
// TODO: only used to check value of doNotShowTransactionConfirmationAgain property
...
...
@@ -387,7 +380,7 @@ class Blockchain {
if
(
this
.
executionContext
.
getProvider
()
!==
'vm'
)
{
throw
new
Error
(
'plugin API does not allow creating a new account through web3 connection. Only vm mode is allowed'
)
}
this
.
_addAccount
(
privateKey
,
balance
)
this
.
providers
.
vm
.
_addAccount
(
privateKey
,
balance
)
const
privKey
=
Buffer
.
from
(
privateKey
,
'hex'
)
return
'0x'
+
privateToAddress
(
privKey
).
toString
(
'hex'
)
}
...
...
@@ -398,7 +391,7 @@ class Blockchain {
do
{
privateKey
=
crypto
.
randomBytes
(
32
)
}
while
(
!
isValidPrivate
(
privateKey
))
this
.
_addAccount
(
privateKey
,
'0x56BC75E2D63100000'
)
this
.
providers
.
vm
.
_addAccount
(
privateKey
,
'0x56BC75E2D63100000'
)
return
cb
(
null
,
'0x'
+
privateToAddress
(
privateKey
).
toString
(
'hex'
))
}
if
(
!
this
.
config
.
get
(
'settings/personal-mode'
))
{
...
...
@@ -409,30 +402,6 @@ class Blockchain {
})
}
/** Add an account to the list of account (only for Javascript VM) */
_addAccount
(
privateKey
,
balance
)
{
if
(
!
this
.
executionContext
.
isVM
())
{
throw
new
Error
(
'_addAccount() cannot be called in non-VM mode'
)
}
if
(
this
.
providers
.
vm
.
accounts
)
{
privateKey
=
Buffer
.
from
(
privateKey
,
'hex'
)
const
address
=
privateToAddress
(
privateKey
)
// FIXME: we don't care about the callback, but we should still make this proper
let
stateManager
=
this
.
executionContext
.
vm
().
stateManager
stateManager
.
getAccount
(
address
,
(
error
,
account
)
=>
{
if
(
error
)
return
console
.
log
(
error
)
account
.
balance
=
balance
||
'0xf00000000000000001'
stateManager
.
putAccount
(
address
,
account
,
(
error
)
=>
{
if
(
error
)
console
.
log
(
error
)
})
})
this
.
providers
.
vm
.
accounts
[
toChecksumAddress
(
'0x'
+
address
.
toString
(
'hex'
))]
=
{
privateKey
,
nonce
:
0
}
}
}
/** Get the balance of an address, and convert wei to ether */
getBalanceInEther
(
address
,
cb
)
{
address
=
stripHexPrefix
(
address
)
...
...
src/blockchain/providers/injected.js
View file @
91ae8e36
...
...
@@ -8,6 +8,9 @@ class InjectedProvider {
getAccounts
(
cb
)
{
return
this
.
executionContext
.
web3
().
eth
.
getAccounts
(
cb
)
}
resetEnvironment
()
{
}
}
module
.
exports
=
InjectedProvider
src/blockchain/providers/node.js
View file @
91ae8e36
...
...
@@ -12,6 +12,9 @@ class NodeProvider {
}
return
this
.
executionContext
.
web3
().
eth
.
getAccounts
(
cb
)
}
resetEnvironment
()
{
}
}
module
.
exports
=
NodeProvider
src/blockchain/providers/vm.js
View file @
91ae8e36
const
{
privateToAddress
,
toChecksumAddress
}
=
require
(
'ethereumjs-util'
)
class
VMProvider
{
...
...
@@ -13,6 +14,34 @@ class VMProvider {
}
return
cb
(
null
,
Object
.
keys
(
this
.
accounts
))
}
resetEnvironment
()
{
this
.
accounts
=
{}
this
.
_addAccount
(
'3cd7232cd6f3fc66a57a6bedc1a8ed6c228fff0a327e169c2bcc5e869ed49511'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'2ac6c190b09897cd8987869cc7b918cfea07ee82038d492abce033c75c1b1d0c'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'd74aa6d18aa79a05f3473dd030a97d3305737cbc8337d940344345c1f6b72eea'
,
'0x56BC75E2D63100000'
)
this
.
_addAccount
(
'71975fbf7fe448e004ac7ae54cad0a383c3906055a65468714156a07385e96ce'
,
'0x56BC75E2D63100000'
)
}
/** Add an account to the list of account (only for Javascript VM) */
_addAccount
(
privateKey
,
balance
)
{
privateKey
=
Buffer
.
from
(
privateKey
,
'hex'
)
const
address
=
privateToAddress
(
privateKey
)
// FIXME: we don't care about the callback, but we should still make this proper
let
stateManager
=
this
.
executionContext
.
vm
().
stateManager
stateManager
.
getAccount
(
address
,
(
error
,
account
)
=>
{
if
(
error
)
return
console
.
log
(
error
)
account
.
balance
=
balance
||
'0xf00000000000000001'
stateManager
.
putAccount
(
address
,
account
,
(
error
)
=>
{
if
(
error
)
console
.
log
(
error
)
})
})
this
.
accounts
[
toChecksumAddress
(
'0x'
+
address
.
toString
(
'hex'
))]
=
{
privateKey
,
nonce
:
0
}
}
}
module
.
exports
=
VMProvider
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