@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.mjs CHANGED
@@ -248,6 +248,37 @@ var MnemonicWalletProvider = class {
248
248
  }
249
249
  };
250
250
 
251
+ // src/providers/ReadOnlyWalletProvider.ts
252
+ import { getWarpWalletAddressFromConfig } from "@vleap/warps";
253
+ var ReadOnlyWalletProvider = class {
254
+ constructor(config, chain) {
255
+ this.config = config;
256
+ this.chain = chain;
257
+ }
258
+ async getAddress() {
259
+ return getWarpWalletAddressFromConfig(this.config, this.chain.name);
260
+ }
261
+ async getPublicKey() {
262
+ return null;
263
+ }
264
+ async signTransaction(tx) {
265
+ const address = await this.getAddress();
266
+ throw new Error(`Wallet can not be used for signing: ${address}`);
267
+ }
268
+ async signMessage(message) {
269
+ const address = await this.getAddress();
270
+ throw new Error(`Wallet can not be used for signing: ${address}`);
271
+ }
272
+ create(mnemonic) {
273
+ const address = getWarpWalletAddressFromConfig(this.config, this.chain.name);
274
+ throw new Error(`Wallet can not be used for signing: ${address}`);
275
+ }
276
+ generate() {
277
+ const address = getWarpWalletAddressFromConfig(this.config, this.chain.name);
278
+ throw new Error(`Wallet can not be used for signing: ${address}`);
279
+ }
280
+ };
281
+
251
282
  // src/tokens/arbitrum.ts
252
283
  import { WarpChainName } from "@vleap/warps";
253
284
  var ArbitrumChain = WarpChainName.Arbitrum;
@@ -696,7 +727,7 @@ import {
696
727
  getNextInfo,
697
728
  getProviderConfig as getProviderConfig3,
698
729
  getWarpActionByIndex,
699
- getWarpWalletAddressFromConfig as getWarpWalletAddressFromConfig2
730
+ getWarpWalletAddressFromConfig as getWarpWalletAddressFromConfig3
700
731
  } from "@vleap/warps";
701
732
  import { ethers as ethers6 } from "ethers";
702
733
 
