@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
package/dist/index.js CHANGED
@@ -88,7 +88,7 @@ __export(src_exports, {
88
88
  StorageAbstract: () => StorageAbstract,
89
89
  TransactionResponse: () => TransactionResponse,
90
90
  TransactionStatus: () => TransactionStatus,
91
- TransactionType: () => import_transactions6.TransactionType,
91
+ TransactionType: () => import_transactions7.TransactionType,
92
92
  TransactionTypeName: () => TransactionTypeName,
93
93
  Vault: () => Vault,
94
94
  Wallet: () => Wallet,
@@ -104,6 +104,7 @@ __export(src_exports, {
104
104
  assets: () => assets,
105
105
  buildBlockExplorerUrl: () => buildBlockExplorerUrl,
106
106
  cacheFor: () => cacheFor,
107
+ cacheResources: () => cacheResources,
107
108
  cacheTxInputsFromOwner: () => cacheTxInputsFromOwner,
108
109
  calculateGasFee: () => calculateGasFee,
109
110
  calculateMetadataGasForTxCreate: () => calculateMetadataGasForTxCreate,
@@ -151,6 +152,7 @@ __export(src_exports, {
151
152
  getReceiptsMessageOut: () => getReceiptsMessageOut,
152
153
  getReceiptsTransferOut: () => getReceiptsTransferOut,
153
154
  getReceiptsWithMissingData: () => getReceiptsWithMissingData,
155
+ getRequestInputResourceOwner: () => getRequestInputResourceOwner,
154
156
  getTransactionStatusName: () => getTransactionStatusName,
155
157
  getTransactionSummary: () => getTransactionSummary,
156
158
  getTransactionSummaryFromRequest: () => getTransactionSummaryFromRequest,
@@ -164,6 +166,10 @@ __export(src_exports, {
164
166
  isMessage: () => isMessage,
165
167
  isRawCoin: () => isRawCoin,
166
168
  isRawMessage: () => isRawMessage,
169
+ isRequestInputCoin: () => isRequestInputCoin,
170
+ isRequestInputMessage: () => isRequestInputMessage,
171
+ isRequestInputResource: () => isRequestInputResource,
172
+ isRequestInputResourceFromOwner: () => isRequestInputResourceFromOwner,
167
173
  isType: () => isType,
168
174
  isTypeCreate: () => isTypeCreate,
169
175
  isTypeMint: () => isTypeMint,
@@ -230,10 +236,11 @@ var addAmountToCoinQuantities = (params) => {
230
236
  var import_address3 = require("@fuel-ts/address");
231
237
  var import_errors14 = require("@fuel-ts/errors");
232
238
  var import_math16 = require("@fuel-ts/math");
233
- var import_transactions19 = require("@fuel-ts/transactions");
239
+ var import_transactions20 = require("@fuel-ts/transactions");
234
240
  var import_utils22 = require("@fuel-ts/utils");
235
241
  var import_versions = require("@fuel-ts/versions");
236
242
  var import_utils23 = require("@noble/curves/abstract/utils");
243
+ var import_ethers = require("ethers");
237
244
  var import_graphql_request = require("graphql-request");
238
245
  var import_ramda3 = require("ramda");
239
246
 
@@ -1008,6 +1015,13 @@ var ProduceBlocksDocument = import_graphql_tag.default`
1008
1015
  )
1009
1016
  }
1010
1017
  `;
1018
+ var GetMessageByNonceDocument = import_graphql_tag.default`
1019
+ query getMessageByNonce($nonce: Nonce!) {
1020
+ message(nonce: $nonce) {
1021
+ ...messageFragment
1022
+ }
1023
+ }
1024
+ ${MessageFragmentFragmentDoc}`;
1011
1025
  var SubmitAndAwaitDocument = import_graphql_tag.default`
1012
1026
  subscription submitAndAwait($encodedTransaction: HexString!) {
1013
1027
  submitAndAwait(tx: $encodedTransaction) {
@@ -1102,6 +1116,9 @@ function getSdk(requester) {
1102
1116
  produceBlocks(variables, options) {
1103
1117
  return requester(ProduceBlocksDocument, variables, options);
1104
1118
  },
1119
+ getMessageByNonce(variables, options) {
1120
+ return requester(GetMessageByNonceDocument, variables, options);
1121
+ },
1105
1122
  submitAndAwait(variables, options) {
1106
1123
  return requester(SubmitAndAwaitDocument, variables, options);
1107
1124
  },
@@ -1387,7 +1404,7 @@ var import_address = require("@fuel-ts/address");
1387
1404
  var import_configs6 = require("@fuel-ts/address/configs");
1388
1405
  var import_crypto = require("@fuel-ts/crypto");
1389
1406
  var import_math7 = require("@fuel-ts/math");
1390
- var import_transactions6 = require("@fuel-ts/transactions");
1407
+ var import_transactions7 = require("@fuel-ts/transactions");
1391
1408
  var import_utils9 = require("@fuel-ts/utils");
1392
1409
 
1393
1410
  // src/providers/resource.ts
@@ -1895,6 +1912,28 @@ var NoWitnessByOwnerError = class extends Error {
1895
1912
  name = "NoWitnessByOwnerError";
1896
1913
  };
1897
1914
 
1915
+ // src/providers/transaction-request/helpers.ts
1916
+ var import_transactions6 = require("@fuel-ts/transactions");
1917
+ var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
1918
+ var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
1919
+ var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
1920
+ var getRequestInputResourceOwner = (input) => isRequestInputCoin(input) ? input.owner : input.recipient;
1921
+ var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
1922
+ var cacheResources = (resources) => resources.reduce(
1923
+ (cache2, resource) => {
1924
+ if (isCoin(resource)) {
1925
+ cache2.utxos.push(resource.id);
1926
+ } else {
1927
+ cache2.messages.push(resource.nonce);
1928
+ }
1929
+ return cache2;
1930
+ },
1931
+ {
1932
+ utxos: [],
1933
+ messages: []
1934
+ }
1935
+ );
1936
+
1898
1937
  // src/providers/transaction-request/witness.ts
1899
1938
  var import_utils8 = require("@fuel-ts/utils");
1900
1939
  var witnessify = (value) => {
@@ -1947,20 +1986,20 @@ var BaseTransactionRequest = class {
1947
1986
  let policyTypes = 0;
1948
1987
  const policies = [];
1949
1988
  if (req.tip) {
1950
- policyTypes += import_transactions6.PolicyType.Tip;
1951
- policies.push({ data: req.tip, type: import_transactions6.PolicyType.Tip });
1989
+ policyTypes += import_transactions7.PolicyType.Tip;
1990
+ policies.push({ data: req.tip, type: import_transactions7.PolicyType.Tip });
1952
1991
  }
1953
1992
  if (req.witnessLimit) {
1954
- policyTypes += import_transactions6.PolicyType.WitnessLimit;
1955
- policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
1993
+ policyTypes += import_transactions7.PolicyType.WitnessLimit;
1994
+ policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
1956
1995
  }
1957
1996
  if (req.maturity > 0) {
1958
- policyTypes += import_transactions6.PolicyType.Maturity;
1959
- policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
1997
+ policyTypes += import_transactions7.PolicyType.Maturity;
1998
+ policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
1960
1999
  }
1961
2000
  if (req.maxFee) {
1962
- policyTypes += import_transactions6.PolicyType.MaxFee;
1963
- policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
2001
+ policyTypes += import_transactions7.PolicyType.MaxFee;
2002
+ policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
1964
2003
  }
1965
2004
  return {
1966
2005
  policyTypes,
@@ -1994,7 +2033,7 @@ var BaseTransactionRequest = class {
1994
2033
  * @returns The transaction bytes.
1995
2034
  */
1996
2035
  toTransactionBytes() {
1997
- return new import_transactions6.TransactionCoder().encode(this.toTransaction());
2036
+ return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1998
2037
  }
1999
2038
  /**
2000
2039
  * @hidden
@@ -2085,7 +2124,7 @@ var BaseTransactionRequest = class {
2085
2124
  */
2086
2125
  getCoinInputs() {
2087
2126
  return this.inputs.filter(
2088
- (input) => input.type === import_transactions6.InputType.Coin
2127
+ (input) => input.type === import_transactions7.InputType.Coin
2089
2128
  );
2090
2129
  }
2091
2130
  /**
@@ -2095,7 +2134,7 @@ var BaseTransactionRequest = class {
2095
2134
  */
2096
2135
  getCoinOutputs() {
2097
2136
  return this.outputs.filter(
2098
- (output) => output.type === import_transactions6.OutputType.Coin
2137
+ (output) => output.type === import_transactions7.OutputType.Coin
2099
2138
  );
2100
2139
  }
2101
2140
  /**
@@ -2105,7 +2144,7 @@ var BaseTransactionRequest = class {
2105
2144
  */
2106
2145
  getChangeOutputs() {
2107
2146
  return this.outputs.filter(
2108
- (output) => output.type === import_transactions6.OutputType.Change
2147
+ (output) => output.type === import_transactions7.OutputType.Change
2109
2148
  );
2110
2149
  }
2111
2150
  /**
@@ -2117,9 +2156,9 @@ var BaseTransactionRequest = class {
2117
2156
  const ownerAddress = (0, import_address.addressify)(owner);
2118
2157
  const found = this.inputs.find((input) => {
2119
2158
  switch (input.type) {
2120
- case import_transactions6.InputType.Coin:
2159
+ case import_transactions7.InputType.Coin:
2121
2160
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
2122
- case import_transactions6.InputType.Message:
2161
+ case import_transactions7.InputType.Message:
2123
2162
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
2124
2163
  default:
2125
2164
  return false;
@@ -2134,7 +2173,7 @@ var BaseTransactionRequest = class {
2134
2173
  * @param coin - Coin resource.
2135
2174
  */
2136
2175
  addCoinInput(coin) {
2137
- const { assetId, owner, amount } = coin;
2176
+ const { assetId, owner, amount, id, predicate } = coin;
2138
2177
  let witnessIndex;
2139
2178
  if (coin.predicate) {
2140
2179
  witnessIndex = 0;
@@ -2145,13 +2184,14 @@ var BaseTransactionRequest = class {
2145
2184
  }
2146
2185
  }
2147
2186
  const input = {
2148
- ...coin,
2149
- type: import_transactions6.InputType.Coin,
2187
+ id,
2188
+ type: import_transactions7.InputType.Coin,
2150
2189
  owner: owner.toB256(),
2151
2190
  amount,
2152
2191
  assetId,
2153
2192
  txPointer: "0x00000000000000000000000000000000",
2154
- witnessIndex
2193
+ witnessIndex,
2194
+ predicate
2155
2195
  };
2156
2196
  this.pushInput(input);
2157
2197
  this.addChangeOutput(owner, assetId);
@@ -2163,7 +2203,7 @@ var BaseTransactionRequest = class {
2163
2203
  * @param message - Message resource.
2164
2204
  */
2165
2205
  addMessageInput(message) {
2166
- const { recipient, sender, amount, assetId } = message;
2206
+ const { recipient, sender, amount, predicate, nonce, assetId } = message;
2167
2207
  let witnessIndex;
2168
2208
  if (message.predicate) {
2169
2209
  witnessIndex = 0;
@@ -2174,12 +2214,13 @@ var BaseTransactionRequest = class {
2174
2214
  }
2175
2215
  }
2176
2216
  const input = {
2177
- ...message,
2178
- type: import_transactions6.InputType.Message,
2217
+ nonce,
2218
+ type: import_transactions7.InputType.Message,
2179
2219
  sender: sender.toB256(),
2180
2220
  recipient: recipient.toB256(),
2181
2221
  amount,
2182
- witnessIndex
2222
+ witnessIndex,
2223
+ predicate
2183
2224
  };
2184
2225
  this.pushInput(input);
2185
2226
  this.addChangeOutput(recipient, assetId);
@@ -2219,7 +2260,7 @@ var BaseTransactionRequest = class {
2219
2260
  */
2220
2261
  addCoinOutput(to, amount, assetId) {
2221
2262
  this.pushOutput({
2222
- type: import_transactions6.OutputType.Coin,
2263
+ type: import_transactions7.OutputType.Coin,
2223
2264
  to: (0, import_address.addressify)(to).toB256(),
2224
2265
  amount,
2225
2266
  assetId
@@ -2235,7 +2276,7 @@ var BaseTransactionRequest = class {
2235
2276
  addCoinOutputs(to, quantities) {
2236
2277
  quantities.map(coinQuantityfy).forEach((quantity) => {
2237
2278
  this.pushOutput({
2238
- type: import_transactions6.OutputType.Coin,
2279
+ type: import_transactions7.OutputType.Coin,
2239
2280
  to: (0, import_address.addressify)(to).toB256(),
2240
2281
  amount: quantity.amount,
2241
2282
  assetId: quantity.assetId
@@ -2255,7 +2296,7 @@ var BaseTransactionRequest = class {
2255
2296
  );
2256
2297
  if (!changeOutput) {
2257
2298
  this.pushOutput({
2258
- type: import_transactions6.OutputType.Change,
2299
+ type: import_transactions7.OutputType.Change,
2259
2300
  to: (0, import_address.addressify)(to).toB256(),
2260
2301
  assetId
2261
2302
  });
@@ -2363,16 +2404,27 @@ var BaseTransactionRequest = class {
2363
2404
  toJSON() {
2364
2405
  return normalizeJSON(this);
2365
2406
  }
2407
+ removeWitness(index) {
2408
+ this.witnesses.splice(index, 1);
2409
+ this.adjustWitnessIndexes(index);
2410
+ }
2411
+ adjustWitnessIndexes(removedIndex) {
2412
+ this.inputs.filter(isRequestInputResource).forEach((input) => {
2413
+ if (input.witnessIndex > removedIndex) {
2414
+ input.witnessIndex -= 1;
2415
+ }
2416
+ });
2417
+ }
2366
2418
  updatePredicateGasUsed(inputs) {
2367
2419
  this.inputs.forEach((i) => {
2368
2420
  let correspondingInput;
2369
2421
  switch (i.type) {
2370
- case import_transactions6.InputType.Coin:
2371
- correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
2422
+ case import_transactions7.InputType.Coin:
2423
+ correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
2372
2424
  break;
2373
- case import_transactions6.InputType.Message:
2425
+ case import_transactions7.InputType.Message:
2374
2426
  correspondingInput = inputs.find(
2375
- (x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
2427
+ (x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
2376
2428
  );
2377
2429
  break;
2378
2430
  default:
@@ -2399,25 +2451,25 @@ var BaseTransactionRequest = class {
2399
2451
  // src/providers/transaction-request/create-transaction-request.ts
2400
2452
  var import_configs8 = require("@fuel-ts/address/configs");
2401
2453
  var import_math9 = require("@fuel-ts/math");
2402
- var import_transactions8 = require("@fuel-ts/transactions");
2454
+ var import_transactions9 = require("@fuel-ts/transactions");
2403
2455
  var import_utils13 = require("@fuel-ts/utils");
2404
2456
 
2405
2457
  // src/providers/transaction-request/hash-transaction.ts
2406
2458
  var import_configs7 = require("@fuel-ts/address/configs");
2407
2459
  var import_hasher = require("@fuel-ts/hasher");
2408
2460
  var import_math8 = require("@fuel-ts/math");
2409
- var import_transactions7 = require("@fuel-ts/transactions");
2461
+ var import_transactions8 = require("@fuel-ts/transactions");
2410
2462
  var import_utils11 = require("@fuel-ts/utils");
2411
2463
  var import_ramda2 = require("ramda");
2412
2464
  function hashTransaction(transactionRequest, chainId) {
2413
2465
  const transaction = transactionRequest.toTransaction();
2414
- if (transaction.type === import_transactions7.TransactionType.Script) {
2466
+ if (transaction.type === import_transactions8.TransactionType.Script) {
2415
2467
  transaction.receiptsRoot = import_configs7.ZeroBytes32;
2416
2468
  }
2417
2469
  transaction.inputs = transaction.inputs.map((input) => {
2418
2470
  const inputClone = (0, import_ramda2.clone)(input);
2419
2471
  switch (inputClone.type) {
2420
- case import_transactions7.InputType.Coin: {
2472
+ case import_transactions8.InputType.Coin: {
2421
2473
  inputClone.txPointer = {
2422
2474
  blockHeight: 0,
2423
2475
  txIndex: 0
@@ -2425,11 +2477,11 @@ function hashTransaction(transactionRequest, chainId) {
2425
2477
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2426
2478
  return inputClone;
2427
2479
  }
2428
- case import_transactions7.InputType.Message: {
2480
+ case import_transactions8.InputType.Message: {
2429
2481
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2430
2482
  return inputClone;
2431
2483
  }
2432
- case import_transactions7.InputType.Contract: {
2484
+ case import_transactions8.InputType.Contract: {
2433
2485
  inputClone.txPointer = {
2434
2486
  blockHeight: 0,
2435
2487
  txIndex: 0
@@ -2447,16 +2499,16 @@ function hashTransaction(transactionRequest, chainId) {
2447
2499
  transaction.outputs = transaction.outputs.map((output) => {
2448
2500
  const outputClone = (0, import_ramda2.clone)(output);
2449
2501
  switch (outputClone.type) {
2450
- case import_transactions7.OutputType.Contract: {
2502
+ case import_transactions8.OutputType.Contract: {
2451
2503
  outputClone.balanceRoot = import_configs7.ZeroBytes32;
2452
2504
  outputClone.stateRoot = import_configs7.ZeroBytes32;
2453
2505
  return outputClone;
2454
2506
  }
2455
- case import_transactions7.OutputType.Change: {
2507
+ case import_transactions8.OutputType.Change: {
2456
2508
  outputClone.amount = (0, import_math8.bn)(0);
2457
2509
  return outputClone;
2458
2510
  }
2459
- case import_transactions7.OutputType.Variable: {
2511
+ case import_transactions8.OutputType.Variable: {
2460
2512
  outputClone.to = import_configs7.ZeroBytes32;
2461
2513
  outputClone.amount = (0, import_math8.bn)(0);
2462
2514
  outputClone.assetId = import_configs7.ZeroBytes32;
@@ -2469,7 +2521,7 @@ function hashTransaction(transactionRequest, chainId) {
2469
2521
  transaction.witnessesCount = 0;
2470
2522
  transaction.witnesses = [];
2471
2523
  const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
2472
- const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
2524
+ const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
2473
2525
  return (0, import_hasher.sha256)(concatenatedData);
2474
2526
  }
2475
2527
 
@@ -2505,7 +2557,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2505
2557
  return new this(obj);
2506
2558
  }
2507
2559
  /** Type of the transaction */
2508
- type = import_transactions8.TransactionType.Create;
2560
+ type = import_transactions9.TransactionType.Create;
2509
2561
  /** Witness index of contract bytecode to create */
2510
2562
  bytecodeWitnessIndex;
2511
2563
  /** Salt */
@@ -2533,7 +2585,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2533
2585
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2534
2586
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2535
2587
  return {
2536
- type: import_transactions8.TransactionType.Create,
2588
+ type: import_transactions9.TransactionType.Create,
2537
2589
  ...baseTransaction,
2538
2590
  bytecodeWitnessIndex,
2539
2591
  storageSlotsCount: (0, import_math9.bn)(storageSlots.length),
@@ -2548,7 +2600,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2548
2600
  */
2549
2601
  getContractCreatedOutputs() {
2550
2602
  return this.outputs.filter(
2551
- (output) => output.type === import_transactions8.OutputType.ContractCreated
2603
+ (output) => output.type === import_transactions9.OutputType.ContractCreated
2552
2604
  );
2553
2605
  }
2554
2606
  /**
@@ -2569,7 +2621,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2569
2621
  */
2570
2622
  addContractCreatedOutput(contractId, stateRoot) {
2571
2623
  this.pushOutput({
2572
- type: import_transactions8.OutputType.ContractCreated,
2624
+ type: import_transactions9.OutputType.ContractCreated,
2573
2625
  contractId,
2574
2626
  stateRoot
2575
2627
  });
@@ -2589,7 +2641,7 @@ var import_abi_coder3 = require("@fuel-ts/abi-coder");
2589
2641
  var import_address2 = require("@fuel-ts/address");
2590
2642
  var import_configs9 = require("@fuel-ts/address/configs");
2591
2643
  var import_math10 = require("@fuel-ts/math");
2592
- var import_transactions9 = require("@fuel-ts/transactions");
2644
+ var import_transactions10 = require("@fuel-ts/transactions");
2593
2645
  var import_utils15 = require("@fuel-ts/utils");
2594
2646
 
2595
2647
  // src/providers/transaction-request/scripts.ts
@@ -2627,7 +2679,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2627
2679
  return new this(obj);
2628
2680
  }
2629
2681
  /** Type of the transaction */
2630
- type = import_transactions9.TransactionType.Script;
2682
+ type = import_transactions10.TransactionType.Script;
2631
2683
  /** Gas limit for transaction */
2632
2684
  gasLimit;
2633
2685
  /** Script to execute */
@@ -2656,7 +2708,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2656
2708
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2657
2709
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2658
2710
  return {
2659
- type: import_transactions9.TransactionType.Script,
2711
+ type: import_transactions10.TransactionType.Script,
2660
2712
  scriptGasLimit: this.gasLimit,
2661
2713
  ...super.getBaseTransaction(),
2662
2714
  scriptLength: (0, import_math10.bn)(script.length),
@@ -2673,7 +2725,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2673
2725
  */
2674
2726
  getContractInputs() {
2675
2727
  return this.inputs.filter(
2676
- (input) => input.type === import_transactions9.InputType.Contract
2728
+ (input) => input.type === import_transactions10.InputType.Contract
2677
2729
  );
2678
2730
  }
2679
2731
  /**
@@ -2683,7 +2735,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2683
2735
  */
2684
2736
  getContractOutputs() {
2685
2737
  return this.outputs.filter(
2686
- (output) => output.type === import_transactions9.OutputType.Contract
2738
+ (output) => output.type === import_transactions10.OutputType.Contract
2687
2739
  );
2688
2740
  }
2689
2741
  /**
@@ -2693,7 +2745,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2693
2745
  */
2694
2746
  getVariableOutputs() {
2695
2747
  return this.outputs.filter(
2696
- (output) => output.type === import_transactions9.OutputType.Variable
2748
+ (output) => output.type === import_transactions10.OutputType.Variable
2697
2749
  );
2698
2750
  }
2699
2751
  /**
@@ -2716,7 +2768,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2716
2768
  let outputsNumber = numberOfVariables;
2717
2769
  while (outputsNumber) {
2718
2770
  this.pushOutput({
2719
- type: import_transactions9.OutputType.Variable
2771
+ type: import_transactions10.OutputType.Variable
2720
2772
  });
2721
2773
  outputsNumber -= 1;
2722
2774
  }
@@ -2750,12 +2802,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2750
2802
  return this;
2751
2803
  }
2752
2804
  const inputIndex = super.pushInput({
2753
- type: import_transactions9.InputType.Contract,
2805
+ type: import_transactions10.InputType.Contract,
2754
2806
  contractId: contractAddress.toB256(),
2755
2807
  txPointer: "0x00000000000000000000000000000000"
2756
2808
  });
2757
2809
  this.pushOutput({
2758
- type: import_transactions9.OutputType.Contract,
2810
+ type: import_transactions10.OutputType.Contract,
2759
2811
  inputIndex
2760
2812
  });
2761
2813
  return this;
@@ -2792,17 +2844,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2792
2844
 
2793
2845
  // src/providers/transaction-request/utils.ts
2794
2846
  var import_errors9 = require("@fuel-ts/errors");
2795
- var import_transactions10 = require("@fuel-ts/transactions");
2847
+ var import_transactions11 = require("@fuel-ts/transactions");
2796
2848
  var transactionRequestify = (obj) => {
2797
2849
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2798
2850
  return obj;
2799
2851
  }
2800
2852
  const { type } = obj;
2801
2853
  switch (obj.type) {
2802
- case import_transactions10.TransactionType.Script: {
2854
+ case import_transactions11.TransactionType.Script: {
2803
2855
  return ScriptTransactionRequest.from(obj);
2804
2856
  }
2805
- case import_transactions10.TransactionType.Create: {
2857
+ case import_transactions11.TransactionType.Create: {
2806
2858
  return CreateTransactionRequest.from(obj);
2807
2859
  }
2808
2860
  default: {
@@ -2812,10 +2864,10 @@ var transactionRequestify = (obj) => {
2812
2864
  };
2813
2865
  var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
2814
2866
  (acc, input) => {
2815
- if (input.type === import_transactions10.InputType.Coin && input.owner === owner) {
2867
+ if (input.type === import_transactions11.InputType.Coin && input.owner === owner) {
2816
2868
  acc.utxos.push(input.id);
2817
2869
  }
2818
- if (input.type === import_transactions10.InputType.Message && input.recipient === owner) {
2870
+ if (input.type === import_transactions11.InputType.Message && input.recipient === owner) {
2819
2871
  acc.messages.push(input.nonce);
2820
2872
  }
2821
2873
  return acc;
@@ -2829,17 +2881,17 @@ var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
2829
2881
  // src/providers/transaction-response/transaction-response.ts
2830
2882
  var import_errors13 = require("@fuel-ts/errors");
2831
2883
  var import_math15 = require("@fuel-ts/math");
2832
- var import_transactions18 = require("@fuel-ts/transactions");
2884
+ var import_transactions19 = require("@fuel-ts/transactions");
2833
2885
  var import_utils20 = require("@fuel-ts/utils");
2834
2886
 
2835
2887
  // src/providers/transaction-summary/assemble-transaction-summary.ts
2836
2888
  var import_math14 = require("@fuel-ts/math");
2837
- var import_transactions16 = require("@fuel-ts/transactions");
2889
+ var import_transactions17 = require("@fuel-ts/transactions");
2838
2890
  var import_utils18 = require("@fuel-ts/utils");
2839
2891
 
2840
2892
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2841
2893
  var import_math11 = require("@fuel-ts/math");
2842
- var import_transactions11 = require("@fuel-ts/transactions");
2894
+ var import_transactions12 = require("@fuel-ts/transactions");
2843
2895
  var import_utils16 = require("@fuel-ts/utils");
2844
2896
  var calculateTransactionFee = (params) => {
2845
2897
  const {
@@ -2851,8 +2903,8 @@ var calculateTransactionFee = (params) => {
2851
2903
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2852
2904
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2853
2905
  const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
2854
- const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
2855
- if (transaction.type === import_transactions11.TransactionType.Mint) {
2906
+ const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2907
+ if (transaction.type === import_transactions12.TransactionType.Mint) {
2856
2908
  return {
2857
2909
  fee: (0, import_math11.bn)(0),
2858
2910
  minFee: (0, import_math11.bn)(0),
@@ -2862,7 +2914,7 @@ var calculateTransactionFee = (params) => {
2862
2914
  const { type, witnesses, inputs, policies } = transaction;
2863
2915
  let metadataGas = (0, import_math11.bn)(0);
2864
2916
  let gasLimit = (0, import_math11.bn)(0);
2865
- if (type === import_transactions11.TransactionType.Create) {
2917
+ if (type === import_transactions12.TransactionType.Create) {
2866
2918
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2867
2919
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2868
2920
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2888,7 +2940,7 @@ var calculateTransactionFee = (params) => {
2888
2940
  metadataGas,
2889
2941
  txBytesSize: transactionBytes.length
2890
2942
  });
2891
- const witnessLimit = policies.find((policy) => policy.type === import_transactions11.PolicyType.WitnessLimit)?.data;
2943
+ const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
2892
2944
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2893
2945
  const maxGas = getMaxGas({
2894
2946
  gasPerByte,
@@ -2921,7 +2973,7 @@ var calculateTransactionFee = (params) => {
2921
2973
  var import_configs10 = require("@fuel-ts/address/configs");
2922
2974
  var import_errors11 = require("@fuel-ts/errors");
2923
2975
  var import_math13 = require("@fuel-ts/math");
2924
- var import_transactions14 = require("@fuel-ts/transactions");
2976
+ var import_transactions15 = require("@fuel-ts/transactions");
2925
2977
 
2926
2978
  // src/providers/transaction-summary/call.ts
2927
2979
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2969,7 +3021,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2969
3021
 
2970
3022
  // src/providers/transaction-summary/input.ts
2971
3023
  var import_errors10 = require("@fuel-ts/errors");
2972
- var import_transactions12 = require("@fuel-ts/transactions");
3024
+ var import_transactions13 = require("@fuel-ts/transactions");
2973
3025
  function getInputsByTypes(inputs, types) {
2974
3026
  return inputs.filter((i) => types.includes(i.type));
2975
3027
  }
@@ -2977,16 +3029,16 @@ function getInputsByType(inputs, type) {
2977
3029
  return inputs.filter((i) => i.type === type);
2978
3030
  }
2979
3031
  function getInputsCoin(inputs) {
2980
- return getInputsByType(inputs, import_transactions12.InputType.Coin);
3032
+ return getInputsByType(inputs, import_transactions13.InputType.Coin);
2981
3033
  }
2982
3034
  function getInputsMessage(inputs) {
2983
- return getInputsByType(inputs, import_transactions12.InputType.Message);
3035
+ return getInputsByType(inputs, import_transactions13.InputType.Message);
2984
3036
  }
2985
3037
  function getInputsCoinAndMessage(inputs) {
2986
- return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
3038
+ return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2987
3039
  }
2988
3040
  function getInputsContract(inputs) {
2989
- return getInputsByType(inputs, import_transactions12.InputType.Contract);
3041
+ return getInputsByType(inputs, import_transactions13.InputType.Contract);
2990
3042
  }
2991
3043
  function getInputFromAssetId(inputs, assetId) {
2992
3044
  const coinInputs = getInputsCoin(inputs);
@@ -3005,7 +3057,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
3005
3057
  if (!contractInput) {
3006
3058
  return void 0;
3007
3059
  }
3008
- if (contractInput.type !== import_transactions12.InputType.Contract) {
3060
+ if (contractInput.type !== import_transactions13.InputType.Contract) {
3009
3061
  throw new import_errors10.FuelError(
3010
3062
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
3011
3063
  `Contract input should be of type 'contract'.`
@@ -3014,34 +3066,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
3014
3066
  return contractInput;
3015
3067
  }
3016
3068
  function getInputAccountAddress(input) {
3017
- if (input.type === import_transactions12.InputType.Coin) {
3069
+ if (input.type === import_transactions13.InputType.Coin) {
3018
3070
  return input.owner.toString();
3019
3071
  }
3020
- if (input.type === import_transactions12.InputType.Message) {
3072
+ if (input.type === import_transactions13.InputType.Message) {
3021
3073
  return input.recipient.toString();
3022
3074
  }
3023
3075
  return "";
3024
3076
  }
3025
3077
 
3026
3078
  // src/providers/transaction-summary/output.ts
3027
- var import_transactions13 = require("@fuel-ts/transactions");
3079
+ var import_transactions14 = require("@fuel-ts/transactions");
3028
3080
  function getOutputsByType(outputs, type) {
3029
3081
  return outputs.filter((o) => o.type === type);
3030
3082
  }
3031
3083
  function getOutputsContractCreated(outputs) {
3032
- return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
3084
+ return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
3033
3085
  }
3034
3086
  function getOutputsCoin(outputs) {
3035
- return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
3087
+ return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
3036
3088
  }
3037
3089
  function getOutputsChange(outputs) {
3038
- return getOutputsByType(outputs, import_transactions13.OutputType.Change);
3090
+ return getOutputsByType(outputs, import_transactions14.OutputType.Change);
3039
3091
  }
3040
3092
  function getOutputsContract(outputs) {
3041
- return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
3093
+ return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
3042
3094
  }
3043
3095
  function getOutputsVariable(outputs) {
3044
- return getOutputsByType(outputs, import_transactions13.OutputType.Variable);
3096
+ return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
3045
3097
  }
3046
3098
 
3047
3099
  // src/providers/transaction-summary/types.ts
@@ -3088,11 +3140,11 @@ function getReceiptsByType(receipts, type) {
3088
3140
  }
3089
3141
  function getTransactionTypeName(transactionType) {
3090
3142
  switch (transactionType) {
3091
- case import_transactions14.TransactionType.Mint:
3143
+ case import_transactions15.TransactionType.Mint:
3092
3144
  return "Mint" /* Mint */;
3093
- case import_transactions14.TransactionType.Create:
3145
+ case import_transactions15.TransactionType.Create:
3094
3146
  return "Create" /* Create */;
3095
- case import_transactions14.TransactionType.Script:
3147
+ case import_transactions15.TransactionType.Script:
3096
3148
  return "Script" /* Script */;
3097
3149
  default:
3098
3150
  throw new import_errors11.FuelError(
@@ -3118,10 +3170,10 @@ function hasSameAssetId(a) {
3118
3170
  return (b) => a.assetId === b.assetId;
3119
3171
  }
3120
3172
  function getReceiptsCall(receipts) {
3121
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
3173
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
3122
3174
  }
3123
3175
  function getReceiptsMessageOut(receipts) {
3124
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
3176
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
3125
3177
  }
3126
3178
  var mergeAssets = (op1, op2) => {
3127
3179
  const assets1 = op1.assetsSent || [];
@@ -3160,7 +3212,7 @@ function addOperation(operations, toAdd) {
3160
3212
  return allOperations;
3161
3213
  }
3162
3214
  function getReceiptsTransferOut(receipts) {
3163
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.TransferOut);
3215
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
3164
3216
  }
3165
3217
  function getWithdrawFromFuelOperations({
3166
3218
  inputs,
@@ -3320,11 +3372,11 @@ function getTransferOperations({
3320
3372
  });
3321
3373
  const transferReceipts = getReceiptsByType(
3322
3374
  receipts,
3323
- import_transactions14.ReceiptType.Transfer
3375
+ import_transactions15.ReceiptType.Transfer
3324
3376
  );
3325
3377
  const transferOutReceipts = getReceiptsByType(
3326
3378
  receipts,
3327
- import_transactions14.ReceiptType.TransferOut
3379
+ import_transactions15.ReceiptType.TransferOut
3328
3380
  );
3329
3381
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3330
3382
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3409,17 +3461,17 @@ function getOperations({
3409
3461
  }
3410
3462
 
3411
3463
  // src/providers/transaction-summary/receipt.ts
3412
- var import_transactions15 = require("@fuel-ts/transactions");
3464
+ var import_transactions16 = require("@fuel-ts/transactions");
3413
3465
  var processGqlReceipt = (gqlReceipt) => {
3414
3466
  const receipt = assembleReceiptByType(gqlReceipt);
3415
3467
  switch (receipt.type) {
3416
- case import_transactions15.ReceiptType.ReturnData: {
3468
+ case import_transactions16.ReceiptType.ReturnData: {
3417
3469
  return {
3418
3470
  ...receipt,
3419
3471
  data: gqlReceipt.data || "0x"
3420
3472
  };
3421
3473
  }
3422
- case import_transactions15.ReceiptType.LogData: {
3474
+ case import_transactions16.ReceiptType.LogData: {
3423
3475
  return {
3424
3476
  ...receipt,
3425
3477
  data: gqlReceipt.data || "0x"
@@ -3432,7 +3484,7 @@ var processGqlReceipt = (gqlReceipt) => {
3432
3484
  var extractMintedAssetsFromReceipts = (receipts) => {
3433
3485
  const mintedAssets = [];
3434
3486
  receipts.forEach((receipt) => {
3435
- if (receipt.type === import_transactions15.ReceiptType.Mint) {
3487
+ if (receipt.type === import_transactions16.ReceiptType.Mint) {
3436
3488
  mintedAssets.push({
3437
3489
  subId: receipt.subId,
3438
3490
  contractId: receipt.contractId,
@@ -3446,7 +3498,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3446
3498
  var extractBurnedAssetsFromReceipts = (receipts) => {
3447
3499
  const burnedAssets = [];
3448
3500
  receipts.forEach((receipt) => {
3449
- if (receipt.type === import_transactions15.ReceiptType.Burn) {
3501
+ if (receipt.type === import_transactions16.ReceiptType.Burn) {
3450
3502
  burnedAssets.push({
3451
3503
  subId: receipt.subId,
3452
3504
  contractId: receipt.contractId,
@@ -3543,7 +3595,7 @@ function assembleTransactionSummary(params) {
3543
3595
  maxInputs
3544
3596
  });
3545
3597
  const typeName = getTransactionTypeName(transaction.type);
3546
- const tip = (0, import_math14.bn)(transaction.policies?.find((policy) => policy.type === import_transactions16.PolicyType.Tip)?.data);
3598
+ const tip = (0, import_math14.bn)(transaction.policies?.find((policy) => policy.type === import_transactions17.PolicyType.Tip)?.data);
3547
3599
  const { fee } = calculateTransactionFee({
3548
3600
  gasPrice,
3549
3601
  rawPayload,
@@ -3590,12 +3642,12 @@ function assembleTransactionSummary(params) {
3590
3642
 
3591
3643
  // src/providers/transaction-response/getDecodedLogs.ts
3592
3644
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3593
- var import_transactions17 = require("@fuel-ts/transactions");
3645
+ var import_transactions18 = require("@fuel-ts/transactions");
3594
3646
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3595
3647
  return receipts.reduce((logs, receipt) => {
3596
- if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
3648
+ if (receipt.type === import_transactions18.ReceiptType.LogData || receipt.type === import_transactions18.ReceiptType.Log) {
3597
3649
  const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
3598
- const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3650
+ const data = receipt.type === import_transactions18.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3599
3651
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3600
3652
  logs.push(decodedLog);
3601
3653
  }
@@ -3668,7 +3720,7 @@ var TransactionResponse = class {
3668
3720
  * @returns The decoded transaction.
3669
3721
  */
3670
3722
  decodeTransaction(transactionWithReceipts) {
3671
- return new import_transactions18.TransactionCoder().decode(
3723
+ return new import_transactions19.TransactionCoder().decode(
3672
3724
  (0, import_utils20.arrayify)(transactionWithReceipts.rawPayload),
3673
3725
  0
3674
3726
  )?.[0];
@@ -4028,6 +4080,21 @@ var _Provider = class {
4028
4080
  } = await this.operations.getVersion();
4029
4081
  return nodeVersion;
4030
4082
  }
4083
+ /**
4084
+ * @hidden
4085
+ *
4086
+ * Returns the network configuration of the connected Fuel node.
4087
+ *
4088
+ * @returns A promise that resolves to the network configuration object
4089
+ */
4090
+ async getNetwork() {
4091
+ const {
4092
+ name,
4093
+ consensusParameters: { chainId }
4094
+ } = await this.getChain();
4095
+ const network = new import_ethers.Network(name, chainId.toNumber());
4096
+ return Promise.resolve(network);
4097
+ }
4031
4098
  /**
4032
4099
  * Returns the block number.
4033
4100
  *
@@ -4104,7 +4171,7 @@ var _Provider = class {
4104
4171
  }
4105
4172
  const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
4106
4173
  let abis;
4107
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4174
+ if (transactionRequest.type === import_transactions20.TransactionType.Script) {
4108
4175
  abis = transactionRequest.abis;
4109
4176
  }
4110
4177
  if (awaitExecution) {
@@ -4196,7 +4263,7 @@ var _Provider = class {
4196
4263
  * @returns A promise.
4197
4264
  */
4198
4265
  async estimateTxDependencies(transactionRequest) {
4199
- if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4266
+ if (transactionRequest.type === import_transactions20.TransactionType.Create) {
4200
4267
  return {
4201
4268
  receipts: [],
4202
4269
  outputVariables: 0,
@@ -4260,7 +4327,7 @@ var _Provider = class {
4260
4327
  const allRequests = (0, import_ramda3.clone)(transactionRequests);
4261
4328
  const serializedTransactionsMap = /* @__PURE__ */ new Map();
4262
4329
  allRequests.forEach((req, index) => {
4263
- if (req.type === import_transactions19.TransactionType.Script) {
4330
+ if (req.type === import_transactions20.TransactionType.Script) {
4264
4331
  serializedTransactionsMap.set(index, (0, import_utils22.hexlify)(req.toTransactionBytes()));
4265
4332
  }
4266
4333
  });
@@ -4286,7 +4353,7 @@ var _Provider = class {
4286
4353
  );
4287
4354
  const hasMissingOutputs = missingOutputVariables.length > 0 || missingOutputContractIds.length > 0;
4288
4355
  const request = allRequests[requestIdx];
4289
- if (hasMissingOutputs && request?.type === import_transactions19.TransactionType.Script) {
4356
+ if (hasMissingOutputs && request?.type === import_transactions20.TransactionType.Script) {
4290
4357
  result.outputVariables += missingOutputVariables.length;
4291
4358
  request.addVariableOutputs(missingOutputVariables.length);
4292
4359
  missingOutputContractIds.forEach(({ contractId }) => {
@@ -4342,7 +4409,7 @@ var _Provider = class {
4342
4409
  tip: transactionRequest.tip
4343
4410
  }).add(1);
4344
4411
  let gasLimit = (0, import_math16.bn)(0);
4345
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4412
+ if (transactionRequest.type === import_transactions20.TransactionType.Script) {
4346
4413
  gasLimit = transactionRequest.gasLimit;
4347
4414
  if (transactionRequest.gasLimit.eq(0)) {
4348
4415
  transactionRequest.gasLimit = minGas;
@@ -4412,7 +4479,7 @@ var _Provider = class {
4412
4479
  */
4413
4480
  async getTransactionCost(transactionRequestLike, { resourcesOwner, signatureCallback, quantitiesToContract = [] } = {}) {
4414
4481
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4415
- const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4482
+ const isScriptTransaction = txRequestClone.type === import_transactions20.TransactionType.Script;
4416
4483
  const baseAssetId = this.getBaseAssetId();
4417
4484
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4418
4485
  const allQuantities = mergeQuantities(coinOutputsQuantities, quantitiesToContract);
@@ -4636,7 +4703,7 @@ var _Provider = class {
4636
4703
  time: block.header.time,
4637
4704
  transactionIds: block.transactions.map((tx) => tx.id),
4638
4705
  transactions: block.transactions.map(
4639
- (tx) => new import_transactions19.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
4706
+ (tx) => new import_transactions20.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
4640
4707
  )
4641
4708
  };
4642
4709
  }
@@ -4651,7 +4718,7 @@ var _Provider = class {
4651
4718
  if (!transaction) {
4652
4719
  return null;
4653
4720
  }
4654
- return new import_transactions19.TransactionCoder().decode(
4721
+ return new import_transactions20.TransactionCoder().decode(
4655
4722
  (0, import_utils22.arrayify)(transaction.rawPayload),
4656
4723
  0
4657
4724
  )?.[0];
@@ -4731,7 +4798,7 @@ var _Provider = class {
4731
4798
  });
4732
4799
  const messages = result.messages.edges.map((edge) => edge.node);
4733
4800
  return messages.map((message) => ({
4734
- messageId: import_transactions19.InputMessageCoder.getMessageId({
4801
+ messageId: import_transactions20.InputMessageCoder.getMessageId({
4735
4802
  sender: message.sender,
4736
4803
  recipient: message.recipient,
4737
4804
  nonce: message.nonce,
@@ -4742,7 +4809,7 @@ var _Provider = class {
4742
4809
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4743
4810
  nonce: message.nonce,
4744
4811
  amount: (0, import_math16.bn)(message.amount),
4745
- data: import_transactions19.InputMessageCoder.decodeData(message.data),
4812
+ data: import_transactions20.InputMessageCoder.decodeData(message.data),
4746
4813
  daHeight: (0, import_math16.bn)(message.daHeight)
4747
4814
  }));
4748
4815
  }
@@ -4878,6 +4945,19 @@ var _Provider = class {
4878
4945
  async getTransactionResponse(transactionId) {
4879
4946
  return new TransactionResponse(transactionId, this);
4880
4947
  }
4948
+ /**
4949
+ * Returns Message for given nonce.
4950
+ *
4951
+ * @param nonce - The nonce of the message to retrieve.
4952
+ * @returns A promise that resolves to the Message object.
4953
+ */
4954
+ async getMessageByNonce(nonce) {
4955
+ const { message } = await this.operations.getMessageByNonce({ nonce });
4956
+ if (!message) {
4957
+ return null;
4958
+ }
4959
+ return message;
4960
+ }
4881
4961
  };
4882
4962
  var Provider = _Provider;
4883
4963
  _cacheInputs = new WeakSet();
@@ -4886,7 +4966,7 @@ cacheInputs_fn = function(inputs) {
4886
4966
  return;
4887
4967
  }
4888
4968
  inputs.forEach((input) => {
4889
- if (input.type === import_transactions19.InputType.Coin) {
4969
+ if (input.type === import_transactions20.InputType.Coin) {
4890
4970
  this.cache?.set(input.id);
4891
4971
  }
4892
4972
  });
@@ -4897,7 +4977,7 @@ __publicField(Provider, "nodeInfoCache", {});
4897
4977
  // src/providers/transaction-summary/get-transaction-summary.ts
4898
4978
  var import_errors15 = require("@fuel-ts/errors");
4899
4979
  var import_math17 = require("@fuel-ts/math");
4900
- var import_transactions20 = require("@fuel-ts/transactions");
4980
+ var import_transactions21 = require("@fuel-ts/transactions");
4901
4981
  var import_utils25 = require("@fuel-ts/utils");
4902
4982
  async function getTransactionSummary(params) {
4903
4983
  const { id, provider, abiMap } = params;
@@ -4910,7 +4990,7 @@ async function getTransactionSummary(params) {
4910
4990
  `Transaction not found for given id: ${id}.`
4911
4991
  );
4912
4992
  }
4913
- const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
4993
+ const [decodedTransaction] = new import_transactions21.TransactionCoder().decode(
4914
4994
  (0, import_utils25.arrayify)(gqlTransaction.rawPayload),
4915
4995
  0
4916
4996
  );
@@ -4975,7 +5055,7 @@ async function getTransactionsSummaries(params) {
4975
5055
  const transactions = edges.map((edge) => {
4976
5056
  const { node: gqlTransaction } = edge;
4977
5057
  const { id, rawPayload, status } = gqlTransaction;
4978
- const [decodedTransaction] = new import_transactions20.TransactionCoder().decode((0, import_utils25.arrayify)(rawPayload), 0);
5058
+ const [decodedTransaction] = new import_transactions21.TransactionCoder().decode((0, import_utils25.arrayify)(rawPayload), 0);
4979
5059
  let txReceipts = [];
4980
5060
  if (gqlTransaction?.status && "receipts" in gqlTransaction.status) {
4981
5061
  txReceipts = gqlTransaction.status.receipts;
@@ -5902,14 +5982,14 @@ var import_errors20 = require("@fuel-ts/errors");
5902
5982
  var import_hasher6 = require("@fuel-ts/hasher");
5903
5983
  var import_math21 = require("@fuel-ts/math");
5904
5984
  var import_utils34 = require("@fuel-ts/utils");
5905
- var import_ethers2 = require("ethers");
5985
+ var import_ethers3 = require("ethers");
5906
5986
 
5907
5987
  // src/mnemonic/mnemonic.ts
5908
5988
  var import_crypto4 = require("@fuel-ts/crypto");
5909
5989
  var import_errors19 = require("@fuel-ts/errors");
5910
5990
  var import_hasher5 = require("@fuel-ts/hasher");
5911
5991
  var import_utils32 = require("@fuel-ts/utils");
5912
- var import_ethers = require("ethers");
5992
+ var import_ethers2 = require("ethers");
5913
5993
 
5914
5994
  // src/wordlists/words/english.ts
5915
5995
  var english = [
@@ -8163,7 +8243,7 @@ var Mnemonic = class {
8163
8243
  assertMnemonic(getWords(phrase));
8164
8244
  const phraseBytes = toUtf8Bytes(getPhrase(phrase));
8165
8245
  const salt = toUtf8Bytes(`mnemonic${passphrase}`);
8166
- return (0, import_ethers.pbkdf2)(phraseBytes, salt, 2048, 64, "sha512");
8246
+ return (0, import_ethers2.pbkdf2)(phraseBytes, salt, 2048, 64, "sha512");
8167
8247
  }
8168
8248
  /**
8169
8249
  * @param phrase - Mnemonic phrase composed by words from the provided wordlist
@@ -8225,7 +8305,7 @@ var Mnemonic = class {
8225
8305
  `Seed length should be between 16 and 64 bytes, but received ${seedArray.length} bytes.`
8226
8306
  );
8227
8307
  }
8228
- return (0, import_utils32.arrayify)((0, import_ethers.computeHmac)("sha512", MasterSecret, seedArray));
8308
+ return (0, import_utils32.arrayify)((0, import_ethers2.computeHmac)("sha512", MasterSecret, seedArray));
8229
8309
  }
8230
8310
  /**
8231
8311
  * Get the extendKey as defined on BIP-32 from the provided seed
@@ -8250,8 +8330,8 @@ var Mnemonic = class {
8250
8330
  chainCode,
8251
8331
  (0, import_utils32.concat)(["0x00", privateKey])
8252
8332
  ]);
8253
- const checksum = (0, import_ethers.dataSlice)((0, import_hasher5.sha256)((0, import_hasher5.sha256)(extendedKey)), 0, 4);
8254
- return (0, import_ethers.encodeBase58)((0, import_utils32.concat)([extendedKey, checksum]));
8333
+ const checksum = (0, import_ethers2.dataSlice)((0, import_hasher5.sha256)((0, import_hasher5.sha256)(extendedKey)), 0, 4);
8334
+ return (0, import_ethers2.encodeBase58)((0, import_utils32.concat)([extendedKey, checksum]));
8255
8335
  }
8256
8336
  /**
8257
8337
  * Create a new mnemonic using a randomly generated number as entropy.
@@ -8279,7 +8359,7 @@ var MainnetPUB = (0, import_utils34.hexlify)("0x0488b21e");
8279
8359
  var TestnetPRV2 = (0, import_utils34.hexlify)("0x04358394");
8280
8360
  var TestnetPUB = (0, import_utils34.hexlify)("0x043587cf");
8281
8361
  function base58check(data) {
8282
- 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)]));
8362
+ 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)]));
8283
8363
  }
8284
8364
  function getExtendedKeyPrefix(isPublic = false, testnet = false) {
8285
8365
  if (isPublic) {
@@ -8335,7 +8415,7 @@ var HDWallet = class {
8335
8415
  this.publicKey = (0, import_utils34.hexlify)(config.publicKey);
8336
8416
  }
8337
8417
  this.parentFingerprint = config.parentFingerprint || this.parentFingerprint;
8338
- this.fingerprint = (0, import_ethers2.dataSlice)((0, import_ethers2.ripemd160)((0, import_hasher6.sha256)(this.publicKey)), 0, 4);
8418
+ this.fingerprint = (0, import_ethers3.dataSlice)((0, import_ethers3.ripemd160)((0, import_hasher6.sha256)(this.publicKey)), 0, 4);
8339
8419
  this.depth = config.depth || this.depth;
8340
8420
  this.index = config.index || this.index;
8341
8421
  this.chainCode = config.chainCode;
@@ -8367,7 +8447,7 @@ var HDWallet = class {
8367
8447
  data.set((0, import_utils34.arrayify)(this.publicKey));
8368
8448
  }
8369
8449
  data.set((0, import_math21.toBytes)(index, 4), 33);
8370
- const bytes = (0, import_utils34.arrayify)((0, import_ethers2.computeHmac)("sha512", chainCode, data));
8450
+ const bytes = (0, import_utils34.arrayify)((0, import_ethers3.computeHmac)("sha512", chainCode, data));
8371
8451
  const IL = bytes.slice(0, 32);
8372
8452
  const IR = bytes.slice(32);
8373
8453
  if (privateKey) {
@@ -8438,7 +8518,7 @@ var HDWallet = class {
8438
8518
  });
8439
8519
  }
8440
8520
  static fromExtendedKey(extendedKey) {
8441
- const decoded = (0, import_ethers2.toBeHex)((0, import_ethers2.decodeBase58)(extendedKey));
8521
+ const decoded = (0, import_ethers3.toBeHex)((0, import_ethers3.decodeBase58)(extendedKey));
8442
8522
  const bytes = (0, import_utils34.arrayify)(decoded);
8443
8523
  const validChecksum = base58check(bytes.slice(0, 78)) === extendedKey;
8444
8524
  if (bytes.length !== 82 || !isValidExtendedKey(bytes)) {
@@ -9054,7 +9134,7 @@ var StorageAbstract = class {
9054
9134
  var import_abi_coder7 = require("@fuel-ts/abi-coder");
9055
9135
  var import_address10 = require("@fuel-ts/address");
9056
9136
  var import_errors25 = require("@fuel-ts/errors");
9057
- var import_transactions21 = require("@fuel-ts/transactions");
9137
+ var import_transactions22 = require("@fuel-ts/transactions");
9058
9138
  var import_utils36 = require("@fuel-ts/utils");
9059
9139
 
9060
9140
  // src/predicate/utils/getPredicateRoot.ts
@@ -9113,10 +9193,15 @@ var Predicate = class extends Account {
9113
9193
  populateTransactionPredicateData(transactionRequestLike) {
9114
9194
  const request = transactionRequestify(transactionRequestLike);
9115
9195
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
9116
- request.inputs?.forEach((input) => {
9117
- if (input.type === import_transactions21.InputType.Coin && (0, import_utils36.hexlify)(input.owner) === this.address.toB256()) {
9196
+ const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
9197
+ if (placeholderIndex !== -1) {
9198
+ request.removeWitness(placeholderIndex);
9199
+ }
9200
+ request.inputs.filter(isRequestInputResource).forEach((input) => {
9201
+ if (isRequestInputResourceFromOwner(input, this.address)) {
9118
9202
  input.predicate = (0, import_utils36.hexlify)(this.bytes);
9119
9203
  input.predicateData = (0, import_utils36.hexlify)(this.getPredicateData(policies.length));
9204
+ input.witnessIndex = 0;
9120
9205
  }
9121
9206
  });
9122
9207
  return request;
@@ -9146,7 +9231,7 @@ var Predicate = class extends Account {
9146
9231
  return new Uint8Array();
9147
9232
  }
9148
9233
  const mainFn = this.interface?.functions.main;
9149
- const paddedCode = new import_transactions21.ByteArrayCoder(this.bytes.length).encode(this.bytes);
9234
+ const paddedCode = new import_transactions22.ByteArrayCoder(this.bytes.length).encode(this.bytes);
9150
9235
  const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
9151
9236
  maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
9152
9237
  });
@@ -9239,6 +9324,28 @@ var Predicate = class extends Account {
9239
9324
  }
9240
9325
  return mutatedBytes;
9241
9326
  }
9327
+ /**
9328
+ * Returns the index of the witness placeholder that was added to this predicate.
9329
+ * If no witness placeholder was added, it returns -1.
9330
+ * @param request - The transaction request.
9331
+ * @returns The index of the witness placeholder, or -1 if there is no witness placeholder.
9332
+ */
9333
+ getIndexFromPlaceholderWitness(request) {
9334
+ const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
9335
+ let index = -1;
9336
+ const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
9337
+ if (hasEmptyPredicateInputs) {
9338
+ index = hasEmptyPredicateInputs.witnessIndex;
9339
+ const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
9340
+ if (!allInputsAreEmpty) {
9341
+ const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
9342
+ if (wasFilledInputAddedFirst) {
9343
+ index = -1;
9344
+ }
9345
+ }
9346
+ }
9347
+ return index;
9348
+ }
9242
9349
  };
9243
9350
 
9244
9351
  // src/connectors/fuel.ts
@@ -9962,6 +10069,7 @@ __publicField(Fuel, "defaultConfig", {});
9962
10069
  assets,
9963
10070
  buildBlockExplorerUrl,
9964
10071
  cacheFor,
10072
+ cacheResources,
9965
10073
  cacheTxInputsFromOwner,
9966
10074
  calculateGasFee,
9967
10075
  calculateMetadataGasForTxCreate,
@@ -10009,6 +10117,7 @@ __publicField(Fuel, "defaultConfig", {});
10009
10117
  getReceiptsMessageOut,
10010
10118
  getReceiptsTransferOut,
10011
10119
  getReceiptsWithMissingData,
10120
+ getRequestInputResourceOwner,
10012
10121
  getTransactionStatusName,
10013
10122
  getTransactionSummary,
10014
10123
  getTransactionSummaryFromRequest,
@@ -10022,6 +10131,10 @@ __publicField(Fuel, "defaultConfig", {});
10022
10131
  isMessage,
10023
10132
  isRawCoin,
10024
10133
  isRawMessage,
10134
+ isRequestInputCoin,
10135
+ isRequestInputMessage,
10136
+ isRequestInputResource,
10137
+ isRequestInputResourceFromOwner,
10025
10138
  isType,
10026
10139
  isTypeCreate,
10027
10140
  isTypeMint,