2020-07-23 17:28:36 +02:00
|
|
|
package loopdb
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
|
2024-09-10 09:54:17 -03:00
|
|
|
"github.com/lightninglabs/loop/swapserverrpc"
|
2020-07-23 17:28:36 +02:00
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// TestProtocolVersionSanity tests that protocol versions are sane, meaning
|
|
|
|
|
// we always keep our stored protocol version in sync with the RPC protocol
|
|
|
|
|
// version except for the unrecorded version.
|
|
|
|
|
func TestProtocolVersionSanity(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
|
|
versions := [...]ProtocolVersion{
|
|
|
|
|
ProtocolVersionLegacy,
|
|
|
|
|
ProtocolVersionMultiLoopOut,
|
|
|
|
|
ProtocolVersionSegwitLoopIn,
|
|
|
|
|
ProtocolVersionPreimagePush,
|
|
|
|
|
ProtocolVersionUserExpiryLoopOut,
|
2020-07-23 17:30:53 +02:00
|
|
|
ProtocolVersionHtlcV2,
|
2020-05-29 11:27:47 +02:00
|
|
|
ProtocolVersionMultiLoopIn,
|
2021-05-24 08:40:12 +02:00
|
|
|
ProtocolVersionLoopOutCancel,
|
2021-05-10 16:55:53 +02:00
|
|
|
ProtocolVersionProbe,
|
2021-11-28 19:49:59 +01:00
|
|
|
ProtocolVersionRoutingPlugin,
|
2022-04-24 22:29:13 +02:00
|
|
|
ProtocolVersionHtlcV3,
|
2023-04-25 16:06:32 +02:00
|
|
|
ProtocolVersionMuSig2,
|
2020-07-23 17:28:36 +02:00
|
|
|
}
|
|
|
|
|
|
2024-09-10 09:54:17 -03:00
|
|
|
rpcVersions := [...]swapserverrpc.ProtocolVersion{
|
|
|
|
|
swapserverrpc.ProtocolVersion_LEGACY,
|
|
|
|
|
swapserverrpc.ProtocolVersion_MULTI_LOOP_OUT,
|
|
|
|
|
swapserverrpc.ProtocolVersion_NATIVE_SEGWIT_LOOP_IN,
|
|
|
|
|
swapserverrpc.ProtocolVersion_PREIMAGE_PUSH_LOOP_OUT,
|
|
|
|
|
swapserverrpc.ProtocolVersion_USER_EXPIRY_LOOP_OUT,
|
|
|
|
|
swapserverrpc.ProtocolVersion_HTLC_V2,
|
|
|
|
|
swapserverrpc.ProtocolVersion_MULTI_LOOP_IN,
|
|
|
|
|
swapserverrpc.ProtocolVersion_LOOP_OUT_CANCEL,
|
|
|
|
|
swapserverrpc.ProtocolVersion_PROBE,
|
|
|
|
|
swapserverrpc.ProtocolVersion_ROUTING_PLUGIN,
|
|
|
|
|
swapserverrpc.ProtocolVersion_HTLC_V3,
|
|
|
|
|
swapserverrpc.ProtocolVersion_MUSIG2,
|
2020-07-23 17:28:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
require.Equal(t, len(versions), len(rpcVersions))
|
|
|
|
|
for i, version := range versions {
|
|
|
|
|
require.Equal(t, uint32(version), uint32(rpcVersions[i]))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Finally test that the current version contants are up to date
|
|
|
|
|
require.Equal(t,
|
2022-05-14 17:47:15 +02:00
|
|
|
CurrentProtocolVersion(),
|
2023-04-25 16:06:32 +02:00
|
|
|
versions[len(versions)-1],
|
2020-07-23 17:28:36 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
require.Equal(t,
|
2022-05-14 17:47:15 +02:00
|
|
|
uint32(CurrentProtocolVersion()),
|
|
|
|
|
uint32(CurrentRPCProtocolVersion()),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
EnableExperimentalProtocol()
|
|
|
|
|
|
|
|
|
|
require.Equal(t,
|
|
|
|
|
CurrentProtocolVersion(),
|
|
|
|
|
ProtocolVersion(experimentalRPCProtocolVersion),
|
2020-07-23 17:28:36 +02:00
|
|
|
)
|
|
|
|
|
}
|