init method
Implementation
@override
Future<void> init() async {
if (!_enabled) return;
// Configure SDK for each platform
_coinbaseWalletData =
(await _explorerService.getCoinbaseWalletObject()) ??
ReownAppKitModalWalletInfo(
listing: CoinbaseUtils.defaultListingData,
installed: false,
recent: false,
);
final imageId = _coinbaseWalletData?.listing.imageId ?? '';
_iconImage = _explorerService.getWalletImageUrl(imageId);
final walletLink =
(walletMetadata.metadata.redirect?.linkMode == true
? _coinbaseWalletData?.listing.linkMode
: _coinbaseWalletData?.listing.mobileLink) ??
'';
final dappRedirect = _metadata.redirect;
final callback = dappRedirect?.linkMode == true
? (dappRedirect?.universal ?? dappRedirect?.native ?? '')
: (dappRedirect?.native ?? '');
_core.logger.i(
'[$runtimeType] init with host: $walletLink, callback: $callback',
);
if (callback.isNotEmpty || walletLink.isNotEmpty) {
try {
final config = Configuration(
ios: IOSConfiguration(
host: Uri.parse('${walletLink}wsegue'),
callback: Uri.parse(callback),
),
android: AndroidConfiguration(domain: Uri.parse(callback)),
);
await CoinbaseWalletSDK.shared.configure(config);
} catch (_) {
// Silent error
}
} else {
_enabled = false;
_core.logger.e('[$runtimeType] Initialization error');
throw CoinbaseServiceException('Initialization error');
}
}