@xyo-network/metamask-connector 2.80.0 → 2.81.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.
@@ -1,11 +1,11 @@
1
- import { Listener, Web3Provider } from '@ethersproject/providers';
1
+ import { BrowserProvider, Listener } from 'ethers';
2
2
  export declare class MetaMaskConnector {
3
3
  private account;
4
4
  private ethereum;
5
5
  private listeners;
6
6
  private provider;
7
7
  private providerListeners;
8
- constructor(provider?: Web3Provider);
8
+ constructor(provider?: BrowserProvider);
9
9
  get chainId(): string | null;
10
10
  get currentAccount(): string | null;
11
11
  connectWallet(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,YAAY;IAQnC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAElD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,eAAe;IAQtC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -1,11 +1,11 @@
1
- import { Listener, Web3Provider } from '@ethersproject/providers';
1
+ import { BrowserProvider, Listener } from 'ethers';
2
2
  export declare class MetaMaskConnector {
3
3
  private account;
4
4
  private ethereum;
5
5
  private listeners;
6
6
  private provider;
7
7
  private providerListeners;
8
- constructor(provider?: Web3Provider);
8
+ constructor(provider?: BrowserProvider);
9
9
  get chainId(): string | null;
10
10
  get currentAccount(): string | null;
11
11
  connectWallet(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,YAAY;IAQnC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAElD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,eAAe;IAQtC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -1,11 +1,11 @@
1
- import { Listener, Web3Provider } from '@ethersproject/providers';
1
+ import { BrowserProvider, Listener } from 'ethers';
2
2
  export declare class MetaMaskConnector {
3
3
  private account;
4
4
  private ethereum;
5
5
  private listeners;
6
6
  private provider;
7
7
  private providerListeners;
8
- constructor(provider?: Web3Provider);
8
+ constructor(provider?: BrowserProvider);
9
9
  get chainId(): string | null;
10
10
  get currentAccount(): string | null;
11
11
  connectWallet(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,YAAY;IAQnC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAElD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,eAAe;IAQtC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -25,7 +25,7 @@ __export(src_exports, {
25
25
  module.exports = __toCommonJS(src_exports);
26
26
 
27
27
  // src/MetaMaskConnector.ts
28
- var import_providers = require("@ethersproject/providers");
28
+ var import_ethers = require("ethers");
29
29
  var MetaMaskConnector = class {
30
30
  account = "";
31
31
  ethereum = window.ethereum;
@@ -36,7 +36,7 @@ var MetaMaskConnector = class {
36
36
  if (provider) {
37
37
  this.provider = provider;
38
38
  } else if (this.ethereum) {
39
- this.provider = new import_providers.Web3Provider(window.ethereum);
39
+ this.provider = new import_ethers.BrowserProvider(window.ethereum);
40
40
  }
41
41
  }
42
42
  get chainId() {
@@ -109,7 +109,7 @@ var MetaMaskConnector = class {
109
109
  this.logProviderMissing();
110
110
  return;
111
111
  }
112
- const signer = this.provider.getSigner();
112
+ const signer = await this.provider.getSigner();
113
113
  await signer.getAddress();
114
114
  const signature = await signer.signMessage(message);
115
115
  return signature;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector'\n","import { Listener, Web3Provider } from '@ethersproject/providers'\nimport { MetaMaskInpageProvider } from '@metamask/providers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: Web3Provider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: Web3Provider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new Web3Provider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { BrowserProvider, Listener } from 'ethers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: BrowserProvider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: BrowserProvider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new BrowserProvider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = await this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,oBAA0C;AAEnC,IAAM,oBAAN,MAAwB;AAAA,EACrB,UAAU;AAAA,EACV,WAAW,OAAO;AAAA,EAElB,YAAwB,CAAC;AAAA,EACzB;AAAA,EACA,oBAA2D,CAAC;AAAA,EAEpE,YAAY,UAA4B;AACtC,QAAI,UAAU;AACZ,WAAK,WAAW;AAAA,IAClB,WAAW,KAAK,UAAU;AACxB,WAAK,WAAW,IAAI,8BAAgB,OAAO,QAAQ;AAAA,IACrD;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,MAAM,gBAAgB;AACpB,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,mBAAmB;AACxB;AAAA,IACF;AAEA,UAAM,WAAW,MAAM,KAAK,SAAS,KAAK,uBAAuB,CAAC,CAAC;AAEnE,QAAI,SAAS,WAAW,GAAG;AACzB,WAAK,UAAU,SAAS,CAAC;AACzB,cAAQ,IAAI,eAAe,KAAK,OAAO;AAAA,IACzC,OAAO;AACL,cAAQ,IAAI,8BAA8B;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,sBAAsB;AACpB,WAAO,KAAK,YAAY,KAAK,SAAS;AAAA,EACxC;AAAA,EAEA,sBAAsB,MAAM;AAC1B,QAAI,KAAK,gBAAgB;AACvB,cAAQ,IAAI,iCAAiC,KAAK,UAAU,eAAe;AAC3E,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,0BAA0B,UAAoB;AAC5C,SAAK,UAAU,GAAG,mBAAmB,QAAQ;AAC7C,SAAK,kBAAkB,KAAK,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EAC3D;AAAA,EAEA,uBAAuB,UAAoB;AACzC,SAAK,UAAU,GAAG,gBAAgB,QAAQ;AAC1C,SAAK,kBAAkB,KAAK,CAAC,gBAAgB,QAAQ,CAAC;AAAA,EACxD;AAAA,EAEA,kBAAkB,UAAoB;AACpC,SAAK,UAAU,GAAG,WAAW,QAAQ;AACrC,SAAK,kBAAkB,KAAK,CAAC,WAAW,QAAQ,CAAC;AAAA,EACnD;AAAA,EAEA,qBAAqB,UAAoB;AACvC,SAAK,UAAU,GAAG,cAAc,QAAQ;AACxC,SAAK,kBAAkB,KAAK,CAAC,cAAc,QAAQ,CAAC;AAAA,EACtD;AAAA,EAEA,uBAAuB,OAAe,UAAoB;AACxD,SAAK,UAAU,eAAe,OAAO,QAAQ;AAC7C,SAAK,oBAAoB,KAAK,kBAAkB,OAAO,CAAC,CAAC,EAAE,aAAa,MAAM,aAAa,aAAa;AAAA,EAC1G;AAAA,EAEA,0BAA0B;AACxB,SAAK,kBAAkB,QAAQ,CAAC,CAAC,OAAO,QAAQ,MAAM,KAAK,UAAU,eAAe,OAAO,QAAQ,CAAC;AAAA,EACtG;AAAA,EAEA,MAAM,kBAA4C;AAChD,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,mBAAmB;AACxB,aAAO;AAAA,IACT;AAEA,WAAO,MAAM,KAAK,SAAS,KAAK,uBAAuB,CAAC,CAAC;AAAA,EAC3D;AAAA,EAEA,MAAM,YAAY,SAAiB;AACjC,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,mBAAmB;AACxB;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,KAAK,SAAS,UAAU;AAC7C,UAAM,OAAO,WAAW;AACxB,UAAM,YAAY,MAAM,OAAO,YAAY,OAAO;AAClD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,eAAe,OAAe,UAAoB;AAChD,SAAK,UAAU,GAAG,OAAO,QAAQ;AACjC,SAAK,UAAU,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,2BAA2B,OAAe,UAAoB;AAC5D,SAAK,UAAU,eAAe,OAAO,QAAQ;AAC7C,SAAK,YAAY,KAAK,UAAU,OAAO,CAAC,kBAAkB,aAAa,aAAa;AAAA,EACtF;AAAA,EAEA,8BAA8B;AAC5B,SAAK,UAAU,mBAAmB;AAAA,EACpC;AAAA,EAEQ,qBAAqB;AAC3B,YAAQ,KAAK,iHAAiH;AAAA,EAChI;AACF;","names":[]}
@@ -1,5 +1,5 @@
1
1
  // src/MetaMaskConnector.ts
2
- import { Web3Provider } from "@ethersproject/providers";
2
+ import { BrowserProvider } from "ethers";
3
3
  var MetaMaskConnector = class {
4
4
  account = "";
5
5
  ethereum = window.ethereum;
@@ -10,7 +10,7 @@ var MetaMaskConnector = class {
10
10
  if (provider) {
11
11
  this.provider = provider;
12
12
  } else if (this.ethereum) {
13
- this.provider = new Web3Provider(window.ethereum);
13
+ this.provider = new BrowserProvider(window.ethereum);
14
14
  }
15
15
  }
16
16
  get chainId() {
@@ -83,7 +83,7 @@ var MetaMaskConnector = class {
83
83
  this.logProviderMissing();
84
84
  return;
85
85
  }
86
- const signer = this.provider.getSigner();
86
+ const signer = await this.provider.getSigner();
87
87
  await signer.getAddress();
88
88
  const signature = await signer.signMessage(message);
89
89
  return signature;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { Listener, Web3Provider } from '@ethersproject/providers'\nimport { MetaMaskInpageProvider } from '@metamask/providers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: Web3Provider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: Web3Provider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new Web3Provider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { BrowserProvider, Listener } from 'ethers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: BrowserProvider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: BrowserProvider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new BrowserProvider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = await this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,11 +1,11 @@
1
- import { Listener, Web3Provider } from '@ethersproject/providers';
1
+ import { BrowserProvider, Listener } from 'ethers';
2
2
  export declare class MetaMaskConnector {
3
3
  private account;
4
4
  private ethereum;
5
5
  private listeners;
6
6
  private provider;
7
7
  private providerListeners;
8
- constructor(provider?: Web3Provider);
8
+ constructor(provider?: BrowserProvider);
9
9
  get chainId(): string | null;
10
10
  get currentAccount(): string | null;
11
11
  connectWallet(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,YAAY;IAQnC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAElD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,eAAe;IAQtC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -1,11 +1,11 @@
1
- import { Listener, Web3Provider } from '@ethersproject/providers';
1
+ import { BrowserProvider, Listener } from 'ethers';
2
2
  export declare class MetaMaskConnector {
3
3
  private account;
4
4
  private ethereum;
5
5
  private listeners;
6
6
  private provider;
7
7
  private providerListeners;
8
- constructor(provider?: Web3Provider);
8
+ constructor(provider?: BrowserProvider);
9
9
  get chainId(): string | null;
10
10
  get currentAccount(): string | null;
11
11
  connectWallet(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,YAAY;IAQnC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAElD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,eAAe;IAQtC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -1,11 +1,11 @@
1
- import { Listener, Web3Provider } from '@ethersproject/providers';
1
+ import { BrowserProvider, Listener } from 'ethers';
2
2
  export declare class MetaMaskConnector {
3
3
  private account;
4
4
  private ethereum;
5
5
  private listeners;
6
6
  private provider;
7
7
  private providerListeners;
8
- constructor(provider?: Web3Provider);
8
+ constructor(provider?: BrowserProvider);
9
9
  get chainId(): string | null;
10
10
  get currentAccount(): string | null;
11
11
  connectWallet(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,YAAY;IAQnC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAElD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAE5D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,QAAQ,CAAC,EAAE,eAAe;IAQtC,IAAI,OAAO,kBAEV;IAED,IAAI,cAAc,kBAEjB;IAEK,aAAa;IAgBnB,mBAAmB;IAInB,mBAAmB,gBAMlB;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ;IAK5C,sBAAsB,CAAC,QAAQ,EAAE,QAAQ;IAKzC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAKpC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAKvC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKxD,uBAAuB;IAIjB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAS3C,WAAW,CAAC,OAAO,EAAE,MAAM;IAYjC,mGAAmG;IACnG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK5D,2BAA2B;IAI3B,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -25,7 +25,7 @@ __export(src_exports, {
25
25
  module.exports = __toCommonJS(src_exports);
26
26
 
27
27
  // src/MetaMaskConnector.ts
28
- var import_providers = require("@ethersproject/providers");
28
+ var import_ethers = require("ethers");
29
29
  var MetaMaskConnector = class {
30
30
  account = "";
31
31
  ethereum = window.ethereum;
@@ -36,7 +36,7 @@ var MetaMaskConnector = class {
36
36
  if (provider) {
37
37
  this.provider = provider;
38
38
  } else if (this.ethereum) {
39
- this.provider = new import_providers.Web3Provider(window.ethereum);
39
+ this.provider = new import_ethers.BrowserProvider(window.ethereum);
40
40
  }
41
41
  }
42
42
  get chainId() {
@@ -120,7 +120,7 @@ var MetaMaskConnector = class {
120
120
  this.logProviderMissing();
121
121
  return;
122
122
  }
123
- const signer = this.provider.getSigner();
123
+ const signer = await this.provider.getSigner();
124
124
  await signer.getAddress();
125
125
  const signature = await signer.signMessage(message);
126
126
  return signature;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector'\n","import { Listener, Web3Provider } from '@ethersproject/providers'\nimport { MetaMaskInpageProvider } from '@metamask/providers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: Web3Provider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: Web3Provider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new Web3Provider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { BrowserProvider, Listener } from 'ethers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: BrowserProvider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: BrowserProvider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new BrowserProvider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = await this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,5 +1,5 @@
1
1
  // src/MetaMaskConnector.ts
2
- import { Web3Provider } from "@ethersproject/providers";
2
+ import { BrowserProvider } from "ethers";
3
3
  var MetaMaskConnector = class {
4
4
  account = "";
5
5
  ethereum = window.ethereum;
@@ -10,7 +10,7 @@ var MetaMaskConnector = class {
10
10
  if (provider) {
11
11
  this.provider = provider;
12
12
  } else if (this.ethereum) {
13
- this.provider = new Web3Provider(window.ethereum);
13
+ this.provider = new BrowserProvider(window.ethereum);
14
14
  }
15
15
  }
16
16
  get chainId() {
@@ -94,7 +94,7 @@ var MetaMaskConnector = class {
94
94
  this.logProviderMissing();
95
95
  return;
96
96
  }
97
- const signer = this.provider.getSigner();
97
+ const signer = await this.provider.getSigner();
98
98
  await signer.getAddress();
99
99
  const signature = await signer.signMessage(message);
100
100
  return signature;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { Listener, Web3Provider } from '@ethersproject/providers'\nimport { MetaMaskInpageProvider } from '@metamask/providers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: Web3Provider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: Web3Provider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new Web3Provider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { BrowserProvider, Listener } from 'ethers'\n\nexport class MetaMaskConnector {\n private account = ''\n private ethereum = window.ethereum as MetaMaskInpageProvider\n\n private listeners: Listener[] = []\n private provider: BrowserProvider | undefined\n private providerListeners: [event: string, listener: Listener][] = []\n\n constructor(provider?: BrowserProvider) {\n if (provider) {\n this.provider = provider\n } else if (this.ethereum) {\n this.provider = new BrowserProvider(window.ethereum)\n }\n }\n\n get chainId() {\n return this.ethereum?.networkVersion\n }\n\n get currentAccount() {\n return this.ethereum?.selectedAddress\n }\n\n async connectWallet() {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const accounts = await this.provider.send('eth_requestAccounts', [])\n // We could have multiple accounts. Check for one.\n if (accounts.length !== 0) {\n this.account = accounts[0]\n console.log('Connected: ', this.account)\n } else {\n console.log('No authorized account found.')\n }\n }\n\n isMetaMaskInstalled() {\n return this.ethereum && this.ethereum.isMetaMask\n }\n\n isWalletIsConnected = () => {\n if (this.currentAccount) {\n console.log('Found an authorized account: ', this.ethereum?.selectedAddress)\n return true\n }\n return false\n }\n\n /**\n * EIP-1193 Event Listeners\n *\n * .on in Web3Provider does not understand EIP-1193 events\n * see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893\n */\n providerOnAccountsChanged(listener: Listener) {\n this.ethereum?.on('accountsChanged', listener)\n this.providerListeners.push(['accountsChanged', listener])\n }\n\n providerOnChainChanged(listener: Listener) {\n this.ethereum?.on('chainChanged', listener)\n this.providerListeners.push(['chainChanged', listener])\n }\n\n providerOnConnect(listener: Listener) {\n this.ethereum?.on('connect', listener)\n this.providerListeners.push(['connect', listener])\n }\n\n providerOnDisconnect(listener: Listener) {\n this.ethereum?.on('disconnect', listener)\n this.providerListeners.push(['disconnect', listener])\n }\n\n providerRemoveListener(event: string, listener: Listener) {\n this.ethereum?.removeListener(event, listener)\n this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener)\n }\n\n providerRemoveListeners() {\n this.providerListeners.forEach(([event, listener]) => this.ethereum?.removeListener(event, listener))\n }\n\n async requestAccounts(): Promise<string[] | null> {\n if (!this.provider) {\n this.logProviderMissing()\n return null\n }\n\n return await this.provider.send('eth_requestAccounts', [])\n }\n\n async signMessage(message: string) {\n if (!this.provider) {\n this.logProviderMissing()\n return\n }\n\n const signer = await this.provider.getSigner()\n await signer.getAddress()\n const signature = await signer.signMessage(message)\n return signature\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener) {\n this.provider?.on(event, listener)\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener) {\n this.provider?.removeListener(event, listener)\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners() {\n this.provider?.removeAllListeners()\n }\n\n private logProviderMissing() {\n console.warn('Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed')\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -9,8 +9,8 @@
9
9
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
10
10
  },
11
11
  "dependencies": {
12
- "@ethersproject/providers": "^5.7.2",
13
- "@metamask/providers": "^14.0.1"
12
+ "@metamask/providers": "^14.0.1",
13
+ "ethers": "^6.8.1"
14
14
  },
15
15
  "description": "Primary SDK for using XYO Protocol 2.0",
16
16
  "devDependencies": {
@@ -58,5 +58,5 @@
58
58
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
59
59
  },
60
60
  "sideEffects": false,
61
- "version": "2.80.0"
61
+ "version": "2.81.0"
62
62
  }
@@ -1,19 +1,19 @@
1
- import { Listener, Web3Provider } from '@ethersproject/providers'
2
1
  import { MetaMaskInpageProvider } from '@metamask/providers'
2
+ import { BrowserProvider, Listener } from 'ethers'
3
3
 
4
4
  export class MetaMaskConnector {
5
5
  private account = ''
6
6
  private ethereum = window.ethereum as MetaMaskInpageProvider
7
7
 
8
8
  private listeners: Listener[] = []
9
- private provider: Web3Provider | undefined
9
+ private provider: BrowserProvider | undefined
10
10
  private providerListeners: [event: string, listener: Listener][] = []
11
11
 
12
- constructor(provider?: Web3Provider) {
12
+ constructor(provider?: BrowserProvider) {
13
13
  if (provider) {
14
14
  this.provider = provider
15
15
  } else if (this.ethereum) {
16
- this.provider = new Web3Provider(window.ethereum)
16
+ this.provider = new BrowserProvider(window.ethereum)
17
17
  }
18
18
  }
19
19
 
@@ -103,7 +103,7 @@ export class MetaMaskConnector {
103
103
  return
104
104
  }
105
105
 
106
- const signer = this.provider.getSigner()
106
+ const signer = await this.provider.getSigner()
107
107
  await signer.getAddress()
108
108
  const signature = await signer.signMessage(message)
109
109
  return signature