@fuel-ts/account 0.0.0-rc-2045-20240422223402 → 0.0.0-rc-2037-20240423110545

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @fuel-ts/account might be problematic. Click here for more details.

Files changed (35) hide show
  1. package/dist/index.global.js +86 -39
  2. package/dist/index.global.js.map +1 -1
  3. package/dist/index.js +201 -141
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +118 -64
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/predicate/predicate.d.ts +17 -2
  8. package/dist/predicate/predicate.d.ts.map +1 -1
  9. package/dist/providers/coin.d.ts +2 -1
  10. package/dist/providers/coin.d.ts.map +1 -1
  11. package/dist/providers/message.d.ts +1 -0
  12. package/dist/providers/message.d.ts.map +1 -1
  13. package/dist/providers/transaction-request/helpers.d.ts +10 -0
  14. package/dist/providers/transaction-request/helpers.d.ts.map +1 -0
  15. package/dist/providers/transaction-request/index.d.ts +1 -0
  16. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  17. package/dist/providers/transaction-request/transaction-request.d.ts +4 -20
  18. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  19. package/dist/test-utils/index.d.ts +1 -0
  20. package/dist/test-utils/index.d.ts.map +1 -1
  21. package/dist/test-utils/resources.d.ts +4 -0
  22. package/dist/test-utils/resources.d.ts.map +1 -0
  23. package/dist/test-utils/seedTestWallet.d.ts +1 -1
  24. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  25. package/dist/test-utils/transactionRequest.d.ts +5 -0
  26. package/dist/test-utils/transactionRequest.d.ts.map +1 -0
  27. package/dist/test-utils.global.js +64 -40
  28. package/dist/test-utils.global.js.map +1 -1
  29. package/dist/test-utils.js +173 -135
  30. package/dist/test-utils.js.map +1 -1
  31. package/dist/test-utils.mjs +99 -64
  32. package/dist/test-utils.mjs.map +1 -1
  33. package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
  34. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  35. 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
  calculateMetadataGasForTxCreate: () => calculateMetadataGasForTxCreate,
108
109
  calculateMetadataGasForTxScript: () => calculateMetadataGasForTxScript,
109
110
  calculatePriceWithFactor: () => calculatePriceWithFactor,
