@xyo-network/metamask-connector 2.110.10 → 2.110.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/MetaMaskConnector.d.cts.map +1 -1
- package/dist/browser/MetaMaskConnector.d.mts.map +1 -1
- package/dist/browser/MetaMaskConnector.d.ts.map +1 -1
- package/dist/browser/index.cjs +12 -29
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +12 -31
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/MetaMaskConnector.d.cts.map +1 -1
- package/dist/neutral/MetaMaskConnector.d.mts.map +1 -1
- package/dist/neutral/MetaMaskConnector.d.ts.map +1 -1
- package/dist/neutral/index.cjs +12 -29
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +12 -31
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/MetaMaskConnector.d.cts.map +1 -1
- package/dist/node/MetaMaskConnector.d.mts.map +1 -1
- package/dist/node/MetaMaskConnector.d.ts.map +1 -1
- package/dist/node/index.cjs +13 -29
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +13 -31
- package/dist/node/index.js.map +1 -1
- package/package.json +4 -4
- package/src/MetaMaskConnector.ts +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -29,9 +28,6 @@ module.exports = __toCommonJS(src_exports);
|
|
|
29
28
|
var import_forget = require("@xylabs/forget");
|
|
30
29
|
var import_ethers = require("ethers");
|
|
31
30
|
var MetaMaskConnector = class {
|
|
32
|
-
static {
|
|
33
|
-
__name(this, "MetaMaskConnector");
|
|
34
|
-
}
|
|
35
31
|
account = "";
|
|
36
32
|
ethereum = window.ethereum;
|
|
37
33
|
listeners = [];
|
|
@@ -66,46 +62,34 @@ var MetaMaskConnector = class {
|
|
|
66
62
|
isMetaMaskInstalled() {
|
|
67
63
|
return this.ethereum && this.ethereum.isMetaMask;
|
|
68
64
|
}
|
|
69
|
-
isWalletIsConnected =
|
|
65
|
+
isWalletIsConnected = () => {
|
|
70
66
|
if (this.currentAccount) {
|
|
71
67
|
console.log("Found an authorized account:", this.ethereum?.selectedAddress);
|
|
72
68
|
return true;
|
|
73
69
|
}
|
|
74
70
|
return false;
|
|
75
|
-
}
|
|
71
|
+
};
|
|
76
72
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
* EIP-1193 Event Listeners
|
|
74
|
+
*
|
|
75
|
+
* .on in Web3Provider does not understand EIP-1193 events
|
|
76
|
+
* see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893
|
|
77
|
+
*/
|
|
82
78
|
providerOnAccountsChanged(listener) {
|
|
83
79
|
this.ethereum?.on("accountsChanged", listener);
|
|
84
|
-
this.providerListeners.push([
|
|
85
|
-
"accountsChanged",
|
|
86
|
-
listener
|
|
87
|
-
]);
|
|
80
|
+
this.providerListeners.push(["accountsChanged", listener]);
|
|
88
81
|
}
|
|
89
82
|
providerOnChainChanged(listener) {
|
|
90
83
|
this.ethereum?.on("chainChanged", listener);
|
|
91
|
-
this.providerListeners.push([
|
|
92
|
-
"chainChanged",
|
|
93
|
-
listener
|
|
94
|
-
]);
|
|
84
|
+
this.providerListeners.push(["chainChanged", listener]);
|
|
95
85
|
}
|
|
96
86
|
providerOnConnect(listener) {
|
|
97
87
|
this.ethereum?.on("connect", listener);
|
|
98
|
-
this.providerListeners.push([
|
|
99
|
-
"connect",
|
|
100
|
-
listener
|
|
101
|
-
]);
|
|
88
|
+
this.providerListeners.push(["connect", listener]);
|
|
102
89
|
}
|
|
103
90
|
providerOnDisconnect(listener) {
|
|
104
91
|
this.ethereum?.on("disconnect", listener);
|
|
105
|
-
this.providerListeners.push([
|
|
106
|
-
"disconnect",
|
|
107
|
-
listener
|
|
108
|
-
]);
|
|
92
|
+
this.providerListeners.push(["disconnect", listener]);
|
|
109
93
|
}
|
|
110
94
|
providerRemoveListener(event, listener) {
|
|
111
95
|
this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener);
|
|
@@ -126,8 +110,7 @@ var MetaMaskConnector = class {
|
|
|
126
110
|
}
|
|
127
111
|
const signer = await this.provider.getSigner();
|
|
128
112
|
await signer.getAddress();
|
|
129
|
-
|
|
130
|
-
return signature;
|
|
113
|
+
return await signer.signMessage(message);
|
|
131
114
|
}
|
|
132
115
|
/** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */
|
|
133
116
|
web3ProviderOn(event, listener) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector.js'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector.js'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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 return await signer.signMessage(message)\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.on(event, listener))\n }\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.removeListener(event, listener))\n }\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners(): void {\n if (this.provider) {\n forget(this.provider.removeAllListeners())\n }\n }\n\n private logProviderMissing(): void {\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/dist/browser/index.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/MetaMaskConnector.ts
|
|
5
2
|
import { forget } from "@xylabs/forget";
|
|
6
3
|
import { BrowserProvider } from "ethers";
|
|
7
4
|
var MetaMaskConnector = class {
|
|
8
|
-
static {
|
|
9
|
-
__name(this, "MetaMaskConnector");
|
|
10
|
-
}
|
|
11
5
|
account = "";
|
|
12
6
|
ethereum = window.ethereum;
|
|
13
7
|
listeners = [];
|
|
@@ -42,46 +36,34 @@ var MetaMaskConnector = class {
|
|
|
42
36
|
isMetaMaskInstalled() {
|
|
43
37
|
return this.ethereum && this.ethereum.isMetaMask;
|
|
44
38
|
}
|
|
45
|
-
isWalletIsConnected =
|
|
39
|
+
isWalletIsConnected = () => {
|
|
46
40
|
if (this.currentAccount) {
|
|
47
41
|
console.log("Found an authorized account:", this.ethereum?.selectedAddress);
|
|
48
42
|
return true;
|
|
49
43
|
}
|
|
50
44
|
return false;
|
|
51
|
-
}
|
|
45
|
+
};
|
|
52
46
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
* EIP-1193 Event Listeners
|
|
48
|
+
*
|
|
49
|
+
* .on in Web3Provider does not understand EIP-1193 events
|
|
50
|
+
* see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893
|
|
51
|
+
*/
|
|
58
52
|
providerOnAccountsChanged(listener) {
|
|
59
53
|
this.ethereum?.on("accountsChanged", listener);
|
|
60
|
-
this.providerListeners.push([
|
|
61
|
-
"accountsChanged",
|
|
62
|
-
listener
|
|
63
|
-
]);
|
|
54
|
+
this.providerListeners.push(["accountsChanged", listener]);
|
|
64
55
|
}
|
|
65
56
|
providerOnChainChanged(listener) {
|
|
66
57
|
this.ethereum?.on("chainChanged", listener);
|
|
67
|
-
this.providerListeners.push([
|
|
68
|
-
"chainChanged",
|
|
69
|
-
listener
|
|
70
|
-
]);
|
|
58
|
+
this.providerListeners.push(["chainChanged", listener]);
|
|
71
59
|
}
|
|
72
60
|
providerOnConnect(listener) {
|
|
73
61
|
this.ethereum?.on("connect", listener);
|
|
74
|
-
this.providerListeners.push([
|
|
75
|
-
"connect",
|
|
76
|
-
listener
|
|
77
|
-
]);
|
|
62
|
+
this.providerListeners.push(["connect", listener]);
|
|
78
63
|
}
|
|
79
64
|
providerOnDisconnect(listener) {
|
|
80
65
|
this.ethereum?.on("disconnect", listener);
|
|
81
|
-
this.providerListeners.push([
|
|
82
|
-
"disconnect",
|
|
83
|
-
listener
|
|
84
|
-
]);
|
|
66
|
+
this.providerListeners.push(["disconnect", listener]);
|
|
85
67
|
}
|
|
86
68
|
providerRemoveListener(event, listener) {
|
|
87
69
|
this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener);
|
|
@@ -102,8 +84,7 @@ var MetaMaskConnector = class {
|
|
|
102
84
|
}
|
|
103
85
|
const signer = await this.provider.getSigner();
|
|
104
86
|
await signer.getAddress();
|
|
105
|
-
|
|
106
|
-
return signature;
|
|
87
|
+
return await signer.signMessage(message);
|
|
107
88
|
}
|
|
108
89
|
/** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */
|
|
109
90
|
web3ProviderOn(event, listener) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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
|
|
1
|
+
{"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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 return await signer.signMessage(message)\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.on(event, listener))\n }\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.removeListener(event, listener))\n }\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners(): void {\n if (this.provider) {\n forget(this.provider.removeAllListeners())\n }\n }\n\n private logProviderMissing(): void {\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
package/dist/neutral/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -29,9 +28,6 @@ module.exports = __toCommonJS(src_exports);
|
|
|
29
28
|
var import_forget = require("@xylabs/forget");
|
|
30
29
|
var import_ethers = require("ethers");
|
|
31
30
|
var MetaMaskConnector = class {
|
|
32
|
-
static {
|
|
33
|
-
__name(this, "MetaMaskConnector");
|
|
34
|
-
}
|
|
35
31
|
account = "";
|
|
36
32
|
ethereum = window.ethereum;
|
|
37
33
|
listeners = [];
|
|
@@ -66,46 +62,34 @@ var MetaMaskConnector = class {
|
|
|
66
62
|
isMetaMaskInstalled() {
|
|
67
63
|
return this.ethereum && this.ethereum.isMetaMask;
|
|
68
64
|
}
|
|
69
|
-
isWalletIsConnected =
|
|
65
|
+
isWalletIsConnected = () => {
|
|
70
66
|
if (this.currentAccount) {
|
|
71
67
|
console.log("Found an authorized account:", this.ethereum?.selectedAddress);
|
|
72
68
|
return true;
|
|
73
69
|
}
|
|
74
70
|
return false;
|
|
75
|
-
}
|
|
71
|
+
};
|
|
76
72
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
* EIP-1193 Event Listeners
|
|
74
|
+
*
|
|
75
|
+
* .on in Web3Provider does not understand EIP-1193 events
|
|
76
|
+
* see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893
|
|
77
|
+
*/
|
|
82
78
|
providerOnAccountsChanged(listener) {
|
|
83
79
|
this.ethereum?.on("accountsChanged", listener);
|
|
84
|
-
this.providerListeners.push([
|
|
85
|
-
"accountsChanged",
|
|
86
|
-
listener
|
|
87
|
-
]);
|
|
80
|
+
this.providerListeners.push(["accountsChanged", listener]);
|
|
88
81
|
}
|
|
89
82
|
providerOnChainChanged(listener) {
|
|
90
83
|
this.ethereum?.on("chainChanged", listener);
|
|
91
|
-
this.providerListeners.push([
|
|
92
|
-
"chainChanged",
|
|
93
|
-
listener
|
|
94
|
-
]);
|
|
84
|
+
this.providerListeners.push(["chainChanged", listener]);
|
|
95
85
|
}
|
|
96
86
|
providerOnConnect(listener) {
|
|
97
87
|
this.ethereum?.on("connect", listener);
|
|
98
|
-
this.providerListeners.push([
|
|
99
|
-
"connect",
|
|
100
|
-
listener
|
|
101
|
-
]);
|
|
88
|
+
this.providerListeners.push(["connect", listener]);
|
|
102
89
|
}
|
|
103
90
|
providerOnDisconnect(listener) {
|
|
104
91
|
this.ethereum?.on("disconnect", listener);
|
|
105
|
-
this.providerListeners.push([
|
|
106
|
-
"disconnect",
|
|
107
|
-
listener
|
|
108
|
-
]);
|
|
92
|
+
this.providerListeners.push(["disconnect", listener]);
|
|
109
93
|
}
|
|
110
94
|
providerRemoveListener(event, listener) {
|
|
111
95
|
this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener);
|
|
@@ -126,8 +110,7 @@ var MetaMaskConnector = class {
|
|
|
126
110
|
}
|
|
127
111
|
const signer = await this.provider.getSigner();
|
|
128
112
|
await signer.getAddress();
|
|
129
|
-
|
|
130
|
-
return signature;
|
|
113
|
+
return await signer.signMessage(message);
|
|
131
114
|
}
|
|
132
115
|
/** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */
|
|
133
116
|
web3ProviderOn(event, listener) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector.js'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector.js'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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 return await signer.signMessage(message)\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.on(event, listener))\n }\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.removeListener(event, listener))\n }\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners(): void {\n if (this.provider) {\n forget(this.provider.removeAllListeners())\n }\n }\n\n private logProviderMissing(): void {\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/dist/neutral/index.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/MetaMaskConnector.ts
|
|
5
2
|
import { forget } from "@xylabs/forget";
|
|
6
3
|
import { BrowserProvider } from "ethers";
|
|
7
4
|
var MetaMaskConnector = class {
|
|
8
|
-
static {
|
|
9
|
-
__name(this, "MetaMaskConnector");
|
|
10
|
-
}
|
|
11
5
|
account = "";
|
|
12
6
|
ethereum = window.ethereum;
|
|
13
7
|
listeners = [];
|
|
@@ -42,46 +36,34 @@ var MetaMaskConnector = class {
|
|
|
42
36
|
isMetaMaskInstalled() {
|
|
43
37
|
return this.ethereum && this.ethereum.isMetaMask;
|
|
44
38
|
}
|
|
45
|
-
isWalletIsConnected =
|
|
39
|
+
isWalletIsConnected = () => {
|
|
46
40
|
if (this.currentAccount) {
|
|
47
41
|
console.log("Found an authorized account:", this.ethereum?.selectedAddress);
|
|
48
42
|
return true;
|
|
49
43
|
}
|
|
50
44
|
return false;
|
|
51
|
-
}
|
|
45
|
+
};
|
|
52
46
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
* EIP-1193 Event Listeners
|
|
48
|
+
*
|
|
49
|
+
* .on in Web3Provider does not understand EIP-1193 events
|
|
50
|
+
* see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893
|
|
51
|
+
*/
|
|
58
52
|
providerOnAccountsChanged(listener) {
|
|
59
53
|
this.ethereum?.on("accountsChanged", listener);
|
|
60
|
-
this.providerListeners.push([
|
|
61
|
-
"accountsChanged",
|
|
62
|
-
listener
|
|
63
|
-
]);
|
|
54
|
+
this.providerListeners.push(["accountsChanged", listener]);
|
|
64
55
|
}
|
|
65
56
|
providerOnChainChanged(listener) {
|
|
66
57
|
this.ethereum?.on("chainChanged", listener);
|
|
67
|
-
this.providerListeners.push([
|
|
68
|
-
"chainChanged",
|
|
69
|
-
listener
|
|
70
|
-
]);
|
|
58
|
+
this.providerListeners.push(["chainChanged", listener]);
|
|
71
59
|
}
|
|
72
60
|
providerOnConnect(listener) {
|
|
73
61
|
this.ethereum?.on("connect", listener);
|
|
74
|
-
this.providerListeners.push([
|
|
75
|
-
"connect",
|
|
76
|
-
listener
|
|
77
|
-
]);
|
|
62
|
+
this.providerListeners.push(["connect", listener]);
|
|
78
63
|
}
|
|
79
64
|
providerOnDisconnect(listener) {
|
|
80
65
|
this.ethereum?.on("disconnect", listener);
|
|
81
|
-
this.providerListeners.push([
|
|
82
|
-
"disconnect",
|
|
83
|
-
listener
|
|
84
|
-
]);
|
|
66
|
+
this.providerListeners.push(["disconnect", listener]);
|
|
85
67
|
}
|
|
86
68
|
providerRemoveListener(event, listener) {
|
|
87
69
|
this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener);
|
|
@@ -102,8 +84,7 @@ var MetaMaskConnector = class {
|
|
|
102
84
|
}
|
|
103
85
|
const signer = await this.provider.getSigner();
|
|
104
86
|
await signer.getAddress();
|
|
105
|
-
|
|
106
|
-
return signature;
|
|
87
|
+
return await signer.signMessage(message);
|
|
107
88
|
}
|
|
108
89
|
/** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */
|
|
109
90
|
web3ProviderOn(event, listener) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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
|
|
1
|
+
{"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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 return await signer.signMessage(message)\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.on(event, listener))\n }\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.removeListener(event, listener))\n }\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners(): void {\n if (this.provider) {\n forget(this.provider.removeAllListeners())\n }\n }\n\n private logProviderMissing(): void {\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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;
|
|
1
|
+
{"version":3,"file":"MetaMaskConnector.d.ts","sourceRoot":"","sources":["../../src/MetaMaskConnector.ts"],"names":[],"mappings":"AAEA,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;IAQD,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,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOnE,2BAA2B,IAAI,IAAI;IAMnC,OAAO,CAAC,kBAAkB;CAG3B"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -28,7 +27,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
28
27
|
// src/MetaMaskConnector.ts
|
|
29
28
|
var import_forget = require("@xylabs/forget");
|
|
30
29
|
var import_ethers = require("ethers");
|
|
31
|
-
var
|
|
30
|
+
var MetaMaskConnector = class {
|
|
32
31
|
account = "";
|
|
33
32
|
ethereum = window.ethereum;
|
|
34
33
|
listeners = [];
|
|
@@ -65,51 +64,39 @@ var _MetaMaskConnector = class _MetaMaskConnector {
|
|
|
65
64
|
isMetaMaskInstalled() {
|
|
66
65
|
return this.ethereum && this.ethereum.isMetaMask;
|
|
67
66
|
}
|
|
68
|
-
isWalletIsConnected =
|
|
67
|
+
isWalletIsConnected = () => {
|
|
69
68
|
var _a;
|
|
70
69
|
if (this.currentAccount) {
|
|
71
70
|
console.log("Found an authorized account:", (_a = this.ethereum) == null ? void 0 : _a.selectedAddress);
|
|
72
71
|
return true;
|
|
73
72
|
}
|
|
74
73
|
return false;
|
|
75
|
-
}
|
|
74
|
+
};
|
|
76
75
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
* EIP-1193 Event Listeners
|
|
77
|
+
*
|
|
78
|
+
* .on in Web3Provider does not understand EIP-1193 events
|
|
79
|
+
* see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893
|
|
80
|
+
*/
|
|
82
81
|
providerOnAccountsChanged(listener) {
|
|
83
82
|
var _a;
|
|
84
83
|
(_a = this.ethereum) == null ? void 0 : _a.on("accountsChanged", listener);
|
|
85
|
-
this.providerListeners.push([
|
|
86
|
-
"accountsChanged",
|
|
87
|
-
listener
|
|
88
|
-
]);
|
|
84
|
+
this.providerListeners.push(["accountsChanged", listener]);
|
|
89
85
|
}
|
|
90
86
|
providerOnChainChanged(listener) {
|
|
91
87
|
var _a;
|
|
92
88
|
(_a = this.ethereum) == null ? void 0 : _a.on("chainChanged", listener);
|
|
93
|
-
this.providerListeners.push([
|
|
94
|
-
"chainChanged",
|
|
95
|
-
listener
|
|
96
|
-
]);
|
|
89
|
+
this.providerListeners.push(["chainChanged", listener]);
|
|
97
90
|
}
|
|
98
91
|
providerOnConnect(listener) {
|
|
99
92
|
var _a;
|
|
100
93
|
(_a = this.ethereum) == null ? void 0 : _a.on("connect", listener);
|
|
101
|
-
this.providerListeners.push([
|
|
102
|
-
"connect",
|
|
103
|
-
listener
|
|
104
|
-
]);
|
|
94
|
+
this.providerListeners.push(["connect", listener]);
|
|
105
95
|
}
|
|
106
96
|
providerOnDisconnect(listener) {
|
|
107
97
|
var _a;
|
|
108
98
|
(_a = this.ethereum) == null ? void 0 : _a.on("disconnect", listener);
|
|
109
|
-
this.providerListeners.push([
|
|
110
|
-
"disconnect",
|
|
111
|
-
listener
|
|
112
|
-
]);
|
|
99
|
+
this.providerListeners.push(["disconnect", listener]);
|
|
113
100
|
}
|
|
114
101
|
providerRemoveListener(event, listener) {
|
|
115
102
|
this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener);
|
|
@@ -130,8 +117,7 @@ var _MetaMaskConnector = class _MetaMaskConnector {
|
|
|
130
117
|
}
|
|
131
118
|
const signer = await this.provider.getSigner();
|
|
132
119
|
await signer.getAddress();
|
|
133
|
-
|
|
134
|
-
return signature;
|
|
120
|
+
return await signer.signMessage(message);
|
|
135
121
|
}
|
|
136
122
|
/** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */
|
|
137
123
|
web3ProviderOn(event, listener) {
|
|
@@ -155,8 +141,6 @@ var _MetaMaskConnector = class _MetaMaskConnector {
|
|
|
155
141
|
console.warn("Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed");
|
|
156
142
|
}
|
|
157
143
|
};
|
|
158
|
-
__name(_MetaMaskConnector, "MetaMaskConnector");
|
|
159
|
-
var MetaMaskConnector = _MetaMaskConnector;
|
|
160
144
|
// Annotate the CommonJS export names for ESM import in node:
|
|
161
145
|
0 && (module.exports = {
|
|
162
146
|
MetaMaskConnector
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector.js'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/MetaMaskConnector.ts"],"sourcesContent":["export * from './MetaMaskConnector.js'\n","import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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 return await signer.signMessage(message)\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.on(event, listener))\n }\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.removeListener(event, listener))\n }\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners(): void {\n if (this.provider) {\n forget(this.provider.removeAllListeners())\n }\n }\n\n private logProviderMissing(): void {\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/dist/node/index.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/MetaMaskConnector.ts
|
|
5
2
|
import { forget } from "@xylabs/forget";
|
|
6
3
|
import { BrowserProvider } from "ethers";
|
|
7
|
-
var
|
|
4
|
+
var MetaMaskConnector = class {
|
|
8
5
|
account = "";
|
|
9
6
|
ethereum = window.ethereum;
|
|
10
7
|
listeners = [];
|
|
@@ -41,51 +38,39 @@ var _MetaMaskConnector = class _MetaMaskConnector {
|
|
|
41
38
|
isMetaMaskInstalled() {
|
|
42
39
|
return this.ethereum && this.ethereum.isMetaMask;
|
|
43
40
|
}
|
|
44
|
-
isWalletIsConnected =
|
|
41
|
+
isWalletIsConnected = () => {
|
|
45
42
|
var _a;
|
|
46
43
|
if (this.currentAccount) {
|
|
47
44
|
console.log("Found an authorized account:", (_a = this.ethereum) == null ? void 0 : _a.selectedAddress);
|
|
48
45
|
return true;
|
|
49
46
|
}
|
|
50
47
|
return false;
|
|
51
|
-
}
|
|
48
|
+
};
|
|
52
49
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
* EIP-1193 Event Listeners
|
|
51
|
+
*
|
|
52
|
+
* .on in Web3Provider does not understand EIP-1193 events
|
|
53
|
+
* see - https://github.com/ethers-io/ethers.js/discussions/1560#discussioncomment-730893
|
|
54
|
+
*/
|
|
58
55
|
providerOnAccountsChanged(listener) {
|
|
59
56
|
var _a;
|
|
60
57
|
(_a = this.ethereum) == null ? void 0 : _a.on("accountsChanged", listener);
|
|
61
|
-
this.providerListeners.push([
|
|
62
|
-
"accountsChanged",
|
|
63
|
-
listener
|
|
64
|
-
]);
|
|
58
|
+
this.providerListeners.push(["accountsChanged", listener]);
|
|
65
59
|
}
|
|
66
60
|
providerOnChainChanged(listener) {
|
|
67
61
|
var _a;
|
|
68
62
|
(_a = this.ethereum) == null ? void 0 : _a.on("chainChanged", listener);
|
|
69
|
-
this.providerListeners.push([
|
|
70
|
-
"chainChanged",
|
|
71
|
-
listener
|
|
72
|
-
]);
|
|
63
|
+
this.providerListeners.push(["chainChanged", listener]);
|
|
73
64
|
}
|
|
74
65
|
providerOnConnect(listener) {
|
|
75
66
|
var _a;
|
|
76
67
|
(_a = this.ethereum) == null ? void 0 : _a.on("connect", listener);
|
|
77
|
-
this.providerListeners.push([
|
|
78
|
-
"connect",
|
|
79
|
-
listener
|
|
80
|
-
]);
|
|
68
|
+
this.providerListeners.push(["connect", listener]);
|
|
81
69
|
}
|
|
82
70
|
providerOnDisconnect(listener) {
|
|
83
71
|
var _a;
|
|
84
72
|
(_a = this.ethereum) == null ? void 0 : _a.on("disconnect", listener);
|
|
85
|
-
this.providerListeners.push([
|
|
86
|
-
"disconnect",
|
|
87
|
-
listener
|
|
88
|
-
]);
|
|
73
|
+
this.providerListeners.push(["disconnect", listener]);
|
|
89
74
|
}
|
|
90
75
|
providerRemoveListener(event, listener) {
|
|
91
76
|
this.providerListeners = this.providerListeners.filter(([, savedListener]) => listener !== savedListener);
|
|
@@ -106,8 +91,7 @@ var _MetaMaskConnector = class _MetaMaskConnector {
|
|
|
106
91
|
}
|
|
107
92
|
const signer = await this.provider.getSigner();
|
|
108
93
|
await signer.getAddress();
|
|
109
|
-
|
|
110
|
-
return signature;
|
|
94
|
+
return await signer.signMessage(message);
|
|
111
95
|
}
|
|
112
96
|
/** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */
|
|
113
97
|
web3ProviderOn(event, listener) {
|
|
@@ -131,8 +115,6 @@ var _MetaMaskConnector = class _MetaMaskConnector {
|
|
|
131
115
|
console.warn("Cannot call this method because there is no web3 provider connected. Please confirm that metamask is installed");
|
|
132
116
|
}
|
|
133
117
|
};
|
|
134
|
-
__name(_MetaMaskConnector, "MetaMaskConnector");
|
|
135
|
-
var MetaMaskConnector = _MetaMaskConnector;
|
|
136
118
|
export {
|
|
137
119
|
MetaMaskConnector
|
|
138
120
|
};
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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
|
|
1
|
+
{"version":3,"sources":["../../src/MetaMaskConnector.ts"],"sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers'\nimport { forget } from '@xylabs/forget'\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 //for (const [event, listener] of this.providerListeners) 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 return await signer.signMessage(message)\n }\n\n /** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */\n web3ProviderOn(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.on(event, listener))\n }\n this.listeners.push(listener)\n }\n\n web3ProviderRemoveListener(event: string, listener: Listener): void {\n if (this.provider) {\n forget(this.provider.removeListener(event, listener))\n }\n this.listeners = this.listeners.filter((savedListener) => listener !== savedListener)\n }\n\n web3ProviderRemoveListeners(): void {\n if (this.provider) {\n forget(this.provider.removeAllListeners())\n }\n }\n\n private logProviderMissing(): void {\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
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@metamask/providers": "^17.1.2",
|
|
13
|
-
"@xylabs/forget": "^3.6.
|
|
13
|
+
"@xylabs/forget": "^3.6.5",
|
|
14
14
|
"ethers": "6.13.2"
|
|
15
15
|
},
|
|
16
16
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
19
|
-
"@xylabs/tsconfig-dom": "^3.
|
|
18
|
+
"@xylabs/ts-scripts-yarn3": "^3.13.3",
|
|
19
|
+
"@xylabs/tsconfig-dom": "^3.13.3",
|
|
20
20
|
"typescript": "^5.5.4"
|
|
21
21
|
},
|
|
22
22
|
"exports": {
|
|
@@ -58,6 +58,6 @@
|
|
|
58
58
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
59
59
|
},
|
|
60
60
|
"sideEffects": false,
|
|
61
|
-
"version": "2.110.
|
|
61
|
+
"version": "2.110.11",
|
|
62
62
|
"type": "module"
|
|
63
63
|
}
|
package/src/MetaMaskConnector.ts
CHANGED
|
@@ -106,8 +106,7 @@ export class MetaMaskConnector {
|
|
|
106
106
|
|
|
107
107
|
const signer = await this.provider.getSigner()
|
|
108
108
|
await signer.getAddress()
|
|
109
|
-
|
|
110
|
-
return signature
|
|
109
|
+
return await signer.signMessage(message)
|
|
111
110
|
}
|
|
112
111
|
|
|
113
112
|
/** Web3Provider Listeners - https://docs.ethers.org/v5/api/providers/provider/#Provider--events */
|