@fuel-ts/account 0.0.0-rc-2152-20240429145747 → 0.0.0-rc-2037-20240430003658

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 (36) hide show
  1. package/README.md +15 -12
  2. package/dist/index.global.js +1097 -126
  3. package/dist/index.global.js.map +1 -1
  4. package/dist/index.js +241 -128
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +146 -39
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/predicate/predicate.d.ts +9 -2
  9. package/dist/predicate/predicate.d.ts.map +1 -1
  10. package/dist/providers/__generated__/operations.d.ts +17 -0
  11. package/dist/providers/__generated__/operations.d.ts.map +1 -1
  12. package/dist/providers/provider.d.ts +17 -1
  13. package/dist/providers/provider.d.ts.map +1 -1
  14. package/dist/providers/transaction-request/helpers.d.ts +10 -0
  15. package/dist/providers/transaction-request/helpers.d.ts.map +1 -0
  16. package/dist/providers/transaction-request/index.d.ts +1 -0
  17. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  18. package/dist/providers/transaction-request/transaction-request.d.ts +2 -0
  19. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  20. package/dist/test-utils/index.d.ts +1 -0
  21. package/dist/test-utils/index.d.ts.map +1 -1
  22. package/dist/test-utils/resources.d.ts +4 -0
  23. package/dist/test-utils/resources.d.ts.map +1 -0
  24. package/dist/test-utils/seedTestWallet.d.ts +1 -1
  25. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  26. package/dist/test-utils/transactionRequest.d.ts +5 -0
  27. package/dist/test-utils/transactionRequest.d.ts.map +1 -0
  28. package/dist/test-utils.global.js +1104 -136
  29. package/dist/test-utils.global.js.map +1 -1
  30. package/dist/test-utils.js +228 -125
  31. package/dist/test-utils.js.map +1 -1
  32. package/dist/test-utils.mjs +142 -42
  33. package/dist/test-utils.mjs.map +1 -1
  34. package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
  35. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  36. package/package.json +15 -15
