From 4ba9143ec1c792ca4f5205a99419a6c5cb10a283 Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Wed, 13 Dec 2023 11:43:47 -0300 Subject: [PATCH 1/9] Add preEnableIdentityCallback and preCreateIdentityCallback events --- ios/XMTPModule.swift | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ios/XMTPModule.swift b/ios/XMTPModule.swift index 7a086f37d..b2acc408f 100644 --- a/ios/XMTPModule.swift +++ b/ios/XMTPModule.swift @@ -51,7 +51,7 @@ public class XMTPModule: Module { public func definition() -> ModuleDefinition { Name("XMTP") - Events("sign", "authed", "conversation", "message") + Events("sign", "authed", "conversation", "message", "preEnableIdentityCallback", "preCreateIdentityCallback") AsyncFunction("address") { (clientAddress: String) -> String in if let client = await clientsManager.getClient(key: clientAddress) { @@ -67,7 +67,7 @@ public class XMTPModule: Module { AsyncFunction("auth") { (address: String, environment: String, appVersion: String?) in let signer = ReactNativeSigner(module: self, address: address) self.signer = signer - let options = createClientConfig(env: environment, appVersion: appVersion) + let options = createClientConfig(env: environment, appVersion: appVersion, preEnableIdentityCallback: preEnableIdentityCallback, preCreateIdentityCallback: preCreateIdentityCallback) try await clientsManager.updateClient(key: address, client: await XMTP.Client.create(account: signer, options: options)) self.signer = nil sendEvent("authed") @@ -80,7 +80,8 @@ public class XMTPModule: Module { // Generate a random wallet and set the client to that AsyncFunction("createRandom") { (environment: String, appVersion: String?) -> String in let privateKey = try PrivateKey.generate() - let options = createClientConfig(env: environment, appVersion: appVersion) + + let options = createClientConfig(env: environment, appVersion: appVersion, preEnableIdentityCallback: preEnableIdentityCallback, preCreateIdentityCallback: preCreateIdentityCallback) let client = try await Client.create(account: privateKey, options: options) await clientsManager.updateClient(key: client.address, client: client) @@ -535,7 +536,7 @@ public class XMTPModule: Module { // Helpers // - func createClientConfig(env: String, appVersion: String?) -> XMTP.ClientOptions { + func createClientConfig(env: String, appVersion: String?, preEnableIdentityCallback: PreEventCallback? = nil, preCreateIdentityCallback: PreEventCallback? = nil) -> XMTP.ClientOptions { // Ensure that all codecs have been registered. switch env { case "local": @@ -543,19 +544,19 @@ public class XMTPModule: Module { env: XMTP.XMTPEnvironment.local, isSecure: false, appVersion: appVersion - )) + ), preEnableIdentityCallback: preEnableIdentityCallback, preCreateIdentityCallback: preCreateIdentityCallback) case "production": return XMTP.ClientOptions(api: XMTP.ClientOptions.Api( env: XMTP.XMTPEnvironment.production, isSecure: true, appVersion: appVersion - )) + ), preEnableIdentityCallback: preEnableIdentityCallback, preCreateIdentityCallback: preCreateIdentityCallback) default: return XMTP.ClientOptions(api: XMTP.ClientOptions.Api( env: XMTP.XMTPEnvironment.dev, isSecure: true, appVersion: appVersion - )) + ), preEnableIdentityCallback: preEnableIdentityCallback, preCreateIdentityCallback: preCreateIdentityCallback) } } @@ -665,4 +666,11 @@ public class XMTPModule: Module { func getConversationsKey(clientAddress: String) -> String { return "conversations:\(clientAddress)" } + + func preEnableIdentityCallback () -> Void { + sendEvent("preEnableIdentityCallback") + } + func preCreateIdentityCallback () -> Void { + sendEvent("preCreateIdentityCallback") + } } From e8440236c5eeb7d369279801d9370602cfe89446 Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Wed, 13 Dec 2023 11:44:23 -0300 Subject: [PATCH 2/9] Add subscription setup to Client --- src/lib/Client.ts | 73 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/src/lib/Client.ts b/src/lib/Client.ts index cd1089182..8331319ce 100644 --- a/src/lib/Client.ts +++ b/src/lib/Client.ts @@ -1,4 +1,5 @@ import { Signer, utils } from 'ethers' +import { Subscription } from 'expo-modules-core' import Contacts from './Contacts' import type { @@ -49,6 +50,8 @@ export class Client { > > { const options = defaultOptions(opts) + const { enableSubscription, createSubscription } = + this.setupSubscriptions(options) return new Promise< Client< ExtractDecodedType<[...ContentCodecs, TextCodec][number]> | undefined @@ -84,6 +87,8 @@ export class Client { options.appVersion ) })() + this.removeSubscription(enableSubscription) + this.removeSubscription(createSubscription) }) } @@ -103,11 +108,15 @@ export class Client { > > { const options = defaultOptions(opts) - + const { enableSubscription, createSubscription } = + this.setupSubscriptions(options) const address = await XMTPModule.createRandom( options.env, options.appVersion ) + this.removeSubscription(enableSubscription) + this.removeSubscription(createSubscription) + return new Client(address, opts?.codecs || []) } @@ -174,6 +183,61 @@ export class Client { ) } + private static addSubscription( + event: string, + opts: ClientOptions, + callback: () => Promise | void + ): Subscription | undefined { + if (this.hasEventCallback(event, opts)) { + return XMTPModule.emitter.addListener(event, callback) + } + return undefined + } + + private static async executeCallback( + callback?: () => Promise | void + ): Promise { + await callback?.() + } + + private static hasEventCallback( + event: string, + opts: CallbackOptions + ): boolean { + return opts?.[event] !== undefined + } + + private static async removeSubscription( + subscription?: Subscription + ): Promise { + if (subscription) { + subscription.remove() + } + } + + private static setupSubscriptions(opts: ClientOptions): { + enableSubscription?: Subscription + createSubscription?: Subscription + } { + const enableSubscription = this.addSubscription( + 'preEnableIdentityCallback', + opts, + async () => { + await this.executeCallback(opts?.preEnableIdentityCallback) + } + ) + + const createSubscription = this.addSubscription( + 'preCreateIdentityCallback', + opts, + async () => { + await this.executeCallback(opts?.preCreateIdentityCallback) + } + ) + + return { enableSubscription, createSubscription } + } + constructor( address: string, codecs: XMTPModule.ContentCodec[] = [] @@ -282,7 +346,7 @@ export class Client { } } -export type ClientOptions = NetworkOptions +export type ClientOptions = NetworkOptions & CallbackOptions export type NetworkOptions = { /** * Specify which XMTP environment to connect to. (default: `dev`) @@ -301,6 +365,11 @@ export type NetworkOptions = { appVersion?: string } +export type CallbackOptions = { + preCreateIdentityCallback?: () => Promise | void + preEnableIdentityCallback?: () => Promise | void +} + /** * Provide a default client configuration. These settings can be used on their own, or as a starting point for custom configurations * From b6c5c78f85a562c73b3f0e2b973b3694a33bf6d2 Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Wed, 13 Dec 2023 13:20:20 -0300 Subject: [PATCH 3/9] Add preEnableIdentityCallback and preCreateIdentityCallback events to XMTPModule --- .../expo/modules/xmtpreactnativesdk/XMTPModule.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt b/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt index b9bf5da58..9e3de390f 100644 --- a/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt +++ b/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt @@ -128,7 +128,7 @@ class XMTPModule : Module() { override fun definition() = ModuleDefinition { Name("XMTP") - Events("sign", "authed", "conversation", "message") + Events("sign", "authed", "conversation", "message", "preEnableIdentityCallback", "preCreateIdentityCallback") Function("address") { clientAddress: String -> logV("address") @@ -143,7 +143,7 @@ class XMTPModule : Module() { logV("auth") val reactSigner = ReactNativeSigner(module = this@XMTPModule, address = address) signer = reactSigner - val options = ClientOptions(api = apiEnvironments(environment, appVersion)) + val options = ClientOptions(api = apiEnvironments(environment, appVersion), preCreateIdentityCallback = preCreateIdentityCallback, preEnableIdentityCallback = preEnableIdentityCallback) clients[address] = Client().create(account = reactSigner, options = options) signer = null sendEvent("authed") @@ -158,7 +158,7 @@ class XMTPModule : Module() { AsyncFunction("createRandom") { environment: String, appVersion: String? -> logV("createRandom") val privateKey = PrivateKeyBuilder() - val options = ClientOptions(api = apiEnvironments(environment, appVersion)) + val options = ClientOptions(api = apiEnvironments(environment, appVersion), preCreateIdentityCallback = preCreateIdentityCallback, preEnableIdentityCallback = preEnableIdentityCallback) val randomClient = Client().create(account = privateKey, options = options) clients[randomClient.address] = randomClient randomClient.address @@ -684,6 +684,14 @@ class XMTPModule : Module() { Log.v("XMTPModule", msg) } } + + private val preEnableIdentityCallback: suspend () -> Unit = { + sendEvent("preEnableIdentityCallback") + } + + private val preCreateIdentityCallback: suspend () -> Unit = { + sendEvent("preCreateIdentityCallback") + } } From d575c04aec951e842195acfd41a0facec02ac7ed Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Wed, 13 Dec 2023 13:23:08 -0300 Subject: [PATCH 4/9] format kt code --- .../modules/xmtpreactnativesdk/XMTPModule.kt | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt b/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt index 9e3de390f..c373ffac4 100644 --- a/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt +++ b/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt @@ -128,7 +128,14 @@ class XMTPModule : Module() { override fun definition() = ModuleDefinition { Name("XMTP") - Events("sign", "authed", "conversation", "message", "preEnableIdentityCallback", "preCreateIdentityCallback") + Events( + "sign", + "authed", + "conversation", + "message", + "preEnableIdentityCallback", + "preCreateIdentityCallback" + ) Function("address") { clientAddress: String -> logV("address") @@ -143,7 +150,11 @@ class XMTPModule : Module() { logV("auth") val reactSigner = ReactNativeSigner(module = this@XMTPModule, address = address) signer = reactSigner - val options = ClientOptions(api = apiEnvironments(environment, appVersion), preCreateIdentityCallback = preCreateIdentityCallback, preEnableIdentityCallback = preEnableIdentityCallback) + val options = ClientOptions( + api = apiEnvironments(environment, appVersion), + preCreateIdentityCallback = preCreateIdentityCallback, + preEnableIdentityCallback = preEnableIdentityCallback + ) clients[address] = Client().create(account = reactSigner, options = options) signer = null sendEvent("authed") @@ -158,7 +169,11 @@ class XMTPModule : Module() { AsyncFunction("createRandom") { environment: String, appVersion: String? -> logV("createRandom") val privateKey = PrivateKeyBuilder() - val options = ClientOptions(api = apiEnvironments(environment, appVersion), preCreateIdentityCallback = preCreateIdentityCallback, preEnableIdentityCallback = preEnableIdentityCallback) + val options = ClientOptions( + api = apiEnvironments(environment, appVersion), + preCreateIdentityCallback = preCreateIdentityCallback, + preEnableIdentityCallback = preEnableIdentityCallback + ) val randomClient = Client().create(account = privateKey, options = options) clients[randomClient.address] = randomClient randomClient.address From a52a9acd9c51df1c95b150f54f98abbefdad6420 Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Wed, 13 Dec 2023 14:21:30 -0300 Subject: [PATCH 5/9] Add tests for preCreateIdentityCallback and preEnableIdentityCallback --- example/src/tests.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/example/src/tests.ts b/example/src/tests.ts index 4d2c97122..81f9330f3 100644 --- a/example/src/tests.ts +++ b/example/src/tests.ts @@ -743,3 +743,37 @@ test('register and use custom content types', async () => { return true }) + +test('calls preCreateIdentityCallback when supplied', async () => { + let isCallbackCalled = false + const preCreateIdentityCallback = () => { + isCallbackCalled = true + } + await Client.createRandom({ + env: 'local', + preCreateIdentityCallback, + }) + + if (!isCallbackCalled) { + throw new Error('preCreateIdentityCallback not called') + } + + return isCallbackCalled +}) + +test('calls preEnableIdentityCallback when supplied', async () => { + let isCallbackCalled = false + const preEnableIdentityCallback = () => { + isCallbackCalled = true + } + await Client.createRandom({ + env: 'local', + preEnableIdentityCallback, + }) + + if (!isCallbackCalled) { + throw new Error('preEnableIdentityCallback not called') + } + + return isCallbackCalled +}) From b4e7130b14aae370ec818e8051aecce145b42492 Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Wed, 13 Dec 2023 15:50:20 -0300 Subject: [PATCH 6/9] fix call preEventCallbacks without listeners --- ios/XMTPModule.swift | 61 ++++++++++++++++++++++++-------------------- src/index.ts | 23 ++++++++++++++--- src/lib/Client.ts | 8 ++++-- 3 files changed, 58 insertions(+), 34 deletions(-) diff --git a/ios/XMTPModule.swift b/ios/XMTPModule.swift index b2acc408f..8387ab56d 100644 --- a/ios/XMTPModule.swift +++ b/ios/XMTPModule.swift @@ -64,9 +64,11 @@ public class XMTPModule: Module { // // Auth functions // - AsyncFunction("auth") { (address: String, environment: String, appVersion: String?) in + AsyncFunction("auth") { (address: String, environment: String, appVersion: String?, hasCreateIdentityCallback: Bool?, hasEnableIdentityCallback: Bool?) in let signer = ReactNativeSigner(module: self, address: address) self.signer = signer + let preCreateIdentityCallback: PreEventCallback? = hasCreateIdentityCallback ?? false ? self.preCreateIdentityCallback : nil + let preEnableIdentityCallback: PreEventCallback? = hasEnableIdentityCallback ?? false ? self.preEnableIdentityCallback : nil let options = createClientConfig(env: environment, appVersion: appVersion, preEnableIdentityCallback: preEnableIdentityCallback, preCreateIdentityCallback: preCreateIdentityCallback) try await clientsManager.updateClient(key: address, client: await XMTP.Client.create(account: signer, options: options)) self.signer = nil @@ -78,8 +80,10 @@ public class XMTPModule: Module { } // Generate a random wallet and set the client to that - AsyncFunction("createRandom") { (environment: String, appVersion: String?) -> String in + AsyncFunction("createRandom") { (environment: String, appVersion: String?, hasCreateIdentityCallback: Bool?, hasEnableIdentityCallback: Bool?) -> String in let privateKey = try PrivateKey.generate() + let preCreateIdentityCallback: PreEventCallback? = hasCreateIdentityCallback ?? false ? self.preCreateIdentityCallback : nil + let preEnableIdentityCallback: PreEventCallback? = hasEnableIdentityCallback ?? false ? self.preEnableIdentityCallback : nil let options = createClientConfig(env: environment, appVersion: appVersion, preEnableIdentityCallback: preEnableIdentityCallback, preCreateIdentityCallback: preCreateIdentityCallback) let client = try await Client.create(account: privateKey, options: options) @@ -147,14 +151,14 @@ public class XMTPModule: Module { return try await client.canMessage(peerAddress) } - AsyncFunction("staticCanMessage") { (peerAddress: String, environment: String, appVersion: String?) -> Bool in - do { - let options = createClientConfig(env: environment, appVersion: appVersion) - return try await XMTP.Client.canMessage(peerAddress, options: options) - } catch { - throw Error.noClient - } - } + AsyncFunction("staticCanMessage") { (peerAddress: String, environment: String, appVersion: String?) -> Bool in + do { + let options = createClientConfig(env: environment, appVersion: appVersion) + return try await XMTP.Client.canMessage(peerAddress, options: options) + } catch { + throw Error.noClient + } + } AsyncFunction("encryptAttachment") { (clientAddress: String, fileJson: String) -> String in guard let client = await clientsManager.getClient(key: clientAddress) else { @@ -507,29 +511,29 @@ public class XMTPModule: Module { throw Error.noClient } let consentList = try await client.contacts.refreshConsentList() - - return try consentList.entries.compactMap { entry in - try ConsentWrapper.encode(entry.value) - } + + return try consentList.entries.compactMap { entry in + try ConsentWrapper.encode(entry.value) + } } AsyncFunction("conversationConsentState") { (clientAddress: String, conversationTopic: String) -> String in guard let conversation = try await findConversation(clientAddress: clientAddress, topic: conversationTopic) else { throw Error.conversationNotFound(conversationTopic) } - return ConsentWrapper.consentStateToString(state: await conversation.consentState()) + return ConsentWrapper.consentStateToString(state: await conversation.consentState()) } - AsyncFunction("consentList") { (clientAddress: String) -> [String] in - guard let client = await clientsManager.getClient(key: clientAddress) else { - throw Error.noClient - } - let entries = await client.contacts.consentList.entries - - return try entries.compactMap { entry in - try ConsentWrapper.encode(entry.value) - } - } + AsyncFunction("consentList") { (clientAddress: String) -> [String] in + guard let client = await clientsManager.getClient(key: clientAddress) else { + throw Error.noClient + } + let entries = await client.contacts.consentList.entries + + return try entries.compactMap { entry in + try ConsentWrapper.encode(entry.value) + } + } } // @@ -666,11 +670,12 @@ public class XMTPModule: Module { func getConversationsKey(clientAddress: String) -> String { return "conversations:\(clientAddress)" } - - func preEnableIdentityCallback () -> Void { + + func preEnableIdentityCallback() { sendEvent("preEnableIdentityCallback") } - func preCreateIdentityCallback () -> Void { + + func preCreateIdentityCallback() { sendEvent("preCreateIdentityCallback") } } diff --git a/src/index.ts b/src/index.ts index d924bf230..7da9b63b3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -31,9 +31,17 @@ export function address(): string { export async function auth( address: string, environment: 'local' | 'dev' | 'production', - appVersion?: string | undefined + appVersion?: string | undefined, + hasCreateIdentityCallback?: boolean | undefined, + hasEnableIdentityCallback?: boolean | undefined ) { - return await XMTPModule.auth(address, environment, appVersion) + return await XMTPModule.auth( + address, + environment, + appVersion, + hasCreateIdentityCallback, + hasEnableIdentityCallback + ) } export async function receiveSignature(requestID: string, signature: string) { @@ -42,9 +50,16 @@ export async function receiveSignature(requestID: string, signature: string) { export async function createRandom( environment: 'local' | 'dev' | 'production', - appVersion?: string | undefined + appVersion?: string | undefined, + hasCreateIdentityCallback?: boolean | undefined, + hasEnableIdentityCallback?: boolean | undefined ): Promise { - return await XMTPModule.createRandom(environment, appVersion) + return await XMTPModule.createRandom( + environment, + appVersion, + hasCreateIdentityCallback, + hasEnableIdentityCallback + ) } export async function createFromKeyBundle( diff --git a/src/lib/Client.ts b/src/lib/Client.ts index 8331319ce..c6a45c96d 100644 --- a/src/lib/Client.ts +++ b/src/lib/Client.ts @@ -84,7 +84,9 @@ export class Client { XMTPModule.auth( await signer.getAddress(), options.env, - options.appVersion + options.appVersion, + Boolean(createSubscription), + Boolean(enableSubscription) ) })() this.removeSubscription(enableSubscription) @@ -112,7 +114,9 @@ export class Client { this.setupSubscriptions(options) const address = await XMTPModule.createRandom( options.env, - options.appVersion + options.appVersion, + Boolean(createSubscription), + Boolean(enableSubscription) ) this.removeSubscription(enableSubscription) this.removeSubscription(createSubscription) From 57e035208390765f959a3f8dc1024c7242d47c82 Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Wed, 13 Dec 2023 16:09:33 -0300 Subject: [PATCH 7/9] fix call preEventCallbacks without listeners on android --- .../expo/modules/xmtpreactnativesdk/XMTPModule.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt b/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt index c373ffac4..a83bfe816 100644 --- a/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt +++ b/android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt @@ -27,6 +27,7 @@ import org.xmtp.android.library.Client import org.xmtp.android.library.ClientOptions import org.xmtp.android.library.ConsentState import org.xmtp.android.library.Conversation +import org.xmtp.android.library.PreEventCallback import org.xmtp.android.library.PreparedMessage import org.xmtp.android.library.SendOptions import org.xmtp.android.library.SigningKey @@ -146,10 +147,14 @@ class XMTPModule : Module() { // // Auth functions // - AsyncFunction("auth") { address: String, environment: String, appVersion: String? -> + AsyncFunction("auth") { address: String, environment: String, appVersion: String?, hasCreateIdentityCallback: Boolean?, hasEnableIdentityCallback: Boolean? -> logV("auth") val reactSigner = ReactNativeSigner(module = this@XMTPModule, address = address) signer = reactSigner + val preCreateIdentityCallback: PreEventCallback? = + preCreateIdentityCallback.takeIf { hasCreateIdentityCallback == true } + val preEnableIdentityCallback: PreEventCallback? = + preEnableIdentityCallback.takeIf { hasEnableIdentityCallback == true } val options = ClientOptions( api = apiEnvironments(environment, appVersion), preCreateIdentityCallback = preCreateIdentityCallback, @@ -166,9 +171,14 @@ class XMTPModule : Module() { } // Generate a random wallet and set the client to that - AsyncFunction("createRandom") { environment: String, appVersion: String? -> + AsyncFunction("createRandom") { environment: String, appVersion: String?, hasCreateIdentityCallback: Boolean?, hasEnableIdentityCallback: Boolean? -> logV("createRandom") val privateKey = PrivateKeyBuilder() + val preCreateIdentityCallback: PreEventCallback? = + preCreateIdentityCallback.takeIf { hasCreateIdentityCallback == true } + val preEnableIdentityCallback: PreEventCallback? = + preEnableIdentityCallback.takeIf { hasEnableIdentityCallback == true } + val options = ClientOptions( api = apiEnvironments(environment, appVersion), preCreateIdentityCallback = preCreateIdentityCallback, From 9b9dcaaa4a5ed475afb47e8cb680a4914d48b2ea Mon Sep 17 00:00:00 2001 From: Naomi Plasterer Date: Fri, 15 Dec 2023 21:58:45 -0800 Subject: [PATCH 8/9] feat: bump the version --- android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index 015f1b152..748c76a0d 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -95,7 +95,7 @@ repositories { dependencies { implementation project(':expo-modules-core') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${getKotlinVersion()}" - implementation "org.xmtp:android:0.6.20" + implementation "org.xmtp:android:0.7.0" implementation 'com.google.code.gson:gson:2.10.1' implementation 'com.facebook.react:react-native:0.71.3' implementation "com.daveanthonythomas.moshipack:moshipack:1.0.1" From ca6e140d9efb61a68781173cc66be7cc50a21b44 Mon Sep 17 00:00:00 2001 From: Naomi Plasterer Date: Sat, 16 Dec 2023 06:56:58 -0800 Subject: [PATCH 9/9] bump ios version and cocoapods --- example/ios/Podfile.lock | 10 +++++----- ios/XMTPReactNative.podspec | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 57bf7ac76..257d96291 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -411,7 +411,7 @@ PODS: - GenericJSON (~> 2.0) - Logging (~> 1.0.0) - secp256k1.swift (~> 0.1) - - XMTP (0.7.2-alpha0): + - XMTP (0.7.3-alpha0): - Connect-Swift (= 0.3.0) - GzipSwift - web3.swift @@ -419,7 +419,7 @@ PODS: - XMTPReactNative (0.1.0): - ExpoModulesCore - MessagePacker - - XMTP (= 0.7.2-alpha0) + - XMTP (= 0.7.3-alpha0) - XMTPRust (0.3.7-beta0) - Yoga (1.14.0) @@ -668,11 +668,11 @@ SPEC CHECKSUMS: secp256k1.swift: a7e7a214f6db6ce5db32cc6b2b45e5c4dd633634 SwiftProtobuf: b02b5075dcf60c9f5f403000b3b0c202a11b6ae1 web3.swift: 2263d1e12e121b2c42ffb63a5a7beb1acaf33959 - XMTP: 4930b80dc99a6a8ebcf1f292a162c1f316f78c50 - XMTPReactNative: 68c723488857950d10fc8ee969de0baae8f9b2ca + XMTP: dc02c96b475e326a4a7b3d3912cc45cf3527bd0b + XMTPReactNative: 5c1111c5bd3456e75b3fa67d1ddccabb7a01df11 XMTPRust: 8848a2ba761b2c961d666632f2ad27d1082faa93 Yoga: e71803b4c1fff832ccf9b92541e00f9b873119b9 PODFILE CHECKSUM: 522d88edc2d5fac4825e60a121c24abc18983367 -COCOAPODS: 1.14.3 +COCOAPODS: 1.13.0 diff --git a/ios/XMTPReactNative.podspec b/ios/XMTPReactNative.podspec index 24024418e..88246e716 100644 --- a/ios/XMTPReactNative.podspec +++ b/ios/XMTPReactNative.podspec @@ -25,5 +25,5 @@ Pod::Spec.new do |s| s.source_files = "**/*.{h,m,swift}" s.dependency "MessagePacker" - s.dependency "XMTP", "= 0.7.2-alpha0" + s.dependency "XMTP", "= 0.7.3-alpha0" end