@@ -150,6 +151,7 @@ __export(src_exports, {
150
151
  getReceiptsMessageOut: () => getReceiptsMessageOut,
151
152
  getReceiptsTransferOut: () => getReceiptsTransferOut,
152
153
  getReceiptsWithMissingData: () => getReceiptsWithMissingData,
154
+ getRequestInputResourceOwner: () => getRequestInputResourceOwner,
153
155
  getTransactionStatusName: () => getTransactionStatusName,
154
156
  getTransactionSummary: () => getTransactionSummary,
155
157
  getTransactionSummaryFromRequest: () => getTransactionSummaryFromRequest,
@@ -163,6 +165,10 @@ __export(src_exports, {
163
165
  isMessage: () => isMessage,
164
166
  isRawCoin: () => isRawCoin,
165
167
  isRawMessage: () => isRawMessage,
168
+ isRequestInputCoin: () => isRequestInputCoin,
169
+ isRequestInputMessage: () => isRequestInputMessage,
170
+ isRequestInputResource: () => isRequestInputResource,
171
+ isRequestInputResourceFromOwner: () => isRequestInputResourceFromOwner,
166
172
  isType: () => isType,
167
173
  isTypeCreate: () => isTypeCreate,
168
174
  isTypeMint: () => isTypeMint,
@@ -230,7 +236,7 @@ var addAmountToAsset = (params) => {
230
236
  var import_address3 = require("@fuel-ts/address");
231
237
  var import_errors14 = require("@fuel-ts/errors");
232
238
  var import_math15 = require("@fuel-ts/math");
233
- var import_transactions18 = require("@fuel-ts/transactions");
239
+ var import_transactions19 = require("@fuel-ts/transactions");
234
240
  var import_utils23 = require("@fuel-ts/utils");
235
241
  var import_versions = require("@fuel-ts/versions");
236
242
  var import_utils24 = require("@noble/curves/abstract/utils");
@@ -1320,7 +1326,7 @@ var import_address = require("@fuel-ts/address");
1320
1326
  var import_configs7 = require("@fuel-ts/address/configs");
1321
1327
  var import_crypto = require("@fuel-ts/crypto");
1322
1328
  var import_math7 = require("@fuel-ts/math");
1323
- var import_transactions6 = require("@fuel-ts/transactions");
1329
+ var import_transactions7 = require("@fuel-ts/transactions");
1324
1330
  var import_utils9 = require("@fuel-ts/utils");
1325
1331
 
1326
1332
  // src/providers/resource.ts
@@ -1807,6 +1813,28 @@ var NoWitnessByOwnerError = class extends Error {
1807
1813
  name = "NoWitnessByOwnerError";
1808
1814
  };
1809
1815
 
1816
+ // src/providers/transaction-request/helpers.ts
1817
+ var import_transactions6 = require("@fuel-ts/transactions");
1818
+ var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
1819
+ var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
1820
+ var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
1821
+ var getRequestInputResourceOwner = (input) => isRequestInputCoin(input) ? input.owner : input.recipient;
1822
+ var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
1823
+ var cacheResources = (resources) => resources.reduce(
1824
+ (cache2, resource) => {
1825
+ if (isCoin(resource)) {
1826
+ cache2.utxos.push(resource.id);
1827
+ } else {
1828
+ cache2.messages.push(resource.nonce);
1829
+ }
1830
+ return cache2;
1831
+ },
1832
+ {
1833
+ utxos: [],
1834
+ messages: []
1835
+ }
1836
+ );
1837
+
1810
1838
  // src/providers/transaction-request/witness.ts
1811
1839
  var import_utils8 = require("@fuel-ts/utils");
1812
1840
  var witnessify = (value) => {
@@ -1859,20 +1887,20 @@ var BaseTransactionRequest = class {
1859
1887
  let policyTypes = 0;
1860
1888
  const policies = [];
1861
1889
  if (req.gasPrice) {
1862
- policyTypes += import_transactions6.PolicyType.GasPrice;
1863
- policies.push({ data: req.gasPrice, type: import_transactions6.PolicyType.GasPrice });
1890
+ policyTypes += import_transactions7.PolicyType.GasPrice;
1891
+ policies.push({ data: req.gasPrice, type: import_transactions7.PolicyType.GasPrice });
1864
1892
  }
1865
1893
  if (req.witnessLimit) {
1866
- policyTypes += import_transactions6.PolicyType.WitnessLimit;
1867
- policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
1894
+ policyTypes += import_transactions7.PolicyType.WitnessLimit;
1895
+ policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
1868
1896
  }
1869
1897
  if (req.maturity > 0) {
1870
- policyTypes += import_transactions6.PolicyType.Maturity;
1871
- policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
1898
+ policyTypes += import_transactions7.PolicyType.Maturity;
1899
+ policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
1872
1900
  }
1873
1901
  if (req.maxFee) {
1874
- policyTypes += import_transactions6.PolicyType.MaxFee;
1875
- policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
1902
+ policyTypes += import_transactions7.PolicyType.MaxFee;
1903
+ policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
1876
1904
  }
1877
1905
  return {
1878
1906
  policyTypes,
@@ -1906,7 +1934,7 @@ var BaseTransactionRequest = class {
1906
1934
  * @returns The transaction bytes.
1907
1935
  */
1908
1936
  toTransactionBytes() {
1909
- return new import_transactions6.TransactionCoder().encode(this.toTransaction());
1937
+ return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1910
1938
  }
1911
1939
  /**
1912
1940
  * @hidden
@@ -1997,7 +2025,7 @@ var BaseTransactionRequest = class {
1997
2025
  */
1998
2026
  getCoinInputs() {
1999
2027
  return this.inputs.filter(
2000
- (input) => input.type === import_transactions6.InputType.Coin
2028
+ (input) => input.type === import_transactions7.InputType.Coin
2001
2029
  );
2002
2030
  }
2003
2031
  /**
@@ -2007,7 +2035,7 @@ var BaseTransactionRequest = class {
2007
2035
  */
2008
2036
  getCoinOutputs() {
2009
2037
  return this.outputs.filter(
2010
- (output) => output.type === import_transactions6.OutputType.Coin
2038
+ (output) => output.type === import_transactions7.OutputType.Coin
2011
2039
  );
2012
2040
  }
2013
2041
  /**
@@ -2017,7 +2045,7 @@ var BaseTransactionRequest = class {
2017
2045
  */
2018
2046
  getChangeOutputs() {
2019
2047
  return this.outputs.filter(
2020
- (output) => output.type === import_transactions6.OutputType.Change
2048
+ (output) => output.type === import_transactions7.OutputType.Change
2021
2049
  );
2022
2050
  }
2023
2051
  /**
@@ -2029,9 +2057,9 @@ var BaseTransactionRequest = class {
2029
2057
  const ownerAddress = (0, import_address.addressify)(owner);
2030
2058
  const found = this.inputs.find((input) => {
2031
2059
  switch (input.type) {
2032
- case import_transactions6.InputType.Coin:
2060
+ case import_transactions7.InputType.Coin:
2033
2061
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
2034
- case import_transactions6.InputType.Message:
2062
+ case import_transactions7.InputType.Message:
2035
2063
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
2036
2064
  default:
2037
2065
  return false;
@@ -2047,8 +2075,8 @@ var BaseTransactionRequest = class {
2047
2075
  * @param predicate - Predicate bytes.
2048
2076
  * @param predicateData - Predicate data bytes.
2049
2077
  */
2050
- addCoinInput(coin, predicate) {
2051
- const { assetId, owner, amount } = coin;
2078
+ addCoinInput(coin) {
2079
+ const { assetId, owner, amount, id, predicate } = coin;
2052
2080
  let witnessIndex;
2053
2081
  if (predicate) {
2054
2082
  witnessIndex = 0;
@@ -2059,14 +2087,14 @@ var BaseTransactionRequest = class {
2059
2087
  }
2060
2088
  }
2061
2089
  const input = {
2062
- ...coin,
2063
- type: import_transactions6.InputType.Coin,
2090
+ id,
2091
+ type: import_transactions7.InputType.Coin,
2064
2092
  owner: owner.toB256(),
2065
2093
  amount,
2066
2094
  assetId,
2067
2095
  txPointer: "0x00000000000000000000000000000000",
2068
2096
  witnessIndex,
2069
- predicate: predicate?.bytes
2097
+ predicate
2070
2098
  };
2071
2099
  this.pushInput(input);
2072
2100
  this.addChangeOutput(owner, assetId);
@@ -2079,8 +2107,8 @@ var BaseTransactionRequest = class {
2079
2107
  * @param predicate - Predicate bytes.
2080
2108
  * @param predicateData - Predicate data bytes.
2081
2109
  */
2082
- addMessageInput(message, predicate) {
2083
- const { recipient, sender, amount } = message;
2110
+ addMessageInput(message) {
2111
+ const { recipient, sender, amount, predicate, nonce } = message;
2084
2112
  const assetId = import_configs7.BaseAssetId;
2085
2113
  let witnessIndex;
2086
2114
  if (predicate) {
@@ -2092,13 +2120,13 @@ var BaseTransactionRequest = class {
2092
2120
  }
2093
2121
  }
2094
2122
  const input = {
2095
- ...message,
2096
- type: import_transactions6.InputType.Message,
2123
+ nonce,
2124
+ type: import_transactions7.InputType.Message,
2097
2125
  sender: sender.toB256(),
2098
2126
  recipient: recipient.toB256(),
2099
2127
  amount,
2100
2128
  witnessIndex,
2101
- predicate: predicate?.bytes
2129
+ predicate
2102
2130
  };
2103
2131
  this.pushInput(input);
2104
2132
  this.addChangeOutput(recipient, assetId);
@@ -2129,32 +2157,6 @@ var BaseTransactionRequest = class {
2129
2157
  resources.forEach((resource) => this.addResource(resource));
2130
2158
  return this;
2131
2159
  }
2132
- /**
2133
- * Adds multiple resources to the transaction by adding coin/message inputs and change
2134
- * outputs from the related assetIds.
2135
- *
2136
- * @param resources - The resources to add.
2137
- * @returns This transaction.
2138
- */
2139
- addPredicateResource(resource, predicate) {
2140
- if (isCoin(resource)) {
2141
- this.addCoinInput(resource, predicate);
2142
- } else {
2143
- this.addMessageInput(resource, predicate);
2144
- }
2145
- return this;
2146
- }
2147
- /**
2148
- * Adds multiple predicate coin/message inputs to the transaction and change outputs
2149
- * from the related assetIds.
2150
- *
2151
- * @param resources - The resources to add.
2152
- * @returns This transaction.
2153
- */
2154
- addPredicateResources(resources, predicate) {
2155
- resources.forEach((resource) => this.addPredicateResource(resource, predicate));
2156
- return this;
2157
- }
2158
2160
  /**
2159
2161
  * Adds a coin output to the transaction.
2160
2162
  *
@@ -2164,7 +2166,7 @@ var BaseTransactionRequest = class {
2164
2166
  */
2165
2167
  addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
2166
2168
  this.pushOutput({
2167
- type: import_transactions6.OutputType.Coin,
2169
+ type: import_transactions7.OutputType.Coin,
2168
2170
  to: (0, import_address.addressify)(to).toB256(),
2169
2171
  amount,
2170
2172
  assetId
@@ -2180,7 +2182,7 @@ var BaseTransactionRequest = class {
2180
2182
  addCoinOutputs(to, quantities) {
2181
2183
  quantities.map(coinQuantityfy).forEach((quantity) => {
2182
2184
  this.pushOutput({
2183
- type: import_transactions6.OutputType.Coin,
2185
+ type: import_transactions7.OutputType.Coin,
2184
2186
  to: (0, import_address.addressify)(to).toB256(),
2185
2187
  amount: quantity.amount,
2186
2188
  assetId: quantity.assetId
@@ -2200,7 +2202,7 @@ var BaseTransactionRequest = class {
2200
2202
  );
2201
2203
  if (!changeOutput) {
2202
2204
  this.pushOutput({
2203
- type: import_transactions6.OutputType.Change,
2205
+ type: import_transactions7.OutputType.Change,
2204
2206
  to: (0, import_address.addressify)(to).toB256(),
2205
2207
  assetId
2206
2208
  });
@@ -2303,16 +2305,20 @@ var BaseTransactionRequest = class {
2303
2305
  toJSON() {
2304
2306
  return normalizeJSON(this);
2305
2307
  }
2308
+ removeWitness(index) {
2309
+ this.witnesses.splice(index, 1);
2310
+ this.adjustWitnessIndexes(index);
2311
+ }
2306
2312
  updatePredicateInputs(inputs) {
2307
2313
  this.inputs.forEach((i) => {
2308
2314
  let correspondingInput;
2309
2315
  switch (i.type) {
2310
- case import_transactions6.InputType.Coin:
2311
- correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
2316
+ case import_transactions7.InputType.Coin:
2317
+ correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
2312
2318
  break;
2313
- case import_transactions6.InputType.Message:
2319
+ case import_transactions7.InputType.Message:
2314
2320
  correspondingInput = inputs.find(
2315
- (x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
2321
+ (x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
2316
2322
  );
2317
2323
  break;
2318
2324
  default:
@@ -2325,30 +2331,37 @@ var BaseTransactionRequest = class {
2325
2331
  }
2326
2332
  });
2327
2333
  }
2334
+ adjustWitnessIndexes(removedIndex) {
2335
+ this.inputs.filter(isRequestInputResource).forEach((input) => {
2336
+ if (input.witnessIndex > removedIndex) {
2337
+ input.witnessIndex -= 1;
2338
+ }
2339
+ });
2340
+ }
2328
2341
  };
2329
2342
 
2330
2343
  // src/providers/transaction-request/create-transaction-request.ts
2331
2344
  var import_configs9 = require("@fuel-ts/address/configs");
2332
2345
  var import_math9 = require("@fuel-ts/math");
2333
- var import_transactions8 = require("@fuel-ts/transactions");
2346
+ var import_transactions9 = require("@fuel-ts/transactions");
2334
2347
  var import_utils13 = require("@fuel-ts/utils");
2335
2348
 
2336
2349
  // src/providers/transaction-request/hash-transaction.ts
2337
2350
  var import_configs8 = require("@fuel-ts/address/configs");
2338
2351
  var import_hasher = require("@fuel-ts/hasher");
2339
2352
  var import_math8 = require("@fuel-ts/math");
2340
- var import_transactions7 = require("@fuel-ts/transactions");
2353
+ var import_transactions8 = require("@fuel-ts/transactions");
2341
2354
  var import_utils11 = require("@fuel-ts/utils");
2342
2355
  var import_ramda2 = require("ramda");
2343
2356
  function hashTransaction(transactionRequest, chainId) {
2344
2357
  const transaction = transactionRequest.toTransaction();
2345
- if (transaction.type === import_transactions7.TransactionType.Script) {
2358
+ if (transaction.type === import_transactions8.TransactionType.Script) {
2346
2359
  transaction.receiptsRoot = import_configs8.ZeroBytes32;
2347
2360
  }
2348
2361
  transaction.inputs = transaction.inputs.map((input) => {
2349
2362
  const inputClone = (0, import_ramda2.clone)(input);
2350
2363
  switch (inputClone.type) {
2351
- case import_transactions7.InputType.Coin: {
2364
+ case import_transactions8.InputType.Coin: {
2352
2365
  inputClone.txPointer = {
2353
2366
  blockHeight: 0,
2354
2367
  txIndex: 0
@@ -2356,11 +2369,11 @@ function hashTransaction(transactionRequest, chainId) {
2356
2369
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2357
2370
  return inputClone;
2358
2371
  }
2359
- case import_transactions7.InputType.Message: {
2372
+ case import_transactions8.InputType.Message: {
2360
2373
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2361
2374
  return inputClone;
2362
2375
  }
2363
- case import_transactions7.InputType.Contract: {
2376
+ case import_transactions8.InputType.Contract: {
2364
2377
  inputClone.txPointer = {
2365
2378
  blockHeight: 0,
2366
2379
  txIndex: 0
@@ -2378,16 +2391,16 @@ function hashTransaction(transactionRequest, chainId) {
2378
2391
  transaction.outputs = transaction.outputs.map((output) => {
2379
2392
  const outputClone = (0, import_ramda2.clone)(output);
2380
2393
  switch (outputClone.type) {
2381
- case import_transactions7.OutputType.Contract: {
2394
+ case import_transactions8.OutputType.Contract: {
2382
2395
  outputClone.balanceRoot = import_configs8.ZeroBytes32;
2383
2396
  outputClone.stateRoot = import_configs8.ZeroBytes32;
2384
2397
  return outputClone;
2385
2398
  }
2386
- case import_transactions7.OutputType.Change: {
2399
+ case import_transactions8.OutputType.Change: {
2387
2400
  outputClone.amount = (0, import_math8.bn)(0);
2388
2401
  return outputClone;
2389
2402
  }
2390
- case import_transactions7.OutputType.Variable: {
2403
+ case import_transactions8.OutputType.Variable: {
2391
2404
  outputClone.to = import_configs8.ZeroBytes32;
2392
2405
  outputClone.amount = (0, import_math8.bn)(0);
2393
2406
  outputClone.assetId = import_configs8.ZeroBytes32;
@@ -2400,7 +2413,7 @@ function hashTransaction(transactionRequest, chainId) {
2400
2413
  transaction.witnessesCount = 0;
2401
2414
  transaction.witnesses = [];
2402
2415
  const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
2403
- const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
2416
+ const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
2404
2417
  return (0, import_hasher.sha256)(concatenatedData);
2405
2418
  }
2406
2419
 
@@ -2436,7 +2449,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2436
2449
  return new this(obj);
2437
2450
  }
2438
2451
  /** Type of the transaction */
2439
- type = import_transactions8.TransactionType.Create;
2452
+ type = import_transactions9.TransactionType.Create;
2440
2453
  /** Witness index of contract bytecode to create */
2441
2454
  bytecodeWitnessIndex;
2442
2455
  /** Salt */
@@ -2469,7 +2482,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2469
2482
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2470
2483
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2471
2484
  return {
2472
- type: import_transactions8.TransactionType.Create,
2485
+ type: import_transactions9.TransactionType.Create,
2473
2486
  ...baseTransaction,
2474
2487
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2475
2488
  bytecodeWitnessIndex,
@@ -2485,7 +2498,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2485
2498
  */
2486
2499
  getContractCreatedOutputs() {
2487
2500
  return this.outputs.filter(
2488
- (output) => output.type === import_transactions8.OutputType.ContractCreated
2501
+ (output) => output.type === import_transactions9.OutputType.ContractCreated
2489
2502
  );
2490
2503
  }
2491
2504
  /**
@@ -2506,7 +2519,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2506
2519
  */
2507
2520
  addContractCreatedOutput(contractId, stateRoot) {
2508
2521
  this.pushOutput({
2509
- type: import_transactions8.OutputType.ContractCreated,
2522
+ type: import_transactions9.OutputType.ContractCreated,
2510
2523
  contractId,
2511
2524
  stateRoot
2512
2525
  });
@@ -2526,7 +2539,7 @@ var import_abi_coder3 = require("@fuel-ts/abi-coder");
2526
2539
  var import_address2 = require("@fuel-ts/address");
2527
2540
  var import_configs10 = require("@fuel-ts/address/configs");
2528
2541
  var import_math10 = require("@fuel-ts/math");
2529
- var import_transactions9 = require("@fuel-ts/transactions");
2542
+ var import_transactions10 = require("@fuel-ts/transactions");
2530
2543
  var import_utils15 = require("@fuel-ts/utils");
2531
2544
 
2532
2545
  // src/providers/transaction-request/scripts.ts
@@ -2564,7 +2577,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2564
2577
  return new this(obj);
2565
2578
  }
2566
2579
  /** Type of the transaction */
2567
- type = import_transactions9.TransactionType.Script;
2580
+ type = import_transactions10.TransactionType.Script;
2568
2581
  /** Gas limit for transaction */
2569
2582
  gasLimit;
2570
2583
  /** Script to execute */
@@ -2593,7 +2606,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2593
2606
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2594
2607
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2595
2608
  return {
2596
- type: import_transactions9.TransactionType.Script,
2609
+ type: import_transactions10.TransactionType.Script,
2597
2610
  scriptGasLimit: this.gasLimit,
2598
2611
  ...super.getBaseTransaction(),
2599
2612
  scriptLength: script.length,
@@ -2610,7 +2623,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2610
2623
  */
2611
2624
  getContractInputs() {
2612
2625
  return this.inputs.filter(
2613
- (input) => input.type === import_transactions9.InputType.Contract
2626
+ (input) => input.type === import_transactions10.InputType.Contract
2614
2627
  );
2615
2628
  }
2616
2629
  /**
@@ -2620,7 +2633,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2620
2633
  */
2621
2634
  getContractOutputs() {
2622
2635
  return this.outputs.filter(
2623
- (output) => output.type === import_transactions9.OutputType.Contract
2636
+ (output) => output.type === import_transactions10.OutputType.Contract
2624
2637
  );
2625
2638
  }
2626
2639
  /**
@@ -2630,7 +2643,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2630
2643
  */
2631
2644
  getVariableOutputs() {
2632
2645
  return this.outputs.filter(
2633
- (output) => output.type === import_transactions9.OutputType.Variable
2646
+ (output) => output.type === import_transactions10.OutputType.Variable
2634
2647
  );
2635
2648
  }
2636
2649
  /**
@@ -2653,7 +2666,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2653
2666
  let outputsNumber = numberOfVariables;
2654
2667
  while (outputsNumber) {
2655
2668
  this.pushOutput({
2656
- type: import_transactions9.OutputType.Variable
2669
+ type: import_transactions10.OutputType.Variable
2657
2670
  });
2658
2671
  outputsNumber -= 1;
2659
2672
  }
@@ -2686,12 +2699,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2686
2699
  return this;
2687
2700
  }
2688
2701
  const inputIndex = super.pushInput({
2689
- type: import_transactions9.InputType.Contract,
2702
+ type: import_transactions10.InputType.Contract,
2690
2703
  contractId: contractAddress.toB256(),
2691
2704
  txPointer: "0x00000000000000000000000000000000"
2692
2705
  });
2693
2706
  this.pushOutput({
2694
- type: import_transactions9.OutputType.Contract,
2707
+ type: import_transactions10.OutputType.Contract,
2695
2708
  inputIndex
2696
2709
  });
2697
2710
  return this;
@@ -2728,17 +2741,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2728
2741
 
2729
2742
  // src/providers/transaction-request/utils.ts
2730
2743
  var import_errors9 = require("@fuel-ts/errors");
2731
- var import_transactions10 = require("@fuel-ts/transactions");
2744
+ var import_transactions11 = require("@fuel-ts/transactions");
2732
2745
  var transactionRequestify = (obj) => {
2733
2746
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2734
2747
  return obj;
2735
2748
  }
2736
2749
  const { type } = obj;
2737
2750
  switch (obj.type) {
2738
- case import_transactions10.TransactionType.Script: {
2751
+ case import_transactions11.TransactionType.Script: {
2739
2752
  return ScriptTransactionRequest.from(obj);
2740
2753
  }
2741
- case import_transactions10.TransactionType.Create: {
2754
+ case import_transactions11.TransactionType.Create: {
2742
2755
  return CreateTransactionRequest.from(obj);
2743
2756
  }
2744
2757
  default: {
@@ -2750,7 +2763,7 @@ var transactionRequestify = (obj) => {
2750
2763
  // src/providers/transaction-response/transaction-response.ts
2751
2764
  var import_errors13 = require("@fuel-ts/errors");
2752
2765
  var import_math14 = require("@fuel-ts/math");
2753
- var import_transactions17 = require("@fuel-ts/transactions");
2766
+ var import_transactions18 = require("@fuel-ts/transactions");
2754
2767
  var import_utils21 = require("@fuel-ts/utils");
2755
2768
 
2756
2769
  // src/providers/transaction-summary/assemble-transaction-summary.ts
@@ -2758,7 +2771,7 @@ var import_utils19 = require("@fuel-ts/utils");
2758
2771
 
2759
2772
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2760
2773
  var import_math11 = require("@fuel-ts/math");
2761
- var import_transactions11 = require("@fuel-ts/transactions");
2774
+ var import_transactions12 = require("@fuel-ts/transactions");
2762
2775
  var import_utils16 = require("@fuel-ts/utils");
2763
2776
  var calculateTransactionFee = (params) => {
2764
2777
  const {
@@ -2769,8 +2782,8 @@ var calculateTransactionFee = (params) => {
2769
2782
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2770
2783
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2771
2784
  const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
2772
- const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
2773
- if (transaction.type === import_transactions11.TransactionType.Mint) {
2785
+ const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2786
+ if (transaction.type === import_transactions12.TransactionType.Mint) {
2774
2787
  return {
2775
2788
  fee: (0, import_math11.bn)(0),
2776
2789
  minFee: (0, import_math11.bn)(0),
@@ -2781,7 +2794,7 @@ var calculateTransactionFee = (params) => {
2781
2794
  const { type, witnesses, inputs, policies } = transaction;
2782
2795
  let metadataGas = (0, import_math11.bn)(0);
2783
2796
  let gasLimit = (0, import_math11.bn)(0);
2784
- if (type === import_transactions11.TransactionType.Create) {
2797
+ if (type === import_transactions12.TransactionType.Create) {
2785
2798
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2786
2799
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2787
2800
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2807,8 +2820,8 @@ var calculateTransactionFee = (params) => {
2807
2820
  metadataGas,
2808
2821
  txBytesSize: transactionBytes.length
2809
2822
  });
2810
- const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions11.PolicyType.GasPrice)?.data);
2811
- const witnessLimit = policies.find((policy) => policy.type === import_transactions11.PolicyType.WitnessLimit)?.data;
2823
+ const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions12.PolicyType.GasPrice)?.data);
2824
+ const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
2812
2825
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2813
2826
  const maxGas = getMaxGas({
2814
2827
  gasPerByte,
@@ -2833,7 +2846,7 @@ var calculateTransactionFee = (params) => {
2833
2846
  var import_configs11 = require("@fuel-ts/address/configs");
2834
2847
  var import_errors11 = require("@fuel-ts/errors");
2835
2848
  var import_math13 = require("@fuel-ts/math");
2836
- var import_transactions14 = require("@fuel-ts/transactions");
2849
+ var import_transactions15 = require("@fuel-ts/transactions");
2837
2850
 
2838
2851
  // src/providers/transaction-summary/call.ts
2839
2852
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2881,7 +2894,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2881
2894
 
2882
2895
  // src/providers/transaction-summary/input.ts
2883
2896
  var import_errors10 = require("@fuel-ts/errors");
2884
- var import_transactions12 = require("@fuel-ts/transactions");
2897
+ var import_transactions13 = require("@fuel-ts/transactions");
2885
2898
  function getInputsByTypes(inputs, types) {
2886
2899
  return inputs.filter((i) => types.includes(i.type));
2887
2900
  }
@@ -2889,16 +2902,16 @@ function getInputsByType(inputs, type) {
2889
2902
  return inputs.filter((i) => i.type === type);
2890
2903
  }
2891
2904
  function getInputsCoin(inputs) {
2892
- return getInputsByType(inputs, import_transactions12.InputType.Coin);
2905
+ return getInputsByType(inputs, import_transactions13.InputType.Coin);
2893
2906
  }
2894
2907
  function getInputsMessage(inputs) {
2895
- return getInputsByType(inputs, import_transactions12.InputType.Message);
2908
+ return getInputsByType(inputs, import_transactions13.InputType.Message);
2896
2909
  }
2897
2910
  function getInputsCoinAndMessage(inputs) {
2898
- return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
2911
+ return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2899
2912
  }
2900
2913
  function getInputsContract(inputs) {
2901
- return getInputsByType(inputs, import_transactions12.InputType.Contract);
2914
+ return getInputsByType(inputs, import_transactions13.InputType.Contract);
2902
2915
  }
2903
2916
  function getInputFromAssetId(inputs, assetId) {
2904
2917
  const coinInputs = getInputsCoin(inputs);
@@ -2917,7 +2930,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2917
2930
  if (!contractInput) {
2918
2931
  return void 0;
2919
2932
  }
2920
- if (contractInput.type !== import_transactions12.InputType.Contract) {
2933
+ if (contractInput.type !== import_transactions13.InputType.Contract) {
2921
2934
  throw new import_errors10.FuelError(
2922
2935
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
2923
2936
  `Contract input should be of type 'contract'.`
@@ -2926,34 +2939,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
2926
2939
  return contractInput;
2927
2940
  }
2928
2941
  function getInputAccountAddress(input) {
2929
- if (input.type === import_transactions12.InputType.Coin) {
2942
+ if (input.type === import_transactions13.InputType.Coin) {
2930
2943
  return input.owner.toString();
2931
2944
  }
2932
- if (input.type === import_transactions12.InputType.Message) {
2945
+ if (input.type === import_transactions13.InputType.Message) {
2933
2946
  return input.recipient.toString();
2934
2947
  }
2935
2948
  return "";
2936
2949
  }
2937
2950
 
2938
2951
  // src/providers/transaction-summary/output.ts
2939
- var import_transactions13 = require("@fuel-ts/transactions");
2952
+ var import_transactions14 = require("@fuel-ts/transactions");
2940
2953
  function getOutputsByType(outputs, type) {
2941
2954
  return outputs.filter((o) => o.type === type);
2942
2955
  }
2943
2956
  function getOutputsContractCreated(outputs) {
2944
- return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
2957
+ return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
2945
2958
  }
2946
2959
  function getOutputsCoin(outputs) {
2947
- return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
2960
+ return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
2948
2961
  }
2949
2962
  function getOutputsChange(outputs) {
2950
- return getOutputsByType(outputs, import_transactions13.OutputType.Change);
2963
+ return getOutputsByType(outputs, import_transactions14.OutputType.Change);
2951
2964
  }
2952
2965
  function getOutputsContract(outputs) {
2953
- return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
2966
+ return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
2954
2967
  }
2955
2968
  function getOutputsVariable(outputs) {
2956
- return getOutputsByType(outputs, import_transactions13.OutputType.Variable);
2969
+ return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
2957
2970
  }
2958
2971
 
2959
2972
  // src/providers/transaction-summary/types.ts
@@ -3000,11 +3013,11 @@ function getReceiptsByType(receipts, type) {
3000
3013
  }
3001
3014
  function getTransactionTypeName(transactionType) {
3002
3015
  switch (transactionType) {
3003
- case import_transactions14.TransactionType.Mint:
3016
+ case import_transactions15.TransactionType.Mint:
3004
3017
  return "Mint" /* Mint */;
3005
- case import_transactions14.TransactionType.Create:
3018
+ case import_transactions15.TransactionType.Create:
3006
3019
  return "Create" /* Create */;
3007
- case import_transactions14.TransactionType.Script:
3020
+ case import_transactions15.TransactionType.Script:
3008
3021
  return "Script" /* Script */;
3009
3022
  default:
3010
3023
  throw new import_errors11.FuelError(
@@ -3030,10 +3043,10 @@ function hasSameAssetId(a) {
3030
3043
  return (b) => a.assetId === b.assetId;
3031
3044
  }
3032
3045
  function getReceiptsCall(receipts) {
3033
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
3046
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
3034
3047
  }
3035
3048
  function getReceiptsMessageOut(receipts) {
3036
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
3049
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
3037
3050
  }
3038
3051
  var mergeAssets = (op1, op2) => {
3039
3052
  const assets1 = op1.assetsSent || [];
@@ -3072,7 +3085,7 @@ function addOperation(operations, toAdd) {
3072
3085
  return allOperations;
3073
3086
  }
3074
3087
  function getReceiptsTransferOut(receipts) {
3075
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.TransferOut);
3088
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
3076
3089
  }
3077
3090
  function getWithdrawFromFuelOperations({
3078
3091
  inputs,
@@ -3232,11 +3245,11 @@ function getTransferOperations({
3232
3245
  });
3233
3246
  const transferReceipts = getReceiptsByType(
3234
3247
  receipts,
3235
- import_transactions14.ReceiptType.Transfer
3248
+ import_transactions15.ReceiptType.Transfer
3236
3249
  );
3237
3250
  const transferOutReceipts = getReceiptsByType(
3238
3251
  receipts,
3239
- import_transactions14.ReceiptType.TransferOut
3252
+ import_transactions15.ReceiptType.TransferOut
3240
3253
  );
3241
3254
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3242
3255
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3321,17 +3334,17 @@ function getOperations({
3321
3334
  }
3322
3335
 
3323
3336
  // src/providers/transaction-summary/receipt.ts
3324
- var import_transactions15 = require("@fuel-ts/transactions");
3337
+ var import_transactions16 = require("@fuel-ts/transactions");
3325
3338
  var processGqlReceipt = (gqlReceipt) => {
3326
3339
  const receipt = assembleReceiptByType(gqlReceipt);
3327
3340
  switch (receipt.type) {
3328
- case import_transactions15.ReceiptType.ReturnData: {
3341
+ case import_transactions16.ReceiptType.ReturnData: {
3329
3342
  return {
3330
3343
  ...receipt,
3331
3344
  data: gqlReceipt.data || "0x"
3332
3345
  };
3333
3346
  }
3334
- case import_transactions15.ReceiptType.LogData: {
3347
+ case import_transactions16.ReceiptType.LogData: {
3335
3348
  return {
3336
3349
  ...receipt,
3337
3350
  data: gqlReceipt.data || "0x"
@@ -3344,7 +3357,7 @@ var processGqlReceipt = (gqlReceipt) => {
3344
3357
  var extractMintedAssetsFromReceipts = (receipts) => {
3345
3358
  const mintedAssets = [];
3346
3359
  receipts.forEach((receipt) => {
3347
- if (receipt.type === import_transactions15.ReceiptType.Mint) {
3360
+ if (receipt.type === import_transactions16.ReceiptType.Mint) {
3348
3361
  mintedAssets.push({
3349
3362
  subId: receipt.subId,
3350
3363
  contractId: receipt.contractId,
@@ -3358,7 +3371,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3358
3371
  var extractBurnedAssetsFromReceipts = (receipts) => {
3359
3372
  const burnedAssets = [];
3360
3373
  receipts.forEach((receipt) => {
3361
- if (receipt.type === import_transactions15.ReceiptType.Burn) {
3374
+ if (receipt.type === import_transactions16.ReceiptType.Burn) {
3362
3375
  burnedAssets.push({
3363
3376
  subId: receipt.subId,
3364
3377
  contractId: receipt.contractId,
@@ -3497,12 +3510,12 @@ function assembleTransactionSummary(params) {
3497
3510
 
3498
3511
  // src/providers/transaction-response/getDecodedLogs.ts
3499
3512
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3500
- var import_transactions16 = require("@fuel-ts/transactions");
3513
+ var import_transactions17 = require("@fuel-ts/transactions");
3501
3514
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3502
3515
  return receipts.reduce((logs, receipt) => {
3503
- if (receipt.type === import_transactions16.ReceiptType.LogData || receipt.type === import_transactions16.ReceiptType.Log) {
3516
+ if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
3504
3517
  const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
3505
- const data = receipt.type === import_transactions16.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3518
+ const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3506
3519
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3507
3520
  logs.push(decodedLog);
3508
3521
  }
@@ -3575,7 +3588,7 @@ var TransactionResponse = class {
3575
3588
  * @returns The decoded transaction.
3576
3589
  */
3577
3590
  decodeTransaction(transactionWithReceipts) {
3578
- return new import_transactions17.TransactionCoder().decode(
3591
+ return new import_transactions18.TransactionCoder().decode(
3579
3592
  (0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
3580
3593
  0
3581
3594
  )?.[0];
@@ -4012,7 +4025,7 @@ var _Provider = class {
4012
4025
  }
4013
4026
  const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
4014
4027
  let abis;
4015
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4028
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4016
4029
  abis = transactionRequest.abis;
4017
4030
  }
4018
4031
  if (awaitExecution) {
@@ -4108,7 +4121,7 @@ var _Provider = class {
4108
4121
  * @returns A promise.
4109
4122
  */
4110
4123
  async estimateTxDependencies(transactionRequest) {
4111
- if (transactionRequest.type === import_transactions18.TransactionType.Create) {
4124
+ if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4112
4125
  return {
4113
4126
  receipts: [],
4114
4127
  outputVariables: 0,
@@ -4157,7 +4170,7 @@ var _Provider = class {
4157
4170
  transactionRequest.gasPrice = gasPrice;
4158
4171
  const minGas = transactionRequest.calculateMinGas(chainInfo);
4159
4172
  const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
4160
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4173
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4161
4174
  if (transactionRequest.gasLimit.eq(0)) {
4162
4175
  transactionRequest.gasLimit = minGas;
4163
4176
  transactionRequest.gasLimit = maxGasPerTx.sub(
@@ -4223,7 +4236,7 @@ var _Provider = class {
4223
4236
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4224
4237
  const { minGasPrice } = this.getGasConfig();
4225
4238
  const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
4226
- const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
4239
+ const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4227
4240
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4228
4241
  const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
4229
4242
  txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
@@ -4439,7 +4452,7 @@ var _Provider = class {
4439
4452
  time: block.header.time,
4440
4453
  transactionIds: block.transactions.map((tx) => tx.id),
4441
4454
  transactions: block.transactions.map(
4442
- (tx) => new import_transactions18.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4455
+ (tx) => new import_transactions19.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4443
4456
  )
4444
4457
  };
4445
4458
  }
@@ -4454,7 +4467,7 @@ var _Provider = class {
4454
4467
  if (!transaction) {
4455
4468
  return null;
4456
4469
  }
4457
- return new import_transactions18.TransactionCoder().decode(
4470
+ return new import_transactions19.TransactionCoder().decode(
4458
4471
  (0, import_utils23.arrayify)(transaction.rawPayload),
4459
4472
  0
4460
4473
  )?.[0];
@@ -4534,7 +4547,7 @@ var _Provider = class {
4534
4547
  });
4535
4548
  const messages = result.messages.edges.map((edge) => edge.node);
4536
4549
  return messages.map((message) => ({
4537
- messageId: import_transactions18.InputMessageCoder.getMessageId({
4550
+ messageId: import_transactions19.InputMessageCoder.getMessageId({
4538
4551
  sender: message.sender,
4539
4552
  recipient: message.recipient,
4540
4553
  nonce: message.nonce,
@@ -4545,7 +4558,7 @@ var _Provider = class {
4545
4558
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4546
4559
  nonce: message.nonce,
4547
4560
  amount: (0, import_math15.bn)(message.amount),
4548
- data: import_transactions18.InputMessageCoder.decodeData(message.data),
4561
+ data: import_transactions19.InputMessageCoder.decodeData(message.data),
4549
4562
  daHeight: (0, import_math15.bn)(message.daHeight)
4550
4563
  }));
4551
4564
  }
@@ -4673,7 +4686,7 @@ cacheInputs_fn = function(inputs) {
4673
4686
  return;
4674
4687
  }
4675
4688
  inputs.forEach((input) => {
4676
- if (input.type === import_transactions18.InputType.Coin) {
4689
+ if (input.type === import_transactions19.InputType.Coin) {
4677
4690
  this.cache?.set(input.id);
4678
4691
  }
4679
4692
  });
@@ -4684,7 +4697,7 @@ __publicField(Provider, "nodeInfoCache", {});
4684
4697
  // src/providers/transaction-summary/get-transaction-summary.ts
4685
4698
  var import_errors15 = require("@fuel-ts/errors");
4686
4699
  var import_math16 = require("@fuel-ts/math");
4687
- var import_transactions19 = require("@fuel-ts/transactions");
4700
+ var import_transactions20 = require("@fuel-ts/transactions");
4688
4701
  var import_utils26 = require("@fuel-ts/utils");
4689
4702
  async function getTransactionSummary(params) {
4690
4703
  const { id, provider, abiMap } = params;
@@ -4697,7 +4710,7 @@ async function getTransactionSummary(params) {
4697
4710
  `Transaction not found for given id: ${id}.`
4698
4711
  );
4699
4712
  }
4700
- const [decodedTransaction] = new import_transactions19.TransactionCoder().decode(
4713
+ const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
4701
4714
  (0, import_utils26.arrayify)(gqlTransaction.rawPayload),
4702
4715
  0
4703
4716
  );
@@ -4751,7 +4764,7 @@ async function getTransactionsSummaries(params) {
4751
4764
  const transactions = edges.map((edge) => {
4752
4765
  const { node: gqlTransaction } = edge;
4753
4766
  const { id, rawPayload, receipts: gqlReceipts, status } = gqlTransaction;
4754
- const [decodedTransaction] = new import_transactions19.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
4767
+ const [decodedTransaction] = new import_transactions20.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
4755
4768
  const receipts = gqlReceipts?.map(processGqlReceipt) || [];
4756
4769
  const transactionSummary = assembleTransactionSummary({
4757
4770
  id,
@@ -8828,7 +8841,7 @@ var import_abi_coder7 = require("@fuel-ts/abi-coder");
8828
8841
  var import_address10 = require("@fuel-ts/address");
8829
8842
  var import_configs13 = require("@fuel-ts/address/configs");
8830
8843
  var import_errors25 = require("@fuel-ts/errors");
8831
- var import_transactions20 = require("@fuel-ts/transactions");
8844
+ var import_transactions21 = require("@fuel-ts/transactions");
8832
8845
  var import_utils37 = require("@fuel-ts/utils");
8833
8846
 
8834
8847
  // src/predicate/utils/getPredicateRoot.ts
@@ -8887,10 +8900,15 @@ var Predicate = class extends Account {
8887
8900
  populateTransactionPredicateData(transactionRequestLike) {
8888
8901
  const request = transactionRequestify(transactionRequestLike);
8889
8902
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
8890
- request.inputs?.forEach((input) => {
8891
- if (input.type === import_transactions20.InputType.Coin && (0, import_utils37.hexlify)(input.owner) === this.address.toB256()) {
8903
+ const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
8904
+ if (placeholderIndex !== -1) {
8905
+ request.removeWitness(placeholderIndex);
8906
+ }
8907
+ request.inputs.filter(isRequestInputResource).forEach((input) => {
8908
+ if (isRequestInputResourceFromOwner(input, this.address)) {
8892
8909
  input.predicate = this.bytes;
8893
8910
  input.predicateData = this.getPredicateData(policies.length);
8911
+ input.witnessIndex = 0;
8894
8912
  }
8895
8913
  });
8896
8914
  return request;
@@ -8928,12 +8946,26 @@ var Predicate = class extends Account {
8928
8946
  const transactionRequest = this.populateTransactionPredicateData(transactionRequestLike);
8929
8947
  return super.simulateTransaction(transactionRequest);
8930
8948
  }
8949
+ /**
8950
+ * Retrieves resources satisfying the spend query for the account.
8951
+ *
8952
+ * @param quantities - Coins to retrieve.
8953
+ * @param excludedIds - IDs of resources to be excluded from the query.
8954
+ * @returns A promise that resolves to an array of Resources.
8955
+ */
8956
+ async getResourcesToSpend(quantities, excludedIds) {
8957
+ const resources = await super.getResourcesToSpend(quantities, excludedIds);
8958
+ return resources.map((resource) => ({
8959
+ ...resource,
8960
+ predicate: (0, import_utils37.hexlify)(this.bytes)
8961
+ }));
8962
+ }
8931
8963
  getPredicateData(policiesLength) {
8932
8964
  if (!this.predicateData.length) {
8933
8965
  return new Uint8Array();
8934
8966
  }
8935
8967
  const mainFn = this.interface?.functions.main;
8936
- const paddedCode = new import_transactions20.ByteArrayCoder(this.bytes.length).encode(this.bytes);
8968
+ const paddedCode = new import_transactions21.ByteArrayCoder(this.bytes.length).encode(this.bytes);
8937
8969
  const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
8938
8970
  maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
8939
8971
  });
@@ -9007,6 +9039,28 @@ var Predicate = class extends Account {
9007
9039
  }
9008
9040
  return mutatedBytes;
9009
9041
  }
9042
+ /**
9043
+ * Returns the index of the witness placeholder that was added to this predicate.
9044
+ * If no witness placeholder was added, it returns -1.
9045
+ * @param request - The transaction request.
9046
+ * @returns The index of the witness placeholder, or -1 if there is no witness placeholder.
9047
+ */
9048
+ getIndexFromPlaceholderWitness(request) {
9049
+ const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
9050
+ let index = -1;
9051
+ const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
9052
+ if (hasEmptyPredicateInputs) {
9053
+ index = hasEmptyPredicateInputs.witnessIndex;
9054
+ const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
9055
+ if (!allInputsAreEmpty) {
9056
+ const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
9057
+ if (wasFilledInputAddedFirst) {
9058
+ index = -1;
9059
+ }
9060
+ }
9061
+ }
9062
+ return index;
9063
+ }
9010
9064
  };
9011
9065
 
9012
9066
  // src/connectors/fuel.ts
@@ -9730,6 +9784,7 @@ __publicField(Fuel, "defaultConfig", {});
9730
9784
  assets,
9731
9785
  buildBlockExplorerUrl,
9732
9786
  cacheFor,
9787
+ cacheResources,
9733
9788
  calculateMetadataGasForTxCreate,
9734
9789
  calculateMetadataGasForTxScript,
9735
9790
  calculatePriceWithFactor,
@@ -9776,6 +9831,7 @@ __publicField(Fuel, "defaultConfig", {});
9776
9831
  getReceiptsMessageOut,
9777
9832
  getReceiptsTransferOut,
9778
9833
  getReceiptsWithMissingData,
9834
+ getRequestInputResourceOwner,
9779
9835
  getTransactionStatusName,
9780
9836
  getTransactionSummary,
9781
9837
  getTransactionSummaryFromRequest,
@@ -9789,6 +9845,10 @@ __publicField(Fuel, "defaultConfig", {});
9789
9845
  isMessage,
9790
9846
  isRawCoin,
9791
9847
  isRawMessage,
9848
+ isRequestInputCoin,
9849
+ isRequestInputMessage,
9850
+ isRequestInputResource,
9851
+ isRequestInputResourceFromOwner,
9792
9852
  isType,
9793
9853
  isTypeCreate,
9794
9854
  isTypeMint,