@@ -48,6 +48,9 @@ var __privateMethod = (obj, member, method) => {
48
48
  // src/test-utils/index.ts
49
49
  var test_utils_exports = {};
50
50
  __export(test_utils_exports, {
51
+ generateFakeRequestInputCoin: () => generateFakeRequestInputCoin,
52
+ generateFakeRequestInputContract: () => generateFakeRequestInputContract,
53
+ generateFakeRequestInputMessage: () => generateFakeRequestInputMessage,
51
54
  generateTestWallet: () => generateTestWallet,
52
55
  killNode: () => killNode,
53
56
  launchNode: () => launchNode,
@@ -107,10 +110,11 @@ var addAmountToCoinQuantities = (params) => {
107
110
  var import_address3 = require("@fuel-ts/address");
108
111
  var import_errors14 = require("@fuel-ts/errors");
109
112
  var import_math16 = require("@fuel-ts/math");
110
- var import_transactions19 = require("@fuel-ts/transactions");
113
+ var import_transactions20 = require("@fuel-ts/transactions");
111
114
  var import_utils22 = require("@fuel-ts/utils");
112
115
  var import_versions = require("@fuel-ts/versions");
113
116
  var import_utils23 = require("@noble/curves/abstract/utils");
117
+ var import_ethers = require("ethers");
114
118
  var import_graphql_request = require("graphql-request");
115
119
  var import_ramda3 = require("ramda");
116
120
 
@@ -885,6 +889,13 @@ var ProduceBlocksDocument = import_graphql_tag.default`
885
889
  )
886
890
  }
887
891
  `;
892
+ var GetMessageByNonceDocument = import_graphql_tag.default`
893
+ query getMessageByNonce($nonce: Nonce!) {
894
+ message(nonce: $nonce) {
895
+ ...messageFragment
896
+ }
897
+ }
898
+ ${MessageFragmentFragmentDoc}`;
888
899
  var SubmitAndAwaitDocument = import_graphql_tag.default`
889
900
  subscription submitAndAwait($encodedTransaction: HexString!) {
890
901
  submitAndAwait(tx: $encodedTransaction) {
@@ -979,6 +990,9 @@ function getSdk(requester) {
979
990
  produceBlocks(variables, options) {
980
991
  return requester(ProduceBlocksDocument, variables, options);
981
992
  },
993
+ getMessageByNonce(variables, options) {
994
+ return requester(GetMessageByNonceDocument, variables, options);
995
+ },
982
996
  submitAndAwait(variables, options) {
983
997
  return requester(SubmitAndAwaitDocument, variables, options);
984
998
  },
@@ -1264,7 +1278,7 @@ var import_address = require("@fuel-ts/address");
1264
1278
  var import_configs6 = require("@fuel-ts/address/configs");
1265
1279
  var import_crypto = require("@fuel-ts/crypto");
1266
1280
  var import_math7 = require("@fuel-ts/math");
1267
- var import_transactions6 = require("@fuel-ts/transactions");
1281
+ var import_transactions7 = require("@fuel-ts/transactions");
1268
1282
  var import_utils9 = require("@fuel-ts/utils");
1269
1283
 
1270
1284
  // src/providers/resource.ts
@@ -1698,6 +1712,12 @@ var NoWitnessAtIndexError = class extends Error {
1698
1712
  name = "NoWitnessAtIndexError";
1699
1713
  };
1700
1714
 
1715
+ // src/providers/transaction-request/helpers.ts
1716
+ var import_transactions6 = require("@fuel-ts/transactions");
1717
+ var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
1718
+ var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
1719
+ var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
1720
+
1701
1721
  // src/providers/transaction-request/witness.ts
1702
1722
  var import_utils8 = require("@fuel-ts/utils");
1703
1723
  var witnessify = (value) => {
@@ -1750,20 +1770,20 @@ var BaseTransactionRequest = class {
1750
1770
  let policyTypes = 0;
1751
1771
  const policies = [];
1752
1772
  if (req.tip) {
1753
- policyTypes += import_transactions6.PolicyType.Tip;
1754
- policies.push({ data: req.tip, type: import_transactions6.PolicyType.Tip });
1773
+ policyTypes += import_transactions7.PolicyType.Tip;
1774
+ policies.push({ data: req.tip, type: import_transactions7.PolicyType.Tip });
1755
1775
  }
1756
1776
  if (req.witnessLimit) {
1757
- policyTypes += import_transactions6.PolicyType.WitnessLimit;
1758
- policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
1777
+ policyTypes += import_transactions7.PolicyType.WitnessLimit;
1778
+ policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
1759
1779
  }
1760
1780
  if (req.maturity > 0) {
1761
- policyTypes += import_transactions6.PolicyType.Maturity;
1762
- policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
1781
+ policyTypes += import_transactions7.PolicyType.Maturity;
1782
+ policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
1763
1783
  }
1764
1784
  if (req.maxFee) {
1765
- policyTypes += import_transactions6.PolicyType.MaxFee;
1766
- policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
1785
+ policyTypes += import_transactions7.PolicyType.MaxFee;
1786
+ policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
1767
1787
  }
1768
1788
  return {
1769
1789
  policyTypes,
@@ -1797,7 +1817,7 @@ var BaseTransactionRequest = class {
1797
1817
  * @returns The transaction bytes.
1798
1818
  */
1799
1819
  toTransactionBytes() {
1800
- return new import_transactions6.TransactionCoder().encode(this.toTransaction());
1820
+ return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1801
1821
  }
1802
1822
  /**
1803
1823
  * @hidden
@@ -1888,7 +1908,7 @@ var BaseTransactionRequest = class {
1888
1908
  */
1889
1909
  getCoinInputs() {
1890
1910
  return this.inputs.filter(
1891
- (input) => input.type === import_transactions6.InputType.Coin
1911
+ (input) => input.type === import_transactions7.InputType.Coin
1892
1912
  );
1893
1913
  }
1894
1914
  /**
@@ -1898,7 +1918,7 @@ var BaseTransactionRequest = class {
1898
1918
  */
1899
1919
  getCoinOutputs() {
1900
1920
  return this.outputs.filter(
1901
- (output) => output.type === import_transactions6.OutputType.Coin
1921
+ (output) => output.type === import_transactions7.OutputType.Coin
1902
1922
  );
1903
1923
  }
1904
1924
  /**
@@ -1908,7 +1928,7 @@ var BaseTransactionRequest = class {
1908
1928
  */
1909
1929
  getChangeOutputs() {
1910
1930
  return this.outputs.filter(
1911
- (output) => output.type === import_transactions6.OutputType.Change
1931
+ (output) => output.type === import_transactions7.OutputType.Change
1912
1932
  );
1913
1933
  }
1914
1934
  /**
@@ -1920,9 +1940,9 @@ var BaseTransactionRequest = class {
1920
1940
  const ownerAddress = (0, import_address.addressify)(owner);
1921
1941
  const found = this.inputs.find((input) => {
1922
1942
  switch (input.type) {
1923
- case import_transactions6.InputType.Coin:
1943
+ case import_transactions7.InputType.Coin:
1924
1944
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
1925
- case import_transactions6.InputType.Message:
1945
+ case import_transactions7.InputType.Message:
1926
1946
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
1927
1947
  default:
1928
1948
  return false;
@@ -1937,7 +1957,7 @@ var BaseTransactionRequest = class {
1937
1957
  * @param coin - Coin resource.
1938
1958
  */
1939
1959
  addCoinInput(coin) {
1940
- const { assetId, owner, amount } = coin;
1960
+ const { assetId, owner, amount, id, predicate } = coin;
1941
1961
  let witnessIndex;
1942
1962
  if (coin.predicate) {
1943
1963
  witnessIndex = 0;
@@ -1948,13 +1968,14 @@ var BaseTransactionRequest = class {
1948
1968
  }
1949
1969
  }
1950
1970
  const input = {
1951
- ...coin,
1952
- type: import_transactions6.InputType.Coin,
1971
+ id,
1972
+ type: import_transactions7.InputType.Coin,
1953
1973
  owner: owner.toB256(),
1954
1974
  amount,
1955
1975
  assetId,
1956
1976
  txPointer: "0x00000000000000000000000000000000",
1957
- witnessIndex
1977
+ witnessIndex,
1978
+ predicate
1958
1979
  };
1959
1980
  this.pushInput(input);
1960
1981
  this.addChangeOutput(owner, assetId);
@@ -1966,7 +1987,7 @@ var BaseTransactionRequest = class {
1966
1987
  * @param message - Message resource.
1967
1988
  */
1968
1989
  addMessageInput(message) {
1969
- const { recipient, sender, amount, assetId } = message;
1990
+ const { recipient, sender, amount, predicate, nonce, assetId } = message;
1970
1991
  let witnessIndex;
1971
1992
  if (message.predicate) {
1972
1993
  witnessIndex = 0;
@@ -1977,12 +1998,13 @@ var BaseTransactionRequest = class {
1977
1998
  }
1978
1999
  }
1979
2000
  const input = {
1980
- ...message,
1981
- type: import_transactions6.InputType.Message,
2001
+ nonce,
2002
+ type: import_transactions7.InputType.Message,
1982
2003
  sender: sender.toB256(),
1983
2004
  recipient: recipient.toB256(),
1984
2005
  amount,
1985
- witnessIndex
2006
+ witnessIndex,
2007
+ predicate
1986
2008
  };
1987
2009
  this.pushInput(input);
1988
2010
  this.addChangeOutput(recipient, assetId);
@@ -2022,7 +2044,7 @@ var BaseTransactionRequest = class {
2022
2044
  */
2023
2045
  addCoinOutput(to, amount, assetId) {
2024
2046
  this.pushOutput({
2025
- type: import_transactions6.OutputType.Coin,
2047
+ type: import_transactions7.OutputType.Coin,
2026
2048
  to: (0, import_address.addressify)(to).toB256(),
2027
2049
  amount,
2028
2050
  assetId
@@ -2038,7 +2060,7 @@ var BaseTransactionRequest = class {
2038
2060
  addCoinOutputs(to, quantities) {
2039
2061
  quantities.map(coinQuantityfy).forEach((quantity) => {
2040
2062
  this.pushOutput({
2041
- type: import_transactions6.OutputType.Coin,
2063
+ type: import_transactions7.OutputType.Coin,
2042
2064
  to: (0, import_address.addressify)(to).toB256(),
2043
2065
  amount: quantity.amount,
2044
2066
  assetId: quantity.assetId
@@ -2058,7 +2080,7 @@ var BaseTransactionRequest = class {
2058
2080
  );
2059
2081
  if (!changeOutput) {
2060
2082
  this.pushOutput({
2061
- type: import_transactions6.OutputType.Change,
2083
+ type: import_transactions7.OutputType.Change,
2062
2084
  to: (0, import_address.addressify)(to).toB256(),
2063
2085
  assetId
2064
2086
  });
@@ -2166,16 +2188,27 @@ var BaseTransactionRequest = class {
2166
2188
  toJSON() {
2167
2189
  return normalizeJSON(this);
2168
2190
  }
2191
+ removeWitness(index) {
2192
+ this.witnesses.splice(index, 1);
2193
+ this.adjustWitnessIndexes(index);
2194
+ }
2195
+ adjustWitnessIndexes(removedIndex) {
2196
+ this.inputs.filter(isRequestInputResource).forEach((input) => {
2197
+ if (input.witnessIndex > removedIndex) {
2198
+ input.witnessIndex -= 1;
2199
+ }
2200
+ });
2201
+ }
2169
2202
  updatePredicateGasUsed(inputs) {
2170
2203
  this.inputs.forEach((i) => {
2171
2204
  let correspondingInput;
2172
2205
  switch (i.type) {
2173
- case import_transactions6.InputType.Coin:
2174
- correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
2206
+ case import_transactions7.InputType.Coin:
2207
+ correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
2175
2208
  break;
2176
- case import_transactions6.InputType.Message:
2209
+ case import_transactions7.InputType.Message:
2177
2210
  correspondingInput = inputs.find(
2178
- (x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
2211
+ (x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
2179
2212
  );
2180
2213
  break;
2181
2214
  default:
@@ -2202,25 +2235,25 @@ var BaseTransactionRequest = class {
2202
2235
  // src/providers/transaction-request/create-transaction-request.ts
2203
2236
  var import_configs8 = require("@fuel-ts/address/configs");
2204
2237
  var import_math9 = require("@fuel-ts/math");
2205
- var import_transactions8 = require("@fuel-ts/transactions");
2238
+ var import_transactions9 = require("@fuel-ts/transactions");
2206
2239
  var import_utils13 = require("@fuel-ts/utils");
2207
2240
 
2208
2241
  // src/providers/transaction-request/hash-transaction.ts
2209
2242
  var import_configs7 = require("@fuel-ts/address/configs");
2210
2243
  var import_hasher = require("@fuel-ts/hasher");
2211
2244
  var import_math8 = require("@fuel-ts/math");
2212
- var import_transactions7 = require("@fuel-ts/transactions");
2245
+ var import_transactions8 = require("@fuel-ts/transactions");
2213
2246
  var import_utils11 = require("@fuel-ts/utils");
2214
2247
  var import_ramda2 = require("ramda");
2215
2248
  function hashTransaction(transactionRequest, chainId) {
2216
2249
  const transaction = transactionRequest.toTransaction();
2217
- if (transaction.type === import_transactions7.TransactionType.Script) {
2250
+ if (transaction.type === import_transactions8.TransactionType.Script) {
2218
2251
  transaction.receiptsRoot = import_configs7.ZeroBytes32;
2219
2252
  }
2220
2253
  transaction.inputs = transaction.inputs.map((input) => {
2221
2254
  const inputClone = (0, import_ramda2.clone)(input);
2222
2255
  switch (inputClone.type) {
2223
- case import_transactions7.InputType.Coin: {
2256
+ case import_transactions8.InputType.Coin: {
2224
2257
  inputClone.txPointer = {
2225
2258
  blockHeight: 0,
2226
2259
  txIndex: 0
@@ -2228,11 +2261,11 @@ function hashTransaction(transactionRequest, chainId) {
2228
2261
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2229
2262
  return inputClone;
2230
2263
  }
2231
- case import_transactions7.InputType.Message: {
2264
+ case import_transactions8.InputType.Message: {
2232
2265
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2233
2266
  return inputClone;
2234
2267
  }
2235
- case import_transactions7.InputType.Contract: {
2268
+ case import_transactions8.InputType.Contract: {
2236
2269
  inputClone.txPointer = {
2237
2270
  blockHeight: 0,
2238
2271
  txIndex: 0
@@ -2250,16 +2283,16 @@ function hashTransaction(transactionRequest, chainId) {
2250
2283
  transaction.outputs = transaction.outputs.map((output) => {
2251
2284
  const outputClone = (0, import_ramda2.clone)(output);
2252
2285
  switch (outputClone.type) {
2253
- case import_transactions7.OutputType.Contract: {
2286
+ case import_transactions8.OutputType.Contract: {
2254
2287
  outputClone.balanceRoot = import_configs7.ZeroBytes32;
2255
2288
  outputClone.stateRoot = import_configs7.ZeroBytes32;
2256
2289
  return outputClone;
2257
2290
  }
2258
- case import_transactions7.OutputType.Change: {
2291
+ case import_transactions8.OutputType.Change: {
2259
2292
  outputClone.amount = (0, import_math8.bn)(0);
2260
2293
  return outputClone;
2261
2294
  }
2262
- case import_transactions7.OutputType.Variable: {
2295
+ case import_transactions8.OutputType.Variable: {
2263
2296
  outputClone.to = import_configs7.ZeroBytes32;
2264
2297
  outputClone.amount = (0, import_math8.bn)(0);
2265
2298
  outputClone.assetId = import_configs7.ZeroBytes32;
@@ -2272,7 +2305,7 @@ function hashTransaction(transactionRequest, chainId) {
2272
2305
  transaction.witnessesCount = 0;
2273
2306
  transaction.witnesses = [];
2274
2307
  const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
2275
- const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
2308
+ const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
2276
2309
  return (0, import_hasher.sha256)(concatenatedData);
2277
2310
  }
2278
2311
 
@@ -2308,7 +2341,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2308
2341
  return new this(obj);
2309
2342
  }
2310
2343
  /** Type of the transaction */
2311
- type = import_transactions8.TransactionType.Create;
2344
+ type = import_transactions9.TransactionType.Create;
2312
2345
  /** Witness index of contract bytecode to create */
2313
2346
  bytecodeWitnessIndex;
2314
2347
  /** Salt */
@@ -2336,7 +2369,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2336
2369
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2337
2370
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2338
2371
  return {
2339
- type: import_transactions8.TransactionType.Create,
2372
+ type: import_transactions9.TransactionType.Create,
2340
2373
  ...baseTransaction,
2341
2374
  bytecodeWitnessIndex,
2342
2375
  storageSlotsCount: (0, import_math9.bn)(storageSlots.length),
@@ -2351,7 +2384,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2351
2384
  */
2352
2385
  getContractCreatedOutputs() {
2353
2386
  return this.outputs.filter(
2354
- (output) => output.type === import_transactions8.OutputType.ContractCreated
2387
+ (output) => output.type === import_transactions9.OutputType.ContractCreated
2355
2388
  );
2356
2389
  }
2357
2390
  /**
@@ -2372,7 +2405,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2372
2405
  */
2373
2406
  addContractCreatedOutput(contractId, stateRoot) {
2374
2407
  this.pushOutput({
2375
- type: import_transactions8.OutputType.ContractCreated,
2408
+ type: import_transactions9.OutputType.ContractCreated,
2376
2409
  contractId,
2377
2410
  stateRoot
2378
2411
  });
@@ -2392,7 +2425,7 @@ var import_abi_coder3 = require("@fuel-ts/abi-coder");
2392
2425
  var import_address2 = require("@fuel-ts/address");
2393
2426
  var import_configs9 = require("@fuel-ts/address/configs");
2394
2427
  var import_math10 = require("@fuel-ts/math");
2395
- var import_transactions9 = require("@fuel-ts/transactions");
2428
+ var import_transactions10 = require("@fuel-ts/transactions");
2396
2429
  var import_utils15 = require("@fuel-ts/utils");
2397
2430
 
2398
2431
  // src/providers/transaction-request/scripts.ts
@@ -2430,7 +2463,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2430
2463
  return new this(obj);
2431
2464
  }
2432
2465
  /** Type of the transaction */
2433
- type = import_transactions9.TransactionType.Script;
2466
+ type = import_transactions10.TransactionType.Script;
2434
2467
  /** Gas limit for transaction */
2435
2468
  gasLimit;
2436
2469
  /** Script to execute */
@@ -2459,7 +2492,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2459
2492
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2460
2493
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2461
2494
  return {
2462
- type: import_transactions9.TransactionType.Script,
2495
+ type: import_transactions10.TransactionType.Script,
2463
2496
  scriptGasLimit: this.gasLimit,
2464
2497
  ...super.getBaseTransaction(),
2465
2498
  scriptLength: (0, import_math10.bn)(script.length),
@@ -2476,7 +2509,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2476
2509
  */
2477
2510
  getContractInputs() {
2478
2511
  return this.inputs.filter(
2479
- (input) => input.type === import_transactions9.InputType.Contract
2512
+ (input) => input.type === import_transactions10.InputType.Contract
2480
2513
  );
2481
2514
  }
2482
2515
  /**
@@ -2486,7 +2519,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2486
2519
  */
2487
2520
  getContractOutputs() {
2488
2521
  return this.outputs.filter(
2489
- (output) => output.type === import_transactions9.OutputType.Contract
2522
+ (output) => output.type === import_transactions10.OutputType.Contract
2490
2523
  );
2491
2524
  }
2492
2525
  /**
@@ -2496,7 +2529,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2496
2529
  */
2497
2530
  getVariableOutputs() {
2498
2531
  return this.outputs.filter(
2499
- (output) => output.type === import_transactions9.OutputType.Variable
2532
+ (output) => output.type === import_transactions10.OutputType.Variable
2500
2533
  );
2501
2534
  }
2502
2535
  /**
@@ -2519,7 +2552,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2519
2552
  let outputsNumber = numberOfVariables;
2520
2553
  while (outputsNumber) {
2521
2554
  this.pushOutput({
2522
- type: import_transactions9.OutputType.Variable
2555
+ type: import_transactions10.OutputType.Variable
2523
2556
  });
2524
2557
  outputsNumber -= 1;
2525
2558
  }
@@ -2553,12 +2586,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2553
2586
  return this;
2554
2587
  }
2555
2588
  const inputIndex = super.pushInput({
2556
- type: import_transactions9.InputType.Contract,
2589
+ type: import_transactions10.InputType.Contract,
2557
2590
  contractId: contractAddress.toB256(),
2558
2591
  txPointer: "0x00000000000000000000000000000000"
2559
2592
  });
2560
2593
  this.pushOutput({
2561
- type: import_transactions9.OutputType.Contract,
2594
+ type: import_transactions10.OutputType.Contract,
2562
2595
  inputIndex
2563
2596
  });
2564
2597
  return this;
@@ -2595,17 +2628,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2595
2628
 
2596
2629
  // src/providers/transaction-request/utils.ts
2597
2630
  var import_errors9 = require("@fuel-ts/errors");
2598
- var import_transactions10 = require("@fuel-ts/transactions");
2631
+ var import_transactions11 = require("@fuel-ts/transactions");
2599
2632
  var transactionRequestify = (obj) => {
2600
2633
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2601
2634
  return obj;
2602
2635
  }
2603
2636
  const { type } = obj;
2604
2637
  switch (obj.type) {
2605
- case import_transactions10.TransactionType.Script: {
2638
+ case import_transactions11.TransactionType.Script: {
2606
2639
  return ScriptTransactionRequest.from(obj);
2607
2640
  }
2608
- case import_transactions10.TransactionType.Create: {
2641
+ case import_transactions11.TransactionType.Create: {
2609
2642
  return CreateTransactionRequest.from(obj);
2610
2643
  }
2611
2644
  default: {
@@ -2615,10 +2648,10 @@ var transactionRequestify = (obj) => {
2615
2648
  };
2616
2649
  var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
2617
2650
  (acc, input) => {
2618
- if (input.type === import_transactions10.InputType.Coin && input.owner === owner) {
2651
+ if (input.type === import_transactions11.InputType.Coin && input.owner === owner) {
2619
2652
  acc.utxos.push(input.id);
2620
2653
  }
2621
- if (input.type === import_transactions10.InputType.Message && input.recipient === owner) {
2654
+ if (input.type === import_transactions11.InputType.Message && input.recipient === owner) {
2622
2655
  acc.messages.push(input.nonce);
2623
2656
  }
2624
2657
  return acc;
@@ -2632,17 +2665,17 @@ var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
2632
2665
  // src/providers/transaction-response/transaction-response.ts
2633
2666
  var import_errors13 = require("@fuel-ts/errors");
2634
2667
  var import_math15 = require("@fuel-ts/math");
2635
- var import_transactions18 = require("@fuel-ts/transactions");
2668
+ var import_transactions19 = require("@fuel-ts/transactions");
2636
2669
  var import_utils20 = require("@fuel-ts/utils");
2637
2670
 
2638
2671
  // src/providers/transaction-summary/assemble-transaction-summary.ts
2639
2672
  var import_math14 = require("@fuel-ts/math");
2640
- var import_transactions16 = require("@fuel-ts/transactions");
2673
+ var import_transactions17 = require("@fuel-ts/transactions");
2641
2674
  var import_utils18 = require("@fuel-ts/utils");
2642
2675
 
2643
2676
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2644
2677
  var import_math11 = require("@fuel-ts/math");
2645
- var import_transactions11 = require("@fuel-ts/transactions");
2678
+ var import_transactions12 = require("@fuel-ts/transactions");
2646
2679
  var import_utils16 = require("@fuel-ts/utils");
2647
2680
  var calculateTransactionFee = (params) => {
2648
2681
  const {
@@ -2654,8 +2687,8 @@ var calculateTransactionFee = (params) => {
2654
2687
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2655
2688
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2656
2689
  const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
2657
- const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
2658
- if (transaction.type === import_transactions11.TransactionType.Mint) {
2690
+ const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2691
+ if (transaction.type === import_transactions12.TransactionType.Mint) {
2659
2692
  return {
2660
2693
  fee: (0, import_math11.bn)(0),
2661
2694
  minFee: (0, import_math11.bn)(0),
@@ -2665,7 +2698,7 @@ var calculateTransactionFee = (params) => {
2665
2698
  const { type, witnesses, inputs, policies } = transaction;
2666
2699
  let metadataGas = (0, import_math11.bn)(0);
2667
2700
  let gasLimit = (0, import_math11.bn)(0);
2668
- if (type === import_transactions11.TransactionType.Create) {
2701
+ if (type === import_transactions12.TransactionType.Create) {
2669
2702
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2670
2703
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2671
2704
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2691,7 +2724,7 @@ var calculateTransactionFee = (params) => {
2691
2724
  metadataGas,
2692
2725
  txBytesSize: transactionBytes.length
2693
2726
  });
2694
- const witnessLimit = policies.find((policy) => policy.type === import_transactions11.PolicyType.WitnessLimit)?.data;
2727
+ const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
2695
2728
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2696
2729
  const maxGas = getMaxGas({
2697
2730
  gasPerByte,
@@ -2724,7 +2757,7 @@ var calculateTransactionFee = (params) => {
2724
2757
  var import_configs10 = require("@fuel-ts/address/configs");
2725
2758
  var import_errors11 = require("@fuel-ts/errors");
2726
2759
  var import_math13 = require("@fuel-ts/math");
2727
- var import_transactions14 = require("@fuel-ts/transactions");
2760
+ var import_transactions15 = require("@fuel-ts/transactions");
2728
2761
 
2729
2762
  // src/providers/transaction-summary/call.ts
2730
2763
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2772,7 +2805,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2772
2805
 
2773
2806
  // src/providers/transaction-summary/input.ts
2774
2807
  var import_errors10 = require("@fuel-ts/errors");
2775
- var import_transactions12 = require("@fuel-ts/transactions");
2808
+ var import_transactions13 = require("@fuel-ts/transactions");
2776
2809
  function getInputsByTypes(inputs, types) {
2777
2810
  return inputs.filter((i) => types.includes(i.type));
2778
2811
  }
@@ -2780,16 +2813,16 @@ function getInputsByType(inputs, type) {
2780
2813
  return inputs.filter((i) => i.type === type);
2781
2814
  }
2782
2815
  function getInputsCoin(inputs) {
2783
- return getInputsByType(inputs, import_transactions12.InputType.Coin);
2816
+ return getInputsByType(inputs, import_transactions13.InputType.Coin);
2784
2817
  }
2785
2818
  function getInputsMessage(inputs) {
2786
- return getInputsByType(inputs, import_transactions12.InputType.Message);
2819
+ return getInputsByType(inputs, import_transactions13.InputType.Message);
2787
2820
  }
2788
2821
  function getInputsCoinAndMessage(inputs) {
2789
- return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
2822
+ return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2790
2823
  }
2791
2824
  function getInputsContract(inputs) {
2792
- return getInputsByType(inputs, import_transactions12.InputType.Contract);
2825
+ return getInputsByType(inputs, import_transactions13.InputType.Contract);
2793
2826
  }
2794
2827
  function getInputFromAssetId(inputs, assetId) {
2795
2828
  const coinInputs = getInputsCoin(inputs);
@@ -2808,7 +2841,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2808
2841
  if (!contractInput) {
2809
2842
  return void 0;
2810
2843
  }
2811
- if (contractInput.type !== import_transactions12.InputType.Contract) {
2844
+ if (contractInput.type !== import_transactions13.InputType.Contract) {
2812
2845
  throw new import_errors10.FuelError(
2813
2846
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
2814
2847
  `Contract input should be of type 'contract'.`
@@ -2817,31 +2850,31 @@ function getInputContractFromIndex(inputs, inputIndex) {
2817
2850
  return contractInput;
2818
2851
  }
2819
2852
  function getInputAccountAddress(input) {
2820
- if (input.type === import_transactions12.InputType.Coin) {
2853
+ if (input.type === import_transactions13.InputType.Coin) {
2821
2854
  return input.owner.toString();
2822
2855
  }
2823
- if (input.type === import_transactions12.InputType.Message) {
2856
+ if (input.type === import_transactions13.InputType.Message) {
2824
2857
  return input.recipient.toString();
2825
2858
  }
2826
2859
  return "";
2827
2860
  }
2828
2861
 
2829
2862
  // src/providers/transaction-summary/output.ts
2830
- var import_transactions13 = require("@fuel-ts/transactions");
2863
+ var import_transactions14 = require("@fuel-ts/transactions");
2831
2864
  function getOutputsByType(outputs, type) {
2832
2865
  return outputs.filter((o) => o.type === type);
2833
2866
  }
2834
2867
  function getOutputsContractCreated(outputs) {
2835
- return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
2868
+ return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
2836
2869
  }
2837
2870
  function getOutputsCoin(outputs) {
2838
- return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
2871
+ return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
2839
2872
  }
2840
2873
  function getOutputsChange(outputs) {
2841
- return getOutputsByType(outputs, import_transactions13.OutputType.Change);
2874
+ return getOutputsByType(outputs, import_transactions14.OutputType.Change);
2842
2875
  }
2843
2876
  function getOutputsContract(outputs) {
2844
- return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
2877
+ return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
2845
2878
  }
2846
2879
 
2847
2880
  // src/providers/transaction-summary/operations.ts
@@ -2850,11 +2883,11 @@ function getReceiptsByType(receipts, type) {
2850
2883
  }
2851
2884
  function getTransactionTypeName(transactionType) {
2852
2885
  switch (transactionType) {
2853
- case import_transactions14.TransactionType.Mint:
2886
+ case import_transactions15.TransactionType.Mint:
2854
2887
  return "Mint" /* Mint */;
2855
- case import_transactions14.TransactionType.Create:
2888
+ case import_transactions15.TransactionType.Create:
2856
2889
  return "Create" /* Create */;
2857
- case import_transactions14.TransactionType.Script:
2890
+ case import_transactions15.TransactionType.Script:
2858
2891
  return "Script" /* Script */;
2859
2892
  default:
2860
2893
  throw new import_errors11.FuelError(
@@ -2877,10 +2910,10 @@ function isTypeScript(transactionType) {
2877
2910
  return isType(transactionType, "Script" /* Script */);
2878
2911
  }
2879
2912
  function getReceiptsCall(receipts) {
2880
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
2913
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
2881
2914
  }
2882
2915
  function getReceiptsMessageOut(receipts) {
2883
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
2916
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
2884
2917
  }
2885
2918
  var mergeAssets = (op1, op2) => {
2886
2919
  const assets1 = op1.assetsSent || [];
@@ -3076,11 +3109,11 @@ function getTransferOperations({
3076
3109
  });
3077
3110
  const transferReceipts = getReceiptsByType(
3078
3111
  receipts,
3079
- import_transactions14.ReceiptType.Transfer
3112
+ import_transactions15.ReceiptType.Transfer
3080
3113
  );
3081
3114
  const transferOutReceipts = getReceiptsByType(
3082
3115
  receipts,
3083
- import_transactions14.ReceiptType.TransferOut
3116
+ import_transactions15.ReceiptType.TransferOut
3084
3117
  );
3085
3118
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3086
3119
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3165,17 +3198,17 @@ function getOperations({
3165
3198
  }
3166
3199
 
3167
3200
  // src/providers/transaction-summary/receipt.ts
3168
- var import_transactions15 = require("@fuel-ts/transactions");
3201
+ var import_transactions16 = require("@fuel-ts/transactions");
3169
3202
  var processGqlReceipt = (gqlReceipt) => {
3170
3203
  const receipt = assembleReceiptByType(gqlReceipt);
3171
3204
  switch (receipt.type) {
3172
- case import_transactions15.ReceiptType.ReturnData: {
3205
+ case import_transactions16.ReceiptType.ReturnData: {
3173
3206
  return {
3174
3207
  ...receipt,
3175
3208
  data: gqlReceipt.data || "0x"
3176
3209
  };
3177
3210
  }
3178
- case import_transactions15.ReceiptType.LogData: {
3211
+ case import_transactions16.ReceiptType.LogData: {
3179
3212
  return {
3180
3213
  ...receipt,
3181
3214
  data: gqlReceipt.data || "0x"
@@ -3188,7 +3221,7 @@ var processGqlReceipt = (gqlReceipt) => {
3188
3221
  var extractMintedAssetsFromReceipts = (receipts) => {
3189
3222
  const mintedAssets = [];
3190
3223
  receipts.forEach((receipt) => {
3191
- if (receipt.type === import_transactions15.ReceiptType.Mint) {
3224
+ if (receipt.type === import_transactions16.ReceiptType.Mint) {
3192
3225
  mintedAssets.push({
3193
3226
  subId: receipt.subId,
3194
3227
  contractId: receipt.contractId,
@@ -3202,7 +3235,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3202
3235
  var extractBurnedAssetsFromReceipts = (receipts) => {
3203
3236
  const burnedAssets = [];
3204
3237
  receipts.forEach((receipt) => {
3205
- if (receipt.type === import_transactions15.ReceiptType.Burn) {
3238
+ if (receipt.type === import_transactions16.ReceiptType.Burn) {
3206
3239
  burnedAssets.push({
3207
3240
  subId: receipt.subId,
3208
3241
  contractId: receipt.contractId,
@@ -3299,7 +3332,7 @@ function assembleTransactionSummary(params) {
3299
3332
  maxInputs
3300
3333
  });
3301
3334
  const typeName = getTransactionTypeName(transaction.type);
3302
- const tip = (0, import_math14.bn)(transaction.policies?.find((policy) => policy.type === import_transactions16.PolicyType.Tip)?.data);
3335
+ const tip = (0, import_math14.bn)(transaction.policies?.find((policy) => policy.type === import_transactions17.PolicyType.Tip)?.data);
3303
3336
  const { fee } = calculateTransactionFee({
3304
3337
  gasPrice,
3305
3338
  rawPayload,
@@ -3346,12 +3379,12 @@ function assembleTransactionSummary(params) {
3346
3379
 
3347
3380
  // src/providers/transaction-response/getDecodedLogs.ts
3348
3381
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3349
- var import_transactions17 = require("@fuel-ts/transactions");
3382
+ var import_transactions18 = require("@fuel-ts/transactions");
3350
3383
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3351
3384
  return receipts.reduce((logs, receipt) => {
3352
- if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
3385
+ if (receipt.type === import_transactions18.ReceiptType.LogData || receipt.type === import_transactions18.ReceiptType.Log) {
3353
3386
  const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
3354
- const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3387
+ const data = receipt.type === import_transactions18.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3355
3388
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3356
3389
  logs.push(decodedLog);
3357
3390
  }
@@ -3424,7 +3457,7 @@ var TransactionResponse = class {
3424
3457
  * @returns The decoded transaction.
3425
3458
  */
3426
3459
  decodeTransaction(transactionWithReceipts) {
3427
- return new import_transactions18.TransactionCoder().decode(
3460
+ return new import_transactions19.TransactionCoder().decode(
3428
3461
  (0, import_utils20.arrayify)(transactionWithReceipts.rawPayload),
3429
3462
  0
3430
3463
  )?.[0];
@@ -3784,6 +3817,21 @@ var _Provider = class {
3784
3817
  } = await this.operations.getVersion();
3785
3818
  return nodeVersion;
3786
3819
  }
3820
+ /**
3821
+ * @hidden
3822
+ *
3823
+ * Returns the network configuration of the connected Fuel node.
3824
+ *
3825
+ * @returns A promise that resolves to the network configuration object
3826
+ */
3827
+ async getNetwork() {
3828
+ const {
3829
+ name,
3830
+ consensusParameters: { chainId }
3831
+ } = await this.getChain();
3832
+ const network = new import_ethers.Network(name, chainId.toNumber());
3833
+ return Promise.resolve(network);
3834
+ }
3787
3835
  /**
3788
3836
  * Returns the block number.
3789
3837
  *
@@ -3860,7 +3908,7 @@ var _Provider = class {
3860
3908
  }
3861
3909
  const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
3862
3910
  let abis;
3863
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
3911
+ if (transactionRequest.type === import_transactions20.TransactionType.Script) {
3864
3912
  abis = transactionRequest.abis;
3865
3913
  }
3866
3914
  if (awaitExecution) {
@@ -3952,7 +4000,7 @@ var _Provider = class {
3952
4000
  * @returns A promise.
3953
4001
  */
3954
4002
  async estimateTxDependencies(transactionRequest) {
3955
- if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4003
+ if (transactionRequest.type === import_transactions20.TransactionType.Create) {
3956
4004
  return {
3957
4005
  receipts: [],
3958
4006
  outputVariables: 0,
@@ -4016,7 +4064,7 @@ var _Provider = class {
4016
4064
  const allRequests = (0, import_ramda3.clone)(transactionRequests);
4017
4065
  const serializedTransactionsMap = /* @__PURE__ */ new Map();
4018
4066
  allRequests.forEach((req, index) => {
4019
- if (req.type === import_transactions19.TransactionType.Script) {
4067
+ if (req.type === import_transactions20.TransactionType.Script) {
4020
4068
  serializedTransactionsMap.set(index, (0, import_utils22.hexlify)(req.toTransactionBytes()));
4021
4069
  }
4022
4070
  });
@@ -4042,7 +4090,7 @@ var _Provider = class {
4042
4090
  );
4043
4091
  const hasMissingOutputs = missingOutputVariables.length > 0 || missingOutputContractIds.length > 0;
4044
4092
  const request = allRequests[requestIdx];
4045
- if (hasMissingOutputs && request?.type === import_transactions19.TransactionType.Script) {
4093
+ if (hasMissingOutputs && request?.type === import_transactions20.TransactionType.Script) {
4046
4094
  result.outputVariables += missingOutputVariables.length;
4047
4095
  request.addVariableOutputs(missingOutputVariables.length);
4048
4096
  missingOutputContractIds.forEach(({ contractId }) => {
@@ -4098,7 +4146,7 @@ var _Provider = class {
4098
4146
  tip: transactionRequest.tip
4099
4147
  }).add(1);
4100
4148
  let gasLimit = (0, import_math16.bn)(0);
4101
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4149
+ if (transactionRequest.type === import_transactions20.TransactionType.Script) {
4102
4150
  gasLimit = transactionRequest.gasLimit;
4103
4151
  if (transactionRequest.gasLimit.eq(0)) {
4104
4152
  transactionRequest.gasLimit = minGas;
@@ -4168,7 +4216,7 @@ var _Provider = class {
4168
4216
  */
4169
4217
  async getTransactionCost(transactionRequestLike, { resourcesOwner, signatureCallback, quantitiesToContract = [] } = {}) {
4170
4218
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4171
- const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4219
+ const isScriptTransaction = txRequestClone.type === import_transactions20.TransactionType.Script;
4172
4220
  const baseAssetId = this.getBaseAssetId();
4173
4221
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4174
4222
  const allQuantities = mergeQuantities(coinOutputsQuantities, quantitiesToContract);
@@ -4392,7 +4440,7 @@ var _Provider = class {
4392
4440
  time: block.header.time,
4393
4441
  transactionIds: block.transactions.map((tx) => tx.id),
4394
4442
  transactions: block.transactions.map(
4395
- (tx) => new import_transactions19.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
4443
+ (tx) => new import_transactions20.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
4396
4444
  )
4397
4445
  };
4398
4446
  }
@@ -4407,7 +4455,7 @@ var _Provider = class {
4407
4455
  if (!transaction) {
4408
4456
  return null;
4409
4457
  }
4410
- return new import_transactions19.TransactionCoder().decode(
4458
+ return new import_transactions20.TransactionCoder().decode(
4411
4459
  (0, import_utils22.arrayify)(transaction.rawPayload),
4412
4460
  0
4413
4461
  )?.[0];
@@ -4487,7 +4535,7 @@ var _Provider = class {
4487
4535
  });
4488
4536
  const messages = result.messages.edges.map((edge) => edge.node);
4489
4537
  return messages.map((message) => ({
4490
- messageId: import_transactions19.InputMessageCoder.getMessageId({
4538
+ messageId: import_transactions20.InputMessageCoder.getMessageId({
4491
4539
  sender: message.sender,
4492
4540
  recipient: message.recipient,
4493
4541
  nonce: message.nonce,
@@ -4498,7 +4546,7 @@ var _Provider = class {
4498
4546
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4499
4547
  nonce: message.nonce,
4500
4548
  amount: (0, import_math16.bn)(message.amount),
4501
- data: import_transactions19.InputMessageCoder.decodeData(message.data),
4549
+ data: import_transactions20.InputMessageCoder.decodeData(message.data),
4502
4550
  daHeight: (0, import_math16.bn)(message.daHeight)
4503
4551
  }));
4504
4552
  }
@@ -4634,6 +4682,19 @@ var _Provider = class {
4634
4682
  async getTransactionResponse(transactionId) {
4635
4683
  return new TransactionResponse(transactionId, this);
4636
4684
  }
4685
+ /**
4686
+ * Returns Message for given nonce.
4687
+ *
4688
+ * @param nonce - The nonce of the message to retrieve.
4689
+ * @returns A promise that resolves to the Message object.
4690
+ */
4691
+ async getMessageByNonce(nonce) {
4692
+ const { message } = await this.operations.getMessageByNonce({ nonce });
4693
+ if (!message) {
4694
+ return null;
4695
+ }
4696
+ return message;
4697
+ }
4637
4698
  };
4638
4699
  var Provider = _Provider;
4639
4700
  _cacheInputs = new WeakSet();
@@ -4642,7 +4703,7 @@ cacheInputs_fn = function(inputs) {
4642
4703
  return;
4643
4704
  }
4644
4705
  inputs.forEach((input) => {
4645
- if (input.type === import_transactions19.InputType.Coin) {
4706
+ if (input.type === import_transactions20.InputType.Coin) {
4646
4707
  this.cache?.set(input.id);
4647
4708
  }
4648
4709
  });
@@ -4653,7 +4714,7 @@ __publicField(Provider, "nodeInfoCache", {});
4653
4714
  // src/providers/transaction-summary/get-transaction-summary.ts
4654
4715
  var import_errors15 = require("@fuel-ts/errors");
4655
4716
  var import_math17 = require("@fuel-ts/math");
4656
- var import_transactions20 = require("@fuel-ts/transactions");
4717
+ var import_transactions21 = require("@fuel-ts/transactions");
4657
4718
  var import_utils25 = require("@fuel-ts/utils");
4658
4719
 
4659
4720
  // src/providers/chains.ts
@@ -5471,14 +5532,14 @@ var import_errors20 = require("@fuel-ts/errors");
5471
5532
  var import_hasher6 = require("@fuel-ts/hasher");
5472
5533
  var import_math21 = require("@fuel-ts/math");
5473
5534
  var import_utils34 = require("@fuel-ts/utils");
5474
- var import_ethers2 = require("ethers");
5535
+ var import_ethers3 = require("ethers");
5475
5536
 
5476
5537
  // src/mnemonic/mnemonic.ts
5477
5538
  var import_crypto4 = require("@fuel-ts/crypto");
5478
5539
  var import_errors19 = require("@fuel-ts/errors");
5479
5540
  var import_hasher5 = require("@fuel-ts/hasher");
5480
5541
  var import_utils32 = require("@fuel-ts/utils");
5481
- var import_ethers = require("ethers");
5542
+ var import_ethers2 = require("ethers");
5482
5543
 
5483
5544
  // src/wordlists/words/english.ts
5484
5545
  var english = [
@@ -7726,7 +7787,7 @@ var Mnemonic = class {
7726
7787
  assertMnemonic(getWords(phrase));
7727
7788
  const phraseBytes = toUtf8Bytes(getPhrase(phrase));
7728
7789
  const salt = toUtf8Bytes(`mnemonic${passphrase}`);
7729
- return (0, import_ethers.pbkdf2)(phraseBytes, salt, 2048, 64, "sha512");
7790
+ return (0, import_ethers2.pbkdf2)(phraseBytes, salt, 2048, 64, "sha512");
7730
7791
  }
7731
7792
  /**
7732
7793
  * @param phrase - Mnemonic phrase composed by words from the provided wordlist
@@ -7788,7 +7849,7 @@ var Mnemonic = class {
7788
7849
  `Seed length should be between 16 and 64 bytes, but received ${seedArray.length} bytes.`
7789
7850
  );
7790
7851
  }
7791
- return (0, import_utils32.arrayify)((0, import_ethers.computeHmac)("sha512", MasterSecret, seedArray));
7852
+ return (0, import_utils32.arrayify)((0, import_ethers2.computeHmac)("sha512", MasterSecret, seedArray));
7792
7853
  }
7793
7854
  /**
7794
7855
  * Get the extendKey as defined on BIP-32 from the provided seed
@@ -7813,8 +7874,8 @@ var Mnemonic = class {
7813
7874
  chainCode,
7814
7875
  (0, import_utils32.concat)(["0x00", privateKey])
7815
7876
  ]);
7816
- const checksum = (0, import_ethers.dataSlice)((0, import_hasher5.sha256)((0, import_hasher5.sha256)(extendedKey)), 0, 4);
7817
- return (0, import_ethers.encodeBase58)((0, import_utils32.concat)([extendedKey, checksum]));
7877
+ const checksum = (0, import_ethers2.dataSlice)((0, import_hasher5.sha256)((0, import_hasher5.sha256)(extendedKey)), 0, 4);
7878
+ return (0, import_ethers2.encodeBase58)((0, import_utils32.concat)([extendedKey, checksum]));
7818
7879
  }
7819
7880
  /**
7820
7881
  * Create a new mnemonic using a randomly generated number as entropy.
@@ -7842,7 +7903,7 @@ var MainnetPUB = (0, import_utils34.hexlify)("0x0488b21e");
7842
7903
  var TestnetPRV2 = (0, import_utils34.hexlify)("0x04358394");
7843
7904
  var TestnetPUB = (0, import_utils34.hexlify)("0x043587cf");
7844
7905
  function base58check(data) {
7845
- return (0, import_ethers2.encodeBase58)((0, import_utils34.concat)([data, (0, import_ethers2.dataSlice)((0, import_hasher6.sha256)((0, import_hasher6.sha256)(data)), 0, 4)]));
7906
+ return (0, import_ethers3.encodeBase58)((0, import_utils34.concat)([data, (0, import_ethers3.dataSlice)((0, import_hasher6.sha256)((0, import_hasher6.sha256)(data)), 0, 4)]));
7846
7907
  }
7847
7908
  function getExtendedKeyPrefix(isPublic = false, testnet = false) {
7848
7909
  if (isPublic) {
@@ -7898,7 +7959,7 @@ var HDWallet = class {
7898
7959
  this.publicKey = (0, import_utils34.hexlify)(config.publicKey);
7899
7960
  }
7900
7961
  this.parentFingerprint = config.parentFingerprint || this.parentFingerprint;
7901
- this.fingerprint = (0, import_ethers2.dataSlice)((0, import_ethers2.ripemd160)((0, import_hasher6.sha256)(this.publicKey)), 0, 4);
7962
+ this.fingerprint = (0, import_ethers3.dataSlice)((0, import_ethers3.ripemd160)((0, import_hasher6.sha256)(this.publicKey)), 0, 4);
7902
7963
  this.depth = config.depth || this.depth;
7903
7964
  this.index = config.index || this.index;
7904
7965
  this.chainCode = config.chainCode;
@@ -7930,7 +7991,7 @@ var HDWallet = class {
7930
7991
  data.set((0, import_utils34.arrayify)(this.publicKey));
7931
7992
  }
7932
7993
  data.set((0, import_math21.toBytes)(index, 4), 33);
7933
- const bytes = (0, import_utils34.arrayify)((0, import_ethers2.computeHmac)("sha512", chainCode, data));
7994
+ const bytes = (0, import_utils34.arrayify)((0, import_ethers3.computeHmac)("sha512", chainCode, data));
7934
7995
  const IL = bytes.slice(0, 32);
7935
7996
  const IR = bytes.slice(32);
7936
7997
  if (privateKey) {
@@ -8001,7 +8062,7 @@ var HDWallet = class {
8001
8062
  });
8002
8063
  }
8003
8064
  static fromExtendedKey(extendedKey) {
8004
- const decoded = (0, import_ethers2.toBeHex)((0, import_ethers2.decodeBase58)(extendedKey));
8065
+ const decoded = (0, import_ethers3.toBeHex)((0, import_ethers3.decodeBase58)(extendedKey));
8005
8066
  const bytes = (0, import_utils34.arrayify)(decoded);
8006
8067
  const validChecksum = base58check(bytes.slice(0, 78)) === extendedKey;
8007
8068
  if (bytes.length !== 82 || !isValidExtendedKey(bytes)) {
@@ -8201,16 +8262,21 @@ __publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
8201
8262
 
8202
8263
  // src/test-utils/seedTestWallet.ts
8203
8264
  var import_crypto5 = require("@fuel-ts/crypto");
8204
- var seedTestWallet = async (wallet, quantities) => {
8265
+ var seedTestWallet = async (wallet, quantities, utxosAmount = 1) => {
8266
+ const toFundAccounts = Array.isArray(wallet) ? wallet : [wallet];
8205
8267
  const genesisWallet = new WalletUnlocked(
8206
8268
  process.env.GENESIS_SECRET || (0, import_crypto5.randomBytes)(32),
8207
- wallet.provider
8269
+ // Connect to the same Provider as wallet
8270
+ toFundAccounts[0].provider
8208
8271
  );
8209
8272
  const request = new ScriptTransactionRequest();
8210
- quantities.forEach((quantity) => {
8211
- const { amount, assetId } = coinQuantityfy(quantity);
8212
- request.addCoinOutput(wallet.address, amount, assetId);
8213
- });
8273
+ quantities.map(coinQuantityfy).forEach(
8274
+ ({ amount, assetId }) => toFundAccounts.forEach(({ address }) => {
8275
+ for (let i = 0; i < utxosAmount; i++) {
8276
+ request.addCoinOutput(address, amount.div(utxosAmount), assetId);
8277
+ }
8278
+ })
8279
+ );
8214
8280
  const txCost = await genesisWallet.provider.getTransactionCost(request);
8215
8281
  request.gasLimit = txCost.gasUsed;
8216
8282
  request.maxFee = txCost.maxFee;
@@ -8432,8 +8498,45 @@ var launchNodeAndGetWallets = async ({
8432
8498
  };
8433
8499
  return { wallets, stop: cleanup, provider };
8434
8500
  };
8501
+
8502
+ // src/test-utils/transactionRequest.ts
8503
+ var import_abi_coder8 = require("@fuel-ts/abi-coder");
8504
+ var import_address7 = require("@fuel-ts/address");
8505
+ var import_configs11 = require("@fuel-ts/address/configs");
8506
+ var import_crypto8 = require("@fuel-ts/crypto");
8507
+ var import_math22 = require("@fuel-ts/math");
8508
+ var import_transactions22 = require("@fuel-ts/transactions");
8509
+ var import_utils36 = require("@fuel-ts/utils");
8510
+ var generateFakeRequestInputCoin = (partial = {}) => ({
8511
+ id: (0, import_utils36.hexlify)((0, import_crypto8.randomBytes)(import_abi_coder8.UTXO_ID_LEN)),
8512
+ type: import_transactions22.InputType.Coin,
8513
+ owner: (0, import_address7.getRandomB256)(),
8514
+ amount: (0, import_math22.bn)(100),
8515
+ assetId: import_configs11.ZeroBytes32,
8516
+ txPointer: "0x00000000000000000000000000000000",
8517
+ witnessIndex: 0,
8518
+ ...partial
8519
+ });
8520
+ var generateFakeRequestInputMessage = (partial = {}) => ({
8521
+ nonce: (0, import_address7.getRandomB256)(),
8522
+ type: import_transactions22.InputType.Message,
8523
+ sender: (0, import_address7.getRandomB256)(),
8524
+ recipient: (0, import_address7.getRandomB256)(),
8525
+ amount: (0, import_math22.bn)(100),
8526
+ witnessIndex: 0,
8527
+ ...partial
8528
+ });
8529
+ var generateFakeRequestInputContract = (partial = {}) => ({
8530
+ contractId: (0, import_address7.getRandomB256)(),
8531
+ type: import_transactions22.InputType.Contract,
8532
+ txPointer: "0x00000000000000000000000000000000",
8533
+ ...partial
8534
+ });
8435
8535
  // Annotate the CommonJS export names for ESM import in node:
8436
8536
  0 && (module.exports = {
8537
+ generateFakeRequestInputCoin,
8538
+ generateFakeRequestInputContract,
8539
+ generateFakeRequestInputMessage,
8437
8540
  generateTestWallet,
8438
8541
  killNode,
8439
8542
  launchNode,