@vleap/warps-adapter-evm 0.2.0-beta.58 → 0.2.0-beta.60
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 +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +172 -132
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +95 -55
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -51,10 +51,10 @@ __export(index_exports, {
|
|
|
51
51
|
module.exports = __toCommonJS(index_exports);
|
|
52
52
|
|
|
53
53
|
// src/chains/arbitrum.ts
|
|
54
|
-
var
|
|
54
|
+
var import_warps16 = require("@vleap/warps");
|
|
55
55
|
|
|
56
56
|
// src/WarpEvmDataLoader.ts
|
|
57
|
-
var
|
|
57
|
+
var import_warps11 = require("@vleap/warps");
|
|
58
58
|
var import_ethers3 = require("ethers");
|
|
59
59
|
|
|
60
60
|
// src/providers/UniswapService.ts
|
|
@@ -146,11 +146,10 @@ var UniswapService = _UniswapService;
|
|
|
146
146
|
// src/providers/PrivateKeyWalletProvider.ts
|
|
147
147
|
var import_ethers = require("ethers");
|
|
148
148
|
var import_warps2 = require("@vleap/warps");
|
|
149
|
-
var
|
|
150
|
-
constructor(config, chain
|
|
149
|
+
var _PrivateKeyWalletProvider = class _PrivateKeyWalletProvider {
|
|
150
|
+
constructor(config, chain) {
|
|
151
151
|
this.config = config;
|
|
152
152
|
this.chain = chain;
|
|
153
|
-
this.rpcProvider = rpcProvider;
|
|
154
153
|
this.wallet = null;
|
|
155
154
|
}
|
|
156
155
|
async getAddress() {
|
|
@@ -193,21 +192,15 @@ var PrivateKeyWalletProvider = class {
|
|
|
193
192
|
return this.getWallet();
|
|
194
193
|
}
|
|
195
194
|
create(mnemonic) {
|
|
196
|
-
|
|
197
|
-
return {
|
|
198
|
-
provider: "privateKey",
|
|
199
|
-
address: wallet.address,
|
|
200
|
-
privateKey: wallet.privateKey,
|
|
201
|
-
mnemonic
|
|
202
|
-
};
|
|
195
|
+
throw new Error("PrivateKeyWalletProvider does not support creating wallets from mnemonics. Use MnemonicWalletProvider instead.");
|
|
203
196
|
}
|
|
204
197
|
generate() {
|
|
205
198
|
const wallet = import_ethers.ethers.Wallet.createRandom();
|
|
206
199
|
return {
|
|
207
|
-
provider:
|
|
200
|
+
provider: _PrivateKeyWalletProvider.PROVIDER_NAME,
|
|
208
201
|
address: wallet.address,
|
|
209
202
|
privateKey: wallet.privateKey,
|
|
210
|
-
mnemonic:
|
|
203
|
+
mnemonic: null
|
|
211
204
|
};
|
|
212
205
|
}
|
|
213
206
|
getWallet() {
|
|
@@ -218,15 +211,16 @@ var PrivateKeyWalletProvider = class {
|
|
|
218
211
|
return this.wallet;
|
|
219
212
|
}
|
|
220
213
|
};
|
|
214
|
+
_PrivateKeyWalletProvider.PROVIDER_NAME = "privateKey";
|
|
215
|
+
var PrivateKeyWalletProvider = _PrivateKeyWalletProvider;
|
|
221
216
|
|
|
222
217
|
// src/providers/MnemonicWalletProvider.ts
|
|
223
218
|
var import_ethers2 = require("ethers");
|
|
224
219
|
var import_warps3 = require("@vleap/warps");
|
|
225
|
-
var
|
|
226
|
-
constructor(config, chain
|
|
220
|
+
var _MnemonicWalletProvider = class _MnemonicWalletProvider {
|
|
221
|
+
constructor(config, chain) {
|
|
227
222
|
this.config = config;
|
|
228
223
|
this.chain = chain;
|
|
229
|
-
this.rpcProvider = rpcProvider;
|
|
230
224
|
this.wallet = null;
|
|
231
225
|
}
|
|
232
226
|
async getAddress() {
|
|
@@ -271,18 +265,18 @@ var MnemonicWalletProvider = class {
|
|
|
271
265
|
create(mnemonic) {
|
|
272
266
|
const wallet = import_ethers2.ethers.Wallet.fromPhrase(mnemonic);
|
|
273
267
|
return {
|
|
274
|
-
provider:
|
|
268
|
+
provider: _MnemonicWalletProvider.PROVIDER_NAME,
|
|
275
269
|
address: wallet.address,
|
|
276
|
-
privateKey:
|
|
270
|
+
privateKey: null,
|
|
277
271
|
mnemonic
|
|
278
272
|
};
|
|
279
273
|
}
|
|
280
274
|
generate() {
|
|
281
275
|
const wallet = import_ethers2.ethers.Wallet.createRandom();
|
|
282
276
|
return {
|
|
283
|
-
provider:
|
|
277
|
+
provider: _MnemonicWalletProvider.PROVIDER_NAME,
|
|
284
278
|
address: wallet.address,
|
|
285
|
-
privateKey:
|
|
279
|
+
privateKey: null,
|
|
286
280
|
mnemonic: wallet.mnemonic?.phrase || null
|
|
287
281
|
};
|
|
288
282
|
}
|
|
@@ -294,10 +288,43 @@ var MnemonicWalletProvider = class {
|
|
|
294
288
|
return this.wallet;
|
|
295
289
|
}
|
|
296
290
|
};
|
|
291
|
+
_MnemonicWalletProvider.PROVIDER_NAME = "mnemonic";
|
|
292
|
+
var MnemonicWalletProvider = _MnemonicWalletProvider;
|
|
297
293
|
|
|
298
|
-
// src/
|
|
294
|
+
// src/providers/ReadOnlyWalletProvider.ts
|
|
299
295
|
var import_warps4 = require("@vleap/warps");
|
|
300
|
-
var
|
|
296
|
+
var ReadOnlyWalletProvider = class {
|
|
297
|
+
constructor(config, chain) {
|
|
298
|
+
this.config = config;
|
|
299
|
+
this.chain = chain;
|
|
300
|
+
}
|
|
301
|
+
async getAddress() {
|
|
302
|
+
return (0, import_warps4.getWarpWalletAddressFromConfig)(this.config, this.chain.name);
|
|
303
|
+
}
|
|
304
|
+
async getPublicKey() {
|
|
305
|
+
return null;
|
|
306
|
+
}
|
|
307
|
+
async signTransaction(tx) {
|
|
308
|
+
const address = await this.getAddress();
|
|
309
|
+
throw new Error(`Wallet can not be used for signing: ${address}`);
|
|
310
|
+
}
|
|
311
|
+
async signMessage(message) {
|
|
312
|
+
const address = await this.getAddress();
|
|
313
|
+
throw new Error(`Wallet can not be used for signing: ${address}`);
|
|
314
|
+
}
|
|
315
|
+
create(mnemonic) {
|
|
316
|
+
const address = (0, import_warps4.getWarpWalletAddressFromConfig)(this.config, this.chain.name);
|
|
317
|
+
throw new Error(`Wallet can not be used for signing: ${address}`);
|
|
318
|
+
}
|
|
319
|
+
generate() {
|
|
320
|
+
const address = (0, import_warps4.getWarpWalletAddressFromConfig)(this.config, this.chain.name);
|
|
321
|
+
throw new Error(`Wallet can not be used for signing: ${address}`);
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
// src/tokens/arbitrum.ts
|
|
326
|
+
var import_warps5 = require("@vleap/warps");
|
|
327
|
+
var ArbitrumChain = import_warps5.WarpChainName.Arbitrum;
|
|
301
328
|
var ArbitrumTokens = [
|
|
302
329
|
{
|
|
303
330
|
chain: ArbitrumChain,
|
|
@@ -334,8 +361,8 @@ var ArbitrumTokens = [
|
|
|
334
361
|
];
|
|
335
362
|
|
|
336
363
|
// src/tokens/arbitrum-sepolia.ts
|
|
337
|
-
var
|
|
338
|
-
var ArbitrumChain2 =
|
|
364
|
+
var import_warps6 = require("@vleap/warps");
|
|
365
|
+
var ArbitrumChain2 = import_warps6.WarpChainName.Arbitrum;
|
|
339
366
|
var ArbitrumSepoliaTokens = [
|
|
340
367
|
{
|
|
341
368
|
chain: ArbitrumChain2,
|
|
@@ -364,8 +391,8 @@ var ArbitrumSepoliaTokens = [
|
|
|
364
391
|
];
|
|
365
392
|
|
|
366
393
|
// src/tokens/base.ts
|
|
367
|
-
var
|
|
368
|
-
var BaseChain =
|
|
394
|
+
var import_warps7 = require("@vleap/warps");
|
|
395
|
+
var BaseChain = import_warps7.WarpChainName.Base;
|
|
369
396
|
var BaseTokens = [
|
|
370
397
|
{
|
|
371
398
|
chain: BaseChain,
|
|
@@ -410,8 +437,8 @@ var BaseTokens = [
|
|
|
410
437
|
];
|
|
411
438
|
|
|
412
439
|
// src/tokens/base-sepolia.ts
|
|
413
|
-
var
|
|
414
|
-
var BaseChain2 =
|
|
440
|
+
var import_warps8 = require("@vleap/warps");
|
|
441
|
+
var BaseChain2 = import_warps8.WarpChainName.Base;
|
|
415
442
|
var BaseSepoliaTokens = [
|
|
416
443
|
{
|
|
417
444
|
chain: BaseChain2,
|
|
@@ -448,8 +475,8 @@ var BaseSepoliaTokens = [
|
|
|
448
475
|
];
|
|
449
476
|
|
|
450
477
|
// src/tokens/ethereum.ts
|
|
451
|
-
var
|
|
452
|
-
var EthereumChain =
|
|
478
|
+
var import_warps9 = require("@vleap/warps");
|
|
479
|
+
var EthereumChain = import_warps9.WarpChainName.Ethereum;
|
|
453
480
|
var EthereumTokens = [
|
|
454
481
|
{
|
|
455
482
|
chain: EthereumChain,
|
|
@@ -502,8 +529,8 @@ var EthereumTokens = [
|
|
|
502
529
|
];
|
|
503
530
|
|
|
504
531
|
// src/tokens/ethereum-sepolia.ts
|
|
505
|
-
var
|
|
506
|
-
var EthereumChain2 =
|
|
532
|
+
var import_warps10 = require("@vleap/warps");
|
|
533
|
+
var EthereumChain2 = import_warps10.WarpChainName.Ethereum;
|
|
507
534
|
var EthereumSepoliaTokens = [
|
|
508
535
|
{
|
|
509
536
|
chain: EthereumChain2,
|
|
@@ -585,10 +612,10 @@ var WarpEvmDataLoader = class {
|
|
|
585
612
|
constructor(config, chain) {
|
|
586
613
|
this.config = config;
|
|
587
614
|
this.chain = chain;
|
|
588
|
-
const providerConfig = (0,
|
|
615
|
+
const providerConfig = (0, import_warps11.getProviderConfig)(this.config, this.chain.name, this.config.env, this.chain.defaultApiUrl);
|
|
589
616
|
const network = new import_ethers3.ethers.Network(this.chain.name, parseInt(this.chain.chainId));
|
|
590
617
|
this.provider = new import_ethers3.ethers.JsonRpcProvider(providerConfig.url, network);
|
|
591
|
-
this.cache = new
|
|
618
|
+
this.cache = new import_warps11.WarpCache(config.cache?.type);
|
|
592
619
|
this.uniswapService = new UniswapService(this.cache, parseInt(this.chain.chainId));
|
|
593
620
|
}
|
|
594
621
|
async getAccount(address) {
|
|
@@ -624,7 +651,7 @@ var WarpEvmDataLoader = class {
|
|
|
624
651
|
if (identifier === this.chain.nativeToken.identifier) {
|
|
625
652
|
return this.chain.nativeToken;
|
|
626
653
|
}
|
|
627
|
-
const cacheKey =
|
|
654
|
+
const cacheKey = import_warps11.WarpCacheKey.Asset(this.config.env, this.chain.name, identifier);
|
|
628
655
|
const cachedAsset = this.cache.get(cacheKey);
|
|
629
656
|
if (cachedAsset) {
|
|
630
657
|
return cachedAsset;
|
|
@@ -652,7 +679,7 @@ var WarpEvmDataLoader = class {
|
|
|
652
679
|
decimals: metadata.decimals,
|
|
653
680
|
logoUrl: metadata.logoUrl
|
|
654
681
|
};
|
|
655
|
-
this.cache.set(cacheKey, asset,
|
|
682
|
+
this.cache.set(cacheKey, asset, import_warps11.CacheTtl.OneHour);
|
|
656
683
|
return asset;
|
|
657
684
|
} catch (error) {
|
|
658
685
|
return null;
|
|
@@ -737,7 +764,7 @@ var WarpEvmDataLoader = class {
|
|
|
737
764
|
};
|
|
738
765
|
|
|
739
766
|
// src/WarpEvmExecutor.ts
|
|
740
|
-
var
|
|
767
|
+
var import_warps14 = require("@vleap/warps");
|
|
741
768
|
var import_ethers6 = require("ethers");
|
|
742
769
|
|
|
743
770
|
// src/constants.ts
|
|
@@ -865,16 +892,16 @@ var SupportedEvmChainIds = [
|
|
|
865
892
|
];
|
|
866
893
|
|
|
867
894
|
// src/WarpEvmOutput.ts
|
|
868
|
-
var
|
|
895
|
+
var import_warps13 = require("@vleap/warps");
|
|
869
896
|
var import_ethers5 = require("ethers");
|
|
870
897
|
|
|
871
898
|
// src/WarpEvmSerializer.ts
|
|
872
|
-
var
|
|
899
|
+
var import_warps12 = require("@vleap/warps");
|
|
873
900
|
var import_ethers4 = require("ethers");
|
|
874
|
-
var SplitParamsRegex = new RegExp(`${
|
|
901
|
+
var SplitParamsRegex = new RegExp(`${import_warps12.WarpConstants.ArgParamsSeparator}(.*)`);
|
|
875
902
|
var WarpEvmSerializer = class {
|
|
876
903
|
constructor() {
|
|
877
|
-
this.coreSerializer = new
|
|
904
|
+
this.coreSerializer = new import_warps12.WarpSerializer();
|
|
878
905
|
}
|
|
879
906
|
typedToString(value) {
|
|
880
907
|
if (typeof value === "string") {
|
|
@@ -903,9 +930,9 @@ var WarpEvmSerializer = class {
|
|
|
903
930
|
}
|
|
904
931
|
if (Array.isArray(value)) {
|
|
905
932
|
if (value.length === 0) return `list:string:`;
|
|
906
|
-
const types = value.map((item) => this.typedToString(item).split(
|
|
933
|
+
const types = value.map((item) => this.typedToString(item).split(import_warps12.WarpConstants.ArgParamsSeparator)[0]);
|
|
907
934
|
const type = types[0];
|
|
908
|
-
const values = value.map((item) => this.typedToString(item).split(
|
|
935
|
+
const values = value.map((item) => this.typedToString(item).split(import_warps12.WarpConstants.ArgParamsSeparator)[1]);
|
|
909
936
|
return `list:${type}:${values.join(",")}`;
|
|
910
937
|
}
|
|
911
938
|
if (value === null || value === void 0) {
|
|
@@ -915,8 +942,8 @@ var WarpEvmSerializer = class {
|
|
|
915
942
|
}
|
|
916
943
|
typedToNative(value) {
|
|
917
944
|
const stringValue = this.typedToString(value);
|
|
918
|
-
const [type, ...valueParts] = stringValue.split(
|
|
919
|
-
const nativeValue = valueParts.join(
|
|
945
|
+
const [type, ...valueParts] = stringValue.split(import_warps12.WarpConstants.ArgParamsSeparator);
|
|
946
|
+
const nativeValue = valueParts.join(import_warps12.WarpConstants.ArgParamsSeparator);
|
|
920
947
|
return [type, this.parseNativeValue(type, nativeValue)];
|
|
921
948
|
}
|
|
922
949
|
nativeToTyped(type, value) {
|
|
@@ -968,7 +995,7 @@ var WarpEvmSerializer = class {
|
|
|
968
995
|
}
|
|
969
996
|
}
|
|
970
997
|
stringToTyped(value) {
|
|
971
|
-
const parts = value.split(
|
|
998
|
+
const parts = value.split(import_warps12.WarpConstants.ArgParamsSeparator, 2);
|
|
972
999
|
if (parts.length < 2) {
|
|
973
1000
|
return value;
|
|
974
1001
|
}
|
|
@@ -1027,14 +1054,14 @@ var WarpEvmOutput = class {
|
|
|
1027
1054
|
this.config = config;
|
|
1028
1055
|
this.chain = chain;
|
|
1029
1056
|
this.serializer = new WarpEvmSerializer();
|
|
1030
|
-
const providerConfig = (0,
|
|
1057
|
+
const providerConfig = (0, import_warps13.getProviderConfig)(this.config, this.chain.name, this.config.env, this.chain.defaultApiUrl);
|
|
1031
1058
|
const network = new import_ethers5.ethers.Network(this.chain.name, parseInt(this.chain.chainId));
|
|
1032
1059
|
this.provider = new import_ethers5.ethers.JsonRpcProvider(providerConfig.url, network);
|
|
1033
|
-
this.cache = new
|
|
1060
|
+
this.cache = new import_warps13.WarpCache(config.cache?.type);
|
|
1034
1061
|
}
|
|
1035
1062
|
async getActionExecution(warp, actionIndex, tx) {
|
|
1036
|
-
const inputs = this.cache.get(
|
|
1037
|
-
const resolvedInputs = (0,
|
|
1063
|
+
const inputs = this.cache.get(import_warps13.WarpCacheKey.WarpExecutable(this.config.env, warp.meta?.hash || "", actionIndex)) ?? [];
|
|
1064
|
+
const resolvedInputs = (0, import_warps13.extractResolvedInputValues)(inputs);
|
|
1038
1065
|
if (!tx) {
|
|
1039
1066
|
return this.createFailedExecution(warp, actionIndex, resolvedInputs);
|
|
1040
1067
|
}
|
|
@@ -1048,7 +1075,7 @@ var WarpEvmOutput = class {
|
|
|
1048
1075
|
status: "error",
|
|
1049
1076
|
warp,
|
|
1050
1077
|
action: actionIndex,
|
|
1051
|
-
user: (0,
|
|
1078
|
+
user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
|
|
1052
1079
|
txHash: "",
|
|
1053
1080
|
tx: null,
|
|
1054
1081
|
next: null,
|
|
@@ -1071,7 +1098,7 @@ var WarpEvmOutput = class {
|
|
|
1071
1098
|
status: success ? "success" : "error",
|
|
1072
1099
|
warp,
|
|
1073
1100
|
action: actionIndex,
|
|
1074
|
-
user: (0,
|
|
1101
|
+
user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
|
|
1075
1102
|
txHash: transactionHash,
|
|
1076
1103
|
tx,
|
|
1077
1104
|
next: null,
|
|
@@ -1102,7 +1129,7 @@ var WarpEvmOutput = class {
|
|
|
1102
1129
|
status: success ? "success" : "error",
|
|
1103
1130
|
warp,
|
|
1104
1131
|
action: actionIndex,
|
|
1105
|
-
user: (0,
|
|
1132
|
+
user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
|
|
1106
1133
|
txHash: transactionHash,
|
|
1107
1134
|
tx,
|
|
1108
1135
|
next: null,
|
|
@@ -1130,8 +1157,8 @@ var WarpEvmOutput = class {
|
|
|
1130
1157
|
return value;
|
|
1131
1158
|
};
|
|
1132
1159
|
for (const [key, path] of Object.entries(warp.output)) {
|
|
1133
|
-
if (path.startsWith(
|
|
1134
|
-
const currentActionIndex = (0,
|
|
1160
|
+
if (path.startsWith(import_warps13.WarpConstants.Transform.Prefix)) continue;
|
|
1161
|
+
const currentActionIndex = (0, import_warps13.parseOutputOutIndex)(path);
|
|
1135
1162
|
if (currentActionIndex !== null && currentActionIndex !== actionIndex) {
|
|
1136
1163
|
output[key] = null;
|
|
1137
1164
|
continue;
|
|
@@ -1142,7 +1169,7 @@ var WarpEvmOutput = class {
|
|
|
1142
1169
|
output[key] = path;
|
|
1143
1170
|
}
|
|
1144
1171
|
}
|
|
1145
|
-
return { values, output: await (0,
|
|
1172
|
+
return { values, output: await (0, import_warps13.evaluateOutputCommon)(warp, output, actionIndex, inputs, this.serializer.coreSerializer, this.config) };
|
|
1146
1173
|
}
|
|
1147
1174
|
async getTransactionStatus(txHash) {
|
|
1148
1175
|
try {
|
|
@@ -1174,13 +1201,13 @@ var WarpEvmExecutor = class {
|
|
|
1174
1201
|
this.config = config;
|
|
1175
1202
|
this.chain = chain;
|
|
1176
1203
|
this.serializer = new WarpEvmSerializer();
|
|
1177
|
-
const providerConfig = (0,
|
|
1204
|
+
const providerConfig = (0, import_warps14.getProviderConfig)(this.config, chain.name, this.config.env, this.chain.defaultApiUrl);
|
|
1178
1205
|
const network = new import_ethers6.ethers.Network(this.chain.name, parseInt(this.chain.chainId));
|
|
1179
1206
|
this.provider = new import_ethers6.ethers.JsonRpcProvider(providerConfig.url, network);
|
|
1180
1207
|
this.output = new WarpEvmOutput(config, this.chain);
|
|
1181
1208
|
}
|
|
1182
1209
|
async createTransaction(executable) {
|
|
1183
|
-
const action = (0,
|
|
1210
|
+
const action = (0, import_warps14.getWarpActionByIndex)(executable.warp, executable.action);
|
|
1184
1211
|
let tx = null;
|
|
1185
1212
|
if (action.type === "transfer") {
|
|
1186
1213
|
tx = await this.createTransferTransaction(executable);
|
|
@@ -1195,7 +1222,7 @@ var WarpEvmExecutor = class {
|
|
|
1195
1222
|
return tx;
|
|
1196
1223
|
}
|
|
1197
1224
|
async createTransferTransaction(executable) {
|
|
1198
|
-
const userWallet = (0,
|
|
1225
|
+
const userWallet = (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
|
|
1199
1226
|
if (!userWallet) throw new Error("WarpEvmExecutor: createTransfer - user address not set");
|
|
1200
1227
|
if (!import_ethers6.ethers.isAddress(executable.destination)) {
|
|
1201
1228
|
throw new Error(`WarpEvmExecutor: Invalid destination address: ${executable.destination}`);
|
|
@@ -1211,9 +1238,9 @@ var WarpEvmExecutor = class {
|
|
|
1211
1238
|
return this.estimateGasAndSetDefaults(tx, userWallet);
|
|
1212
1239
|
}
|
|
1213
1240
|
async createContractCallTransaction(executable) {
|
|
1214
|
-
const userWallet = (0,
|
|
1241
|
+
const userWallet = (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
|
|
1215
1242
|
if (!userWallet) throw new Error("WarpEvmExecutor: createContractCall - user address not set");
|
|
1216
|
-
const action = (0,
|
|
1243
|
+
const action = (0, import_warps14.getWarpActionByIndex)(executable.warp, executable.action);
|
|
1217
1244
|
if (!action || !("func" in action) || !action.func) throw new Error("WarpEvmExecutor: Contract action must have a function name");
|
|
1218
1245
|
if (!import_ethers6.ethers.isAddress(executable.destination)) throw new Error(`WarpEvmExecutor: Invalid contract address: ${executable.destination}`);
|
|
1219
1246
|
try {
|
|
@@ -1276,7 +1303,7 @@ var WarpEvmExecutor = class {
|
|
|
1276
1303
|
return this.estimateGasAndSetDefaults(tx, userWallet);
|
|
1277
1304
|
}
|
|
1278
1305
|
async executeQuery(executable) {
|
|
1279
|
-
const action = (0,
|
|
1306
|
+
const action = (0, import_warps14.getWarpActionByIndex)(executable.warp, executable.action);
|
|
1280
1307
|
if (action.type !== "query") throw new Error(`WarpEvmExecutor: Invalid action type for executeQuery: ${action.type}`);
|
|
1281
1308
|
if (!action.func) throw new Error("WarpEvmExecutor: Query action must have a function name");
|
|
1282
1309
|
if (!import_ethers6.ethers.isAddress(executable.destination)) throw new Error(`WarpEvmExecutor: Invalid address for query: ${executable.destination}`);
|
|
@@ -1303,33 +1330,33 @@ var WarpEvmExecutor = class {
|
|
|
1303
1330
|
executable.action,
|
|
1304
1331
|
executable.resolvedInputs
|
|
1305
1332
|
);
|
|
1306
|
-
const next = (0,
|
|
1333
|
+
const next = (0, import_warps14.getNextInfo)(this.config, [], executable.warp, executable.action, output);
|
|
1307
1334
|
const destinationInput = executable.resolvedInputs.find((i) => i.input.position === "receiver" || i.input.position === "destination");
|
|
1308
1335
|
const destination = destinationInput?.value || executable.destination;
|
|
1309
|
-
const resolvedInputs = (0,
|
|
1336
|
+
const resolvedInputs = (0, import_warps14.extractResolvedInputValues)(executable.resolvedInputs);
|
|
1310
1337
|
return {
|
|
1311
1338
|
status: isSuccess ? "success" : "error",
|
|
1312
1339
|
warp: executable.warp,
|
|
1313
1340
|
action: executable.action,
|
|
1314
|
-
user: (0,
|
|
1341
|
+
user: (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
|
|
1315
1342
|
txHash: null,
|
|
1316
1343
|
tx: null,
|
|
1317
1344
|
next,
|
|
1318
1345
|
values,
|
|
1319
1346
|
output: { ...output, _DATA: decodedResult },
|
|
1320
|
-
messages: (0,
|
|
1347
|
+
messages: (0, import_warps14.applyOutputToMessages)(executable.warp, output, this.config),
|
|
1321
1348
|
destination,
|
|
1322
1349
|
resolvedInputs
|
|
1323
1350
|
};
|
|
1324
1351
|
} catch (error) {
|
|
1325
1352
|
const destinationInput = executable.resolvedInputs.find((i) => i.input.position === "receiver" || i.input.position === "destination");
|
|
1326
1353
|
const destination = destinationInput?.value || executable.destination;
|
|
1327
|
-
const resolvedInputs = (0,
|
|
1354
|
+
const resolvedInputs = (0, import_warps14.extractResolvedInputValues)(executable.resolvedInputs);
|
|
1328
1355
|
return {
|
|
1329
1356
|
status: "error",
|
|
1330
1357
|
warp: executable.warp,
|
|
1331
1358
|
action: executable.action,
|
|
1332
|
-
user: (0,
|
|
1359
|
+
user: (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
|
|
1333
1360
|
txHash: null,
|
|
1334
1361
|
tx: null,
|
|
1335
1362
|
next: null,
|
|
@@ -1569,7 +1596,7 @@ var WarpEvmExplorer = class {
|
|
|
1569
1596
|
};
|
|
1570
1597
|
|
|
1571
1598
|
// src/WarpEvmWallet.ts
|
|
1572
|
-
var
|
|
1599
|
+
var import_warps15 = require("@vleap/warps");
|
|
1573
1600
|
var import_client = require("@x402/evm/exact/client");
|
|
1574
1601
|
var import_ethers7 = require("ethers");
|
|
1575
1602
|
var import_accounts = require("viem/accounts");
|
|
@@ -1579,31 +1606,15 @@ var WarpEvmWallet = class {
|
|
|
1579
1606
|
this.chain = chain;
|
|
1580
1607
|
this.cachedAddress = null;
|
|
1581
1608
|
this.cachedPublicKey = null;
|
|
1582
|
-
const providerConfig = (0,
|
|
1609
|
+
const providerConfig = (0, import_warps15.getProviderConfig)(config, chain.name, config.env, chain.defaultApiUrl);
|
|
1583
1610
|
this.provider = new import_ethers7.ethers.JsonRpcProvider(providerConfig.url);
|
|
1584
1611
|
this.walletProvider = this.createProvider();
|
|
1585
1612
|
this.initializeCache();
|
|
1586
1613
|
}
|
|
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}`);
|
|
1597
|
-
}
|
|
1598
|
-
initializeCache() {
|
|
1599
|
-
(0, import_warps14.initializeWalletCache)(this.walletProvider).then((cache) => {
|
|
1600
|
-
this.cachedAddress = cache.address;
|
|
1601
|
-
this.cachedPublicKey = cache.publicKey;
|
|
1602
|
-
});
|
|
1603
|
-
}
|
|
1604
1614
|
async signTransaction(tx) {
|
|
1605
1615
|
if (!tx || typeof tx !== "object") throw new Error("Invalid transaction object");
|
|
1606
1616
|
if (!this.walletProvider) throw new Error("No wallet provider available");
|
|
1617
|
+
if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
|
|
1607
1618
|
return await this.walletProvider.signTransaction(tx);
|
|
1608
1619
|
}
|
|
1609
1620
|
async signTransactions(txs) {
|
|
@@ -1614,7 +1625,7 @@ var WarpEvmWallet = class {
|
|
|
1614
1625
|
const address = wallet.address;
|
|
1615
1626
|
if (txs.length > 1) {
|
|
1616
1627
|
const currentNonce = await this.provider.getTransactionCount(address, "pending");
|
|
1617
|
-
const
|
|
1628
|
+
const signedTxs2 = [];
|
|
1618
1629
|
for (let i = 0; i < txs.length; i++) {
|
|
1619
1630
|
const tx = { ...txs[i] };
|
|
1620
1631
|
tx.nonce = currentNonce + i;
|
|
@@ -1631,15 +1642,20 @@ var WarpEvmWallet = class {
|
|
|
1631
1642
|
delete tx.maxPriorityFeePerGas;
|
|
1632
1643
|
}
|
|
1633
1644
|
}
|
|
1634
|
-
|
|
1645
|
+
signedTxs2.push(await this.signTransaction(tx));
|
|
1635
1646
|
}
|
|
1636
|
-
return
|
|
1647
|
+
return signedTxs2;
|
|
1637
1648
|
}
|
|
1638
1649
|
}
|
|
1639
|
-
|
|
1650
|
+
const signedTxs = [];
|
|
1651
|
+
for (const tx of txs) {
|
|
1652
|
+
signedTxs.push(await this.signTransaction(tx));
|
|
1653
|
+
}
|
|
1654
|
+
return signedTxs;
|
|
1640
1655
|
}
|
|
1641
1656
|
async signMessage(message) {
|
|
1642
1657
|
if (!this.walletProvider) throw new Error("No wallet provider available");
|
|
1658
|
+
if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
|
|
1643
1659
|
return await this.walletProvider.signMessage(message);
|
|
1644
1660
|
}
|
|
1645
1661
|
async sendTransaction(tx) {
|
|
@@ -1657,13 +1673,13 @@ var WarpEvmWallet = class {
|
|
|
1657
1673
|
async sendTransactions(txs) {
|
|
1658
1674
|
return Promise.all(txs.map(async (tx) => this.sendTransaction(tx)));
|
|
1659
1675
|
}
|
|
1660
|
-
create(mnemonic) {
|
|
1661
|
-
|
|
1662
|
-
return
|
|
1676
|
+
create(mnemonic, provider) {
|
|
1677
|
+
const walletProvider = this.createProviderForOperation(provider);
|
|
1678
|
+
return walletProvider.create(mnemonic);
|
|
1663
1679
|
}
|
|
1664
|
-
generate() {
|
|
1665
|
-
|
|
1666
|
-
return
|
|
1680
|
+
generate(provider) {
|
|
1681
|
+
const walletProvider = this.createProviderForOperation(provider);
|
|
1682
|
+
return walletProvider.generate();
|
|
1667
1683
|
}
|
|
1668
1684
|
getAddress() {
|
|
1669
1685
|
return this.cachedAddress;
|
|
@@ -1687,6 +1703,30 @@ var WarpEvmWallet = class {
|
|
|
1687
1703
|
}
|
|
1688
1704
|
return handlers;
|
|
1689
1705
|
}
|
|
1706
|
+
createProvider() {
|
|
1707
|
+
const wallet = this.config.user?.wallets?.[this.chain.name];
|
|
1708
|
+
if (!wallet) return null;
|
|
1709
|
+
if (typeof wallet === "string") return new ReadOnlyWalletProvider(this.config, this.chain);
|
|
1710
|
+
return this.createProviderForOperation(wallet.provider);
|
|
1711
|
+
}
|
|
1712
|
+
initializeCache() {
|
|
1713
|
+
(0, import_warps15.initializeWalletCache)(this.walletProvider).then((cache) => {
|
|
1714
|
+
this.cachedAddress = cache.address;
|
|
1715
|
+
this.cachedPublicKey = cache.publicKey;
|
|
1716
|
+
});
|
|
1717
|
+
}
|
|
1718
|
+
createProviderForOperation(provider) {
|
|
1719
|
+
const customWalletProviders = this.config.walletProviders?.[this.chain.name];
|
|
1720
|
+
const providerFactory = customWalletProviders?.[provider];
|
|
1721
|
+
if (providerFactory) {
|
|
1722
|
+
const walletProvider = providerFactory(this.config, this.chain);
|
|
1723
|
+
if (!walletProvider) throw new Error(`Custom wallet provider factory returned null for ${provider}`);
|
|
1724
|
+
return walletProvider;
|
|
1725
|
+
}
|
|
1726
|
+
if (provider === "privateKey") return new PrivateKeyWalletProvider(this.config, this.chain);
|
|
1727
|
+
if (provider === "mnemonic") return new MnemonicWalletProvider(this.config, this.chain);
|
|
1728
|
+
throw new Error(`Unsupported wallet provider for ${this.chain.name}: ${provider}`);
|
|
1729
|
+
}
|
|
1690
1730
|
};
|
|
1691
1731
|
|
|
1692
1732
|
// src/chains/common.ts
|
|
@@ -1711,16 +1751,16 @@ var createEvmAdapter = (chainName, chainInfos) => {
|
|
|
1711
1751
|
|
|
1712
1752
|
// src/chains/arbitrum.ts
|
|
1713
1753
|
var NativeTokenArb = {
|
|
1714
|
-
chain:
|
|
1754
|
+
chain: import_warps16.WarpChainName.Arbitrum,
|
|
1715
1755
|
identifier: "ARB",
|
|
1716
1756
|
symbol: "ARB",
|
|
1717
1757
|
name: "Arbitrum",
|
|
1718
1758
|
decimals: 18,
|
|
1719
1759
|
logoUrl: "https://joai.ai/images/tokens/arb.svg"
|
|
1720
1760
|
};
|
|
1721
|
-
var ArbitrumAdapter = createEvmAdapter(
|
|
1761
|
+
var ArbitrumAdapter = createEvmAdapter(import_warps16.WarpChainName.Arbitrum, {
|
|
1722
1762
|
mainnet: {
|
|
1723
|
-
name:
|
|
1763
|
+
name: import_warps16.WarpChainName.Arbitrum,
|
|
1724
1764
|
displayName: "Arbitrum",
|
|
1725
1765
|
chainId: "42161",
|
|
1726
1766
|
blockTime: 1e3,
|
|
@@ -1730,7 +1770,7 @@ var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
|
|
|
1730
1770
|
nativeToken: NativeTokenArb
|
|
1731
1771
|
},
|
|
1732
1772
|
testnet: {
|
|
1733
|
-
name:
|
|
1773
|
+
name: import_warps16.WarpChainName.Arbitrum,
|
|
1734
1774
|
displayName: "Arbitrum Sepolia",
|
|
1735
1775
|
chainId: "421614",
|
|
1736
1776
|
blockTime: 1e3,
|
|
@@ -1740,7 +1780,7 @@ var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
|
|
|
1740
1780
|
nativeToken: NativeTokenArb
|
|
1741
1781
|
},
|
|
1742
1782
|
devnet: {
|
|
1743
|
-
name:
|
|
1783
|
+
name: import_warps16.WarpChainName.Arbitrum,
|
|
1744
1784
|
displayName: "Arbitrum Sepolia",
|
|
1745
1785
|
chainId: "421614",
|
|
1746
1786
|
blockTime: 1e3,
|
|
@@ -1752,18 +1792,18 @@ var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
|
|
|
1752
1792
|
});
|
|
1753
1793
|
|
|
1754
1794
|
// src/chains/base.ts
|
|
1755
|
-
var
|
|
1795
|
+
var import_warps17 = require("@vleap/warps");
|
|
1756
1796
|
var NativeTokenBase = {
|
|
1757
|
-
chain:
|
|
1797
|
+
chain: import_warps17.WarpChainName.Base,
|
|
1758
1798
|
identifier: "ETH",
|
|
1759
1799
|
name: "Ether",
|
|
1760
1800
|
symbol: "ETH",
|
|
1761
1801
|
decimals: 18,
|
|
1762
1802
|
logoUrl: "https://joai.ai/images/tokens/eth.svg"
|
|
1763
1803
|
};
|
|
1764
|
-
var BaseAdapter = createEvmAdapter(
|
|
1804
|
+
var BaseAdapter = createEvmAdapter(import_warps17.WarpChainName.Base, {
|
|
1765
1805
|
mainnet: {
|
|
1766
|
-
name:
|
|
1806
|
+
name: import_warps17.WarpChainName.Base,
|
|
1767
1807
|
displayName: "Base",
|
|
1768
1808
|
chainId: "8453",
|
|
1769
1809
|
blockTime: 2e3,
|
|
@@ -1773,7 +1813,7 @@ var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
|
|
|
1773
1813
|
nativeToken: NativeTokenBase
|
|
1774
1814
|
},
|
|
1775
1815
|
testnet: {
|
|
1776
|
-
name:
|
|
1816
|
+
name: import_warps17.WarpChainName.Base,
|
|
1777
1817
|
displayName: "Base Sepolia",
|
|
1778
1818
|
chainId: "84532",
|
|
1779
1819
|
blockTime: 2e3,
|
|
@@ -1783,7 +1823,7 @@ var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
|
|
|
1783
1823
|
nativeToken: NativeTokenBase
|
|
1784
1824
|
},
|
|
1785
1825
|
devnet: {
|
|
1786
|
-
name:
|
|
1826
|
+
name: import_warps17.WarpChainName.Base,
|
|
1787
1827
|
displayName: "Base Sepolia",
|
|
1788
1828
|
chainId: "84532",
|
|
1789
1829
|
blockTime: 2e3,
|
|
@@ -1795,27 +1835,27 @@ var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
|
|
|
1795
1835
|
});
|
|
1796
1836
|
|
|
1797
1837
|
// src/chains/combined.ts
|
|
1798
|
-
var
|
|
1838
|
+
var import_warps18 = require("@vleap/warps");
|
|
1799
1839
|
var getAllEvmChainNames = () => [
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1840
|
+
import_warps18.WarpChainName.Ethereum,
|
|
1841
|
+
import_warps18.WarpChainName.Base,
|
|
1842
|
+
import_warps18.WarpChainName.Arbitrum,
|
|
1843
|
+
import_warps18.WarpChainName.Somnia
|
|
1804
1844
|
];
|
|
1805
1845
|
|
|
1806
1846
|
// src/chains/ethereum.ts
|
|
1807
|
-
var
|
|
1847
|
+
var import_warps19 = require("@vleap/warps");
|
|
1808
1848
|
var NativeTokenEth = {
|
|
1809
|
-
chain:
|
|
1849
|
+
chain: import_warps19.WarpChainName.Ethereum,
|
|
1810
1850
|
identifier: "ETH",
|
|
1811
1851
|
symbol: "ETH",
|
|
1812
1852
|
name: "Ether",
|
|
1813
1853
|
decimals: 18,
|
|
1814
1854
|
logoUrl: "https://joai.ai/images/tokens/eth.svg"
|
|
1815
1855
|
};
|
|
1816
|
-
var EthereumAdapter = createEvmAdapter(
|
|
1856
|
+
var EthereumAdapter = createEvmAdapter(import_warps19.WarpChainName.Ethereum, {
|
|
1817
1857
|
mainnet: {
|
|
1818
|
-
name:
|
|
1858
|
+
name: import_warps19.WarpChainName.Ethereum,
|
|
1819
1859
|
displayName: "Ethereum Mainnet",
|
|
1820
1860
|
chainId: "1",
|
|
1821
1861
|
blockTime: 12e3,
|
|
@@ -1825,7 +1865,7 @@ var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
|
|
|
1825
1865
|
nativeToken: NativeTokenEth
|
|
1826
1866
|
},
|
|
1827
1867
|
testnet: {
|
|
1828
|
-
name:
|
|
1868
|
+
name: import_warps19.WarpChainName.Ethereum,
|
|
1829
1869
|
displayName: "Ethereum Sepolia",
|
|
1830
1870
|
chainId: "11155111",
|
|
1831
1871
|
blockTime: 12e3,
|
|
@@ -1835,7 +1875,7 @@ var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
|
|
|
1835
1875
|
nativeToken: NativeTokenEth
|
|
1836
1876
|
},
|
|
1837
1877
|
devnet: {
|
|
1838
|
-
name:
|
|
1878
|
+
name: import_warps19.WarpChainName.Ethereum,
|
|
1839
1879
|
displayName: "Ethereum Sepolia",
|
|
1840
1880
|
chainId: "11155111",
|
|
1841
1881
|
blockTime: 12e3,
|
|
@@ -1847,12 +1887,12 @@ var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
|
|
|
1847
1887
|
});
|
|
1848
1888
|
|
|
1849
1889
|
// src/adapters.ts
|
|
1850
|
-
var
|
|
1890
|
+
var import_warps21 = require("@vleap/warps");
|
|
1851
1891
|
|
|
1852
1892
|
// src/chains/somnia.ts
|
|
1853
|
-
var
|
|
1893
|
+
var import_warps20 = require("@vleap/warps");
|
|
1854
1894
|
var NativeTokenSomi = {
|
|
1855
|
-
chain:
|
|
1895
|
+
chain: import_warps20.WarpChainName.Somnia,
|
|
1856
1896
|
identifier: "SOMI",
|
|
1857
1897
|
symbol: "SOMI",
|
|
1858
1898
|
name: "Somnia",
|
|
@@ -1860,16 +1900,16 @@ var NativeTokenSomi = {
|
|
|
1860
1900
|
logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
|
|
1861
1901
|
};
|
|
1862
1902
|
var NativeTokenStt = {
|
|
1863
|
-
chain:
|
|
1903
|
+
chain: import_warps20.WarpChainName.Somnia,
|
|
1864
1904
|
identifier: "STT",
|
|
1865
1905
|
symbol: "STT",
|
|
1866
1906
|
name: "Somnia Testnet Token",
|
|
1867
1907
|
decimals: 18,
|
|
1868
1908
|
logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
|
|
1869
1909
|
};
|
|
1870
|
-
var SomniaAdapter = createEvmAdapter(
|
|
1910
|
+
var SomniaAdapter = createEvmAdapter(import_warps20.WarpChainName.Somnia, {
|
|
1871
1911
|
mainnet: {
|
|
1872
|
-
name:
|
|
1912
|
+
name: import_warps20.WarpChainName.Somnia,
|
|
1873
1913
|
displayName: "Somnia Mainnet",
|
|
1874
1914
|
chainId: "5031",
|
|
1875
1915
|
blockTime: 100,
|
|
@@ -1879,7 +1919,7 @@ var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
|
|
|
1879
1919
|
nativeToken: NativeTokenSomi
|
|
1880
1920
|
},
|
|
1881
1921
|
testnet: {
|
|
1882
|
-
name:
|
|
1922
|
+
name: import_warps20.WarpChainName.Somnia,
|
|
1883
1923
|
displayName: "Somnia Testnet",
|
|
1884
1924
|
chainId: "50312",
|
|
1885
1925
|
blockTime: 100,
|
|
@@ -1889,7 +1929,7 @@ var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
|
|
|
1889
1929
|
nativeToken: NativeTokenStt
|
|
1890
1930
|
},
|
|
1891
1931
|
devnet: {
|
|
1892
|
-
name:
|
|
1932
|
+
name: import_warps20.WarpChainName.Somnia,
|
|
1893
1933
|
displayName: "Somnia Testnet",
|
|
1894
1934
|
chainId: "50312",
|
|
1895
1935
|
blockTime: 100,
|
|
@@ -1902,10 +1942,10 @@ var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
|
|
|
1902
1942
|
|
|
1903
1943
|
// src/adapters.ts
|
|
1904
1944
|
var getAllEvmAdapters = (fallbackFactory) => [
|
|
1905
|
-
(0,
|
|
1906
|
-
(0,
|
|
1907
|
-
(0,
|
|
1908
|
-
(0,
|
|
1945
|
+
(0, import_warps21.withAdapterFallback)(EthereumAdapter, fallbackFactory),
|
|
1946
|
+
(0, import_warps21.withAdapterFallback)(BaseAdapter, fallbackFactory),
|
|
1947
|
+
(0, import_warps21.withAdapterFallback)(ArbitrumAdapter, fallbackFactory),
|
|
1948
|
+
(0, import_warps21.withAdapterFallback)(SomniaAdapter, fallbackFactory)
|
|
1909
1949
|
];
|
|
1910
1950
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1911
1951
|
0 && (module.exports = {
|