mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
49 lines
1.9 KiB
Go
49 lines
1.9 KiB
Go
// Copyright (C) 2025, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package atomic
|
|
|
|
import (
|
|
"context"
|
|
"encoding/base64"
|
|
"testing"
|
|
|
|
"github.com/luxfi/ids"
|
|
"github.com/luxfi/node/v2/quasar/engine/chain/block"
|
|
"github.com/luxfi/evm/plugin/evm/message"
|
|
"github.com/luxfi/geth/common"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMarshalSummary(t *testing.T) {
|
|
atomicSummary, err := NewSummary(common.Hash{1}, 2, common.Hash{3}, common.Hash{4})
|
|
require.NoError(t, err, "failed to create summary")
|
|
|
|
require.Equal(t, common.Hash{1}, atomicSummary.GetBlockHash())
|
|
require.Equal(t, uint64(2), atomicSummary.Height())
|
|
require.Equal(t, common.Hash{3}, atomicSummary.GetBlockRoot())
|
|
|
|
expectedBase64Bytes := "AAAAAAAAAAAAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
|
require.Equal(t, expectedBase64Bytes, base64.StdEncoding.EncodeToString(atomicSummary.Bytes()))
|
|
expectedID := ids.FromStringOrPanic("256pj4a3SBG5kervhxKfeKpNRcVR1xk5BzTpkTkybkM8uMPu6Q")
|
|
require.Equal(t, expectedID, atomicSummary.ID())
|
|
|
|
parser := NewSummaryParser()
|
|
called := false
|
|
acceptImplTest := func(message.Syncable) (block.StateSyncMode, error) {
|
|
called = true
|
|
return block.StateSyncSkipped, nil
|
|
}
|
|
s, err := parser.Parse(atomicSummary.Bytes(), acceptImplTest)
|
|
require.NoError(t, err, "failed to parse summary")
|
|
require.Equal(t, atomicSummary.GetBlockHash(), s.GetBlockHash())
|
|
require.Equal(t, atomicSummary.Height(), s.Height())
|
|
require.Equal(t, atomicSummary.GetBlockRoot(), s.GetBlockRoot())
|
|
require.Equal(t, atomicSummary.AtomicRoot, s.(*Summary).AtomicRoot)
|
|
require.Equal(t, atomicSummary.Bytes(), s.Bytes())
|
|
|
|
mode, err := s.Accept(context.TODO())
|
|
require.NoError(t, err, "failed to accept summary")
|
|
require.Equal(t, block.StateSyncSkipped, mode)
|
|
require.True(t, called)
|
|
} |