arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/test/txs_test.go
test/txs_test.goRaw
 1package test
 2
 3import (
 4	"strings"
 5	"testing"
 6
 7	"github.com/hermeznetwork/hermez-node/common"
 8	"github.com/stretchr/testify/assert"
 9	"github.com/stretchr/testify/require"
10)
11
12func TestGenerateTestL2Txs(t *testing.T) {
13	s := `
14		A (1): 10
15		A (2): 20
16		B (1): 5
17		A-B (1): 6 1
18		B-C (1): 3 1
19		C-A (1): 3 1
20		A-B (1): 1 1
21		A-B (2): 15 1
22		User0   (1): 20
23		User1 (3) : 20
24		User0-User1 (1): 15 1
25		User1-User0 (3): 15 1
26	`
27	parser := NewParser(strings.NewReader(s))
28	instructions, err := parser.Parse()
29	assert.Nil(t, err)
30
31	l1txs, l2txs := GenerateTestTxs(t, instructions)
32	require.Equal(t, 5, len(l1txs))
33	require.Equal(t, 7, len(l2txs))
34
35	// l1txs
36	assert.Equal(t, common.TxTypeCreateAccountDeposit, l1txs[0].Type)
37	assert.Equal(t, "5bac784d938067d980a9d39bdd79bf84a0cbb296977c47cc30de2d5ce9229d2f", l1txs[0].FromBJJ.String())
38	assert.Equal(t, "323ff10c28df37ecb787fe216e111db64aa7cfa2c517509fe0057ff08a10b30c", l1txs[1].FromBJJ.String())
39	assert.Equal(t, "f3587ad5cc7414a47545770b6c75bc71930f63c491eb2294dde8b8a6670b8e96", l1txs[2].FromBJJ.String())
40	assert.Equal(t, "b6856a87832b182e5a9a1e738dbcd1f3c728bbc67ea1010aaff563eb5316131b", l1txs[4].FromBJJ.String())
41
42	// l2txs
43	assert.Equal(t, common.TxTypeTransfer, l2txs[0].Type)
44	assert.Equal(t, common.Idx(1), l2txs[0].FromIdx)
45	assert.Equal(t, common.Idx(3), l2txs[0].ToIdx)
46	assert.Equal(t, "f3587ad5cc7414a47545770b6c75bc71930f63c491eb2294dde8b8a6670b8e96", l2txs[0].ToBJJ.String())
47	assert.Equal(t, "0x6813Eb9362372EEF6200f3b1dbC3f819671cBA69", l2txs[0].ToEthAddr.Hex())
48	assert.Equal(t, common.Nonce(0), l2txs[0].Nonce)
49	assert.Equal(t, common.Nonce(1), l2txs[3].Nonce)
50	assert.Equal(t, common.FeeSelector(1), l2txs[0].Fee)
51}