From 98d2b49192069cffbf29ae3c7dabc7612b4a0004 Mon Sep 17 00:00:00 2001 From: unclebill Date: Thu, 21 Jul 2022 11:57:49 +0800 Subject: [PATCH] fix(solana): pubkey length varies from 32 to 44 characters > The public key is a long string of base58 characters. Its length varies from 32 to 44 characters. https://docs.solana.com/cli/transfer-tokens#receive-tokens --- packages/web3-shared/solana/utils/address.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/web3-shared/solana/utils/address.ts b/packages/web3-shared/solana/utils/address.ts index b82cb194f316..14f938ac9308 100644 --- a/packages/web3-shared/solana/utils/address.ts +++ b/packages/web3-shared/solana/utils/address.ts @@ -24,8 +24,10 @@ export function formatTokenId(id: string) { return id } export function isValidAddress(address?: string) { + const length = address?.length + if (!length) return false try { - return address?.length === 44 && Web3.PublicKey.isOnCurve(bs58.decode(address)) + return length >= 32 && length <= 44 && Web3.PublicKey.isOnCurve(bs58.decode(address)) } catch { return false }