@reown/appkit-coinbase-react-native 2.0.0-alpha.3 → 2.0.0-alpha.4
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.
- package/lib/commonjs/connectors/CoinbaseConnector.js +6 -2
- package/lib/commonjs/connectors/CoinbaseConnector.js.map +1 -1
- package/lib/commonjs/providers/CoinbaseProvider.js +1 -6
- package/lib/commonjs/providers/CoinbaseProvider.js.map +1 -1
- package/lib/commonjs/utils.js +0 -4
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/connectors/CoinbaseConnector.js +6 -2
- package/lib/module/connectors/CoinbaseConnector.js.map +1 -1
- package/lib/module/providers/CoinbaseProvider.js +1 -6
- package/lib/module/providers/CoinbaseProvider.js.map +1 -1
- package/lib/module/utils.js +0 -3
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/connectors/CoinbaseConnector.d.ts +1 -1
- package/lib/typescript/connectors/CoinbaseConnector.d.ts.map +1 -1
- package/lib/typescript/providers/CoinbaseProvider.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +2 -3
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +0 -2
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/connectors/CoinbaseConnector.ts +13 -3
- package/src/providers/CoinbaseProvider.ts +1 -7
- package/src/types.ts +2 -6
- package/src/utils.ts +0 -5
|
@@ -25,12 +25,16 @@ class CoinbaseConnector extends _appkitCommonReactNative.WalletConnector {
|
|
|
25
25
|
this.provider = new _CoinbaseProvider.CoinbaseProvider({
|
|
26
26
|
redirect,
|
|
27
27
|
// use config storage, as it needs to be mmkv-compatible
|
|
28
|
-
storage: this.config.storage
|
|
28
|
+
storage: this.config.storage,
|
|
29
|
+
jsonRpcUrl: this.config.jsonRpcUrl
|
|
29
30
|
});
|
|
30
31
|
await this.restoreSession();
|
|
31
32
|
}
|
|
32
33
|
async connect(opts) {
|
|
33
34
|
const accounts = await this.getProvider().connect();
|
|
35
|
+
if (opts?.defaultNetwork && opts.defaultNetwork.chainNamespace === CoinbaseConnector.SUPPORTED_NAMESPACE) {
|
|
36
|
+
await this.switchNetwork(opts.defaultNetwork);
|
|
37
|
+
}
|
|
34
38
|
const namespaces = (0, _utils.getCoinbaseNamespace)(opts?.namespaces, accounts);
|
|
35
39
|
this.namespaces = namespaces;
|
|
36
40
|
this.saveSession(namespaces);
|
|
@@ -42,7 +46,7 @@ class CoinbaseConnector extends _appkitCommonReactNative.WalletConnector {
|
|
|
42
46
|
}
|
|
43
47
|
getProvider() {
|
|
44
48
|
if (!this.provider) {
|
|
45
|
-
throw new Error('CoinbaseConnector: Provider not initialized');
|
|
49
|
+
throw new Error('CoinbaseConnector: Provider not initialized. Call init() first.');
|
|
46
50
|
}
|
|
47
51
|
return this.provider;
|
|
48
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_appkitCommonReactNative","require","_utils","_CoinbaseProvider","SESSION_KEY","CoinbaseConnector","WalletConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","redirect","metadata","universal","native","Error","provider","CoinbaseProvider","storage","restoreSession","connect","opts","accounts","getProvider","namespaces","getCoinbaseNamespace","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","StringUtil","hexToString","getWalletInfo","name","description","url","getProperties","undefined","
|
|
1
|
+
{"version":3,"names":["_appkitCommonReactNative","require","_utils","_CoinbaseProvider","SESSION_KEY","CoinbaseConnector","WalletConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","redirect","metadata","universal","native","Error","provider","CoinbaseProvider","storage","jsonRpcUrl","restoreSession","connect","opts","accounts","getProvider","defaultNetwork","chainNamespace","switchNetwork","namespaces","getCoinbaseNamespace","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","StringUtil","hexToString","getWalletInfo","name","description","url","getProperties","undefined","network","chainId_","NumberUtil","convertNumericToHexString","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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","ignoreList":[]}
|
|
@@ -7,7 +7,6 @@ exports.CoinbaseProvider = void 0;
|
|
|
7
7
|
var _events = _interopRequireDefault(require("events"));
|
|
8
8
|
var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
|
|
9
9
|
var _walletMobileSdk = require("@coinbase/wallet-mobile-sdk");
|
|
10
|
-
var _utils = require("../utils");
|
|
11
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
11
|
class CoinbaseProvider extends _events.default {
|
|
13
12
|
chainChangedListeners = new Map();
|
|
@@ -22,8 +21,7 @@ class CoinbaseProvider extends _events.default {
|
|
|
22
21
|
});
|
|
23
22
|
this.provider = new _walletMobileSdk.WalletMobileSDKEVMProvider({
|
|
24
23
|
...this.config,
|
|
25
|
-
jsonRpcUrl: this.config.
|
|
26
|
-
chainId: this.config.defaultChain,
|
|
24
|
+
jsonRpcUrl: this.config.jsonRpcUrl,
|
|
27
25
|
storage: this.config.storage
|
|
28
26
|
});
|
|
29
27
|
}
|
|
@@ -50,9 +48,6 @@ class CoinbaseProvider extends _events.default {
|
|
|
50
48
|
return Promise.resolve();
|
|
51
49
|
}
|
|
52
50
|
request(args) {
|
|
53
|
-
if (!(0, _utils.isValidMethod)(args.method)) {
|
|
54
|
-
throw new Error(`CoinbaseProvider: Invalid method: ${args.method}`);
|
|
55
|
-
}
|
|
56
51
|
return this.provider.request(args);
|
|
57
52
|
}
|
|
58
53
|
getChainId() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","_interopRequireDefault","require","_appkitCommonReactNative","_walletMobileSdk","
|
|
1
|
+
{"version":3,"names":["_events","_interopRequireDefault","require","_appkitCommonReactNative","_walletMobileSdk","e","__esModule","default","CoinbaseProvider","EventEmitter","chainChangedListeners","Map","constructor","config","configure","hostURL","URL","callbackURL","redirect","hostPackageName","provider","WalletMobileSDKEVMProvider","jsonRpcUrl","storage","connect","accounts","isConnected","connected","request","method","params","selectedAddress","error","console","warn","disconnect","Promise","resolve","args","getChainId","chainId","onChainChanged","hexChainId","StringUtil","hexToString","emit","on","event","listener","chainChangedMiddleware","set","off","middleware","get","delete","exports"],"sourceRoot":"../../../src","sources":["providers/CoinbaseProvider.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/utils.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.COINBASE_METHODS = void 0;
|
|
7
7
|
exports.getCoinbaseNamespace = getCoinbaseNamespace;
|
|
8
|
-
exports.isValidMethod = isValidMethod;
|
|
9
8
|
const COINBASE_METHODS = exports.COINBASE_METHODS = {
|
|
10
9
|
REQUEST_ACCOUNTS: 'eth_requestAccounts',
|
|
11
10
|
SIGN_TRANSACTION: 'eth_signTransaction',
|
|
@@ -17,9 +16,6 @@ const COINBASE_METHODS = exports.COINBASE_METHODS = {
|
|
|
17
16
|
ADD_ETHEREUM_CHAIN: 'wallet_addEthereumChain',
|
|
18
17
|
WATCH_ASSET: 'wallet_watchAsset'
|
|
19
18
|
};
|
|
20
|
-
function isValidMethod(method) {
|
|
21
|
-
return Object.values(COINBASE_METHODS).includes(method);
|
|
22
|
-
}
|
|
23
19
|
function getCoinbaseNamespace(namespaces, accounts) {
|
|
24
20
|
if (!namespaces || !accounts) {
|
|
25
21
|
throw new Error('CoinbaseConnector: Namespaces or accounts not found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["COINBASE_METHODS","exports","REQUEST_ACCOUNTS","SIGN_TRANSACTION","SEND_TRANSACTION","SIGN_MESSAGE","SIGN_TYPED_DATA_V3","SIGN_TYPED_DATA_V4","SWITCH_CHAIN","ADD_ETHEREUM_CHAIN","WATCH_ASSET","
|
|
1
|
+
{"version":3,"names":["COINBASE_METHODS","exports","REQUEST_ACCOUNTS","SIGN_TRANSACTION","SEND_TRANSACTION","SIGN_MESSAGE","SIGN_TYPED_DATA_V3","SIGN_TYPED_DATA_V4","SWITCH_CHAIN","ADD_ETHEREUM_CHAIN","WATCH_ASSET","getCoinbaseNamespace","namespaces","accounts","Error","namespace","caipAddresses","account","chains","forEach","chain","push","methods","Object","values"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;;;;;;AAMO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,gBAAgB,EAAE,qBAAqB;EACvCC,gBAAgB,EAAE,qBAAqB;EACvCC,gBAAgB,EAAE,qBAAqB;EACvCC,YAAY,EAAE,eAAe;EAC7BC,kBAAkB,EAAE,sBAAsB;EAC1CC,kBAAkB,EAAE,sBAAsB;EAC1CC,YAAY,EAAE,4BAA4B;EAC1CC,kBAAkB,EAAE,yBAAyB;EAC7CC,WAAW,EAAE;AACf,CAAU;AAEH,SAASC,oBAAoBA,CAClCC,UAA+B,EAC/BC,QAAmB,EACP;EACZ,IAAI,CAACD,UAAU,IAAI,CAACC,QAAQ,EAAE;IAC5B,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,MAAMC,SAAS,GAAGH,UAAU,CAAC,QAAQ,CAAC;EAEtC,IAAI,CAACG,SAAS,EAAE;IACd,MAAM,IAAID,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EAEA,IAAIE,aAA4B,GAAG,EAAE;EAErC,KAAK,MAAMC,OAAO,IAAIJ,QAAQ,EAAE;IAC9BE,SAAS,CAACG,MAAM,EAAEC,OAAO,CAACC,KAAK,IAAI;MACjCJ,aAAa,CAACK,IAAI,CAAC,GAAGD,KAAK,IAAIH,OAAO,EAAE,CAAC;IAC3C,CAAC,CAAC;EACJ;EAEA,OAAO;IACL,CAAC,QAAQ,GAAG;MACV,GAAGF,SAAS;MACZO,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACxB,gBAAgB,CAAC;MACxCa,QAAQ,EAAEG;IACZ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -21,12 +21,16 @@ export class CoinbaseConnector extends WalletConnector {
|
|
|
21
21
|
this.provider = new CoinbaseProvider({
|
|
22
22
|
redirect,
|
|
23
23
|
// use config storage, as it needs to be mmkv-compatible
|
|
24
|
-
storage: this.config.storage
|
|
24
|
+
storage: this.config.storage,
|
|
25
|
+
jsonRpcUrl: this.config.jsonRpcUrl
|
|
25
26
|
});
|
|
26
27
|
await this.restoreSession();
|
|
27
28
|
}
|
|
28
29
|
async connect(opts) {
|
|
29
30
|
const accounts = await this.getProvider().connect();
|
|
31
|
+
if (opts?.defaultNetwork && opts.defaultNetwork.chainNamespace === CoinbaseConnector.SUPPORTED_NAMESPACE) {
|
|
32
|
+
await this.switchNetwork(opts.defaultNetwork);
|
|
33
|
+
}
|
|
30
34
|
const namespaces = getCoinbaseNamespace(opts?.namespaces, accounts);
|
|
31
35
|
this.namespaces = namespaces;
|
|
32
36
|
this.saveSession(namespaces);
|
|
@@ -38,7 +42,7 @@ export class CoinbaseConnector extends WalletConnector {
|
|
|
38
42
|
}
|
|
39
43
|
getProvider() {
|
|
40
44
|
if (!this.provider) {
|
|
41
|
-
throw new Error('CoinbaseConnector: Provider not initialized');
|
|
45
|
+
throw new Error('CoinbaseConnector: Provider not initialized. Call init() first.');
|
|
42
46
|
}
|
|
43
47
|
return this.provider;
|
|
44
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WalletConnector","NumberUtil","StringUtil","getCoinbaseNamespace","CoinbaseProvider","SESSION_KEY","CoinbaseConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","redirect","metadata","universal","native","Error","provider","storage","restoreSession","connect","opts","accounts","getProvider","namespaces","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","hexToString","getWalletInfo","name","description","url","getProperties","undefined","
|
|
1
|
+
{"version":3,"names":["WalletConnector","NumberUtil","StringUtil","getCoinbaseNamespace","CoinbaseProvider","SESSION_KEY","CoinbaseConnector","SUPPORTED_NAMESPACE","constructor","config","type","init","ops","redirect","metadata","universal","native","Error","provider","storage","jsonRpcUrl","restoreSession","connect","opts","accounts","getProvider","defaultNetwork","chainNamespace","switchNetwork","namespaces","saveSession","disconnect","deleteSession","getNamespaces","getChainId","hexChainId","chainId","hexToString","getWalletInfo","name","description","url","getProperties","undefined","network","chainId_","convertNumericToHexString","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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","ignoreList":[]}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import EventEmitter from 'events';
|
|
4
4
|
import { StringUtil } from '@reown/appkit-common-react-native';
|
|
5
5
|
import { configure, WalletMobileSDKEVMProvider } from '@coinbase/wallet-mobile-sdk';
|
|
6
|
-
import { isValidMethod } from '../utils';
|
|
7
6
|
export class CoinbaseProvider extends EventEmitter {
|
|
8
7
|
chainChangedListeners = new Map();
|
|
9
8
|
constructor(config) {
|
|
@@ -17,8 +16,7 @@ export class CoinbaseProvider extends EventEmitter {
|
|
|
17
16
|
});
|
|
18
17
|
this.provider = new WalletMobileSDKEVMProvider({
|
|
19
18
|
...this.config,
|
|
20
|
-
jsonRpcUrl: this.config.
|
|
21
|
-
chainId: this.config.defaultChain,
|
|
19
|
+
jsonRpcUrl: this.config.jsonRpcUrl,
|
|
22
20
|
storage: this.config.storage
|
|
23
21
|
});
|
|
24
22
|
}
|
|
@@ -45,9 +43,6 @@ export class CoinbaseProvider extends EventEmitter {
|
|
|
45
43
|
return Promise.resolve();
|
|
46
44
|
}
|
|
47
45
|
request(args) {
|
|
48
|
-
if (!isValidMethod(args.method)) {
|
|
49
|
-
throw new Error(`CoinbaseProvider: Invalid method: ${args.method}`);
|
|
50
|
-
}
|
|
51
46
|
return this.provider.request(args);
|
|
52
47
|
}
|
|
53
48
|
getChainId() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","StringUtil","configure","WalletMobileSDKEVMProvider","
|
|
1
|
+
{"version":3,"names":["EventEmitter","StringUtil","configure","WalletMobileSDKEVMProvider","CoinbaseProvider","chainChangedListeners","Map","constructor","config","hostURL","URL","callbackURL","redirect","hostPackageName","provider","jsonRpcUrl","storage","connect","accounts","isConnected","connected","request","method","params","selectedAddress","error","console","warn","disconnect","Promise","resolve","args","getChainId","chainId","onChainChanged","hexChainId","hexToString","emit","on","event","listener","chainChangedMiddleware","set","off","middleware","get","delete"],"sourceRoot":"../../../src","sources":["providers/CoinbaseProvider.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,QAAQ;AACjC,SAGEC,UAAU,QACL,mCAAmC;AAC1C,SAASC,SAAS,EAAEC,0BAA0B,QAAQ,6BAA6B;AAGnF,OAAO,MAAMC,gBAAgB,SAASJ,YAAY,CAAqB;EAG7DK,qBAAqB,GAAG,IAAIC,GAAG,CAGrC,CAAC;EAEHC,WAAWA,CAACC,MAA8B,EAAE;IAC1C,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpBN,SAAS,CAAC;MACRO,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,IAAIX,0BAA0B,CAAC;MAC7C,GAAG,IAAI,CAACK,MAAM;MACdO,UAAU,EAAE,IAAI,CAACP,MAAM,CAACO,UAAU;MAClCC,OAAO,EAAE,IAAI,CAACR,MAAM,CAACQ;IACvB,CAAC,CAAC;EACJ;EAEA,MAAMC,OAAOA,CAAA,EAA6B;IACxC,IAAI;MACF,IAAIC,QAAkB,GAAG,EAAE;MAC3B,MAAMC,WAAW,GAAG,IAAI,CAACL,QAAQ,CAACM,SAAS;MAE3C,IAAI,CAACD,WAAW,EAAE;QAChBD,QAAQ,GAAG,MAAM,IAAI,CAACJ,QAAQ,CAACO,OAAO,CAAC;UACrCC,MAAM,EAAE,qBAAqB;UAC7BC,MAAM,EAAE;QACV,CAAC,CAAC;MACJ,CAAC,MAAM;QACLL,QAAQ,GAAG,IAAI,CAACJ,QAAQ,CAACU,eAAe,GAAG,CAAC,IAAI,CAACV,QAAQ,CAACU,eAAe,CAAC,GAAG,EAAE;MACjF;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,CAACd,QAAQ,CAACc,UAAU,CAAC,CAAC;IAE1B,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEAT,OAAOA,CAAcU,IAAsB,EAAc;IACvD,OAAO,IAAI,CAACjB,QAAQ,CAACO,OAAO,CAACU,IAAI,CAAC;EACpC;EAEAC,UAAUA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAAClB,QAAQ,CAACmB,OAAO;EAC9B;EAEAC,cAAcA,CAACC,UAAyB,EAAQ;IAC9C,MAAMF,OAAO,GAAGhC,UAAU,CAACmC,WAAW,CAACD,UAAU,CAAC;IAClD,IAAI,CAACE,IAAI,CAAC,cAAc,EAAE;MAAEJ;IAAQ,CAAC,CAAC;EACxC;EAESK,EAAEA,CAACC,KAAa,EAAEC,QAA8B,EAAO;IAC9D,IAAID,KAAK,KAAK,cAAc,EAAE;MAC5B;MACA,MAAME,sBAAsB,GAAIN,UAAyB,IAAK;QAC5D,MAAMF,OAAO,GAAGhC,UAAU,CAACmC,WAAW,CAACD,UAAU,CAAC;QAClDK,QAAQ,CAACP,OAAO,CAAC;MACnB,CAAC;;MAED;MACA,IAAI,CAAC5B,qBAAqB,CAACqC,GAAG,CAACF,QAAQ,EAAEC,sBAAsB,CAAC;MAEhE,OAAO,IAAI,CAAC3B,QAAQ,CAACwB,EAAE,CAAC,cAAc,EAAEG,sBAAsB,CAAC;IACjE;IAEA,OAAO,IAAI,CAAC3B,QAAQ,CAACwB,EAAE,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAC1C;EAESG,GAAGA,CAACJ,KAAa,EAAEC,QAA8B,EAAO;IAC/D,IAAID,KAAK,KAAK,cAAc,EAAE;MAC5B;MACA,MAAMK,UAAU,GAAG,IAAI,CAACvC,qBAAqB,CAACwC,GAAG,CAACL,QAAQ,CAAC;MAC3D,IAAII,UAAU,EAAE;QACd;QACA,IAAI,CAAC9B,QAAQ,CAAC6B,GAAG,CAAC,cAAc,EAAEC,UAAU,CAAC;QAC7C;QACA,IAAI,CAACvC,qBAAqB,CAACyC,MAAM,CAACN,QAAQ,CAAC;QAE3C,OAAO,IAAI;MACb;IACF;IAEA,OAAO,IAAI,CAAC1B,QAAQ,CAAC6B,GAAG,CAACJ,KAAK,EAAEC,QAAQ,CAAC;EAC3C;AACF","ignoreList":[]}
|
package/lib/module/utils.js
CHANGED
|
@@ -11,9 +11,6 @@ export const COINBASE_METHODS = {
|
|
|
11
11
|
ADD_ETHEREUM_CHAIN: 'wallet_addEthereumChain',
|
|
12
12
|
WATCH_ASSET: 'wallet_watchAsset'
|
|
13
13
|
};
|
|
14
|
-
export function isValidMethod(method) {
|
|
15
|
-
return Object.values(COINBASE_METHODS).includes(method);
|
|
16
|
-
}
|
|
17
14
|
export function getCoinbaseNamespace(namespaces, accounts) {
|
|
18
15
|
if (!namespaces || !accounts) {
|
|
19
16
|
throw new Error('CoinbaseConnector: Namespaces or accounts not found');
|
package/lib/module/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["COINBASE_METHODS","REQUEST_ACCOUNTS","SIGN_TRANSACTION","SEND_TRANSACTION","SIGN_MESSAGE","SIGN_TYPED_DATA_V3","SIGN_TYPED_DATA_V4","SWITCH_CHAIN","ADD_ETHEREUM_CHAIN","WATCH_ASSET","
|
|
1
|
+
{"version":3,"names":["COINBASE_METHODS","REQUEST_ACCOUNTS","SIGN_TRANSACTION","SEND_TRANSACTION","SIGN_MESSAGE","SIGN_TYPED_DATA_V3","SIGN_TYPED_DATA_V4","SWITCH_CHAIN","ADD_ETHEREUM_CHAIN","WATCH_ASSET","getCoinbaseNamespace","namespaces","accounts","Error","namespace","caipAddresses","account","chains","forEach","chain","push","methods","Object","values"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;AAMA,OAAO,MAAMA,gBAAgB,GAAG;EAC9BC,gBAAgB,EAAE,qBAAqB;EACvCC,gBAAgB,EAAE,qBAAqB;EACvCC,gBAAgB,EAAE,qBAAqB;EACvCC,YAAY,EAAE,eAAe;EAC7BC,kBAAkB,EAAE,sBAAsB;EAC1CC,kBAAkB,EAAE,sBAAsB;EAC1CC,YAAY,EAAE,4BAA4B;EAC1CC,kBAAkB,EAAE,yBAAyB;EAC7CC,WAAW,EAAE;AACf,CAAU;AAEV,OAAO,SAASC,oBAAoBA,CAClCC,UAA+B,EAC/BC,QAAmB,EACP;EACZ,IAAI,CAACD,UAAU,IAAI,CAACC,QAAQ,EAAE;IAC5B,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,MAAMC,SAAS,GAAGH,UAAU,CAAC,QAAQ,CAAC;EAEtC,IAAI,CAACG,SAAS,EAAE;IACd,MAAM,IAAID,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EAEA,IAAIE,aAA4B,GAAG,EAAE;EAErC,KAAK,MAAMC,OAAO,IAAIJ,QAAQ,EAAE;IAC9BE,SAAS,CAACG,MAAM,EAAEC,OAAO,CAACC,KAAK,IAAI;MACjCJ,aAAa,CAACK,IAAI,CAAC,GAAGD,KAAK,IAAIH,OAAO,EAAE,CAAC;IAC3C,CAAC,CAAC;EACJ;EAEA,OAAO;IACL,CAAC,QAAQ,GAAG;MACV,GAAGF,SAAS;MACZO,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACvB,gBAAgB,CAAC;MACxCY,QAAQ,EAAEG;IACZ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ export declare class CoinbaseConnector extends WalletConnector {
|
|
|
6
6
|
private config;
|
|
7
7
|
constructor(config?: CoinbaseConnectorConfig);
|
|
8
8
|
init(ops: ConnectorInitOptions): Promise<void>;
|
|
9
|
-
connect(opts?: ConnectOptions): Promise<Namespaces | undefined>;
|
|
9
|
+
connect(opts?: Pick<ConnectOptions, 'namespaces' | 'defaultNetwork'>): Promise<Namespaces | undefined>;
|
|
10
10
|
disconnect(): Promise<void>;
|
|
11
11
|
getProvider(): CoinbaseProvider;
|
|
12
12
|
getNamespaces(): Namespaces;
|
|
@@ -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,EAIhB,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;
|
|
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,EAIhB,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;IAkB9B,OAAO,CACpB,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,gBAAgB,CAAC,GAC3D,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAiBnB,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;IAQvC,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinbaseProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/CoinbaseProvider.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EAEtB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"CoinbaseProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/CoinbaseProvider.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EAEtB,MAAM,mCAAmC,CAAC;AAE3C,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;IAepC,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;IAIxD,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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import type { Namespaces } from '@reown/appkit-common-react-native';
|
|
2
2
|
import type { KVStorage, WalletMobileSDKProviderOptions } from '@coinbase/wallet-mobile-sdk/build/WalletMobileSDKEVMProvider';
|
|
3
3
|
import type { COINBASE_METHODS } from './utils';
|
|
4
|
-
export type CoinbaseProviderConfig = Omit<WalletMobileSDKProviderOptions, 'chainId' | '
|
|
5
|
-
defaultChain?: number;
|
|
4
|
+
export type CoinbaseProviderConfig = Omit<WalletMobileSDKProviderOptions, 'chainId' | 'address'> & {
|
|
6
5
|
redirect: string;
|
|
7
|
-
rpcUrl?: string;
|
|
8
6
|
};
|
|
9
7
|
export type Values<T> = T[keyof T];
|
|
10
8
|
export type CoinbaseMethod = Values<typeof COINBASE_METHODS>;
|
|
@@ -13,5 +11,6 @@ export type CoinbaseSession = {
|
|
|
13
11
|
};
|
|
14
12
|
export type CoinbaseConnectorConfig = {
|
|
15
13
|
storage?: KVStorage;
|
|
14
|
+
jsonRpcUrl?: string;
|
|
16
15
|
};
|
|
17
16
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EACV,SAAS,EACT,8BAA8B,EAC/B,MAAM,8DAA8D,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EACV,SAAS,EACT,8BAA8B,EAC/B,MAAM,8DAA8D,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,8BAA8B,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IACjG,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { Namespaces, ProposalNamespaces } from '@reown/appkit-common-react-native';
|
|
2
|
-
import type { CoinbaseMethod } from './types';
|
|
3
2
|
export declare const COINBASE_METHODS: {
|
|
4
3
|
readonly REQUEST_ACCOUNTS: "eth_requestAccounts";
|
|
5
4
|
readonly SIGN_TRANSACTION: "eth_signTransaction";
|
|
@@ -11,6 +10,5 @@ export declare const COINBASE_METHODS: {
|
|
|
11
10
|
readonly ADD_ETHEREUM_CHAIN: "wallet_addEthereumChain";
|
|
12
11
|
readonly WATCH_ASSET: "wallet_watchAsset";
|
|
13
12
|
};
|
|
14
|
-
export declare function isValidMethod(method: string): method is CoinbaseMethod;
|
|
15
13
|
export declare function getCoinbaseNamespace(namespaces?: ProposalNamespaces, accounts?: string[]): Namespaces;
|
|
16
14
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAE3C,eAAO,MAAM,gBAAgB;;;;;;;;;;CAUnB,CAAC;AAEX,wBAAgB,oBAAoB,CAClC,UAAU,CAAC,EAAE,kBAAkB,EAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,UAAU,CA0BZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reown/appkit-coinbase-react-native",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.4",
|
|
4
4
|
"main": "lib/commonjs/index.js",
|
|
5
5
|
"types": "lib/typescript/index.d.ts",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@reown/appkit-common-react-native": "2.0.0-alpha.
|
|
39
|
+
"@reown/appkit-common-react-native": "2.0.0-alpha.4"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@coinbase/wallet-mobile-sdk": ">=1.1.2",
|
|
@@ -38,15 +38,25 @@ export class CoinbaseConnector extends WalletConnector {
|
|
|
38
38
|
this.provider = new CoinbaseProvider({
|
|
39
39
|
redirect,
|
|
40
40
|
// use config storage, as it needs to be mmkv-compatible
|
|
41
|
-
storage: this.config.storage
|
|
41
|
+
storage: this.config.storage,
|
|
42
|
+
jsonRpcUrl: this.config.jsonRpcUrl
|
|
42
43
|
});
|
|
43
44
|
|
|
44
45
|
await this.restoreSession();
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
override async connect(
|
|
48
|
+
override async connect(
|
|
49
|
+
opts?: Pick<ConnectOptions, 'namespaces' | 'defaultNetwork'>
|
|
50
|
+
): Promise<Namespaces | undefined> {
|
|
48
51
|
const accounts = await this.getProvider().connect();
|
|
49
52
|
|
|
53
|
+
if (
|
|
54
|
+
opts?.defaultNetwork &&
|
|
55
|
+
opts.defaultNetwork.chainNamespace === CoinbaseConnector.SUPPORTED_NAMESPACE
|
|
56
|
+
) {
|
|
57
|
+
await this.switchNetwork(opts.defaultNetwork);
|
|
58
|
+
}
|
|
59
|
+
|
|
50
60
|
const namespaces = getCoinbaseNamespace(opts?.namespaces, accounts);
|
|
51
61
|
this.namespaces = namespaces;
|
|
52
62
|
this.saveSession(namespaces);
|
|
@@ -61,7 +71,7 @@ export class CoinbaseConnector extends WalletConnector {
|
|
|
61
71
|
|
|
62
72
|
override getProvider(): CoinbaseProvider {
|
|
63
73
|
if (!this.provider) {
|
|
64
|
-
throw new Error('CoinbaseConnector: Provider not initialized');
|
|
74
|
+
throw new Error('CoinbaseConnector: Provider not initialized. Call init() first.');
|
|
65
75
|
}
|
|
66
76
|
|
|
67
77
|
return this.provider as CoinbaseProvider;
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
StringUtil
|
|
6
6
|
} from '@reown/appkit-common-react-native';
|
|
7
7
|
import { configure, WalletMobileSDKEVMProvider } from '@coinbase/wallet-mobile-sdk';
|
|
8
|
-
import { isValidMethod } from '../utils';
|
|
9
8
|
import type { CoinbaseProviderConfig } from '../types';
|
|
10
9
|
|
|
11
10
|
export class CoinbaseProvider extends EventEmitter implements Provider {
|
|
@@ -26,8 +25,7 @@ export class CoinbaseProvider extends EventEmitter implements Provider {
|
|
|
26
25
|
});
|
|
27
26
|
this.provider = new WalletMobileSDKEVMProvider({
|
|
28
27
|
...this.config,
|
|
29
|
-
jsonRpcUrl: this.config.
|
|
30
|
-
chainId: this.config.defaultChain,
|
|
28
|
+
jsonRpcUrl: this.config.jsonRpcUrl,
|
|
31
29
|
storage: this.config.storage
|
|
32
30
|
});
|
|
33
31
|
}
|
|
@@ -60,10 +58,6 @@ export class CoinbaseProvider extends EventEmitter implements Provider {
|
|
|
60
58
|
}
|
|
61
59
|
|
|
62
60
|
request<T = unknown>(args: RequestArguments): Promise<T> {
|
|
63
|
-
if (!isValidMethod(args.method)) {
|
|
64
|
-
throw new Error(`CoinbaseProvider: Invalid method: ${args.method}`);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
61
|
return this.provider.request(args);
|
|
68
62
|
}
|
|
69
63
|
|
package/src/types.ts
CHANGED
|
@@ -5,13 +5,8 @@ import type {
|
|
|
5
5
|
} from '@coinbase/wallet-mobile-sdk/build/WalletMobileSDKEVMProvider';
|
|
6
6
|
import type { COINBASE_METHODS } from './utils';
|
|
7
7
|
|
|
8
|
-
export type CoinbaseProviderConfig = Omit<
|
|
9
|
-
WalletMobileSDKProviderOptions,
|
|
10
|
-
'chainId' | 'jsonRpcUrl' | 'address'
|
|
11
|
-
> & {
|
|
12
|
-
defaultChain?: number;
|
|
8
|
+
export type CoinbaseProviderConfig = Omit<WalletMobileSDKProviderOptions, 'chainId' | 'address'> & {
|
|
13
9
|
redirect: string;
|
|
14
|
-
rpcUrl?: string;
|
|
15
10
|
};
|
|
16
11
|
|
|
17
12
|
export type Values<T> = T[keyof T];
|
|
@@ -24,4 +19,5 @@ export type CoinbaseSession = {
|
|
|
24
19
|
|
|
25
20
|
export type CoinbaseConnectorConfig = {
|
|
26
21
|
storage?: KVStorage;
|
|
22
|
+
jsonRpcUrl?: string;
|
|
27
23
|
};
|
package/src/utils.ts
CHANGED
|
@@ -3,7 +3,6 @@ import type {
|
|
|
3
3
|
Namespaces,
|
|
4
4
|
ProposalNamespaces
|
|
5
5
|
} from '@reown/appkit-common-react-native';
|
|
6
|
-
import type { CoinbaseMethod } from './types';
|
|
7
6
|
|
|
8
7
|
export const COINBASE_METHODS = {
|
|
9
8
|
REQUEST_ACCOUNTS: 'eth_requestAccounts',
|
|
@@ -17,10 +16,6 @@ export const COINBASE_METHODS = {
|
|
|
17
16
|
WATCH_ASSET: 'wallet_watchAsset'
|
|
18
17
|
} as const;
|
|
19
18
|
|
|
20
|
-
export function isValidMethod(method: string): method is CoinbaseMethod {
|
|
21
|
-
return Object.values(COINBASE_METHODS).includes(method as CoinbaseMethod);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
19
|
export function getCoinbaseNamespace(
|
|
25
20
|
namespaces?: ProposalNamespaces,
|
|
26
21
|
accounts?: string[]
|