github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/etherman/datacommittee_test.go (about)

     1  package etherman
     2  
     3  import (
     4  	"math/big"
     5  	"testing"
     6  
     7  	"github.com/ethereum/go-ethereum/common"
     8  	"github.com/ethereum/go-ethereum/crypto"
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestUpdateDataCommitteeEvent(t *testing.T) {
    14  	// Set up testing environment
    15  	etherman, ethBackend, auth, _, _, da := newTestingEnv()
    16  
    17  	// Update the committee
    18  	requiredAmountOfSignatures := big.NewInt(2)
    19  	URLs := []string{"1", "2", "3"}
    20  	addrs := []common.Address{
    21  		common.HexToAddress("0x1"),
    22  		common.HexToAddress("0x2"),
    23  		common.HexToAddress("0x3"),
    24  	}
    25  	addrsBytes := []byte{}
    26  	for _, addr := range addrs {
    27  		addrsBytes = append(addrsBytes, addr.Bytes()...)
    28  	}
    29  	_, err := da.SetupCommittee(auth, requiredAmountOfSignatures, URLs, addrsBytes)
    30  	require.NoError(t, err)
    31  	ethBackend.Commit()
    32  
    33  	// Assert the committee update
    34  	actualSetup, err := etherman.GetCurrentDataCommittee()
    35  	require.NoError(t, err)
    36  	expectedMembers := []DataCommitteeMember{}
    37  	expectedSetup := DataCommittee{
    38  		RequiredSignatures: uint64(len(URLs) - 1),
    39  		AddressesHash:      crypto.Keccak256Hash(addrsBytes),
    40  	}
    41  	for i, url := range URLs {
    42  		expectedMembers = append(expectedMembers, DataCommitteeMember{
    43  			URL:  url,
    44  			Addr: addrs[i],
    45  		})
    46  	}
    47  	expectedSetup.Members = expectedMembers
    48  	assert.Equal(t, expectedSetup, *actualSetup)
    49  }