@vleap/warps-adapter-evm 0.2.0-alpha.27 → 0.2.0-alpha.28

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { WarpChainAsset, AdapterFactory, WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution, AdapterWarpExplorer, AdapterWarpResults, Warp, ResolvedInput, WarpExecutionResults, AdapterWarpSerializer, WarpSerializer, WarpActionInputType, WarpNativeValue, BaseWarpActionInputType, WarpAdapterGenericType, WarpCache } from '@vleap/warps';
1
+ import { WarpChainAsset, AdapterFactory, WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, WarpCache, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution, AdapterWarpExplorer, AdapterWarpResults, Warp, ResolvedInput, WarpExecutionResults, AdapterWarpSerializer, WarpSerializer, WarpActionInputType, WarpNativeValue, BaseWarpActionInputType, WarpAdapterGenericType, AdapterWarpWallet, WarpAdapterGenericTransaction } from '@vleap/warps';
2
2
  import { ethers } from 'ethers';
3
3
 
4
4
  declare const NativeTokenArb: WarpChainAsset;
@@ -72,10 +72,6 @@ declare const EvmExplorers: {
72
72
  };
73
73
  declare const ExplorerUrls: Record<ExplorerName, string>;
74
74
 
75
- declare const KnownTokens: Record<WarpChain, Record<string, WarpChainAsset[]>>;
76
- declare const findKnownTokenById: (chain: WarpChain, env: WarpChainEnv, id: string) => WarpChainAsset | null;
77
- declare const getKnownTokensForChain: (chainName: string, env?: string) => WarpChainAsset[];
78
-
79
75
  interface TokenMetadata {
80
76
  name: string;
81
77
  symbol: string;
@@ -127,6 +123,26 @@ interface TokenListResponse {
127
123
  }>;
128
124
  }
129
125
 
