diff --git a/android/manifest.gradle b/android/manifest.gradle index 1632052..e942b18 100644 --- a/android/manifest.gradle +++ b/android/manifest.gradle @@ -7,5 +7,5 @@ ext { mavenGradleVersion = '2.1' // Textile - textileVersion = '2.0.8' + textileVersion = '2.0.9' } diff --git a/android/src/main/java/io/textile/rnmobile/IpfsBridge.java b/android/src/main/java/io/textile/rnmobile/IpfsBridge.java index 8783bc9..3729115 100644 --- a/android/src/main/java/io/textile/rnmobile/IpfsBridge.java +++ b/android/src/main/java/io/textile/rnmobile/IpfsBridge.java @@ -39,6 +39,25 @@ public void run() { }); } + @ReactMethod + public void connect(final String multiaddr, final Promise promise) { + executor.execute(new Runnable() { + @Override + public void run() { + try { + if (Textile.instance().ipfs.swarmConnect(multiaddr)) { + promise.resolve(true); + } else { + promise.reject(new Exception("connect")); + } + } + catch (final Exception e) { + promise.reject("connect", e); + } + } + }); + } + @ReactMethod public void dataAtPath(final String path, final Promise promise) { executor.execute(new Runnable() { diff --git a/src/ipfs.ts b/src/ipfs.ts index 30211ba..d471963 100644 --- a/src/ipfs.ts +++ b/src/ipfs.ts @@ -14,6 +14,19 @@ export async function peerId(): Promise { return result as string } +/** + * Open a new direct connection to a peer using an IPFS multiaddr + * ```typescript + * Textile.ipfs.connect(multiaddr); + * ``` + */ +export async function connect( + multiaddr: string +): Promise { + const result = await IpfsBridge.connect(multiaddr) + return result +} + /** * Get raw file data by IPFS path. See `cat` method in IPFS. * ```typescript