initWithStaticConnectRequest method

dynamic initWithStaticConnectRequest(
  1. String serviceEndpoint,
  2. Context context, {
  3. String? peerDID,
  4. bool didVerification(
    1. String peerDID
    )?,
})

Initializes the agent with a static connect request message and connects to the server.

Implementation

initWithStaticConnectRequest(
  String serviceEndpoint,
  Context context, {
  String? peerDID,
  bool Function(String peerDID)? didVerification,
}) async {
  if (peerDID != null && didVerification != null) {
    if (!didVerification(peerDID)) {
      throw Exception("DID verification failed");
    }
  }

  // Initialize with static connection only can be done by HOLDER
  changeRole("HOLDER");
  await connect();

  int currentTime = DateTime.now().millisecondsSinceEpoch ~/ 1000;
  await Future.delayed(Duration(milliseconds: 500));
  String socketId = (await this.socketId)!;

  Initiator initiator = Initiator(
    type: role,
    serviceEndpoint: url,
    socketId: socketId,
  );

  DIDConnectRequestMessage didConnectRequestMessage =
      DIDConnectRequestMessage(
    from: did,
    createdTime: currentTime,
    expiresTime: currentTime + 30000,
    context: context,
    initiator: initiator,
  );
  final encodedMessage =
      didConnectRequestMessage.encode(CompressionLevel.compactJSON);

  await http.get(Uri.parse("$serviceEndpoint?data=$encodedMessage"));
}