From 2981241a712a0ab52499af352d2942a88923c509 Mon Sep 17 00:00:00 2001 From: Mpendulo Ndlovu Date: Fri, 20 Sep 2024 12:46:06 +0200 Subject: [PATCH] feature: notify rn sdk whenever chainId or account changes (#190) * feature: notify rn sdk whenever chainId or account changes * chore: bump ios sdk version --- README.md | 2 +- .../Classes/Extensions/Notification.swift | 10 ++++++++++ Sources/metamask-ios-sdk/Classes/SDK/MetaMaskSDK.swift | 2 ++ metamask-ios-sdk.podspec | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 Sources/metamask-ios-sdk/Classes/Extensions/Notification.swift diff --git a/README.md b/README.md index d15f234..fd59860 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Alternatively, you can add the URL directly in your project's package file: dependencies: [ .package( url: "https://github.com/MetaMask/metamask-ios-sdk", - from: "0.8.8" + from: "0.8.9" ) ] ``` diff --git a/Sources/metamask-ios-sdk/Classes/Extensions/Notification.swift b/Sources/metamask-ios-sdk/Classes/Extensions/Notification.swift new file mode 100644 index 0000000..b92fc76 --- /dev/null +++ b/Sources/metamask-ios-sdk/Classes/Extensions/Notification.swift @@ -0,0 +1,10 @@ +// +// Notification.swift +// + +import Foundation + +public extension Notification.Name { + static let MetaMaskAccountChanged = Notification.Name("MetaMaskAccountChanged") + static let MetaMaskChainIdChanged = Notification.Name("MetaMaskChainChanged") +} diff --git a/Sources/metamask-ios-sdk/Classes/SDK/MetaMaskSDK.swift b/Sources/metamask-ios-sdk/Classes/SDK/MetaMaskSDK.swift index 240e745..bb3c1b5 100644 --- a/Sources/metamask-ios-sdk/Classes/SDK/MetaMaskSDK.swift +++ b/Sources/metamask-ios-sdk/Classes/SDK/MetaMaskSDK.swift @@ -214,11 +214,13 @@ public extension MetaMaskSDK { extension MetaMaskSDK: EthereumEventsDelegate { func chainIdChanged(_ chainId: String) { self.chainId = chainId + NotificationCenter.default.post(name: .MetaMaskChainIdChanged, object: nil, userInfo: ["chainId": chainId]) } func accountChanged(_ account: String) { self.account = account connected = true + NotificationCenter.default.post(name: .MetaMaskAccountChanged, object: nil, userInfo: ["account": account]) } } diff --git a/metamask-ios-sdk.podspec b/metamask-ios-sdk.podspec index 9607d83..21dc7c0 100644 --- a/metamask-ios-sdk.podspec +++ b/metamask-ios-sdk.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'metamask-ios-sdk' - s.version = '0.8.8' + s.version = '0.8.9' s.summary = 'Enable users to easily connect with their MetaMask Mobile wallet.' s.swift_version = '5.5'