@fuel-ts/account 0.0.0-rc-1356-20240510142347 → 0.0.0-rc-2037-20240510174704

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.

Files changed (46) hide show
  1. package/dist/index.global.js +102 -45
  2. package/dist/index.global.js.map +1 -1
  3. package/dist/index.js +442 -363
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +242 -171
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/predicate/predicate.d.ts +9 -2
  8. package/dist/predicate/predicate.d.ts.map +1 -1
  9. package/dist/providers/provider.d.ts +1 -1
  10. package/dist/providers/provider.d.ts.map +1 -1
  11. package/dist/providers/transaction-request/helpers.d.ts +4 -0
  12. package/dist/providers/transaction-request/helpers.d.ts.map +1 -1
  13. package/dist/providers/transaction-request/index.d.ts +1 -0
  14. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  15. package/dist/providers/transaction-request/transaction-request.d.ts +2 -0
  16. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  17. package/dist/providers/transaction-request/utils.d.ts +0 -4
  18. package/dist/providers/transaction-request/utils.d.ts.map +1 -1
  19. package/dist/providers/utils/auto-retry-fetch.d.ts.map +1 -1
  20. package/dist/providers/utils/index.d.ts +1 -0
  21. package/dist/providers/utils/index.d.ts.map +1 -1
  22. package/dist/providers/utils/sleep.d.ts +3 -0
  23. package/dist/providers/utils/sleep.d.ts.map +1 -0
  24. package/dist/test-utils/index.d.ts +0 -4
  25. package/dist/test-utils/index.d.ts.map +1 -1
  26. package/dist/test-utils/launchNode.d.ts +1 -8
  27. package/dist/test-utils/launchNode.d.ts.map +1 -1
  28. package/dist/test-utils/seedTestWallet.d.ts +1 -1
  29. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  30. package/dist/test-utils.global.js +126 -432
  31. package/dist/test-utils.global.js.map +1 -1
  32. package/dist/test-utils.js +427 -642
  33. package/dist/test-utils.js.map +1 -1
  34. package/dist/test-utils.mjs +252 -463
  35. package/dist/test-utils.mjs.map +1 -1
  36. package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
  37. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  38. package/package.json +15 -16
  39. package/dist/test-utils/asset-id.d.ts +0 -8
  40. package/dist/test-utils/asset-id.d.ts.map +0 -1
  41. package/dist/test-utils/setup-test-provider-and-wallets.d.ts +0 -33
  42. package/dist/test-utils/setup-test-provider-and-wallets.d.ts.map +0 -1
  43. package/dist/test-utils/test-message.d.ts +0 -28
  44. package/dist/test-utils/test-message.d.ts.map +0 -1
  45. package/dist/test-utils/wallet-config.d.ts +0 -49
  46. package/dist/test-utils/wallet-config.d.ts.map +0 -1
@@ -29761,13 +29761,6 @@ This unreleased fuel-core build may include features and updates not yet support
29761
29761
  };
29762
29762
  var DateTime = _DateTime;
29763
29763
  __publicField3(DateTime, "TAI64_NULL", "");
29764
- function sleep(time) {
29765
- return new Promise((resolve) => {
29766
- setTimeout(() => {
29767
- resolve(true);
29768
- }, time);
29769
- });
29770
- }
29771
29764
  function isDefined(value) {
29772
29765
  return value !== void 0;
29773
29766
  }
@@ -39458,6 +39451,15 @@ ${MessageCoinFragmentDoc}`;
39458
39451
  return normalize2(clone_default(root));
39459
39452
  }
39460
39453
 
39454
+ // src/providers/utils/sleep.ts
39455
+ function sleep(time) {
39456
+ return new Promise((resolve) => {
39457
+ setTimeout(() => {
39458
+ resolve(true);
39459
+ }, time);
39460
+ });
39461
+ }
39462
+
39461
39463
  // src/providers/utils/extract-tx-error.ts
39462
39464
  var assemblePanicError = (status) => {
39463
39465
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
@@ -39548,6 +39550,50 @@ ${PANIC_DOC_URL}#variant.${status.reason}`;
39548
39550
  name = "NoWitnessByOwnerError";
39549
39551
  };
39550
39552
 