@@ -829,7 +860,7 @@ import {
829
860
  evaluateOutputCommon,
830
861
  extractResolvedInputValues,
831
862
  getProviderConfig as getProviderConfig2,
832
- getWarpWalletAddressFromConfig,
863
+ getWarpWalletAddressFromConfig as getWarpWalletAddressFromConfig2,
833
864
  parseOutputOutIndex,
834
865
  WarpConstants as WarpConstants2,
835
866
  WarpCache as WarpCache3,
@@ -1020,7 +1051,7 @@ var WarpEvmOutput = class {
1020
1051
  status: "error",
1021
1052
  warp,
1022
1053
  action: actionIndex,
1023
- user: getWarpWalletAddressFromConfig(this.config, this.chain.name),
1054
+ user: getWarpWalletAddressFromConfig2(this.config, this.chain.name),
1024
1055
  txHash: "",
1025
1056
  tx: null,
1026
1057
  next: null,
@@ -1043,7 +1074,7 @@ var WarpEvmOutput = class {
1043
1074
  status: success ? "success" : "error",
1044
1075
  warp,
1045
1076
  action: actionIndex,
1046
- user: getWarpWalletAddressFromConfig(this.config, this.chain.name),
1077
+ user: getWarpWalletAddressFromConfig2(this.config, this.chain.name),
1047
1078
  txHash: transactionHash,
1048
1079
  tx,
1049
1080
  next: null,
@@ -1074,7 +1105,7 @@ var WarpEvmOutput = class {
1074
1105
  status: success ? "success" : "error",
1075
1106
  warp,
1076
1107
  action: actionIndex,
1077
- user: getWarpWalletAddressFromConfig(this.config, this.chain.name),
1108
+ user: getWarpWalletAddressFromConfig2(this.config, this.chain.name),
1078
1109
  txHash: transactionHash,
1079
1110
  tx,
1080
1111
  next: null,
@@ -1167,7 +1198,7 @@ var WarpEvmExecutor = class {
1167
1198
  return tx;
1168
1199
  }
1169
1200
  async createTransferTransaction(executable) {
1170
- const userWallet = getWarpWalletAddressFromConfig2(this.config, executable.chain.name);
1201
+ const userWallet = getWarpWalletAddressFromConfig3(this.config, executable.chain.name);
1171
1202
  if (!userWallet) throw new Error("WarpEvmExecutor: createTransfer - user address not set");
1172
1203
  if (!ethers6.isAddress(executable.destination)) {
1173
1204
  throw new Error(`WarpEvmExecutor: Invalid destination address: ${executable.destination}`);
@@ -1183,7 +1214,7 @@ var WarpEvmExecutor = class {
1183
1214
  return this.estimateGasAndSetDefaults(tx, userWallet);
1184
1215
  }
1185
1216
  async createContractCallTransaction(executable) {
1186
- const userWallet = getWarpWalletAddressFromConfig2(this.config, executable.chain.name);
1217
+ const userWallet = getWarpWalletAddressFromConfig3(this.config, executable.chain.name);
1187
1218
  if (!userWallet) throw new Error("WarpEvmExecutor: createContractCall - user address not set");
1188
1219
  const action = getWarpActionByIndex(executable.warp, executable.action);
1189
1220
  if (!action || !("func" in action) || !action.func) throw new Error("WarpEvmExecutor: Contract action must have a function name");
@@ -1283,7 +1314,7 @@ var WarpEvmExecutor = class {
1283
1314
  status: isSuccess ? "success" : "error",
1284
1315
  warp: executable.warp,
1285
1316
  action: executable.action,
1286
- user: getWarpWalletAddressFromConfig2(this.config, executable.chain.name),
1317
+ user: getWarpWalletAddressFromConfig3(this.config, executable.chain.name),
1287
1318
  txHash: null,
1288
1319
  tx: null,
1289
1320
  next,
@@ -1301,7 +1332,7 @@ var WarpEvmExecutor = class {
1301
1332
  status: "error",
1302
1333
  warp: executable.warp,
1303
1334
  action: executable.action,
1304
- user: getWarpWalletAddressFromConfig2(this.config, executable.chain.name),
1335
+ user: getWarpWalletAddressFromConfig3(this.config, executable.chain.name),
1305
1336
  txHash: null,
1306
1337
  tx: null,
1307
1338
  next: null,
@@ -1562,7 +1593,7 @@ var WarpEvmWallet = class {
1562
1593
  createProvider() {
1563
1594
  const wallet = this.config.user?.wallets?.[this.chain.name];
1564
1595
  if (!wallet) return null;
1565
- if (typeof wallet === "string") throw new Error(`Wallet can not be used for signing: ${wallet}`);
1596
+ if (typeof wallet === "string") return new ReadOnlyWalletProvider(this.config, this.chain);
1566
1597
  const customWalletProviders = this.config.walletProviders?.[this.chain.name];
1567
1598
  const providerFactory = customWalletProviders?.[wallet.provider];
1568
1599
  if (providerFactory) return providerFactory(this.config, this.chain);
@@ -1579,6 +1610,7 @@ var WarpEvmWallet = class {
1579
1610
  async signTransaction(tx) {
1580
1611
  if (!tx || typeof tx !== "object") throw new Error("Invalid transaction object");
1581
1612
  if (!this.walletProvider) throw new Error("No wallet provider available");
1613
+ if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
1582
1614
  return await this.walletProvider.signTransaction(tx);
1583
1615
  }
1584
1616
  async signTransactions(txs) {
@@ -1589,7 +1621,7 @@ var WarpEvmWallet = class {
1589
1621
  const address = wallet.address;
1590
1622
  if (txs.length > 1) {
1591
1623
  const currentNonce = await this.provider.getTransactionCount(address, "pending");
1592
- const signedTxs = [];
1624
+ const signedTxs2 = [];
1593
1625
  for (let i = 0; i < txs.length; i++) {
1594
1626
  const tx = { ...txs[i] };
1595
1627
  tx.nonce = currentNonce + i;
@@ -1606,15 +1638,20 @@ var WarpEvmWallet = class {
1606
1638
  delete tx.maxPriorityFeePerGas;
1607
1639
  }
1608
1640
  }
1609
- signedTxs.push(await this.signTransaction(tx));
1641
+ signedTxs2.push(await this.signTransaction(tx));
1610
1642
  }
1611
- return signedTxs;
1643
+ return signedTxs2;
1612
1644
  }
1613
1645
  }
1614
- return Promise.all(txs.map(async (tx) => this.signTransaction(tx)));
1646
+ const signedTxs = [];
1647
+ for (const tx of txs) {
1648
+ signedTxs.push(await this.signTransaction(tx));
1649
+ }
1650
+ return signedTxs;
1615
1651
  }
1616
1652
  async signMessage(message) {
1617
1653
  if (!this.walletProvider) throw new Error("No wallet provider available");
1654
+ if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
1618
1655
  return await this.walletProvider.signMessage(message);
1619
1656
  }
1620
1657
  async sendTransaction(tx) {
@@ -1634,10 +1671,12 @@ var WarpEvmWallet = class {
1634
1671
  }
1635
1672
  create(mnemonic) {
1636
1673
  if (!this.walletProvider) throw new Error("No wallet provider available");
1674
+ if (this.walletProvider instanceof ReadOnlyWalletProvider) throw new Error(`Wallet (${this.chain.name}) is read-only`);
1637
1675
  return this.walletProvider.create(mnemonic);
1638
1676
  }
1639
1677
  generate() {
1640
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`);
1641
1680
  return this.walletProvider.generate();
1642
1681
  }
1643
1682
  getAddress() {