@fuel-ts/account 0.0.0-rc-2037-20240417234504 → 0.0.0-rc-2045-20240418110507

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 (35) hide show
  1. package/dist/index.global.js +40 -86
  2. package/dist/index.global.js.map +1 -1
  3. package/dist/index.js +141 -200
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +64 -117
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/predicate/predicate.d.ts +2 -11
  8. package/dist/predicate/predicate.d.ts.map +1 -1
  9. package/dist/providers/coin.d.ts +1 -2
  10. package/dist/providers/coin.d.ts.map +1 -1
  11. package/dist/providers/message.d.ts +0 -1
  12. package/dist/providers/message.d.ts.map +1 -1
  13. package/dist/providers/transaction-request/index.d.ts +0 -1
  14. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  15. package/dist/providers/transaction-request/transaction-request.d.ts +20 -4
  16. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  17. package/dist/test-utils/index.d.ts +0 -1
  18. package/dist/test-utils/index.d.ts.map +1 -1
  19. package/dist/test-utils/seedTestWallet.d.ts +1 -1
  20. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  21. package/dist/test-utils.global.js +41 -65
  22. package/dist/test-utils.global.js.map +1 -1
  23. package/dist/test-utils.js +135 -173
  24. package/dist/test-utils.js.map +1 -1
  25. package/dist/test-utils.mjs +64 -99
  26. package/dist/test-utils.mjs.map +1 -1
  27. package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
  28. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  29. package/package.json +15 -15
  30. package/dist/providers/transaction-request/helpers.d.ts +0 -10
  31. package/dist/providers/transaction-request/helpers.d.ts.map +0 -1
  32. package/dist/test-utils/resources.d.ts +0 -4
  33. package/dist/test-utils/resources.d.ts.map +0 -1
  34. package/dist/test-utils/transactionRequest.d.ts +0 -5
  35. package/dist/test-utils/transactionRequest.d.ts.map +0 -1
package/dist/index.mjs CHANGED
@@ -76,7 +76,7 @@ import { Address as Address2 } from "@fuel-ts/address";
76
76
  import { ErrorCode as ErrorCode13, FuelError as FuelError13 } from "@fuel-ts/errors";
77
77
  import { BN, bn as bn15, max } from "@fuel-ts/math";
