github.com/ethereum-optimism/optimism@v1.7.2/op-node/p2p/signer_test.go (about) 1 package p2p 2 3 import ( 4 "math/big" 5 "testing" 6 7 "github.com/ethereum-optimism/optimism/op-node/rollup" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestSigningHash_DifferentDomain(t *testing.T) { 12 cfg := &rollup.Config{ 13 L2ChainID: big.NewInt(100), 14 } 15 16 payloadBytes := []byte("arbitraryData") 17 hash, err := SigningHash(SigningDomainBlocksV1, cfg.L2ChainID, payloadBytes) 18 require.NoError(t, err, "creating first signing hash") 19 20 hash2, err := SigningHash([32]byte{3}, cfg.L2ChainID, payloadBytes) 21 require.NoError(t, err, "creating second signing hash") 22 23 require.NotEqual(t, hash, hash2, "signing hash should be different when domain is different") 24 } 25 26 func TestSigningHash_DifferentChainID(t *testing.T) { 27 cfg1 := &rollup.Config{ 28 L2ChainID: big.NewInt(100), 29 } 30 cfg2 := &rollup.Config{ 31 L2ChainID: big.NewInt(101), 32 } 33 34 payloadBytes := []byte("arbitraryData") 35 hash, err := SigningHash(SigningDomainBlocksV1, cfg1.L2ChainID, payloadBytes) 36 require.NoError(t, err, "creating first signing hash") 37 38 hash2, err := SigningHash(SigningDomainBlocksV1, cfg2.L2ChainID, payloadBytes) 39 require.NoError(t, err, "creating second signing hash") 40 41 require.NotEqual(t, hash, hash2, "signing hash should be different when chain ID is different") 42 } 43 44 func TestSigningHash_DifferentMessage(t *testing.T) { 45 cfg := &rollup.Config{ 46 L2ChainID: big.NewInt(100), 47 } 48 49 hash, err := SigningHash(SigningDomainBlocksV1, cfg.L2ChainID, []byte("msg1")) 50 require.NoError(t, err, "creating first signing hash") 51 52 hash2, err := SigningHash(SigningDomainBlocksV1, cfg.L2ChainID, []byte("msg2")) 53 require.NoError(t, err, "creating second signing hash") 54 55 require.NotEqual(t, hash, hash2, "signing hash should be different when message is different") 56 } 57 58 func TestSigningHash_LimitChainID(t *testing.T) { 59 // ChainID with bitlen 257 60 chainID := big.NewInt(1) 61 chainID = chainID.SetBit(chainID, 256, 1) 62 cfg := &rollup.Config{ 63 L2ChainID: chainID, 64 } 65 _, err := SigningHash(SigningDomainBlocksV1, cfg.L2ChainID, []byte("arbitraryData")) 66 require.ErrorContains(t, err, "chain_id is too large") 67 }