126
+ declare class UniswapService {
127
+ private static readonly UNISWAP_TOKEN_LIST_URL;
128
+ private cache;
129
+ private chainId;
130
+ constructor(cache: WarpCache, chainId: number);
131
+ getTokenList(): Promise<UniswapTokenList>;
132
+ findToken(address: string): Promise<UniswapToken | null>;
133
+ getTokenMetadata(address: string): Promise<{
134
+ name: string;
135
+ symbol: string;
136
+ decimals: number;
137
+ logoUrl: string;
138
+ } | null>;
139
+ getBridgeInfo(address: string): Promise<Record<string, string> | null>;
140
+ }
141
+
142
+ declare const KnownTokens: Record<WarpChain, Record<string, WarpChainAsset[]>>;
143
+ declare const findKnownTokenById: (chain: WarpChain, env: WarpChainEnv, id: string) => WarpChainAsset | null;
144
+ declare const getKnownTokensForChain: (chainName: string, env?: string) => WarpChainAsset[];
145
+
130
146
  declare class WarpEvmDataLoader implements AdapterWarpDataLoader {
131
147
  private readonly config;
132
148
  private readonly chain;
@@ -214,20 +230,26 @@ declare class WarpEvmSerializer implements AdapterWarpSerializer {
214
230
  private parseNativeValue;
215
231
  }
216
232
 
217
- declare class UniswapService {
218
- private static readonly UNISWAP_TOKEN_LIST_URL;
219
- private cache;
220
- private chainId;
221
- constructor(cache: WarpCache, chainId: number);
222
- getTokenList(): Promise<UniswapTokenList>;
223
- findToken(address: string): Promise<UniswapToken | null>;
224
- getTokenMetadata(address: string): Promise<{
225
- name: string;
226
- symbol: string;
227
- decimals: number;
228
- logoUrl: string;
229
- } | null>;
230
- getBridgeInfo(address: string): Promise<Record<string, string> | null>;
233
+ declare class WarpEvmWallet implements AdapterWarpWallet {
234
+ private config;
235
+ private chain;
236
+ private wallet;
237
+ private provider;
238
+ constructor(config: WarpClientConfig, chain: WarpChainInfo);
239
+ signTransaction(tx: WarpAdapterGenericTransaction): Promise<WarpAdapterGenericTransaction>;
240
+ signMessage(message: string): Promise<string>;
241
+ sendTransaction(tx: WarpAdapterGenericTransaction): Promise<string>;
242
+ create(mnemonic: string): {
243
+ address: string;
244
+ privateKey: string;
245
+ mnemonic: string;
246
+ };
247
+ generate(): {
248
+ address: string;
249
+ privateKey: string;
250
+ mnemonic: string;
251
+ };
252
+ getAddress(): string | null;
231
253
  }
232
254
 
233
- export { ArbitrumExplorers, BaseExplorers, EthereumExplorers, EvmExplorers, type ExplorerName, ExplorerUrls, KnownTokens, NativeTokenArb, NativeTokenBase, NativeTokenEth, type TokenBalance, type TokenInfo, type TokenListResponse, type TokenMetadata, UniswapService, type UniswapToken, type UniswapTokenList, WarpEvmConstants, WarpEvmDataLoader, WarpEvmExecutor, WarpEvmExplorer, WarpEvmResults, WarpEvmSerializer, createEvmAdapter, findKnownTokenById, getAllEvmAdapters, getAllEvmChainNames, getArbitrumAdapter, getBaseAdapter, getEthereumAdapter, getKnownTokensForChain };
255
+ export { ArbitrumExplorers, BaseExplorers, EthereumExplorers, EvmExplorers, type ExplorerName, ExplorerUrls, KnownTokens, NativeTokenArb, NativeTokenBase, NativeTokenEth, type TokenBalance, type TokenInfo, type TokenListResponse, type TokenMetadata, UniswapService, type UniswapToken, type UniswapTokenList, WarpEvmConstants, WarpEvmDataLoader, WarpEvmExecutor, WarpEvmExplorer, WarpEvmResults, WarpEvmSerializer, WarpEvmWallet, createEvmAdapter, findKnownTokenById, getAllEvmAdapters, getAllEvmChainNames, getArbitrumAdapter, getBaseAdapter, getEthereumAdapter, getKnownTokensForChain };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { WarpChainAsset, AdapterFactory, WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution, AdapterWarpExplorer, AdapterWarpResults, Warp, ResolvedInput, WarpExecutionResults, AdapterWarpSerializer, WarpSerializer, WarpActionInputType, WarpNativeValue, BaseWarpActionInputType, WarpAdapterGenericType, WarpCache } from '@vleap/warps';
1
+ import { WarpChainAsset, AdapterFactory, WarpClientConfig, Adapter, WarpChain, WarpChainEnv, WarpChainInfo, WarpCache, AdapterWarpDataLoader, WarpChainAccount, WarpChainAction, WarpDataLoaderOptions, AdapterWarpExecutor, WarpExecutable, WarpExecution, AdapterWarpExplorer, AdapterWarpResults, Warp, ResolvedInput, WarpExecutionResults, AdapterWarpSerializer, WarpSerializer, WarpActionInputType, WarpNativeValue, BaseWarpActionInputType, WarpAdapterGenericType, AdapterWarpWallet, WarpAdapterGenericTransaction } from '@vleap/warps';
2
2
  import { ethers } from 'ethers';
3
3
 
4
4
  declare const NativeTokenArb: WarpChainAsset;
@@ -72,10 +72,6 @@ declare const EvmExplorers: {
72
72
  };
73
73
  declare const ExplorerUrls: Record<ExplorerName, string>;
74
74
 
75
- declare const KnownTokens: Record<WarpChain, Record<string, WarpChainAsset[]>>;
76
- declare const findKnownTokenById: (chain: WarpChain, env: WarpChainEnv, id: string) => WarpChainAsset | null;
77
- declare const getKnownTokensForChain: (chainName: string, env?: string) => WarpChainAsset[];
78
-
79
75
  interface TokenMetadata {
80
76
  name: string;
81
77
  symbol: string;
@@ -127,6 +123,26 @@ interface TokenListResponse {
127
123
  }>;
128
124
  }
129
125
 
126
+ declare class UniswapService {
127
+ private static readonly UNISWAP_TOKEN_LIST_URL;
128
+ private cache;
129
+ private chainId;
130
+ constructor(cache: WarpCache, chainId: number);
131
+ getTokenList(): Promise<UniswapTokenList>;
132
+ findToken(address: string): Promise<UniswapToken | null>;
133
+ getTokenMetadata(address: string): Promise<{
134
+ name: string;
135
+ symbol: string;
136
+ decimals: number;
137
+ logoUrl: string;
138
+ } | null>;
139
+ getBridgeInfo(address: string): Promise<Record<string, string> | null>;
140
+ }
141
+
142
+ declare const KnownTokens: Record<WarpChain, Record<string, WarpChainAsset[]>>;
143
+ declare const findKnownTokenById: (chain: WarpChain, env: WarpChainEnv, id: string) => WarpChainAsset | null;
144
+ declare const getKnownTokensForChain: (chainName: string, env?: string) => WarpChainAsset[];
145
+
130
146
  declare class WarpEvmDataLoader implements AdapterWarpDataLoader {
131
147
  private readonly config;
132
148
  private readonly chain;
@@ -214,20 +230,26 @@ declare class WarpEvmSerializer implements AdapterWarpSerializer {
214
230
  private parseNativeValue;
215
231
  }
216
232
 
217
- declare class UniswapService {
218
- private static readonly UNISWAP_TOKEN_LIST_URL;
219
- private cache;
220
- private chainId;
221
- constructor(cache: WarpCache, chainId: number);
222
- getTokenList(): Promise<UniswapTokenList>;
223
- findToken(address: string): Promise<UniswapToken | null>;
224
- getTokenMetadata(address: string): Promise<{
225
- name: string;
226
- symbol: string;
227
- decimals: number;
228
- logoUrl: string;
229
- } | null>;
230
- getBridgeInfo(address: string): Promise<Record<string, string> | null>;
233
+ declare class WarpEvmWallet implements AdapterWarpWallet {
234
+ private config;
235
+ private chain;
236
+ private wallet;
237
+ private provider;
238
+ constructor(config: WarpClientConfig, chain: WarpChainInfo);
239
+ signTransaction(tx: WarpAdapterGenericTransaction): Promise<WarpAdapterGenericTransaction>;
240
+ signMessage(message: string): Promise<string>;
241
+ sendTransaction(tx: WarpAdapterGenericTransaction): Promise<string>;
242
+ create(mnemonic: string): {
243
+ address: string;
244
+ privateKey: string;
245
+ mnemonic: string;
246
+ };
247
+ generate(): {
248
+ address: string;
249
+ privateKey: string;
250
+ mnemonic: string;
251
+ };
252
+ getAddress(): string | null;
231
253
  }
232
254
 
233
- export { ArbitrumExplorers, BaseExplorers, EthereumExplorers, EvmExplorers, type ExplorerName, ExplorerUrls, KnownTokens, NativeTokenArb, NativeTokenBase, NativeTokenEth, type TokenBalance, type TokenInfo, type TokenListResponse, type TokenMetadata, UniswapService, type UniswapToken, type UniswapTokenList, WarpEvmConstants, WarpEvmDataLoader, WarpEvmExecutor, WarpEvmExplorer, WarpEvmResults, WarpEvmSerializer, createEvmAdapter, findKnownTokenById, getAllEvmAdapters, getAllEvmChainNames, getArbitrumAdapter, getBaseAdapter, getEthereumAdapter, getKnownTokensForChain };
255
+ export { ArbitrumExplorers, BaseExplorers, EthereumExplorers, EvmExplorers, type ExplorerName, ExplorerUrls, KnownTokens, NativeTokenArb, NativeTokenBase, NativeTokenEth, type TokenBalance, type TokenInfo, type TokenListResponse, type TokenMetadata, UniswapService, type UniswapToken, type UniswapTokenList, WarpEvmConstants, WarpEvmDataLoader, WarpEvmExecutor, WarpEvmExplorer, WarpEvmResults, WarpEvmSerializer, WarpEvmWallet, createEvmAdapter, findKnownTokenById, getAllEvmAdapters, getAllEvmChainNames, getArbitrumAdapter, getBaseAdapter, getEthereumAdapter, getKnownTokensForChain };
package/dist/index.js CHANGED
@@ -36,6 +36,7 @@ __export(index_exports, {
36
36
  WarpEvmExplorer: () => WarpEvmExplorer,
37
37
  WarpEvmResults: () => WarpEvmResults,
38
38
  WarpEvmSerializer: () => WarpEvmSerializer,
39
+ WarpEvmWallet: () => WarpEvmWallet,
39
40
  createEvmAdapter: () => createEvmAdapter,
40
41
  findKnownTokenById: () => findKnownTokenById,
41
42
  getAllEvmAdapters: () => getAllEvmAdapters,
@@ -765,7 +766,7 @@ var WarpEvmResults = class {
765
766
  success,
766
767
  warp,
767
768
  action: 0,
768
- user: this.config.user?.wallets?.evm || null,
769
+ user: (0, import_warps9.getWarpWalletAddressFromConfig)(this.config, "evm"),
769
770
  txHash: transactionHash,
770
771
  tx,
771
772
  next: null,
@@ -856,7 +857,7 @@ var WarpEvmExecutor = class {
856
857
  return tx;
857
858
  }
858
859
  async createTransferTransaction(executable) {
859
- const userWallet = this.config.user?.wallets?.[executable.chain.name];
860
+ const userWallet = (0, import_warps10.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
860
861
  if (!userWallet) throw new Error("WarpEvmExecutor: createTransfer - user address not set");
861
862
  if (!import_ethers4.ethers.isAddress(executable.destination)) {
862
863
  throw new Error(`WarpEvmExecutor: Invalid destination address: ${executable.destination}`);
@@ -872,7 +873,7 @@ var WarpEvmExecutor = class {
872
873
  return this.estimateGasAndSetDefaults(tx, userWallet);
873
874
  }
874
875
  async createContractCallTransaction(executable) {
875
- const userWallet = this.config.user?.wallets?.[executable.chain.name];
876
+ const userWallet = (0, import_warps10.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
876
877
  if (!userWallet) throw new Error("WarpEvmExecutor: createContractCall - user address not set");
877
878
  const action = (0, import_warps10.getWarpActionByIndex)(executable.warp, executable.action);
878
879
  if (!action || !("func" in action) || !action.func) {
@@ -969,7 +970,7 @@ var WarpEvmExecutor = class {
969
970
  success: isSuccess,
970
971
  warp: executable.warp,
971
972
  action: executable.action,
972
- user: this.config.user?.wallets?.[executable.chain.name] || null,
973
+ user: (0, import_warps10.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
973
974
  txHash: null,
974
975
  tx: null,
975
976
  next,
@@ -983,7 +984,7 @@ var WarpEvmExecutor = class {
983
984
  success: false,
984
985
  warp: executable.warp,
985
986
  action: executable.action,
986
- user: this.config.user?.wallets?.[executable.chain.name] || null,
987
+ user: (0, import_warps10.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
987
988
  txHash: null,
988
989
  tx: null,
989
990
  next: null,
@@ -1187,6 +1188,68 @@ var WarpEvmExplorer = class {
1187
1188
  }
1188
1189
  };
1189
1190
 
1191
+ // src/WarpEvmWallet.ts
1192
+ var import_ethers5 = require("ethers");
1193
+ var WarpEvmWallet = class {
1194
+ constructor(config, chain) {
1195
+ this.config = config;
1196
+ this.chain = chain;
1197
+ this.wallet = null;
1198
+ this.provider = new import_ethers5.ethers.JsonRpcProvider(chain.defaultApiUrl || "https://rpc.sepolia.org");
1199
+ }
1200
+ async signTransaction(tx) {
1201
+ if (!this.wallet) {
1202
+ throw new Error("Wallet not initialized - no private key provided");
1203
+ }
1204
+ if (!tx || typeof tx !== "object") {
1205
+ throw new Error("Invalid transaction object");
1206
+ }
1207
+ const txRequest = {
1208
+ to: tx.to,
1209
+ data: tx.data,
1210
+ value: tx.value || 0,
1211
+ gasLimit: tx.gasLimit,
1212
+ maxFeePerGas: tx.maxFeePerGas,
1213
+ maxPriorityFeePerGas: tx.maxPriorityFeePerGas,
1214
+ nonce: tx.nonce,
1215
+ chainId: tx.chainId
1216
+ };
1217
+ const signedTx = await this.wallet.signTransaction(txRequest);
1218
+ return { ...tx, signature: signedTx };
1219
+ }
1220
+ async signMessage(message) {
1221
+ if (!this.wallet) {
1222
+ throw new Error("Wallet not initialized - no private key provided");
1223
+ }
1224
+ return await this.wallet.signMessage(message);
1225
+ }
1226
+ async sendTransaction(tx) {
1227
+ if (!tx || typeof tx !== "object") {
1228
+ throw new Error("Invalid transaction object");
1229
+ }
1230
+ if (!tx.signature) {
1231
+ throw new Error("Transaction must be signed before sending");
1232
+ }
1233
+ if (!this.wallet) {
1234
+ throw new Error("Wallet not initialized - no private key provided");
1235
+ }
1236
+ const connectedWallet = this.wallet.connect(this.provider);
1237
+ const txResponse = await connectedWallet.sendTransaction(tx);
1238
+ return txResponse.hash;
1239
+ }
1240
+ create(mnemonic) {
1241
+ const wallet = import_ethers5.ethers.Wallet.fromPhrase(mnemonic);
1242
+ return { address: wallet.address, privateKey: wallet.privateKey, mnemonic };
1243
+ }
1244
+ generate() {
1245
+ const wallet = import_ethers5.ethers.Wallet.createRandom();
1246
+ return { address: wallet.address, privateKey: wallet.privateKey, mnemonic: wallet.mnemonic?.phrase || "" };
1247
+ }
1248
+ getAddress() {
1249
+ return this.wallet?.address || null;
1250
+ }
1251
+ };
1252
+
1190
1253
  // src/chains/common.ts
1191
1254
  var createEvmAdapter = (chainName, chainPrefix, chainInfos) => {
1192
1255
  return (config, fallback) => {
@@ -1203,7 +1266,8 @@ var createEvmAdapter = (chainName, chainPrefix, chainInfos) => {
1203
1266
  explorer: new WarpEvmExplorer(chainInfos[config.env], config),
1204
1267
  abiBuilder: () => fallback.abiBuilder(),
1205
1268
  brandBuilder: () => fallback.brandBuilder(),
1206
- dataLoader: new WarpEvmDataLoader(config, chainInfos[config.env])
1269
+ dataLoader: new WarpEvmDataLoader(config, chainInfos[config.env]),
1270
+ wallet: new WarpEvmWallet(config, chainInfos[config.env])
1207
1271
  };
1208
1272
  };
1209
1273
  };
@@ -1409,6 +1473,7 @@ var getAllEvmChainNames = () => [
1409
1473
  WarpEvmExplorer,
1410
1474
  WarpEvmResults,
1411
1475
  WarpEvmSerializer,
1476
+ WarpEvmWallet,
1412
1477
  createEvmAdapter,
1413
1478
  findKnownTokenById,
1414
1479
  getAllEvmAdapters,