78
78
  import {
79
- InputType as InputType7,
79
+ InputType as InputType6,
80
80
  TransactionType as TransactionType8,
81
81
  InputMessageCoder,
82
82
  TransactionCoder as TransactionCoder5
@@ -1173,7 +1173,7 @@ import { bn as bn7 } from "@fuel-ts/math";
1173
1173
  import {
1174
1174
  PolicyType,
1175
1175
  TransactionCoder,
1176
- InputType as InputType3,
1176
+ InputType as InputType2,
1177
1177
  OutputType as OutputType2,
1178
1178
  TransactionType
1179
1179
  } from "@fuel-ts/transactions";
@@ -1676,33 +1676,6 @@ var NoWitnessByOwnerError = class extends Error {
1676
1676
  name = "NoWitnessByOwnerError";
1677
1677
  };
1678
1678
 
1679
- // src/providers/transaction-request/helpers.ts
1680
- import { InputType as InputType2 } from "@fuel-ts/transactions";
1681
- var isRequestInputCoin = (input) => input.type === InputType2.Coin;
1682
- var isRequestInputMessage = (input) => input.type === InputType2.Message;
1683
- var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
1684
- var getRequestInputResourceOwner = (input) => {
1685
- if (isRequestInputCoin(input)) {
1686
- return input.owner;
1687
- }
1688
- return input.recipient;
1689
- };
1690
- var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
1691
- var cacheResources = (resources) => resources.reduce(
1692
- (cache2, resource) => {
1693
- if (isCoin(resource)) {
1694
- cache2.utxos.push(resource.id);
1695
- } else {
1696
- cache2.messages.push(resource.nonce);
1697
- }
1698
- return cache2;
1699
- },
1700
- {
1701
- utxos: [],
1702
- messages: []
1703
- }
1704
- );
1705
-
1706
1679
  // src/providers/transaction-request/witness.ts
1707
1680
  import { arrayify as arrayify4, hexlify as hexlify6 } from "@fuel-ts/utils";
1708
1681
  var witnessify = (value) => {
@@ -1893,7 +1866,7 @@ var BaseTransactionRequest = class {
1893
1866
  */
1894
1867
  getCoinInputs() {
1895
1868
  return this.inputs.filter(
1896
- (input) => input.type === InputType3.Coin
1869
+ (input) => input.type === InputType2.Coin
1897
1870
  );
1898
1871
  }
1899
1872
  /**
@@ -1925,9 +1898,9 @@ var BaseTransactionRequest = class {
1925
1898
  const ownerAddress = addressify(owner);
1926
1899
  const found = this.inputs.find((input) => {
1927
1900
  switch (input.type) {
1928
- case InputType3.Coin:
1901
+ case InputType2.Coin:
1929
1902
  return hexlify7(input.owner) === ownerAddress.toB256();
1930
- case InputType3.Message:
1903
+ case InputType2.Message:
1931
1904
  return hexlify7(input.recipient) === ownerAddress.toB256();
1932
1905
  default:
1933
1906
  return false;
@@ -1943,8 +1916,8 @@ var BaseTransactionRequest = class {
1943
1916
  * @param predicate - Predicate bytes.
1944
1917
  * @param predicateData - Predicate data bytes.
1945
1918
  */
1946
- addCoinInput(coin) {
1947
- const { assetId, owner, amount, id, predicate } = coin;
1919
+ addCoinInput(coin, predicate) {
1920
+ const { assetId, owner, amount } = coin;
1948
1921
  let witnessIndex;
1949
1922
  if (predicate) {
1950
1923
  witnessIndex = 0;
@@ -1955,14 +1928,14 @@ var BaseTransactionRequest = class {
1955
1928
  }
1956
1929
  }
1957
1930
  const input = {
1958
- id,
1959
- type: InputType3.Coin,
1931
+ ...coin,
1932
+ type: InputType2.Coin,
1960
1933
  owner: owner.toB256(),
1961
1934
  amount,
1962
1935
  assetId,
1963
1936
  txPointer: "0x00000000000000000000000000000000",
1964
1937
  witnessIndex,
1965
- predicate
1938
+ predicate: predicate?.bytes
1966
1939
  };
1967
1940
  this.pushInput(input);
1968
1941
  this.addChangeOutput(owner, assetId);
@@ -1975,8 +1948,8 @@ var BaseTransactionRequest = class {
1975
1948
  * @param predicate - Predicate bytes.
1976
1949
  * @param predicateData - Predicate data bytes.
1977
1950
  */
1978
- addMessageInput(message) {
1979
- const { recipient, sender, amount, predicate, nonce } = message;
1951
+ addMessageInput(message, predicate) {
1952
+ const { recipient, sender, amount } = message;
1980
1953
  const assetId = BaseAssetId2;
1981
1954
  let witnessIndex;
1982
1955
  if (predicate) {
@@ -1988,13 +1961,13 @@ var BaseTransactionRequest = class {
1988
1961
  }
1989
1962
  }
1990
1963
  const input = {
1991
- nonce,
1992
- type: InputType3.Message,
1964
+ ...message,
1965
+ type: InputType2.Message,
1993
1966
  sender: sender.toB256(),
1994
1967
  recipient: recipient.toB256(),
1995
1968
  amount,
1996
1969
  witnessIndex,
1997
- predicate
1970
+ predicate: predicate?.bytes
1998
1971
  };
1999
1972
  this.pushInput(input);
2000
1973
  this.addChangeOutput(recipient, assetId);
@@ -2025,6 +1998,32 @@ var BaseTransactionRequest = class {
2025
1998
  resources.forEach((resource) => this.addResource(resource));
2026
1999
  return this;
2027
2000
  }
2001
+ /**
2002
+ * Adds multiple resources to the transaction by adding coin/message inputs and change
2003
+ * outputs from the related assetIds.
2004
+ *
2005
+ * @param resources - The resources to add.
2006
+ * @returns This transaction.
2007
+ */
2008
+ addPredicateResource(resource, predicate) {
2009
+ if (isCoin(resource)) {
2010
+ this.addCoinInput(resource, predicate);
2011
+ } else {
2012
+ this.addMessageInput(resource, predicate);
2013
+ }
2014
+ return this;
2015
+ }
2016
+ /**
2017
+ * Adds multiple predicate coin/message inputs to the transaction and change outputs
2018
+ * from the related assetIds.
2019
+ *
2020
+ * @param resources - The resources to add.
2021
+ * @returns This transaction.
2022
+ */
2023
+ addPredicateResources(resources, predicate) {
2024
+ resources.forEach((resource) => this.addPredicateResource(resource, predicate));
2025
+ return this;
2026
+ }
2028
2027
  /**
2029
2028
  * Adds a coin output to the transaction.
2030
2029
  *
@@ -2173,20 +2172,16 @@ var BaseTransactionRequest = class {
2173
2172
  toJSON() {
2174
2173
  return normalizeJSON(this);
2175
2174
  }
2176
- removeWitness(index) {
2177
- this.witnesses.splice(index, 1);
2178
- this.adjustWitnessIndexes(index);
2179
- }
2180
2175
  updatePredicateInputs(inputs) {
2181
2176
  this.inputs.forEach((i) => {
2182
2177
  let correspondingInput;
2183
2178
  switch (i.type) {
2184
- case InputType3.Coin:
2185
- correspondingInput = inputs.find((x) => x.type === InputType3.Coin && x.owner === i.owner);
2179
+ case InputType2.Coin:
2180
+ correspondingInput = inputs.find((x) => x.type === InputType2.Coin && x.owner === i.owner);
2186
2181
  break;
2187
- case InputType3.Message:
2182
+ case InputType2.Message:
2188
2183
  correspondingInput = inputs.find(
2189
- (x) => x.type === InputType3.Message && x.sender === i.sender
2184
+ (x) => x.type === InputType2.Message && x.sender === i.sender
2190
2185
  );
2191
2186
  break;
2192
2187
  default:
@@ -2199,13 +2194,6 @@ var BaseTransactionRequest = class {
2199
2194
  }
2200
2195
  });
2201
2196
  }
2202
- adjustWitnessIndexes(removedIndex) {
2203
- this.inputs.filter(isRequestInputResource).forEach((input) => {
2204
- if (input.witnessIndex > removedIndex) {
2205
- input.witnessIndex -= 1;
2206
- }
2207
- });
2208
- }
2209
2197
  };
2210
2198
 
2211
2199
  // src/providers/transaction-request/create-transaction-request.ts
@@ -2218,7 +2206,7 @@ import { arrayify as arrayify6, hexlify as hexlify9 } from "@fuel-ts/utils";
2218
2206
  import { ZeroBytes32 as ZeroBytes325 } from "@fuel-ts/address/configs";
2219
2207
  import { uint64ToBytesBE, sha256 } from "@fuel-ts/hasher";
2220
2208
  import { bn as bn8 } from "@fuel-ts/math";
2221
- import { TransactionType as TransactionType2, InputType as InputType4, OutputType as OutputType3, TransactionCoder as TransactionCoder2 } from "@fuel-ts/transactions";
2209
+ import { TransactionType as TransactionType2, InputType as InputType3, OutputType as OutputType3, TransactionCoder as TransactionCoder2 } from "@fuel-ts/transactions";
2222
2210
  import { concat as concat2 } from "@fuel-ts/utils";
2223
2211
  import { clone as clone2 } from "ramda";
2224
2212
  function hashTransaction(transactionRequest, chainId) {
@@ -2229,7 +2217,7 @@ function hashTransaction(transactionRequest, chainId) {
2229
2217
  transaction.inputs = transaction.inputs.map((input) => {
2230
2218
  const inputClone = clone2(input);
2231
2219
  switch (inputClone.type) {
2232
- case InputType4.Coin: {
2220
+ case InputType3.Coin: {
2233
2221
  inputClone.txPointer = {
2234
2222
  blockHeight: 0,
2235
2223
  txIndex: 0
@@ -2237,11 +2225,11 @@ function hashTransaction(transactionRequest, chainId) {
2237
2225
  inputClone.predicateGasUsed = bn8(0);
2238
2226
  return inputClone;
2239
2227
  }
2240
- case InputType4.Message: {
2228
+ case InputType3.Message: {
2241
2229
  inputClone.predicateGasUsed = bn8(0);
2242
2230
  return inputClone;
2243
2231
  }
2244
- case InputType4.Contract: {
2232
+ case InputType3.Contract: {
2245
2233
  inputClone.txPointer = {
2246
2234
  blockHeight: 0,
2247
2235
  txIndex: 0
@@ -2407,7 +2395,7 @@ import { Interface } from "@fuel-ts/abi-coder";
2407
2395
  import { addressify as addressify2 } from "@fuel-ts/address";
2408
2396
  import { ZeroBytes32 as ZeroBytes327 } from "@fuel-ts/address/configs";
2409
2397
  import { bn as bn10 } from "@fuel-ts/math";
2410
- import { InputType as InputType5, OutputType as OutputType5, TransactionType as TransactionType4 } from "@fuel-ts/transactions";
2398
+ import { InputType as InputType4, OutputType as OutputType5, TransactionType as TransactionType4 } from "@fuel-ts/transactions";
2411
2399
  import { arrayify as arrayify8, hexlify as hexlify10 } from "@fuel-ts/utils";
2412
2400
 
2413
2401
  // src/providers/transaction-request/scripts.ts
@@ -2491,7 +2479,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2491
2479
  */
2492
2480
  getContractInputs() {
2493
2481
  return this.inputs.filter(
2494
- (input) => input.type === InputType5.Contract
2482
+ (input) => input.type === InputType4.Contract
2495
2483
  );
2496
2484
  }
2497
2485
  /**
@@ -2567,7 +2555,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2567
2555
  return this;
2568
2556
  }
2569
2557
  const inputIndex = super.pushInput({
2570
- type: InputType5.Contract,
2558
+ type: InputType4.Contract,
2571
2559
  contractId: contractAddress.toB256(),
2572
2560
  txPointer: "0x00000000000000000000000000000000"
2573
2561
  });
@@ -2762,7 +2750,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2762
2750
 
2763
2751
  // src/providers/transaction-summary/input.ts
2764
2752
  import { ErrorCode as ErrorCode9, FuelError as FuelError9 } from "@fuel-ts/errors";
2765
- import { InputType as InputType6 } from "@fuel-ts/transactions";
2753
+ import { InputType as InputType5 } from "@fuel-ts/transactions";
2766
2754
  function getInputsByTypes(inputs, types) {
2767
2755
  return inputs.filter((i) => types.includes(i.type));
2768
2756
  }
@@ -2770,16 +2758,16 @@ function getInputsByType(inputs, type) {
2770
2758
  return inputs.filter((i) => i.type === type);
2771
2759
  }
2772
2760
  function getInputsCoin(inputs) {
2773
- return getInputsByType(inputs, InputType6.Coin);
2761
+ return getInputsByType(inputs, InputType5.Coin);
2774
2762
  }
2775
2763
  function getInputsMessage(inputs) {
2776
- return getInputsByType(inputs, InputType6.Message);
2764
+ return getInputsByType(inputs, InputType5.Message);
2777
2765
  }
2778
2766
  function getInputsCoinAndMessage(inputs) {
2779
- return getInputsByTypes(inputs, [InputType6.Coin, InputType6.Message]);
2767
+ return getInputsByTypes(inputs, [InputType5.Coin, InputType5.Message]);
2780
2768
  }
2781
2769
  function getInputsContract(inputs) {
2782
- return getInputsByType(inputs, InputType6.Contract);
2770
+ return getInputsByType(inputs, InputType5.Contract);
2783
2771
  }
2784
2772
  function getInputFromAssetId(inputs, assetId) {
2785
2773
  const coinInputs = getInputsCoin(inputs);
@@ -2798,7 +2786,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2798
2786
  if (!contractInput) {
2799
2787
  return void 0;
2800
2788
  }
2801
- if (contractInput.type !== InputType6.Contract) {
2789
+ if (contractInput.type !== InputType5.Contract) {
2802
2790
  throw new FuelError9(
2803
2791
  ErrorCode9.INVALID_TRANSACTION_INPUT,
2804
2792
  `Contract input should be of type 'contract'.`
@@ -2807,10 +2795,10 @@ function getInputContractFromIndex(inputs, inputIndex) {
2807
2795
  return contractInput;
2808
2796
  }
2809
2797
  function getInputAccountAddress(input) {
2810
- if (input.type === InputType6.Coin) {
2798
+ if (input.type === InputType5.Coin) {
2811
2799
  return input.owner.toString();
2812
2800
  }
2813
- if (input.type === InputType6.Message) {
2801
+ if (input.type === InputType5.Message) {
2814
2802
  return input.recipient.toString();
2815
2803
  }
2816
2804
  return "";
@@ -4554,7 +4542,7 @@ cacheInputs_fn = function(inputs) {
4554
4542
  return;
4555
4543
  }
4556
4544
  inputs.forEach((input) => {
4557
- if (input.type === InputType7.Coin) {
4545
+ if (input.type === InputType6.Coin) {
4558
4546
  this.cache?.set(input.id);
4559
4547
  }
4560
4548
  });
@@ -8723,7 +8711,7 @@ import {
8723
8711
  import { Address as Address9 } from "@fuel-ts/address";
8724
8712
  import { BaseAssetId as BaseAssetId4 } from "@fuel-ts/address/configs";
8725
8713
  import { ErrorCode as ErrorCode24, FuelError as FuelError24 } from "@fuel-ts/errors";
8726
- import { ByteArrayCoder } from "@fuel-ts/transactions";
8714
+ import { ByteArrayCoder, InputType as InputType7 } from "@fuel-ts/transactions";
8727
8715
  import { arrayify as arrayify20, hexlify as hexlify19 } from "@fuel-ts/utils";
8728
8716
 
8729
8717
  // src/predicate/utils/getPredicateRoot.ts
@@ -8782,15 +8770,10 @@ var Predicate = class extends Account {
8782
8770
  populateTransactionPredicateData(transactionRequestLike) {
8783
8771
  const request = transactionRequestify(transactionRequestLike);
8784
8772
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
8785
- const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
8786
- if (placeholderIndex !== -1) {
8787
- request.removeWitness(placeholderIndex);
8788
- }
8789
- request.inputs.filter(isRequestInputResource).forEach((input) => {
8790
- if (isRequestInputResourceFromOwner(input, this.address)) {
8773
+ request.inputs?.forEach((input) => {
8774
+ if (input.type === InputType7.Coin && hexlify19(input.owner) === this.address.toB256()) {
8791
8775
  input.predicate = this.bytes;
8792
8776
  input.predicateData = this.getPredicateData(policies.length);
8793
- input.witnessIndex = 0;
8794
8777
  }
8795
8778
  });
8796
8779
  return request;
@@ -8828,20 +8811,6 @@ var Predicate = class extends Account {
8828
8811
  const transactionRequest = this.populateTransactionPredicateData(transactionRequestLike);
8829
8812
  return super.simulateTransaction(transactionRequest);
8830
8813
  }
8831
- /**
8832
- * Retrieves resources satisfying the spend query for the account.
8833
- *
8834
- * @param quantities - IDs of coins to exclude.
8835
- * @param excludedIds - IDs of resources to be excluded from the query.
8836
- * @returns A promise that resolves to an array of Resources.
8837
- */
8838
- async getResourcesToSpend(quantities, excludedIds) {
8839
- const resources = await super.getResourcesToSpend(quantities, excludedIds);
8840
- return resources.map((resource) => ({
8841
- ...resource,
8842
- predicate: hexlify19(this.bytes)
8843
- }));
8844
- }
8845
8814
  getPredicateData(policiesLength) {
8846
8815
  if (!this.predicateData.length) {
8847
8816
  return new Uint8Array();
@@ -8921,22 +8890,6 @@ var Predicate = class extends Account {
8921
8890
  }
8922
8891
  return mutatedBytes;
8923
8892
  }
8924
- getIndexFromPlaceholderWitness(request) {
8925
- const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
8926
- let index = -1;
8927
- const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
8928
- if (hasEmptyPredicateInputs) {
8929
- index = hasEmptyPredicateInputs.witnessIndex;
8930
- const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
8931
- if (!allInputsAreEmpty) {
8932
- const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
8933
- if (wasFilledInputAddedFirst) {
8934
- index = -1;
8935
- }
8936
- }
8937
- }
8938
- return index;
8939
- }
8940
8893
  };
8941
8894
 
8942
8895
  // src/connectors/fuel.ts
@@ -9659,7 +9612,6 @@ export {
9659
9612
  assets,
9660
9613
  buildBlockExplorerUrl,
9661
9614
  cacheFor,
9662
- cacheResources,
9663
9615
  calculateMetadataGasForTxCreate,
9664
9616
  calculateMetadataGasForTxScript,
9665
9617
  calculatePriceWithFactor,
@@ -9706,7 +9658,6 @@ export {
9706
9658
  getReceiptsMessageOut,
9707
9659
  getReceiptsTransferOut,
9708
9660
  getReceiptsWithMissingData,
9709
- getRequestInputResourceOwner,
9710
9661
  getTransactionStatusName,
9711
9662
  getTransactionSummary,
9712
9663
  getTransactionSummaryFromRequest,
@@ -9720,10 +9671,6 @@ export {
9720
9671
  isMessage,
9721
9672
  isRawCoin,
9722
9673
  isRawMessage,
9723
- isRequestInputCoin,
9724
- isRequestInputMessage,
9725
- isRequestInputResource,
9726
- isRequestInputResourceFromOwner,
9727
9674
  isType,
9728
9675
  isTypeCreate,
9729
9676
  isTypeMint,