@tomo-inc/inject-providers 0.0.14 → 0.0.15

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/index.cjs CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  var ethRpcErrors = require('eth-rpc-errors');
4
4
  var events = require('events');
5
+ var walletUtils = require('@tomo-inc/wallet-utils');
5
6
  var jsonRpcEngine = require('json-rpc-engine');
6
7
  var jsonRpcMiddlewareStream = require('json-rpc-middleware-stream');
7
8
  var viem = require('viem');
@@ -169,10 +170,10 @@ function isHexString(str) {
169
170
  }
170
171
 
171
172
  // src/btc/unisat.ts
172
- var chainType = "btc" /* BTC */;
173
- var BtcProvider = class extends events.EventEmitter {
173
+ var BitcoinProvider = class extends events.EventEmitter {
174
174
  constructor(productInfo, { sendRequest, onResponse }) {
175
175
  super();
176
+ this.type = walletUtils.ChainTypeEnum.BITCOIN;
176
177
  this._selectedAddress = null;
177
178
  this._isConnected = false;
178
179
  this._initialized = false;
@@ -215,13 +216,13 @@ var BtcProvider = class extends events.EventEmitter {
215
216
  };
216
217
  this.subscribeWalletEventsCallback = ({ method, data }) => {
217
218
  if (method === "accountsChanged") {
218
- const addresses = (data == null ? void 0 : data[chainType]) || [];
219
+ const addresses = (data == null ? void 0 : data[this.type]) || [];
219
220
  const accounts = addresses.map(({ address }) => address);
220
221
  this._handleAccountsChanged(accounts);
221
222
  }
222
223
  if (method === "chainChanged") {
223
224
  const { chainId, type } = data;
224
- if (type.indexOf(`${chainType}:`) === 0) {
225
+ if (type.indexOf(`${this.type}:`) === 0) {
225
226
  this._handleChainChanged({ chainId, isConnected: true });
226
227
  }
227
228
  }
@@ -245,7 +246,7 @@ var BtcProvider = class extends events.EventEmitter {
245
246
  throw ethRpcErrors.ethErrors.rpc.invalidRequest();
246
247
  }
247
248
  const dappInfo = await getDappInfo();
248
- this.sendRequest(chainType, { method, params, dappInfo });
249
+ this.sendRequest(this.type, { method, params, dappInfo });
249
250
  const connectFuns = {
250
251
  getAccounts: true,
251
252
  requestAccounts: true
@@ -314,7 +315,7 @@ var BtcProvider = class extends events.EventEmitter {
314
315
  params: { txId }
315
316
  });
316
317
  };
317
- this.signMessage = async (text, type) => {
318
+ this.signMessage = async (text, type = "ecdsa") => {
318
319
  return this._request({
319
320
  method: "signMessage",
320
321
  params: {
@@ -403,6 +404,12 @@ var BtcProvider = class extends events.EventEmitter {
403
404
  }
404
405
  });
405
406
  };
407
+ this.sendTransaction = async (params) => {
408
+ return this._request({
409
+ method: "sendTransaction",
410
+ params
411
+ });
412
+ };
406
413
  this.name = productInfo.name;
407
414
  this.rdns = productInfo.rdns;
408
415
  this._handleAccountsChanged = this._handleAccountsChanged.bind(this);
@@ -436,10 +443,10 @@ var BtcProvider = class extends events.EventEmitter {
436
443
  }
437
444
  }
438
445
  };
439
- var chainType2 = "doge" /* DOGE */;
440
446
  var DogecoinProvider = class extends events.EventEmitter {
441
447
  constructor(productInfo, { sendRequest, onResponse }) {
442
448
  super();
449
+ this.type = walletUtils.ChainTypeEnum.DOGECOIN;
443
450
  this._selectedAddress = null;
444
451
  this._network = null;
445
452
  this._isConnected = false;
@@ -493,7 +500,7 @@ var DogecoinProvider = class extends events.EventEmitter {
493
500
  throw ethRpcErrors.ethErrors.rpc.invalidRequest();
494
501
  }
495
502
  const dappInfo = await getDappInfo();
496
- this.sendRequest(chainType2, { method, params, dappInfo });
503
+ this.sendRequest(this.type, { method, params, dappInfo });
497
504
  return this.onResponse({ method }).then((res) => {
498
505
  const { data } = res || {};
499
506
  return adapter ? adapter(data) : data;
@@ -815,7 +822,6 @@ var EMITTED_NOTIFICATIONS = [
815
822
  ];
816
823
 
817
824
  // src/evm/metamask.ts
818
- var chainType3 = "evm" /* EVM */;
819
825
  var EvmProvider = class extends events.EventEmitter {
820
826
  /**
821
827
  * @param connectionStream - A Node.js duplex stream
@@ -839,15 +845,16 @@ var EvmProvider = class extends events.EventEmitter {
839
845
  }
840
846
  validateLoggerObject(logger);
841
847
  super();
848
+ this.type = walletUtils.ChainTypeEnum.EVM;
842
849
  this.subscribeWalletEventsCallback = ({ method, data }) => {
843
850
  if (method === "accountsChanged") {
844
- const addresses = (data == null ? void 0 : data[chainType3]) || [];
851
+ const addresses = (data == null ? void 0 : data[this.type]) || [];
845
852
  const accounts = addresses.map(({ address }) => address);
846
853
  this._handleAccountsChanged(accounts, true);
847
854
  }
848
855
  if (method === "chainChanged") {
849
856
  const { chainId, type } = data;
850
- if (type.indexOf(`${chainType3}:`) === 0) {
857
+ if (type.indexOf(`${this.type}:`) === 0) {
851
858
  const chainIdHex = viem.toHex(parseInt(chainId));
852
859
  this._handleChainChanged({ chainId: chainIdHex, isConnected: true });
853
860
  }
@@ -1017,7 +1024,7 @@ var EvmProvider = class extends events.EventEmitter {
1017
1024
  };
1018
1025
  const dappInfo = await getDappInfo();
1019
1026
  args = __spreadValues(__spreadValues({}, args), { dappInfo });
1020
- this.sendRequest(chainType3, args);
1027
+ this.sendRequest(this.type, args);
1021
1028
  return this.onResponse(args).then((res) => {
1022
1029
  const { data, method: method2 } = res || {};
1023
1030
  if (method2 === "_wallet_getProviderState") {
@@ -1436,10 +1443,10 @@ var hexToTx = (hexString) => {
1436
1443
  };
1437
1444
 
1438
1445
  // src/solana/phantom.ts
1439
- var chainType4 = "sol" /* SOL */;
1440
1446
  var PhantomProvider = class extends events.EventEmitter {
1441
1447
  constructor(productInfo, { sendRequest, onResponse }) {
1442
1448
  super();
1449
+ this.chainType = walletUtils.ChainTypeEnum.SOLANA;
1443
1450
  this._isUnlocked = false;
1444
1451
  this.name = "";
1445
1452
  this.icon = "";
@@ -1484,7 +1491,7 @@ var PhantomProvider = class extends events.EventEmitter {
1484
1491
  };
1485
1492
  this.subscribeWalletEventsCallback = ({ method, data }) => {
1486
1493
  if (method === "accountsChanged") {
1487
- const accounts = data == null ? void 0 : data[chainType4];
1494
+ const accounts = data == null ? void 0 : data[this.chainType];
1488
1495
  this._handleAccountsChanged(accounts);
1489
1496
  }
1490
1497
  };
@@ -1506,7 +1513,7 @@ var PhantomProvider = class extends events.EventEmitter {
1506
1513
  throw ethRpcErrors.ethErrors.rpc.invalidRequest();
1507
1514
  }
1508
1515
  const dappInfo = await getDappInfo();
1509
- this.sendRequest(chainType4, __spreadProps(__spreadValues({}, data), { dappInfo }));
1516
+ this.sendRequest(this.chainType, __spreadProps(__spreadValues({}, data), { dappInfo }));
1510
1517
  return this.onResponse(data).then((res) => {
1511
1518
  let { data: data2 } = res || {};
1512
1519
  if (data2 && data2.publicKey) {
@@ -1771,15 +1778,17 @@ Resources:`;
1771
1778
  }
1772
1779
  }
1773
1780
  };
1774
- var chainType5 = "tron" /* TRON */;
1781
+ var _fullHost = "https://api.trongrid.io";
1775
1782
  var TomoTronProvider = class extends events.EventEmitter {
1776
1783
  constructor(productInfo, { sendRequest, onResponse }) {
1777
1784
  super();
1785
+ this.type = walletUtils.ChainTypeEnum.TRON;
1778
1786
  this._isUnlocked = false;
1779
1787
  this.name = "";
1780
1788
  this.icon = "";
1781
1789
  this.ready = false;
1782
- this.tronWeb = null;
1790
+ this.tronWeb = new tronweb.TronWeb({ fullHost: _fullHost });
1791
+ this.address = "";
1783
1792
  this.events = {
1784
1793
  connect: true,
1785
1794
  disconnect: true,
@@ -1795,9 +1804,9 @@ var TomoTronProvider = class extends events.EventEmitter {
1795
1804
  // private _pushEventHandlers: PushEventHandlers;
1796
1805
  this._requestPromise = new ReadyPromise(0);
1797
1806
  this._initTronWeb = async (res) => {
1798
- const { fullHost = "https://api.trongrid.io", address } = res || {};
1807
+ const { fullHost, address } = res || {};
1799
1808
  this.tronWeb = new tronweb.TronWeb({
1800
- fullHost
1809
+ fullHost: fullHost || _fullHost
1801
1810
  });
1802
1811
  this.tronWeb.defaultAddress.base58 = address;
1803
1812
  this.tronWeb.defaultAddress.hex = tronweb.TronWeb.address.toHex(address);
@@ -1866,7 +1875,7 @@ var TomoTronProvider = class extends events.EventEmitter {
1866
1875
  };
1867
1876
  this.subscribeWalletEventsCallback = ({ method, data }) => {
1868
1877
  if (method === "accountsChanged") {
1869
- const accounts = data == null ? void 0 : data[chainType5];
1878
+ const accounts = data == null ? void 0 : data[this.type];
1870
1879
  this._handleAccountsChanged(accounts);
1871
1880
  }
1872
1881
  };
@@ -1875,7 +1884,7 @@ var TomoTronProvider = class extends events.EventEmitter {
1875
1884
  throw ethRpcErrors.ethErrors.rpc.invalidRequest();
1876
1885
  }
1877
1886
  const dappInfo = await getDappInfo();
1878
- this.sendRequest(chainType5, __spreadProps(__spreadValues({}, data), { dappInfo }));
1887
+ this.sendRequest(this.type, __spreadProps(__spreadValues({}, data), { dappInfo }));
1879
1888
  return this.onResponse(data).then((res) => {
1880
1889
  const { data: data2, method } = res || {};
1881
1890
  if (method === "tron_requestAccounts") {
@@ -2004,7 +2013,7 @@ var TomoTronProvider = class extends events.EventEmitter {
2004
2013
  });
2005
2014
  this.on("disconnect", (result) => {
2006
2015
  this._state.isConnected = false;
2007
- this.tronWeb = null;
2016
+ this.tronWeb = new tronweb.TronWeb({ fullHost: _fullHost });
2008
2017
  window.postMessage(
2009
2018
  {
2010
2019
  message: {
@@ -2051,7 +2060,7 @@ var TomoTronProvider = class extends events.EventEmitter {
2051
2060
  }
2052
2061
  };
2053
2062
 
2054
- exports.BtcProvider = BtcProvider;
2063
+ exports.BitcoinProvider = BitcoinProvider;
2055
2064
  exports.DogecoinProvider = DogecoinProvider;
2056
2065
  exports.EvmProvider = EvmProvider;
2057
2066
  exports.SolanaProvider = PhantomProvider;