@fuel-ts/account 0.0.0-rc-2143-20240429105111 → 0.0.0-rc-2037-20240429115810

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 (33) hide show
  1. package/dist/index.global.js +69 -8
  2. package/dist/index.global.js.map +1 -1
  3. package/dist/index.js +192 -118
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +107 -39
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/predicate/predicate.d.ts +9 -2
  8. package/dist/predicate/predicate.d.ts.map +1 -1
  9. package/dist/providers/transaction-request/helpers.d.ts +10 -0
  10. package/dist/providers/transaction-request/helpers.d.ts.map +1 -0
  11. package/dist/providers/transaction-request/index.d.ts +1 -0
  12. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  13. package/dist/providers/transaction-request/transaction-request.d.ts +2 -0
  14. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  15. package/dist/test-utils/index.d.ts +1 -0
  16. package/dist/test-utils/index.d.ts.map +1 -1
  17. package/dist/test-utils/launchNode.d.ts +2 -4
  18. package/dist/test-utils/launchNode.d.ts.map +1 -1
  19. package/dist/test-utils/resources.d.ts +4 -0
  20. package/dist/test-utils/resources.d.ts.map +1 -0
  21. package/dist/test-utils/seedTestWallet.d.ts +1 -1
  22. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  23. package/dist/test-utils/transactionRequest.d.ts +5 -0
  24. package/dist/test-utils/transactionRequest.d.ts.map +1 -0
  25. package/dist/test-utils.global.js +63 -14
  26. package/dist/test-utils.global.js.map +1 -1
  27. package/dist/test-utils.js +180 -117
  28. package/dist/test-utils.js.map +1 -1
  29. package/dist/test-utils.mjs +104 -44
  30. package/dist/test-utils.mjs.map +1 -1
  31. package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
  32. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  33. 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,7 +236,7 @@ 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");
@@ -1388,7 +1394,7 @@ var import_address = require("@fuel-ts/address");
1388
1394
  var import_configs6 = require("@fuel-ts/address/configs");
1389
1395
  var import_crypto = require("@fuel-ts/crypto");
1390
1396
  var import_math7 = require("@fuel-ts/math");
1391
- var import_transactions6 = require("@fuel-ts/transactions");
1397
+ var import_transactions7 = require("@fuel-ts/transactions");
1392
1398
  var import_utils9 = require("@fuel-ts/utils");
1393
1399
 
1394
1400
  // src/providers/resource.ts
@@ -1896,6 +1902,28 @@ var NoWitnessByOwnerError = class extends Error {
1896
1902
  name = "NoWitnessByOwnerError";
1897
1903
  };
1898
1904
 
1905
+ // src/providers/transaction-request/helpers.ts
1906
+ var import_transactions6 = require("@fuel-ts/transactions");
1907
+ var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
1908
+ var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
1909
+ var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
1910
+ var getRequestInputResourceOwner = (input) => isRequestInputCoin(input) ? input.owner : input.recipient;
1911
+ var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
1912
+ var cacheResources = (resources) => resources.reduce(
1913
+ (cache2, resource) => {
1914
+ if (isCoin(resource)) {
1915
+ cache2.utxos.push(resource.id);
1916
+ } else {
1917
+ cache2.messages.push(resource.nonce);
1918
+ }
1919
+ return cache2;
1920
+ },
1921
+ {
1922
+ utxos: [],
1923
+ messages: []
1924
+ }
1925
+ );
1926
+
1899
1927
  // src/providers/transaction-request/witness.ts
1900
1928
  var import_utils8 = require("@fuel-ts/utils");
