@walletconnect/ethereum-provider 2.0.0-beta.2 → 2.0.0-beta.20.3

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,4 +1,4 @@
1
- import { JsonRpcProvider } from "@json-rpc-tools/provider";
1
+ import { JsonRpcProvider } from "@walletconnect/jsonrpc-provider";
2
2
  import { SignerConnectionClientOpts } from "@walletconnect/signer-connection";
3
3
  import { IEthereumProvider, ProviderAccounts, RequestArguments } from "eip1193-provider";
4
4
  export declare const signerMethods: string[];
@@ -9,6 +9,12 @@ export declare const infuraNetworks: {
9
9
  5: string;
10
10
  42: string;
11
11
  };
12
+ export declare const providerEvents: {
13
+ changed: {
14
+ chain: string;
15
+ accounts: string;
16
+ };
17
+ };
12
18
  export interface EthereumRpcConfig {
13
19
  infuraId?: string;
14
20
  custom?: {
@@ -26,6 +32,7 @@ export interface EthereumProviderOptions {
26
32
  declare class EthereumProvider implements IEthereumProvider {
27
33
  events: any;
28
34
  private rpc;
35
+ namespace: string;
29
36
  chainId: number;
30
37
  methods: string[];
31
38
  accounts: string[];
@@ -33,6 +40,8 @@ declare class EthereumProvider implements IEthereumProvider {
33
40
  http: JsonRpcProvider | undefined;
34
41
  constructor(opts?: EthereumProviderOptions);
35
42
  request<T = unknown>(args: RequestArguments): Promise<T>;
43
+ get connected(): boolean;
44
+ get connecting(): boolean;
36
45
  enable(): Promise<ProviderAccounts>;
37
46
  connect(): Promise<void>;
38
47
  disconnect(): Promise<void>;
@@ -44,7 +53,11 @@ declare class EthereumProvider implements IEthereumProvider {
44
53
  private registerEventListeners;
45
54
  private setSignerProvider;
46
55
  private setHttpProvider;
56
+ private isCompatibleChainId;
57
+ private formatChainId;
58
+ private parseChainId;
47
59
  private setChainId;
60
+ private parseAccountId;
48
61
  private setAccounts;
49
62
  }
50
63
  export default EthereumProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAGL,0BAA0B,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzF,eAAO,MAAM,aAAa,UASzB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;CAM1B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOtF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAStF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC;AAED,cAAM,gBAAiB,YAAW,iBAAiB;IAC1C,MAAM,EAAE,GAAG,CAAsB;IAExC,OAAO,CAAC,GAAG,CAAgC;IAEpC,OAAO,SAAK;IACZ,OAAO,WAAiB;IAExB,QAAQ,EAAE,MAAM,EAAE,CAAM;IAExB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;gBAE7B,IAAI,CAAC,EAAE,uBAAuB;IAS7B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBxD,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAKnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGnC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGxC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGlD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAI9C,IAAI,eAAe,YAElB;IAID,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;CAMpB;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAGL,0BAA0B,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzF,eAAO,MAAM,aAAa,UASzB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;CAM1B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOtF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAStF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC;AAED,cAAM,gBAAiB,YAAW,iBAAiB;IAC1C,MAAM,EAAE,GAAG,CAAsB;IAExC,OAAO,CAAC,GAAG,CAAgC;IAEpC,SAAS,SAAY;IACrB,OAAO,SAAK;IACZ,OAAO,WAAiB;IAExB,QAAQ,EAAE,MAAM,EAAE,CAAM;IAExB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;gBAE7B,IAAI,CAAC,EAAE,uBAAuB;IAS7B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBrE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAEY,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAKnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGnC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGxC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGlD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAI9C,IAAI,eAAe,YAElB;IAID,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,WAAW;CAMpB;AAED,eAAe,gBAAgB,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRpcUrl = exports.getInfuraRpcUrl = exports.infuraNetworks = exports.signerMethods = void 0;
3
+ exports.getRpcUrl = exports.getInfuraRpcUrl = exports.providerEvents = exports.infuraNetworks = exports.signerMethods = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const eventemitter3_1 = tslib_1.__importDefault(require("eventemitter3"));
6
- const provider_1 = require("@json-rpc-tools/provider");
5
+ const events_1 = require("events");
6
+ const jsonrpc_provider_1 = require("@walletconnect/jsonrpc-provider");
7
+ const jsonrpc_http_connection_1 = require("@walletconnect/jsonrpc-http-connection");
7
8
  const signer_connection_1 = require("@walletconnect/signer-connection");
8
9
  exports.signerMethods = [
9
10
  "eth_requestAccounts",
@@ -22,6 +23,12 @@ exports.infuraNetworks = {
22
23
  5: "goerli",
23
24
  42: "kovan",
24
25
  };
26
+ exports.providerEvents = {
27
+ changed: {
28
+ chain: "chainChanged",
29
+ accounts: "accountsChanged",
30
+ },
31
+ };
25
32
  function getInfuraRpcUrl(chainId, infuraId) {
26
33
  let rpcUrl;
27
34
  const network = exports.infuraNetworks[chainId];
@@ -45,7 +52,8 @@ function getRpcUrl(chainId, rpc) {
45
52
  exports.getRpcUrl = getRpcUrl;
46
53
  class EthereumProvider {
47
54
  constructor(opts) {
48
- this.events = new eventemitter3_1.default();
55
+ this.events = new events_1.EventEmitter();
56
+ this.namespace = "eip155";
49
57
  this.chainId = 1;
50
58
  this.methods = exports.signerMethods;
51
59
  this.accounts = [];
@@ -70,7 +78,7 @@ class EthereumProvider {
70
78
  break;
71
79
  }
72
80
  if (args.method.startsWith("eth_signTypedData") || this.methods.includes(args.method)) {
73
- return this.signer.request(args);
81
+ return this.signer.request(args, { chainId: this.formatChainId(this.chainId) });
74
82
  }
75
83
  if (typeof this.http === "undefined") {
76
84
  throw new Error(`Cannot request JSON-RPC method (${args.method}) without provided rpc url`);
@@ -78,6 +86,12 @@ class EthereumProvider {
78
86
  return this.http.request(args);
79
87
  });
80
88
  }
89
+ get connected() {
90
+ return this.signer.connection.connected;
91
+ }
92
+ get connecting() {
93
+ return this.signer.connection.connecting;
94
+ }
81
95
  enable() {
82
96
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
97
  const accounts = yield this.request({ method: "eth_requestAccounts" });
@@ -110,12 +124,20 @@ class EthereumProvider {
110
124
  return true;
111
125
  }
112
126
  registerEventListeners() {
127
+ this.signer.on("connect", () => tslib_1.__awaiter(this, void 0, void 0, function* () {
128
+ const chains = this.signer.connection.chains;
129
+ if (chains && chains.length)
130
+ this.setChainId(chains);
131
+ const accounts = this.signer.connection.accounts;
132
+ if (accounts && accounts.length)
133
+ this.setAccounts(accounts);
134
+ }));
113
135
  this.signer.connection.on(signer_connection_1.SIGNER_EVENTS.created, (session) => {
114
136
  this.setChainId(session.permissions.blockchain.chains);
115
137
  this.setAccounts(session.state.accounts);
116
138
  });
117
139
  this.signer.connection.on(signer_connection_1.SIGNER_EVENTS.updated, (session) => {
118
- const chain = `eip155:${this.chainId}`;
140
+ const chain = this.formatChainId(this.chainId);
119
141
  if (!session.permissions.blockchain.chains.includes(chain)) {
120
142
  this.setChainId(session.permissions.blockchain.chains);
121
143
  }
@@ -124,37 +146,64 @@ class EthereumProvider {
124
146
  }
125
147
  });
126
148
  this.signer.connection.on(signer_connection_1.SIGNER_EVENTS.notification, (notification) => {
127
- this.events.emit(notification.type, notification.data);
149
+ if (notification.type === exports.providerEvents.changed.accounts) {
150
+ this.accounts = notification.data;
151
+ this.events.emit(exports.providerEvents.changed.accounts, this.accounts);
152
+ }
153
+ else if (notification.type === exports.providerEvents.changed.chain) {
154
+ this.chainId = notification.data;
155
+ this.events.emit(exports.providerEvents.changed.chain, this.chainId);
156
+ }
157
+ else {
158
+ this.events.emit(notification.type, notification.data);
159
+ }
128
160
  });
129
- this.events.on("chainChanged", chainId => this.setHttpProvider(chainId));
161
+ this.signer.on("disconnect", () => {
162
+ this.events.emit("disconnect");
163
+ });
164
+ this.events.on(exports.providerEvents.changed.chain, chainId => this.setHttpProvider(chainId));
130
165
  }
131
166
  setSignerProvider(client) {
132
167
  const connection = new signer_connection_1.SignerConnection({
133
- chains: [`eip155:${this.chainId}`],
168
+ chains: [this.formatChainId(this.chainId)],
134
169
  methods: this.methods,
135
170
  client,
136
171
  });
137
- return new provider_1.JsonRpcProvider(connection);
172
+ return new jsonrpc_provider_1.JsonRpcProvider(connection);
138
173
  }
139
174
  setHttpProvider(chainId) {
140
175
  const rpcUrl = getRpcUrl(chainId, this.rpc);
141
176
  if (typeof rpcUrl === "undefined")
142
177
  return undefined;
143
- const http = new provider_1.JsonRpcProvider(rpcUrl);
178
+ const http = new jsonrpc_provider_1.JsonRpcProvider(new jsonrpc_http_connection_1.HttpConnection(rpcUrl));
144
179
  return http;
145
180
  }
181
+ isCompatibleChainId(chainId) {
182
+ return chainId.startsWith(`${this.namespace}:`);
183
+ }
184
+ formatChainId(chainId) {
185
+ return `${this.namespace}:${chainId}`;
186
+ }
187
+ parseChainId(chainId) {
188
+ return Number(chainId.split(":")[1]);
189
+ }
146
190
  setChainId(chains) {
147
- const compatible = chains.filter(x => x.startsWith("eip155"));
191
+ const compatible = chains.filter(x => this.isCompatibleChainId(x));
148
192
  if (compatible.length) {
149
- this.chainId = Number(compatible[0].split(":")[1]);
150
- this.events.emit("chainChanged", this.chainId);
193
+ this.chainId = this.parseChainId(compatible[0]);
194
+ this.events.emit(exports.providerEvents.changed.chain, this.chainId);
151
195
  }
152
196
  }
197
+ parseAccountId(account) {
198
+ const [namespace, reference, address] = account.split(":");
199
+ const chainId = `${namespace}:${reference}`;
200
+ return { chainId, address };
201
+ }
153
202
  setAccounts(accounts) {
154
203
  this.accounts = accounts
155
- .filter(x => x.split("@")[1] === `eip155:${this.chainId}`)
156
- .map(x => x.split("@")[0]);
157
- this.events.emit("accountsChanged", this.accounts);
204
+ .filter(x => this.parseChainId(this.parseAccountId(x).chainId) === this.chainId)
205
+ .map(x => this.parseAccountId(x).address);
206
+ this.events.emit(exports.providerEvents.changed.accounts, this.accounts);
158
207
  }
159
208
  }
160
209
  exports.default = EthereumProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,0EAAyC;AACzC,uDAA2D;AAE3D,wEAI0C;AAG7B,QAAA,aAAa,GAAG;IAC3B,qBAAqB;IACrB,cAAc;IACd,aAAa;IACb,qBAAqB;IACrB,qBAAqB;IACrB,UAAU;IACV,mBAAmB;IACnB,eAAe;CAChB,CAAC;AAEW,QAAA,cAAc,GAAG;IAC5B,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,EAAE,EAAE,OAAO;CACZ,CAAC;AASF,SAAgB,eAAe,CAAC,OAAe,EAAE,QAAiB;IAChE,IAAI,MAA0B,CAAC;IAC/B,MAAM,OAAO,GAAG,sBAAc,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,OAAO,EAAE;QACX,MAAM,GAAG,WAAW,OAAO,iBAAiB,QAAQ,EAAE,CAAC;KACxD;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAPD,0CAOC;AAED,SAAgB,SAAS,CAAC,OAAe,EAAE,GAAuB;IAChE,IAAI,MAA0B,CAAC;IAC/B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAC,CAAC;IAC1D,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;QACrB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC9B;SAAM,IAAI,SAAS,EAAE;QACpB,MAAM,GAAG,SAAS,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,8BASC;AASD,MAAM,gBAAgB;IAapB,YAAY,IAA8B;QAZnC,WAAM,GAAQ,IAAI,uBAAY,EAAE,CAAC;QAIjC,YAAO,GAAG,CAAC,CAAC;QACZ,YAAO,GAAG,qBAAa,CAAC;QAExB,aAAQ,GAAa,EAAE,CAAC;QAM7B,IAAI,CAAC,GAAG,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,IAAI,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAC,CAAC,CAAC,CAAC,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAClF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEY,OAAO,CAAc,IAAsB;;YACtD,QAAQ,IAAI,CAAC,MAAM,EAAE;gBACnB,KAAK,qBAAqB;oBACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC,QAAe,CAAC;gBAC9B,KAAK,cAAc;oBACjB,OAAO,IAAI,CAAC,QAAe,CAAC;gBAC9B,KAAK,aAAa;oBAChB,OAAO,IAAI,CAAC,OAAc,CAAC;gBAC7B;oBACE,MAAM;aACT;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAClC;YACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;gBACpC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,MAAM,4BAA4B,CAAC,CAAC;aAC7F;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;IAEY,MAAM;;YACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACvE,OAAO,QAA4B,CAAC;QACtC,CAAC;KAAA;IAEY,OAAO;;YAClB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;KAAA;IAEY,UAAU;;YACrB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;KAAA;IAEM,EAAE,CAAC,KAAU,EAAE,QAAa;QACjC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IACM,IAAI,CAAC,KAAa,EAAE,QAAa;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IACM,cAAc,CAAC,KAAa,EAAE,QAAa;QAChD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACM,GAAG,CAAC,KAAa,EAAE,QAAa;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAIO,sBAAsB;QAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,iCAAa,CAAC,OAAO,EAAE,CAAC,OAA6B,EAAE,EAAE;YACjF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,iCAAa,CAAC,OAAO,EAAE,CAAC,OAA6B,EAAE,EAAE;YACjF,MAAM,KAAK,GAAG,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACxD;YACD,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;gBAC5C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACvB,iCAAa,CAAC,YAAY,EAC1B,CAAC,YAAuC,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CACF,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEO,iBAAiB,CAAC,MAAmC;QAC3D,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC;YACtC,MAAM,EAAE,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;SACP,CAAC,CAAC;QACH,OAAO,IAAI,0BAAe,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,0BAAe,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU,CAAC,MAAgB;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAChD;IACH,CAAC;IAEO,WAAW,CAAC,QAAkB;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;CACF;AAED,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { JsonRpcProvider } from "@walletconnect/jsonrpc-provider";
2
+ import { SignerConnectionClientOpts } from "@walletconnect/signer-connection";
3
+ import { IEthereumProvider, ProviderAccounts, RequestArguments } from "eip1193-provider";
4
+ export declare const signerMethods: string[];
5
+ export declare const infuraNetworks: {
6
+ 1: string;
7
+ 3: string;
8
+ 4: string;
9
+ 5: string;
10
+ 42: string;
11
+ };
12
+ export declare const providerEvents: {
13
+ changed: {
14
+ chain: string;
15
+ accounts: string;
16
+ };
17
+ };
18
+ export interface EthereumRpcConfig {
19
+ infuraId?: string;
20
+ custom?: {
21
+ [chainId: number]: string;
22
+ };
23
+ }
24
+ export declare function getInfuraRpcUrl(chainId: number, infuraId?: string): string | undefined;
25
+ export declare function getRpcUrl(chainId: number, rpc?: EthereumRpcConfig): string | undefined;
26
+ export interface EthereumProviderOptions {
27
+ chainId: number;
28
+ methods?: string[];
29
+ rpc?: EthereumRpcConfig;
30
+ client?: SignerConnectionClientOpts;
31
+ }
32
+ declare class EthereumProvider implements IEthereumProvider {
33
+ events: any;
34
+ private rpc;
35
+ namespace: string;
36
+ chainId: number;
37
+ methods: string[];
38
+ accounts: string[];
39
+ signer: JsonRpcProvider;
40
+ http: JsonRpcProvider | undefined;
41
+ constructor(opts?: EthereumProviderOptions);
42
+ request<T = unknown>(args: RequestArguments): Promise<T>;
43
+ get connected(): boolean;
44
+ get connecting(): boolean;
45
+ enable(): Promise<ProviderAccounts>;
46
+ connect(): Promise<void>;
47
+ disconnect(): Promise<void>;
48
+ on(event: any, listener: any): void;
49
+ once(event: string, listener: any): void;
50
+ removeListener(event: string, listener: any): void;
51
+ off(event: string, listener: any): void;
52
+ get isWalletConnect(): boolean;
53
+ private registerEventListeners;
54
+ private setSignerProvider;
55
+ private setHttpProvider;
56
+ private isCompatibleChainId;
57
+ private formatChainId;
58
+ private parseChainId;
59
+ private setChainId;
60
+ private parseAccountId;
61
+ private setAccounts;
62
+ }
63
+ export default EthereumProvider;
64
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAGL,0BAA0B,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzF,eAAO,MAAM,aAAa,UASzB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;CAM1B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOtF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAStF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC;AAED,cAAM,gBAAiB,YAAW,iBAAiB;IAC1C,MAAM,EAAE,GAAG,CAAsB;IAExC,OAAO,CAAC,GAAG,CAAgC;IAEpC,SAAS,SAAY;IACrB,OAAO,SAAK;IACZ,OAAO,WAAiB;IAExB,QAAQ,EAAE,MAAM,EAAE,CAAM;IAExB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;gBAE7B,IAAI,CAAC,EAAE,uBAAuB;IAS7B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBrE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAEY,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAKnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGnC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGxC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGlD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAI9C,IAAI,eAAe,YAElB;IAID,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,WAAW;CAMpB;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,196 @@
1
+ import { EventEmitter } from "events";
2
+ import { JsonRpcProvider } from "@walletconnect/jsonrpc-provider";
3
+ import { HttpConnection } from "@walletconnect/jsonrpc-http-connection";
4
+ import { SignerConnection, SIGNER_EVENTS, } from "@walletconnect/signer-connection";
5
+ export const signerMethods = [
6
+ "eth_requestAccounts",
7
+ "eth_accounts",
8
+ "eth_chainId",
9
+ "eth_sendTransaction",
10
+ "eth_signTransaction",
11
+ "eth_sign",
12
+ "eth_signTypedData",
13
+ "personal_sign",
14
+ ];
15
+ export const infuraNetworks = {
16
+ 1: "mainnet",
17
+ 3: "ropsten",
18
+ 4: "rinkeby",
19
+ 5: "goerli",
20
+ 42: "kovan",
21
+ };
22
+ export const providerEvents = {
23
+ changed: {
24
+ chain: "chainChanged",
25
+ accounts: "accountsChanged",
26
+ },
27
+ };
28
+ export function getInfuraRpcUrl(chainId, infuraId) {
29
+ let rpcUrl;
30
+ const network = infuraNetworks[chainId];
31
+ if (network) {
32
+ rpcUrl = `https://${network}.infura.io/v3/${infuraId}`;
33
+ }
34
+ return rpcUrl;
35
+ }
36
+ export function getRpcUrl(chainId, rpc) {
37
+ let rpcUrl;
38
+ const infuraUrl = getInfuraRpcUrl(chainId, rpc === null || rpc === void 0 ? void 0 : rpc.infuraId);
39
+ if (rpc && rpc.custom) {
40
+ rpcUrl = rpc.custom[chainId];
41
+ }
42
+ else if (infuraUrl) {
43
+ rpcUrl = infuraUrl;
44
+ }
45
+ return rpcUrl;
46
+ }
47
+ class EthereumProvider {
48
+ constructor(opts) {
49
+ this.events = new EventEmitter();
50
+ this.namespace = "eip155";
51
+ this.chainId = 1;
52
+ this.methods = signerMethods;
53
+ this.accounts = [];
54
+ this.rpc = opts === null || opts === void 0 ? void 0 : opts.rpc;
55
+ this.chainId = (opts === null || opts === void 0 ? void 0 : opts.chainId) || this.chainId;
56
+ this.methods = (opts === null || opts === void 0 ? void 0 : opts.methods) ? [...opts === null || opts === void 0 ? void 0 : opts.methods, ...this.methods] : this.methods;
57
+ this.signer = this.setSignerProvider(opts === null || opts === void 0 ? void 0 : opts.client);
58
+ this.http = this.setHttpProvider(this.chainId);
59
+ this.registerEventListeners();
60
+ }
61
+ async request(args) {
62
+ switch (args.method) {
63
+ case "eth_requestAccounts":
64
+ await this.connect();
65
+ return this.accounts;
66
+ case "eth_accounts":
67
+ return this.accounts;
68
+ case "eth_chainId":
69
+ return this.chainId;
70
+ default:
71
+ break;
72
+ }
73
+ if (args.method.startsWith("eth_signTypedData") || this.methods.includes(args.method)) {
74
+ return this.signer.request(args, { chainId: this.formatChainId(this.chainId) });
75
+ }
76
+ if (typeof this.http === "undefined") {
77
+ throw new Error(`Cannot request JSON-RPC method (${args.method}) without provided rpc url`);
78
+ }
79
+ return this.http.request(args);
80
+ }
81
+ get connected() {
82
+ return this.signer.connection.connected;
83
+ }
84
+ get connecting() {
85
+ return this.signer.connection.connecting;
86
+ }
87
+ async enable() {
88
+ const accounts = await this.request({ method: "eth_requestAccounts" });
89
+ return accounts;
90
+ }
91
+ async connect() {
92
+ await this.signer.connect();
93
+ }
94
+ async disconnect() {
95
+ await this.signer.disconnect();
96
+ }
97
+ on(event, listener) {
98
+ this.events.on(event, listener);
99
+ }
100
+ once(event, listener) {
101
+ this.events.once(event, listener);
102
+ }
103
+ removeListener(event, listener) {
104
+ this.events.removeListener(event, listener);
105
+ }
106
+ off(event, listener) {
107
+ this.events.off(event, listener);
108
+ }
109
+ get isWalletConnect() {
110
+ return true;
111
+ }
112
+ registerEventListeners() {
113
+ this.signer.on("connect", async () => {
114
+ const chains = this.signer.connection.chains;
115
+ if (chains && chains.length)
116
+ this.setChainId(chains);
117
+ const accounts = this.signer.connection.accounts;
118
+ if (accounts && accounts.length)
119
+ this.setAccounts(accounts);
120
+ });
121
+ this.signer.connection.on(SIGNER_EVENTS.created, (session) => {
122
+ this.setChainId(session.permissions.blockchain.chains);
123
+ this.setAccounts(session.state.accounts);
124
+ });
125
+ this.signer.connection.on(SIGNER_EVENTS.updated, (session) => {
126
+ const chain = this.formatChainId(this.chainId);
127
+ if (!session.permissions.blockchain.chains.includes(chain)) {
128
+ this.setChainId(session.permissions.blockchain.chains);
129
+ }
130
+ if (session.state.accounts !== this.accounts) {
131
+ this.setAccounts(session.state.accounts);
132
+ }
133
+ });
134
+ this.signer.connection.on(SIGNER_EVENTS.notification, (notification) => {
135
+ if (notification.type === providerEvents.changed.accounts) {
136
+ this.accounts = notification.data;
137
+ this.events.emit(providerEvents.changed.accounts, this.accounts);
138
+ }
139
+ else if (notification.type === providerEvents.changed.chain) {
140
+ this.chainId = notification.data;
141
+ this.events.emit(providerEvents.changed.chain, this.chainId);
142
+ }
143
+ else {
144
+ this.events.emit(notification.type, notification.data);
145
+ }
146
+ });
147
+ this.signer.on("disconnect", () => {
148
+ this.events.emit("disconnect");
149
+ });
150
+ this.events.on(providerEvents.changed.chain, chainId => this.setHttpProvider(chainId));
151
+ }
152
+ setSignerProvider(client) {
153
+ const connection = new SignerConnection({
154
+ chains: [this.formatChainId(this.chainId)],
155
+ methods: this.methods,
156
+ client,
157
+ });
158
+ return new JsonRpcProvider(connection);
159
+ }
160
+ setHttpProvider(chainId) {
161
+ const rpcUrl = getRpcUrl(chainId, this.rpc);
162
+ if (typeof rpcUrl === "undefined")
163
+ return undefined;
164
+ const http = new JsonRpcProvider(new HttpConnection(rpcUrl));
165
+ return http;
166
+ }
167
+ isCompatibleChainId(chainId) {
168
+ return chainId.startsWith(`${this.namespace}:`);
169
+ }
170
+ formatChainId(chainId) {
171
+ return `${this.namespace}:${chainId}`;
172
+ }
173
+ parseChainId(chainId) {
174
+ return Number(chainId.split(":")[1]);
175
+ }
176
+ setChainId(chains) {
177
+ const compatible = chains.filter(x => this.isCompatibleChainId(x));
178
+ if (compatible.length) {
179
+ this.chainId = this.parseChainId(compatible[0]);
180
+ this.events.emit(providerEvents.changed.chain, this.chainId);
181
+ }
182
+ }
183
+ parseAccountId(account) {
184
+ const [namespace, reference, address] = account.split(":");
185
+ const chainId = `${namespace}:${reference}`;
186
+ return { chainId, address };
187
+ }
188
+ setAccounts(accounts) {
189
+ this.accounts = accounts
190
+ .filter(x => this.parseChainId(this.parseAccountId(x).chainId) === this.chainId)
191
+ .map(x => this.parseAccountId(x).address);
192
+ this.events.emit(providerEvents.changed.accounts, this.accounts);
193
+ }
194
+ }
195
+ export default EthereumProvider;
196
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}