You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6 KiB

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