From e34cc77f6accbc4fe0d821b2d0695f9e50a68b7d Mon Sep 17 00:00:00 2001 From: cyan Date: Thu, 3 Jul 2025 03:11:17 +0200 Subject: [PATCH] fix(cw_solana): signMessage to return properly formatted signature (#2352) feat(dfx) add initial support for solana and tron --- cw_solana/lib/solana_wallet.dart | 6 +++--- lib/buy/dfx/dfx_buy_provider.dart | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index ec65642bc..455f510ac 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -563,9 +563,9 @@ abstract class SolanaWalletBase final messageBytes = utf8.encode(message); // Sign the message bytes with the wallet's private key - final signature = (_solanaPrivateKey.sign(messageBytes)).toString(); - - return HEX.encode(utf8.encode(signature)).toUpperCase(); + final signature = (_solanaPrivateKey.sign(messageBytes)); + + return Base58Encoder.encode(signature); } List> bytesFromSigString(String signatureString) { diff --git a/lib/buy/dfx/dfx_buy_provider.dart b/lib/buy/dfx/dfx_buy_provider.dart index eed527cf1..b798c9ada 100644 --- a/lib/buy/dfx/dfx_buy_provider.dart +++ b/lib/buy/dfx/dfx_buy_provider.dart @@ -123,7 +123,10 @@ class DFXBuyProvider extends BuyProvider { switch (wallet.type) { case WalletType.ethereum: case WalletType.polygon: - return await wallet.signMessage(message); + case WalletType.solana: + case WalletType.tron: + final r = await wallet.signMessage(message); + return r; case WalletType.monero: case WalletType.litecoin: case WalletType.bitcoin: