From dd1901709c4574894849f6d8b54ab870d94e60cc Mon Sep 17 00:00:00 2001 From: arnaucube Date: Mon, 3 Aug 2020 12:53:36 +0200 Subject: [PATCH] Add common/Leaf struct & parsers (bigint & byte arrays) --- common/leaf_test.go | 69 +++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/common/leaf_test.go b/common/leaf_test.go index 2f67a10..1e27e35 100644 --- a/common/leaf_test.go +++ b/common/leaf_test.go @@ -7,6 +7,7 @@ import ( "testing" ethCommon "github.com/ethereum/go-ethereum/common" + ethCrypto "github.com/ethereum/go-ethereum/crypto" cryptoConstants "github.com/iden3/go-iden3-crypto/constants" cryptoUtils "github.com/iden3/go-iden3-crypto/utils" "github.com/stretchr/testify/assert" @@ -45,40 +46,40 @@ func TestLeaf(t *testing.T) { assert.Equal(t, l1, l2) } -// func TestLeafLoop(t *testing.T) { -// // check that for different Address there is no problem -// for i := 0; i < 256; i++ { -// key, err := ethCrypto.GenerateKey() -// assert.Nil(t, err) -// address := ethCrypto.PubkeyToAddress(key.PublicKey) -// -// leaf := &Leaf{ -// TokenID: TokenID(i), -// Nonce: uint64(i), -// Balance: big.NewInt(1000), -// Ax: big.NewInt(9876), -// Ay: big.NewInt(6789), -// EthAddr: address, -// } -// b, err := leaf.Bytes() -// assert.Nil(t, err) -// l1, err := LeafFromBytes(b) -// assert.Nil(t, err) -// assert.Equal(t, leaf, l1) -// -// e, err := leaf.BigInts() -// assert.Nil(t, err) -// assert.True(t, cryptoUtils.CheckBigIntInField(e[0])) -// assert.True(t, cryptoUtils.CheckBigIntInField(e[1])) -// assert.True(t, cryptoUtils.CheckBigIntInField(e[2])) -// assert.True(t, cryptoUtils.CheckBigIntInField(e[3])) -// assert.True(t, cryptoUtils.CheckBigIntInField(e[4])) -// -// l2, err := LeafFromBigInts(e) -// assert.Nil(t, err) -// assert.Equal(t, leaf, l2) -// } -// } +func TestLeafLoop(t *testing.T) { + // check that for different Address there is no problem + for i := 0; i < 256; i++ { + key, err := ethCrypto.GenerateKey() + assert.Nil(t, err) + address := ethCrypto.PubkeyToAddress(key.PublicKey) + + leaf := &Leaf{ + TokenID: TokenID(i), + Nonce: uint64(i), + Balance: big.NewInt(1000), + Ax: big.NewInt(9876), + Ay: big.NewInt(6789), + EthAddr: address, + } + b, err := leaf.Bytes() + assert.Nil(t, err) + l1, err := LeafFromBytes(b) + assert.Nil(t, err) + assert.Equal(t, leaf, l1) + + e, err := leaf.BigInts() + assert.Nil(t, err) + assert.True(t, cryptoUtils.CheckBigIntInField(e[0])) + assert.True(t, cryptoUtils.CheckBigIntInField(e[1])) + assert.True(t, cryptoUtils.CheckBigIntInField(e[2])) + assert.True(t, cryptoUtils.CheckBigIntInField(e[3])) + assert.True(t, cryptoUtils.CheckBigIntInField(e[4])) + + l2, err := LeafFromBigInts(e) + assert.Nil(t, err) + assert.Equal(t, leaf, l2) + } +} func TestLeafErrNotInFF(t *testing.T) { z := big.NewInt(0)