@vleap/warps-adapter-evm 0.2.0-beta.56 → 0.2.0-beta.57

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.js CHANGED
@@ -20,18 +20,21 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
+ ArbitrumAdapter: () => ArbitrumAdapter,
23
24
  ArbitrumExplorers: () => ArbitrumExplorers,
25
+ BaseAdapter: () => BaseAdapter,
24
26
  BaseExplorers: () => BaseExplorers,
27
+ EthereumAdapter: () => EthereumAdapter,
25
28
  EthereumExplorers: () => EthereumExplorers,
29
+ EvmChainIdMap: () => EvmChainIdMap,
30
+ EvmChainIds: () => EvmChainIds,
26
31
  EvmExplorers: () => EvmExplorers,
27
32
  ExplorerUrls: () => ExplorerUrls,
28
33
  KnownTokens: () => KnownTokens,
29
- MnemonicWalletProvider: () => MnemonicWalletProvider,
30
34
  NativeTokenArb: () => NativeTokenArb,
31
35
  NativeTokenBase: () => NativeTokenBase,
32
36
  NativeTokenEth: () => NativeTokenEth,
33
- PrivateKeyWalletProvider: () => PrivateKeyWalletProvider,
34
- UniswapService: () => UniswapService,
37
+ SupportedEvmChainIds: () => SupportedEvmChainIds,
35
38
  WarpEvmConstants: () => WarpEvmConstants,
36
39
  WarpEvmDataLoader: () => WarpEvmDataLoader,
37
40
  WarpEvmExecutor: () => WarpEvmExecutor,
@@ -43,9 +46,6 @@ __export(index_exports, {
43
46
  findKnownTokenById: () => findKnownTokenById,
44
47
  getAllEvmAdapters: () => getAllEvmAdapters,
45
48
  getAllEvmChainNames: () => getAllEvmChainNames,
46
- getArbitrumAdapter: () => getArbitrumAdapter,
47
- getBaseAdapter: () => getBaseAdapter,
48
- getEthereumAdapter: () => getEthereumAdapter,
49
49
  getKnownTokensForChain: () => getKnownTokensForChain
50
50
  });
51
51
  module.exports = __toCommonJS(index_exports);
