From 377377bbd1d4d5833535ff511e9862d65c6b183f Mon Sep 17 00:00:00 2001 From: Uday Patil Date: Wed, 5 Nov 2025 15:03:23 -0600 Subject: [PATCH 1/3] Manually replace file versions in stack trace wrapping --- types/errors/stacktrace.go | 14 +++++++++++++- types/errors/stacktrace_test.go | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/types/errors/stacktrace.go b/types/errors/stacktrace.go index f7079c56d..e1ce6f9be 100644 --- a/types/errors/stacktrace.go +++ b/types/errors/stacktrace.go @@ -73,14 +73,26 @@ func writeSimpleFrame(s io.Writer, f errors.Frame) { if len(chunks) == 2 { file = chunks[1] } + // replace specific file versions in stack trace + file = replaceWasmdVersionStr(file) + file = replaceSeiCosmosVersionStr(file) fmt.Fprintf(s, " [%s:%d]", file, line) } +func replaceWasmdVersionStr(err string) string { + return strings.Replace(err, "sei-wasmd@v0.3.11", "sei-wasmd@v0.3.10", 1) +} + +func replaceSeiCosmosVersionStr(err string) string { + return strings.Replace(err, "sei-cosmos@v0.3.67", "sei-cosmos@v0.3.66", 1) +} + // Format works like pkg/errors, with additions. // %s is just the error message // %+v is the full stack trace // %v appends a compressed [filename:line] where the error -// was created +// +// was created // // Inspired by https://github.com/pkg/errors/blob/v0.8.1/errors.go#L162-L176 func (e *wrappedError) Format(s fmt.State, verb rune) { diff --git a/types/errors/stacktrace_test.go b/types/errors/stacktrace_test.go index 06eb829f0..8bae8d2af 100644 --- a/types/errors/stacktrace_test.go +++ b/types/errors/stacktrace_test.go @@ -39,7 +39,7 @@ func (s *errorsTestSuite) TestStackTrace() { const thisTestSrc = "types/errors/stacktrace_test.go" for _, tc := range cases { - s.Require().True(reflect.DeepEqual(tc.err.Error(), tc.wantError)) + s.Require().True(reflect.DeepEqual(tc.err.Error(), tc.wantError), tc.err.Error(), tc.wantError) s.Require().NotNil(stackTrace(tc.err)) fullStack := fmt.Sprintf("%+v", tc.err) s.Require().True(strings.Contains(fullStack, thisTestSrc)) @@ -60,3 +60,17 @@ func (s *errorsTestSuite) TestStackTrace() { s.Require().True(strings.Contains(tinyStack, thisTestSrc)) } } + +func (s *errorsTestSuite) TestReplaceWasmdVersionStr() { + input := "sei-wasmd@v0.3.11/some/path/file.go" + expected := "sei-wasmd@v0.3.10/some/path/file.go" + result := replaceWasmdVersionStr(input) + s.Require().Equal(expected, result) +} + +func (s *errorsTestSuite) TestReplaceSeiCosmosVersionStr() { + input := "sei-cosmos@v0.3.67/some/path/file.go" + expected := "sei-cosmos@v0.3.66/some/path/file.go" + result := replaceSeiCosmosVersionStr(input) + s.Require().Equal(expected, result) +} From 6a46af120d57f657f38fcf2fdfb60cd558693540 Mon Sep 17 00:00:00 2001 From: Uday Patil Date: Wed, 5 Nov 2025 15:36:56 -0600 Subject: [PATCH 2/3] remove extra stuff --- types/errors/stacktrace_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/errors/stacktrace_test.go b/types/errors/stacktrace_test.go index 8bae8d2af..bc24eb934 100644 --- a/types/errors/stacktrace_test.go +++ b/types/errors/stacktrace_test.go @@ -39,7 +39,7 @@ func (s *errorsTestSuite) TestStackTrace() { const thisTestSrc = "types/errors/stacktrace_test.go" for _, tc := range cases { - s.Require().True(reflect.DeepEqual(tc.err.Error(), tc.wantError), tc.err.Error(), tc.wantError) + s.Require().True(reflect.DeepEqual(tc.err.Error(), tc.wantError)) s.Require().NotNil(stackTrace(tc.err)) fullStack := fmt.Sprintf("%+v", tc.err) s.Require().True(strings.Contains(fullStack, thisTestSrc)) From 18a1142cb2d3c1c6157ef0d875b95ec2d5b51c2d Mon Sep 17 00:00:00 2001 From: Uday Patil Date: Thu, 6 Nov 2025 15:53:22 -0600 Subject: [PATCH 3/3] Add additional error replacement versions --- types/errors/stacktrace.go | 15 +++++++-------- types/errors/stacktrace_test.go | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/types/errors/stacktrace.go b/types/errors/stacktrace.go index e1ce6f9be..c1330204d 100644 --- a/types/errors/stacktrace.go +++ b/types/errors/stacktrace.go @@ -74,17 +74,16 @@ func writeSimpleFrame(s io.Writer, f errors.Frame) { file = chunks[1] } // replace specific file versions in stack trace - file = replaceWasmdVersionStr(file) - file = replaceSeiCosmosVersionStr(file) + file = replacePackageVersionStr(file) fmt.Fprintf(s, " [%s:%d]", file, line) } -func replaceWasmdVersionStr(err string) string { - return strings.Replace(err, "sei-wasmd@v0.3.11", "sei-wasmd@v0.3.10", 1) -} - -func replaceSeiCosmosVersionStr(err string) string { - return strings.Replace(err, "sei-cosmos@v0.3.67", "sei-cosmos@v0.3.66", 1) +func replacePackageVersionStr(err string) string { + err = strings.Replace(err, "sei-wasmd@v0.3.11", "sei-wasmd@v0.3.10", 1) + err = strings.Replace(err, "CosmWasm/wasmd@v0.27.0", "sei-protocol/sei-wasmd@v0.3.10", 1) + err = strings.Replace(err, "sei-cosmos@v0.3.67", "sei-cosmos@v0.3.66", 1) + err = strings.Replace(err, "sei-cosmos@v0.3.68", "sei-cosmos@v0.3.66", 1) + return err } // Format works like pkg/errors, with additions. diff --git a/types/errors/stacktrace_test.go b/types/errors/stacktrace_test.go index bc24eb934..b903f6f42 100644 --- a/types/errors/stacktrace_test.go +++ b/types/errors/stacktrace_test.go @@ -64,13 +64,23 @@ func (s *errorsTestSuite) TestStackTrace() { func (s *errorsTestSuite) TestReplaceWasmdVersionStr() { input := "sei-wasmd@v0.3.11/some/path/file.go" expected := "sei-wasmd@v0.3.10/some/path/file.go" - result := replaceWasmdVersionStr(input) + result := replacePackageVersionStr(input) + s.Require().Equal(expected, result) + + input = "CosmWasm/wasmd@v0.27.0/some/path/file.go" + expected = "sei-protocol/sei-wasmd@v0.3.10/some/path/file.go" + result = replacePackageVersionStr(input) s.Require().Equal(expected, result) } func (s *errorsTestSuite) TestReplaceSeiCosmosVersionStr() { input := "sei-cosmos@v0.3.67/some/path/file.go" expected := "sei-cosmos@v0.3.66/some/path/file.go" - result := replaceSeiCosmosVersionStr(input) + result := replacePackageVersionStr(input) + s.Require().Equal(expected, result) + + input = "sei-cosmos@v0.3.68/some/path/file.go" + expected = "sei-cosmos@v0.3.66/some/path/file.go" + result = replacePackageVersionStr(input) s.Require().Equal(expected, result) }