Add common/Leaf struct & parsers (bigint & byte arrays)
arnaucube root@arnaucube.com
Mon, 03 Aug 2020 12:53:36 +0200
1 files changed,
35 insertions(+),
34 deletions(-)
jump to
M
common/leaf_test.go
→
common/leaf_test.go
@@ -7,6 +7,7 @@ "math/big"
"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 @@ assert.Equal(t, leaf, l2)
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)