@fuel-ts/account 0.0.0-rc-2045-20240417092921 → 0.0.0-rc-2037-20240417131250

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 +85 -39
  2. package/dist/index.global.js.map +1 -1
  3. package/dist/index.js +200 -141
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +117 -64
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/predicate/predicate.d.ts +11 -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,33 @@ 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) => {
1822
+ if (isRequestInputCoin(input)) {
1823
+ return input.owner;
1824
+ }
1825
+ return input.recipient;
1826
+ };
1827
+ var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
1828
+ var cacheResources = (resources) => resources.reduce(
1829
+ (cache2, resource) => {
1830
+ if (isCoin(resource)) {
1831
+ cache2.utxos.push(resource.id);
1832
+ } else {
1833
+ cache2.messages.push(resource.nonce);
1834
+ }
1835
+ return cache2;
1836
+ },
1837
+ {
1838
+ utxos: [],
1839
+ messages: []
1840
+ }
1841
+ );
1842
+
1810
1843
  // src/providers/transaction-request/witness.ts
1811
1844
  var import_utils8 = require("@fuel-ts/utils");
1812
1845
  var witnessify = (value) => {
@@ -1859,20 +1892,20 @@ var BaseTransactionRequest = class {
1859
1892
  let policyTypes = 0;
1860
1893
  const policies = [];
1861
1894
  if (req.gasPrice) {
1862
- policyTypes += import_transactions6.PolicyType.GasPrice;
1863
- policies.push({ data: req.gasPrice, type: import_transactions6.PolicyType.GasPrice });
1895
+ policyTypes += import_transactions7.PolicyType.GasPrice;
1896
+ policies.push({ data: req.gasPrice, type: import_transactions7.PolicyType.GasPrice });
1864
1897
  }
1865
1898
  if (req.witnessLimit) {
1866
- policyTypes += import_transactions6.PolicyType.WitnessLimit;
1867
- policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
1899
+ policyTypes += import_transactions7.PolicyType.WitnessLimit;
1900
+ policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
1868
1901
  }
1869
1902
  if (req.maturity > 0) {
1870
- policyTypes += import_transactions6.PolicyType.Maturity;
1871
- policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
1903
+ policyTypes += import_transactions7.PolicyType.Maturity;
1904
+ policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
1872
1905
  }
1873
1906
  if (req.maxFee) {
1874
- policyTypes += import_transactions6.PolicyType.MaxFee;
1875
- policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
1907
+ policyTypes += import_transactions7.PolicyType.MaxFee;
1908
+ policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
1876
1909
  }
1877
1910
  return {
1878
1911
  policyTypes,
@@ -1906,7 +1939,7 @@ var BaseTransactionRequest = class {
1906
1939
  * @returns The transaction bytes.
1907
1940
  */
1908
1941
  toTransactionBytes() {
1909
- return new import_transactions6.TransactionCoder().encode(this.toTransaction());
1942
+ return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1910
1943
  }
1911
1944
  /**
1912
1945
  * @hidden
@@ -1997,7 +2030,7 @@ var BaseTransactionRequest = class {
1997
2030
  */
1998
2031
  getCoinInputs() {
1999
2032
  return this.inputs.filter(
2000
- (input) => input.type === import_transactions6.InputType.Coin
2033
+ (input) => input.type === import_transactions7.InputType.Coin
2001
2034
  );
2002
2035
  }
2003
2036
  /**
@@ -2007,7 +2040,7 @@ var BaseTransactionRequest = class {
2007
2040
  */
2008
2041
  getCoinOutputs() {
2009
2042
  return this.outputs.filter(
2010
- (output) => output.type === import_transactions6.OutputType.Coin
2043
+ (output) => output.type === import_transactions7.OutputType.Coin
2011
2044
  );
2012
2045
  }
2013
2046
  /**
@@ -2017,7 +2050,7 @@ var BaseTransactionRequest = class {
2017
2050
  */
2018
2051
  getChangeOutputs() {
2019
2052
  return this.outputs.filter(
2020
- (output) => output.type === import_transactions6.OutputType.Change
2053
+ (output) => output.type === import_transactions7.OutputType.Change
2021
2054
  );
2022
2055
  }
2023
2056
  /**
@@ -2029,9 +2062,9 @@ var BaseTransactionRequest = class {
2029
2062
  const ownerAddress = (0, import_address.addressify)(owner);
2030
2063
  const found = this.inputs.find((input) => {
2031
2064
  switch (input.type) {
2032
- case import_transactions6.InputType.Coin:
2065
+ case import_transactions7.InputType.Coin:
2033
2066
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
2034
- case import_transactions6.InputType.Message:
2067
+ case import_transactions7.InputType.Message:
2035
2068
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
2036
2069
  default:
2037
2070
  return false;
@@ -2047,8 +2080,8 @@ var BaseTransactionRequest = class {
2047
2080
  * @param predicate - Predicate bytes.
2048
2081
  * @param predicateData - Predicate data bytes.
2049
2082
  */
2050
- addCoinInput(coin, predicate) {
2051
- const { assetId, owner, amount } = coin;
2083
+ addCoinInput(coin) {
2084
+ const { assetId, owner, amount, id, predicate } = coin;
2052
2085
  let witnessIndex;
2053
2086
  if (predicate) {
2054
2087
  witnessIndex = 0;
@@ -2059,14 +2092,14 @@ var BaseTransactionRequest = class {
2059
2092
  }
2060
2093
  }
2061
2094
  const input = {
2062
- ...coin,
2063
- type: import_transactions6.InputType.Coin,
2095
+ id,
2096
+ type: import_transactions7.InputType.Coin,
2064
2097
  owner: owner.toB256(),
2065
2098
  amount,
2066
2099
  assetId,
2067
2100
  txPointer: "0x00000000000000000000000000000000",
2068
2101
  witnessIndex,
2069
- predicate: predicate?.bytes
2102
+ predicate
2070
2103
  };
2071
2104
  this.pushInput(input);
2072
2105
  this.addChangeOutput(owner, assetId);
@@ -2079,8 +2112,8 @@ var BaseTransactionRequest = class {
2079
2112
  * @param predicate - Predicate bytes.
2080
2113
  * @param predicateData - Predicate data bytes.
2081
2114
  */
2082
- addMessageInput(message, predicate) {
2083
- const { recipient, sender, amount } = message;
2115
+ addMessageInput(message) {
2116
+ const { recipient, sender, amount, predicate, nonce } = message;
2084
2117
  const assetId = import_configs7.BaseAssetId;
2085
2118
  let witnessIndex;
2086
2119
  if (predicate) {
@@ -2092,13 +2125,13 @@ var BaseTransactionRequest = class {
2092
2125
  }
2093
2126
  }
2094
2127
  const input = {
2095
- ...message,
2096
- type: import_transactions6.InputType.Message,
2128
+ nonce,
2129
+ type: import_transactions7.InputType.Message,
2097
2130
  sender: sender.toB256(),
2098
2131
  recipient: recipient.toB256(),
2099
2132
  amount,
2100
2133
  witnessIndex,
2101
- predicate: predicate?.bytes
2134
+ predicate
2102
2135
  };
2103
2136
  this.pushInput(input);
2104
2137
  this.addChangeOutput(recipient, assetId);
@@ -2129,32 +2162,6 @@ var BaseTransactionRequest = class {
2129
2162
  resources.forEach((resource) => this.addResource(resource));
2130
2163
  return this;
2131
2164
  }
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
2165
  /**
2159
2166
  * Adds a coin output to the transaction.
2160
2167
  *
@@ -2164,7 +2171,7 @@ var BaseTransactionRequest = class {
2164
2171
  */
2165
2172
  addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
2166
2173
  this.pushOutput({
2167
- type: import_transactions6.OutputType.Coin,
2174
+ type: import_transactions7.OutputType.Coin,
2168
2175
  to: (0, import_address.addressify)(to).toB256(),
2169
2176
  amount,
2170
2177
  assetId
@@ -2180,7 +2187,7 @@ var BaseTransactionRequest = class {
2180
2187
  addCoinOutputs(to, quantities) {
2181
2188
  quantities.map(coinQuantityfy).forEach((quantity) => {
2182
2189
  this.pushOutput({
2183
- type: import_transactions6.OutputType.Coin,
2190
+ type: import_transactions7.OutputType.Coin,
2184
2191
  to: (0, import_address.addressify)(to).toB256(),
2185
2192
  amount: quantity.amount,
2186
2193
  assetId: quantity.assetId
@@ -2200,7 +2207,7 @@ var BaseTransactionRequest = class {
2200
2207
  );
2201
2208
  if (!changeOutput) {
2202
2209
  this.pushOutput({
2203
- type: import_transactions6.OutputType.Change,
2210
+ type: import_transactions7.OutputType.Change,
2204
2211
  to: (0, import_address.addressify)(to).toB256(),
2205
2212
  assetId
2206
2213
  });
@@ -2303,16 +2310,20 @@ var BaseTransactionRequest = class {
2303
2310
  toJSON() {
2304
2311
  return normalizeJSON(this);
2305
2312
  }
2313
+ removeWitness(index) {
2314
+ this.witnesses.splice(index, 1);
2315
+ this.adjustWitnessIndexes(index);
2316
+ }
2306
2317
  updatePredicateInputs(inputs) {
2307
2318
  this.inputs.forEach((i) => {
2308
2319
  let correspondingInput;
2309
2320
  switch (i.type) {
2310
- case import_transactions6.InputType.Coin:
2311
- correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
2321
+ case import_transactions7.InputType.Coin:
2322
+ correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
2312
2323
  break;
2313
- case import_transactions6.InputType.Message:
2324
+ case import_transactions7.InputType.Message:
2314
2325
  correspondingInput = inputs.find(
2315
- (x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
2326
+ (x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
2316
2327
  );
2317
2328
  break;
2318
2329
  default:
@@ -2325,30 +2336,37 @@ var BaseTransactionRequest = class {
2325
2336
  }
2326
2337
  });
2327
2338
  }
2339
+ adjustWitnessIndexes(removedIndex) {
2340
+ this.inputs.filter(isRequestInputResource).forEach((input) => {
2341
+ if (input.witnessIndex > removedIndex) {
2342
+ input.witnessIndex -= 1;
2343
+ }
2344
+ });
2345
+ }
2328
2346
  };
2329
2347
 
2330
2348
  // src/providers/transaction-request/create-transaction-request.ts
2331
2349
  var import_configs9 = require("@fuel-ts/address/configs");
2332
2350
  var import_math9 = require("@fuel-ts/math");
2333
- var import_transactions8 = require("@fuel-ts/transactions");
2351
+ var import_transactions9 = require("@fuel-ts/transactions");
2334
2352
  var import_utils13 = require("@fuel-ts/utils");
2335
2353
 
2336
2354
  // src/providers/transaction-request/hash-transaction.ts
2337
2355
  var import_configs8 = require("@fuel-ts/address/configs");
2338
2356
  var import_hasher = require("@fuel-ts/hasher");
2339
2357
  var import_math8 = require("@fuel-ts/math");
2340
- var import_transactions7 = require("@fuel-ts/transactions");
2358
+ var import_transactions8 = require("@fuel-ts/transactions");
2341
2359
  var import_utils11 = require("@fuel-ts/utils");
2342
2360
  var import_ramda2 = require("ramda");
2343
2361
  function hashTransaction(transactionRequest, chainId) {
2344
2362
  const transaction = transactionRequest.toTransaction();
2345
- if (transaction.type === import_transactions7.TransactionType.Script) {
2363
+ if (transaction.type === import_transactions8.TransactionType.Script) {
2346
2364
  transaction.receiptsRoot = import_configs8.ZeroBytes32;
2347
2365
  }
2348
2366
  transaction.inputs = transaction.inputs.map((input) => {
2349
2367
  const inputClone = (0, import_ramda2.clone)(input);
2350
2368
  switch (inputClone.type) {
2351
- case import_transactions7.InputType.Coin: {
2369
+ case import_transactions8.InputType.Coin: {
2352
2370
  inputClone.txPointer = {
2353
2371
  blockHeight: 0,
2354
2372
  txIndex: 0
@@ -2356,11 +2374,11 @@ function hashTransaction(transactionRequest, chainId) {
2356
2374
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2357
2375
  return inputClone;
2358
2376
  }
2359
- case import_transactions7.InputType.Message: {
2377
+ case import_transactions8.InputType.Message: {
2360
2378
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2361
2379
  return inputClone;
2362
2380
  }
2363
- case import_transactions7.InputType.Contract: {
2381
+ case import_transactions8.InputType.Contract: {
2364
2382
  inputClone.txPointer = {
2365
2383
  blockHeight: 0,
2366
2384
  txIndex: 0
@@ -2378,16 +2396,16 @@ function hashTransaction(transactionRequest, chainId) {
2378
2396
  transaction.outputs = transaction.outputs.map((output) => {
2379
2397
  const outputClone = (0, import_ramda2.clone)(output);
2380
2398
  switch (outputClone.type) {
2381
- case import_transactions7.OutputType.Contract: {
2399
+ case import_transactions8.OutputType.Contract: {
2382
2400
  outputClone.balanceRoot = import_configs8.ZeroBytes32;
2383
2401
  outputClone.stateRoot = import_configs8.ZeroBytes32;
2384
2402
  return outputClone;
2385
2403
  }
2386
- case import_transactions7.OutputType.Change: {
2404
+ case import_transactions8.OutputType.Change: {
2387
2405
  outputClone.amount = (0, import_math8.bn)(0);
2388
2406
  return outputClone;
2389
2407
  }
2390
- case import_transactions7.OutputType.Variable: {
2408
+ case import_transactions8.OutputType.Variable: {
2391
2409
  outputClone.to = import_configs8.ZeroBytes32;
2392
2410
  outputClone.amount = (0, import_math8.bn)(0);
2393
2411
  outputClone.assetId = import_configs8.ZeroBytes32;
@@ -2400,7 +2418,7 @@ function hashTransaction(transactionRequest, chainId) {
2400
2418
  transaction.witnessesCount = 0;
2401
2419
  transaction.witnesses = [];
2402
2420
  const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
2403
- const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
2421
+ const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
2404
2422
  return (0, import_hasher.sha256)(concatenatedData);
2405
2423
  }
2406
2424
 
@@ -2436,7 +2454,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2436
2454
  return new this(obj);
2437
2455
  }
2438
2456
  /** Type of the transaction */
2439
- type = import_transactions8.TransactionType.Create;
2457
+ type = import_transactions9.TransactionType.Create;
2440
2458
  /** Witness index of contract bytecode to create */
2441
2459
  bytecodeWitnessIndex;
2442
2460
  /** Salt */
@@ -2469,7 +2487,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2469
2487
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2470
2488
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2471
2489
  return {
2472
- type: import_transactions8.TransactionType.Create,
2490
+ type: import_transactions9.TransactionType.Create,
2473
2491
  ...baseTransaction,
2474
2492
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2475
2493
  bytecodeWitnessIndex,
@@ -2485,7 +2503,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2485
2503
  */
2486
2504
  getContractCreatedOutputs() {
2487
2505
  return this.outputs.filter(
2488
- (output) => output.type === import_transactions8.OutputType.ContractCreated
2506
+ (output) => output.type === import_transactions9.OutputType.ContractCreated
2489
2507
  );
2490
2508
  }
2491
2509
  /**
@@ -2506,7 +2524,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2506
2524
  */
2507
2525
  addContractCreatedOutput(contractId, stateRoot) {
2508
2526
  this.pushOutput({
2509
- type: import_transactions8.OutputType.ContractCreated,
2527
+ type: import_transactions9.OutputType.ContractCreated,
2510
2528
  contractId,
2511
2529
  stateRoot
2512
2530
  });
@@ -2526,7 +2544,7 @@ var import_abi_coder3 = require("@fuel-ts/abi-coder");
2526
2544
  var import_address2 = require("@fuel-ts/address");
2527
2545
  var import_configs10 = require("@fuel-ts/address/configs");
2528
2546
  var import_math10 = require("@fuel-ts/math");
2529
- var import_transactions9 = require("@fuel-ts/transactions");
2547
+ var import_transactions10 = require("@fuel-ts/transactions");
2530
2548
  var import_utils15 = require("@fuel-ts/utils");
2531
2549
 
2532
2550
  // src/providers/transaction-request/scripts.ts
@@ -2564,7 +2582,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2564
2582
  return new this(obj);
2565
2583
  }
2566
2584
  /** Type of the transaction */
2567
- type = import_transactions9.TransactionType.Script;
2585
+ type = import_transactions10.TransactionType.Script;
2568
2586
  /** Gas limit for transaction */
2569
2587
  gasLimit;
2570
2588
  /** Script to execute */
@@ -2593,7 +2611,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2593
2611
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2594
2612
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2595
2613
  return {
2596
- type: import_transactions9.TransactionType.Script,
2614
+ type: import_transactions10.TransactionType.Script,
2597
2615
  scriptGasLimit: this.gasLimit,
2598
2616
  ...super.getBaseTransaction(),
2599
2617
  scriptLength: script.length,
@@ -2610,7 +2628,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2610
2628
  */
2611
2629
  getContractInputs() {
2612
2630
  return this.inputs.filter(
2613
- (input) => input.type === import_transactions9.InputType.Contract
2631
+ (input) => input.type === import_transactions10.InputType.Contract
2614
2632
  );
2615
2633
  }
2616
2634
  /**
@@ -2620,7 +2638,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2620
2638
  */
2621
2639
  getContractOutputs() {
2622
2640
  return this.outputs.filter(
2623
- (output) => output.type === import_transactions9.OutputType.Contract
2641
+ (output) => output.type === import_transactions10.OutputType.Contract
2624
2642
  );
2625
2643
  }
2626
2644
  /**
@@ -2630,7 +2648,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2630
2648
  */
2631
2649
  getVariableOutputs() {
2632
2650
  return this.outputs.filter(
2633
- (output) => output.type === import_transactions9.OutputType.Variable
2651
+ (output) => output.type === import_transactions10.OutputType.Variable
2634
2652
  );
2635
2653
  }
2636
2654
  /**
@@ -2653,7 +2671,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2653
2671
  let outputsNumber = numberOfVariables;
2654
2672
  while (outputsNumber) {
2655
2673
  this.pushOutput({
2656
- type: import_transactions9.OutputType.Variable
2674
+ type: import_transactions10.OutputType.Variable
2657
2675
  });
2658
2676
  outputsNumber -= 1;
2659
2677
  }
@@ -2686,12 +2704,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2686
2704
  return this;
2687
2705
  }
2688
2706
  const inputIndex = super.pushInput({
2689
- type: import_transactions9.InputType.Contract,
2707
+ type: import_transactions10.InputType.Contract,
2690
2708
  contractId: contractAddress.toB256(),
2691
2709
  txPointer: "0x00000000000000000000000000000000"
2692
2710
  });
2693
2711
  this.pushOutput({
2694
- type: import_transactions9.OutputType.Contract,
2712
+ type: import_transactions10.OutputType.Contract,
2695
2713
  inputIndex
2696
2714
  });
2697
2715
  return this;
@@ -2728,17 +2746,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2728
2746
 
2729
2747
  // src/providers/transaction-request/utils.ts
2730
2748
  var import_errors9 = require("@fuel-ts/errors");
2731
- var import_transactions10 = require("@fuel-ts/transactions");
2749
+ var import_transactions11 = require("@fuel-ts/transactions");
2732
2750
  var transactionRequestify = (obj) => {
2733
2751
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2734
2752
  return obj;
2735
2753
  }
2736
2754
  const { type } = obj;
2737
2755
  switch (obj.type) {
2738
- case import_transactions10.TransactionType.Script: {
2756
+ case import_transactions11.TransactionType.Script: {
2739
2757
  return ScriptTransactionRequest.from(obj);
2740
2758
  }
2741
- case import_transactions10.TransactionType.Create: {
2759
+ case import_transactions11.TransactionType.Create: {
2742
2760
  return CreateTransactionRequest.from(obj);
2743
2761
  }
2744
2762
  default: {
@@ -2750,7 +2768,7 @@ var transactionRequestify = (obj) => {
2750
2768
  // src/providers/transaction-response/transaction-response.ts
2751
2769
  var import_errors13 = require("@fuel-ts/errors");
2752
2770
  var import_math14 = require("@fuel-ts/math");
2753
- var import_transactions17 = require("@fuel-ts/transactions");
2771
+ var import_transactions18 = require("@fuel-ts/transactions");
2754
2772
  var import_utils21 = require("@fuel-ts/utils");
2755
2773
 
2756
2774
  // src/providers/transaction-summary/assemble-transaction-summary.ts
@@ -2758,7 +2776,7 @@ var import_utils19 = require("@fuel-ts/utils");
2758
2776
 
2759
2777
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2760
2778
  var import_math11 = require("@fuel-ts/math");
2761
- var import_transactions11 = require("@fuel-ts/transactions");
2779
+ var import_transactions12 = require("@fuel-ts/transactions");
2762
2780
  var import_utils16 = require("@fuel-ts/utils");
2763
2781
  var calculateTransactionFee = (params) => {
2764
2782
  const {
@@ -2769,8 +2787,8 @@ var calculateTransactionFee = (params) => {
2769
2787
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2770
2788
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2771
2789
  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) {
2790
+ const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2791
+ if (transaction.type === import_transactions12.TransactionType.Mint) {
2774
2792
  return {
2775
2793
  fee: (0, import_math11.bn)(0),
2776
2794
  minFee: (0, import_math11.bn)(0),
@@ -2781,7 +2799,7 @@ var calculateTransactionFee = (params) => {
2781
2799
  const { type, witnesses, inputs, policies } = transaction;
2782
2800
  let metadataGas = (0, import_math11.bn)(0);
2783
2801
  let gasLimit = (0, import_math11.bn)(0);
2784
- if (type === import_transactions11.TransactionType.Create) {
2802
+ if (type === import_transactions12.TransactionType.Create) {
2785
2803
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2786
2804
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2787
2805
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2807,8 +2825,8 @@ var calculateTransactionFee = (params) => {
2807
2825
  metadataGas,
2808
2826
  txBytesSize: transactionBytes.length
2809
2827
  });
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;
2828
+ const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions12.PolicyType.GasPrice)?.data);
2829
+ const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
2812
2830
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2813
2831
  const maxGas = getMaxGas({
2814
2832
  gasPerByte,
@@ -2833,7 +2851,7 @@ var calculateTransactionFee = (params) => {
2833
2851
  var import_configs11 = require("@fuel-ts/address/configs");
2834
2852
  var import_errors11 = require("@fuel-ts/errors");
2835
2853
  var import_math13 = require("@fuel-ts/math");
2836
- var import_transactions14 = require("@fuel-ts/transactions");
2854
+ var import_transactions15 = require("@fuel-ts/transactions");
2837
2855
 
2838
2856
  // src/providers/transaction-summary/call.ts
2839
2857
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2881,7 +2899,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2881
2899
 
2882
2900
  // src/providers/transaction-summary/input.ts
2883
2901
  var import_errors10 = require("@fuel-ts/errors");
2884
- var import_transactions12 = require("@fuel-ts/transactions");
2902
+ var import_transactions13 = require("@fuel-ts/transactions");
2885
2903
  function getInputsByTypes(inputs, types) {
2886
2904
  return inputs.filter((i) => types.includes(i.type));
2887
2905
  }
@@ -2889,16 +2907,16 @@ function getInputsByType(inputs, type) {
2889
2907
  return inputs.filter((i) => i.type === type);
2890
2908
  }
2891
2909
  function getInputsCoin(inputs) {
2892
- return getInputsByType(inputs, import_transactions12.InputType.Coin);
2910
+ return getInputsByType(inputs, import_transactions13.InputType.Coin);
2893
2911
  }
2894
2912
  function getInputsMessage(inputs) {
2895
- return getInputsByType(inputs, import_transactions12.InputType.Message);
2913
+ return getInputsByType(inputs, import_transactions13.InputType.Message);
2896
2914
  }
2897
2915
  function getInputsCoinAndMessage(inputs) {
2898
- return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
2916
+ return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2899
2917
  }
2900
2918
  function getInputsContract(inputs) {
2901
- return getInputsByType(inputs, import_transactions12.InputType.Contract);
2919
+ return getInputsByType(inputs, import_transactions13.InputType.Contract);
2902
2920
  }
2903
2921
  function getInputFromAssetId(inputs, assetId) {
2904
2922
  const coinInputs = getInputsCoin(inputs);
@@ -2917,7 +2935,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2917
2935
  if (!contractInput) {
2918
2936
  return void 0;
2919
2937
  }
2920
- if (contractInput.type !== import_transactions12.InputType.Contract) {
2938
+ if (contractInput.type !== import_transactions13.InputType.Contract) {
2921
2939
  throw new import_errors10.FuelError(
2922
2940
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
2923
2941
  `Contract input should be of type 'contract'.`
@@ -2926,34 +2944,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
2926
2944
  return contractInput;
2927
2945
  }
2928
2946
  function getInputAccountAddress(input) {
2929
- if (input.type === import_transactions12.InputType.Coin) {
2947
+ if (input.type === import_transactions13.InputType.Coin) {
2930
2948
  return input.owner.toString();
2931
2949
  }
2932
- if (input.type === import_transactions12.InputType.Message) {
2950
+ if (input.type === import_transactions13.InputType.Message) {
2933
2951
  return input.recipient.toString();
2934
2952
  }
2935
2953
  return "";
2936
2954
  }
2937
2955
 
2938
2956
  // src/providers/transaction-summary/output.ts
2939
- var import_transactions13 = require("@fuel-ts/transactions");
2957
+ var import_transactions14 = require("@fuel-ts/transactions");
2940
2958
  function getOutputsByType(outputs, type) {
2941
2959
  return outputs.filter((o) => o.type === type);
2942
2960
  }
2943
2961
  function getOutputsContractCreated(outputs) {
2944
- return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
2962
+ return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
2945
2963
  }
2946
2964
  function getOutputsCoin(outputs) {
2947
- return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
2965
+ return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
2948
2966
  }
2949
2967
  function getOutputsChange(outputs) {
2950
- return getOutputsByType(outputs, import_transactions13.OutputType.Change);
2968
+ return getOutputsByType(outputs, import_transactions14.OutputType.Change);
2951
2969
  }
2952
2970
  function getOutputsContract(outputs) {
2953
- return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
2971
+ return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
2954
2972
  }
2955
2973
  function getOutputsVariable(outputs) {
2956
- return getOutputsByType(outputs, import_transactions13.OutputType.Variable);
2974
+ return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
2957
2975
  }
2958
2976
 
2959
2977
  // src/providers/transaction-summary/types.ts
@@ -3000,11 +3018,11 @@ function getReceiptsByType(receipts, type) {
3000
3018
  }
3001
3019
  function getTransactionTypeName(transactionType) {
3002
3020
  switch (transactionType) {
3003
- case import_transactions14.TransactionType.Mint:
3021
+ case import_transactions15.TransactionType.Mint:
3004
3022
  return "Mint" /* Mint */;
3005
- case import_transactions14.TransactionType.Create:
3023
+ case import_transactions15.TransactionType.Create:
3006
3024
  return "Create" /* Create */;
3007
- case import_transactions14.TransactionType.Script:
3025
+ case import_transactions15.TransactionType.Script:
3008
3026
  return "Script" /* Script */;
3009
3027
  default:
3010
3028
  throw new import_errors11.FuelError(
@@ -3030,10 +3048,10 @@ function hasSameAssetId(a) {
3030
3048
  return (b) => a.assetId === b.assetId;
3031
3049
  }
3032
3050
  function getReceiptsCall(receipts) {
3033
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
3051
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
3034
3052
  }
3035
3053
  function getReceiptsMessageOut(receipts) {
3036
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
3054
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
3037
3055
  }
3038
3056
  var mergeAssets = (op1, op2) => {
3039
3057
  const assets1 = op1.assetsSent || [];
@@ -3072,7 +3090,7 @@ function addOperation(operations, toAdd) {
3072
3090
  return allOperations;
3073
3091
  }
3074
3092
  function getReceiptsTransferOut(receipts) {
3075
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.TransferOut);
3093
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
3076
3094
  }
3077
3095
  function getWithdrawFromFuelOperations({
3078
3096
  inputs,
@@ -3232,11 +3250,11 @@ function getTransferOperations({
3232
3250
  });
3233
3251
  const transferReceipts = getReceiptsByType(
3234
3252
  receipts,
3235
- import_transactions14.ReceiptType.Transfer
3253
+ import_transactions15.ReceiptType.Transfer
3236
3254
  );
3237
3255
  const transferOutReceipts = getReceiptsByType(
3238
3256
  receipts,
3239
- import_transactions14.ReceiptType.TransferOut
3257
+ import_transactions15.ReceiptType.TransferOut
3240
3258
  );
3241
3259
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3242
3260
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3321,17 +3339,17 @@ function getOperations({
3321
3339
  }
3322
3340
 
3323
3341
  // src/providers/transaction-summary/receipt.ts
3324
- var import_transactions15 = require("@fuel-ts/transactions");
3342
+ var import_transactions16 = require("@fuel-ts/transactions");
3325
3343
  var processGqlReceipt = (gqlReceipt) => {
3326
3344
  const receipt = assembleReceiptByType(gqlReceipt);
3327
3345
  switch (receipt.type) {
3328
- case import_transactions15.ReceiptType.ReturnData: {
3346
+ case import_transactions16.ReceiptType.ReturnData: {
3329
3347
  return {
3330
3348
  ...receipt,
3331
3349
  data: gqlReceipt.data || "0x"
3332
3350
  };
3333
3351
  }
3334
- case import_transactions15.ReceiptType.LogData: {
3352
+ case import_transactions16.ReceiptType.LogData: {
3335
3353
  return {
3336
3354
  ...receipt,
3337
3355
  data: gqlReceipt.data || "0x"
@@ -3344,7 +3362,7 @@ var processGqlReceipt = (gqlReceipt) => {
3344
3362
  var extractMintedAssetsFromReceipts = (receipts) => {
3345
3363
  const mintedAssets = [];
3346
3364
  receipts.forEach((receipt) => {
3347
- if (receipt.type === import_transactions15.ReceiptType.Mint) {
3365
+ if (receipt.type === import_transactions16.ReceiptType.Mint) {
3348
3366
  mintedAssets.push({
3349
3367
  subId: receipt.subId,
3350
3368
  contractId: receipt.contractId,
@@ -3358,7 +3376,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3358
3376
  var extractBurnedAssetsFromReceipts = (receipts) => {
3359
3377
  const burnedAssets = [];
3360
3378
  receipts.forEach((receipt) => {
3361
- if (receipt.type === import_transactions15.ReceiptType.Burn) {
3379
+ if (receipt.type === import_transactions16.ReceiptType.Burn) {
3362
3380
  burnedAssets.push({
3363
3381
  subId: receipt.subId,
3364
3382
  contractId: receipt.contractId,
@@ -3497,12 +3515,12 @@ function assembleTransactionSummary(params) {
3497
3515
 
3498
3516
  // src/providers/transaction-response/getDecodedLogs.ts
3499
3517
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3500
- var import_transactions16 = require("@fuel-ts/transactions");
3518
+ var import_transactions17 = require("@fuel-ts/transactions");
3501
3519
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3502
3520
  return receipts.reduce((logs, receipt) => {
3503
- if (receipt.type === import_transactions16.ReceiptType.LogData || receipt.type === import_transactions16.ReceiptType.Log) {
3521
+ if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
3504
3522
  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;
3523
+ const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3506
3524
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3507
3525
  logs.push(decodedLog);
3508
3526
  }
@@ -3575,7 +3593,7 @@ var TransactionResponse = class {
3575
3593
  * @returns The decoded transaction.
3576
3594
  */
3577
3595
  decodeTransaction(transactionWithReceipts) {
3578
- return new import_transactions17.TransactionCoder().decode(
3596
+ return new import_transactions18.TransactionCoder().decode(
3579
3597
  (0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
3580
3598
  0
3581
3599
  )?.[0];
@@ -4012,7 +4030,7 @@ var _Provider = class {
4012
4030
  }
4013
4031
  const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
4014
4032
  let abis;
4015
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4033
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4016
4034
  abis = transactionRequest.abis;
4017
4035
  }
4018
4036
  if (awaitExecution) {
@@ -4108,7 +4126,7 @@ var _Provider = class {
4108
4126
  * @returns A promise.
4109
4127
  */
4110
4128
  async estimateTxDependencies(transactionRequest) {
4111
- if (transactionRequest.type === import_transactions18.TransactionType.Create) {
4129
+ if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4112
4130
  return {
4113
4131
  receipts: [],
4114
4132
  outputVariables: 0,
@@ -4157,7 +4175,7 @@ var _Provider = class {
4157
4175
  transactionRequest.gasPrice = gasPrice;
4158
4176
  const minGas = transactionRequest.calculateMinGas(chainInfo);
4159
4177
  const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
4160
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4178
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4161
4179
  if (transactionRequest.gasLimit.eq(0)) {
4162
4180
  transactionRequest.gasLimit = minGas;
4163
4181
  transactionRequest.gasLimit = maxGasPerTx.sub(
@@ -4223,7 +4241,7 @@ var _Provider = class {
4223
4241
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4224
4242
  const { minGasPrice } = this.getGasConfig();
4225
4243
  const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
4226
- const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
4244
+ const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4227
4245
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4228
4246
  const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
4229
4247
  txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
@@ -4439,7 +4457,7 @@ var _Provider = class {
4439
4457
  time: block.header.time,
4440
4458
  transactionIds: block.transactions.map((tx) => tx.id),
4441
4459
  transactions: block.transactions.map(
4442
- (tx) => new import_transactions18.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4460
+ (tx) => new import_transactions19.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4443
4461
  )
4444
4462
  };
4445
4463
  }
@@ -4454,7 +4472,7 @@ var _Provider = class {
4454
4472
  if (!transaction) {
4455
4473
  return null;
4456
4474
  }
4457
- return new import_transactions18.TransactionCoder().decode(
4475
+ return new import_transactions19.TransactionCoder().decode(
4458
4476
  (0, import_utils23.arrayify)(transaction.rawPayload),
4459
4477
  0
4460
4478
  )?.[0];
@@ -4534,7 +4552,7 @@ var _Provider = class {
4534
4552
  });
4535
4553
  const messages = result.messages.edges.map((edge) => edge.node);
4536
4554
  return messages.map((message) => ({
4537
- messageId: import_transactions18.InputMessageCoder.getMessageId({
4555
+ messageId: import_transactions19.InputMessageCoder.getMessageId({
4538
4556
  sender: message.sender,
4539
4557
  recipient: message.recipient,
4540
4558
  nonce: message.nonce,
@@ -4545,7 +4563,7 @@ var _Provider = class {
4545
4563
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4546
4564
  nonce: message.nonce,
4547
4565
  amount: (0, import_math15.bn)(message.amount),
4548
- data: import_transactions18.InputMessageCoder.decodeData(message.data),
4566
+ data: import_transactions19.InputMessageCoder.decodeData(message.data),
4549
4567
  daHeight: (0, import_math15.bn)(message.daHeight)
4550
4568
  }));
4551
4569
  }
@@ -4673,7 +4691,7 @@ cacheInputs_fn = function(inputs) {
4673
4691
  return;
4674
4692
  }
4675
4693
  inputs.forEach((input) => {
4676
- if (input.type === import_transactions18.InputType.Coin) {
4694
+ if (input.type === import_transactions19.InputType.Coin) {
4677
4695
  this.cache?.set(input.id);
4678
4696
  }
4679
4697
  });
@@ -4684,7 +4702,7 @@ __publicField(Provider, "nodeInfoCache", {});
4684
4702
  // src/providers/transaction-summary/get-transaction-summary.ts
4685
4703
  var import_errors15 = require("@fuel-ts/errors");
4686
4704
  var import_math16 = require("@fuel-ts/math");
4687
- var import_transactions19 = require("@fuel-ts/transactions");
4705
+ var import_transactions20 = require("@fuel-ts/transactions");
4688
4706
  var import_utils26 = require("@fuel-ts/utils");
4689
4707
  async function getTransactionSummary(params) {
4690
4708
  const { id, provider, abiMap } = params;
@@ -4697,7 +4715,7 @@ async function getTransactionSummary(params) {
4697
4715
  `Transaction not found for given id: ${id}.`
4698
4716
  );
4699
4717
  }
4700
- const [decodedTransaction] = new import_transactions19.TransactionCoder().decode(
4718
+ const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
4701
4719
  (0, import_utils26.arrayify)(gqlTransaction.rawPayload),
4702
4720
  0
4703
4721
  );
@@ -4751,7 +4769,7 @@ async function getTransactionsSummaries(params) {
4751
4769
  const transactions = edges.map((edge) => {
4752
4770
  const { node: gqlTransaction } = edge;
4753
4771
  const { id, rawPayload, receipts: gqlReceipts, status } = gqlTransaction;
4754
- const [decodedTransaction] = new import_transactions19.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
4772
+ const [decodedTransaction] = new import_transactions20.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
4755
4773
  const receipts = gqlReceipts?.map(processGqlReceipt) || [];
4756
4774
  const transactionSummary = assembleTransactionSummary({
4757
4775
  id,
@@ -8828,7 +8846,7 @@ var import_abi_coder7 = require("@fuel-ts/abi-coder");
8828
8846
  var import_address10 = require("@fuel-ts/address");
8829
8847
  var import_configs13 = require("@fuel-ts/address/configs");
8830
8848
  var import_errors25 = require("@fuel-ts/errors");
8831
- var import_transactions20 = require("@fuel-ts/transactions");
8849
+ var import_transactions21 = require("@fuel-ts/transactions");
8832
8850
  var import_utils37 = require("@fuel-ts/utils");
8833
8851
 
8834
8852
  // src/predicate/utils/getPredicateRoot.ts
@@ -8887,10 +8905,15 @@ var Predicate = class extends Account {
8887
8905
  populateTransactionPredicateData(transactionRequestLike) {
8888
8906
  const request = transactionRequestify(transactionRequestLike);
8889
8907
  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()) {
8908
+ const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
8909
+ if (placeholderIndex !== -1) {
8910
+ request.removeWitness(placeholderIndex);
8911
+ }
8912
+ request.inputs.filter(isRequestInputResource).forEach((input) => {
8913
+ if (isRequestInputResourceFromOwner(input, this.address)) {
8892
8914
  input.predicate = this.bytes;
8893
8915
  input.predicateData = this.getPredicateData(policies.length);
8916
+ input.witnessIndex = 0;
8894
8917
  }
8895
8918
  });
8896
8919
  return request;
@@ -8928,12 +8951,26 @@ var Predicate = class extends Account {
8928
8951
  const transactionRequest = this.populateTransactionPredicateData(transactionRequestLike);
8929
8952
  return super.simulateTransaction(transactionRequest);
8930
8953
  }
8954
+ /**
8955
+ * Retrieves resources satisfying the spend query for the account.
8956
+ *
8957
+ * @param quantities - IDs of coins to exclude.
8958
+ * @param excludedIds - IDs of resources to be excluded from the query.
8959
+ * @returns A promise that resolves to an array of Resources.
8960
+ */
8961
+ async getResourcesToSpend(quantities, excludedIds) {
8962
+ const resources = await super.getResourcesToSpend(quantities, excludedIds);
8963
+ return resources.map((resource) => ({
8964
+ ...resource,
8965
+ predicate: (0, import_utils37.hexlify)(this.bytes)
8966
+ }));
8967
+ }
8931
8968
  getPredicateData(policiesLength) {
8932
8969
  if (!this.predicateData.length) {
8933
8970
  return new Uint8Array();
8934
8971
  }
8935
8972
  const mainFn = this.interface?.functions.main;
8936
- const paddedCode = new import_transactions20.ByteArrayCoder(this.bytes.length).encode(this.bytes);
8973
+ const paddedCode = new import_transactions21.ByteArrayCoder(this.bytes.length).encode(this.bytes);
8937
8974
  const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
8938
8975
  maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
8939
8976
  });
@@ -9007,6 +9044,22 @@ var Predicate = class extends Account {
9007
9044
  }
9008
9045
  return mutatedBytes;
9009
9046
  }
9047
+ getIndexFromPlaceholderWitness(request) {
9048
+ const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
9049
+ let index = -1;
9050
+ const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
9051
+ if (hasEmptyPredicateInputs) {
9052
+ index = hasEmptyPredicateInputs.witnessIndex;
9053
+ const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
9054
+ if (!allInputsAreEmpty) {
9055
+ const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
9056
+ if (wasFilledInputAddedFirst) {
9057
+ index = -1;
9058
+ }
9059
+ }
9060
+ }
9061
+ return index;
9062
+ }
9010
9063
  };
9011
9064
 
9012
9065
  // src/connectors/fuel.ts
@@ -9730,6 +9783,7 @@ __publicField(Fuel, "defaultConfig", {});
9730
9783
  assets,
9731
9784
  buildBlockExplorerUrl,
9732
9785
  cacheFor,
9786
+ cacheResources,
9733
9787
  calculateMetadataGasForTxCreate,
9734
9788
  calculateMetadataGasForTxScript,
9735
9789
  calculatePriceWithFactor,
@@ -9776,6 +9830,7 @@ __publicField(Fuel, "defaultConfig", {});
9776
9830
  getReceiptsMessageOut,
9777
9831
  getReceiptsTransferOut,
9778
9832
  getReceiptsWithMissingData,
9833
+ getRequestInputResourceOwner,
9779
9834
  getTransactionStatusName,
9780
9835
  getTransactionSummary,
9781
9836
  getTransactionSummaryFromRequest,
@@ -9789,6 +9844,10 @@ __publicField(Fuel, "defaultConfig", {});
9789
9844
  isMessage,
9790
9845
  isRawCoin,
9791
9846
  isRawMessage,
9847
+ isRequestInputCoin,
9848
+ isRequestInputMessage,
9849
+ isRequestInputResource,
9850
+ isRequestInputResourceFromOwner,
9792
9851
  isType,
9793
9852
  isTypeCreate,
9794
9853
  isTypeMint,