create method
Future<CreateResponse>
create({
- List<
List< ? methods,String> > - TransportType transportType = TransportType.relay,
override
Implementation
@override
Future<CreateResponse> create({
List<List<String>>? methods,
TransportType transportType = TransportType.relay,
}) async {
_checkInitialized();
final String symKey = core.crypto.getUtils().generateRandomBytes32();
final String topic = await core.crypto.setSymKey(symKey);
final int expiry = ReownCoreUtils.calculateExpiry(
ReownConstants.FIVE_MINUTES,
);
final Relay relay = Relay(ReownConstants.RELAYER_DEFAULT_PROTOCOL);
final PairingInfo pairing = PairingInfo(
topic: topic,
expiry: expiry,
relay: relay,
active: false,
methods: methods?.expand((e) => e).toList() ?? [],
);
final Uri uri = ReownCoreUtils.formatUri(
protocol: core.protocol,
version: core.version,
topic: topic,
symKey: symKey,
relay: relay,
methods: methods,
expiry: expiry,
);
onPairingCreate.broadcast(
PairingEvent(
topic: topic,
),
);
await pairings.set(topic, pairing);
await core.relayClient.subscribe(
options: SubscribeOptions(
topic: topic,
transportType: transportType,
skipSubscribe: true,
),
);
await core.expirer.set(topic, expiry);
return CreateResponse(
topic: topic,
uri: uri,
pairingInfo: pairing,
);
}