Bridge API
Use pallet_wallet_lite to develop the bridging layer to connect third-party apps.
The pallet_wallet_lite module acts as a bridging layer and is developed based on the thrio routing framework. Pallet-lite can be customized according to the framework used by third-party apps.
Pallet Wallet Lite API
Delegate interface and it's implementation relay on third-part APP
abstract class PalletDelegate {
/// Get language, format: language-country, such as: en-US
String getLang();
/// Get device id
String getDeviceId();
/// Get the current environment (pallet only has dev and prod environments)
String getEnv();
/// Set log proxy
ILogDelegate getLogDelegate();
/// Check if biometrics are supported
Future<bool> checkBiometrics();
/// Biometric Authentication Results
Future<bool> authenticateBiometric();
/// Track event reporting
void uploadEvent(String eventName, {Map<String, dynamic>? properties});
/// Check camera permissions
Future<bool> checkCameraPermission();
/// Scan pictures from photo albums and identify results
Future<String?> scanAlbum();
}
Pallet provides interface for the third-part APP
abstract class PalletModule {
factory PalletModule() => PalletPalletModuleImpl();
void setRootNavigatorKey(GlobalKey<NavigatorState> rootNavigatorKey);
/// Configure AppDelegate, cold start must call
void setPalletDelegate(PalletDelegate delegate);
/// Lazy loading calls to Pallet services
Future<void> ensureInited(Object? params);
PalletDelegate get delegate;
/// Asynchronous initialization: handle non-time-consuming operations necessary on cold start
Future<void> onModuleAsyncInit(Object? params);
/// Jump to the wallet homepage by routing
Future<void> enterPalletHome(BuildContext context);
/// Get the list of Pallet wallets
Future<List<BWWallet>> getWalletList({BuildContext? context});
/// Switch wallet
Future<void> switchWallet({BuildContext? context, required String walletId});
/// Get current selected wallet
Future<String?> getCurrentWallet({BuildContext? context});
/// Get a list of currently supported blockchains
Future<List<BWBlockChain>> getChainList({BuildContext? context});
/// Delete MPC wallet (jump wallet management page)
Future<void> deleteWallet({BuildContext? context, required String walletId});
/// Create MPC wallet (jump wallet creation & restoration page)
Future<void> gotoCreateWallet({BuildContext? context, String? targetUrl});
/// Create a MPC wallet and open it through a dialog
Future<void> gotoWalletCreateByDialog({BuildContext? context, String? targetUrl});
/// Return wallet Homepage as widget
Future<Widget> walletHome({BuildContext? context});
/// Jump to wallet settings page
Future<void> gotoUserSettings({BuildContext? context});
/// Message signature
Future<void> signPersonalMessage(
{BuildContext? context,
required String walletId,
required int chainId,
required String msg,
Function({dynamic result, bool success})? onFinish});
/// Typed signature
Future<void> signTypedMessage(
{BuildContext? context,
required String walletId,
required int chainId,
required String msg,
required String raw,
required Eip712TypedVersion version,
Function({dynamic result, bool success})? onFinish});
/// Transcation signature
Future<void> signTransaction(
{BuildContext? context,
required String walletId,
required int chainId,
required String from,
required String to,
String? gas,
String? gasPrice,
String? value,
String? data,
Function({dynamic result, bool success})? onFinish});
}
Last updated