@vleap/warps-adapter-evm 0.2.0-alpha.26 → 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 +42 -20
- package/dist/index.d.ts +42 -20
- package/dist/index.js +71 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +73 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
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,
|
|
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
|
|
218
|
-
private
|
|
219
|
-
private
|
|
220
|
-
private
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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,
|
|
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
|
|
218
|
-
private
|
|
219
|
-
private
|
|
220
|
-
private
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|