git » sdk » commit fe0f26a

Update OMEMO.hx to wait on things that can be awaited

author Eric Roberts
2026-08-26 18:14:57 UTC
committer Stephen Paul Weber
2026-08-26 18:16:17 UTC
parent 8573f01d20abdf4ef92628857803c5be13b29c9d

Update OMEMO.hx to wait on things that can be awaited

borogove/OMEMO.hx +10 -12

diff --git a/borogove/OMEMO.hx b/borogove/OMEMO.hx
index 097cce0..0664668 100644
--- a/borogove/OMEMO.hx
+++ b/borogove/OMEMO.hx
@@ -137,16 +137,14 @@ class OMEMOStore extends SignalProtocolStore {
 	}
 
 	public function storePreKey(keyId:Int, keyPair:PreKeyPair):Promise<Bool> {
-		persistence.storeOmemoPreKey(accountId, keyId, keyPair);
-		return Promise.resolve(true);
+		return persistence.storeOmemoPreKey(accountId, keyId, keyPair).then(_ -> true);
 	}
 
 	public function removePreKey(keyId:Int):Promise<Bool> {
 		trace("OMEMO: Removing prekey "+keyId);
-		persistence.removeOmemoPreKey(accountId, keyId);
 		// FIXME: Need to signal that we need to generate a replacement
 		// for the consumed prekey and republish our bundle
-		return Promise.resolve(true);
+		return persistence.removeOmemoPreKey(accountId, keyId).then(_ -> true);
 	}
 
 	public function loadSignedPreKey(keyId:Int):Promise<PreKeyPair> {
@@ -667,11 +665,12 @@ class OMEMO {
 
 		final identityKeyPairPromise:Promise<IdentityKeyPair> = KeyHelper.generateIdentityKeyPair();
 
-		final doneIdentityStorage:Promise<Bool> = identityKeyPairPromise.then(function (keypair:IdentityKeyPair):Bool {
+		final doneIdentityStorage:Promise<Bool> = identityKeyPairPromise.then(function (keypair:IdentityKeyPair):Promise<Bool> {
 			identityKeyPair = keypair;
-			persistence.storeOmemoId(client.accountId(), deviceId);
-			persistence.storeOmemoIdentityKey(client.accountId(), keypair);
-			return true;
+			return PromiseTools.all([
+				persistence.storeOmemoId(client.accountId(), deviceId).then(_ -> true),
+				persistence.storeOmemoIdentityKey(client.accountId(), keypair).then(_ -> true),
+			]).then(_ -> true);
 		});
 
 		final preKeysPromise:Promise<Array<PublicPreKey>> = doneIdentityStorage.then(cast generatePreKeys);
@@ -696,11 +695,10 @@ class OMEMO {
 	}
 
 	private function storePreKeys(prekeys:Array<PreKey>):Promise<Array<PublicPreKey>> {
-		for(prekey in prekeys) {
+		return PromiseTools.all(prekeys.map(prekey ->
 			// Store the full keypair
-			persistence.storeOmemoPreKey(client.accountId(), prekey.keyId, prekey.keyPair);
-		}
-		return Promise.resolve([
+			persistence.storeOmemoPreKey(client.accountId(), prekey.keyId, prekey.keyPair)
+		)).then(_ -> [
 			for(prekey in prekeys) {
 				// Emit the base64 public part for the application to publish
 				{