39553
+ // src/providers/transaction-request/helpers.ts
39554
+ var isRequestInputCoin = (input) => input.type === InputType.Coin;
39555
+ var isRequestInputMessage = (input) => input.type === InputType.Message;
39556
+ var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
39557
+ var getRequestInputResourceOwner = (input) => isRequestInputCoin(input) ? input.owner : input.recipient;
39558
+ var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
39559
+ var getAssetAmountInRequestInputs = (inputs, assetId, baseAsset) => inputs.filter(isRequestInputResource).reduce((acc, input) => {
39560
+ if (isRequestInputCoin(input) && input.assetId === assetId) {
39561
+ return acc.add(input.amount);
39562
+ }
39563
+ if (isRequestInputMessage(input) && assetId === baseAsset) {
39564
+ return acc.add(input.amount);
39565
+ }
39566
+ return acc;
39567
+ }, bn(0));
39568
+ var cacheRequestInputsResources = (inputs) => inputs.filter(isRequestInputResource).reduce(
39569
+ (cache2, input) => {
39570
+ if (isRequestInputCoin(input)) {
39571
+ cache2.utxos.push(input.id);
39572
+ } else {
39573
+ cache2.messages.push(input.nonce);
39574
+ }
39575
+ return cache2;
39576
+ },
39577
+ {
39578
+ utxos: [],
39579
+ messages: []
39580
+ }
39581
+ );
39582
+ var cacheRequestInputsResourcesFromOwner = (inputs, owner) => inputs.reduce(
39583
+ (acc, input) => {
39584
+ if (isRequestInputCoin(input) && input.owner === owner.toB256()) {
39585
+ acc.utxos.push(input.id);
39586
+ } else if (isRequestInputMessage(input) && input.recipient === owner.toB256()) {
39587
+ acc.messages.push(input.nonce);
39588
+ }
39589
+ return acc;
39590
+ },
39591
+ {
39592
+ utxos: [],
39593
+ messages: []
39594
+ }
39595
+ );
39596
+
39551
39597
  // src/providers/transaction-request/witness.ts
39552
39598
  var witnessify = (value) => {
39553
39599
  const data = arrayify(value);
@@ -39785,7 +39831,7 @@ ${PANIC_DOC_URL}#variant.${status.reason}`;
39785
39831
  * @param coin - Coin resource.
39786
39832
  */
39787
39833
  addCoinInput(coin) {
39788
- const { assetId, owner, amount } = coin;
39834
+ const { assetId, owner, amount, id, predicate } = coin;
39789
39835
  let witnessIndex;
39790
39836
  if (coin.predicate) {
39791
39837
  witnessIndex = 0;
@@ -39796,13 +39842,14 @@ ${PANIC_DOC_URL}#variant.${status.reason}`;
39796
39842
  }
39797
39843
  }
39798
39844
  const input = {
39799
- ...coin,
39845
+ id,
39800
39846
  type: InputType.Coin,
39801
39847
  owner: owner.toB256(),
39802
39848
  amount,
39803
39849
  assetId,
39804
39850
  txPointer: "0x00000000000000000000000000000000",
39805
- witnessIndex
39851
+ witnessIndex,
39852
+ predicate
39806
39853
  };
39807
39854
  this.pushInput(input);
39808
39855
  this.addChangeOutput(owner, assetId);
@@ -39814,7 +39861,7 @@ ${PANIC_DOC_URL}#variant.${status.reason}`;
39814
39861
  * @param message - Message resource.
39815
39862
  */
39816
39863
  addMessageInput(message) {
39817
- const { recipient, sender, amount, assetId } = message;
39864
+ const { recipient, sender, amount, predicate, nonce, assetId } = message;
39818
39865
  let witnessIndex;
39819
39866
  if (message.predicate) {
39820
39867
  witnessIndex = 0;
@@ -39825,12 +39872,13 @@ ${PANIC_DOC_URL}#variant.${status.reason}`;
39825
39872
  }
39826
39873
  }
39827
39874
  const input = {
39828
- ...message,
39875
+ nonce,
39829
39876
  type: InputType.Message,
39830
39877
  sender: sender.toB256(),
39831
39878
  recipient: recipient.toB256(),
39832
39879
  amount,
39833
- witnessIndex
39880
+ witnessIndex,
39881
+ predicate
39834
39882
  };
39835
39883
  this.pushInput(input);
39836
39884
  this.addChangeOutput(recipient, assetId);
@@ -40020,6 +40068,17 @@ ${PANIC_DOC_URL}#variant.${status.reason}`;
40020
40068
  toJSON() {
40021
40069
  return normalizeJSON(this);
40022
40070
  }
40071
+ removeWitness(index) {
40072
+ this.witnesses.splice(index, 1);
40073
+ this.adjustWitnessIndexes(index);
40074
+ }
40075
+ adjustWitnessIndexes(removedIndex) {
40076
+ this.inputs.filter(isRequestInputResource).forEach((input) => {
40077
+ if (input.witnessIndex > removedIndex) {
40078
+ input.witnessIndex -= 1;
40079
+ }
40080
+ });
40081
+ }
40023
40082
  updatePredicateGasUsed(inputs) {
40024
40083
  this.inputs.forEach((i) => {
40025
40084
  let correspondingInput;
@@ -40446,21 +40505,6 @@ ${PANIC_DOC_URL}#variant.${status.reason}`;
40446
40505
  }
40447
40506
  }
40448
40507
  };
40449
- var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
40450
- (acc, input) => {
40451
- if (input.type === InputType.Coin && input.owner === owner.toB256()) {
40452
- acc.utxos.push(input.id);
40453
- }
40454
- if (input.type === InputType.Message && input.recipient === owner.toB256()) {
40455
- acc.messages.push(input.nonce);
40456
- }
40457
- return acc;
40458
- },
40459
- {
40460
- utxos: [],
40461
- messages: []
40462
- }
40463
- );
40464
40508
 
