Skip to content

Commit f52b629

Browse files
Alex RischAlex Risch
Alex Risch
authored and
Alex Risch
committed
Fixed tests fixed lint
1 parent b75d6e4 commit f52b629

File tree

3 files changed

+22
-20
lines changed

3 files changed

+22
-20
lines changed

library/src/androidTest/java/org/xmtp/android/library/FramesTest.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import java.net.HttpURLConnection
1616
import java.net.URL
1717

1818
@RunWith(AndroidJUnit4::class)
19-
2019
class FramesTest {
2120
@Test
2221
fun testFramesClient() {
@@ -49,10 +48,10 @@ class FramesTest {
4948
signedPayload = framesClient.signFrameAction(inputs = frameInputs)
5049
}
5150
val postUrl = metadata.extractedTags["fc:frame:post_url"]
52-
?: throw Exception("postUrl should exist")
51+
assertNotNull(postUrl)
5352
val response: GetMetadataResponse
5453
runBlocking {
55-
response = framesClient.proxy.post(url = postUrl, payload = signedPayload)
54+
response = framesClient.proxy.post(url = postUrl!!, payload = signedPayload)
5655
}
5756

5857
assertEquals(response.extractedTags["fc:frame"], "vNext")

library/src/main/java/org/xmtp/android/library/frames/FramesClient.kt

+19-16
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package org.xmtp.android.library.frames
22

33
import android.util.Base64
4-
import kotlinx.coroutines.Dispatchers
5-
import kotlinx.coroutines.withContext
64
import org.xmtp.android.library.Client
75
import org.xmtp.android.library.frames.Constants.PROTOCOL_VERSION
86
import org.xmtp.android.library.messages.PrivateKeyBuilder
@@ -15,30 +13,35 @@ import org.xmtp.proto.message.contents.Frames.FrameAction
1513

1614
class FramesClient(private val xmtpClient: Client, var proxy: OpenFramesProxy = OpenFramesProxy()) {
1715

18-
suspend fun signFrameAction(inputs: FrameActionInputs): FramePostPayload = withContext(Dispatchers.IO) {
16+
suspend fun signFrameAction(inputs: FrameActionInputs): FramePostPayload {
1917
val opaqueConversationIdentifier = buildOpaqueIdentifier(inputs)
2018
val frameUrl = inputs.frameUrl
2119
val buttonIndex = inputs.buttonIndex
22-
val inputText = inputs.inputText ?: ""
23-
val state = inputs.state ?: ""
20+
val inputText = inputs.inputText
21+
val state = inputs.state
2422
val now = System.currentTimeMillis() / 1000
25-
val test = FrameActionBody
23+
val frameActionBuilder = FrameActionBody
2624
.newBuilder()
2725
.setFrameUrl(frameUrl)
2826
.setButtonIndex(buttonIndex)
29-
.setInputText(inputText)
30-
.setState(state)
31-
.setUnixTimestamp(
32-
now.toInt()
33-
)
27+
.setOpaqueConversationIdentifier(opaqueConversationIdentifier)
28+
.setTimestamp(now)
29+
.setUnixTimestamp(now.toInt())
3430

35-
val toSign = test.build()
31+
if (inputText != null) {
32+
frameActionBuilder.inputText = inputText
33+
}
34+
if (state != null) {
35+
frameActionBuilder.state = state
36+
}
37+
38+
val toSign = frameActionBuilder.build()
3639
val signedAction = Base64.encodeToString(buildSignedFrameAction(toSign), Base64.NO_WRAP)
3740

3841
val untrustedData = FramePostUntrustedData(frameUrl, now, buttonIndex, inputText, state, xmtpClient.address, opaqueConversationIdentifier, now.toInt())
3942
val trustedData = FramePostTrustedData(signedAction)
4043

41-
FramePostPayload("xmtp@$PROTOCOL_VERSION", untrustedData, trustedData)
44+
return FramePostPayload("xmtp@$PROTOCOL_VERSION", untrustedData, trustedData)
4245
}
4346

4447
private suspend fun signDigest(digest: ByteArray): Signature {
@@ -47,7 +50,7 @@ class FramesClient(private val xmtpClient: Client, var proxy: OpenFramesProxy =
4750
return PrivateKeyBuilder(privateKey).sign(digest)
4851
}
4952

50-
private suspend fun getPublicKeyBundle(): SignedPublicKeyBundle {
53+
private fun getPublicKeyBundle(): SignedPublicKeyBundle {
5154
return xmtpClient.keys.getPublicKeyBundle()
5255
}
5356

@@ -59,9 +62,9 @@ class FramesClient(private val xmtpClient: Client, var proxy: OpenFramesProxy =
5962
val frameAction = FrameAction.newBuilder()
6063
.setActionBody(actionBodyInputs.toByteString())
6164
.setSignature(signature)
62-
.setSignedPublicKeyBundle(publicKeyBundle).build();
65+
.setSignedPublicKeyBundle(publicKeyBundle).build()
6366

64-
return frameAction.toByteArray();
67+
return frameAction.toByteArray()
6568
}
6669

6770
private fun buildOpaqueIdentifier(inputs: FrameActionInputs): String {

library/src/main/java/org/xmtp/android/library/frames/ProxyClient.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class ProxyClient(private val baseUrl: String) {
1818
return Gson().fromJson(response, GetMetadataResponse::class.java)
1919
}
2020

21-
suspend fun post(url: String, payload: Any): GetMetadataResponse {
21+
fun post(url: String, payload: Any): GetMetadataResponse {
2222
val connection = URL("$baseUrl?url=${java.net.URLEncoder.encode(url, "UTF-8")}").openConnection() as HttpURLConnection
2323
connection.requestMethod = "POST"
2424
connection.setRequestProperty("Content-Type", "application/json; utf-8")

0 commit comments

Comments
 (0)