WalletConnect constructor
WalletConnect({
- String bridge = '',
- String uri = '',
- WalletConnectSession? session,
- SessionStorage? sessionStorage,
- CipherBox? cipher,
- SocketTransport? transport,
- String? clientId,
- PeerMeta? clientMeta,
WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking.
You should provide a bridge, uri or session object.
Implementation
factory WalletConnect({
String bridge = '',
String uri = '',
WalletConnectSession? session,
SessionStorage? sessionStorage,
CipherBox? cipher,
SocketTransport? transport,
String? clientId,
PeerMeta? clientMeta,
}) {
if (bridge.isEmpty && uri.isEmpty && session == null) {
throw WalletConnectException(
'Missing one of the required parameters: bridge / uri / session',
);
}
if (bridge.isNotEmpty) {
bridge = BridgeUtils.getBridgeUrl(bridge);
}
if (uri.isNotEmpty) {
session = WalletConnectSession.fromUri(
uri: uri,
clientId: clientId ?? const Uuid().v4(),
clientMeta: clientMeta ?? const PeerMeta(),
);
}
session = session ??
WalletConnectSession(
bridge: bridge,
accounts: [],
clientId: clientId ?? const Uuid().v4(),
clientMeta: clientMeta ?? const PeerMeta(),
);
cipher = cipher ?? WalletConnectCipher();
transport = transport ??
SocketTransport(
protocol: session.protocol,
version: session.version,
url: session.bridge,
subscriptions: [session.clientId],
);
return WalletConnect._internal(
session: session,
sessionStorage: sessionStorage,
cipherBox: cipher,
signingMethods: [...ethSigningMethods],
transport: transport,
);
}