40465
40509
  // src/providers/transaction-summary/calculate-tx-fee-for-summary.ts
40466
40510
  var calculateTXFeeForSummary = (params) => {
@@ -42820,20 +42864,6 @@ Supported fuel-core version: ${supportedVersion}.`
42820
42864
  ];
42821
42865
  var assets = resolveIconPaths(rawAssets, fuelAssetsBaseUrl);
42822
42866
 
42823
- // src/providers/transaction-request/helpers.ts
42824
- var isRequestInputCoin = (input) => input.type === InputType.Coin;
42825
- var isRequestInputMessage = (input) => input.type === InputType.Message;
42826
- var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
42827
- var getAssetAmountInRequestInputs = (inputs, assetId, baseAsset) => inputs.filter(isRequestInputResource).reduce((acc, input) => {
42828
- if (isRequestInputCoin(input) && input.assetId === assetId) {
42829
- return acc.add(input.amount);
42830
- }
42831
- if (isRequestInputMessage(input) && assetId === baseAsset) {
42832
- return acc.add(input.amount);
42833
- }
42834
- return acc;
42835
- }, bn(0));
42836
-
42837
42867
  // src/utils/formatTransferToContractScriptData.ts
42838
42868
  var asm = __toESM(require_node());
42839
42869
  var formatTransferToContractScriptData = (params) => {
@@ -43068,7 +43098,7 @@ Supported fuel-core version: ${supportedVersion}.`
43068
43098
  while (needsToBeFunded && fundingAttempts < MAX_FUNDING_ATTEMPTS) {
43069
43099
  const resources = await this.getResourcesToSpend(
43070
43100
  missingQuantities,
43071
- cacheTxInputsFromOwner(request.inputs, this.address)
43101
+ cacheRequestInputsResourcesFromOwner(request.inputs, this.address)
43072
43102
  );
43073
43103
  request.addResources(resources);
43074
43104
  request.shiftPredicateData();
@@ -48178,10 +48208,15 @@ Supported fuel-core version: ${supportedVersion}.`
48178
48208
  populateTransactionPredicateData(transactionRequestLike) {
48179
48209
  const request = transactionRequestify(transactionRequestLike);
48180
48210
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
48181
- request.inputs?.forEach((input) => {
48182
- if (input.type === InputType.Coin && hexlify(input.owner) === this.address.toB256()) {
48211
+ const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
48212
+ if (placeholderIndex !== -1) {
48213
+ request.removeWitness(placeholderIndex);
48214
+ }
48215
+ request.inputs.filter(isRequestInputResource).forEach((input) => {
48216
+ if (isRequestInputResourceFromOwner(input, this.address)) {
48183
48217
  input.predicate = hexlify(this.bytes);
48184
48218
  input.predicateData = hexlify(this.getPredicateData(policies.length));
48219
+ input.witnessIndex = 0;
48185
48220
  }
48186
48221
  });
48187
48222
  return request;
@@ -48304,6 +48339,28 @@ Supported fuel-core version: ${supportedVersion}.`
48304
48339
  }
48305
48340
  return mutatedBytes;
48306
48341
  }
48342
+ /**
48343
+ * Returns the index of the witness placeholder that was added to this predicate.
48344
+ * If no witness placeholder was added, it returns -1.
48345
+ * @param request - The transaction request.
48346
+ * @returns The index of the witness placeholder, or -1 if there is no witness placeholder.
48347
+ */
48348
+ getIndexFromPlaceholderWitness(request) {
48349
+ const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
48350
+ let index = -1;
48351
+ const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
48352
+ if (hasEmptyPredicateInputs) {
48353
+ index = hasEmptyPredicateInputs.witnessIndex;
48354
+ const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
48355
+ if (!allInputsAreEmpty) {
48356
+ const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
48357
+ if (wasFilledInputAddedFirst) {
48358
+ index = -1;
48359
+ }
48360
+ }
48361
+ }
48362
+ return index;
48363
+ }
48307
48364
  };
48308
48365
 
48309
48366
  // src/connectors/fuel-connector.ts