git ssb

0+

wanderer🌟 / js-primea-hypervisor



Tree: f29484612ffe0505b3f6b6ee28cfa1b2cc34c148

Files: f29484612ffe0505b3f6b6ee28cfa1b2cc34c148 / testEnvironment.js

1637 bytesRaw
1const Environment = require('./environment.js')
2const U256 = require('./u256.js')
3const Address = require('./address.js')
4const Block = require('./block.js')
5
6module.exports = class TestEnvironment extends Environment {
7 constructor (data) {
8 super()
9
10 if (typeof data === 'string') {
11 data = JSON.parse(data)
12 }
13
14 let self = this
15
16 if (data.accounts) {
17 data.accounts.forEach((account) => {
18 let tmp = account[1]
19 self.state.set(new Address(account[0]).toString(), {
20 balance: new U256(tmp.balance)
21 })
22 })
23 }
24
25 if (data.address) {
26 self.address = new Address(data.address)
27 }
28
29 if (data.origin) {
30 self.origin = new Address(data.origin)
31 }
32
33 if (data.caller) {
34 self.caller = new Address(data.caller)
35 }
36
37 if (data.callValue) {
38 self.callValue = new U256(data.callValue)
39 }
40
41 if (data.callData) {
42 self.callData = Uint8Array.from(new Buffer(data.callData, 'hex'))
43 }
44
45 if (data.gasPrice) {
46 self.gasPrice = data.gasPrice
47 }
48
49 if (data.gasLeft) {
50 self.gasLeft = data.gasLeft
51 }
52
53 let block = {}
54
55 if (data.blockNumber) {
56 block.number = data.blockNumber
57 }
58
59 if (data.gasLimit) {
60 block.gasLimit = data.gasLimit
61 }
62
63 if (data.difficulty) {
64 block.difficulty = adta.difficulty
65 }
66
67 if (data.timestamp) {
68 block.timestamp = data.timestamp
69 }
70
71 if (data.coinbase) {
72 block.coinbase = data.coinbase
73 }
74
75 if (Object.keys(block).length > 0) {
76 self.block = new Block({ header: block, transactions: [], uncleHeaders: [] })
77 }
78 }
79}
80

Built with git-ssb-web