@@ -192,12 +192,28 @@ var PrivateKeyWalletProvider = class {
192
192
  getWalletInstance() {
193
193
  return this.getWallet();
194
194
  }
195
+ create(mnemonic) {
196
+ const wallet = import_ethers.ethers.Wallet.fromPhrase(mnemonic);
197
+ return {
198
+ provider: "privateKey",
199
+ address: wallet.address,
200
+ privateKey: wallet.privateKey,
201
+ mnemonic
202
+ };
203
+ }
204
+ generate() {
205
+ const wallet = import_ethers.ethers.Wallet.createRandom();
206
+ return {
207
+ provider: "privateKey",
208
+ address: wallet.address,
209
+ privateKey: wallet.privateKey,
210
+ mnemonic: wallet.mnemonic?.phrase || null
211
+ };
212
+ }
195
213
  getWallet() {
196
214
  if (this.wallet) return this.wallet;
197
215
  const privateKey = (0, import_warps2.getWarpWalletPrivateKeyFromConfig)(this.config, this.chain.name);
198
- if (!privateKey) {
199
- throw new Error("No private key provided");
200
- }
216
+ if (!privateKey) throw new Error("No private key provided");
201
217
  this.wallet = new import_ethers.ethers.Wallet(privateKey);
202
218
  return this.wallet;
203
219
  }
@@ -252,12 +268,28 @@ var MnemonicWalletProvider = class {
252
268
  getWalletInstance() {
253
269
  return this.getWallet();
254
270
  }
271
+ create(mnemonic) {
272
+ const wallet = import_ethers2.ethers.Wallet.fromPhrase(mnemonic);
273
+ return {
274
+ provider: "mnemonic",
275
+ address: wallet.address,
276
+ privateKey: wallet.privateKey,
277
+ mnemonic
278
+ };
279
+ }
280
+ generate() {
281
+ const wallet = import_ethers2.ethers.Wallet.createRandom();
282
+ return {
283
+ provider: "mnemonic",
284
+ address: wallet.address,
285
+ privateKey: wallet.privateKey,
286
+ mnemonic: wallet.mnemonic?.phrase || null
287
+ };
288
+ }
255
289
  getWallet() {
256
290
  if (this.wallet) return this.wallet;
257
291
  const mnemonic = (0, import_warps3.getWarpWalletMnemonicFromConfig)(this.config, this.chain.name);
258
- if (!mnemonic) {
259
- throw new Error("No mnemonic provided");
260
- }
292
+ if (!mnemonic) throw new Error("No mnemonic provided");
261
293
  this.wallet = import_ethers2.ethers.Wallet.fromPhrase(mnemonic);
262
294
  return this.wallet;
263
295
  }
@@ -782,6 +814,55 @@ var ExplorerUrls = {
782
814
  ["blockscout_base" /* BlockscoutBase */]: "https://base.blockscout.com",
783
815
  ["blockscout_base_sepolia" /* BlockscoutBaseSepolia */]: "https://sepolia.blockscout.com"
784
816
  };
817
+ var EvmChainIds = {
818
+ Ethereum: {
819
+ Mainnet: 1,
820
+ Goerli: 5,
821
+ Sepolia: 11155111
822
+ },
823
+ Polygon: {
824
+ Mainnet: 137,
825
+ Mumbai: 80001
826
+ },
827
+ Arbitrum: {
828
+ Mainnet: 42161,
829
+ Sepolia: 421614
830
+ },
831
+ Base: {
832
+ Mainnet: 8453,
833
+ Sepolia: 84532
834
+ },
835
+ Optimism: {
836
+ Mainnet: 10,
837
+ Sepolia: 11155420
838
+ }
839
+ };
840
+ var EvmChainIdMap = {
841
+ "ethereum:mainnet": EvmChainIds.Ethereum.Mainnet,
842
+ "ethereum:goerli": EvmChainIds.Ethereum.Goerli,
843
+ "ethereum:sepolia": EvmChainIds.Ethereum.Sepolia,
844
+ "polygon:mainnet": EvmChainIds.Polygon.Mainnet,
845
+ "polygon:mumbai": EvmChainIds.Polygon.Mumbai,
846
+ "arbitrum:mainnet": EvmChainIds.Arbitrum.Mainnet,
847
+ "arbitrum:sepolia": EvmChainIds.Arbitrum.Sepolia,
848
+ "base:mainnet": EvmChainIds.Base.Mainnet,
849
+ "base:sepolia": EvmChainIds.Base.Sepolia,
850
+ "optimism:mainnet": EvmChainIds.Optimism.Mainnet,
851
+ "optimism:sepolia": EvmChainIds.Optimism.Sepolia
852
+ };
853
+ var SupportedEvmChainIds = [
854
+ EvmChainIds.Ethereum.Mainnet,
855
+ EvmChainIds.Ethereum.Goerli,
856
+ EvmChainIds.Ethereum.Sepolia,
857
+ EvmChainIds.Polygon.Mainnet,
858
+ EvmChainIds.Polygon.Mumbai,
859
+ EvmChainIds.Arbitrum.Mainnet,
860
+ EvmChainIds.Arbitrum.Sepolia,
861
+ EvmChainIds.Base.Mainnet,
862
+ EvmChainIds.Base.Sepolia,
863
+ EvmChainIds.Optimism.Mainnet,
864
+ EvmChainIds.Optimism.Sepolia
865
+ ];
785
866
 
786
867
  // src/WarpEvmOutput.ts
787
868
  var import_warps12 = require("@vleap/warps");
@@ -1489,28 +1570,30 @@ var WarpEvmExplorer = class {
1489
1570
 
1490
1571
  // src/WarpEvmWallet.ts
1491
1572
  var import_warps14 = require("@vleap/warps");
1573
+ var import_client = require("@x402/evm/exact/client");
1492
1574
  var import_ethers7 = require("ethers");
1575
+ var import_accounts = require("viem/accounts");
1493
1576
  var WarpEvmWallet = class {
1494
- constructor(config, chain, walletProvider) {
1577
+ constructor(config, chain) {
1495
1578
  this.config = config;
1496
1579
  this.chain = chain;
1497
1580
  this.cachedAddress = null;
1498
1581
  this.cachedPublicKey = null;
1499
1582
  const providerConfig = (0, import_warps14.getProviderConfig)(config, chain.name, config.env, chain.defaultApiUrl);
1500
1583
  this.provider = new import_ethers7.ethers.JsonRpcProvider(providerConfig.url);
1501
- this.walletProvider = walletProvider || this.createDefaultProvider();
1584
+ this.walletProvider = this.createProvider();
1502
1585
  this.initializeCache();
1503
1586
  }
1504
- createDefaultProvider() {
1505
- const privateKey = (0, import_warps14.getWarpWalletPrivateKeyFromConfig)(this.config, this.chain.name);
1506
- if (privateKey) {
1507
- return new PrivateKeyWalletProvider(this.config, this.chain, this.provider);
1508
- }
1509
- const mnemonic = (0, import_warps14.getWarpWalletMnemonicFromConfig)(this.config, this.chain.name);
1510
- if (mnemonic) {
1511
- return new MnemonicWalletProvider(this.config, this.chain, this.provider);
1512
- }
1513
- return null;
1587
+ createProvider() {
1588
+ const wallet = this.config.user?.wallets?.[this.chain.name];
1589
+ if (!wallet) return null;
1590
+ if (typeof wallet === "string") throw new Error(`Wallet can not be used for signing: ${wallet}`);
1591
+ const customWalletProviders = this.config.walletProviders?.[this.chain.name];
1592
+ const providerFactory = customWalletProviders?.[wallet.provider];
1593
+ if (providerFactory) return providerFactory(this.config, this.chain);
1594
+ if (wallet.provider === "privateKey") return new PrivateKeyWalletProvider(this.config, this.chain, this.provider);
1595
+ if (wallet.provider === "mnemonic") return new MnemonicWalletProvider(this.config, this.chain, this.provider);
1596
+ throw new Error(`Unsupported wallet provider for ${this.chain.name}: ${wallet.provider}`);
1514
1597
  }
1515
1598
  initializeCache() {
1516
1599
  (0, import_warps14.initializeWalletCache)(this.walletProvider).then((cache) => {
@@ -1575,12 +1658,12 @@ var WarpEvmWallet = class {
1575
1658
  return Promise.all(txs.map(async (tx) => this.sendTransaction(tx)));
1576
1659
  }
1577
1660
  create(mnemonic) {
1578
- const wallet = import_ethers7.ethers.Wallet.fromPhrase(mnemonic);
1579
- return { address: wallet.address, privateKey: wallet.privateKey, mnemonic };
1661
+ if (!this.walletProvider) throw new Error("No wallet provider available");
1662
+ return this.walletProvider.create(mnemonic);
1580
1663
  }
1581
1664
  generate() {
1582
- const wallet = import_ethers7.ethers.Wallet.createRandom();
1583
- return { address: wallet.address, privateKey: wallet.privateKey, mnemonic: wallet.mnemonic?.phrase || "" };
1665
+ if (!this.walletProvider) throw new Error("No wallet provider available");
1666
+ return this.walletProvider.generate();
1584
1667
  }
1585
1668
  getAddress() {
1586
1669
  return this.cachedAddress;
@@ -1588,6 +1671,22 @@ var WarpEvmWallet = class {
1588
1671
  getPublicKey() {
1589
1672
  return this.cachedPublicKey;
1590
1673
  }
1674
+ async registerX402Handlers(client) {
1675
+ if (!this.walletProvider) throw new Error("No wallet provider available");
1676
+ const provider = this.walletProvider;
1677
+ const getInstance = provider.getWalletInstance;
1678
+ if (typeof getInstance !== "function") throw new Error("Wallet provider does not have getWalletInstance method");
1679
+ const wallet = getInstance();
1680
+ if (!wallet || !wallet.privateKey) throw new Error("Wallet instance does not have private key");
1681
+ const signer = (0, import_accounts.privateKeyToAccount)(wallet.privateKey);
1682
+ const handlers = {};
1683
+ for (const chainId of SupportedEvmChainIds) {
1684
+ handlers[`eip155:${chainId}`] = () => {
1685
+ (0, import_client.registerExactEvmScheme)(client, { signer });
1686
+ };
1687
+ }
1688
+ return handlers;
1689
+ }
1591
1690
  };
1592
1691
 
1593
1692
  // src/chains/common.ts
@@ -1619,7 +1718,7 @@ var NativeTokenArb = {
1619
1718
  decimals: 18,
1620
1719
  logoUrl: "https://joai.ai/images/tokens/arb.svg"
1621
1720
  };
1622
- var getArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
1721
+ var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
1623
1722
  mainnet: {
1624
1723
  name: import_warps15.WarpChainName.Arbitrum,
1625
1724
  displayName: "Arbitrum",
@@ -1662,7 +1761,7 @@ var NativeTokenBase = {
1662
1761
  decimals: 18,
1663
1762
  logoUrl: "https://joai.ai/images/tokens/eth.svg"
1664
1763
  };
1665
- var getBaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
1764
+ var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
1666
1765
  mainnet: {
1667
1766
  name: import_warps16.WarpChainName.Base,
1668
1767
  displayName: "Base",
@@ -1696,21 +1795,27 @@ var getBaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
1696
1795
  });
1697
1796
 
1698
1797
  // src/chains/combined.ts
1699
- var import_warps19 = require("@vleap/warps");
1798
+ var import_warps17 = require("@vleap/warps");
1799
+ var getAllEvmChainNames = () => [
1800
+ import_warps17.WarpChainName.Ethereum,
1801
+ import_warps17.WarpChainName.Base,
1802
+ import_warps17.WarpChainName.Arbitrum,
1803
+ import_warps17.WarpChainName.Somnia
1804
+ ];
1700
1805
 
1701
1806
  // src/chains/ethereum.ts
1702
- var import_warps17 = require("@vleap/warps");
1807
+ var import_warps18 = require("@vleap/warps");
1703
1808
  var NativeTokenEth = {
1704
- chain: import_warps17.WarpChainName.Ethereum,
1809
+ chain: import_warps18.WarpChainName.Ethereum,
1705
1810
  identifier: "ETH",
1706
1811
  symbol: "ETH",
1707
1812
  name: "Ether",
1708
1813
  decimals: 18,
1709
1814
  logoUrl: "https://joai.ai/images/tokens/eth.svg"
1710
1815
  };
1711
- var getEthereumAdapter = createEvmAdapter(import_warps17.WarpChainName.Ethereum, {
1816
+ var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
1712
1817
  mainnet: {
1713
- name: import_warps17.WarpChainName.Ethereum,
1818
+ name: import_warps18.WarpChainName.Ethereum,
1714
1819
  displayName: "Ethereum Mainnet",
1715
1820
  chainId: "1",
1716
1821
  blockTime: 12e3,
@@ -1720,7 +1825,7 @@ var getEthereumAdapter = createEvmAdapter(import_warps17.WarpChainName.Ethereum,
1720
1825
  nativeToken: NativeTokenEth
1721
1826
  },
1722
1827
  testnet: {
1723
- name: import_warps17.WarpChainName.Ethereum,
1828
+ name: import_warps18.WarpChainName.Ethereum,
1724
1829
  displayName: "Ethereum Sepolia",
1725
1830
  chainId: "11155111",
1726
1831
  blockTime: 12e3,
@@ -1730,7 +1835,7 @@ var getEthereumAdapter = createEvmAdapter(import_warps17.WarpChainName.Ethereum,
1730
1835
  nativeToken: NativeTokenEth
1731
1836
  },
1732
1837
  devnet: {
1733
- name: import_warps17.WarpChainName.Ethereum,
1838
+ name: import_warps18.WarpChainName.Ethereum,
1734
1839
  displayName: "Ethereum Sepolia",
1735
1840
  chainId: "11155111",
1736
1841
  blockTime: 12e3,
@@ -1741,10 +1846,13 @@ var getEthereumAdapter = createEvmAdapter(import_warps17.WarpChainName.Ethereum,
1741
1846
  }
1742
1847
  });
1743
1848
 
1849
+ // src/adapters.ts
1850
+ var import_warps20 = require("@vleap/warps");
1851
+
1744
1852
  // src/chains/somnia.ts
1745
- var import_warps18 = require("@vleap/warps");
1853
+ var import_warps19 = require("@vleap/warps");
1746
1854
  var NativeTokenSomi = {
1747
- chain: import_warps18.WarpChainName.Somnia,
1855
+ chain: import_warps19.WarpChainName.Somnia,
1748
1856
  identifier: "SOMI",
1749
1857
  symbol: "SOMI",
1750
1858
  name: "Somnia",
@@ -1752,16 +1860,16 @@ var NativeTokenSomi = {
1752
1860
  logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
1753
1861
  };
1754
1862
  var NativeTokenStt = {
1755
- chain: import_warps18.WarpChainName.Somnia,
1863
+ chain: import_warps19.WarpChainName.Somnia,
1756
1864
  identifier: "STT",
1757
1865
  symbol: "STT",
1758
1866
  name: "Somnia Testnet Token",
1759
1867
  decimals: 18,
1760
1868
  logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
1761
1869
  };
1762
- var getSomniaAdapter = createEvmAdapter(import_warps18.WarpChainName.Somnia, {
1870
+ var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
1763
1871
  mainnet: {
1764
- name: import_warps18.WarpChainName.Somnia,
1872
+ name: import_warps19.WarpChainName.Somnia,
1765
1873
  displayName: "Somnia Mainnet",
1766
1874
  chainId: "5031",
1767
1875
  blockTime: 100,
@@ -1771,7 +1879,7 @@ var getSomniaAdapter = createEvmAdapter(import_warps18.WarpChainName.Somnia, {
1771
1879
  nativeToken: NativeTokenSomi
1772
1880
  },
1773
1881
  testnet: {
1774
- name: import_warps18.WarpChainName.Somnia,
1882
+ name: import_warps19.WarpChainName.Somnia,
1775
1883
  displayName: "Somnia Testnet",
1776
1884
  chainId: "50312",
1777
1885
  blockTime: 100,
@@ -1781,7 +1889,7 @@ var getSomniaAdapter = createEvmAdapter(import_warps18.WarpChainName.Somnia, {
1781
1889
  nativeToken: NativeTokenStt
1782
1890
  },
1783
1891
  devnet: {
1784
- name: import_warps18.WarpChainName.Somnia,
1892
+ name: import_warps19.WarpChainName.Somnia,
1785
1893
  displayName: "Somnia Testnet",
1786
1894
  chainId: "50312",
1787
1895
  blockTime: 100,
@@ -1792,33 +1900,30 @@ var getSomniaAdapter = createEvmAdapter(import_warps18.WarpChainName.Somnia, {
1792
1900
  }
1793
1901
  });
1794
1902
 
1795
- // src/chains/combined.ts
1796
- var getAllEvmAdapters = (config, fallback) => [
1797
- getEthereumAdapter(config, fallback),
1798
- getBaseAdapter(config, fallback),
1799
- getArbitrumAdapter(config, fallback),
1800
- getSomniaAdapter(config, fallback)
1801
- ];
1802
- var getAllEvmChainNames = () => [
1803
- import_warps19.WarpChainName.Ethereum,
1804
- import_warps19.WarpChainName.Base,
1805
- import_warps19.WarpChainName.Arbitrum,
1806
- import_warps19.WarpChainName.Somnia
1903
+ // src/adapters.ts
1904
+ var getAllEvmAdapters = (fallbackFactory) => [
1905
+ (0, import_warps20.withAdapter)(EthereumAdapter, fallbackFactory),
1906
+ (0, import_warps20.withAdapter)(BaseAdapter, fallbackFactory),
1907
+ (0, import_warps20.withAdapter)(ArbitrumAdapter, fallbackFactory),
1908
+ (0, import_warps20.withAdapter)(SomniaAdapter, fallbackFactory)
1807
1909
  ];
1808
1910
  // Annotate the CommonJS export names for ESM import in node:
1809
1911
  0 && (module.exports = {
1912
+ ArbitrumAdapter,
1810
1913
  ArbitrumExplorers,
1914
+ BaseAdapter,
1811
1915
  BaseExplorers,
1916
+ EthereumAdapter,
1812
1917
  EthereumExplorers,
1918
+ EvmChainIdMap,
1919
+ EvmChainIds,
1813
1920
  EvmExplorers,
1814
1921
  ExplorerUrls,
1815
1922
  KnownTokens,
1816
- MnemonicWalletProvider,
1817
1923
  NativeTokenArb,
1818
1924
  NativeTokenBase,
1819
1925
  NativeTokenEth,
1820
- PrivateKeyWalletProvider,
1821
- UniswapService,
1926
+ SupportedEvmChainIds,
1822
1927
  WarpEvmConstants,
1823
1928
  WarpEvmDataLoader,
1824
1929
  WarpEvmExecutor,
@@ -1830,9 +1935,6 @@ var getAllEvmChainNames = () => [
1830
1935
  findKnownTokenById,
1831
1936
  getAllEvmAdapters,
1832
1937
  getAllEvmChainNames,
1833
- getArbitrumAdapter,
1834
- getBaseAdapter,
1835
- getEthereumAdapter,
1836
1938
  getKnownTokensForChain
1837
1939
  });
1838
1940
  //# sourceMappingURL=index.js.map