mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-07 03:16:45 +01:00
Merge pull request #603 from hermeznetwork/feature/update-linter-lll
Add lll to linter checks
This commit is contained in:
@@ -17,7 +17,8 @@ import (
|
||||
var (
|
||||
// ErrStateDBWithoutMT is used when a method that requires a MerkleTree
|
||||
// is called in a StateDB that does not have a MerkleTree defined
|
||||
ErrStateDBWithoutMT = errors.New("Can not call method to use MerkleTree in a StateDB without MerkleTree")
|
||||
ErrStateDBWithoutMT = errors.New(
|
||||
"Can not call method to use MerkleTree in a StateDB without MerkleTree")
|
||||
|
||||
// ErrAccountAlreadyExists is used when CreateAccount is called and the
|
||||
// Account already exists
|
||||
@@ -28,7 +29,8 @@ var (
|
||||
ErrIdxNotFound = errors.New("Idx can not be found")
|
||||
// ErrGetIdxNoCase is used when trying to get the Idx from EthAddr &
|
||||
// BJJ with not compatible combination
|
||||
ErrGetIdxNoCase = errors.New("Can not get Idx due unexpected combination of ethereum Address & BabyJubJub PublicKey")
|
||||
ErrGetIdxNoCase = errors.New(
|
||||
"Can not get Idx due unexpected combination of ethereum Address & BabyJubJub PublicKey")
|
||||
|
||||
// PrefixKeyIdx is the key prefix for idx in the db
|
||||
PrefixKeyIdx = []byte("i:")
|
||||
@@ -144,7 +146,8 @@ func NewStateDB(cfg Config) (*StateDB, error) {
|
||||
}
|
||||
}
|
||||
if cfg.Type == TypeTxSelector && cfg.NLevels != 0 {
|
||||
return nil, tracerr.Wrap(fmt.Errorf("invalid StateDB parameters: StateDB type==TypeStateDB can not have nLevels!=0"))
|
||||
return nil, tracerr.Wrap(
|
||||
fmt.Errorf("invalid StateDB parameters: StateDB type==TypeStateDB can not have nLevels!=0"))
|
||||
}
|
||||
|
||||
return &StateDB{
|
||||
@@ -347,7 +350,8 @@ func GetAccountInTreeDB(sto db.Storage, idx common.Idx) (*common.Account, error)
|
||||
// CreateAccount creates a new Account in the StateDB for the given Idx. If
|
||||
// StateDB.MT==nil, MerkleTree is not affected, otherwise updates the
|
||||
// MerkleTree, returning a CircomProcessorProof.
|
||||
func (s *StateDB) CreateAccount(idx common.Idx, account *common.Account) (*merkletree.CircomProcessorProof, error) {
|
||||
func (s *StateDB) CreateAccount(idx common.Idx, account *common.Account) (
|
||||
*merkletree.CircomProcessorProof, error) {
|
||||
cpp, err := CreateAccountInTreeDB(s.db.DB(), s.MT, idx, account)
|
||||
if err != nil {
|
||||
return cpp, tracerr.Wrap(err)
|
||||
@@ -361,7 +365,8 @@ func (s *StateDB) CreateAccount(idx common.Idx, account *common.Account) (*merkl
|
||||
// from ExitTree. Creates a new Account in the StateDB for the given Idx. If
|
||||
// StateDB.MT==nil, MerkleTree is not affected, otherwise updates the
|
||||
// MerkleTree, returning a CircomProcessorProof.
|
||||
func CreateAccountInTreeDB(sto db.Storage, mt *merkletree.MerkleTree, idx common.Idx, account *common.Account) (*merkletree.CircomProcessorProof, error) {
|
||||
func CreateAccountInTreeDB(sto db.Storage, mt *merkletree.MerkleTree, idx common.Idx,
|
||||
account *common.Account) (*merkletree.CircomProcessorProof, error) {
|
||||
// store at the DB the key: v, and value: leaf.Bytes()
|
||||
v, err := account.HashValue()
|
||||
if err != nil {
|
||||
@@ -410,7 +415,8 @@ func CreateAccountInTreeDB(sto db.Storage, mt *merkletree.MerkleTree, idx common
|
||||
// UpdateAccount updates the Account in the StateDB for the given Idx. If
|
||||
// StateDB.mt==nil, MerkleTree is not affected, otherwise updates the
|
||||
// MerkleTree, returning a CircomProcessorProof.
|
||||
func (s *StateDB) UpdateAccount(idx common.Idx, account *common.Account) (*merkletree.CircomProcessorProof, error) {
|
||||
func (s *StateDB) UpdateAccount(idx common.Idx, account *common.Account) (
|
||||
*merkletree.CircomProcessorProof, error) {
|
||||
return UpdateAccountInTreeDB(s.db.DB(), s.MT, idx, account)
|
||||
}
|
||||
|
||||
@@ -418,7 +424,8 @@ func (s *StateDB) UpdateAccount(idx common.Idx, account *common.Account) (*merkl
|
||||
// from ExitTree. Updates the Account in the StateDB for the given Idx. If
|
||||
// StateDB.mt==nil, MerkleTree is not affected, otherwise updates the
|
||||
// MerkleTree, returning a CircomProcessorProof.
|
||||
func UpdateAccountInTreeDB(sto db.Storage, mt *merkletree.MerkleTree, idx common.Idx, account *common.Account) (*merkletree.CircomProcessorProof, error) {
|
||||
func UpdateAccountInTreeDB(sto db.Storage, mt *merkletree.MerkleTree, idx common.Idx,
|
||||
account *common.Account) (*merkletree.CircomProcessorProof, error) {
|
||||
// store at the DB the key: v, and value: account.Bytes()
|
||||
v, err := account.HashValue()
|
||||
if err != nil {
|
||||
|
||||
@@ -22,7 +22,8 @@ import (
|
||||
|
||||
func newAccount(t *testing.T, i int) *common.Account {
|
||||
var sk babyjub.PrivateKey
|
||||
_, err := hex.Decode(sk[:], []byte("0001020304050607080900010203040506070809000102030405060708090001"))
|
||||
_, err := hex.Decode(sk[:],
|
||||
[]byte("0001020304050607080900010203040506070809000102030405060708090001"))
|
||||
require.NoError(t, err)
|
||||
pk := sk.Public()
|
||||
|
||||
@@ -371,7 +372,8 @@ func TestCheckpoints(t *testing.T) {
|
||||
dirLocal, err := ioutil.TempDir("", "ldb")
|
||||
require.NoError(t, err)
|
||||
defer require.NoError(t, os.RemoveAll(dirLocal))
|
||||
ldb, err := NewLocalStateDB(Config{Path: dirLocal, Keep: 128, Type: TypeBatchBuilder, NLevels: 32}, sdb)
|
||||
ldb, err := NewLocalStateDB(Config{Path: dirLocal, Keep: 128, Type: TypeBatchBuilder,
|
||||
NLevels: 32}, sdb)
|
||||
require.NoError(t, err)
|
||||
|
||||
// get checkpoint 4 from sdb (StateDB) to ldb (LocalStateDB)
|
||||
@@ -392,7 +394,8 @@ func TestCheckpoints(t *testing.T) {
|
||||
dirLocal2, err := ioutil.TempDir("", "ldb2")
|
||||
require.NoError(t, err)
|
||||
defer require.NoError(t, os.RemoveAll(dirLocal2))
|
||||
ldb2, err := NewLocalStateDB(Config{Path: dirLocal2, Keep: 128, Type: TypeBatchBuilder, NLevels: 32}, sdb)
|
||||
ldb2, err := NewLocalStateDB(Config{Path: dirLocal2, Keep: 128, Type: TypeBatchBuilder,
|
||||
NLevels: 32}, sdb)
|
||||
require.NoError(t, err)
|
||||
|
||||
// get checkpoint 4 from sdb (StateDB) to ldb (LocalStateDB)
|
||||
@@ -471,7 +474,8 @@ func TestCheckAccountsTreeTestVectors(t *testing.T) {
|
||||
|
||||
ay0 := new(big.Int).Sub(new(big.Int).Exp(big.NewInt(2), big.NewInt(253), nil), big.NewInt(1))
|
||||
// test value from js version (compatibility-canary)
|
||||
assert.Equal(t, "1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", (hex.EncodeToString(ay0.Bytes())))
|
||||
assert.Equal(t, "1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||
(hex.EncodeToString(ay0.Bytes())))
|
||||
bjjPoint0Comp := babyjub.PackSignY(true, ay0)
|
||||
bjj0 := babyjub.PublicKeyComp(bjjPoint0Comp)
|
||||
|
||||
@@ -530,7 +534,9 @@ func TestCheckAccountsTreeTestVectors(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
// root value generated by js version:
|
||||
assert.Equal(t, "17298264051379321456969039521810887093935433569451713402227686942080129181291", sdb.MT.Root().BigInt().String())
|
||||
assert.Equal(t,
|
||||
"17298264051379321456969039521810887093935433569451713402227686942080129181291",
|
||||
sdb.MT.Root().BigInt().String())
|
||||
}
|
||||
|
||||
// TestListCheckpoints performs almost the same test than kvdb/kvdb_test.go
|
||||
|
||||
@@ -18,7 +18,8 @@ func concatEthAddrTokenID(addr ethCommon.Address, tokenID common.TokenID) []byte
|
||||
b = append(b[:], tokenID.Bytes()[:]...)
|
||||
return b
|
||||
}
|
||||
func concatEthAddrBJJTokenID(addr ethCommon.Address, pk babyjub.PublicKeyComp, tokenID common.TokenID) []byte {
|
||||
func concatEthAddrBJJTokenID(addr ethCommon.Address, pk babyjub.PublicKeyComp,
|
||||
tokenID common.TokenID) []byte {
|
||||
pkComp := pk
|
||||
var b []byte
|
||||
b = append(b, addr.Bytes()...)
|
||||
@@ -32,7 +33,8 @@ func concatEthAddrBJJTokenID(addr ethCommon.Address, pk babyjub.PublicKeyComp, t
|
||||
// - key: EthAddr & BabyJubJub PublicKey Compressed, value: idx
|
||||
// If Idx already exist for the given EthAddr & BJJ, the remaining Idx will be
|
||||
// always the smallest one.
|
||||
func (s *StateDB) setIdxByEthAddrBJJ(idx common.Idx, addr ethCommon.Address, pk babyjub.PublicKeyComp, tokenID common.TokenID) error {
|
||||
func (s *StateDB) setIdxByEthAddrBJJ(idx common.Idx, addr ethCommon.Address,
|
||||
pk babyjub.PublicKeyComp, tokenID common.TokenID) error {
|
||||
oldIdx, err := s.GetIdxByEthAddrBJJ(addr, pk, tokenID)
|
||||
if err == nil {
|
||||
// EthAddr & BJJ already have an Idx
|
||||
@@ -40,7 +42,8 @@ func (s *StateDB) setIdxByEthAddrBJJ(idx common.Idx, addr ethCommon.Address, pk
|
||||
// if new idx is smaller, store the new one
|
||||
// if new idx is bigger, don't store and return, as the used one will be the old
|
||||
if idx >= oldIdx {
|
||||
log.Debug("StateDB.setIdxByEthAddrBJJ: Idx not stored because there already exist a smaller Idx for the given EthAddr & BJJ")
|
||||
log.Debug("StateDB.setIdxByEthAddrBJJ: Idx not stored because there " +
|
||||
"already exist a smaller Idx for the given EthAddr & BJJ")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@@ -80,7 +83,8 @@ func (s *StateDB) setIdxByEthAddrBJJ(idx common.Idx, addr ethCommon.Address, pk
|
||||
// GetIdxByEthAddr returns the smallest Idx in the StateDB for the given
|
||||
// Ethereum Address. Will return common.Idx(0) and error in case that Idx is
|
||||
// not found in the StateDB.
|
||||
func (s *StateDB) GetIdxByEthAddr(addr ethCommon.Address, tokenID common.TokenID) (common.Idx, error) {
|
||||
func (s *StateDB) GetIdxByEthAddr(addr ethCommon.Address, tokenID common.TokenID) (common.Idx,
|
||||
error) {
|
||||
k := concatEthAddrTokenID(addr, tokenID)
|
||||
b, err := s.db.DB().Get(append(PrefixKeyAddr, k...))
|
||||
if err != nil {
|
||||
@@ -116,18 +120,22 @@ func (s *StateDB) GetIdxByEthAddrBJJ(addr ethCommon.Address, pk babyjub.PublicKe
|
||||
return common.Idx(0), tracerr.Wrap(ErrIdxNotFound)
|
||||
} else if err != nil {
|
||||
return common.Idx(0),
|
||||
tracerr.Wrap(fmt.Errorf("GetIdxByEthAddrBJJ: %s: ToEthAddr: %s, ToBJJ: %s, TokenID: %d", ErrIdxNotFound, addr.Hex(), pk, tokenID))
|
||||
tracerr.Wrap(fmt.Errorf("GetIdxByEthAddrBJJ: %s: ToEthAddr: %s, ToBJJ: %s, TokenID: %d",
|
||||
ErrIdxNotFound, addr.Hex(), pk, tokenID))
|
||||
}
|
||||
idx, err := common.IdxFromBytes(b)
|
||||
if err != nil {
|
||||
return common.Idx(0),
|
||||
tracerr.Wrap(fmt.Errorf("GetIdxByEthAddrBJJ: %s: ToEthAddr: %s, ToBJJ: %s, TokenID: %d", err, addr.Hex(), pk, tokenID))
|
||||
tracerr.Wrap(fmt.Errorf("GetIdxByEthAddrBJJ: %s: ToEthAddr: %s, ToBJJ: %s, TokenID: %d",
|
||||
err, addr.Hex(), pk, tokenID))
|
||||
}
|
||||
return idx, nil
|
||||
}
|
||||
// rest of cases (included case ToEthAddr==0) are not possible
|
||||
return common.Idx(0),
|
||||
tracerr.Wrap(fmt.Errorf("GetIdxByEthAddrBJJ: Not found, %s: ToEthAddr: %s, ToBJJ: %s, TokenID: %d", ErrGetIdxNoCase, addr.Hex(), pk, tokenID))
|
||||
tracerr.Wrap(
|
||||
fmt.Errorf("GetIdxByEthAddrBJJ: Not found, %s: ToEthAddr: %s, ToBJJ: %s, TokenID: %d",
|
||||
ErrGetIdxNoCase, addr.Hex(), pk, tokenID))
|
||||
}
|
||||
|
||||
// GetTokenIDsFromIdxs returns a map containing the common.TokenID with its
|
||||
@@ -137,7 +145,9 @@ func (s *StateDB) GetTokenIDsFromIdxs(idxs []common.Idx) (map[common.TokenID]com
|
||||
for i := 0; i < len(idxs); i++ {
|
||||
a, err := s.GetAccount(idxs[i])
|
||||
if err != nil {
|
||||
return nil, tracerr.Wrap(fmt.Errorf("GetTokenIDsFromIdxs error on GetAccount with Idx==%d: %s", idxs[i], err.Error()))
|
||||
return nil,
|
||||
tracerr.Wrap(fmt.Errorf("GetTokenIDsFromIdxs error on GetAccount with Idx==%d: %s",
|
||||
idxs[i], err.Error()))
|
||||
}
|
||||
m[a.TokenID] = idxs[i]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user