create method

  1. @override
Future<CreateResponse> create()
override

Implementation

@override
Future<CreateResponse> create() async {
  _checkInitialized();
  final String symKey = core.crypto.getUtils().generateRandomBytes32();
  final String topic = await core.crypto.setSymKey(symKey);
  final int expiry = WalletConnectUtils.calculateExpiry(
    WalletConnectConstants.FIVE_MINUTES,
  );
  final Relay relay = Relay(WalletConnectConstants.RELAYER_DEFAULT_PROTOCOL);
  final PairingInfo pairing = PairingInfo(topic, expiry, relay, false);
  final Uri uri = WalletConnectUtils.formatUri(
    core.protocol,
    core.version,
    topic,
    symKey,
    relay,
  );
  await pairings!.set(topic, pairing);
  await core.relayClient.subscribe(topic);
  await core.expirer.set(topic, expiry);

  return CreateResponse(
    topic,
    uri,
  );
}