@broxus/evm-connect 1.0.0

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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +182 -0
  3. package/dist/cjs/components/EvmConnectButton/index.d.ts +21 -0
  4. package/dist/cjs/components/EvmConnectButton/index.js +52 -0
  5. package/dist/cjs/components/EvmConnectDialog/index.css +130 -0
  6. package/dist/cjs/components/EvmConnectDialog/index.d.ts +11 -0
  7. package/dist/cjs/components/EvmConnectDialog/index.js +65 -0
  8. package/dist/cjs/components/EvmConnector/index.css +37 -0
  9. package/dist/cjs/components/EvmConnector/index.d.ts +20 -0
  10. package/dist/cjs/components/EvmConnector/index.js +97 -0
  11. package/dist/cjs/components/EvmProvidersDispatcher/ConnectionRequest/index.css +43 -0
  12. package/dist/cjs/components/EvmProvidersDispatcher/ConnectionRequest/index.d.ts +3 -0
  13. package/dist/cjs/components/EvmProvidersDispatcher/ConnectionRequest/index.js +65 -0
  14. package/dist/cjs/components/EvmProvidersDispatcher/ProviderButton/index.css +54 -0
  15. package/dist/cjs/components/EvmProvidersDispatcher/ProviderButton/index.d.ts +11 -0
  16. package/dist/cjs/components/EvmProvidersDispatcher/ProviderButton/index.js +93 -0
  17. package/dist/cjs/components/EvmProvidersDispatcher/index.css +13 -0
  18. package/dist/cjs/components/EvmProvidersDispatcher/index.d.ts +5 -0
  19. package/dist/cjs/components/EvmProvidersDispatcher/index.js +49 -0
  20. package/dist/cjs/components/index.d.ts +4 -0
  21. package/dist/cjs/components/index.js +20 -0
  22. package/dist/cjs/constants.d.ts +1 -0
  23. package/dist/cjs/constants.js +4 -0
  24. package/dist/cjs/context/EvmWalletProvidersContext.d.ts +20 -0
  25. package/dist/cjs/context/EvmWalletProvidersContext.js +95 -0
  26. package/dist/cjs/context/EvmWalletServiceContext.d.ts +10 -0
  27. package/dist/cjs/context/EvmWalletServiceContext.js +55 -0
  28. package/dist/cjs/context/index.d.ts +2 -0
  29. package/dist/cjs/context/index.js +18 -0
  30. package/dist/cjs/core/EIP6963Connector.d.ts +17 -0
  31. package/dist/cjs/core/EIP6963Connector.js +127 -0
  32. package/dist/cjs/core/EthereumConnector.d.ts +43 -0
  33. package/dist/cjs/core/EthereumConnector.js +190 -0
  34. package/dist/cjs/core/MetaMask.d.ts +24 -0
  35. package/dist/cjs/core/MetaMask.js +159 -0
  36. package/dist/cjs/core/WalletConnect.d.ts +20 -0
  37. package/dist/cjs/core/WalletConnect.js +141 -0
  38. package/dist/cjs/core/index.d.ts +4 -0
  39. package/dist/cjs/core/index.js +20 -0
  40. package/dist/cjs/hooks/index.d.ts +4 -0
  41. package/dist/cjs/hooks/index.js +20 -0
  42. package/dist/cjs/hooks/useEIP6963Connections.d.ts +6 -0
  43. package/dist/cjs/hooks/useEIP6963Connections.js +47 -0
  44. package/dist/cjs/hooks/useFilteredConnections.d.ts +2 -0
  45. package/dist/cjs/hooks/useFilteredConnections.js +7 -0
  46. package/dist/cjs/hooks/useOrderedConnections.d.ts +2 -0
  47. package/dist/cjs/hooks/useOrderedConnections.js +41 -0
  48. package/dist/cjs/hooks/useRecentConnectionMeta.d.ts +15 -0
  49. package/dist/cjs/hooks/useRecentConnectionMeta.js +80 -0
  50. package/dist/cjs/index.d.ts +8 -0
  51. package/dist/cjs/index.js +24 -0
  52. package/dist/cjs/intl/index.d.ts +107 -0
  53. package/dist/cjs/intl/index.js +110 -0
  54. package/dist/cjs/services/EvmWalletService.d.ts +165 -0
  55. package/dist/cjs/services/EvmWalletService.js +430 -0
  56. package/dist/cjs/services/index.d.ts +1 -0
  57. package/dist/cjs/services/index.js +17 -0
  58. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  59. package/dist/cjs/types.d.ts +47 -0
  60. package/dist/cjs/types.js +15 -0
  61. package/dist/cjs/utils/get-evm-provider-platform-link.d.ts +2 -0
  62. package/dist/cjs/utils/get-evm-provider-platform-link.js +14 -0
  63. package/dist/cjs/utils/index.d.ts +2 -0
  64. package/dist/cjs/utils/index.js +18 -0
  65. package/dist/cjs/utils/parse-chain-id.d.ts +1 -0
  66. package/dist/cjs/utils/parse-chain-id.js +7 -0
  67. package/dist/esm/components/EvmConnectButton/index.d.ts +21 -0
  68. package/dist/esm/components/EvmConnectButton/index.js +26 -0
  69. package/dist/esm/components/EvmConnectDialog/index.css +130 -0
  70. package/dist/esm/components/EvmConnectDialog/index.d.ts +11 -0
  71. package/dist/esm/components/EvmConnectDialog/index.js +36 -0
  72. package/dist/esm/components/EvmConnector/index.css +37 -0
  73. package/dist/esm/components/EvmConnector/index.d.ts +20 -0
  74. package/dist/esm/components/EvmConnector/index.js +68 -0
  75. package/dist/esm/components/EvmProvidersDispatcher/ConnectionRequest/index.css +43 -0
  76. package/dist/esm/components/EvmProvidersDispatcher/ConnectionRequest/index.d.ts +3 -0
  77. package/dist/esm/components/EvmProvidersDispatcher/ConnectionRequest/index.js +35 -0
  78. package/dist/esm/components/EvmProvidersDispatcher/ProviderButton/index.css +54 -0
  79. package/dist/esm/components/EvmProvidersDispatcher/ProviderButton/index.d.ts +11 -0
  80. package/dist/esm/components/EvmProvidersDispatcher/ProviderButton/index.js +64 -0
  81. package/dist/esm/components/EvmProvidersDispatcher/index.css +13 -0
  82. package/dist/esm/components/EvmProvidersDispatcher/index.d.ts +5 -0
  83. package/dist/esm/components/EvmProvidersDispatcher/index.js +23 -0
  84. package/dist/esm/components/index.d.ts +4 -0
  85. package/dist/esm/components/index.js +4 -0
  86. package/dist/esm/constants.d.ts +1 -0
  87. package/dist/esm/constants.js +1 -0
  88. package/dist/esm/context/EvmWalletProvidersContext.d.ts +20 -0
  89. package/dist/esm/context/EvmWalletProvidersContext.js +68 -0
  90. package/dist/esm/context/EvmWalletServiceContext.d.ts +10 -0
  91. package/dist/esm/context/EvmWalletServiceContext.js +28 -0
  92. package/dist/esm/context/index.d.ts +2 -0
  93. package/dist/esm/context/index.js +2 -0
  94. package/dist/esm/core/EIP6963Connector.d.ts +17 -0
  95. package/dist/esm/core/EIP6963Connector.js +123 -0
  96. package/dist/esm/core/EthereumConnector.d.ts +43 -0
  97. package/dist/esm/core/EthereumConnector.js +186 -0
  98. package/dist/esm/core/MetaMask.d.ts +24 -0
  99. package/dist/esm/core/MetaMask.js +152 -0
  100. package/dist/esm/core/WalletConnect.d.ts +20 -0
  101. package/dist/esm/core/WalletConnect.js +134 -0
  102. package/dist/esm/core/index.d.ts +4 -0
  103. package/dist/esm/core/index.js +4 -0
  104. package/dist/esm/hooks/index.d.ts +4 -0
  105. package/dist/esm/hooks/index.js +4 -0
  106. package/dist/esm/hooks/useEIP6963Connections.d.ts +6 -0
  107. package/dist/esm/hooks/useEIP6963Connections.js +20 -0
  108. package/dist/esm/hooks/useFilteredConnections.d.ts +2 -0
  109. package/dist/esm/hooks/useFilteredConnections.js +3 -0
  110. package/dist/esm/hooks/useOrderedConnections.d.ts +2 -0
  111. package/dist/esm/hooks/useOrderedConnections.js +14 -0
  112. package/dist/esm/hooks/useRecentConnectionMeta.d.ts +15 -0
  113. package/dist/esm/hooks/useRecentConnectionMeta.js +51 -0
  114. package/dist/esm/index.d.ts +8 -0
  115. package/dist/esm/index.js +8 -0
  116. package/dist/esm/intl/index.d.ts +107 -0
  117. package/dist/esm/intl/index.js +108 -0
  118. package/dist/esm/services/EvmWalletService.d.ts +165 -0
  119. package/dist/esm/services/EvmWalletService.js +423 -0
  120. package/dist/esm/services/index.d.ts +1 -0
  121. package/dist/esm/services/index.js +1 -0
  122. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  123. package/dist/esm/types.d.ts +47 -0
  124. package/dist/esm/types.js +12 -0
  125. package/dist/esm/utils/get-evm-provider-platform-link.d.ts +2 -0
  126. package/dist/esm/utils/get-evm-provider-platform-link.js +10 -0
  127. package/dist/esm/utils/index.d.ts +2 -0
  128. package/dist/esm/utils/index.js +2 -0
  129. package/dist/esm/utils/parse-chain-id.d.ts +1 -0
  130. package/dist/esm/utils/parse-chain-id.js +3 -0
  131. package/package.json +82 -0
