Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package genesis
import (
"fmt"
"testing"
"time"
acm "github.com/hyperledger/burrow/account"
"github.com/hyperledger/burrow/permission"
"github.com/stretchr/testify/assert"
)
var genesisTime, _ = time.Parse("02-01-2006", "27-10-2017")
func TestMakeGenesisDocFromAccounts(t *testing.T) {
genDoc := MakeGenesisDocFromAccounts("test-chain", nil, genesisTime,
accountMap("Tinkie-winkie", "Lala", "Po", "Dipsy"),
validatorMap("Foo", "Bar", "Baz"),
)
// Check we have matching serialisation after a round trip
bs, err := genDoc.JSONBytes()
assert.NoError(t, err)
genDocOut, err := GenesisDocFromJSON(bs)
assert.NoError(t, err)
bsOut, err := genDocOut.JSONBytes()
assert.NoError(t, err)
assert.Equal(t, bs, bsOut)
assert.Equal(t, genDoc.Hash(), genDocOut.Hash())
fmt.Println(string(bs))
}
func accountMap(names ...string) map[string]acm.Account {
accounts := make(map[string]acm.Account, len(names))
for _, name := range names {
accounts[name] = accountFromName(name)
}
return accounts
}
func validatorMap(names ...string) map[string]acm.Validator {
validators := make(map[string]acm.Validator, len(names))
for _, name := range names {
validators[name] = acm.AsValidator(accountFromName(name))
}
return validators
}
func accountFromName(name string) acm.Account {
ca := acm.NewConcreteAccountFromSecret(name)
for _, c := range name {
ca.Balance += uint64(c)
}
ca.Permissions = permission.AllAccountPermissions.Clone()
return ca.Account()
}