mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
* Reown WalletConnect Implementation - Setup for Solana Chain - Setup for EVM chain - Enable signing messages and transactions on Solana Chain - Fix issues related to signinig of transactions on Solana chain - Decode mesage to human readable format - WIP * Reown WalletConnect Implementation Continuation: - Add readable text for signedTypedDatav4 and sendTransaction event requests - Modify styling for bottomsheetModel - Switch minimum deployment target to 13.0 - Gracefully handle errors - Fix issues discovered while testing across dApps * chore: ReownWalletConnectImplementation (Cont.) - Remove unneeded code and files - Rename files to match classes and vice versa - Add maven jitpack repository for reown.com/yttrium repo - Add better folder structuring to entire feature - Add localization for all feature related texts - Add testnet and devnet access for Solana Chain Service - Add a better error message for Moralis NFT fetch * feat: - Add field to enter wc uri directly - Handle bottomsheet not coming up after initial display - Remove unneeded print statements - Remove double display of success popup for session proposal bottomsheets * fix: - Add visual feedback to WC RelayClient Errors - Adjust theme for bottomSheets * Testing a theroy * Temporarily add flags back * Remove added flags and update proguard rules * fix(android): update proguard-rules.pro and drop minify flags (#2199) Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> * fix: Switch bottomsheet result from signOne to signAll --------- Co-authored-by: cyan <cyjan@mrcyjanek.net> Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
101 lines
2.7 KiB
Dart
101 lines
2.7 KiB
Dart
import 'package:cake_wallet/src/screens/wallet_connect/services/chain_service/eth/evm_chain_id.dart';
|
|
import 'package:cake_wallet/src/screens/wallet_connect/services/chain_service/eth/evm_supported_methods.dart';
|
|
import 'package:cake_wallet/src/screens/wallet_connect/services/chain_service/solana/solana_chain_id.dart';
|
|
import 'package:cake_wallet/src/screens/wallet_connect/services/chain_service/solana/solana_supported_methods.dart';
|
|
import 'package:cw_core/wallet_type.dart';
|
|
|
|
bool isEVMCompatibleChain(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.polygon:
|
|
case WalletType.ethereum:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool isNFTACtivatedChain(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.polygon:
|
|
case WalletType.ethereum:
|
|
case WalletType.solana:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool isWalletConnectCompatibleChain(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.polygon:
|
|
case WalletType.ethereum:
|
|
case WalletType.solana:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
String getChainNameSpaceAndIdBasedOnWalletType(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.ethereum:
|
|
return EVMChainId.ethereum.chain();
|
|
case WalletType.polygon:
|
|
return EVMChainId.polygon.chain();
|
|
case WalletType.solana:
|
|
return SolanaChainId.mainnet.chain();
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
List<String> getChainSupportedMethodsOnWalletType(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.ethereum:
|
|
return EVMSupportedMethods.values.map((e) => e.name).toList();
|
|
case WalletType.polygon:
|
|
return EVMSupportedMethods.values.map((e) => e.name).toList();
|
|
case WalletType.solana:
|
|
return SolanaSupportedMethods.values.map((e) => e.name).toList();
|
|
default:
|
|
return [];
|
|
}
|
|
}
|
|
|
|
int getChainIdBasedOnWalletType(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.polygon:
|
|
return 137;
|
|
|
|
// For now, we return eth chain Id as the default, we'll modify as we add more wallets
|
|
case WalletType.ethereum:
|
|
default:
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
String getChainNameBasedOnWalletType(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.ethereum:
|
|
return 'eth';
|
|
case WalletType.polygon:
|
|
return 'polygon';
|
|
case WalletType.solana:
|
|
return 'mainnet';
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
String getTokenNameBasedOnWalletType(WalletType walletType) {
|
|
switch (walletType) {
|
|
case WalletType.ethereum:
|
|
return 'ETH';
|
|
case WalletType.polygon:
|
|
return 'MATIC';
|
|
case WalletType.solana:
|
|
return 'SOL';
|
|
default:
|
|
return '';
|
|
}
|
|
}
|