Core constructor

Core({
  1. String? projectId,
  2. String? relayUrl,
  3. Logger? logger,
  4. IKeyChain? keychain,
  5. IHeartBeat? heartbeat,
  6. ICrypto? crypto,
  7. IJsonRpcHistory? history,
  8. IExpirer? expirer,
  9. IRelayer? relayer,
  10. IPairing? pairing,
  11. IKeyValueStorage? storage,
  12. String? database,
})

Implementation

Core({
  this.projectId,
  this.relayUrl,
  Logger? logger,
  IKeyChain? keychain,
  IHeartBeat? heartbeat,
  ICrypto? crypto,
  IJsonRpcHistory? history,
  IExpirer? expirer,
  IRelayer? relayer,
  IPairing? pairing,
  IKeyValueStorage? storage,
  String? database,
})  : logger = logger ?? Logger(),
      heartbeat = heartbeat ?? HeartBeat(),
      events = EventEmitter() {
  this.crypto = crypto ?? Crypto(core: this, logger: logger);
  this.history = history ?? JsonRpcHistory(core: this, logger: logger);
  this.expirer = expirer ?? Expirer(core: this, logger: logger);
  this.storage = storage ??
      KeyValueStorage(
        database: database ?? CoreStorageOptions.database,
      );
  this.relayer = relayer ??
      Relayer(
        core: this,
        logger: logger,
        relayUrl: relayUrl,
        projectId: projectId,
      );
  this.pairing = pairing ?? Pairing(core: this, logger: logger);
}