package statedb import ( "math/big" ethCommon "github.com/ethereum/go-ethereum/common" "github.com/hermeznetwork/hermez-node/common" "github.com/iden3/go-iden3-crypto/babyjub" "github.com/iden3/go-merkletree" ) // GetIdxByEthAddr returns the smallest Idx in the StateDB for the given // Ethereum Address. Will return 0 in case that Idx is not found in the // StateDB. func (s *StateDB) GetIdxByEthAddr(addr ethCommon.Address) common.Idx { // TODO return common.Idx(0) } // GetIdxByBJJ returns the smallest Idx in the StateDB for the given BabyJubJub // PublicKey. Will return 0 in case that Idx is not found in the StateDB. func (s *StateDB) GetIdxByBJJ(pk *babyjub.PublicKey) common.Idx { // TODO return common.Idx(0) } // GetIdxByEthAddrBJJ returns the smallest Idx in the StateDB for the given // Ethereum Address AND the given BabyJubJub PublicKey. If `addr` is the zero // address, it's ignored in the query. If `pk` is nil, it's ignored in the // query. Will return 0 in case that Idx is not found in the StateDB. func (s *StateDB) GetIdxByEthAddrBJJ(addr ethCommon.Address, pk *babyjub.PublicKey) common.Idx { // TODO return common.Idx(0) } func siblingsToZKInputFormat(s []*merkletree.Hash) []*big.Int { b := make([]*big.Int, len(s)) for i := 0; i < len(s); i++ { b[i] = s[i].BigInt() } return b } // BJJCompressedTo256BigInts returns a [256]*big.Int array with the bit // representation of the babyjub.PublicKeyComp func BJJCompressedTo256BigInts(pkComp babyjub.PublicKeyComp) [256]*big.Int { var r [256]*big.Int b := pkComp[:] for i := 0; i < 256; i++ { if b[i/8]&(1<<(i%8)) == 0 { r[i] = big.NewInt(0) } else { r[i] = big.NewInt(1) } } return r }