From 2f806d6e830458d0d381ab658613d1715a16b936 Mon Sep 17 00:00:00 2001 From: Marcin Gorzynski Date: Fri, 16 Feb 2024 12:25:59 +0100 Subject: [PATCH] move to separate files --- message.go | 20 ++++++++++++++++++++ message_test.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ signature.go | 15 --------------- signature_test.go | 46 ---------------------------------------------- 4 files changed, 67 insertions(+), 61 deletions(-) create mode 100644 message.go create mode 100644 message_test.go diff --git a/message.go b/message.go new file mode 100644 index 00000000..396c0553 --- /dev/null +++ b/message.go @@ -0,0 +1,20 @@ +package sequence + +import ( + "bytes" + "fmt" +) + +func IsEIP191Message(msg []byte) bool { + return len(msg) > 0 && msg[0] == 0x19 +} + +func MessageToEIP191(msg []byte) []byte { + if !IsEIP191Message(msg) { + return bytes.Join([][]byte{ + []byte("\x19Ethereum Signed Message:\n"), + []byte(fmt.Sprintf("%v", len(msg))), + msg}, nil) + } + return msg +} diff --git a/message_test.go b/message_test.go new file mode 100644 index 00000000..b229bff3 --- /dev/null +++ b/message_test.go @@ -0,0 +1,47 @@ +package sequence_test + +import ( + "testing" + + "github.com/0xsequence/go-sequence" + "github.com/stretchr/testify/assert" +) + +func TestIsEIP191Message(t *testing.T) { + t.Run("EIP191", func(t *testing.T) { + // EIP191 message + msg := []byte("\x19Ethereum Signed Message:\n5hello") + ok := sequence.IsEIP191Message(msg) + if !ok { + t.Error("expected EIP191 message") + } + }) + + t.Run("non-EIP191", func(t *testing.T) { + // non-EIP191 message + msg := []byte("hello") + ok := sequence.IsEIP191Message(msg) + if ok { + t.Error("expected non-EIP191 message") + } + }) +} + +func TestMessageToEIP191(t *testing.T) { + t.Run("EIP191_none", func(t *testing.T) { + // EIP191 message + msg := []byte("hello") + expectedEIP191 := []byte("\x19Ethereum Signed Message:\n5hello") + + eip191 := sequence.MessageToEIP191(msg) + assert.Equal(t, eip191, expectedEIP191) + }) + + t.Run("EIP191_already", func(t *testing.T) { + // EIP191 message + msg := []byte("\x19Ethereum Signed Message:\n5hello") + eip191 := sequence.MessageToEIP191(msg) + + assert.Equal(t, msg, eip191) + }) +} diff --git a/signature.go b/signature.go index 2d42ce20..b283a9d4 100644 --- a/signature.go +++ b/signature.go @@ -1,7 +1,6 @@ package sequence import ( - "bytes" "context" "fmt" "math/big" @@ -219,20 +218,6 @@ func IsValidUndeployedSignature(walletAddress common.Address, digest common.Hash return V2IsValidUndeployedSignature(walletAddress, digest, seqSig, walletContext, chainID, provider) } -func IsEIP191Message(msg []byte) bool { - return len(msg) > 0 && msg[0] == 0x19 -} - -func MessageToEIP191(msg []byte) []byte { - if !IsEIP191Message(msg) { - return bytes.Join([][]byte{ - []byte("\x19Ethereum Signed Message:\n"), - []byte(fmt.Sprintf("%v", len(msg))), - msg}, nil) - } - return msg -} - func MessageDigest(message []byte) common.Hash { return common.BytesToHash(ethcoder.Keccak256(message)) } diff --git a/signature_test.go b/signature_test.go index 49450ded..24530b2f 100644 --- a/signature_test.go +++ b/signature_test.go @@ -1,12 +1,5 @@ package sequence_test -import ( - "testing" - - "github.com/0xsequence/go-sequence" - "github.com/stretchr/testify/assert" -) - /* const message = "hi!" @@ -554,42 +547,3 @@ func areSignaturesIsomorphic(a *signature, b *signature) bool { return true } */ - -func TestIsEIP191Message(t *testing.T) { - t.Run("EIP191", func(t *testing.T) { - // EIP191 message - msg := []byte("\x19Ethereum Signed Message:\n5hello") - ok := sequence.IsEIP191Message(msg) - if !ok { - t.Error("expected EIP191 message") - } - }) - - t.Run("non-EIP191", func(t *testing.T) { - // non-EIP191 message - msg := []byte("hello") - ok := sequence.IsEIP191Message(msg) - if ok { - t.Error("expected non-EIP191 message") - } - }) -} - -func TestMessageToEIP191(t *testing.T) { - t.Run("EIP191_none", func(t *testing.T) { - // EIP191 message - msg := []byte("hello") - expectedEIP191 := []byte("\x19Ethereum Signed Message:\n5hello") - - eip191 := sequence.MessageToEIP191(msg) - assert.Equal(t, eip191, expectedEIP191) - }) - - t.Run("EIP191_already", func(t *testing.T) { - // EIP191 message - msg := []byte("\x19Ethereum Signed Message:\n5hello") - eip191 := sequence.MessageToEIP191(msg) - - assert.Equal(t, msg, eip191) - }) -}