From a66b3ac28c964795c1ad64b1c9c130887d0ad5a1 Mon Sep 17 00:00:00 2001 From: Chirantan Ekbote Date: Mon, 22 Aug 2022 15:52:47 +0900 Subject: [PATCH] wormchain: tokenbridge: Parse chain id as an unsigned integer A chain id cannot be negative so parse it using `strconv.ParseUint` to avoid issues with negative values. --- wormhole_chain/x/tokenbridge/types/asset.go | 2 +- wormhole_chain/x/tokenbridge/types/asset_test.go | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/wormhole_chain/x/tokenbridge/types/asset.go b/wormhole_chain/x/tokenbridge/types/asset.go index c8953e20c..17ac6f810 100644 --- a/wormhole_chain/x/tokenbridge/types/asset.go +++ b/wormhole_chain/x/tokenbridge/types/asset.go @@ -111,7 +111,7 @@ func GetWrappedCoinMeta(identifier string) (tokenChain uint16, tokenAddress [32] return 0, [32]byte{}, false } - tokenChain64, err := strconv.ParseInt(parts[1], 10, 16) + tokenChain64, err := strconv.ParseUint(parts[1], 10, 16) if err != nil { return 0, [32]byte{}, false } diff --git a/wormhole_chain/x/tokenbridge/types/asset_test.go b/wormhole_chain/x/tokenbridge/types/asset_test.go index 03e9cf89a..f0aa35025 100644 --- a/wormhole_chain/x/tokenbridge/types/asset_test.go +++ b/wormhole_chain/x/tokenbridge/types/asset_test.go @@ -80,6 +80,13 @@ func TestGetWrappedCoinMeta(t *testing.T) { tokenAddress: [32]byte{}, wrapped: false, }, + { + name: "negative chain id", + identifier: "wh/-0222/165809739240a0ac03b98440fe8985548e3aa683cd0d4d9df5b5659669faa300", + tokenChain: 0, + tokenAddress: [32]byte{}, + wrapped: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {