@dodoex/wallet-web3 0.0.2

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 (84) hide show
  1. package/LICENSE +674 -0
  2. package/dist/cjs/contract/erc20ABI.d.ts +30 -0
  3. package/dist/cjs/contract/index.d.ts +31 -0
  4. package/dist/cjs/controllers/ConnectController.d.ts +20 -0
  5. package/dist/cjs/controllers/StateController.d.ts +27 -0
  6. package/dist/cjs/core/index.d.ts +26 -0
  7. package/dist/cjs/gnosis-3e6e25d7.cjs +1 -0
  8. package/dist/cjs/helpers/address.d.ts +6 -0
  9. package/dist/cjs/helpers/devices.d.ts +5 -0
  10. package/dist/cjs/helpers/providers.d.ts +2 -0
  11. package/dist/cjs/helpers/transactions.d.ts +8 -0
  12. package/dist/cjs/index-12ff553b.cjs +1 -0
  13. package/dist/cjs/index-4aeb1de9.cjs +1 -0
  14. package/dist/cjs/index.cjs +1 -0
  15. package/dist/cjs/index.d.ts +4 -0
  16. package/dist/cjs/portis-e1a421c1.cjs +1 -0
  17. package/dist/cjs/provider-1b577b6f.cjs +1 -0
  18. package/dist/cjs/providers/connector/gnosis.d.ts +5 -0
  19. package/dist/cjs/providers/connector/index.d.ts +13 -0
  20. package/dist/cjs/providers/connector/injected.d.ts +30 -0
  21. package/dist/cjs/providers/connector/ledgerUSB/account.d.ts +5 -0
  22. package/dist/cjs/providers/connector/ledgerUSB/connect.d.ts +3 -0
  23. package/dist/cjs/providers/connector/ledgerUSB/constants.d.ts +4 -0
  24. package/dist/cjs/providers/connector/ledgerUSB/index.d.ts +8 -0
  25. package/dist/cjs/providers/connector/ledgerUSB/provider.d.ts +2 -0
  26. package/dist/cjs/providers/connector/openBlockIframe/index.d.ts +5 -0
  27. package/dist/cjs/providers/connector/openBlockIframe/provider.d.ts +1 -0
  28. package/dist/cjs/providers/connector/portis.d.ts +3 -0
  29. package/dist/cjs/providers/connector/types.d.ts +36 -0
  30. package/dist/cjs/providers/connector/uAuth.d.ts +4 -0
  31. package/dist/cjs/providers/connector/walletConnect.d.ts +3 -0
  32. package/dist/cjs/providers/connector/walletLink.d.ts +8 -0
  33. package/dist/cjs/providers/index.d.ts +2 -0
  34. package/dist/cjs/providers/wallets/index.d.ts +77 -0
  35. package/dist/cjs/providers/wallets/injected.d.ts +10 -0
  36. package/dist/cjs/providers/wallets/metamask.d.ts +3 -0
  37. package/dist/cjs/providers/wallets/standalone.d.ts +15 -0
  38. package/dist/cjs/providers/wallets/types.d.ts +76 -0
  39. package/dist/cjs/state.d.ts +16 -0
  40. package/dist/cjs/uAuth-55ce2d04.cjs +1 -0
  41. package/dist/cjs/walletConnect-7ab780eb.cjs +1 -0
  42. package/dist/cjs/walletLink-a5996dc3.cjs +1 -0
  43. package/dist/contract/erc20ABI.d.ts +30 -0
  44. package/dist/contract/index.d.ts +31 -0
  45. package/dist/controllers/ConnectController.d.ts +20 -0
  46. package/dist/controllers/StateController.d.ts +27 -0
  47. package/dist/core/index.d.ts +26 -0
  48. package/dist/gnosis-d88df111.js +1 -0
  49. package/dist/helpers/address.d.ts +6 -0
  50. package/dist/helpers/devices.d.ts +5 -0
  51. package/dist/helpers/providers.d.ts +2 -0
  52. package/dist/helpers/transactions.d.ts +8 -0
  53. package/dist/index-9b8e573c.js +1 -0
  54. package/dist/index-f454dd19.js +1 -0
  55. package/dist/index.d.ts +4 -0
  56. package/dist/index.js +1 -0
  57. package/dist/portis-c6877d71.js +1 -0
  58. package/dist/provider-cca10738.js +1 -0
  59. package/dist/providers/connector/gnosis.d.ts +5 -0
  60. package/dist/providers/connector/index.d.ts +13 -0
  61. package/dist/providers/connector/injected.d.ts +30 -0
  62. package/dist/providers/connector/ledgerUSB/account.d.ts +5 -0
  63. package/dist/providers/connector/ledgerUSB/connect.d.ts +3 -0
  64. package/dist/providers/connector/ledgerUSB/constants.d.ts +4 -0
  65. package/dist/providers/connector/ledgerUSB/index.d.ts +8 -0
  66. package/dist/providers/connector/ledgerUSB/provider.d.ts +2 -0
  67. package/dist/providers/connector/openBlockIframe/index.d.ts +5 -0
  68. package/dist/providers/connector/openBlockIframe/provider.d.ts +1 -0
  69. package/dist/providers/connector/portis.d.ts +3 -0
  70. package/dist/providers/connector/types.d.ts +36 -0
  71. package/dist/providers/connector/uAuth.d.ts +4 -0
  72. package/dist/providers/connector/walletConnect.d.ts +3 -0
  73. package/dist/providers/connector/walletLink.d.ts +8 -0
  74. package/dist/providers/index.d.ts +2 -0
  75. package/dist/providers/wallets/index.d.ts +77 -0
  76. package/dist/providers/wallets/injected.d.ts +10 -0
  77. package/dist/providers/wallets/metamask.d.ts +3 -0
  78. package/dist/providers/wallets/standalone.d.ts +15 -0
  79. package/dist/providers/wallets/types.d.ts +76 -0
  80. package/dist/state.d.ts +16 -0
  81. package/dist/uAuth-b3067412.js +1 -0
  82. package/dist/walletConnect-000ae191.js +1 -0
  83. package/dist/walletLink-044d38dd.js +1 -0
  84. package/package.json +69 -0
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export{H as HD_PATH_LIST,O as OpenBlockIframeWallet,W as WalletType,y as WatchResult,g as allWalletList,F as approve,C as default,D as getContract,z as getEstimateGas,A as getGasPrice,o as getGnosisPackage,x as getIsOpenBlockIframe,j as getIsolatedEnvironmentWallet,n as getLedgerUSBPackage,v as getOpenBlockIframeConnector,q as getPortisConnector,E as getProviderByChain,p as getUAuthPackage,t as getWalletConnectConnector,k as getWalletDisabledStateFunction,r as getWalletLinkConnector,h as getWalletList,i as injectedConnect,f as injectedList,l as injectedListObject,u as registerNetworkWithMetamask,B as sendTransaction,s as standaloneList,m as standaloneListObject,w as walletState,G as watchTx}from"./index-9b8e573c.js";import"@ethersproject/providers";import"@ethersproject/constants";import"@ethersproject/contracts";import"@ethersproject/address";import"valtio";import"valtio/utils";
@@ -0,0 +1 @@
1
+ import{_ as r,a as e,d as o}from"./index-9b8e573c.js";import t from"@portis/web3";import"@ethersproject/providers";import"@ethersproject/constants";import"@ethersproject/contracts";import"@ethersproject/address";import"valtio";import"valtio/utils";function i(i,n){var s=i.chainId,a=i.portisParams;return r(this,void 0,void 0,(function(){var r,i;return e(this,(function(e){switch(e.label){case 0:if(!(null==a?void 0:a.id))throw new Error("uAuthParams is not valid.");switch(r="",s){case 1:default:r="mainnet";break;case 5:r="goerli"}return[4,(i=new t(a.id,r,a.config)).provider.enable()];case 1:return e.sent(),i.provider._portis=i,i.provider.on("connect",n.connect),i.provider.on("disconnect",n.disconnect),i.provider.on("accountsChanged",n.accountsChanged),i.provider.on("chainChanged",n.chainChanged),i.provider.on("message",n.message),[2,o(i.provider)]}}))}))}export{i as default};
@@ -0,0 +1 @@
1
+ import{e as t,_ as e,a as n,b as i,c as o}from"./index-9b8e573c.js";import"@ethersproject/providers";import"@ethersproject/constants";import"@ethersproject/contracts";import"@ethersproject/address";import"valtio";import"valtio/utils";var r="dapp-inpage-integration",s="openblock-content-integration",a=["https://cocoswap.com","https://app.openocean.finance"],d=["https://oec.cocoswap.com"],u=function(){function u(){console.log("start initialize openblockinpage provider"),this.callBackList={},this.eventListener={},this.isMetaMask=!0,this.isOpenBlock=!0,this.chainId=null,this.networkVersion=null,this.selectedAddress=null,this.request=this.request.bind(this),this.send=this.send.bind(this),this.sendAsync=this.sendAsync.bind(this),this.on=this.on.bind(this),this.isConnected=this.isConnected.bind(this),this.enable=this.enable.bind(this),this._metamask=this._getExperimentalApi(),this._initInpageListener(),this.getProviderData()}return u.prototype.getProviderData=function(){var t;return e(this,void 0,void 0,(function(){var e;return n(this,(function(n){switch(n.label){case 0:return[4,this.request("metamask_getProviderState")];case 1:return e=n.sent(),this.chainId=null==e?void 0:e.chainId,this.networkVersion=null==e?void 0:e.networkVersion,this.selectedAddress=null===(t=null==e?void 0:e.accounts)||void 0===t?void 0:t[0],[2]}}))}))},u.prototype.request=function(t){return e(this,void 0,void 0,(function(){var e;return n(this,(function(n){switch(n.label){case 0:return"eth_requestAccounts"!==t.method?[3,2]:[4,this._hookRequest("eth_accounts")];case 1:if((e=n.sent()).length)return[2,new Promise((function(t){return t(e)}))];n.label=2;case 2:return[2,this._hookRequest(t)]}}))}))},u.prototype.send=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e(this,void 0,void 0,(function(){return n(this,(function(e){return"function"==typeof t[1]?(this.sendAsync(t[0],t[1]),[2]):"string"==typeof t[0]?[2,this.request({method:t[0],params:t[1]})]:1===t.length?[2,this.request(t)]:[2]}))}))},u.prototype.sendAsync=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e(this,void 0,void 0,(function(){var e,i;return n(this,(function(n){return e={method:t[0].method,params:t[0].params},i=t[0].id,this.request(e).then((function(e){t[1](null,{id:i,jsonrpc:"2.0",result:e})})).catch((function(e){t[1](null,{id:i,jsonrpc:"2.0",error:e})})),[2]}))}))},u.prototype.isConnected=function(){return!0},u.prototype.enable=function(){return e(this,void 0,void 0,(function(){var t;return n(this,(function(e){switch(e.label){case 0:return[4,this._hookRequest("eth_accounts")];case 1:return(t=e.sent()).length?[2,new Promise((function(e){return e(t)}))]:[2,this.request({method:"eth_requestAccounts"})]}}))}))},u.prototype.on=function(e,n){var i;"string"==typeof e&&"function"==typeof n&&(this.eventListener[e]&&this.eventListener[e].length>5||(this.eventListener[e]?(this.eventListener[e].push(n),this.eventListener[e]=Array.from(new Set(this.eventListener[e]))):this.eventListener[e]||(this.eventListener=t(t({},this.eventListener),((i={})[e]=[n],i))),this._registerEvent(e)))},u.prototype.removeListener=function(){},u.prototype._initInpageListener=function(){var t=this;window.addEventListener("message",(function(e){var n,i,o;if(e.data.target===r){var s=null===(o=null===(i=null===(n=e.data)||void 0===n?void 0:n.value)||void 0===i?void 0:i.data)||void 0===o?void 0:o.mark;s&&("call_method"===s.type?t._handleNormalMethod(s,e):"register_event"===s.type&&t._handleEventMethod(s,e))}}),!1)},u.prototype._handleNormalMethod=function(t,e){var n,i,o,r,s;(null===(n=e.data.value.data)||void 0===n?void 0:n.error)?null===(i=this.callBackList[t.id])||void 0===i||i.reject(null===(o=e.data.value.data)||void 0===o?void 0:o.error):null===(r=this.callBackList[t.id])||void 0===r||r.resolve(null===(s=e.data.value.data)||void 0===s?void 0:s.result),delete this.callBackList[t.id]},u.prototype._handleEventMethod=function(t,e){var n,i,o,r,s,u,c,l=this,h=null===(r=null===(o=null===(i=null===(n=e.data)||void 0===n?void 0:n.value)||void 0===i?void 0:i.data)||void 0===o?void 0:o.mark)||void 0===r?void 0:r.eventName,v=null===(c=null===(u=null===(s=e.data)||void 0===s?void 0:s.value)||void 0===u?void 0:u.data)||void 0===c?void 0:c.params;if(h){var p=this.eventListener[h];if(!p)return void("https://app.openocean.finance"===window.location.origin&&window.location.reload());p.forEach((function(t){"chainChanged"===h&&(l.chainId=v,l.networkVersion=Number(v)),d.includes(window.location.origin)&&"chainChanged"===h||(a.includes(window.location.origin)?window.location.reload():t(v))}))}},u.prototype._hookRequest=function(e){var n=this;return new Promise((function(i,o){var a=function(){function t(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return t()+t()+t()+t()+t()+t()+t()+t()}();"string"==typeof e&&(e={method:e}),e=t(t({},e),{mark:{id:a,method:e.method,type:"call_method"}}),window.parent.postMessage({from:r,target:s,data:e},"*"),n.callBackList[a]={resolve:i,reject:o}}))},u.prototype._registerEvent=function(t){var e={mark:{eventName:t,type:"register_event"},eventName:t};window.parent.postMessage({from:r,target:s,data:e},"*")},u.prototype._getExperimentalApi=function(){return new Proxy({isUnlocked:function(){return new Promise((function(t){return t(!0)}))}},{get:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return Reflect.get.apply(Reflect,i([t,e],o(n),!1))}})},u}();function c(){var e;if(null===(e=window.obethereum)||void 0===e?void 0:e.isOpenBlock)return window.obethereum;var n=new u;n=new Proxy(n,{deleteProperty:function(){return!0}});try{Object.defineProperty(window,"obethereum",{set:function(t){console.log("set ethereum",t)},get:function(){return n}})}catch(t){console.log("initializeProvider error",t),window.obethereum=n}return window.web3=t({},window.web3),window.web3.currentProvider=n,window.dispatchEvent(new Event("ethereum#initialized")),n}export{c as default};
@@ -0,0 +1,5 @@
1
+ import { SafeInfo } from '@safe-global/safe-apps-sdk';
2
+ import { ConnectEvents } from '../wallets/types';
3
+ export declare function getConnectedSafe(): Promise<SafeInfo | undefined>;
4
+ export declare function getIsSafe(): Promise<boolean>;
5
+ export default function connector(events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
@@ -0,0 +1,13 @@
1
+ import { ConnectEvents } from '../wallets/types';
2
+ import { ConnectorParams } from './types';
3
+ export type { ConnectorParams } from './types';
4
+ export type { WalletLinkConnectorParams } from './walletLink';
5
+ export { injectedConnect, registerNetworkWithMetamask } from './injected';
6
+ export { HD_PATH_LIST } from './ledgerUSB/constants';
7
+ export declare function getLedgerUSBPackage(): Promise<typeof import("./ledgerUSB")>;
8
+ export declare function getGnosisPackage(): Promise<typeof import("./gnosis")>;
9
+ export declare function getUAuthPackage(): Promise<typeof import("./uAuth")>;
10
+ export declare function getPortisConnector(params: ConnectorParams, events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
11
+ export declare function getWalletLinkConnector(params: ConnectorParams, events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
12
+ export declare function getWalletConnectConnector(params: ConnectorParams, events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
13
+ export { default as getOpenBlockIframeConnector, getIsOpenBlockIframe, } from './openBlockIframe';
@@ -0,0 +1,30 @@
1
+ import { ConnectEvents } from '../wallets/types';
2
+ export declare function injectedConnect(providerProps: any, events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
3
+ interface AddChainParameter {
4
+ chainId: string;
5
+ chainName: string;
6
+ nativeCurrency: {
7
+ name: string;
8
+ symbol: string;
9
+ decimals: 18;
10
+ };
11
+ rpcUrls: string[];
12
+ blockExplorerUrls?: string[];
13
+ iconUrls?: string[];
14
+ }
15
+ interface AddEthereumChainParameter {
16
+ chainId: '0x1' | '0x4' | '0x5' | '0x45' | '0x1c' | '0x61';
17
+ }
18
+ export interface RegisterNetworkWithMetamaskParams {
19
+ addChainParameters: AddChainParameter | AddEthereumChainParameter;
20
+ provider?: any;
21
+ }
22
+ /**
23
+ * switch wallet chain
24
+ * @see https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain
25
+ */
26
+ export declare function registerNetworkWithMetamask({ addChainParameters, provider, }: RegisterNetworkWithMetamaskParams): Promise<{
27
+ result: boolean;
28
+ failMsg?: string;
29
+ }>;
30
+ export {};
@@ -0,0 +1,5 @@
1
+ export interface HDAccountItem {
2
+ path: string;
3
+ account: string;
4
+ }
5
+ export declare const getAccountList: (pathRule: string, page?: number, pageSize?: number) => Promise<HDAccountItem[]>;
@@ -0,0 +1,3 @@
1
+ import TransportWebUSB from '@ledgerhq/hw-transport-webhid';
2
+ export type { default as Transport } from '@ledgerhq/hw-transport-webhid';
3
+ export declare const getTransport: () => Promise<TransportWebUSB>;
@@ -0,0 +1,4 @@
1
+ export declare const HD_PATH_LIST: {
2
+ path: string;
3
+ name: string;
4
+ }[];
@@ -0,0 +1,8 @@
1
+ import { ConnectorParams } from '../types';
2
+ export { HD_PATH_LIST } from './constants';
3
+ export { getAccountList } from './account';
4
+ export type { HDAccountItem } from './account';
5
+ export { getTransport } from './connect';
6
+ export type { Transport } from './connect';
7
+ export { createLedgerUSBProvider as createProvider } from './provider';
8
+ export default function connector(params: ConnectorParams): Promise<import("@ethersproject/providers").JsonRpcProvider>;
@@ -0,0 +1,2 @@
1
+ import { ConnectorParams } from '../types';
2
+ export declare function createLedgerUSBProvider({ chainId, rpcUrl, fetchGasPrice, ledgerParams, }: ConnectorParams): Promise<import("@ethersproject/providers").JsonRpcProvider>;
@@ -0,0 +1,5 @@
1
+ import { ConnectEvents } from '../../wallets/types';
2
+ import { ConnectorParams } from '../types';
3
+ export declare const getIsOpenBlockIframe: () => Promise<boolean>;
4
+ declare const connectOpenBlockIframe: (_: ConnectorParams, events: ConnectEvents) => Promise<import("@ethersproject/providers").JsonRpcProvider>;
5
+ export default connectOpenBlockIframe;
@@ -0,0 +1 @@
1
+ export default function initializeProvider(): any;
@@ -0,0 +1,3 @@
1
+ import { ConnectEvents } from '../wallets/types';
2
+ import { ConnectorParams } from './types';
3
+ export default function connector({ chainId, portisParams }: ConnectorParams, events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
@@ -0,0 +1,36 @@
1
+ import type { JsonRpcProvider } from '@ethersproject/providers';
2
+ import type { IOptions as PortisConfig } from '@portis/web3';
3
+ import type { IQRCodeModalOptions } from '@walletconnect/types';
4
+ import { FetchGasPrice } from '../../helpers/transactions';
5
+ export type ConnectorParams = {
6
+ chainId?: number;
7
+ rpcUrl?: string;
8
+ appName?: string;
9
+ appLogoUrl?: string;
10
+ darkMode?: boolean;
11
+ fetchGasPrice?: FetchGasPrice;
12
+ portisParams?: {
13
+ id: string;
14
+ config?: PortisConfig;
15
+ };
16
+ uAuthParams?: {
17
+ clientID: string;
18
+ redirectUri?: string;
19
+ shouldLoginWithRedirect?: boolean;
20
+ walletConnect?: () => Promise<JsonRpcProvider | undefined>;
21
+ };
22
+ walletConnectParams?: {
23
+ bridge?: string;
24
+ qrcode?: boolean;
25
+ infuraId?: string;
26
+ qrcodeModal?: {
27
+ open: (uri: string, cb: any, qrcodeModalOptions?: IQRCodeModalOptions | undefined) => void;
28
+ close: () => void;
29
+ };
30
+ qrcodeModalOptions?: IQRCodeModalOptions;
31
+ };
32
+ ledgerParams?: {
33
+ path: string;
34
+ account: string;
35
+ };
36
+ };
@@ -0,0 +1,4 @@
1
+ import { ConnectEvents } from '../wallets/types';
2
+ import { ConnectorParams } from './types';
3
+ export default function connector(connectorParams: ConnectorParams, events: ConnectEvents): Promise<any>;
4
+ export declare function disconnectWallet(): Promise<void> | undefined;
@@ -0,0 +1,3 @@
1
+ import { ConnectEvents } from '../wallets/types';
2
+ import { ConnectorParams } from './types';
3
+ export default function connector({ chainId, rpcUrl, walletConnectParams }: ConnectorParams, events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
@@ -0,0 +1,8 @@
1
+ import { ConnectEvents } from '../wallets/types';
2
+ import { ConnectorParams } from './types';
3
+ export interface WalletLinkConnectorParams extends ConnectorParams {
4
+ appName: string;
5
+ appLogoUrl?: string;
6
+ darkMode?: boolean;
7
+ }
8
+ export default function connector({ chainId, rpcUrl, appName, appLogoUrl, darkMode }: ConnectorParams, events: ConnectEvents): Promise<import("@ethersproject/providers").JsonRpcProvider>;
@@ -0,0 +1,2 @@
1
+ export * from './wallets';
2
+ export * from './connector';
@@ -0,0 +1,77 @@
1
+ import { WalletType, Wallet } from './types';
2
+ export { WalletType } from './types';
3
+ export type { Wallet } from './types';
4
+ export * as injectedListObject from './injected';
5
+ export * as standaloneListObject from './standalone';
6
+ export declare const injectedList: Wallet[];
7
+ export declare const standaloneList: Wallet[];
8
+ export declare const allWalletList: Wallet[];
9
+ declare const allWalletObject: {
10
+ WalletLink: Wallet;
11
+ BSC: Wallet;
12
+ KuCoin: Wallet;
13
+ Frontier: Wallet;
14
+ Ledger: Wallet;
15
+ OpenBlock: Wallet;
16
+ OneKey: Wallet;
17
+ Bitkeep: Wallet;
18
+ Nabox: Wallet;
19
+ OKXWallet: Wallet;
20
+ WalletConnect: Wallet;
21
+ Portis: Wallet;
22
+ Gnosis: Wallet;
23
+ UAuth: Wallet;
24
+ Coinbase: Wallet;
25
+ TokenPocket: Wallet;
26
+ Trust: Wallet;
27
+ ImToken: Wallet;
28
+ Math: Wallet;
29
+ GameStop: Wallet;
30
+ Brave: Wallet;
31
+ Huobi: Wallet;
32
+ Coin98: Wallet;
33
+ };
34
+ export declare const OpenBlockIframeWallet: {
35
+ disabled: () => boolean;
36
+ type: WalletType;
37
+ connector: (_: import("../connector").ConnectorParams, events: import("./types").ConnectEvents) => Promise<import("@ethersproject/providers").JsonRpcProvider>;
38
+ showName: string;
39
+ logo: string;
40
+ switchChain?: ((params: import("../connector/injected").RegisterNetworkWithMetamaskParams) => Promise<{
41
+ result: boolean;
42
+ failMsg?: string | undefined;
43
+ }>) | undefined;
44
+ supportChains?: import("./types").ChainId[] | undefined;
45
+ link?: string | undefined;
46
+ mobileDeepLink?: string | undefined;
47
+ mobileAndroidDeepLink?: string | undefined;
48
+ mobileIOSDeepLink?: string | undefined;
49
+ supportExtension?: boolean | undefined;
50
+ supportMobile?: boolean | undefined;
51
+ checked?: ((params: {
52
+ PORTIS_ID?: string | undefined;
53
+ }) => boolean) | undefined;
54
+ disconnect?: (() => Promise<void>) | undefined;
55
+ };
56
+ export interface WalletListParams {
57
+ excludes?: WalletType[];
58
+ /** include && sort */
59
+ includes?: WalletType[];
60
+ keysSort?: Array<keyof typeof allWalletObject>;
61
+ mobileKeysSort?: Array<keyof typeof allWalletObject>;
62
+ showSupportExtensionInjected?: boolean;
63
+ /** Overlay wallet list */
64
+ afterHooks?: (params: Omit<WalletListParams, 'afterHooks'> & {
65
+ isMobile: boolean;
66
+ PORTIS_ID?: string;
67
+ chainId?: number;
68
+ hasInjectedWallet: boolean;
69
+ walletList: Wallet[];
70
+ }) => Wallet[];
71
+ }
72
+ export declare function getWalletList({ PORTIS_ID, chainId, includes, excludes, keysSort, mobileKeysSort, showSupportExtensionInjected, afterHooks, }?: WalletListParams & {
73
+ PORTIS_ID?: string;
74
+ chainId?: number;
75
+ }): Wallet[];
76
+ export declare function getIsolatedEnvironmentWallet(): Promise<Wallet | undefined>;
77
+ export declare function getWalletDisabledStateFunction(): Promise<(wallet: Wallet) => boolean>;
@@ -0,0 +1,10 @@
1
+ import { Wallet } from './types';
2
+ export declare const Coinbase: Wallet;
3
+ export declare const TokenPocket: Wallet;
4
+ export declare const Trust: Wallet;
5
+ export declare const ImToken: Wallet;
6
+ export declare const Math: Wallet;
7
+ export declare const GameStop: Wallet;
8
+ export declare const Brave: Wallet;
9
+ export declare const Huobi: Wallet;
10
+ export declare const Coin98: Wallet;
@@ -0,0 +1,3 @@
1
+ import { Wallet } from './types';
2
+ declare const MetamaskWallet: Wallet;
3
+ export default MetamaskWallet;
@@ -0,0 +1,15 @@
1
+ import { Wallet } from './types';
2
+ export declare const WalletLink: Wallet;
3
+ export declare const BSC: Wallet;
4
+ export declare const KuCoin: Wallet;
5
+ export declare const Frontier: Wallet;
6
+ export declare const Ledger: Wallet;
7
+ export declare const OpenBlock: Wallet;
8
+ export declare const OneKey: Wallet;
9
+ export declare const Bitkeep: Wallet;
10
+ export declare const Nabox: Wallet;
11
+ export declare const OKXWallet: Wallet;
12
+ export declare const WalletConnect: Wallet;
13
+ export declare const Portis: Wallet;
14
+ export declare const Gnosis: Wallet;
15
+ export declare const UAuth: Wallet;
@@ -0,0 +1,76 @@
1
+ import type { JsonRpcProvider } from '@ethersproject/providers';
2
+ import type { ConnectorParams } from '../connector';
3
+ import { RegisterNetworkWithMetamaskParams, registerNetworkWithMetamask } from '../connector/injected';
4
+ interface ProviderRpcError extends Error {
5
+ message: string;
6
+ code: number;
7
+ data?: unknown;
8
+ }
9
+ export declare enum ChainId {
10
+ MAINNET = 1,
11
+ GOERLI = 5,
12
+ BSC = 56,
13
+ HECO = 128,
14
+ POLYGON = 137,
15
+ ARBITRUM_ONE = 42161,
16
+ ARBITRUM_RINKEBY = 421611,
17
+ AURORA = 1313161554,
18
+ MOONRIVER = 1285,
19
+ OKCHAIN = 66,
20
+ OPTIMISM = 10,
21
+ BOBA = 288,
22
+ AVALANCHE = 43114,
23
+ CRONOS = 25
24
+ }
25
+ export declare enum WalletType {
26
+ injected = "injected",
27
+ BinanceChain = "custom-bsc-injected",
28
+ WalletConnect = "walletconnect",
29
+ Portis = "portis",
30
+ Gnosis = "custom-gnosis",
31
+ WalletLink = "custom-walletlink",
32
+ LedgerUSB = "custom-ledger-usb",
33
+ Ledger = "custom-ledger",
34
+ openBlock = "custom-open-block",
35
+ openBlockIframe = "custom-open-block-iframe",
36
+ Nabox = "custom-nabox",
37
+ Bitkeep = "custom-bitkeep",
38
+ OneKey = "custom-onekey",
39
+ OKX = "custom-okx",
40
+ uAuth = "custom-uauth",
41
+ kuCoinWallet = "custom-kucoin-wallet",
42
+ frontier = "custom-frontier"
43
+ }
44
+ export type ConnectEvents = {
45
+ connect: ({ chainId }: {
46
+ chainId: string;
47
+ }) => void;
48
+ accountsChanged: (accounts: Array<string>) => void;
49
+ chainChanged: (chainId: string) => void;
50
+ message: (type: string, data: unknown) => void;
51
+ disconnect: (error: ProviderRpcError) => void;
52
+ };
53
+ export interface Wallet {
54
+ type: WalletType;
55
+ showName: string;
56
+ logo: string;
57
+ /** can switch chain */
58
+ switchChain?: (params: RegisterNetworkWithMetamaskParams) => ReturnType<typeof registerNetworkWithMetamask>;
59
+ /** default is all */
60
+ supportChains?: Array<ChainId>;
61
+ /** prompt for download */
62
+ link?: string;
63
+ mobileDeepLink?: string;
64
+ mobileAndroidDeepLink?: string;
65
+ mobileIOSDeepLink?: string;
66
+ supportExtension?: boolean;
67
+ supportMobile?: boolean;
68
+ disabled?: () => boolean | Promise<boolean>;
69
+ /** if return false, not display */
70
+ checked?: (params: {
71
+ PORTIS_ID?: string;
72
+ }) => boolean;
73
+ connector?: (params: ConnectorParams, events: ConnectEvents) => Promise<JsonRpcProvider | undefined>;
74
+ disconnect?: () => Promise<void>;
75
+ }
76
+ export {};
@@ -0,0 +1,16 @@
1
+ import { JsonRpcProvider } from '@ethersproject/providers';
2
+ import { Wallet, WalletType } from './providers';
3
+ export interface Connected {
4
+ isAutoConnect: boolean;
5
+ wallet: Wallet;
6
+ }
7
+ declare const walletState: {
8
+ chainId: number;
9
+ account: string | undefined;
10
+ accounts: string[] | undefined;
11
+ provider: JsonRpcProvider | undefined;
12
+ walletType: WalletType | undefined;
13
+ connectLoading: boolean;
14
+ connected: Connected | undefined;
15
+ };
16
+ export default walletState;
@@ -0,0 +1 @@
1
+ import{_ as e,a as t,e as r,i as n}from"./index-9b8e573c.js";import o from"@uauth/js";import"@ethersproject/providers";import"@ethersproject/constants";import"@ethersproject/contracts";import"@ethersproject/address";import"valtio";import"valtio/utils";var i,s=!1;function a(a,l){return e(this,void 0,void 0,(function(){var e,c,u,p;return t(this,(function(t){switch(t.label){case 0:if(s)return[2,void 0];if(!(null==(e=a.uAuthParams)?void 0:e.clientID))throw new Error("uAuthParams is not valid.");s=!0,t.label=1;case 1:t.trys.push([1,12,,13]),c=r(r({},e),{redirectUri:e.redirectUri||window.location.origin}),i=new o(c),u=void 0,t.label=2;case 2:return t.trys.push([2,4,,11]),[4,i.user()];case 3:return u=t.sent(),[3,11];case 4:if(t.sent(),!i.fallbackLoginOptions.scope.includes("wallet"))throw new Error('Must request the "wallet" scope for connector to work.');return c.shouldLoginWithRedirect?[4,i.login()]:[3,7];case 5:return t.sent(),[4,new Promise((function(){}))];case 6:throw t.sent(),new Error("Should never get here.");case 7:return[4,i.loginWithPopup()];case 8:return t.sent(),[4,i.user()];case 9:u=t.sent(),t.label=10;case 10:return[3,11];case 11:if(null==u.wallet_type_hint)throw new Error("no wallet type present");if(p=void 0,["web3","injected"].includes(u.wallet_type_hint))p=n(void 0,l);else{if("walletconnect"!==u.wallet_type_hint||!c.walletConnect)throw new Error("Connector not supported");p=c.walletConnect()}return s=!1,[2,p];case 12:return t.sent(),s=!1,[3,13];case 13:return[2,void 0]}}))}))}function l(){return null==i?void 0:i.logout()}export{a as default,l as disconnectWallet};
@@ -0,0 +1 @@
1
+ import{_ as e,a as o,d as n}from"./index-9b8e573c.js";import t from"@walletconnect/web3-provider";import"@ethersproject/providers";import"@ethersproject/constants";import"@ethersproject/contracts";import"@ethersproject/address";import"valtio";import"valtio/utils";function r(r,c){var a=r.chainId,i=r.rpcUrl,s=r.walletConnectParams;return e(this,void 0,void 0,(function(){var e,r,d,p,h;return o(this,(function(o){switch(o.label){case 0:return e="https://bridge.walletconnect.org",r=!0,d="",s&&(e=s.bridge||e,r=void 0!==s.qrcode?s.qrcode:r,d=s.infuraId||"",p=s.qrcodeModalOptions||void 0),[4,(h=new t({bridge:e,qrcode:r,infuraId:d,rpc:i||void 0,chainId:a,qrcodeModalOptions:p})).enable()];case 1:return o.sent(),h.on("connect",c.connect),h.on("disconnect",(function(e){c.disconnect(e),c.accountsChanged([])})),h.on("accountsChanged",c.accountsChanged),h.on("chainChanged",c.chainChanged),h.on("message",c.message),[2,n(h)]}}))}))}export{r as default};
@@ -0,0 +1 @@
1
+ import{_ as e,a as o,d as r,i as t}from"./index-9b8e573c.js";import n from"@coinbase/wallet-sdk";import"@ethersproject/providers";import"@ethersproject/constants";import"@ethersproject/contracts";import"@ethersproject/address";import"valtio";import"valtio/utils";function a(a,i){var s=a.chainId,c=a.rpcUrl,d=a.appName,p=a.appLogoUrl,h=a.darkMode;return e(this,void 0,void 0,(function(){var e,a;return o(this,(function(o){switch(o.label){case 0:if(window.ethereum&&(window.ethereum.isWalletLink||window.ethereum.isToshi))return[2,t(window.ethereum,i)];if(!d)throw new Error("walletLink need appName");return e=new n({appName:d,appLogoUrl:p,darkMode:h}),[4,(a=e.makeWeb3Provider(c,s)).enable()];case 1:return o.sent(),a.on("connect",i.connect),a.on("disconnect",i.disconnect),a.on("accountsChanged",i.accountsChanged),a.on("chainChanged",i.chainChanged),a.on("message",i.message),[2,r(a)]}}))}))}export{a as default};
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@dodoex/wallet-web3",
3
+ "version": "0.0.2",
4
+ "description": "",
5
+ "source": "src/index.ts",
6
+ "types": "dist/index.d.ts",
7
+ "typings": "dist/index.d.ts",
8
+ "main": "dist/cjs/index.cjs",
9
+ "module": "dist/index.js",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "start": "cd example && yarn dev",
15
+ "build": "rollup -c",
16
+ "watch": "yarn run rollup -c --watch",
17
+ "prerelease": "yarn run build",
18
+ "release": "np --any-branch --no-cleanup --no-tests"
19
+ },
20
+ "author": "",
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org"
24
+ },
25
+ "license": "GPL-3.0-or-later",
26
+ "peerDependencies": {
27
+ "valtio": "^1.10.4"
28
+ },
29
+ "dependencies": {
30
+ "@coinbase/wallet-sdk": "^3.6.5",
31
+ "@ethersproject/address": "^5.7.0",
32
+ "@ethersproject/bytes": "^5.7.0",
33
+ "@ethersproject/constants": "^5.7.0",
34
+ "@ethersproject/contracts": "^5.7.0",
35
+ "@ethersproject/properties": "^5.7.0",
36
+ "@ethersproject/providers": "^5.7.2",
37
+ "@ethersproject/transactions": "^5.7.0",
38
+ "@gnosis.pm/safe-apps-provider": "^0.8.0",
39
+ "@gnosis.pm/safe-apps-sdk": "^4.3.0",
40
+ "@gnosis.pm/safe-apps-web3modal": "^3.0.0",
41
+ "@ledgerhq/hw-app-eth": "^6.29.6",
42
+ "@ledgerhq/hw-transport-webhid": "^6.27.2",
43
+ "@ledgerhq/iframe-provider": "^0.4.2",
44
+ "@metamask/eth-json-rpc-middleware": "^10.0.0",
45
+ "@metamask/eth-json-rpc-provider": "^1.0.0",
46
+ "@metamask/eth-sig-util": "^5.0.2",
47
+ "@portis/web3": "^4.0.7",
48
+ "@safe-global/safe-apps-provider": "^0.16.0",
49
+ "@safe-global/safe-apps-sdk": "^7.10.0",
50
+ "@uauth/js": "^2.4.0",
51
+ "@walletconnect/web3-provider": "^1.8.0",
52
+ "json-rpc-engine": "^6.1.0"
53
+ },
54
+ "devDependencies": {
55
+ "@rollup/plugin-babel": "^5.3.1",
56
+ "@rollup/plugin-commonjs": "^22.0.0",
57
+ "@rollup/plugin-json": "^4.1.0",
58
+ "@rollup/plugin-node-resolve": "^14.1.0",
59
+ "@svgr/rollup": "^6.2.1",
60
+ "eslint-plugin-valtio": "^0.6.2",
61
+ "np": "^7.6.1",
62
+ "rollup": "^2.75.5",
63
+ "rollup-plugin-terser": "^7.0.2",
64
+ "rollup-plugin-typescript2": "^0.32.0",
65
+ "rollup-plugin-url": "^3.0.1",
66
+ "tslib": "^2.4.0",
67
+ "typescript": "^4.7.3"
68
+ }
69
+ }