|
|
@ -1095,28 +1095,21 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Update the state to show that proof of work is being calculated
|
|
|
|
// Update the state to show that proof of work is being calculated
|
|
|
|
[self calculatingProofOfWorkForMessage:messageSend];
|
|
|
|
[self setIsCalculatingProofOfWorkForMessage:messageSend];
|
|
|
|
|
|
|
|
|
|
|
|
// Loki: Calculate the proof of work for each device message
|
|
|
|
// Convert the message to a Loki message and send it using the Loki messaging API
|
|
|
|
NSNumber *ttl = [NSNumber numberWithInteger:@(4 * 24 * 60 * 60)];
|
|
|
|
NSDictionary *signalMessage = deviceMessages.firstObject;
|
|
|
|
AnyPromise *powPromise = [self calculateProofOfWorkForDeviceMessages:deviceMessages ttl:ttl];
|
|
|
|
BOOL isPOWRequired = YES; // TODO: Base on message type
|
|
|
|
[powPromise
|
|
|
|
[LokiMessagingAPI sendSignalMessage:signalMessage to:recipient.recipientId requiringPOW:isPOWRequired completionHandler:nil];
|
|
|
|
.thenOn([OWSDispatch sendingQueue], ^(NSArray *nonceArray) {
|
|
|
|
|
|
|
|
|
|
|
|
// Loki: Original code
|
|
|
|
|
|
|
|
/*
|
|
|
|
OWSRequestMaker *requestMaker = [[OWSRequestMaker alloc] initWithLabel:@"Message Send"
|
|
|
|
OWSRequestMaker *requestMaker = [[OWSRequestMaker alloc] initWithLabel:@"Message Send"
|
|
|
|
requestFactoryBlock:^(SMKUDAccessKey *_Nullable udAccessKey) {
|
|
|
|
requestFactoryBlock:^(SMKUDAccessKey *_Nullable udAccessKey) {
|
|
|
|
// Loki
|
|
|
|
|
|
|
|
// ========
|
|
|
|
|
|
|
|
return [OWSRequestFactory submitLokiMessageRequestWithRecipient:recipient.recipientId
|
|
|
|
|
|
|
|
messages:deviceMessages
|
|
|
|
|
|
|
|
nonceArray:nonceArray
|
|
|
|
|
|
|
|
ttl:ttl];
|
|
|
|
|
|
|
|
// ========
|
|
|
|
|
|
|
|
/* Original code:
|
|
|
|
|
|
|
|
return [OWSRequestFactory submitMessageRequestWithRecipient:recipient.recipientId
|
|
|
|
return [OWSRequestFactory submitMessageRequestWithRecipient:recipient.recipientId
|
|
|
|
messages:deviceMessages
|
|
|
|
messages:deviceMessages
|
|
|
|
timeStamp:message.timestamp
|
|
|
|
timeStamp:message.timestamp
|
|
|
|
udAccessKey:udAccessKey];
|
|
|
|
udAccessKey:udAccessKey];
|
|
|
|
*/
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
udAuthFailureBlock:^{
|
|
|
|
udAuthFailureBlock:^{
|
|
|
|
// Note the UD auth failure so subsequent retries
|
|
|
|
// Note the UD auth failure so subsequent retries
|
|
|
@ -1131,11 +1124,8 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|
|
|
recipientId:recipient.recipientId
|
|
|
|
recipientId:recipient.recipientId
|
|
|
|
udAccess:messageSend.udAccess
|
|
|
|
udAccess:messageSend.udAccess
|
|
|
|
canFailoverUDAuth:NO];
|
|
|
|
canFailoverUDAuth:NO];
|
|
|
|
return requestMaker;
|
|
|
|
[[requestMaker makeRequestObjc]
|
|
|
|
})
|
|
|
|
.then(^(OWSRequestMakerResult *result) {
|
|
|
|
.thenOn([OWSDispatch sendingQueue], ^(OWSRequestMaker *requestMaker) {
|
|
|
|
|
|
|
|
return [requestMaker makeRequestObjc];
|
|
|
|
|
|
|
|
}).then(^(OWSRequestMakerResult *result) {
|
|
|
|
|
|
|
|
dispatch_async([OWSDispatch sendingQueue], ^{
|
|
|
|
dispatch_async([OWSDispatch sendingQueue], ^{
|
|
|
|
[self messageSendDidSucceed:messageSend
|
|
|
|
[self messageSendDidSucceed:messageSend
|
|
|
|
deviceMessages:deviceMessages
|
|
|
|
deviceMessages:deviceMessages
|
|
|
@ -1172,9 +1162,10 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|
|
|
responseData:responseData];
|
|
|
|
responseData:responseData];
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}) retainUntilComplete];
|
|
|
|
}) retainUntilComplete];
|
|
|
|
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
- (void)calculatingProofOfWorkForMessage:(OWSMessageSend *)messageSend
|
|
|
|
- (void)setIsCalculatingProofOfWorkForMessage:(OWSMessageSend *)messageSend
|
|
|
|
{
|
|
|
|
{
|
|
|
|
OWSAssertDebug(messageSend);
|
|
|
|
OWSAssertDebug(messageSend);
|
|
|
|
dispatch_async([OWSDispatch sendingQueue], ^{
|
|
|
|
dispatch_async([OWSDispatch sendingQueue], ^{
|
|
|
|