@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.d.cts +42 -67
- package/dist/index.d.ts +42 -67
- package/dist/index.js +164 -62
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +158 -58
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
package/dist/index.mjs
CHANGED
|
@@ -145,12 +145,28 @@ var PrivateKeyWalletProvider = class {
|
|
|
145
145
|
getWalletInstance() {
|
|
146
146
|
return this.getWallet();
|
|
147
147
|
}
|
|
148
|
+
create(mnemonic) {
|
|
149
|
+
const wallet = ethers.Wallet.fromPhrase(mnemonic);
|
|
150
|
+
return {
|
|
151
|
+
provider: "privateKey",
|
|
152
|
+
address: wallet.address,
|
|
153
|
+
privateKey: wallet.privateKey,
|
|
154
|
+
mnemonic
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
generate() {
|
|
158
|
+
const wallet = ethers.Wallet.createRandom();
|
|
159
|
+
return {
|
|
160
|
+
provider: "privateKey",
|
|
161
|
+
address: wallet.address,
|
|
162
|
+
privateKey: wallet.privateKey,
|
|
163
|
+
mnemonic: wallet.mnemonic?.phrase || null
|
|
164
|
+
};
|
|
165
|
+
}
|
|
148
166
|
getWallet() {
|
|
149
167
|
if (this.wallet) return this.wallet;
|
|
150
168
|
const privateKey = getWarpWalletPrivateKeyFromConfig(this.config, this.chain.name);
|
|
151
|
-
if (!privateKey)
|
|
152
|
-
throw new Error("No private key provided");
|
|
153
|
-
}
|
|
169
|
+
if (!privateKey) throw new Error("No private key provided");
|
|
154
170
|
this.wallet = new ethers.Wallet(privateKey);
|
|
155
171
|
return this.wallet;
|
|
156
172
|
}
|
|
@@ -205,12 +221,28 @@ var MnemonicWalletProvider = class {
|
|
|
205
221
|
getWalletInstance() {
|
|
206
222
|
return this.getWallet();
|
|
207
223
|
}
|
|
224
|
+
create(mnemonic) {
|
|
225
|
+
const wallet = ethers2.Wallet.fromPhrase(mnemonic);
|
|
226
|
+
return {
|
|
227
|
+
provider: "mnemonic",
|
|
228
|
+
address: wallet.address,
|
|
229
|
+
privateKey: wallet.privateKey,
|
|
230
|
+
mnemonic
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
generate() {
|
|
234
|
+
const wallet = ethers2.Wallet.createRandom();
|
|
235
|
+
return {
|
|
236
|
+
provider: "mnemonic",
|
|
237
|
+
address: wallet.address,
|
|
238
|
+
privateKey: wallet.privateKey,
|
|
239
|
+
mnemonic: wallet.mnemonic?.phrase || null
|
|
240
|
+
};
|
|
241
|
+
}
|
|
208
242
|
getWallet() {
|
|
209
243
|
if (this.wallet) return this.wallet;
|
|
210
244
|
const mnemonic = getWarpWalletMnemonicFromConfig(this.config, this.chain.name);
|
|
211
|
-
if (!mnemonic)
|
|
212
|
-
throw new Error("No mnemonic provided");
|
|
213
|
-
}
|
|
245
|
+
if (!mnemonic) throw new Error("No mnemonic provided");
|
|
214
246
|
this.wallet = ethers2.Wallet.fromPhrase(mnemonic);
|
|
215
247
|
return this.wallet;
|
|
216
248
|
}
|
|
@@ -742,6 +774,55 @@ var ExplorerUrls = {
|
|
|
742
774
|
["blockscout_base" /* BlockscoutBase */]: "https://base.blockscout.com",
|
|
743
775
|
["blockscout_base_sepolia" /* BlockscoutBaseSepolia */]: "https://sepolia.blockscout.com"
|
|
744
776
|
};
|
|
777
|
+
var EvmChainIds = {
|
|
778
|
+
Ethereum: {
|
|
779
|
+
Mainnet: 1,
|
|
780
|
+
Goerli: 5,
|
|
781
|
+
Sepolia: 11155111
|
|
782
|
+
},
|
|
783
|
+
Polygon: {
|
|
784
|
+
Mainnet: 137,
|
|
785
|
+
Mumbai: 80001
|
|
786
|
+
},
|
|
787
|
+
Arbitrum: {
|
|
788
|
+
Mainnet: 42161,
|
|
789
|
+
Sepolia: 421614
|
|
790
|
+
},
|
|
791
|
+
Base: {
|
|
792
|
+
Mainnet: 8453,
|
|
793
|
+
Sepolia: 84532
|
|
794
|
+
},
|
|
795
|
+
Optimism: {
|
|
796
|
+
Mainnet: 10,
|
|
797
|
+
Sepolia: 11155420
|
|
798
|
+
}
|
|
799
|
+
};
|
|
800
|
+
var EvmChainIdMap = {
|
|
801
|
+
"ethereum:mainnet": EvmChainIds.Ethereum.Mainnet,
|
|
802
|
+
"ethereum:goerli": EvmChainIds.Ethereum.Goerli,
|
|
803
|
+
"ethereum:sepolia": EvmChainIds.Ethereum.Sepolia,
|
|
804
|
+
"polygon:mainnet": EvmChainIds.Polygon.Mainnet,
|
|
805
|
+
"polygon:mumbai": EvmChainIds.Polygon.Mumbai,
|
|
806
|
+
"arbitrum:mainnet": EvmChainIds.Arbitrum.Mainnet,
|
|
807
|
+
"arbitrum:sepolia": EvmChainIds.Arbitrum.Sepolia,
|
|
808
|
+
"base:mainnet": EvmChainIds.Base.Mainnet,
|
|
809
|
+
"base:sepolia": EvmChainIds.Base.Sepolia,
|
|
810
|
+
"optimism:mainnet": EvmChainIds.Optimism.Mainnet,
|
|
811
|
+
"optimism:sepolia": EvmChainIds.Optimism.Sepolia
|
|
812
|
+
};
|
|
813
|
+
var SupportedEvmChainIds = [
|
|
814
|
+
EvmChainIds.Ethereum.Mainnet,
|
|
815
|
+
EvmChainIds.Ethereum.Goerli,
|
|
816
|
+
EvmChainIds.Ethereum.Sepolia,
|
|
817
|
+
EvmChainIds.Polygon.Mainnet,
|
|
818
|
+
EvmChainIds.Polygon.Mumbai,
|
|
819
|
+
EvmChainIds.Arbitrum.Mainnet,
|
|
820
|
+
EvmChainIds.Arbitrum.Sepolia,
|
|
821
|
+
EvmChainIds.Base.Mainnet,
|
|
822
|
+
EvmChainIds.Base.Sepolia,
|
|
823
|
+
EvmChainIds.Optimism.Mainnet,
|
|
824
|
+
EvmChainIds.Optimism.Sepolia
|
|
825
|
+
];
|
|
745
826
|
|
|
746
827
|
// src/WarpEvmOutput.ts
|
|
747
828
|
import {
|
|
@@ -1462,32 +1543,32 @@ var WarpEvmExplorer = class {
|
|
|
1462
1543
|
// src/WarpEvmWallet.ts
|
|
1463
1544
|
import {
|
|
1464
1545
|
getProviderConfig as getProviderConfig4,
|
|
1465
|
-
getWarpWalletMnemonicFromConfig as getWarpWalletMnemonicFromConfig2,
|
|
1466
|
-
getWarpWalletPrivateKeyFromConfig as getWarpWalletPrivateKeyFromConfig2,
|
|
1467
1546
|
initializeWalletCache
|
|
1468
1547
|
} from "@vleap/warps";
|
|
1548
|
+
import { registerExactEvmScheme } from "@x402/evm/exact/client";
|
|
1469
1549
|
import { ethers as ethers7 } from "ethers";
|
|
1550
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
1470
1551
|
var WarpEvmWallet = class {
|
|
1471
|
-
constructor(config, chain
|
|
1552
|
+
constructor(config, chain) {
|
|
1472
1553
|
this.config = config;
|
|
1473
1554
|
this.chain = chain;
|
|
1474
1555
|
this.cachedAddress = null;
|
|
1475
1556
|
this.cachedPublicKey = null;
|
|
1476
1557
|
const providerConfig = getProviderConfig4(config, chain.name, config.env, chain.defaultApiUrl);
|
|
1477
1558
|
this.provider = new ethers7.JsonRpcProvider(providerConfig.url);
|
|
1478
|
-
this.walletProvider =
|
|
1559
|
+
this.walletProvider = this.createProvider();
|
|
1479
1560
|
this.initializeCache();
|
|
1480
1561
|
}
|
|
1481
|
-
|
|
1482
|
-
const
|
|
1483
|
-
if (
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
const
|
|
1487
|
-
if (
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1562
|
+
createProvider() {
|
|
1563
|
+
const wallet = this.config.user?.wallets?.[this.chain.name];
|
|
1564
|
+
if (!wallet) return null;
|
|
1565
|
+
if (typeof wallet === "string") throw new Error(`Wallet can not be used for signing: ${wallet}`);
|
|
1566
|
+
const customWalletProviders = this.config.walletProviders?.[this.chain.name];
|
|
1567
|
+
const providerFactory = customWalletProviders?.[wallet.provider];
|
|
1568
|
+
if (providerFactory) return providerFactory(this.config, this.chain);
|
|
1569
|
+
if (wallet.provider === "privateKey") return new PrivateKeyWalletProvider(this.config, this.chain, this.provider);
|
|
1570
|
+
if (wallet.provider === "mnemonic") return new MnemonicWalletProvider(this.config, this.chain, this.provider);
|
|
1571
|
+
throw new Error(`Unsupported wallet provider for ${this.chain.name}: ${wallet.provider}`);
|
|
1491
1572
|
}
|
|
1492
1573
|
initializeCache() {
|
|
1493
1574
|
initializeWalletCache(this.walletProvider).then((cache) => {
|
|
@@ -1552,12 +1633,12 @@ var WarpEvmWallet = class {
|
|
|
1552
1633
|
return Promise.all(txs.map(async (tx) => this.sendTransaction(tx)));
|
|
1553
1634
|
}
|
|
1554
1635
|
create(mnemonic) {
|
|
1555
|
-
|
|
1556
|
-
return
|
|
1636
|
+
if (!this.walletProvider) throw new Error("No wallet provider available");
|
|
1637
|
+
return this.walletProvider.create(mnemonic);
|
|
1557
1638
|
}
|
|
1558
1639
|
generate() {
|
|
1559
|
-
|
|
1560
|
-
return
|
|
1640
|
+
if (!this.walletProvider) throw new Error("No wallet provider available");
|
|
1641
|
+
return this.walletProvider.generate();
|
|
1561
1642
|
}
|
|
1562
1643
|
getAddress() {
|
|
1563
1644
|
return this.cachedAddress;
|
|
@@ -1565,6 +1646,22 @@ var WarpEvmWallet = class {
|
|
|
1565
1646
|
getPublicKey() {
|
|
1566
1647
|
return this.cachedPublicKey;
|
|
1567
1648
|
}
|
|
1649
|
+
async registerX402Handlers(client) {
|
|
1650
|
+
if (!this.walletProvider) throw new Error("No wallet provider available");
|
|
1651
|
+
const provider = this.walletProvider;
|
|
1652
|
+
const getInstance = provider.getWalletInstance;
|
|
1653
|
+
if (typeof getInstance !== "function") throw new Error("Wallet provider does not have getWalletInstance method");
|
|
1654
|
+
const wallet = getInstance();
|
|
1655
|
+
if (!wallet || !wallet.privateKey) throw new Error("Wallet instance does not have private key");
|
|
1656
|
+
const signer = privateKeyToAccount(wallet.privateKey);
|
|
1657
|
+
const handlers = {};
|
|
1658
|
+
for (const chainId of SupportedEvmChainIds) {
|
|
1659
|
+
handlers[`eip155:${chainId}`] = () => {
|
|
1660
|
+
registerExactEvmScheme(client, { signer });
|
|
1661
|
+
};
|
|
1662
|
+
}
|
|
1663
|
+
return handlers;
|
|
1664
|
+
}
|
|
1568
1665
|
};
|
|
1569
1666
|
|
|
1570
1667
|
// src/chains/common.ts
|
|
@@ -1596,7 +1693,7 @@ var NativeTokenArb = {
|
|
|
1596
1693
|
decimals: 18,
|
|
1597
1694
|
logoUrl: "https://joai.ai/images/tokens/arb.svg"
|
|
1598
1695
|
};
|
|
1599
|
-
var
|
|
1696
|
+
var ArbitrumAdapter = createEvmAdapter(WarpChainName7.Arbitrum, {
|
|
1600
1697
|
mainnet: {
|
|
1601
1698
|
name: WarpChainName7.Arbitrum,
|
|
1602
1699
|
displayName: "Arbitrum",
|
|
@@ -1639,7 +1736,7 @@ var NativeTokenBase = {
|
|
|
1639
1736
|
decimals: 18,
|
|
1640
1737
|
logoUrl: "https://joai.ai/images/tokens/eth.svg"
|
|
1641
1738
|
};
|
|
1642
|
-
var
|
|
1739
|
+
var BaseAdapter = createEvmAdapter(WarpChainName8.Base, {
|
|
1643
1740
|
mainnet: {
|
|
1644
1741
|
name: WarpChainName8.Base,
|
|
1645
1742
|
displayName: "Base",
|
|
@@ -1673,21 +1770,27 @@ var getBaseAdapter = createEvmAdapter(WarpChainName8.Base, {
|
|
|
1673
1770
|
});
|
|
1674
1771
|
|
|
1675
1772
|
// src/chains/combined.ts
|
|
1676
|
-
import { WarpChainName as
|
|
1773
|
+
import { WarpChainName as WarpChainName9 } from "@vleap/warps";
|
|
1774
|
+
var getAllEvmChainNames = () => [
|
|
1775
|
+
WarpChainName9.Ethereum,
|
|
1776
|
+
WarpChainName9.Base,
|
|
1777
|
+
WarpChainName9.Arbitrum,
|
|
1778
|
+
WarpChainName9.Somnia
|
|
1779
|
+
];
|
|
1677
1780
|
|
|
1678
1781
|
// src/chains/ethereum.ts
|
|
1679
|
-
import { WarpChainName as
|
|
1782
|
+
import { WarpChainName as WarpChainName10 } from "@vleap/warps";
|
|
1680
1783
|
var NativeTokenEth = {
|
|
1681
|
-
chain:
|
|
1784
|
+
chain: WarpChainName10.Ethereum,
|
|
1682
1785
|
identifier: "ETH",
|
|
1683
1786
|
symbol: "ETH",
|
|
1684
1787
|
name: "Ether",
|
|
1685
1788
|
decimals: 18,
|
|
1686
1789
|
logoUrl: "https://joai.ai/images/tokens/eth.svg"
|
|
1687
1790
|
};
|
|
1688
|
-
var
|
|
1791
|
+
var EthereumAdapter = createEvmAdapter(WarpChainName10.Ethereum, {
|
|
1689
1792
|
mainnet: {
|
|
1690
|
-
name:
|
|
1793
|
+
name: WarpChainName10.Ethereum,
|
|
1691
1794
|
displayName: "Ethereum Mainnet",
|
|
1692
1795
|
chainId: "1",
|
|
1693
1796
|
blockTime: 12e3,
|
|
@@ -1697,7 +1800,7 @@ var getEthereumAdapter = createEvmAdapter(WarpChainName9.Ethereum, {
|
|
|
1697
1800
|
nativeToken: NativeTokenEth
|
|
1698
1801
|
},
|
|
1699
1802
|
testnet: {
|
|
1700
|
-
name:
|
|
1803
|
+
name: WarpChainName10.Ethereum,
|
|
1701
1804
|
displayName: "Ethereum Sepolia",
|
|
1702
1805
|
chainId: "11155111",
|
|
1703
1806
|
blockTime: 12e3,
|
|
@@ -1707,7 +1810,7 @@ var getEthereumAdapter = createEvmAdapter(WarpChainName9.Ethereum, {
|
|
|
1707
1810
|
nativeToken: NativeTokenEth
|
|
1708
1811
|
},
|
|
1709
1812
|
devnet: {
|
|
1710
|
-
name:
|
|
1813
|
+
name: WarpChainName10.Ethereum,
|
|
1711
1814
|
displayName: "Ethereum Sepolia",
|
|
1712
1815
|
chainId: "11155111",
|
|
1713
1816
|
blockTime: 12e3,
|
|
@@ -1718,10 +1821,13 @@ var getEthereumAdapter = createEvmAdapter(WarpChainName9.Ethereum, {
|
|
|
1718
1821
|
}
|
|
1719
1822
|
});
|
|
1720
1823
|
|
|
1824
|
+
// src/adapters.ts
|
|
1825
|
+
import { withAdapter } from "@vleap/warps";
|
|
1826
|
+
|
|
1721
1827
|
// src/chains/somnia.ts
|
|
1722
|
-
import { WarpChainName as
|
|
1828
|
+
import { WarpChainName as WarpChainName11 } from "@vleap/warps";
|
|
1723
1829
|
var NativeTokenSomi = {
|
|
1724
|
-
chain:
|
|
1830
|
+
chain: WarpChainName11.Somnia,
|
|
1725
1831
|
identifier: "SOMI",
|
|
1726
1832
|
symbol: "SOMI",
|
|
1727
1833
|
name: "Somnia",
|
|
@@ -1729,16 +1835,16 @@ var NativeTokenSomi = {
|
|
|
1729
1835
|
logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
|
|
1730
1836
|
};
|
|
1731
1837
|
var NativeTokenStt = {
|
|
1732
|
-
chain:
|
|
1838
|
+
chain: WarpChainName11.Somnia,
|
|
1733
1839
|
identifier: "STT",
|
|
1734
1840
|
symbol: "STT",
|
|
1735
1841
|
name: "Somnia Testnet Token",
|
|
1736
1842
|
decimals: 18,
|
|
1737
1843
|
logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
|
|
1738
1844
|
};
|
|
1739
|
-
var
|
|
1845
|
+
var SomniaAdapter = createEvmAdapter(WarpChainName11.Somnia, {
|
|
1740
1846
|
mainnet: {
|
|
1741
|
-
name:
|
|
1847
|
+
name: WarpChainName11.Somnia,
|
|
1742
1848
|
displayName: "Somnia Mainnet",
|
|
1743
1849
|
chainId: "5031",
|
|
1744
1850
|
blockTime: 100,
|
|
@@ -1748,7 +1854,7 @@ var getSomniaAdapter = createEvmAdapter(WarpChainName10.Somnia, {
|
|
|
1748
1854
|
nativeToken: NativeTokenSomi
|
|
1749
1855
|
},
|
|
1750
1856
|
testnet: {
|
|
1751
|
-
name:
|
|
1857
|
+
name: WarpChainName11.Somnia,
|
|
1752
1858
|
displayName: "Somnia Testnet",
|
|
1753
1859
|
chainId: "50312",
|
|
1754
1860
|
blockTime: 100,
|
|
@@ -1758,7 +1864,7 @@ var getSomniaAdapter = createEvmAdapter(WarpChainName10.Somnia, {
|
|
|
1758
1864
|
nativeToken: NativeTokenStt
|
|
1759
1865
|
},
|
|
1760
1866
|
devnet: {
|
|
1761
|
-
name:
|
|
1867
|
+
name: WarpChainName11.Somnia,
|
|
1762
1868
|
displayName: "Somnia Testnet",
|
|
1763
1869
|
chainId: "50312",
|
|
1764
1870
|
blockTime: 100,
|
|
@@ -1769,32 +1875,29 @@ var getSomniaAdapter = createEvmAdapter(WarpChainName10.Somnia, {
|
|
|
1769
1875
|
}
|
|
1770
1876
|
});
|
|
1771
1877
|
|
|
1772
|
-
// src/
|
|
1773
|
-
var getAllEvmAdapters = (
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
];
|
|
1779
|
-
var getAllEvmChainNames = () => [
|
|
1780
|
-
WarpChainName11.Ethereum,
|
|
1781
|
-
WarpChainName11.Base,
|
|
1782
|
-
WarpChainName11.Arbitrum,
|
|
1783
|
-
WarpChainName11.Somnia
|
|
1878
|
+
// src/adapters.ts
|
|
1879
|
+
var getAllEvmAdapters = (fallbackFactory) => [
|
|
1880
|
+
withAdapter(EthereumAdapter, fallbackFactory),
|
|
1881
|
+
withAdapter(BaseAdapter, fallbackFactory),
|
|
1882
|
+
withAdapter(ArbitrumAdapter, fallbackFactory),
|
|
1883
|
+
withAdapter(SomniaAdapter, fallbackFactory)
|
|
1784
1884
|
];
|
|
1785
1885
|
export {
|
|
1886
|
+
ArbitrumAdapter,
|
|
1786
1887
|
ArbitrumExplorers,
|
|
1888
|
+
BaseAdapter,
|
|
1787
1889
|
BaseExplorers,
|
|
1890
|
+
EthereumAdapter,
|
|
1788
1891
|
EthereumExplorers,
|
|
1892
|
+
EvmChainIdMap,
|
|
1893
|
+
EvmChainIds,
|
|
1789
1894
|
EvmExplorers,
|
|
1790
1895
|
ExplorerUrls,
|
|
1791
1896
|
KnownTokens,
|
|
1792
|
-
MnemonicWalletProvider,
|
|
1793
1897
|
NativeTokenArb,
|
|
1794
1898
|
NativeTokenBase,
|
|
1795
1899
|
NativeTokenEth,
|
|
1796
|
-
|
|
1797
|
-
UniswapService,
|
|
1900
|
+
SupportedEvmChainIds,
|
|
1798
1901
|
WarpEvmConstants,
|
|
1799
1902
|
WarpEvmDataLoader,
|
|
1800
1903
|
WarpEvmExecutor,
|
|
@@ -1806,9 +1909,6 @@ export {
|
|
|
1806
1909
|
findKnownTokenById,
|
|
1807
1910
|
getAllEvmAdapters,
|
|
1808
1911
|
getAllEvmChainNames,
|
|
1809
|
-
getArbitrumAdapter,
|
|
1810
|
-
getBaseAdapter,
|
|
1811
|
-
getEthereumAdapter,
|
|
1812
1912
|
getKnownTokensForChain
|
|
1813
1913
|
};
|
|
1814
1914
|
//# sourceMappingURL=index.mjs.map
|