@@ -0,0 +1,47 @@
1
+ import { type EIP1193Provider, type MetaMaskProvider, type Web3APISpec, type Web3BaseProvider, type Web3EthExecutionAPI } from 'web3-types';
2
+ import { type EthereumConnector } from './core';
3
+ export type SupportedProviders<API extends Web3APISpec = Web3EthExecutionAPI> = EIP1193Provider<API> | Web3BaseProvider<API> | MetaMaskProvider<API>;
4
+ export declare enum ConnectionType {
5
+ INJECTED = "INJECTED",
6
+ COINBASE_WALLET = "COINBASE_WALLET",
7
+ WALLET_CONNECT_V2 = "WALLET_CONNECT_V2",
8
+ EIP_6963_INJECTED = "EIP_6963_INJECTED"
9
+ }
10
+ export declare enum EIP6963Event {
11
+ REQUEST_PROVIDER = "eip6963:requestProvider",
12
+ ANNOUNCE_PROVIDER = "eip6963:announceProvider"
13
+ }
14
+ export interface WatchAssetParameters {
15
+ address: string;
16
+ decimals: number;
17
+ image?: string;
18
+ symbol: string;
19
+ }
20
+ export interface AddEthereumChainParams {
21
+ blockExplorerUrls?: string[];
22
+ chainId: number;
23
+ chainName: string;
24
+ iconUrls?: string[];
25
+ nativeCurrency: {
26
+ decimals: 18;
27
+ name: string;
28
+ symbol: string;
29
+ };
30
+ rpcUrls: string[];
31
+ }
32
+ export type EvmProviderAvailablePlatforms = 'ios' | 'android' | 'chromeExtension' | 'firefoxExtension';
33
+ export type EvmProviderPlatformLinks = Partial<Record<EvmProviderAvailablePlatforms, string>>;
34
+ export interface EvmWalletProviderConfig {
35
+ connector: EthereumConnector;
36
+ id: string;
37
+ info: {
38
+ description?: string;
39
+ icon?: string;
40
+ links?: EvmProviderPlatformLinks & {
41
+ homepage?: string;
42
+ };
43
+ name: string;
44
+ rdns?: string;
45
+ };
46
+ isRecent?: boolean;
47
+ }
@@ -0,0 +1,12 @@
1
+ export var ConnectionType;
2
+ (function (ConnectionType) {
3
+ ConnectionType["INJECTED"] = "INJECTED";
4
+ ConnectionType["COINBASE_WALLET"] = "COINBASE_WALLET";
5
+ ConnectionType["WALLET_CONNECT_V2"] = "WALLET_CONNECT_V2";
6
+ ConnectionType["EIP_6963_INJECTED"] = "EIP_6963_INJECTED";
7
+ })(ConnectionType || (ConnectionType = {}));
8
+ export var EIP6963Event;
9
+ (function (EIP6963Event) {
10
+ EIP6963Event["REQUEST_PROVIDER"] = "eip6963:requestProvider";
11
+ EIP6963Event["ANNOUNCE_PROVIDER"] = "eip6963:announceProvider";
12
+ })(EIP6963Event || (EIP6963Event = {}));
@@ -0,0 +1,2 @@
1
+ import { type EvmProviderAvailablePlatforms, type EvmProviderPlatformLinks } from '../types';
2
+ export declare function getEvmProviderPlatformLink(links: EvmProviderPlatformLinks): [EvmProviderAvailablePlatforms, string | undefined] | undefined;
@@ -0,0 +1,10 @@
1
+ import { isAndroid, isBrowser, isChrome, isFirefox, isIos, isMobile } from '@broxus/js-utils';
2
+ export function getEvmProviderPlatformLink(links) {
3
+ const [platform] = Array.from(new Map([
4
+ ['android', isMobile(navigator.userAgent) && isAndroid(navigator.userAgent)],
5
+ ['ios', isMobile(navigator.userAgent) && isIos(navigator.userAgent)],
6
+ ['chromeExtension', isBrowser() && isChrome(navigator.userAgent)],
7
+ ['firefoxExtension', isBrowser() && isFirefox(navigator.userAgent)],
8
+ ])).find(([, enabled]) => enabled) ?? [];
9
+ return platform ? [platform, links[platform]] : undefined;
10
+ }
@@ -0,0 +1,2 @@
1
+ export * from '../utils/get-evm-provider-platform-link';
2
+ export * from '../utils/parse-chain-id';
@@ -0,0 +1,2 @@
1
+ export * from '../utils/get-evm-provider-platform-link';
2
+ export * from '../utils/parse-chain-id';
@@ -0,0 +1 @@
1
+ export declare function parseChainId(chainId: string | number): number;
@@ -0,0 +1,3 @@
1
+ export function parseChainId(chainId) {
2
+ return typeof chainId === 'string' ? Number.parseInt(chainId, 16) : chainId;
3
+ }
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "@broxus/evm-connect",
3
+ "version": "1.0.0",
4
+ "description": "Ethereum wallets connector.",
5
+ "license": "MIT",
6
+ "keywords": [
7
+ "blockchain",
8
+ "evm",
9
+ "connect",
10
+ "web3"
11
+ ],
12
+ "maintainers": [
13
+ {
14
+ "name": "Denis Klimov",
15
+ "url": "https://github.com/JeremiahGeronimo"
16
+ }
17
+ ],
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "import": "./dist/esm/index.js",
24
+ "require": "./dist/cjs/index.js"
25
+ },
26
+ "./package.json": "./package.json"
27
+ },
28
+ "files": [
29
+ "dist",
30
+ "LICENSE",
31
+ "README.md"
32
+ ],
33
+ "main": "./dist/cjs/index.js",
34
+ "module": "./dist/esm/index.js",
35
+ "types": "./dist/esm/index.d.ts",
36
+ "sideEffects": [
37
+ "*.css"
38
+ ],
39
+ "engines": {
40
+ "node": ">=16",
41
+ "npm": ">=8"
42
+ },
43
+ "scripts": {
44
+ "build": "npx yarn build:js && npx yarn styles:copy",
45
+ "build:js": "npx yarn build:cjs & npx yarn build:esm",
46
+ "build:cjs": "tsc -p tsconfig.cjs.json && tsc-alias -p tsconfig.cjs.json",
47
+ "build:esm": "tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json",
48
+ "styles:copy": "npx yarn styles:cjs:copy & npx yarn styles:esm:copy",
49
+ "styles:cjs:copy": "npx copyfiles \"src/**/*.css\" -u 1 dist/cjs",
50
+ "styles:esm:copy": "npx copyfiles \"src/**/*.css\" -u 1 dist/esm",
51
+ "watch:js": "npx chokidar \"src/**/*.{ts,tsx}\" -c \"npx yarn build:esm\"",
52
+ "watch:styles": "npx chokidar \"src/**/*.css\" -c \"npx yarn styles:esm:copy\"",
53
+ "dev": "npx yarn watch:js & npx yarn watch:styles",
54
+ "lint": "npx eslint src --ext .ts,.tsx",
55
+ "lint:fix": "npx eslint src --ext .ts,.tsx --fix",
56
+ "cleanup": "npx rimraf dist",
57
+ "prepare": "npx yarn cleanup && npx yarn build"
58
+ },
59
+ "dependencies": {
60
+ "@broxus/js-bridge-essentials": "^0.5.0",
61
+ "@broxus/js-core": "^0.13.0",
62
+ "@broxus/js-utils": "^1.3.6",
63
+ "@broxus/react-components": "^0.17.0",
64
+ "@broxus/react-uikit": "^0.11.0",
65
+ "@metamask/detect-provider": "^2.0.0",
66
+ "@walletconnect/ethereum-provider": "^2.12.1",
67
+ "classnames": "^2.5.1"
68
+ },
69
+ "peerDependencies": {
70
+ "mobx": "^6.x",
71
+ "mobx-react-lite": "^3.4.x || ^4.x",
72
+ "react": "^16.8.0 || ^17.x || ^18.x",
73
+ "react-intl": "^6.x",
74
+ "web3": "^4.x",
75
+ "web3-core": "^4.x",
76
+ "web3-eth": "^4.x",
77
+ "web3-eth-contract": "^4.x",
78
+ "web3-types": "^1.x",
79
+ "web3-utils": "^4.x"
80
+ },
81
+ "gitHead": "27e7a7602ee608f65839276c7cd56bed6ffcd205"
82
+ }