@fuel-ts/account 0.0.0-rc-1356-20240520180710 → 0.0.0-rc-2333-20240520180734

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.

Potentially problematic release.


This version of @fuel-ts/account might be problematic. Click here for more details.

package/dist/index.mjs CHANGED
@@ -1714,6 +1714,15 @@ function normalizeJSON(root) {
1714
1714
  return normalize(clone(root));
1715
1715
  }
1716
1716
 
1717
+ // src/providers/utils/sleep.ts
1718
+ function sleep(time) {
1719
+ return new Promise((resolve) => {
1720
+ setTimeout(() => {
1721
+ resolve(true);
1722
+ }, time);
1723
+ });
1724
+ }
1725
+
1717
1726
  // src/providers/utils/extract-tx-error.ts
1718
1727
  import { ErrorCode as ErrorCode7, FuelError as FuelError7 } from "@fuel-ts/errors";
1719
1728
  import { bn as bn6 } from "@fuel-ts/math";
@@ -3739,7 +3748,6 @@ var TransactionResponse = class {
3739
3748
  };
3740
3749
 
3741
3750
  // src/providers/utils/auto-retry-fetch.ts
3742
- import { sleep } from "@fuel-ts/utils";
3743
3751
  function getWaitDelay(options, retryAttemptNum) {
3744
3752
  const duration = options.baseDelay ?? 150;
3745
3753
  switch (options.backoff) {
@@ -5484,19 +5492,8 @@ var Account = class extends AbstractAccount {
5484
5492
  */
5485
5493
  async createTransfer(destination, amount, assetId, txParams = {}) {
5486
5494
  let request = new ScriptTransactionRequest(txParams);
5487
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5488
- request.addCoinOutput(Address3.fromAddressOrString(destination), amount, assetIdToTransfer);
5489
- const txCost = await this.provider.getTransactionCost(request, {
5490
- estimateTxDependencies: true,
5491
- resourcesOwner: this
5492
- });
5493
- request = this.validateGasLimitAndMaxFee({
5494
- transactionRequest: request,
5495
- gasUsed: txCost.gasUsed,
5496
- maxFee: txCost.maxFee,
5497
- txParams
5498
- });
5499
- await this.fund(request, txCost);
5495
+ request = this.addTransfer(request, { destination, amount, assetId });
5496
+ request = await this.estimateAndFundTransaction(request, txParams);
5500
5497
  return request;
5501
5498
  }
5502
5499
  /**
@@ -5509,16 +5506,57 @@ var Account = class extends AbstractAccount {
5509
5506
  * @returns A promise that resolves to the transaction response.
5510
5507
  */
5511
5508
  async transfer(destination, amount, assetId, txParams = {}) {
5512
- if (bn19(amount).lte(0)) {
5513
- throw new FuelError15(
5514
- ErrorCode15.INVALID_TRANSFER_AMOUNT,
5515
- "Transfer amount must be a positive number."
5516
- );
5517
- }
5518
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5519
- const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
5509
+ const request = await this.createTransfer(destination, amount, assetId, txParams);
5520
5510
  return this.sendTransaction(request, { estimateTxDependencies: false });
5521
5511
  }
5512
+ /**
5513
+ * Transfers multiple amounts of a token to multiple recipients.
5514
+ *
5515
+ * @param transferParams - An array of `TransferParams` objects representing the transfers to be made.
5516
+ * @param txParams - Optional transaction parameters.
5517
+ * @returns A promise that resolves to a `TransactionResponse` object representing the transaction result.
5518
+ */
5519
+ async batchTransfer(transferParams, txParams = {}) {
5520
+ let request = new ScriptTransactionRequest(txParams);
5521
+ request = this.addBatchTransfer(request, transferParams);
5522
+ request = await this.estimateAndFundTransaction(request, txParams);
5523
+ return this.sendTransaction(request, { estimateTxDependencies: false });
5524
+ }
5525
+ /**
5526
+ * Adds a transfer to the given transaction request.
5527
+ *
5528
+ * @param request - The script transaction request to add transfers to.
5529
+ * @param transferParams - The object representing the transfer to be made.
5530
+ * @returns The updated transaction request with the added transfer.
5531
+ */
5532
+ addTransfer(request, transferParams) {
5533
+ const { destination, amount, assetId } = transferParams;
5534
+ this.validateTransferAmount(amount);
5535
+ request.addCoinOutput(
5536
+ Address3.fromAddressOrString(destination),
5537
+ amount,
5538
+ assetId ?? this.provider.getBaseAssetId()
5539
+ );
5540
+ return request;
5541
+ }
5542
+ /**
5543
+ * Adds multiple transfers to a script transaction request.
5544
+ *
5545
+ * @param request - The script transaction request to add transfers to.
5546
+ * @param transferParams - An array of `TransferParams` objects representing the transfers to be made.
5547
+ * @returns The updated script transaction request.
5548
+ */
5549
+ addBatchTransfer(request, transferParams) {
5550
+ const baseAssetId = this.provider.getBaseAssetId();
5551
+ transferParams.forEach(({ destination, amount, assetId }) => {
5552
+ this.addTransfer(request, {
5553
+ destination,
5554
+ amount,
5555
+ assetId: assetId ?? baseAssetId
5556
+ });
5557
+ });
5558
+ return request;
5559
+ }
5522
5560
  /**
5523
5561
  * Transfers coins to a contract address.
5524
5562
  *
@@ -5596,6 +5634,7 @@ var Account = class extends AbstractAccount {
5596
5634
  await this.fund(request, txCost);
5597
5635
  return this.sendTransaction(request);
5598
5636
  }
5637
+ /** @hidden * */
5599
5638
  async signMessage(message) {
5600
5639
  if (!this._connector) {
5601
5640
  throw new FuelError15(ErrorCode15.MISSING_CONNECTOR, "A connector is required to sign messages.");
@@ -5651,6 +5690,31 @@ var Account = class extends AbstractAccount {
5651
5690
  }
5652
5691
  return this.provider.simulate(transactionRequest, { estimateTxDependencies: false });
5653
5692
  }
5693
+ /** @hidden * */
5694
+ validateTransferAmount(amount) {
5695
+ if (bn19(amount).lte(0)) {
5696
+ throw new FuelError15(
5697
+ ErrorCode15.INVALID_TRANSFER_AMOUNT,
5698
+ "Transfer amount must be a positive number."
5699
+ );
5700
+ }
5701
+ }
5702
+ /** @hidden * */
5703
+ async estimateAndFundTransaction(transactionRequest, txParams) {
5704
+ let request = transactionRequest;
5705
+ const txCost = await this.provider.getTransactionCost(request, {
5706
+ resourcesOwner: this
5707
+ });
5708
+ request = this.validateGasLimitAndMaxFee({
5709
+ transactionRequest: request,
5710
+ gasUsed: txCost.gasUsed,
5711
+ maxFee: txCost.maxFee,
5712
+ txParams
5713
+ });
5714
+ request = await this.fund(request, txCost);
5715
+ return request;
5716
+ }
5717
+ /** @hidden * */
5654
5718
  validateGasLimitAndMaxFee({
5655
5719
  gasUsed,
5656
5720
  maxFee,
@@ -10134,6 +10198,7 @@ export {
10134
10198
  resolveGasDependentCosts,
10135
10199
  resolveIconPaths,
10136
10200
  returnZeroScript,
10201
+ sleep,
10137
10202
  transactionRequestify,
10138
10203
  urlJoin,
10139
10204
  withTimeout,