Skip to content

Commit

Permalink
Merge pull request #724 from WalletConnect/develop
Browse files Browse the repository at this point in the history
1.4.0
  • Loading branch information
llbartekll authored Feb 17, 2023
2 parents a11d26c + fb8b5d1 commit b70a449
Show file tree
Hide file tree
Showing 133 changed files with 1,881 additions and 654 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ jobs:
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
run: |
make release_all APPLE_ID=${{ secrets.APPLE_ID }} TOKEN=$(echo -n $GH_USER:$GH_TOKEN | base64)
make release_all APPLE_ID=${{ secrets.APPLE_ID }} TOKEN=$(echo -n $GH_USER:$GH_TOKEN | base64) PROJECT_ID=${{ secrets.RELEASE_PROJECT_ID }}
15 changes: 13 additions & 2 deletions Example/DApp/Sign/Connect/ConnectViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class ConnectViewController: UIViewController, UITableViewDataSource, UITableVie

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let pairingTopic = activePairings[indexPath.row].topic
let namespaces: [String: ProposalNamespace] = [
let requiredNamespaces: [String: ProposalNamespace] = [
"eip155": ProposalNamespace(
chains: [
Blockchain("eip155:1")!,
Expand All @@ -103,8 +103,19 @@ class ConnectViewController: UIViewController, UITableViewDataSource, UITableVie
], events: []
)
]
let optionalNamespaces: [String: ProposalNamespace] = [
"eip155:42161": ProposalNamespace(
methods: [
"eth_sendTransaction",
"eth_signTransaction",
"get_balance",
"personal_sign"
],
events: ["accountsChanged", "chainChanged"]
)
]
Task {
_ = try await Sign.instance.connect(requiredNamespaces: namespaces, topic: pairingTopic)
_ = try await Sign.instance.connect(requiredNamespaces: requiredNamespaces, optionalNamespaces: optionalNamespaces, topic: pairingTopic)
connectWithExampleWallet()
}
}
Expand Down
21 changes: 19 additions & 2 deletions Example/DApp/Sign/SelectChain/SelectChainViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ class SelectChainViewController: UIViewController, UITableViewDataSource {
let namespaces: [String: ProposalNamespace] = [
"eip155": ProposalNamespace(
chains: [
Blockchain("eip155:1")!,
Blockchain("eip155:137")!
],
methods: [
Expand All @@ -48,6 +47,16 @@ class SelectChainViewController: UIViewController, UITableViewDataSource {
"eth_signTypedData"
], events: []
),
"eip155:1": ProposalNamespace(
methods: [
"eth_sendTransaction",
"personal_sign",
"eth_signTypedData"
],
events: []
)
]
let optionalNamespaces: [String: ProposalNamespace] = [
"solana": ProposalNamespace(
chains: [
Blockchain("solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ")!
Expand All @@ -58,9 +67,17 @@ class SelectChainViewController: UIViewController, UITableViewDataSource {
], events: []
)
]
let sessionProperties: [String: String] = [
"caip154-mandatory": "true"
]
Task {
let uri = try await Pair.instance.create()
try await Sign.instance.connect(requiredNamespaces: namespaces, topic: uri.topic)
try await Sign.instance.connect(
requiredNamespaces: namespaces,
optionalNamespaces: optionalNamespaces,
sessionProperties: sessionProperties,
topic: uri.topic
)
showConnectScreen(uri: uri)
}
}
Expand Down
46 changes: 42 additions & 4 deletions Example/ExampleApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@
84B7677D2954554A00E92316 /* PushDecryptionService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 84B767762954554A00E92316 /* PushDecryptionService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
84B76789295494D500E92316 /* WalletConnectPush in Frameworks */ = {isa = PBXBuildFile; productRef = 84B76788295494D500E92316 /* WalletConnectPush */; };
84B8154E2991099000FAD54E /* BuildConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B8154D2991099000FAD54E /* BuildConfiguration.swift */; };
84B815542991217900FAD54E /* PushMessagesModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B8154F2991217900FAD54E /* PushMessagesModule.swift */; };
84B815552991217900FAD54E /* PushMessagesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B815502991217900FAD54E /* PushMessagesPresenter.swift */; };
84B815562991217900FAD54E /* PushMessagesRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B815512991217900FAD54E /* PushMessagesRouter.swift */; };
84B815572991217900FAD54E /* PushMessagesInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B815522991217900FAD54E /* PushMessagesInteractor.swift */; };
84B815582991217900FAD54E /* PushMessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B815532991217900FAD54E /* PushMessagesView.swift */; };
84B8155B2992A18D00FAD54E /* PushMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B8155A2992A18D00FAD54E /* PushMessageViewModel.swift */; };
84CE641F27981DED00142511 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CE641E27981DED00142511 /* AppDelegate.swift */; };
84CE642127981DED00142511 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CE642027981DED00142511 /* SceneDelegate.swift */; };
84CE642827981DF000142511 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 84CE642727981DF000142511 /* Assets.xcassets */; };
Expand Down Expand Up @@ -398,6 +404,12 @@
84B767782954554A00E92316 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = "<group>"; };
84B7677A2954554A00E92316 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
84B8154D2991099000FAD54E /* BuildConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuildConfiguration.swift; sourceTree = "<group>"; };
84B8154F2991217900FAD54E /* PushMessagesModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessagesModule.swift; sourceTree = "<group>"; };
84B815502991217900FAD54E /* PushMessagesPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessagesPresenter.swift; sourceTree = "<group>"; };
84B815512991217900FAD54E /* PushMessagesRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessagesRouter.swift; sourceTree = "<group>"; };
84B815522991217900FAD54E /* PushMessagesInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessagesInteractor.swift; sourceTree = "<group>"; };
84B815532991217900FAD54E /* PushMessagesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessagesView.swift; sourceTree = "<group>"; };
84B8155A2992A18D00FAD54E /* PushMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushMessageViewModel.swift; sourceTree = "<group>"; };
84CE641C27981DED00142511 /* DApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
84CE641E27981DED00142511 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
84CE642027981DED00142511 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -887,6 +899,27 @@
path = PushDecryptionService;
sourceTree = "<group>";
};
84B815592991217F00FAD54E /* PushMessages */ = {
isa = PBXGroup;
children = (
84B8154F2991217900FAD54E /* PushMessagesModule.swift */,
84B815502991217900FAD54E /* PushMessagesPresenter.swift */,
84B815512991217900FAD54E /* PushMessagesRouter.swift */,
84B815522991217900FAD54E /* PushMessagesInteractor.swift */,
84B815532991217900FAD54E /* PushMessagesView.swift */,
84B8155C2992A19200FAD54E /* Models */,
);
path = PushMessages;
sourceTree = "<group>";
};
84B8155C2992A19200FAD54E /* Models */ = {
isa = PBXGroup;
children = (
84B8155A2992A18D00FAD54E /* PushMessageViewModel.swift */,
);
path = Models;
sourceTree = "<group>";
};
84CE641D27981DED00142511 /* DApp */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1542,6 +1575,7 @@
C56EE22A293F5668004840D1 /* Wallet */,
84E6B8592981625A00428BAF /* PushRequest */,
847BD1E9298A807000076C90 /* Notifications */,
84B815592991217F00FAD54E /* PushMessages */,
);
path = Wallet;
sourceTree = "<group>";
Expand Down Expand Up @@ -2259,8 +2293,10 @@
C56EE240293F566D004840D1 /* ScanQRView.swift in Sources */,
C56EE250293F566D004840D1 /* ScanTargetView.swift in Sources */,
C56EE28F293F5757004840D1 /* MigrationConfigurator.swift in Sources */,
84B815552991217900FAD54E /* PushMessagesPresenter.swift in Sources */,
847BD1DD2989494F00076C90 /* TabPage.swift in Sources */,
C55D348B295DD8CA0004314A /* PasteUriRouter.swift in Sources */,
84B815572991217900FAD54E /* PushMessagesInteractor.swift in Sources */,
847BD1E4298A806800076C90 /* NotificationsModule.swift in Sources */,
C55D348C295DD8CA0004314A /* PasteUriInteractor.swift in Sources */,
847BD1D92989492500076C90 /* MainPresenter.swift in Sources */,
Expand All @@ -2272,6 +2308,7 @@
C5F32A342954817600A6476E /* ConnectionDetailsView.swift in Sources */,
C55D348A295DD8CA0004314A /* PasteUriPresenter.swift in Sources */,
C56EE28E293F5757004840D1 /* ApplicationConfigurator.swift in Sources */,
84B8155B2992A18D00FAD54E /* PushMessageViewModel.swift in Sources */,
C55D347F295DD7140004314A /* AuthRequestModule.swift in Sources */,
C56EE242293F566D004840D1 /* ScanPresenter.swift in Sources */,
C56EE28B293F5757004840D1 /* SceneDelegate.swift in Sources */,
Expand All @@ -2290,18 +2327,21 @@
847BD1D62989492500076C90 /* MainViewController.swift in Sources */,
C5B2F6FA29705293000DBA0E /* SessionRequestInteractor.swift in Sources */,
C55D34AE2965FB750004314A /* SessionProposalModule.swift in Sources */,
84B815582991217900FAD54E /* PushMessagesView.swift in Sources */,
C55D34B02965FB750004314A /* SessionProposalRouter.swift in Sources */,
C55D3495295DFA750004314A /* WelcomeRouter.swift in Sources */,
C5B2F6F729705293000DBA0E /* SessionRequestRouter.swift in Sources */,
C56EE24F293F566D004840D1 /* WalletView.swift in Sources */,
C55D34B22965FB750004314A /* SessionProposalView.swift in Sources */,
C56EE248293F566D004840D1 /* ScanQR.swift in Sources */,
847BD1EB298A87AB00076C90 /* SubscriptionsViewModel.swift in Sources */,
84B815542991217900FAD54E /* PushMessagesModule.swift in Sources */,
C55D349B2965BC2F0004314A /* TagsView.swift in Sources */,
84B8154E2991099000FAD54E /* BuildConfiguration.swift in Sources */,
C56EE289293F5757004840D1 /* Application.swift in Sources */,
C56EE273293F56D7004840D1 /* UIColor.swift in Sources */,
C5F32A322954816C00A6476E /* ConnectionDetailsPresenter.swift in Sources */,
84B815562991217900FAD54E /* PushMessagesRouter.swift in Sources */,
C56EE246293F566D004840D1 /* ScanRouter.swift in Sources */,
C55D349D2965F8D40004314A /* Proposal.swift in Sources */,
C55D3481295DD7140004314A /* AuthRequestRouter.swift in Sources */,
Expand Down Expand Up @@ -2914,8 +2954,7 @@
INFOPLIST_KEY_NSCameraUsageDescription = "Camera access for scanning QR code";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
IPHONEOS_DEPLOYMENT_TARGET = 15.4;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
Expand Down Expand Up @@ -2952,8 +2991,7 @@
INFOPLIST_KEY_NSCameraUsageDescription = "Camera access for scanning QR code";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
IPHONEOS_DEPLOYMENT_TARGET = 15.4;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1410"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "WalletConnectJWT"
BuildableName = "WalletConnectJWT"
BlueprintName = "WalletConnectJWT"
ReferencedContainer = "container:..">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "WalletConnectJWT"
BuildableName = "WalletConnectJWT"
BlueprintName = "WalletConnectJWT"
ReferencedContainer = "container:..">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1410"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "WalletConnectSigner"
BuildableName = "WalletConnectSigner"
BlueprintName = "WalletConnectSigner"
ReferencedContainer = "container:..">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "WalletConnectSigner"
BuildableName = "WalletConnectSigner"
BlueprintName = "WalletConnectSigner"
ReferencedContainer = "container:..">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
2 changes: 1 addition & 1 deletion Example/ExampleApp/Wallet/WalletViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ extension WalletViewController: ProposalViewControllerDelegate {
proposal.requiredNamespaces.forEach {
let caip2Namespace = $0.key
let proposalNamespace = $0.value
let accounts = Set(proposalNamespace.chains.compactMap { Account($0.absoluteString + ":\(self.accounts[$0.namespace]!)") })
let accounts = Set(proposalNamespace.chains!.compactMap { Account($0.absoluteString + ":\(self.accounts[$0.namespace]!)") })

let sessionNamespace = SessionNamespace(accounts: accounts, methods: proposalNamespace.methods, events: proposalNamespace.events)
sessionNamespaces[caip2Namespace] = sessionNamespace
Expand Down
3 changes: 2 additions & 1 deletion Example/IntegrationTests/Auth/AuthTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ final class AuthTests: XCTestCase {
Task(priority: .high) {
let signerFactory = DefaultSignerFactory()
let signer = MessageSignerFactory(signerFactory: signerFactory).create(projectId: InputConfig.projectId)
let signature = try! signer.sign(payload: request.payload, address: walletAccount.address, privateKey: prvKey, type: .eip191)
let payload = try! request.payload.cacaoPayload(address: walletAccount.address)
let signature = try! signer.sign(payload: payload, privateKey: prvKey, type: .eip191)
try! await walletAuthClient.respond(requestId: request.id, signature: signature, from: walletAccount)
}
}
Expand Down
8 changes: 3 additions & 5 deletions Example/IntegrationTests/Auth/Signer/CacaoSignerTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,10 @@ class CacaoSignerTest: XCTestCase {

func testCacaoSign() throws {
let address = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
let formatted = try SIWEMessageFormatter().formatMessage(
from: payload,
address: address
)
let cacaoPayload = try payload.cacaoPayload(address: address)
let formatted = try SIWECacaoFormatter().formatMessage(from: cacaoPayload)
XCTAssertEqual(formatted, message)
XCTAssertEqual(try signer.sign(payload: payload, address: address, privateKey: privateKey, type: .eip191), signature)
XCTAssertEqual(try signer.sign(payload: cacaoPayload, privateKey: privateKey, type: .eip191), signature)
}

func testCacaoVerify() async throws {
Expand Down
Loading

0 comments on commit b70a449

Please sign in to comment.