1901
1929
  var witnessify = (value) => {
@@ -1948,20 +1976,20 @@ var BaseTransactionRequest = class {
1948
1976
  let policyTypes = 0;
1949
1977
  const policies = [];
1950
1978
  if (req.tip) {
1951
- policyTypes += import_transactions6.PolicyType.Tip;
1952
- policies.push({ data: req.tip, type: import_transactions6.PolicyType.Tip });
1979
+ policyTypes += import_transactions7.PolicyType.Tip;
1980
+ policies.push({ data: req.tip, type: import_transactions7.PolicyType.Tip });
1953
1981
  }
1954
1982
  if (req.witnessLimit) {
1955
- policyTypes += import_transactions6.PolicyType.WitnessLimit;
1956
- policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
1983
+ policyTypes += import_transactions7.PolicyType.WitnessLimit;
1984
+ policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
1957
1985
  }
1958
1986
  if (req.maturity > 0) {
1959
- policyTypes += import_transactions6.PolicyType.Maturity;
1960
- policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
1987
+ policyTypes += import_transactions7.PolicyType.Maturity;
1988
+ policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
1961
1989
  }
1962
1990
  if (req.maxFee) {
1963
- policyTypes += import_transactions6.PolicyType.MaxFee;
1964
- policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
1991
+ policyTypes += import_transactions7.PolicyType.MaxFee;
1992
+ policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
1965
1993
  }
1966
1994
  return {
1967
1995
  policyTypes,
@@ -1995,7 +2023,7 @@ var BaseTransactionRequest = class {
1995
2023
  * @returns The transaction bytes.
1996
2024
  */
1997
2025
  toTransactionBytes() {
1998
- return new import_transactions6.TransactionCoder().encode(this.toTransaction());
2026
+ return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1999
2027
  }
2000
2028
  /**
2001
2029
  * @hidden
@@ -2086,7 +2114,7 @@ var BaseTransactionRequest = class {
2086
2114
  */
2087
2115
  getCoinInputs() {
2088
2116
  return this.inputs.filter(
2089
- (input) => input.type === import_transactions6.InputType.Coin
2117
+ (input) => input.type === import_transactions7.InputType.Coin
2090
2118
  );
2091
2119
  }
2092
2120
  /**
@@ -2096,7 +2124,7 @@ var BaseTransactionRequest = class {
2096
2124
  */
2097
2125
  getCoinOutputs() {
2098
2126
  return this.outputs.filter(
2099
- (output) => output.type === import_transactions6.OutputType.Coin
2127
+ (output) => output.type === import_transactions7.OutputType.Coin
2100
2128
  );
2101
2129
  }
2102
2130
  /**
@@ -2106,7 +2134,7 @@ var BaseTransactionRequest = class {
2106
2134
  */
2107
2135
  getChangeOutputs() {
2108
2136
  return this.outputs.filter(
2109
- (output) => output.type === import_transactions6.OutputType.Change
2137
+ (output) => output.type === import_transactions7.OutputType.Change
2110
2138
  );
2111
2139
  }
2112
2140
  /**
@@ -2118,9 +2146,9 @@ var BaseTransactionRequest = class {
2118
2146
  const ownerAddress = (0, import_address.addressify)(owner);
2119
2147
  const found = this.inputs.find((input) => {
2120
2148
  switch (input.type) {
2121
- case import_transactions6.InputType.Coin:
2149
+ case import_transactions7.InputType.Coin:
2122
2150
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
2123
- case import_transactions6.InputType.Message:
2151
+ case import_transactions7.InputType.Message:
2124
2152
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
2125
2153
  default:
2126
2154
  return false;
@@ -2135,7 +2163,7 @@ var BaseTransactionRequest = class {
2135
2163
  * @param coin - Coin resource.
2136
2164
  */
2137
2165
  addCoinInput(coin) {
2138
- const { assetId, owner, amount } = coin;
2166
+ const { assetId, owner, amount, id, predicate } = coin;
2139
2167
  let witnessIndex;
2140
2168
  if (coin.predicate) {
2141
2169
  witnessIndex = 0;
@@ -2146,13 +2174,14 @@ var BaseTransactionRequest = class {
2146
2174
  }
2147
2175
  }
2148
2176
  const input = {
2149
- ...coin,
2150
- type: import_transactions6.InputType.Coin,
2177
+ id,
2178
+ type: import_transactions7.InputType.Coin,
2151
2179
  owner: owner.toB256(),
2152
2180
  amount,
2153
2181
  assetId,
2154
2182
  txPointer: "0x00000000000000000000000000000000",
2155
- witnessIndex
2183
+ witnessIndex,
2184
+ predicate
2156
2185
  };
2157
2186
  this.pushInput(input);
2158
2187
  this.addChangeOutput(owner, assetId);
@@ -2164,7 +2193,7 @@ var BaseTransactionRequest = class {
2164
2193
  * @param message - Message resource.
2165
2194
  */
2166
2195
  addMessageInput(message) {
2167
- const { recipient, sender, amount, assetId } = message;
2196
+ const { recipient, sender, amount, predicate, nonce, assetId } = message;
2168
2197
  let witnessIndex;
2169
2198
  if (message.predicate) {
2170
2199
  witnessIndex = 0;
@@ -2175,12 +2204,13 @@ var BaseTransactionRequest = class {
2175
2204
  }
2176
2205
  }
2177
2206
  const input = {
2178
- ...message,
2179
- type: import_transactions6.InputType.Message,
2207
+ nonce,
2208
+ type: import_transactions7.InputType.Message,
2180
2209
  sender: sender.toB256(),
2181
2210
  recipient: recipient.toB256(),
2182
2211
  amount,
2183
- witnessIndex
2212
+ witnessIndex,
2213
+ predicate
2184
2214
  };
2185
2215
  this.pushInput(input);
2186
2216
  this.addChangeOutput(recipient, assetId);
@@ -2220,7 +2250,7 @@ var BaseTransactionRequest = class {
2220
2250
  */
2221
2251
  addCoinOutput(to, amount, assetId) {
2222
2252
  this.pushOutput({
2223
- type: import_transactions6.OutputType.Coin,
2253
+ type: import_transactions7.OutputType.Coin,
2224
2254
  to: (0, import_address.addressify)(to).toB256(),
2225
2255
  amount,
2226
2256
  assetId
@@ -2236,7 +2266,7 @@ var BaseTransactionRequest = class {
2236
2266
  addCoinOutputs(to, quantities) {
2237
2267
  quantities.map(coinQuantityfy).forEach((quantity) => {
2238
2268
  this.pushOutput({
2239
- type: import_transactions6.OutputType.Coin,
2269
+ type: import_transactions7.OutputType.Coin,
2240
2270
  to: (0, import_address.addressify)(to).toB256(),
2241
2271
  amount: quantity.amount,
2242
2272
  assetId: quantity.assetId
@@ -2256,7 +2286,7 @@ var BaseTransactionRequest = class {
2256
2286
  );
2257
2287
  if (!changeOutput) {
2258
2288
  this.pushOutput({
2259
- type: import_transactions6.OutputType.Change,
2289
+ type: import_transactions7.OutputType.Change,
2260
2290
  to: (0, import_address.addressify)(to).toB256(),
2261
2291
  assetId
2262
2292
  });
@@ -2364,16 +2394,27 @@ var BaseTransactionRequest = class {
2364
2394
  toJSON() {
2365
2395
  return normalizeJSON(this);
2366
2396
  }
2397
+ removeWitness(index) {
2398
+ this.witnesses.splice(index, 1);
2399
+ this.adjustWitnessIndexes(index);
2400
+ }
2401
+ adjustWitnessIndexes(removedIndex) {
2402
+ this.inputs.filter(isRequestInputResource).forEach((input) => {
2403
+ if (input.witnessIndex > removedIndex) {
2404
+ input.witnessIndex -= 1;
2405
+ }
2406
+ });
2407
+ }
2367
2408
  updatePredicateGasUsed(inputs) {
2368
2409
  this.inputs.forEach((i) => {
2369
2410
  let correspondingInput;
2370
2411
  switch (i.type) {
2371
- case import_transactions6.InputType.Coin:
2372
- correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
2412
+ case import_transactions7.InputType.Coin:
2413
+ correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
2373
2414
  break;
2374
- case import_transactions6.InputType.Message:
2415
+ case import_transactions7.InputType.Message:
2375
2416
  correspondingInput = inputs.find(
2376
- (x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
2417
+ (x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
2377
2418
  );
2378
2419
  break;
2379
2420
  default:
@@ -2400,25 +2441,25 @@ var BaseTransactionRequest = class {
2400
2441
  // src/providers/transaction-request/create-transaction-request.ts
2401
2442
  var import_configs8 = require("@fuel-ts/address/configs");
2402
2443
  var import_math9 = require("@fuel-ts/math");
2403
- var import_transactions8 = require("@fuel-ts/transactions");
2444
+ var import_transactions9 = require("@fuel-ts/transactions");
2404
2445
  var import_utils13 = require("@fuel-ts/utils");
2405
2446
 
2406
2447
  // src/providers/transaction-request/hash-transaction.ts
2407
2448
  var import_configs7 = require("@fuel-ts/address/configs");
2408
2449
  var import_hasher = require("@fuel-ts/hasher");
2409
2450
  var import_math8 = require("@fuel-ts/math");
2410
- var import_transactions7 = require("@fuel-ts/transactions");
2451
+ var import_transactions8 = require("@fuel-ts/transactions");
2411
2452
  var import_utils11 = require("@fuel-ts/utils");
2412
2453
  var import_ramda2 = require("ramda");
2413
2454
  function hashTransaction(transactionRequest, chainId) {
2414
2455
  const transaction = transactionRequest.toTransaction();
2415
- if (transaction.type === import_transactions7.TransactionType.Script) {
2456
+ if (transaction.type === import_transactions8.TransactionType.Script) {
2416
2457
  transaction.receiptsRoot = import_configs7.ZeroBytes32;
2417
2458
  }
2418
2459
  transaction.inputs = transaction.inputs.map((input) => {
2419
2460
  const inputClone = (0, import_ramda2.clone)(input);
2420
2461
  switch (inputClone.type) {
2421
- case import_transactions7.InputType.Coin: {
2462
+ case import_transactions8.InputType.Coin: {
2422
2463
  inputClone.txPointer = {
2423
2464
  blockHeight: 0,
2424
2465
  txIndex: 0
@@ -2426,11 +2467,11 @@ function hashTransaction(transactionRequest, chainId) {
2426
2467
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2427
2468
  return inputClone;
2428
2469
  }
2429
- case import_transactions7.InputType.Message: {
2470
+ case import_transactions8.InputType.Message: {
2430
2471
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2431
2472
  return inputClone;
2432
2473
  }
2433
- case import_transactions7.InputType.Contract: {
2474
+ case import_transactions8.InputType.Contract: {
2434
2475
  inputClone.txPointer = {
2435
2476
  blockHeight: 0,
2436
2477
  txIndex: 0
@@ -2448,16 +2489,16 @@ function hashTransaction(transactionRequest, chainId) {
2448
2489
  transaction.outputs = transaction.outputs.map((output) => {
2449
2490
  const outputClone = (0, import_ramda2.clone)(output);
2450
2491
  switch (outputClone.type) {
2451
- case import_transactions7.OutputType.Contract: {
2492
+ case import_transactions8.OutputType.Contract: {
2452
2493
  outputClone.balanceRoot = import_configs7.ZeroBytes32;
2453
2494
  outputClone.stateRoot = import_configs7.ZeroBytes32;
2454
2495
  return outputClone;
2455
2496
  }
2456
- case import_transactions7.OutputType.Change: {
2497
+ case import_transactions8.OutputType.Change: {
2457
2498
  outputClone.amount = (0, import_math8.bn)(0);
2458
2499
  return outputClone;
2459
2500
  }
2460
- case import_transactions7.OutputType.Variable: {
2501
+ case import_transactions8.OutputType.Variable: {
2461
2502
  outputClone.to = import_configs7.ZeroBytes32;
2462
2503
  outputClone.amount = (0, import_math8.bn)(0);
2463
2504
  outputClone.assetId = import_configs7.ZeroBytes32;
@@ -2470,7 +2511,7 @@ function hashTransaction(transactionRequest, chainId) {
2470
2511
  transaction.witnessesCount = 0;
2471
2512
  transaction.witnesses = [];
2472
2513
  const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
2473
- const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
2514
+ const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
2474
2515
  return (0, import_hasher.sha256)(concatenatedData);
2475
2516
  }
2476
2517
 
@@ -2506,7 +2547,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2506
2547
  return new this(obj);
2507
2548
  }
2508
2549
  /** Type of the transaction */
2509
- type = import_transactions8.TransactionType.Create;
2550
+ type = import_transactions9.TransactionType.Create;
2510
2551
  /** Witness index of contract bytecode to create */
2511
2552
  bytecodeWitnessIndex;
2512
2553
  /** Salt */
@@ -2534,7 +2575,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2534
2575
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2535
2576
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2536
2577
  return {
2537
- type: import_transactions8.TransactionType.Create,
2578
+ type: import_transactions9.TransactionType.Create,
2538
2579
  ...baseTransaction,
2539
2580
  bytecodeWitnessIndex,
2540
2581
  storageSlotsCount: (0, import_math9.bn)(storageSlots.length),
@@ -2549,7 +2590,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2549
2590
  */
2550
2591
  getContractCreatedOutputs() {
2551
2592
  return this.outputs.filter(
2552
- (output) => output.type === import_transactions8.OutputType.ContractCreated
2593
+ (output) => output.type === import_transactions9.OutputType.ContractCreated
2553
2594
  );
2554
2595
  }
2555
2596
  /**
@@ -2570,7 +2611,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2570
2611
  */
2571
2612
  addContractCreatedOutput(contractId, stateRoot) {
2572
2613
  this.pushOutput({
2573
- type: import_transactions8.OutputType.ContractCreated,
2614
+ type: import_transactions9.OutputType.ContractCreated,
2574
2615
  contractId,
2575
2616
  stateRoot
2576
2617
  });
@@ -2590,7 +2631,7 @@ var import_abi_coder3 = require("@fuel-ts/abi-coder");
2590
2631
  var import_address2 = require("@fuel-ts/address");
2591
2632
  var import_configs9 = require("@fuel-ts/address/configs");
2592
2633
  var import_math10 = require("@fuel-ts/math");
2593
- var import_transactions9 = require("@fuel-ts/transactions");
2634
+ var import_transactions10 = require("@fuel-ts/transactions");
2594
2635
  var import_utils15 = require("@fuel-ts/utils");
2595
2636
 
2596
2637
  // src/providers/transaction-request/scripts.ts
@@ -2628,7 +2669,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2628
2669
  return new this(obj);
2629
2670
  }
2630
2671
  /** Type of the transaction */
2631
- type = import_transactions9.TransactionType.Script;
2672
+ type = import_transactions10.TransactionType.Script;
2632
2673
  /** Gas limit for transaction */
2633
2674
  gasLimit;
2634
2675
  /** Script to execute */
@@ -2657,7 +2698,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2657
2698
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2658
2699
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2659
2700
  return {
2660
- type: import_transactions9.TransactionType.Script,
2701
+ type: import_transactions10.TransactionType.Script,
2661
2702
  scriptGasLimit: this.gasLimit,
2662
2703
  ...super.getBaseTransaction(),
2663
2704
  scriptLength: (0, import_math10.bn)(script.length),
@@ -2674,7 +2715,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2674
2715
  */
2675
2716
  getContractInputs() {
2676
2717
  return this.inputs.filter(
2677
- (input) => input.type === import_transactions9.InputType.Contract
2718
+ (input) => input.type === import_transactions10.InputType.Contract
2678
2719
  );
2679
2720
  }
2680
2721
  /**
@@ -2684,7 +2725,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2684
2725
  */
2685
2726
  getContractOutputs() {
2686
2727
  return this.outputs.filter(
2687
- (output) => output.type === import_transactions9.OutputType.Contract
2728
+ (output) => output.type === import_transactions10.OutputType.Contract
2688
2729
  );
2689
2730
  }
2690
2731
  /**
@@ -2694,7 +2735,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2694
2735
  */
2695
2736
  getVariableOutputs() {
2696
2737
  return this.outputs.filter(
2697
- (output) => output.type === import_transactions9.OutputType.Variable
2738
+ (output) => output.type === import_transactions10.OutputType.Variable
2698
2739
  );
2699
2740
  }
2700
2741
  /**
@@ -2717,7 +2758,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2717
2758
  let outputsNumber = numberOfVariables;
2718
2759
  while (outputsNumber) {
2719
2760
  this.pushOutput({
2720
- type: import_transactions9.OutputType.Variable
2761
+ type: import_transactions10.OutputType.Variable
2721
2762
  });
2722
2763
  outputsNumber -= 1;
2723
2764
  }
@@ -2751,12 +2792,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2751
2792
  return this;
2752
2793
  }
2753
2794
  const inputIndex = super.pushInput({
2754
- type: import_transactions9.InputType.Contract,
2795
+ type: import_transactions10.InputType.Contract,
2755
2796
  contractId: contractAddress.toB256(),
2756
2797
  txPointer: "0x00000000000000000000000000000000"
2757
2798
  });
2758
2799
  this.pushOutput({
2759
- type: import_transactions9.OutputType.Contract,
2800
+ type: import_transactions10.OutputType.Contract,
2760
2801
  inputIndex
2761
2802
  });
2762
2803
  return this;
@@ -2793,17 +2834,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2793
2834
 
2794
2835
  // src/providers/transaction-request/utils.ts
2795
2836
  var import_errors9 = require("@fuel-ts/errors");
2796
- var import_transactions10 = require("@fuel-ts/transactions");
2837
+ var import_transactions11 = require("@fuel-ts/transactions");
2797
2838
  var transactionRequestify = (obj) => {
2798
2839
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2799
2840
  return obj;
2800
2841
  }
2801
2842
  const { type } = obj;
2802
2843
  switch (obj.type) {
2803
- case import_transactions10.TransactionType.Script: {
2844
+ case import_transactions11.TransactionType.Script: {
2804
2845
  return ScriptTransactionRequest.from(obj);
2805
2846
  }
2806
- case import_transactions10.TransactionType.Create: {
2847
+ case import_transactions11.TransactionType.Create: {
2807
2848
  return CreateTransactionRequest.from(obj);
2808
2849
  }
2809
2850
  default: {
@@ -2813,10 +2854,10 @@ var transactionRequestify = (obj) => {
2813
2854
  };
2814
2855
  var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
2815
2856
  (acc, input) => {
2816
- if (input.type === import_transactions10.InputType.Coin && input.owner === owner) {
2857
+ if (input.type === import_transactions11.InputType.Coin && input.owner === owner) {
2817
2858
  acc.utxos.push(input.id);
2818
2859
  }
2819
- if (input.type === import_transactions10.InputType.Message && input.recipient === owner) {
2860
+ if (input.type === import_transactions11.InputType.Message && input.recipient === owner) {
2820
2861
  acc.messages.push(input.nonce);
2821
2862
  }
2822
2863
  return acc;
@@ -2830,17 +2871,17 @@ var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
2830
2871
  // src/providers/transaction-response/transaction-response.ts
2831
2872
  var import_errors13 = require("@fuel-ts/errors");
2832
2873
  var import_math15 = require("@fuel-ts/math");
2833
- var import_transactions18 = require("@fuel-ts/transactions");
2874
+ var import_transactions19 = require("@fuel-ts/transactions");
2834
2875
  var import_utils20 = require("@fuel-ts/utils");
2835
2876
 
2836
2877
  // src/providers/transaction-summary/assemble-transaction-summary.ts
2837
2878
  var import_math14 = require("@fuel-ts/math");
2838
- var import_transactions16 = require("@fuel-ts/transactions");
2879
+ var import_transactions17 = require("@fuel-ts/transactions");
2839
2880
  var import_utils18 = require("@fuel-ts/utils");
2840
2881
 
2841
2882
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2842
2883
  var import_math11 = require("@fuel-ts/math");
2843
- var import_transactions11 = require("@fuel-ts/transactions");
2884
+ var import_transactions12 = require("@fuel-ts/transactions");
2844
2885
  var import_utils16 = require("@fuel-ts/utils");
2845
2886
  var calculateTransactionFee = (params) => {
2846
2887
  const {
@@ -2852,8 +2893,8 @@ var calculateTransactionFee = (params) => {
2852
2893
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2853
2894
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2854
2895
  const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
2855
- const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
2856
- if (transaction.type === import_transactions11.TransactionType.Mint) {
2896
+ const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2897
+ if (transaction.type === import_transactions12.TransactionType.Mint) {
2857
2898
  return {
2858
2899
  fee: (0, import_math11.bn)(0),
2859
2900
  minFee: (0, import_math11.bn)(0),
@@ -2863,7 +2904,7 @@ var calculateTransactionFee = (params) => {
2863
2904
  const { type, witnesses, inputs, policies } = transaction;
2864
2905
  let metadataGas = (0, import_math11.bn)(0);
2865
2906
  let gasLimit = (0, import_math11.bn)(0);
2866
- if (type === import_transactions11.TransactionType.Create) {
2907
+ if (type === import_transactions12.TransactionType.Create) {
2867
2908
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2868
2909
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2869
2910
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2889,7 +2930,7 @@ var calculateTransactionFee = (params) => {
2889
2930
  metadataGas,
2890
2931
  txBytesSize: transactionBytes.length
2891
2932
  });
2892
- const witnessLimit = policies.find((policy) => policy.type === import_transactions11.PolicyType.WitnessLimit)?.data;
2933
+ const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
2893
2934
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2894
2935
  const maxGas = getMaxGas({
2895
2936
  gasPerByte,
@@ -2922,7 +2963,7 @@ var calculateTransactionFee = (params) => {
2922
2963
  var import_configs10 = require("@fuel-ts/address/configs");
2923
2964
  var import_errors11 = require("@fuel-ts/errors");
2924
2965
  var import_math13 = require("@fuel-ts/math");
2925
- var import_transactions14 = require("@fuel-ts/transactions");
2966
+ var import_transactions15 = require("@fuel-ts/transactions");
2926
2967
 
2927
2968
  // src/providers/transaction-summary/call.ts
2928
2969
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2970,7 +3011,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2970
3011
 
2971
3012
  // src/providers/transaction-summary/input.ts
2972
3013
  var import_errors10 = require("@fuel-ts/errors");
2973
- var import_transactions12 = require("@fuel-ts/transactions");
3014
+ var import_transactions13 = require("@fuel-ts/transactions");
2974
3015
  function getInputsByTypes(inputs, types) {
2975
3016
  return inputs.filter((i) => types.includes(i.type));
2976
3017
  }
@@ -2978,16 +3019,16 @@ function getInputsByType(inputs, type) {
2978
3019
  return inputs.filter((i) => i.type === type);
2979
3020
  }
2980
3021
  function getInputsCoin(inputs) {
2981
- return getInputsByType(inputs, import_transactions12.InputType.Coin);
3022
+ return getInputsByType(inputs, import_transactions13.InputType.Coin);
2982
3023
  }
2983
3024
  function getInputsMessage(inputs) {
2984
- return getInputsByType(inputs, import_transactions12.InputType.Message);
3025
+ return getInputsByType(inputs, import_transactions13.InputType.Message);
2985
3026
  }
2986
3027
  function getInputsCoinAndMessage(inputs) {
2987
- return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
3028
+ return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2988
3029
  }
2989
3030
  function getInputsContract(inputs) {
2990
- return getInputsByType(inputs, import_transactions12.InputType.Contract);
3031
+ return getInputsByType(inputs, import_transactions13.InputType.Contract);
2991
3032
  }
2992
3033
  function getInputFromAssetId(inputs, assetId) {
2993
3034
  const coinInputs = getInputsCoin(inputs);
@@ -3006,7 +3047,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
3006
3047
  if (!contractInput) {
3007
3048
  return void 0;
3008
3049
  }
3009
- if (contractInput.type !== import_transactions12.InputType.Contract) {
3050
+ if (contractInput.type !== import_transactions13.InputType.Contract) {
3010
3051
  throw new import_errors10.FuelError(
3011
3052
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
3012
3053
  `Contract input should be of type 'contract'.`
@@ -3015,34 +3056,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
3015
3056
  return contractInput;
3016
3057
  }
3017
3058
  function getInputAccountAddress(input) {
3018
- if (input.type === import_transactions12.InputType.Coin) {
3059
+ if (input.type === import_transactions13.InputType.Coin) {
3019
3060
  return input.owner.toString();
3020
3061
  }
3021
- if (input.type === import_transactions12.InputType.Message) {
3062
+ if (input.type === import_transactions13.InputType.Message) {
3022
3063
  return input.recipient.toString();
3023
3064
  }
3024
3065
  return "";
3025
3066
  }
3026
3067
 
3027
3068
  // src/providers/transaction-summary/output.ts
3028
- var import_transactions13 = require("@fuel-ts/transactions");
3069
+ var import_transactions14 = require("@fuel-ts/transactions");
3029
3070
  function getOutputsByType(outputs, type) {
3030
3071
  return outputs.filter((o) => o.type === type);
3031
3072
  }
3032
3073
  function getOutputsContractCreated(outputs) {
3033
- return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
3074
+ return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
3034
3075
  }
3035
3076
  function getOutputsCoin(outputs) {
3036
- return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
3077
+ return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
3037
3078
  }
3038
3079
  function getOutputsChange(outputs) {
3039
- return getOutputsByType(outputs, import_transactions13.OutputType.Change);
3080
+ return getOutputsByType(outputs, import_transactions14.OutputType.Change);
3040
3081
  }
3041
3082
  function getOutputsContract(outputs) {
3042
- return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
3083
+ return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
3043
3084
  }
3044
3085
  function getOutputsVariable(outputs) {
3045
- return getOutputsByType(outputs, import_transactions13.OutputType.Variable);
3086
+ return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
3046
3087
  }
3047
3088
 
3048
3089
  // src/providers/transaction-summary/types.ts
@@ -3089,11 +3130,11 @@ function getReceiptsByType(receipts, type) {
3089
3130
  }
3090
3131
  function getTransactionTypeName(transactionType) {
3091
3132
  switch (transactionType) {
3092
- case import_transactions14.TransactionType.Mint:
3133
+ case import_transactions15.TransactionType.Mint:
3093
3134
  return "Mint" /* Mint */;
3094
- case import_transactions14.TransactionType.Create:
3135
+ case import_transactions15.TransactionType.Create:
3095
3136
  return "Create" /* Create */;
3096
- case import_transactions14.TransactionType.Script:
3137
+ case import_transactions15.TransactionType.Script:
3097
3138
  return "Script" /* Script */;
3098
3139
  default:
3099
3140
  throw new import_errors11.FuelError(
@@ -3119,10 +3160,10 @@ function hasSameAssetId(a) {
3119
3160
  return (b) => a.assetId === b.assetId;
3120
3161
  }
3121
3162
  function getReceiptsCall(receipts) {
3122
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
3163
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
3123
3164
  }
3124
3165
  function getReceiptsMessageOut(receipts) {
3125
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
3166
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
3126
3167
  }
3127
3168
  var mergeAssets = (op1, op2) => {
3128
3169
  const assets1 = op1.assetsSent || [];
@@ -3161,7 +3202,7 @@ function addOperation(operations, toAdd) {
3161
3202
  return allOperations;
3162
3203
  }
3163
3204
  function getReceiptsTransferOut(receipts) {
3164
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.TransferOut);
3205
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
3165
3206
  }
3166
3207
  function getWithdrawFromFuelOperations({
3167
3208
  inputs,
@@ -3321,11 +3362,11 @@ function getTransferOperations({
3321
3362
  });
3322
3363
  const transferReceipts = getReceiptsByType(
3323
3364
  receipts,
3324
- import_transactions14.ReceiptType.Transfer
3365
+ import_transactions15.ReceiptType.Transfer
3325
3366
  );
3326
3367
  const transferOutReceipts = getReceiptsByType(
3327
3368
  receipts,
3328
- import_transactions14.ReceiptType.TransferOut
3369
+ import_transactions15.ReceiptType.TransferOut
3329
3370
  );
3330
3371
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3331
3372
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3410,17 +3451,17 @@ function getOperations({
3410
3451
  }
3411
3452
 
3412
3453
  // src/providers/transaction-summary/receipt.ts
3413
- var import_transactions15 = require("@fuel-ts/transactions");
3454
+ var import_transactions16 = require("@fuel-ts/transactions");
3414
3455
  var processGqlReceipt = (gqlReceipt) => {
3415
3456
  const receipt = assembleReceiptByType(gqlReceipt);
3416
3457
  switch (receipt.type) {
3417
- case import_transactions15.ReceiptType.ReturnData: {
3458
+ case import_transactions16.ReceiptType.ReturnData: {
3418
3459
  return {
3419
3460
  ...receipt,
3420
3461
  data: gqlReceipt.data || "0x"
3421
3462
  };
3422
3463
  }
3423
- case import_transactions15.ReceiptType.LogData: {
3464
+ case import_transactions16.ReceiptType.LogData: {
3424
3465
  return {
3425
3466
  ...receipt,
3426
3467
  data: gqlReceipt.data || "0x"
@@ -3433,7 +3474,7 @@ var processGqlReceipt = (gqlReceipt) => {
3433
3474
  var extractMintedAssetsFromReceipts = (receipts) => {
3434
3475
  const mintedAssets = [];
3435
3476
  receipts.forEach((receipt) => {
3436
- if (receipt.type === import_transactions15.ReceiptType.Mint) {
3477
+ if (receipt.type === import_transactions16.ReceiptType.Mint) {
3437
3478
  mintedAssets.push({
3438
3479
  subId: receipt.subId,
3439
3480
  contractId: receipt.contractId,
@@ -3447,7 +3488,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3447
3488
  var extractBurnedAssetsFromReceipts = (receipts) => {
3448
3489
  const burnedAssets = [];
3449
3490
  receipts.forEach((receipt) => {
3450
- if (receipt.type === import_transactions15.ReceiptType.Burn) {
3491
+ if (receipt.type === import_transactions16.ReceiptType.Burn) {
3451
3492
  burnedAssets.push({
3452
3493
  subId: receipt.subId,
3453
3494
  contractId: receipt.contractId,
@@ -3544,7 +3585,7 @@ function assembleTransactionSummary(params) {
3544
3585
  maxInputs
3545
3586
  });
3546
3587
  const typeName = getTransactionTypeName(transaction.type);
3547
- const tip = (0, import_math14.bn)(transaction.policies?.find((policy) => policy.type === import_transactions16.PolicyType.Tip)?.data);
3588
+ const tip = (0, import_math14.bn)(transaction.policies?.find((policy) => policy.type === import_transactions17.PolicyType.Tip)?.data);
3548
3589
  const { fee } = calculateTransactionFee({
3549
3590
  gasPrice,
3550
3591
  rawPayload,
@@ -3591,12 +3632,12 @@ function assembleTransactionSummary(params) {
3591
3632
 
3592
3633
  // src/providers/transaction-response/getDecodedLogs.ts
3593
3634
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3594
- var import_transactions17 = require("@fuel-ts/transactions");
3635
+ var import_transactions18 = require("@fuel-ts/transactions");
3595
3636
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3596
3637
  return receipts.reduce((logs, receipt) => {
3597
- if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
3638
+ if (receipt.type === import_transactions18.ReceiptType.LogData || receipt.type === import_transactions18.ReceiptType.Log) {
3598
3639
  const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
3599
- const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3640
+ const data = receipt.type === import_transactions18.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3600
3641
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3601
3642
  logs.push(decodedLog);
3602
3643
  }
@@ -3669,7 +3710,7 @@ var TransactionResponse = class {
3669
3710
  * @returns The decoded transaction.
3670
3711
  */
3671
3712
  decodeTransaction(transactionWithReceipts) {
3672
- return new import_transactions18.TransactionCoder().decode(
3713
+ return new import_transactions19.TransactionCoder().decode(
3673
3714
  (0, import_utils20.arrayify)(transactionWithReceipts.rawPayload),
3674
3715
  0
3675
3716
  )?.[0];
@@ -4120,7 +4161,7 @@ var _Provider = class {
4120
4161
  }
4121
4162
  const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
4122
4163
  let abis;
4123
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4164
+ if (transactionRequest.type === import_transactions20.TransactionType.Script) {
4124
4165
  abis = transactionRequest.abis;
4125
4166
  }
4126
4167
  if (awaitExecution) {
@@ -4212,7 +4253,7 @@ var _Provider = class {
4212
4253
  * @returns A promise.
4213
4254
  */
4214
4255
  async estimateTxDependencies(transactionRequest) {
4215
- if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4256
+ if (transactionRequest.type === import_transactions20.TransactionType.Create) {
4216
4257
  return {
4217
4258
  receipts: [],
4218
4259
  outputVariables: 0,
@@ -4276,7 +4317,7 @@ var _Provider = class {
4276
4317
  const allRequests = (0, import_ramda3.clone)(transactionRequests);
4277
4318
  const serializedTransactionsMap = /* @__PURE__ */ new Map();
4278
4319
  allRequests.forEach((req, index) => {
4279
- if (req.type === import_transactions19.TransactionType.Script) {
4320
+ if (req.type === import_transactions20.TransactionType.Script) {
4280
4321
  serializedTransactionsMap.set(index, (0, import_utils22.hexlify)(req.toTransactionBytes()));
4281
4322
  }
4282
4323
  });
@@ -4302,7 +4343,7 @@ var _Provider = class {
4302
4343
  );
4303
4344
  const hasMissingOutputs = missingOutputVariables.length > 0 || missingOutputContractIds.length > 0;
4304
4345
  const request = allRequests[requestIdx];
4305
- if (hasMissingOutputs && request?.type === import_transactions19.TransactionType.Script) {
4346
+ if (hasMissingOutputs && request?.type === import_transactions20.TransactionType.Script) {
4306
4347
  result.outputVariables += missingOutputVariables.length;
4307
4348
  request.addVariableOutputs(missingOutputVariables.length);
4308
4349
  missingOutputContractIds.forEach(({ contractId }) => {
@@ -4358,7 +4399,7 @@ var _Provider = class {
4358
4399
  tip: transactionRequest.tip
4359
4400
  }).add(1);
4360
4401
  let gasLimit = (0, import_math16.bn)(0);
4361
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4402
+ if (transactionRequest.type === import_transactions20.TransactionType.Script) {
4362
4403
  gasLimit = transactionRequest.gasLimit;
4363
4404
  if (transactionRequest.gasLimit.eq(0)) {
4364
4405
  transactionRequest.gasLimit = minGas;
@@ -4428,7 +4469,7 @@ var _Provider = class {
4428
4469
  */
4429
4470
  async getTransactionCost(transactionRequestLike, { resourcesOwner, signatureCallback, quantitiesToContract = [] } = {}) {
4430
4471
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4431
- const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4472
+ const isScriptTransaction = txRequestClone.type === import_transactions20.TransactionType.Script;
4432
4473
  const baseAssetId = this.getBaseAssetId();
4433
4474
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4434
4475
  const allQuantities = mergeQuantities(coinOutputsQuantities, quantitiesToContract);
@@ -4652,7 +4693,7 @@ var _Provider = class {
4652
4693
  time: block.header.time,
4653
4694
  transactionIds: block.transactions.map((tx) => tx.id),
4654
4695
  transactions: block.transactions.map(
4655
- (tx) => new import_transactions19.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
4696
+ (tx) => new import_transactions20.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
4656
4697
  )
4657
4698
  };
4658
4699
  }
@@ -4667,7 +4708,7 @@ var _Provider = class {
4667
4708
  if (!transaction) {
4668
4709
  return null;
4669
4710
  }
4670
- return new import_transactions19.TransactionCoder().decode(
4711
+ return new import_transactions20.TransactionCoder().decode(
4671
4712
  (0, import_utils22.arrayify)(transaction.rawPayload),
4672
4713
  0
4673
4714
  )?.[0];
@@ -4747,7 +4788,7 @@ var _Provider = class {
4747
4788
  });
4748
4789
  const messages = result.messages.edges.map((edge) => edge.node);
4749
4790
  return messages.map((message) => ({
4750
- messageId: import_transactions19.InputMessageCoder.getMessageId({
4791
+ messageId: import_transactions20.InputMessageCoder.getMessageId({
4751
4792
  sender: message.sender,
4752
4793
  recipient: message.recipient,
4753
4794
  nonce: message.nonce,
@@ -4758,7 +4799,7 @@ var _Provider = class {
4758
4799
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4759
4800
  nonce: message.nonce,
4760
4801
  amount: (0, import_math16.bn)(message.amount),
4761
- data: import_transactions19.InputMessageCoder.decodeData(message.data),
4802
+ data: import_transactions20.InputMessageCoder.decodeData(message.data),
4762
4803
  daHeight: (0, import_math16.bn)(message.daHeight)
4763
4804
  }));
4764
4805
  }
@@ -4902,7 +4943,7 @@ cacheInputs_fn = function(inputs) {
4902
4943
  return;
4903
4944
  }
4904
4945
  inputs.forEach((input) => {
4905
- if (input.type === import_transactions19.InputType.Coin) {
4946
+ if (input.type === import_transactions20.InputType.Coin) {
4906
4947
  this.cache?.set(input.id);
4907
4948
  }
4908
4949
  });
@@ -4913,7 +4954,7 @@ __publicField(Provider, "nodeInfoCache", {});
4913
4954
  // src/providers/transaction-summary/get-transaction-summary.ts
4914
4955
  var import_errors15 = require("@fuel-ts/errors");
4915
4956
  var import_math17 = require("@fuel-ts/math");
4916
- var import_transactions20 = require("@fuel-ts/transactions");
4957
+ var import_transactions21 = require("@fuel-ts/transactions");
4917
4958
  var import_utils25 = require("@fuel-ts/utils");
4918
4959
  async function getTransactionSummary(params) {
4919
4960
  const { id, provider, abiMap } = params;
@@ -4926,7 +4967,7 @@ async function getTransactionSummary(params) {
4926
4967
  `Transaction not found for given id: ${id}.`
4927
4968
  );
4928
4969
  }
4929
- const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
4970
+ const [decodedTransaction] = new import_transactions21.TransactionCoder().decode(
4930
4971
  (0, import_utils25.arrayify)(gqlTransaction.rawPayload),
4931
4972
  0
4932
4973
  );
@@ -4991,7 +5032,7 @@ async function getTransactionsSummaries(params) {
4991
5032
  const transactions = edges.map((edge) => {
4992
5033
  const { node: gqlTransaction } = edge;
4993
5034
  const { id, rawPayload, status } = gqlTransaction;
4994
- const [decodedTransaction] = new import_transactions20.TransactionCoder().decode((0, import_utils25.arrayify)(rawPayload), 0);
5035
+ const [decodedTransaction] = new import_transactions21.TransactionCoder().decode((0, import_utils25.arrayify)(rawPayload), 0);
4995
5036
  let txReceipts = [];
4996
5037
  if (gqlTransaction?.status && "receipts" in gqlTransaction.status) {
4997
5038
  txReceipts = gqlTransaction.status.receipts;
@@ -9070,7 +9111,7 @@ var StorageAbstract = class {
9070
9111
  var import_abi_coder7 = require("@fuel-ts/abi-coder");
9071
9112
  var import_address10 = require("@fuel-ts/address");
9072
9113
  var import_errors25 = require("@fuel-ts/errors");
9073
- var import_transactions21 = require("@fuel-ts/transactions");
9114
+ var import_transactions22 = require("@fuel-ts/transactions");
9074
9115
  var import_utils36 = require("@fuel-ts/utils");
9075
9116
 
9076
9117
  // src/predicate/utils/getPredicateRoot.ts
@@ -9129,10 +9170,15 @@ var Predicate = class extends Account {
9129
9170
  populateTransactionPredicateData(transactionRequestLike) {
9130
9171
  const request = transactionRequestify(transactionRequestLike);
9131
9172
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
9132
- request.inputs?.forEach((input) => {
9133
- if (input.type === import_transactions21.InputType.Coin && (0, import_utils36.hexlify)(input.owner) === this.address.toB256()) {
9173
+ const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
9174
+ if (placeholderIndex !== -1) {
9175
+ request.removeWitness(placeholderIndex);
9176
+ }
9177
+ request.inputs.filter(isRequestInputResource).forEach((input) => {
9178
+ if (isRequestInputResourceFromOwner(input, this.address)) {
9134
9179
  input.predicate = (0, import_utils36.hexlify)(this.bytes);
9135
9180
  input.predicateData = (0, import_utils36.hexlify)(this.getPredicateData(policies.length));
9181
+ input.witnessIndex = 0;
9136
9182
  }
9137
9183
  });
9138
9184
  return request;
@@ -9162,7 +9208,7 @@ var Predicate = class extends Account {
9162
9208
  return new Uint8Array();
9163
9209
  }
9164
9210
  const mainFn = this.interface?.functions.main;
9165
- const paddedCode = new import_transactions21.ByteArrayCoder(this.bytes.length).encode(this.bytes);
9211
+ const paddedCode = new import_transactions22.ByteArrayCoder(this.bytes.length).encode(this.bytes);
9166
9212
  const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
9167
9213
  maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
9168
9214
  });
@@ -9255,6 +9301,28 @@ var Predicate = class extends Account {
9255
9301
  }
9256
9302
  return mutatedBytes;
9257
9303
  }
9304
+ /**
9305
+ * Returns the index of the witness placeholder that was added to this predicate.
9306
+ * If no witness placeholder was added, it returns -1.
9307
+ * @param request - The transaction request.
9308
+ * @returns The index of the witness placeholder, or -1 if there is no witness placeholder.
9309
+ */
9310
+ getIndexFromPlaceholderWitness(request) {
9311
+ const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
9312
+ let index = -1;
9313
+ const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
9314
+ if (hasEmptyPredicateInputs) {
9315
+ index = hasEmptyPredicateInputs.witnessIndex;
9316
+ const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
9317
+ if (!allInputsAreEmpty) {
9318
+ const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
9319
+ if (wasFilledInputAddedFirst) {
9320
+ index = -1;
9321
+ }
9322
+ }
9323
+ }
9324
+ return index;
9325
+ }
9258
9326
  };
9259
9327
 
9260
9328
  // src/connectors/fuel.ts
@@ -9978,6 +10046,7 @@ __publicField(Fuel, "defaultConfig", {});
9978
10046
  assets,
9979
10047
  buildBlockExplorerUrl,
9980
10048
  cacheFor,
10049
+ cacheResources,
9981
10050
  cacheTxInputsFromOwner,
9982
10051
  calculateGasFee,
9983
10052
  calculateMetadataGasForTxCreate,
@@ -10025,6 +10094,7 @@ __publicField(Fuel, "defaultConfig", {});
10025
10094
  getReceiptsMessageOut,
10026
10095
  getReceiptsTransferOut,
10027
10096
  getReceiptsWithMissingData,
10097
+ getRequestInputResourceOwner,
10028
10098
  getTransactionStatusName,
10029
10099
  getTransactionSummary,
10030
10100
  getTransactionSummaryFromRequest,
@@ -10038,6 +10108,10 @@ __publicField(Fuel, "defaultConfig", {});
10038
10108
  isMessage,
10039
10109
  isRawCoin,
10040
10110
  isRawMessage,
10111
+ isRequestInputCoin,
10112
+ isRequestInputMessage,
10113
+ isRequestInputResource,
10114
+ isRequestInputResourceFromOwner,
10041
10115
  isType,
10042
10116
  isTypeCreate,
10043
10117
  isTypeMint,