From a0c25dead297972b4a6df44d47cf48694dac076f Mon Sep 17 00:00:00 2001 From: Chirantan Ekbote Date: Mon, 22 Aug 2022 16:34:03 +0900 Subject: [PATCH] wormchain: tokenbridge: Check for base denom in GetWrappedCoinMeta The base denom for wrapped tokens is prefixed with "b". Check for this in GetWrappedCoinMeta so that we don't end up treating base denom tokens as native tokens. --- wormhole_chain/x/tokenbridge/types/asset.go | 2 +- wormhole_chain/x/tokenbridge/types/asset_test.go | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/wormhole_chain/x/tokenbridge/types/asset.go b/wormhole_chain/x/tokenbridge/types/asset.go index 17ac6f810..2ac9528ab 100644 --- a/wormhole_chain/x/tokenbridge/types/asset.go +++ b/wormhole_chain/x/tokenbridge/types/asset.go @@ -101,7 +101,7 @@ func GetWrappedCoinMeta(identifier string) (tokenChain uint16, tokenAddress [32] if len(parts) != 3 { return 0, [32]byte{}, false } - if parts[0] != "wh" { + if parts[0] != "wh" && parts[0] != "bwh" { return 0, [32]byte{}, false } if len(parts[1]) != 5 { diff --git a/wormhole_chain/x/tokenbridge/types/asset_test.go b/wormhole_chain/x/tokenbridge/types/asset_test.go index f0aa35025..b320d625f 100644 --- a/wormhole_chain/x/tokenbridge/types/asset_test.go +++ b/wormhole_chain/x/tokenbridge/types/asset_test.go @@ -1,6 +1,8 @@ package types import ( + "encoding/hex" + "fmt" "testing" "github.com/stretchr/testify/require" @@ -87,6 +89,13 @@ func TestGetWrappedCoinMeta(t *testing.T) { tokenAddress: [32]byte{}, wrapped: false, }, + { + name: "base denom", + identifier: fmt.Sprintf("bwh/00008/%s", hex.EncodeToString(testToken[:])), + tokenChain: 8, + tokenAddress: testToken, + wrapped: true, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {