diff --git a/Session.xcodeproj/project.pbxproj b/Session.xcodeproj/project.pbxproj
index fdad4025a..c43ac8bba 100644
--- a/Session.xcodeproj/project.pbxproj
+++ b/Session.xcodeproj/project.pbxproj
@@ -189,6 +189,7 @@
94367C452C6C828500814252 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 94367C422C6C828500814252 /* Localizable.xcstrings */; };
943C6D822B75E061004ACE64 /* Message+DisappearingMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 943C6D812B75E061004ACE64 /* Message+DisappearingMessages.swift */; };
943C6D842B86B5F1004ACE64 /* Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 943C6D832B86B5F1004ACE64 /* Localization.swift */; };
+ 946F5A732D5DA3AC00A5ADCE /* Punycode in Frameworks */ = {isa = PBXBuildFile; productRef = 946F5A722D5DA3AC00A5ADCE /* Punycode */; };
9473386E2BDF5F3E00B9E169 /* InfoPlist.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 9473386D2BDF5F3E00B9E169 /* InfoPlist.xcstrings */; };
947AD6902C8968FF000B2730 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 947AD68F2C8968FF000B2730 /* Constants.swift */; };
94B3DC172AF8592200C88531 /* QuoteView_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94B3DC162AF8592200C88531 /* QuoteView_SwiftUI.swift */; };
@@ -2205,6 +2206,7 @@
buildActionMask = 2147483647;
files = (
C3C2A6C62553896A00C340D1 /* SessionUtilitiesKit.framework in Frameworks */,
+ 946F5A732D5DA3AC00A5ADCE /* Punycode in Frameworks */,
FD7F74602BAAA4C7006DDFD8 /* libSessionUtil.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -5092,6 +5094,7 @@
FD6A39672C2D283A00762359 /* XCRemoteSwiftPackageReference "session-ios-yyimage" */,
FD6DA9D52D017F480092085A /* XCRemoteSwiftPackageReference "session-grdb-swift" */,
FD756BEE2D06686500BD7199 /* XCRemoteSwiftPackageReference "session-lucide" */,
+ 946F5A712D5DA3AC00A5ADCE /* XCRemoteSwiftPackageReference "PunycodeSwift" */,
);
productRefGroup = D221A08A169C9E5E00537ABF /* Products */;
projectDirPath = "";
@@ -8607,6 +8610,14 @@
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
+ 946F5A712D5DA3AC00A5ADCE /* XCRemoteSwiftPackageReference "PunycodeSwift" */ = {
+ isa = XCRemoteSwiftPackageReference;
+ repositoryURL = "https://github.com/gumob/PunycodeSwift.git";
+ requirement = {
+ kind = upToNextMajorVersion;
+ minimumVersion = 3.0.0;
+ };
+ };
FD6A38E72C2A630E00762359 /* XCRemoteSwiftPackageReference "CocoaLumberjack" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/CocoaLumberjack/CocoaLumberjack.git";
@@ -8706,6 +8717,11 @@
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
+ 946F5A722D5DA3AC00A5ADCE /* Punycode */ = {
+ isa = XCSwiftPackageProductDependency;
+ package = 946F5A712D5DA3AC00A5ADCE /* XCRemoteSwiftPackageReference "PunycodeSwift" */;
+ productName = Punycode;
+ };
FD22866E2C38D42300BC06F7 /* DifferenceKit */ = {
isa = XCSwiftPackageProductDependency;
package = FD6A38ED2C2A641200762359 /* XCRemoteSwiftPackageReference "DifferenceKit" */;
diff --git a/Session.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Session.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
index a42376cd9..596de415f 100644
--- a/Session.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ b/Session.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -1,5 +1,5 @@
{
- "originHash" : "4c95b434de06c87c75c3ef96fa055ec67e885a4a4ad78caafd7925b131995b07",
+ "originHash" : "c367966592f0222dd9924e5d3ce8474e48169d444725d2da11654a281f8f2cef",
"pins" : [
{
"identity" : "cocoalumberjack",
@@ -73,6 +73,15 @@
"version" : "5.2.0"
}
},
+ {
+ "identity" : "punycodeswift",
+ "kind" : "remoteSourceControl",
+ "location" : "https://github.com/gumob/PunycodeSwift.git",
+ "state" : {
+ "revision" : "30a462bdb4398ea835a3585472229e0d74b36ba5",
+ "version" : "3.0.0"
+ }
+ },
{
"identity" : "quick",
"kind" : "remoteSourceControl",
diff --git a/Session/Meta/Settings.bundle/ThirdPartyLicenses.plist b/Session/Meta/Settings.bundle/ThirdPartyLicenses.plist
index 1dcc5edf1..4886d53a6 100644
--- a/Session/Meta/Settings.bundle/ThirdPartyLicenses.plist
+++ b/Session/Meta/Settings.bundle/ThirdPartyLicenses.plist
@@ -567,6 +567,33 @@ SOFTWARE.
Title
NVActivityIndicatorView
+
+ License
+ MIT License
+
+Copyright (c) 2018 Gumob
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+ Title
+ PunycodeSwift
+
License
Apache License
diff --git a/SessionSnodeKit/Networking/SnodeAPI.swift b/SessionSnodeKit/Networking/SnodeAPI.swift
index c2ceb8f0f..22bcc18c1 100644
--- a/SessionSnodeKit/Networking/SnodeAPI.swift
+++ b/SessionSnodeKit/Networking/SnodeAPI.swift
@@ -5,6 +5,7 @@
import Foundation
import Combine
import GRDB
+import Punycode
import SessionUtilitiesKit
public extension Network.RequestType {
@@ -344,7 +345,7 @@ public final class SnodeAPI {
let validationCount = 3
// The name must be lowercased
- let onsName = onsName.lowercased()
+ let onsName = onsName.lowercased().idnaEncoded ?? onsName.lowercased()
// Hash the ONS name using BLAKE2b
guard