ZKInput with L2Txs compatible with circom circuits

- Til
  - update Til users BJJ key generation for better js tests
    compatibility
- Common
  - PoolL2Tx to L2Tx use AuxToIdx in case that ToIdx is 0
  - Update ZKInputs parameter descriptions
- TxProcessor
  - Fix AccumulatedFees in case that there is no CoordIdx for that token
  - Fix zki.NewExit usage
  - Use same order for AccumulatedFees & FeeIdx & FeePlanTokens
  - Add Nonce usage to ExitLeafs
  - Update TestZKInput6 and check its compatibility with circom Hermez
circuits
This commit is contained in:
arnaucube
2021-01-07 18:32:09 +01:00
parent b0e925fd71
commit b59710a149
10 changed files with 247 additions and 73 deletions

View File

@@ -1,14 +1,34 @@
package til
import (
"encoding/hex"
"fmt"
"math/big"
"testing"
"github.com/ethereum/go-ethereum/crypto"
"github.com/hermeznetwork/hermez-node/common"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestGenerateKeys(t *testing.T) {
tc := NewContext(0, common.RollupConstMaxL1UserTx)
usernames := []string{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"}
tc.generateKeys(usernames)
debug := false
if debug {
for i, username := range usernames {
fmt.Println(i, username)
sk := crypto.FromECDSA(tc.Users[username].EthSk)
fmt.Println(" eth_sk", hex.EncodeToString(sk))
fmt.Println(" eth_addr", tc.Users[username].Addr)
fmt.Println(" bjj_sk", hex.EncodeToString(tc.Users[username].BJJ[:]))
fmt.Println(" bjj_pub", tc.Users[username].BJJ.Public().Compress())
}
}
}
func TestGenerateBlocksNoBatches(t *testing.T) {
set := `
Type: Blockchain