@reown/appkit-coinbase-react-native 0.0.0-feat-coinbase-20250722174423 → 0.0.0-feat-coinbase-20250722202925

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ class CoinbaseConnector extends _appkitCommonReactNative.WalletConnector {
14
14
  super({
15
15
  type: 'coinbase'
16
16
  });
17
- this.config = config;
17
+ this.config = config ?? {};
18
18
  }
19
19
  async init(ops) {
20
20
  super.init(ops);
@@ -106,9 +106,9 @@ class CoinbaseConnector extends _appkitCommonReactNative.WalletConnector {
106
106
  }
107
107
  saveSession(namespaces) {
108
108
  const storage = this.getStorage();
109
- storage.setItem(SESSION_KEY, JSON.stringify({
109
+ storage.setItem(SESSION_KEY, {
110
110
  namespaces
111
- }));
111
+ });
112
112
  }
113
113
  async restoreSession() {
114
114
  const storage = this.getStorage();
@@ -118,7 +118,7 @@ class CoinbaseConnector extends _appkitCommonReactNative.WalletConnector {
118
118
  }
119
119
  const {
120
120
  namespaces
121
- } = JSON.parse(session);
121
+ } = session;
122
122
  this.namespaces = namespaces;
123
123
  return true;
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_appkitCommonReactNative","require","_utils","_CoinbaseProvider","SESSION_KEY","CoinbaseConnector","WalletConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","metadata","redirect","universal","Error","provider","CoinbaseProvider","storage","restoreSession","connect","opts","accounts","getProvider","namespaces","getCoinbaseNamespace","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","hexToString","getWalletInfo","name","description","url","getProperties","undefined","switchNetwork","network","chainId_","numberToHex","id","request","method","params","error","code","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","e","console","warn","getStorage","removeItem","setItem","JSON","stringify","session","getItem","parse","exports"],"sourceRoot":"../../../src","sources":["connectors/CoinbaseConnector.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_appkitCommonReactNative","require","_utils","_CoinbaseProvider","SESSION_KEY","CoinbaseConnector","WalletConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","metadata","redirect","universal","Error","provider","CoinbaseProvider","storage","restoreSession","connect","opts","accounts","getProvider","namespaces","getCoinbaseNamespace","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","hexToString","getWalletInfo","name","description","url","getProperties","undefined","switchNetwork","network","chainId_","numberToHex","id","request","method","params","error","code","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","e","console","warn","getStorage","removeItem","setItem","session","getItem","exports"],"sourceRoot":"../../../src","sources":["connectors/CoinbaseConnector.ts"],"mappings":"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"}
@@ -9,6 +9,7 @@ var _walletMobileSdk = require("@coinbase/wallet-mobile-sdk");
9
9
  var _utils = require("../utils");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  class CoinbaseProvider extends _events.default {
12
+ chainChangedListeners = new Map();
12
13
  constructor(config) {
13
14
  super();
14
15
  this.config = config;
@@ -37,9 +38,6 @@ class CoinbaseProvider extends _events.default {
37
38
  } else {
38
39
  accounts = this.provider.selectedAddress ? [this.provider.selectedAddress] : [];
39
40
  }
40
-
41
- //TODO: check switch chain
42
-
43
41
  return accounts;
44
42
  } catch (error) {
45
43
  console.warn('CoinbaseProvider: connect error', error);
@@ -59,10 +57,38 @@ class CoinbaseProvider extends _events.default {
59
57
  getChainId() {
60
58
  return this.provider.chainId;
61
59
  }
60
+ onChainChanged(hexChainId) {
61
+ const chainId = (0, _utils.hexToString)(hexChainId);
62
+ this.emit('chainChanged', {
63
+ chainId
64
+ });
65
+ }
62
66
  on(event, listener) {
67
+ if (event === 'chainChanged') {
68
+ // Create middleware that formats the chain ID before calling the original listener
69
+ const chainChangedMiddleware = hexChainId => {
70
+ const chainId = (0, _utils.hexToString)(hexChainId);
71
+ listener(chainId);
72
+ };
73
+
74
+ // Store the mapping between original listener and middleware
75
+ this.chainChangedListeners.set(listener, chainChangedMiddleware);
76
+ return this.provider.on('chainChanged', chainChangedMiddleware);
77
+ }
63
78
  return this.provider.on(event, listener);
64
79
  }
65
80
  off(event, listener) {
81
+ if (event === 'chainChanged') {
82
+ // Get the middleware wrapper for this listener
83
+ const middleware = this.chainChangedListeners.get(listener);
84
+ if (middleware) {
85
+ // Remove the middleware from the provider
86
+ this.provider.off('chainChanged', middleware);
87
+ // Remove the mapping
88
+ this.chainChangedListeners.delete(listener);
89
+ return this;
90
+ }
91
+ }
66
92
  return this.provider.off(event, listener);
67
93
  }
68
94
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_events","_interopRequireDefault","require","_walletMobileSdk","_utils","e","__esModule","default","CoinbaseProvider","EventEmitter","constructor","config","configure","hostURL","URL","callbackURL","redirect","hostPackageName","provider","WalletMobileSDKEVMProvider","jsonRpcUrl","rpcUrl","chainId","defaultChain","storage","connect","accounts","isConnected","connected","request","method","params","selectedAddress","error","console","warn","disconnect","Promise","resolve","args","isValidMethod","Error","getChainId","on","event","listener","off","exports"],"sourceRoot":"../../../src","sources":["providers/CoinbaseProvider.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAAyC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGlC,MAAMG,gBAAgB,SAASC,eAAY,CAAqB;EAIrEC,WAAWA,CAACC,MAA8B,EAAE;IAC1C,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAAC,0BAAS,EAAC;MACRC,OAAO,EAAE,IAAIC,GAAG,CAAC,oCAAoC,CAAC;MACtDC,WAAW,EAAE,IAAID,GAAG,CAAC,IAAI,CAACH,MAAM,CAACK,QAAQ,CAAC;MAAE;MAC5CC,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,IAAI,CAACC,QAAQ,GAAG,IAAIC,2CAA0B,CAAC;MAC7C,GAAG,IAAI,CAACR,MAAM;MACdS,UAAU,EAAE,IAAI,CAACT,MAAM,CAACU,MAAM;MAC9BC,OAAO,EAAE,IAAI,CAACX,MAAM,CAACY,YAAY;MACjCC,OAAO,EAAE,IAAI,CAACb,MAAM,CAACa;IACvB,CAAC,CAAC;EACJ;EAEA,MAAMC,OAAOA,CAAA,EAA6B;IACxC,IAAI;MACF,IAAIC,QAAkB,GAAG,EAAE;MAC3B,MAAMC,WAAW,GAAG,IAAI,CAACT,QAAQ,CAACU,SAAS;MAE3C,IAAI,CAACD,WAAW,EAAE;QAChBD,QAAQ,GAAG,MAAM,IAAI,CAACR,QAAQ,CAACW,OAAO,CAAC;UACrCC,MAAM,EAAE,qBAAqB;UAC7BC,MAAM,EAAE;QACV,CAAC,CAAC;MACJ,CAAC,MAAM;QACLL,QAAQ,GAAG,IAAI,CAACR,QAAQ,CAACc,eAAe,GAAG,CAAC,IAAI,CAACd,QAAQ,CAACc,eAAe,CAAC,GAAG,EAAE;MACjF;;MAEA;;MAEA,OAAON,QAAQ;IACjB,CAAC,CAAC,OAAOO,KAAK,EAAE;MACdC,OAAO,CAACC,IAAI,CAAC,iCAAiC,EAAEF,KAAK,CAAC;MAEtD,MAAMA,KAAK;IACb;EACF;EACA,MAAMG,UAAUA,CAAA,EAAkB;IAChC,IAAI,CAAClB,QAAQ,CAACkB,UAAU,CAAC,CAAC;IAE1B,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEAT,OAAOA,CAAcU,IAAsB,EAAc;IACvD,IAAI,CAAC,IAAAC,oBAAa,EAACD,IAAI,CAACT,MAAM,CAAC,EAAE;MAC/B,MAAM,IAAIW,KAAK,CAAE,qCAAoCF,IAAI,CAACT,MAAO,EAAC,CAAC;IACrE;IAEA,OAAO,IAAI,CAACZ,QAAQ,CAACW,OAAO,CAACU,IAAI,CAAC;EACpC;EAEAG,UAAUA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACxB,QAAQ,CAACI,OAAO;EAC9B;EAESqB,EAAEA,CAACC,KAAa,EAAEC,QAA8B,EAAO;IAC9D,OAAO,IAAI,CAAC3B,QAAQ,CAACyB,EAAE,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAC1C;EAESC,GAAGA,CAACF,KAAa,EAAEC,QAA8B,EAAO;IAC/D,OAAO,IAAI,CAAC3B,QAAQ,CAAC4B,GAAG,CAACF,KAAK,EAAEC,QAAQ,CAAC;EAC3C;AACF;AAACE,OAAA,CAAAvC,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"names":["_events","_interopRequireDefault","require","_walletMobileSdk","_utils","e","__esModule","default","CoinbaseProvider","EventEmitter","chainChangedListeners","Map","constructor","config","configure","hostURL","URL","callbackURL","redirect","hostPackageName","provider","WalletMobileSDKEVMProvider","jsonRpcUrl","rpcUrl","chainId","defaultChain","storage","connect","accounts","isConnected","connected","request","method","params","selectedAddress","error","console","warn","disconnect","Promise","resolve","args","isValidMethod","Error","getChainId","onChainChanged","hexChainId","hexToString","emit","on","event","listener","chainChangedMiddleware","set","off","middleware","get","delete","exports"],"sourceRoot":"../../../src","sources":["providers/CoinbaseProvider.ts"],"mappings":"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"}
@@ -8,7 +8,7 @@ export class CoinbaseConnector extends WalletConnector {
8
8
  super({
9
9
  type: 'coinbase'
10
10
  });
11
- this.config = config;
11
+ this.config = config ?? {};
12
12
  }
13
13
  async init(ops) {
14
14
  super.init(ops);
@@ -100,9 +100,9 @@ export class CoinbaseConnector extends WalletConnector {
100
100
  }
101
101
  saveSession(namespaces) {
102
102
  const storage = this.getStorage();
103
- storage.setItem(SESSION_KEY, JSON.stringify({
103
+ storage.setItem(SESSION_KEY, {
104
104
  namespaces
105
- }));
105
+ });
106
106
  }
107
107
  async restoreSession() {
108
108
  const storage = this.getStorage();
@@ -112,7 +112,7 @@ export class CoinbaseConnector extends WalletConnector {
112
112
  }
113
113
  const {
114
114
  namespaces
115
- } = JSON.parse(session);
115
+ } = session;
116
116
  this.namespaces = namespaces;
117
117
  return true;
118
118
  }
@@ -1 +1 @@
1
- {"version":3,"names":["WalletConnector","getCoinbaseNamespace","hexToString","numberToHex","CoinbaseProvider","SESSION_KEY","CoinbaseConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","metadata","redirect","universal","Error","provider","storage","restoreSession","connect","opts","accounts","getProvider","namespaces","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","getWalletInfo","name","description","url","getProperties","undefined","switchNetwork","network","chainId_","id","request","method","params","error","code","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","e","console","warn","getStorage","removeItem","setItem","JSON","stringify","session","getItem","parse"],"sourceRoot":"../../../src","sources":["connectors/CoinbaseConnector.ts"],"mappings":"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"}
1
+ {"version":3,"names":["WalletConnector","getCoinbaseNamespace","hexToString","numberToHex","CoinbaseProvider","SESSION_KEY","CoinbaseConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","metadata","redirect","universal","Error","provider","storage","restoreSession","connect","opts","accounts","getProvider","namespaces","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","getWalletInfo","name","description","url","getProperties","undefined","switchNetwork","network","chainId_","id","request","method","params","error","code","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","e","console","warn","getStorage","removeItem","setItem","session","getItem"],"sourceRoot":"../../../src","sources":["connectors/CoinbaseConnector.ts"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import EventEmitter from 'events';
2
2
  import { configure, WalletMobileSDKEVMProvider } from '@coinbase/wallet-mobile-sdk';
3
- import { isValidMethod } from '../utils';
3
+ import { hexToString, isValidMethod } from '../utils';
4
4
  export class CoinbaseProvider extends EventEmitter {
5
+ chainChangedListeners = new Map();
5
6
  constructor(config) {
6
7
  super();
7
8
  this.config = config;
@@ -30,9 +31,6 @@ export class CoinbaseProvider extends EventEmitter {
30
31
  } else {
31
32
  accounts = this.provider.selectedAddress ? [this.provider.selectedAddress] : [];
32
33
  }
33
-
34
- //TODO: check switch chain
35
-
36
34
  return accounts;
37
35
  } catch (error) {
38
36
  console.warn('CoinbaseProvider: connect error', error);
@@ -52,10 +50,38 @@ export class CoinbaseProvider extends EventEmitter {
52
50
  getChainId() {
53
51
  return this.provider.chainId;
54
52
  }
53
+ onChainChanged(hexChainId) {
54
+ const chainId = hexToString(hexChainId);
55
+ this.emit('chainChanged', {
56
+ chainId
57
+ });
58
+ }
55
59
  on(event, listener) {
60
+ if (event === 'chainChanged') {
61
+ // Create middleware that formats the chain ID before calling the original listener
62
+ const chainChangedMiddleware = hexChainId => {
63
+ const chainId = hexToString(hexChainId);
64
+ listener(chainId);
65
+ };
66
+
67
+ // Store the mapping between original listener and middleware
68
+ this.chainChangedListeners.set(listener, chainChangedMiddleware);
69
+ return this.provider.on('chainChanged', chainChangedMiddleware);
70
+ }
56
71
  return this.provider.on(event, listener);
57
72
  }
58
73
  off(event, listener) {
74
+ if (event === 'chainChanged') {
75
+ // Get the middleware wrapper for this listener
76
+ const middleware = this.chainChangedListeners.get(listener);
77
+ if (middleware) {
78
+ // Remove the middleware from the provider
79
+ this.provider.off('chainChanged', middleware);
80
+ // Remove the mapping
81
+ this.chainChangedListeners.delete(listener);
82
+ return this;
83
+ }
84
+ }
59
85
  return this.provider.off(event, listener);
60
86
  }
61
87
  }
@@ -1 +1 @@
1
- {"version":3,"names":["EventEmitter","configure","WalletMobileSDKEVMProvider","isValidMethod","CoinbaseProvider","constructor","config","hostURL","URL","callbackURL","redirect","hostPackageName","provider","jsonRpcUrl","rpcUrl","chainId","defaultChain","storage","connect","accounts","isConnected","connected","request","method","params","selectedAddress","error","console","warn","disconnect","Promise","resolve","args","Error","getChainId","on","event","listener","off"],"sourceRoot":"../../../src","sources":["providers/CoinbaseProvider.ts"],"mappings":"AAAA,OAAOA,YAAY,MAAM,QAAQ;AAEjC,SAASC,SAAS,EAAEC,0BAA0B,QAAQ,6BAA6B;AACnF,SAASC,aAAa,QAAQ,UAAU;AAGxC,OAAO,MAAMC,gBAAgB,SAASJ,YAAY,CAAqB;EAIrEK,WAAWA,CAACC,MAA8B,EAAE;IAC1C,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpBL,SAAS,CAAC;MACRM,OAAO,EAAE,IAAIC,GAAG,CAAC,oCAAoC,CAAC;MACtDC,WAAW,EAAE,IAAID,GAAG,CAAC,IAAI,CAACF,MAAM,CAACI,QAAQ,CAAC;MAAE;MAC5CC,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,IAAI,CAACC,QAAQ,GAAG,IAAIV,0BAA0B,CAAC;MAC7C,GAAG,IAAI,CAACI,MAAM;MACdO,UAAU,EAAE,IAAI,CAACP,MAAM,CAACQ,MAAM;MAC9BC,OAAO,EAAE,IAAI,CAACT,MAAM,CAACU,YAAY;MACjCC,OAAO,EAAE,IAAI,CAACX,MAAM,CAACW;IACvB,CAAC,CAAC;EACJ;EAEA,MAAMC,OAAOA,CAAA,EAA6B;IACxC,IAAI;MACF,IAAIC,QAAkB,GAAG,EAAE;MAC3B,MAAMC,WAAW,GAAG,IAAI,CAACR,QAAQ,CAACS,SAAS;MAE3C,IAAI,CAACD,WAAW,EAAE;QAChBD,QAAQ,GAAG,MAAM,IAAI,CAACP,QAAQ,CAACU,OAAO,CAAC;UACrCC,MAAM,EAAE,qBAAqB;UAC7BC,MAAM,EAAE;QACV,CAAC,CAAC;MACJ,CAAC,MAAM;QACLL,QAAQ,GAAG,IAAI,CAACP,QAAQ,CAACa,eAAe,GAAG,CAAC,IAAI,CAACb,QAAQ,CAACa,eAAe,CAAC,GAAG,EAAE;MACjF;;MAEA;;MAEA,OAAON,QAAQ;IACjB,CAAC,CAAC,OAAOO,KAAK,EAAE;MACdC,OAAO,CAACC,IAAI,CAAC,iCAAiC,EAAEF,KAAK,CAAC;MAEtD,MAAMA,KAAK;IACb;EACF;EACA,MAAMG,UAAUA,CAAA,EAAkB;IAChC,IAAI,CAACjB,QAAQ,CAACiB,UAAU,CAAC,CAAC;IAE1B,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEAT,OAAOA,CAAcU,IAAsB,EAAc;IACvD,IAAI,CAAC7B,aAAa,CAAC6B,IAAI,CAACT,MAAM,CAAC,EAAE;MAC/B,MAAM,IAAIU,KAAK,CAAE,qCAAoCD,IAAI,CAACT,MAAO,EAAC,CAAC;IACrE;IAEA,OAAO,IAAI,CAACX,QAAQ,CAACU,OAAO,CAACU,IAAI,CAAC;EACpC;EAEAE,UAAUA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACtB,QAAQ,CAACG,OAAO;EAC9B;EAESoB,EAAEA,CAACC,KAAa,EAAEC,QAA8B,EAAO;IAC9D,OAAO,IAAI,CAACzB,QAAQ,CAACuB,EAAE,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAC1C;EAESC,GAAGA,CAACF,KAAa,EAAEC,QAA8B,EAAO;IAC/D,OAAO,IAAI,CAACzB,QAAQ,CAAC0B,GAAG,CAACF,KAAK,EAAEC,QAAQ,CAAC;EAC3C;AACF"}
1
+ {"version":3,"names":["EventEmitter","configure","WalletMobileSDKEVMProvider","hexToString","isValidMethod","CoinbaseProvider","chainChangedListeners","Map","constructor","config","hostURL","URL","callbackURL","redirect","hostPackageName","provider","jsonRpcUrl","rpcUrl","chainId","defaultChain","storage","connect","accounts","isConnected","connected","request","method","params","selectedAddress","error","console","warn","disconnect","Promise","resolve","args","Error","getChainId","onChainChanged","hexChainId","emit","on","event","listener","chainChangedMiddleware","set","off","middleware","get","delete"],"sourceRoot":"../../../src","sources":["providers/CoinbaseProvider.ts"],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { CoinbaseConnectorConfig } from '../types';
4
4
  export declare class CoinbaseConnector extends WalletConnector {
5
5
  private static readonly SUPPORTED_NAMESPACE;
6
6
  private config;
7
- constructor(config: CoinbaseConnectorConfig);
7
+ constructor(config?: CoinbaseConnectorConfig);
8
8
  init(ops: ConnectorInitOptions): Promise<void>;
9
9
  connect(opts?: ConnectOptions): Promise<Namespaces | undefined>;
10
10
  disconnect(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"CoinbaseConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/CoinbaseConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,UAAU,EAEhB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAmB,MAAM,UAAU,CAAC;AAIzE,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IACvE,OAAO,CAAC,MAAM,CAA0B;gBAE5B,MAAM,EAAE,uBAAuB;IAK5B,IAAI,CAAC,GAAG,EAAE,oBAAoB;IAgB9B,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAU/D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,WAAW,IAAI,gBAAgB;IAQ/B,aAAa,IAAI,UAAU;IAQ3B,UAAU,IAAI,aAAa,GAAG,SAAS;IAOvC,aAAa,IAAI,UAAU,GAAG,SAAS;IASvC,aAAa,IAAI,oBAAoB,GAAG,SAAS;IAI3C,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnE,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAKJ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAajD,OAAO,CAAC,UAAU;CAOnB"}
1
+ {"version":3,"file":"CoinbaseConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/CoinbaseConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,UAAU,EAEhB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAmB,MAAM,UAAU,CAAC;AAIzE,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IACvE,OAAO,CAAC,MAAM,CAA0B;gBAE5B,MAAM,CAAC,EAAE,uBAAuB;IAK7B,IAAI,CAAC,GAAG,EAAE,oBAAoB;IAgB9B,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAU/D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,WAAW,IAAI,gBAAgB;IAQ/B,aAAa,IAAI,UAAU;IAQ3B,UAAU,IAAI,aAAa,GAAG,SAAS;IAOvC,aAAa,IAAI,UAAU,GAAG,SAAS;IASvC,aAAa,IAAI,oBAAoB,GAAG,SAAS;IAI3C,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnE,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAKJ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAajD,OAAO,CAAC,UAAU;CAOnB"}
@@ -5,11 +5,13 @@ import type { CoinbaseProviderConfig } from '../types';
5
5
  export declare class CoinbaseProvider extends EventEmitter implements Provider {
6
6
  private readonly config;
7
7
  private provider;
8
+ private chainChangedListeners;
8
9
  constructor(config: CoinbaseProviderConfig);
9
10
  connect<T = string[]>(): Promise<T>;
10
11
  disconnect(): Promise<void>;
11
12
  request<T = unknown>(args: RequestArguments): Promise<T>;
12
13
  getChainId(): `0x${string}`;
14
+ onChainChanged(hexChainId: `0x${string}`): void;
13
15
  on(event: string, listener: (args?: any) => void): any;
14
16
  off(event: string, listener: (args?: any) => void): any;
15
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CoinbaseProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/CoinbaseProvider.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,MAAM,EAAE,sBAAsB;IAgBpC,OAAO,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;IAuBnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAQxD,UAAU,IAAI,KAAK,MAAM,EAAE;IAIlB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG;IAItD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG;CAGjE"}
1
+ {"version":3,"file":"CoinbaseProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/CoinbaseProvider.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,qBAAqB,CAGzB;gBAEQ,MAAM,EAAE,sBAAsB;IAgBpC,OAAO,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;IAqBnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAQxD,UAAU,IAAI,KAAK,MAAM,EAAE;IAI3B,cAAc,CAAC,UAAU,EAAE,KAAK,MAAM,EAAE,GAAG,IAAI;IAKtC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG;IAiBtD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG;CAgBjE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-coinbase-react-native",
3
- "version": "0.0.0-feat-coinbase-20250722174423",
3
+ "version": "0.0.0-feat-coinbase-20250722202925",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
@@ -35,7 +35,7 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
- "@reown/appkit-common-react-native": "0.0.0-feat-coinbase-20250722174423"
38
+ "@reown/appkit-common-react-native": "0.0.0-feat-coinbase-20250722202925"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@coinbase/wallet-mobile-sdk": ">=1.1.2"
@@ -20,9 +20,9 @@ export class CoinbaseConnector extends WalletConnector {
20
20
  private static readonly SUPPORTED_NAMESPACE: ChainNamespace = 'eip155';
21
21
  private config: CoinbaseConnectorConfig;
22
22
 
23
- constructor(config: CoinbaseConnectorConfig) {
23
+ constructor(config?: CoinbaseConnectorConfig) {
24
24
  super({ type: 'coinbase' });
25
- this.config = config;
25
+ this.config = config ?? {};
26
26
  }
27
27
 
28
28
  override async init(ops: ConnectorInitOptions) {
@@ -134,17 +134,17 @@ export class CoinbaseConnector extends WalletConnector {
134
134
 
135
135
  private saveSession(namespaces: Namespaces): void {
136
136
  const storage = this.getStorage();
137
- storage.setItem(SESSION_KEY, JSON.stringify({ namespaces }));
137
+ storage.setItem<CoinbaseSession>(SESSION_KEY, { namespaces });
138
138
  }
139
139
 
140
140
  override async restoreSession(): Promise<boolean> {
141
141
  const storage = this.getStorage();
142
- const session = await storage.getItem<string>(SESSION_KEY);
142
+ const session = await storage.getItem<CoinbaseSession>(SESSION_KEY);
143
143
  if (!session) {
144
144
  return false;
145
145
  }
146
146
 
147
- const { namespaces } = JSON.parse(session) as CoinbaseSession;
147
+ const { namespaces } = session;
148
148
  this.namespaces = namespaces;
149
149
 
150
150
  return true;
@@ -1,12 +1,16 @@
1
1
  import EventEmitter from 'events';
2
2
  import type { Provider, RequestArguments } from '@reown/appkit-common-react-native';
3
3
  import { configure, WalletMobileSDKEVMProvider } from '@coinbase/wallet-mobile-sdk';
4
- import { isValidMethod } from '../utils';
4
+ import { hexToString, isValidMethod } from '../utils';
5
5
  import type { CoinbaseProviderConfig } from '../types';
6
6
 
7
7
  export class CoinbaseProvider extends EventEmitter implements Provider {
8
8
  private readonly config: CoinbaseProviderConfig;
9
9
  private provider: WalletMobileSDKEVMProvider;
10
+ private chainChangedListeners = new Map<
11
+ (args?: any) => void,
12
+ (hexChainId: `0x${string}`) => void
13
+ >();
10
14
 
11
15
  constructor(config: CoinbaseProviderConfig) {
12
16
  super();
@@ -38,8 +42,6 @@ export class CoinbaseProvider extends EventEmitter implements Provider {
38
42
  accounts = this.provider.selectedAddress ? [this.provider.selectedAddress] : [];
39
43
  }
40
44
 
41
- //TODO: check switch chain
42
-
43
45
  return accounts as T;
44
46
  } catch (error) {
45
47
  console.warn('CoinbaseProvider: connect error', error);
@@ -65,11 +67,42 @@ export class CoinbaseProvider extends EventEmitter implements Provider {
65
67
  return this.provider.chainId as `0x${string}`;
66
68
  }
67
69
 
70
+ onChainChanged(hexChainId: `0x${string}`): void {
71
+ const chainId = hexToString(hexChainId);
72
+ this.emit('chainChanged', { chainId });
73
+ }
74
+
68
75
  override on(event: string, listener: (args?: any) => void): any {
76
+ if (event === 'chainChanged') {
77
+ // Create middleware that formats the chain ID before calling the original listener
78
+ const chainChangedMiddleware = (hexChainId: `0x${string}`) => {
79
+ const chainId = hexToString(hexChainId);
80
+ listener(chainId);
81
+ };
82
+
83
+ // Store the mapping between original listener and middleware
84
+ this.chainChangedListeners.set(listener, chainChangedMiddleware);
85
+
86
+ return this.provider.on('chainChanged', chainChangedMiddleware);
87
+ }
88
+
69
89
  return this.provider.on(event, listener);
70
90
  }
71
91
 
72
92
  override off(event: string, listener: (args?: any) => void): any {
93
+ if (event === 'chainChanged') {
94
+ // Get the middleware wrapper for this listener
95
+ const middleware = this.chainChangedListeners.get(listener);
96
+ if (middleware) {
97
+ // Remove the middleware from the provider
98
+ this.provider.off('chainChanged', middleware);
99
+ // Remove the mapping
100
+ this.chainChangedListeners.delete(listener);
101
+
102
+ return this;
103
+ }
104
+ }
105
+
73
106
  return this.provider.off(event, listener);
74
107
  }
75
108
  }