diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java index d9935c664..cc1ef83d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java @@ -19,11 +19,12 @@ import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.Collection; import java.util.HashSet; +import java.util.List; import java.util.Set; public abstract class MobileCoinConfig { - abstract @NonNull Uri getConsensusUri(); + abstract @NonNull List getConsensusUris(); abstract @NonNull Uri getFogUri(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinMainNetConfig.java b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinMainNetConfig.java index 4b4a56ac4..a63f36e4d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinMainNetConfig.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinMainNetConfig.java @@ -15,6 +15,8 @@ import org.whispersystems.signalservice.internal.push.AuthCredentials; import java.io.IOException; import java.security.cert.X509Certificate; +import java.util.Arrays; +import java.util.List; import java.util.Set; final class MobileCoinMainNetConfig extends MobileCoinConfig { @@ -26,8 +28,11 @@ final class MobileCoinMainNetConfig extends MobileCoinConfig { } @Override - @NonNull Uri getConsensusUri() { - return Uri.parse("mc://node1.prod.mobilecoinww.com"); + @NonNull List getConsensusUris() { + return Arrays.asList( + Uri.parse("mc://node1.consensus.mob.production.namda.net"), + Uri.parse("mc://node2.consensus.mob.production.namda.net") + ); } @Override @@ -66,15 +71,7 @@ final class MobileCoinMainNetConfig extends MobileCoinConfig { try { Set trustRoots = getTrustRoots(R.raw.signal_mobilecoin_authority); ClientConfig config = new ClientConfig(); - VerifierFactory verifierFactory = new VerifierFactory(// ~June 23, 2021 - new ServiceConfig( - "653228afd2b02a6c28f1dc3b108b1dfa457d170b32ae8ec2978f941bd1655c83", - "f3f7e9a674c55fb2af543513527b6a7872de305bac171783f6716a0bf6919499", - "89db0d1684fcc98258295c39f4ab68f7de5917ef30f0004d9a86f29930cebbbd", - "dd84abda7f05116e21fcd1ee6361b0ec29445fff0472131eaf37bf06255b567a", - new String[] { "INTEL-SA-00334" } - ), - // ~July 8th, 2022 + VerifierFactory verifierFactory = new VerifierFactory(// ~July 8th, 2022 new ServiceConfig( "733080d6ece4504f66ba606fa8163dae0a5220f3dbf6ca55fbafbac12c6f1897", "660103d766cde0fd1e1cfb443b99e52da2ce0617d0dee42f8b875f7104942c6b", @@ -97,6 +94,14 @@ final class MobileCoinMainNetConfig extends MobileCoinConfig { "dca7521ce4564cc2e54e1637e533ea9d1901c2adcbab0e7a41055e719fb0ff9d", "fd4c1c82cca13fa007be15a4c90e2b506c093b21c2e7021a055cbb34aa232f3f", new String[] { "INTEL-SA-00334", "INTEL-SA-00615", "INTEL-SA-00657" } + ), + // ~December 15, 2022 + new ServiceConfig( + "e35bc15ee92775029a60a715dca05d310ad40993f56ad43bca7e649ccc9021b5", + "a8af815564569aae3558d8e4e4be14d1bcec896623166a10494b4eaea3e1c48c", + "8c80a2b95a549fa8d928dd0f0771be4f3d774408c0f98bf670b1a2c390706bf3", + "da209f4b24e8f4471bd6440c4e9f1b3100f1da09e2836d236e285b274901ed3b", + new String[] { "INTEL-SA-00334", "INTEL-SA-00615", "INTEL-SA-00657" } )); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinTestNetConfig.java b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinTestNetConfig.java index 1cd1600d1..e8aacbb55 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinTestNetConfig.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinTestNetConfig.java @@ -14,6 +14,8 @@ import org.whispersystems.signalservice.internal.push.AuthCredentials; import java.io.IOException; import java.security.cert.X509Certificate; +import java.util.Arrays; +import java.util.List; import java.util.Set; final class MobileCoinTestNetConfig extends MobileCoinConfig { @@ -25,8 +27,11 @@ final class MobileCoinTestNetConfig extends MobileCoinConfig { } @Override - @NonNull Uri getConsensusUri() { - return Uri.parse("mc://node1.test.mobilecoin.com"); + @NonNull List getConsensusUris() { + return Arrays.asList( + Uri.parse("mc://node1.consensus.mob.staging.namda.net"), + Uri.parse("mc://node2.consensus.mob.staging.namda.net") + ); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/Wallet.java b/app/src/main/java/org/thoughtcrime/securesms/payments/Wallet.java index 85f16fd08..735359cce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/Wallet.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/Wallet.java @@ -73,7 +73,7 @@ public final class Wallet { this.mobileCoinClient = new MobileCoinClient(account, mobileCoinConfig.getFogUri(), - mobileCoinConfig.getConsensusUri(), + mobileCoinConfig.getConsensusUris(), mobileCoinConfig.getConfig(), TransportProtocol.forGRPC()); } catch (InvalidUriException | BadEntropyException e) {