@vleap/warps-adapter-evm 0.2.0-beta.58 → 0.2.0-beta.59

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
@@ -51,10 +51,10 @@ __export(index_exports, {
51
51
  module.exports = __toCommonJS(index_exports);
52
52
 
53
53
  // src/chains/arbitrum.ts
54
- var import_warps15 = require("@vleap/warps");
54
+ var import_warps16 = require("@vleap/warps");
55
55
 
56
56
  // src/WarpEvmDataLoader.ts
57
- var import_warps10 = require("@vleap/warps");
57
+ var import_warps11 = require("@vleap/warps");
58
58
  var import_ethers3 = require("ethers");
59
59
 
60
60
  // src/providers/UniswapService.ts
@@ -295,9 +295,40 @@ var MnemonicWalletProvider = class {
295
295
  }
296
296
  };
297
297
 
298
- // src/tokens/arbitrum.ts
298
+ // src/providers/ReadOnlyWalletProvider.ts
299
299
  var import_warps4 = require("@vleap/warps");
300
- var ArbitrumChain = import_warps4.WarpChainName.Arbitrum;
300
+ var ReadOnlyWalletProvider = class {
301
+ constructor(config, chain) {
302
+ this.config = config;
303
+ this.chain = chain;
304
+ }
305
+ async getAddress() {
306
+ return (0, import_warps4.getWarpWalletAddressFromConfig)(this.config, this.chain.name);
307
+ }
308
+ async getPublicKey() {
309
+ return null;
310
+ }
311
+ async signTransaction(tx) {
312
+ const address = await this.getAddress();
313
+ throw new Error(`Wallet can not be used for signing: ${address}`);
314
+ }
315
+ async signMessage(message) {
316
+ const address = await this.getAddress();
317
+ throw new Error(`Wallet can not be used for signing: ${address}`);
318
+ }
319
+ create(mnemonic) {
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
+ generate() {
324
+ const address = (0, import_warps4.getWarpWalletAddressFromConfig)(this.config, this.chain.name);
325
+ throw new Error(`Wallet can not be used for signing: ${address}`);
326
+ }
327
+ };
328
+
329
+ // src/tokens/arbitrum.ts
330
+ var import_warps5 = require("@vleap/warps");
331
+ var ArbitrumChain = import_warps5.WarpChainName.Arbitrum;
301
332
  var ArbitrumTokens = [
302
333
  {
303
334
  chain: ArbitrumChain,
@@ -334,8 +365,8 @@ var ArbitrumTokens = [
334
365
  ];
335
366
 
336
367
  // src/tokens/arbitrum-sepolia.ts
337
- var import_warps5 = require("@vleap/warps");
338
- var ArbitrumChain2 = import_warps5.WarpChainName.Arbitrum;
368
+ var import_warps6 = require("@vleap/warps");
369
+ var ArbitrumChain2 = import_warps6.WarpChainName.Arbitrum;
339
370
  var ArbitrumSepoliaTokens = [
340
371
  {
341
372
  chain: ArbitrumChain2,
@@ -364,8 +395,8 @@ var ArbitrumSepoliaTokens = [
364
395
  ];
365
396
 
366
397
  // src/tokens/base.ts
367
- var import_warps6 = require("@vleap/warps");
368
- var BaseChain = import_warps6.WarpChainName.Base;
398
+ var import_warps7 = require("@vleap/warps");
399
+ var BaseChain = import_warps7.WarpChainName.Base;
369
400
  var BaseTokens = [
370
401
  {
371
402
  chain: BaseChain,
@@ -410,8 +441,8 @@ var BaseTokens = [
410
441
  ];
411
442
 
412
443
  // src/tokens/base-sepolia.ts
413
- var import_warps7 = require("@vleap/warps");
414
- var BaseChain2 = import_warps7.WarpChainName.Base;
444
+ var import_warps8 = require("@vleap/warps");
445
+ var BaseChain2 = import_warps8.WarpChainName.Base;
415
446
  var BaseSepoliaTokens = [
416
447
  {
417
448
  chain: BaseChain2,
@@ -448,8 +479,8 @@ var BaseSepoliaTokens = [
448
479
  ];
449
480
 
450
481
  // src/tokens/ethereum.ts
451
- var import_warps8 = require("@vleap/warps");
452
- var EthereumChain = import_warps8.WarpChainName.Ethereum;
482
+ var import_warps9 = require("@vleap/warps");
483
+ var EthereumChain = import_warps9.WarpChainName.Ethereum;
453
484
  var EthereumTokens = [
454
485
  {
455
486
  chain: EthereumChain,
@@ -502,8 +533,8 @@ var EthereumTokens = [
502
533
  ];
503
534
 
504
535
  // src/tokens/ethereum-sepolia.ts
505
- var import_warps9 = require("@vleap/warps");
506
- var EthereumChain2 = import_warps9.WarpChainName.Ethereum;
536
+ var import_warps10 = require("@vleap/warps");
537
+ var EthereumChain2 = import_warps10.WarpChainName.Ethereum;
507
538
  var EthereumSepoliaTokens = [
508
539
  {
509
540
  chain: EthereumChain2,
@@ -585,10 +616,10 @@ var WarpEvmDataLoader = class {
585
616
  constructor(config, chain) {
586
617
  this.config = config;
587
618
  this.chain = chain;
588
- const providerConfig = (0, import_warps10.getProviderConfig)(this.config, this.chain.name, this.config.env, this.chain.defaultApiUrl);
619
+ const providerConfig = (0, import_warps11.getProviderConfig)(this.config, this.chain.name, this.config.env, this.chain.defaultApiUrl);
589
620
  const network = new import_ethers3.ethers.Network(this.chain.name, parseInt(this.chain.chainId));
590
621
  this.provider = new import_ethers3.ethers.JsonRpcProvider(providerConfig.url, network);
591
- this.cache = new import_warps10.WarpCache(config.cache?.type);
622
+ this.cache = new import_warps11.WarpCache(config.cache?.type);
592
623
  this.uniswapService = new UniswapService(this.cache, parseInt(this.chain.chainId));
593
624
  }
594
625
  async getAccount(address) {
@@ -624,7 +655,7 @@ var WarpEvmDataLoader = class {
624
655
  if (identifier === this.chain.nativeToken.identifier) {
625
656
  return this.chain.nativeToken;
626
657
  }
627
- const cacheKey = import_warps10.WarpCacheKey.Asset(this.config.env, this.chain.name, identifier);
658
+ const cacheKey = import_warps11.WarpCacheKey.Asset(this.config.env, this.chain.name, identifier);
628
659
  const cachedAsset = this.cache.get(cacheKey);
629
660
  if (cachedAsset) {
630
661
  return cachedAsset;
@@ -652,7 +683,7 @@ var WarpEvmDataLoader = class {
652
683
  decimals: metadata.decimals,
653
684
  logoUrl: metadata.logoUrl
654
685
  };
655
- this.cache.set(cacheKey, asset, import_warps10.CacheTtl.OneHour);
686
+ this.cache.set(cacheKey, asset, import_warps11.CacheTtl.OneHour);
656
687
  return asset;
657
688
  } catch (error) {
658
689
  return null;
@@ -737,7 +768,7 @@ var WarpEvmDataLoader = class {
737
768
  };
738
769
 
739
770
  // src/WarpEvmExecutor.ts
740
- var import_warps13 = require("@vleap/warps");
771
+ var import_warps14 = require("@vleap/warps");
741
772
  var import_ethers6 = require("ethers");
742
773
 
743
774
  // src/constants.ts
@@ -865,16 +896,16 @@ var SupportedEvmChainIds = [
865
896
  ];
866
897
 
867
898
  // src/WarpEvmOutput.ts
868
- var import_warps12 = require("@vleap/warps");
899
+ var import_warps13 = require("@vleap/warps");
869
900
  var import_ethers5 = require("ethers");
870
901
 
871
902
  // src/WarpEvmSerializer.ts
872
- var import_warps11 = require("@vleap/warps");
903
+ var import_warps12 = require("@vleap/warps");
873
904
  var import_ethers4 = require("ethers");
874
- var SplitParamsRegex = new RegExp(`${import_warps11.WarpConstants.ArgParamsSeparator}(.*)`);
905
+ var SplitParamsRegex = new RegExp(`${import_warps12.WarpConstants.ArgParamsSeparator}(.*)`);
875
906
  var WarpEvmSerializer = class {
876
907
  constructor() {
877
- this.coreSerializer = new import_warps11.WarpSerializer();
908
+ this.coreSerializer = new import_warps12.WarpSerializer();
878
909
  }
879
910
  typedToString(value) {
880
911
  if (typeof value === "string") {
@@ -903,9 +934,9 @@ var WarpEvmSerializer = class {
903
934
  }
904
935
  if (Array.isArray(value)) {
905
936
  if (value.length === 0) return `list:string:`;
906
- const types = value.map((item) => this.typedToString(item).split(import_warps11.WarpConstants.ArgParamsSeparator)[0]);
937
+ const types = value.map((item) => this.typedToString(item).split(import_warps12.WarpConstants.ArgParamsSeparator)[0]);
907
938
  const type = types[0];
908
- const values = value.map((item) => this.typedToString(item).split(import_warps11.WarpConstants.ArgParamsSeparator)[1]);
939
+ const values = value.map((item) => this.typedToString(item).split(import_warps12.WarpConstants.ArgParamsSeparator)[1]);
909
940
  return `list:${type}:${values.join(",")}`;
910
941
  }
911
942
  if (value === null || value === void 0) {
@@ -915,8 +946,8 @@ var WarpEvmSerializer = class {
915
946
  }
916
947
  typedToNative(value) {
917
948
  const stringValue = this.typedToString(value);
918
- const [type, ...valueParts] = stringValue.split(import_warps11.WarpConstants.ArgParamsSeparator);
919
- const nativeValue = valueParts.join(import_warps11.WarpConstants.ArgParamsSeparator);
949
+ const [type, ...valueParts] = stringValue.split(import_warps12.WarpConstants.ArgParamsSeparator);
950
+ const nativeValue = valueParts.join(import_warps12.WarpConstants.ArgParamsSeparator);
920
951
  return [type, this.parseNativeValue(type, nativeValue)];
921
952
  }
922
953
  nativeToTyped(type, value) {
@@ -968,7 +999,7 @@ var WarpEvmSerializer = class {
968
999
  }
969
1000
  }
970
1001
  stringToTyped(value) {
971
- const parts = value.split(import_warps11.WarpConstants.ArgParamsSeparator, 2);
1002
+ const parts = value.split(import_warps12.WarpConstants.ArgParamsSeparator, 2);
972
1003
  if (parts.length < 2) {
973
1004
  return value;
974
1005
  }
@@ -1027,14 +1058,14 @@ var WarpEvmOutput = class {
1027
1058
  this.config = config;
1028
1059
  this.chain = chain;
1029
1060
  this.serializer = new WarpEvmSerializer();
1030
- const providerConfig = (0, import_warps12.getProviderConfig)(this.config, this.chain.name, this.config.env, this.chain.defaultApiUrl);
1061
+ const providerConfig = (0, import_warps13.getProviderConfig)(this.config, this.chain.name, this.config.env, this.chain.defaultApiUrl);
1031
1062
  const network = new import_ethers5.ethers.Network(this.chain.name, parseInt(this.chain.chainId));
1032
1063
  this.provider = new import_ethers5.ethers.JsonRpcProvider(providerConfig.url, network);
1033
- this.cache = new import_warps12.WarpCache(config.cache?.type);
1064
+ this.cache = new import_warps13.WarpCache(config.cache?.type);
1034
1065
  }
1035
1066
  async getActionExecution(warp, actionIndex, tx) {
1036
- const inputs = this.cache.get(import_warps12.WarpCacheKey.WarpExecutable(this.config.env, warp.meta?.hash || "", actionIndex)) ?? [];
1037
- const resolvedInputs = (0, import_warps12.extractResolvedInputValues)(inputs);
1067
+ const inputs = this.cache.get(import_warps13.WarpCacheKey.WarpExecutable(this.config.env, warp.meta?.hash || "", actionIndex)) ?? [];
1068
+ const resolvedInputs = (0, import_warps13.extractResolvedInputValues)(inputs);
1038
1069
  if (!tx) {
1039
1070
  return this.createFailedExecution(warp, actionIndex, resolvedInputs);
1040
1071
  }
@@ -1048,7 +1079,7 @@ var WarpEvmOutput = class {
1048
1079
  status: "error",
1049
1080
  warp,
1050
1081
  action: actionIndex,
1051
- user: (0, import_warps12.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
1082
+ user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
1052
1083
  txHash: "",
1053
1084
  tx: null,
1054
1085
  next: null,
@@ -1071,7 +1102,7 @@ var WarpEvmOutput = class {
1071
1102
  status: success ? "success" : "error",
1072
1103
  warp,
1073
1104
  action: actionIndex,
1074
- user: (0, import_warps12.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
1105
+ user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
1075
1106
  txHash: transactionHash,
1076
1107
  tx,
1077
1108
  next: null,
@@ -1102,7 +1133,7 @@ var WarpEvmOutput = class {
1102
1133
  status: success ? "success" : "error",
1103
1134
  warp,
1104
1135
  action: actionIndex,
1105
- user: (0, import_warps12.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
1136
+ user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, this.chain.name),
1106
1137
  txHash: transactionHash,
1107
1138
  tx,
1108
1139
  next: null,
@@ -1130,8 +1161,8 @@ var WarpEvmOutput = class {
1130
1161
  return value;
1131
1162
  };
1132
1163
  for (const [key, path] of Object.entries(warp.output)) {
1133
- if (path.startsWith(import_warps12.WarpConstants.Transform.Prefix)) continue;
1134
- const currentActionIndex = (0, import_warps12.parseOutputOutIndex)(path);
1164
+ if (path.startsWith(import_warps13.WarpConstants.Transform.Prefix)) continue;
1165
+ const currentActionIndex = (0, import_warps13.parseOutputOutIndex)(path);
1135
1166
  if (currentActionIndex !== null && currentActionIndex !== actionIndex) {
1136
1167
  output[key] = null;
1137
1168
  continue;
@@ -1142,7 +1173,7 @@ var WarpEvmOutput = class {
1142
1173
  output[key] = path;
1143
1174
  }
1144
1175
  }
1145
- return { values, output: await (0, import_warps12.evaluateOutputCommon)(warp, output, actionIndex, inputs, this.serializer.coreSerializer, this.config) };
1176
+ return { values, output: await (0, import_warps13.evaluateOutputCommon)(warp, output, actionIndex, inputs, this.serializer.coreSerializer, this.config) };
1146
1177
  }
1147
1178
  async getTransactionStatus(txHash) {
1148
1179
  try {
@@ -1174,13 +1205,13 @@ var WarpEvmExecutor = class {
1174
1205
  this.config = config;
1175
1206
  this.chain = chain;
1176
1207
  this.serializer = new WarpEvmSerializer();
1177
- const providerConfig = (0, import_warps13.getProviderConfig)(this.config, chain.name, this.config.env, this.chain.defaultApiUrl);
1208
+ const providerConfig = (0, import_warps14.getProviderConfig)(this.config, chain.name, this.config.env, this.chain.defaultApiUrl);
1178
1209
  const network = new import_ethers6.ethers.Network(this.chain.name, parseInt(this.chain.chainId));
1179
1210
  this.provider = new import_ethers6.ethers.JsonRpcProvider(providerConfig.url, network);
1180
1211
  this.output = new WarpEvmOutput(config, this.chain);
1181
1212
  }
1182
1213
  async createTransaction(executable) {
1183
- const action = (0, import_warps13.getWarpActionByIndex)(executable.warp, executable.action);
1214
+ const action = (0, import_warps14.getWarpActionByIndex)(executable.warp, executable.action);
1184
1215
  let tx = null;
1185
1216
  if (action.type === "transfer") {
1186
1217
  tx = await this.createTransferTransaction(executable);
@@ -1195,7 +1226,7 @@ var WarpEvmExecutor = class {
1195
1226
  return tx;
1196
1227
  }
1197
1228
  async createTransferTransaction(executable) {
1198
- const userWallet = (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
1229
+ const userWallet = (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
1199
1230
  if (!userWallet) throw new Error("WarpEvmExecutor: createTransfer - user address not set");
1200
1231
  if (!import_ethers6.ethers.isAddress(executable.destination)) {
1201
1232
  throw new Error(`WarpEvmExecutor: Invalid destination address: ${executable.destination}`);
@@ -1211,9 +1242,9 @@ var WarpEvmExecutor = class {
1211
1242
  return this.estimateGasAndSetDefaults(tx, userWallet);
1212
1243
  }
1213
1244
  async createContractCallTransaction(executable) {
1214
- const userWallet = (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
1245
+ const userWallet = (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name);
1215
1246
  if (!userWallet) throw new Error("WarpEvmExecutor: createContractCall - user address not set");
1216
- const action = (0, import_warps13.getWarpActionByIndex)(executable.warp, executable.action);
1247
+ const action = (0, import_warps14.getWarpActionByIndex)(executable.warp, executable.action);
1217
1248
  if (!action || !("func" in action) || !action.func) throw new Error("WarpEvmExecutor: Contract action must have a function name");
1218
1249
  if (!import_ethers6.ethers.isAddress(executable.destination)) throw new Error(`WarpEvmExecutor: Invalid contract address: ${executable.destination}`);
1219
1250
  try {
@@ -1276,7 +1307,7 @@ var WarpEvmExecutor = class {
1276
1307
  return this.estimateGasAndSetDefaults(tx, userWallet);
1277
1308
  }
1278
1309
  async executeQuery(executable) {
1279
- const action = (0, import_warps13.getWarpActionByIndex)(executable.warp, executable.action);
1310
+ const action = (0, import_warps14.getWarpActionByIndex)(executable.warp, executable.action);
1280
1311
  if (action.type !== "query") throw new Error(`WarpEvmExecutor: Invalid action type for executeQuery: ${action.type}`);
1281
1312
  if (!action.func) throw new Error("WarpEvmExecutor: Query action must have a function name");
1282
1313
  if (!import_ethers6.ethers.isAddress(executable.destination)) throw new Error(`WarpEvmExecutor: Invalid address for query: ${executable.destination}`);
@@ -1303,33 +1334,33 @@ var WarpEvmExecutor = class {
1303
1334
  executable.action,
1304
1335
  executable.resolvedInputs
1305
1336
  );
1306
- const next = (0, import_warps13.getNextInfo)(this.config, [], executable.warp, executable.action, output);
1337
+ const next = (0, import_warps14.getNextInfo)(this.config, [], executable.warp, executable.action, output);
1307
1338
  const destinationInput = executable.resolvedInputs.find((i) => i.input.position === "receiver" || i.input.position === "destination");
1308
1339
  const destination = destinationInput?.value || executable.destination;
1309
- const resolvedInputs = (0, import_warps13.extractResolvedInputValues)(executable.resolvedInputs);
1340
+ const resolvedInputs = (0, import_warps14.extractResolvedInputValues)(executable.resolvedInputs);
1310
1341
  return {
1311
1342
  status: isSuccess ? "success" : "error",
1312
1343
  warp: executable.warp,
1313
1344
  action: executable.action,
1314
- user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
1345
+ user: (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
1315
1346
  txHash: null,
1316
1347
  tx: null,
1317
1348
  next,
1318
1349
  values,
1319
1350
  output: { ...output, _DATA: decodedResult },
1320
- messages: (0, import_warps13.applyOutputToMessages)(executable.warp, output, this.config),
1351
+ messages: (0, import_warps14.applyOutputToMessages)(executable.warp, output, this.config),
1321
1352
  destination,
1322
1353
  resolvedInputs
1323
1354
  };
1324
1355
  } catch (error) {
1325
1356
  const destinationInput = executable.resolvedInputs.find((i) => i.input.position === "receiver" || i.input.position === "destination");
1326
1357
  const destination = destinationInput?.value || executable.destination;
1327
- const resolvedInputs = (0, import_warps13.extractResolvedInputValues)(executable.resolvedInputs);
1358
+ const resolvedInputs = (0, import_warps14.extractResolvedInputValues)(executable.resolvedInputs);
1328
1359
  return {
1329
1360
  status: "error",
1330
1361
  warp: executable.warp,
1331
1362
  action: executable.action,
1332
- user: (0, import_warps13.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
1363
+ user: (0, import_warps14.getWarpWalletAddressFromConfig)(this.config, executable.chain.name),
1333
1364
  txHash: null,
1334
1365
  tx: null,
1335
1366
  next: null,
@@ -1569,7 +1600,7 @@ var WarpEvmExplorer = class {
1569
1600
  };
1570
1601
 
1571
1602
  // src/WarpEvmWallet.ts
1572
- var import_warps14 = require("@vleap/warps");
1603
+ var import_warps15 = require("@vleap/warps");
1573
1604
  var import_client = require("@x402/evm/exact/client");
1574
1605
  var import_ethers7 = require("ethers");
1575
1606
  var import_accounts = require("viem/accounts");
@@ -1579,7 +1610,7 @@ var WarpEvmWallet = class {
1579
1610
  this.chain = chain;
1580
1611
  this.cachedAddress = null;
1581
1612
  this.cachedPublicKey = null;
1582
- const providerConfig = (0, import_warps14.getProviderConfig)(config, chain.name, config.env, chain.defaultApiUrl);
1613
+ const providerConfig = (0, import_warps15.getProviderConfig)(config, chain.name, config.env, chain.defaultApiUrl);
1583
1614
  this.provider = new import_ethers7.ethers.JsonRpcProvider(providerConfig.url);
1584
1615
  this.walletProvider = this.createProvider();
1585
1616
  this.initializeCache();
@@ -1587,7 +1618,7 @@ var WarpEvmWallet = class {
1587
1618
  createProvider() {
1588
1619
  const wallet = this.config.user?.wallets?.[this.chain.name];
1589
1620
  if (!wallet) return null;
1590
- if (typeof wallet === "string") throw new Error(`Wallet can not be used for signing: ${wallet}`);
1621
+ if (typeof wallet === "string") return new ReadOnlyWalletProvider(this.config, this.chain);
1591
1622
  const customWalletProviders = this.config.walletProviders?.[this.chain.name];
1592
1623
  const providerFactory = customWalletProviders?.[wallet.provider];
1593
1624
  if (providerFactory) return providerFactory(this.config, this.chain);
@@ -1596,7 +1627,7 @@ var WarpEvmWallet = class {
1596
1627
  throw new Error(`Unsupported wallet provider for ${this.chain.name}: ${wallet.provider}`);
1597
1628
  }
1598
1629
  initializeCache() {
1599
- (0, import_warps14.initializeWalletCache)(this.walletProvider).then((cache) => {
1630
+ (0, import_warps15.initializeWalletCache)(this.walletProvider).then((cache) => {
1600
1631
  this.cachedAddress = cache.address;
1601
1632
  this.cachedPublicKey = cache.publicKey;
1602
1633
  });
@@ -1604,6 +1635,7 @@ var WarpEvmWallet = class {
1604
1635
  async signTransaction(tx) {
1605
1636
  if (!tx || typeof tx !== "object") throw new Error("Invalid transaction object");
1606
1637
  if (!this.walletProvider) throw new Error("No wallet provider available");
1638
+ if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
1607
1639
  return await this.walletProvider.signTransaction(tx);
1608
1640
  }
1609
1641
  async signTransactions(txs) {
@@ -1614,7 +1646,7 @@ var WarpEvmWallet = class {
1614
1646
  const address = wallet.address;
1615
1647
  if (txs.length > 1) {
1616
1648
  const currentNonce = await this.provider.getTransactionCount(address, "pending");
1617
- const signedTxs = [];
1649
+ const signedTxs2 = [];
1618
1650
  for (let i = 0; i < txs.length; i++) {
1619
1651
  const tx = { ...txs[i] };
1620
1652
  tx.nonce = currentNonce + i;
@@ -1631,15 +1663,20 @@ var WarpEvmWallet = class {
1631
1663
  delete tx.maxPriorityFeePerGas;
1632
1664
  }
1633
1665
  }
1634
- signedTxs.push(await this.signTransaction(tx));
1666
+ signedTxs2.push(await this.signTransaction(tx));
1635
1667
  }
1636
- return signedTxs;
1668
+ return signedTxs2;
1637
1669
  }
1638
1670
  }
1639
- return Promise.all(txs.map(async (tx) => this.signTransaction(tx)));
1671
+ const signedTxs = [];
1672
+ for (const tx of txs) {
1673
+ signedTxs.push(await this.signTransaction(tx));
1674
+ }
1675
+ return signedTxs;
1640
1676
  }
1641
1677
  async signMessage(message) {
1642
1678
  if (!this.walletProvider) throw new Error("No wallet provider available");
1679
+ if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
1643
1680
  return await this.walletProvider.signMessage(message);
1644
1681
  }
1645
1682
  async sendTransaction(tx) {
@@ -1659,10 +1696,12 @@ var WarpEvmWallet = class {
1659
1696
  }
1660
1697
  create(mnemonic) {
1661
1698
  if (!this.walletProvider) throw new Error("No wallet provider available");
1699
+ if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
1662
1700
  return this.walletProvider.create(mnemonic);
1663
1701
  }
1664
1702
  generate() {
1665
1703
  if (!this.walletProvider) throw new Error("No wallet provider available");
1704
+ if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
1666
1705
  return this.walletProvider.generate();
1667
1706
  }
1668
1707
  getAddress() {
@@ -1711,16 +1750,16 @@ var createEvmAdapter = (chainName, chainInfos) => {
1711
1750
 
1712
1751
  // src/chains/arbitrum.ts
1713
1752
  var NativeTokenArb = {
1714
- chain: import_warps15.WarpChainName.Arbitrum,
1753
+ chain: import_warps16.WarpChainName.Arbitrum,
1715
1754
  identifier: "ARB",
1716
1755
  symbol: "ARB",
1717
1756
  name: "Arbitrum",
1718
1757
  decimals: 18,
1719
1758
  logoUrl: "https://joai.ai/images/tokens/arb.svg"
1720
1759
  };
1721
- var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
1760
+ var ArbitrumAdapter = createEvmAdapter(import_warps16.WarpChainName.Arbitrum, {
1722
1761
  mainnet: {
1723
- name: import_warps15.WarpChainName.Arbitrum,
1762
+ name: import_warps16.WarpChainName.Arbitrum,
1724
1763
  displayName: "Arbitrum",
1725
1764
  chainId: "42161",
1726
1765
  blockTime: 1e3,
@@ -1730,7 +1769,7 @@ var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
1730
1769
  nativeToken: NativeTokenArb
1731
1770
  },
1732
1771
  testnet: {
1733
- name: import_warps15.WarpChainName.Arbitrum,
1772
+ name: import_warps16.WarpChainName.Arbitrum,
1734
1773
  displayName: "Arbitrum Sepolia",
1735
1774
  chainId: "421614",
1736
1775
  blockTime: 1e3,
@@ -1740,7 +1779,7 @@ var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
1740
1779
  nativeToken: NativeTokenArb
1741
1780
  },
1742
1781
  devnet: {
1743
- name: import_warps15.WarpChainName.Arbitrum,
1782
+ name: import_warps16.WarpChainName.Arbitrum,
1744
1783
  displayName: "Arbitrum Sepolia",
1745
1784
  chainId: "421614",
1746
1785
  blockTime: 1e3,
@@ -1752,18 +1791,18 @@ var ArbitrumAdapter = createEvmAdapter(import_warps15.WarpChainName.Arbitrum, {
1752
1791
  });
1753
1792
 
1754
1793
  // src/chains/base.ts
1755
- var import_warps16 = require("@vleap/warps");
1794
+ var import_warps17 = require("@vleap/warps");
1756
1795
  var NativeTokenBase = {
1757
- chain: import_warps16.WarpChainName.Base,
1796
+ chain: import_warps17.WarpChainName.Base,
1758
1797
  identifier: "ETH",
1759
1798
  name: "Ether",
1760
1799
  symbol: "ETH",
1761
1800
  decimals: 18,
1762
1801
  logoUrl: "https://joai.ai/images/tokens/eth.svg"
1763
1802
  };
1764
- var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
1803
+ var BaseAdapter = createEvmAdapter(import_warps17.WarpChainName.Base, {
1765
1804
  mainnet: {
1766
- name: import_warps16.WarpChainName.Base,
1805
+ name: import_warps17.WarpChainName.Base,
1767
1806
  displayName: "Base",
1768
1807
  chainId: "8453",
1769
1808
  blockTime: 2e3,
@@ -1773,7 +1812,7 @@ var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
1773
1812
  nativeToken: NativeTokenBase
1774
1813
  },
1775
1814
  testnet: {
1776
- name: import_warps16.WarpChainName.Base,
1815
+ name: import_warps17.WarpChainName.Base,
1777
1816
  displayName: "Base Sepolia",
1778
1817
  chainId: "84532",
1779
1818
  blockTime: 2e3,
@@ -1783,7 +1822,7 @@ var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
1783
1822
  nativeToken: NativeTokenBase
1784
1823
  },
1785
1824
  devnet: {
1786
- name: import_warps16.WarpChainName.Base,
1825
+ name: import_warps17.WarpChainName.Base,
1787
1826
  displayName: "Base Sepolia",
1788
1827
  chainId: "84532",
1789
1828
  blockTime: 2e3,
@@ -1795,27 +1834,27 @@ var BaseAdapter = createEvmAdapter(import_warps16.WarpChainName.Base, {
1795
1834
  });
1796
1835
 
1797
1836
  // src/chains/combined.ts
1798
- var import_warps17 = require("@vleap/warps");
1837
+ var import_warps18 = require("@vleap/warps");
1799
1838
  var getAllEvmChainNames = () => [
1800
- import_warps17.WarpChainName.Ethereum,
1801
- import_warps17.WarpChainName.Base,
1802
- import_warps17.WarpChainName.Arbitrum,
1803
- import_warps17.WarpChainName.Somnia
1839
+ import_warps18.WarpChainName.Ethereum,
1840
+ import_warps18.WarpChainName.Base,
1841
+ import_warps18.WarpChainName.Arbitrum,
1842
+ import_warps18.WarpChainName.Somnia
1804
1843
  ];
1805
1844
 
1806
1845
  // src/chains/ethereum.ts
1807
- var import_warps18 = require("@vleap/warps");
1846
+ var import_warps19 = require("@vleap/warps");
1808
1847
  var NativeTokenEth = {
1809
- chain: import_warps18.WarpChainName.Ethereum,
1848
+ chain: import_warps19.WarpChainName.Ethereum,
1810
1849
  identifier: "ETH",
1811
1850
  symbol: "ETH",
1812
1851
  name: "Ether",
1813
1852
  decimals: 18,
1814
1853
  logoUrl: "https://joai.ai/images/tokens/eth.svg"
1815
1854
  };
1816
- var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
1855
+ var EthereumAdapter = createEvmAdapter(import_warps19.WarpChainName.Ethereum, {
1817
1856
  mainnet: {
1818
- name: import_warps18.WarpChainName.Ethereum,
1857
+ name: import_warps19.WarpChainName.Ethereum,
1819
1858
  displayName: "Ethereum Mainnet",
1820
1859
  chainId: "1",
1821
1860
  blockTime: 12e3,
@@ -1825,7 +1864,7 @@ var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
1825
1864
  nativeToken: NativeTokenEth
1826
1865
  },
1827
1866
  testnet: {
1828
- name: import_warps18.WarpChainName.Ethereum,
1867
+ name: import_warps19.WarpChainName.Ethereum,
1829
1868
  displayName: "Ethereum Sepolia",
1830
1869
  chainId: "11155111",
1831
1870
  blockTime: 12e3,
@@ -1835,7 +1874,7 @@ var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
1835
1874
  nativeToken: NativeTokenEth
1836
1875
  },
1837
1876
  devnet: {
1838
- name: import_warps18.WarpChainName.Ethereum,
1877
+ name: import_warps19.WarpChainName.Ethereum,
1839
1878
  displayName: "Ethereum Sepolia",
1840
1879
  chainId: "11155111",
1841
1880
  blockTime: 12e3,
@@ -1847,12 +1886,12 @@ var EthereumAdapter = createEvmAdapter(import_warps18.WarpChainName.Ethereum, {
1847
1886
  });
1848
1887
 
1849
1888
  // src/adapters.ts
1850
- var import_warps20 = require("@vleap/warps");
1889
+ var import_warps21 = require("@vleap/warps");
1851
1890
 
1852
1891
  // src/chains/somnia.ts
1853
- var import_warps19 = require("@vleap/warps");
1892
+ var import_warps20 = require("@vleap/warps");
1854
1893
  var NativeTokenSomi = {
1855
- chain: import_warps19.WarpChainName.Somnia,
1894
+ chain: import_warps20.WarpChainName.Somnia,
1856
1895
  identifier: "SOMI",
1857
1896
  symbol: "SOMI",
1858
1897
  name: "Somnia",
@@ -1860,16 +1899,16 @@ var NativeTokenSomi = {
1860
1899
  logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
1861
1900
  };
1862
1901
  var NativeTokenStt = {
1863
- chain: import_warps19.WarpChainName.Somnia,
1902
+ chain: import_warps20.WarpChainName.Somnia,
1864
1903
  identifier: "STT",
1865
1904
  symbol: "STT",
1866
1905
  name: "Somnia Testnet Token",
1867
1906
  decimals: 18,
1868
1907
  logoUrl: "https://assets.coingecko.com/coins/images/68061/standard/somniacg.png?1754641117"
1869
1908
  };
1870
- var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
1909
+ var SomniaAdapter = createEvmAdapter(import_warps20.WarpChainName.Somnia, {
1871
1910
  mainnet: {
1872
- name: import_warps19.WarpChainName.Somnia,
1911
+ name: import_warps20.WarpChainName.Somnia,
1873
1912
  displayName: "Somnia Mainnet",
1874
1913
  chainId: "5031",
1875
1914
  blockTime: 100,
@@ -1879,7 +1918,7 @@ var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
1879
1918
  nativeToken: NativeTokenSomi
1880
1919
  },
1881
1920
  testnet: {
1882
- name: import_warps19.WarpChainName.Somnia,
1921
+ name: import_warps20.WarpChainName.Somnia,
1883
1922
  displayName: "Somnia Testnet",
1884
1923
  chainId: "50312",
1885
1924
  blockTime: 100,
@@ -1889,7 +1928,7 @@ var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
1889
1928
  nativeToken: NativeTokenStt
1890
1929
  },
1891
1930
  devnet: {
1892
- name: import_warps19.WarpChainName.Somnia,
1931
+ name: import_warps20.WarpChainName.Somnia,
1893
1932
  displayName: "Somnia Testnet",
1894
1933
  chainId: "50312",
1895
1934
  blockTime: 100,
@@ -1902,10 +1941,10 @@ var SomniaAdapter = createEvmAdapter(import_warps19.WarpChainName.Somnia, {
1902
1941
 
1903
1942
  // src/adapters.ts
1904
1943
  var getAllEvmAdapters = (fallbackFactory) => [
1905
- (0, import_warps20.withAdapterFallback)(EthereumAdapter, fallbackFactory),
1906
- (0, import_warps20.withAdapterFallback)(BaseAdapter, fallbackFactory),
1907
- (0, import_warps20.withAdapterFallback)(ArbitrumAdapter, fallbackFactory),
1908
- (0, import_warps20.withAdapterFallback)(SomniaAdapter, fallbackFactory)
1944
+ (0, import_warps21.withAdapterFallback)(EthereumAdapter, fallbackFactory),
1945
+ (0, import_warps21.withAdapterFallback)(BaseAdapter, fallbackFactory),
1946
+ (0, import_warps21.withAdapterFallback)(ArbitrumAdapter, fallbackFactory),
1947
+ (0, import_warps21.withAdapterFallback)(SomniaAdapter, fallbackFactory)
1909
1948
  ];
1910
1949
  // Annotate the CommonJS export names for ESM import in node:
1911
1950
  0 && (module.exports = {