@fuel-ts/account 0.0.0-rc-1976-20240418175539 → 0.0.0-rc-2037-20240418195040

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 (45) hide show
  1. package/dist/account.d.ts.map +1 -1
  2. package/dist/index.global.js +125 -100
  3. package/dist/index.global.js.map +1 -1
  4. package/dist/index.js +281 -241
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +160 -126
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/predicate/predicate.d.ts +17 -2
  9. package/dist/predicate/predicate.d.ts.map +1 -1
  10. package/dist/providers/coin-quantity.d.ts +2 -2
  11. package/dist/providers/coin-quantity.d.ts.map +1 -1
  12. package/dist/providers/coin.d.ts +2 -1
  13. package/dist/providers/coin.d.ts.map +1 -1
  14. package/dist/providers/message.d.ts +1 -0
  15. package/dist/providers/message.d.ts.map +1 -1
  16. package/dist/providers/provider.d.ts +0 -7
  17. package/dist/providers/provider.d.ts.map +1 -1
  18. package/dist/providers/transaction-request/create-transaction-request.d.ts +1 -1
  19. package/dist/providers/transaction-request/create-transaction-request.d.ts.map +1 -1
  20. package/dist/providers/transaction-request/helpers.d.ts +10 -0
  21. package/dist/providers/transaction-request/helpers.d.ts.map +1 -0
  22. package/dist/providers/transaction-request/index.d.ts +1 -0
  23. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  24. package/dist/providers/transaction-request/script-transaction-request.d.ts +1 -1
  25. package/dist/providers/transaction-request/script-transaction-request.d.ts.map +1 -1
  26. package/dist/providers/transaction-request/transaction-request.d.ts +6 -25
  27. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  28. package/dist/test-utils/index.d.ts +1 -0
  29. package/dist/test-utils/index.d.ts.map +1 -1
  30. package/dist/test-utils/launchNode.d.ts.map +1 -1
  31. package/dist/test-utils/resources.d.ts +4 -0
  32. package/dist/test-utils/resources.d.ts.map +1 -0
  33. package/dist/test-utils/seedTestWallet.d.ts +1 -1
  34. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  35. package/dist/test-utils/transactionRequest.d.ts +5 -0
  36. package/dist/test-utils/transactionRequest.d.ts.map +1 -0
  37. package/dist/test-utils.global.js +104 -105
  38. package/dist/test-utils.global.js.map +1 -1
  39. package/dist/test-utils.js +253 -238
  40. package/dist/test-utils.js.map +1 -1
  41. package/dist/test-utils.mjs +141 -129
  42. package/dist/test-utils.mjs.map +1 -1
  43. package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
  44. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  45. 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,
@@ -184,12 +190,14 @@ module.exports = __toCommonJS(src_exports);
184
190
 
185
191
  // src/account.ts
186
192
  var import_address4 = require("@fuel-ts/address");
193
+ var import_configs12 = require("@fuel-ts/address/configs");
187
194
  var import_errors16 = require("@fuel-ts/errors");
188
195
  var import_interfaces = require("@fuel-ts/interfaces");
189
196
  var import_math18 = require("@fuel-ts/math");
190
197
  var import_utils28 = require("@fuel-ts/utils");
191
198
 
192
199
  // src/providers/coin-quantity.ts
200
+ var import_configs = require("@fuel-ts/address/configs");
193
201
  var import_math = require("@fuel-ts/math");
194
202
  var import_utils = require("@fuel-ts/utils");
195
203
  var coinQuantityfy = (coinQuantityLike) => {
@@ -198,11 +206,11 @@ var coinQuantityfy = (coinQuantityLike) => {
198
206
  let max2;
199
207
  if (Array.isArray(coinQuantityLike)) {
200
208
  amount = coinQuantityLike[0];
201
- assetId = coinQuantityLike[1];
202
- max2 = coinQuantityLike[2];
209
+ assetId = coinQuantityLike[1] ?? import_configs.BaseAssetId;
210
+ max2 = coinQuantityLike[2] ?? void 0;
203
211
  } else {
204
212
  amount = coinQuantityLike.amount;
205
- assetId = coinQuantityLike.assetId;
213
+ assetId = coinQuantityLike.assetId ?? import_configs.BaseAssetId;
206
214
  max2 = coinQuantityLike.max ?? void 0;
207
215
  }
208
216
  const bnAmount = (0, import_math.bn)(amount);
@@ -228,7 +236,7 @@ var addAmountToAsset = (params) => {
228
236
  var import_address3 = require("@fuel-ts/address");
229
237
  var import_errors14 = require("@fuel-ts/errors");
230
238
  var import_math15 = require("@fuel-ts/math");
231
- var import_transactions18 = require("@fuel-ts/transactions");
239
+ var import_transactions19 = require("@fuel-ts/transactions");
232
240
  var import_utils23 = require("@fuel-ts/utils");
233
241
  var import_versions = require("@fuel-ts/versions");
234
242
  var import_utils24 = require("@noble/curves/abstract/utils");
@@ -1181,7 +1189,7 @@ var MemoryCache = class {
1181
1189
 
1182
1190
  // src/providers/transaction-request/input.ts
1183
1191
  var import_abi_coder = require("@fuel-ts/abi-coder");
1184
- var import_configs = require("@fuel-ts/address/configs");
1192
+ var import_configs2 = require("@fuel-ts/address/configs");
1185
1193
  var import_errors3 = require("@fuel-ts/errors");
1186
1194
  var import_math2 = require("@fuel-ts/math");
1187
1195
  var import_transactions = require("@fuel-ts/transactions");
@@ -1215,10 +1223,10 @@ var inputify = (value) => {
1215
1223
  case import_transactions.InputType.Contract: {
1216
1224
  return {
1217
1225
  type: import_transactions.InputType.Contract,
1218
- txID: import_configs.ZeroBytes32,
1226
+ txID: import_configs2.ZeroBytes32,
1219
1227
  outputIndex: 0,
1220
- balanceRoot: import_configs.ZeroBytes32,
1221
- stateRoot: import_configs.ZeroBytes32,
1228
+ balanceRoot: import_configs2.ZeroBytes32,
1229
+ stateRoot: import_configs2.ZeroBytes32,
1222
1230
  txPointer: {
1223
1231
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1224
1232
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1256,7 +1264,7 @@ var inputify = (value) => {
1256
1264
  };
1257
1265
 
1258
1266
  // src/providers/transaction-request/output.ts
1259
- var import_configs2 = require("@fuel-ts/address/configs");
1267
+ var import_configs3 = require("@fuel-ts/address/configs");
1260
1268
  var import_errors4 = require("@fuel-ts/errors");
1261
1269
  var import_math3 = require("@fuel-ts/math");
1262
1270
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1276,8 +1284,8 @@ var outputify = (value) => {
1276
1284
  return {
1277
1285
  type: import_transactions2.OutputType.Contract,
1278
1286
  inputIndex: value.inputIndex,
1279
- balanceRoot: import_configs2.ZeroBytes32,
1280
- stateRoot: import_configs2.ZeroBytes32
1287
+ balanceRoot: import_configs3.ZeroBytes32,
1288
+ stateRoot: import_configs3.ZeroBytes32
1281
1289
  };
1282
1290
  }
1283
1291
  case import_transactions2.OutputType.Change: {
@@ -1291,9 +1299,9 @@ var outputify = (value) => {
1291
1299
  case import_transactions2.OutputType.Variable: {
1292
1300
  return {
1293
1301
  type: import_transactions2.OutputType.Variable,
1294
- to: import_configs2.ZeroBytes32,
1302
+ to: import_configs3.ZeroBytes32,
1295
1303
  amount: (0, import_math3.bn)(0),
1296
- assetId: import_configs2.ZeroBytes32
1304
+ assetId: import_configs3.ZeroBytes32
1297
1305
  };
1298
1306
  }
1299
1307
  case import_transactions2.OutputType.ContractCreated: {
@@ -1315,10 +1323,10 @@ var outputify = (value) => {
1315
1323
  // src/providers/transaction-request/transaction-request.ts
1316
1324
  var import_abi_coder2 = require("@fuel-ts/abi-coder");
1317
1325
  var import_address = require("@fuel-ts/address");
1318
- var import_configs6 = require("@fuel-ts/address/configs");
1326
+ var import_configs7 = require("@fuel-ts/address/configs");
1319
1327
  var import_crypto = require("@fuel-ts/crypto");
1320
1328
  var import_math7 = require("@fuel-ts/math");
1321
- var import_transactions6 = require("@fuel-ts/transactions");
1329
+ var import_transactions7 = require("@fuel-ts/transactions");
1322
1330
  var import_utils9 = require("@fuel-ts/utils");
1323
1331
 
1324
1332
  // src/providers/resource.ts
@@ -1328,13 +1336,13 @@ var isCoin = (resource) => "id" in resource;
1328
1336
  var isMessage = (resource) => "recipient" in resource;
1329
1337
 
1330
1338
  // src/providers/utils/receipts.ts
1331
- var import_configs3 = require("@fuel-ts/address/configs");
1339
+ var import_configs4 = require("@fuel-ts/address/configs");
1332
1340
  var import_errors5 = require("@fuel-ts/errors");
1333
1341
  var import_math4 = require("@fuel-ts/math");
1334
1342
  var import_transactions3 = require("@fuel-ts/transactions");
1335
- var import_configs4 = require("@fuel-ts/transactions/configs");
1343
+ var import_configs5 = require("@fuel-ts/transactions/configs");
1336
1344
  var import_utils5 = require("@fuel-ts/utils");
1337
- var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1345
+ var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1338
1346
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1339
1347
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1340
1348
  (memo, receipt) => {
@@ -1351,7 +1359,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1351
1359
  missingOutputContractIds: []
1352
1360
  }
1353
1361
  );
1354
- var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1362
+ var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1355
1363
  function assembleReceiptByType(receipt) {
1356
1364
  const { receiptType } = receipt;
1357
1365
  switch (receiptType) {
@@ -1715,16 +1723,16 @@ function sleep(time) {
1715
1723
  var import_errors7 = require("@fuel-ts/errors");
1716
1724
  var import_math6 = require("@fuel-ts/math");
1717
1725
  var import_transactions5 = require("@fuel-ts/transactions");
1718
- var import_configs5 = require("@fuel-ts/transactions/configs");
1726
+ var import_configs6 = require("@fuel-ts/transactions/configs");
1719
1727
  var assemblePanicError = (status) => {
1720
1728
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
1721
1729
  const reason = status.reason;
1722
- if (import_configs5.PANIC_REASONS.includes(status.reason)) {
1730
+ if (import_configs6.PANIC_REASONS.includes(status.reason)) {
1723
1731
  errorMessage = `${errorMessage}
1724
1732
 
1725
1733
  You can read more about this error at:
1726
1734
 
1727
- ${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
1735
+ ${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
1728
1736
  }
1729
1737
  return { errorMessage, reason };
1730
1738
  };
@@ -1736,28 +1744,28 @@ var assembleRevertError = (receipts, logs) => {
1736
1744
  if (revertReceipt) {
1737
1745
  const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
1738
1746
  switch (reasonHex) {
1739
- case import_configs5.FAILED_REQUIRE_SIGNAL: {
1747
+ case import_configs6.FAILED_REQUIRE_SIGNAL: {
1740
1748
  reason = "require";
1741
1749
  errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
1742
1750
  break;
1743
1751
  }
1744
- case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
1752
+ case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
1745
1753
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1746
1754
  reason = "assert_eq";
1747
1755
  errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
1748
1756
  break;
1749
1757
  }
1750
- case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
1758
+ case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
1751
1759
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1752
1760
  reason = "assert_ne";
1753
1761
  errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
1754
1762
  break;
1755
1763
  }
1756
- case import_configs5.FAILED_ASSERT_SIGNAL:
1764
+ case import_configs6.FAILED_ASSERT_SIGNAL:
1757
1765
  reason = "assert";
1758
1766
  errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
1759
1767
  break;
1760
- case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1768
+ case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1761
1769
  reason = "MissingOutputChange";
1762
1770
  errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
1763
1771
  break;
@@ -1805,6 +1813,28 @@ var NoWitnessByOwnerError = class extends Error {
1805
1813
  name = "NoWitnessByOwnerError";
1806
1814
  };
1807
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
+
1808
1838
  // src/providers/transaction-request/witness.ts
1809
1839
  var import_utils8 = require("@fuel-ts/utils");
1810
1840
  var witnessify = (value) => {
@@ -1831,8 +1861,6 @@ var BaseTransactionRequest = class {
1831
1861
  outputs = [];
1832
1862
  /** List of witnesses */
1833
1863
  witnesses = [];
1834
- /** Base asset ID - should be fetched from the chain */
1835
- baseAssetId;
1836
1864
  /**
1837
1865
  * Constructor for initializing a base transaction request.
1838
1866
  *
@@ -1845,9 +1873,8 @@ var BaseTransactionRequest = class {
1845
1873
  witnessLimit,
1846
1874
  inputs,
1847
1875
  outputs,
1848
- witnesses,
1849
- baseAssetId
1850
- }) {
1876
+ witnesses
1877
+ } = {}) {
1851
1878
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1852
1879
  this.maturity = maturity ?? 0;
1853
1880
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1855,26 +1882,25 @@ var BaseTransactionRequest = class {
1855
1882
  this.inputs = inputs ?? [];
1856
1883
  this.outputs = outputs ?? [];
1857
1884
  this.witnesses = witnesses ?? [];
1858
- this.baseAssetId = baseAssetId;
1859
1885
  }
1860
1886
  static getPolicyMeta(req) {
1861
1887
  let policyTypes = 0;
1862
1888
  const policies = [];
1863
1889
  if (req.gasPrice) {
1864
- policyTypes += import_transactions6.PolicyType.GasPrice;
1865
- 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 });
1866
1892
  }
1867
1893
  if (req.witnessLimit) {
1868
- policyTypes += import_transactions6.PolicyType.WitnessLimit;
1869
- 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 });
1870
1896
  }
1871
1897
  if (req.maturity > 0) {
1872
- policyTypes += import_transactions6.PolicyType.Maturity;
1873
- 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 });
1874
1900
  }
1875
1901
  if (req.maxFee) {
1876
- policyTypes += import_transactions6.PolicyType.MaxFee;
1877
- 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 });
1878
1904
  }
1879
1905
  return {
1880
1906
  policyTypes,
@@ -1908,7 +1934,7 @@ var BaseTransactionRequest = class {
1908
1934
  * @returns The transaction bytes.
1909
1935
  */
1910
1936
  toTransactionBytes() {
1911
- return new import_transactions6.TransactionCoder().encode(this.toTransaction());
1937
+ return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1912
1938
  }
1913
1939
  /**
1914
1940
  * @hidden
@@ -1948,7 +1974,7 @@ var BaseTransactionRequest = class {
1948
1974
  * @returns The index of the created witness.
1949
1975
  */
1950
1976
  addEmptyWitness() {
1951
- this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1977
+ this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
1952
1978
  return this.witnesses.length - 1;
1953
1979
  }
1954
1980
  /**
@@ -1999,7 +2025,7 @@ var BaseTransactionRequest = class {
1999
2025
  */
2000
2026
  getCoinInputs() {
2001
2027
  return this.inputs.filter(
2002
- (input) => input.type === import_transactions6.InputType.Coin
2028
+ (input) => input.type === import_transactions7.InputType.Coin
2003
2029
  );
2004
2030
  }
2005
2031
  /**
@@ -2009,7 +2035,7 @@ var BaseTransactionRequest = class {
2009
2035
  */
2010
2036
  getCoinOutputs() {
2011
2037
  return this.outputs.filter(
2012
- (output) => output.type === import_transactions6.OutputType.Coin
2038
+ (output) => output.type === import_transactions7.OutputType.Coin
2013
2039
  );
2014
2040
  }
2015
2041
  /**
@@ -2019,7 +2045,7 @@ var BaseTransactionRequest = class {
2019
2045
  */
2020
2046
  getChangeOutputs() {
2021
2047
  return this.outputs.filter(
2022
- (output) => output.type === import_transactions6.OutputType.Change
2048
+ (output) => output.type === import_transactions7.OutputType.Change
2023
2049
  );
2024
2050
  }
2025
2051
  /**
@@ -2031,9 +2057,9 @@ var BaseTransactionRequest = class {
2031
2057
  const ownerAddress = (0, import_address.addressify)(owner);
2032
2058
  const found = this.inputs.find((input) => {
2033
2059
  switch (input.type) {
2034
- case import_transactions6.InputType.Coin:
2060
+ case import_transactions7.InputType.Coin:
2035
2061
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
2036
- case import_transactions6.InputType.Message:
2062
+ case import_transactions7.InputType.Message:
2037
2063
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
2038
2064
  default:
2039
2065
  return false;
@@ -2049,8 +2075,8 @@ var BaseTransactionRequest = class {
2049
2075
  * @param predicate - Predicate bytes.
2050
2076
  * @param predicateData - Predicate data bytes.
2051
2077
  */
2052
- addCoinInput(coin, predicate) {
2053
- const { assetId, owner, amount } = coin;
2078
+ addCoinInput(coin) {
2079
+ const { assetId, owner, amount, id, predicate } = coin;
2054
2080
  let witnessIndex;
2055
2081
  if (predicate) {
2056
2082
  witnessIndex = 0;
@@ -2061,14 +2087,14 @@ var BaseTransactionRequest = class {
2061
2087
  }
2062
2088
  }
2063
2089
  const input = {
2064
- ...coin,
2065
- type: import_transactions6.InputType.Coin,
2090
+ id,
2091
+ type: import_transactions7.InputType.Coin,
2066
2092
  owner: owner.toB256(),
2067
2093
  amount,
2068
2094
  assetId,
2069
2095
  txPointer: "0x00000000000000000000000000000000",
2070
2096
  witnessIndex,
2071
- predicate: predicate?.bytes
2097
+ predicate
2072
2098
  };
2073
2099
  this.pushInput(input);
2074
2100
  this.addChangeOutput(owner, assetId);
@@ -2079,9 +2105,11 @@ var BaseTransactionRequest = class {
2079
2105
  *
2080
2106
  * @param message - Message resource.
2081
2107
  * @param predicate - Predicate bytes.
2108
+ * @param predicateData - Predicate data bytes.
2082
2109
  */
2083
- addMessageInput(message, predicate) {
2084
- const { recipient, sender, amount } = message;
2110
+ addMessageInput(message) {
2111
+ const { recipient, sender, amount, predicate, nonce } = message;
2112
+ const assetId = import_configs7.BaseAssetId;
2085
2113
  let witnessIndex;
2086
2114
  if (predicate) {
2087
2115
  witnessIndex = 0;
@@ -2092,16 +2120,16 @@ 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
- this.addChangeOutput(recipient, this.baseAssetId);
2132
+ this.addChangeOutput(recipient, assetId);
2105
2133
  }
2106
2134
  /**
2107
2135
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -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
  *
@@ -2162,12 +2164,12 @@ var BaseTransactionRequest = class {
2162
2164
  * @param amount - Amount of coin.
2163
2165
  * @param assetId - Asset ID of coin.
2164
2166
  */
2165
- addCoinOutput(to, amount, assetId) {
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
- assetId: assetId ?? this.baseAssetId
2172
+ assetId
2171
2173
  });
2172
2174
  return this;
2173
2175
  }
@@ -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
@@ -2194,15 +2196,15 @@ var BaseTransactionRequest = class {
2194
2196
  * @param to - Address of the owner.
2195
2197
  * @param assetId - Asset ID of coin.
2196
2198
  */
2197
- addChangeOutput(to, assetId) {
2199
+ addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
2198
2200
  const changeOutput = this.getChangeOutputs().find(
2199
2201
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
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
- assetId: assetId ?? this.baseAssetId
2207
+ assetId
2206
2208
  });
2207
2209
  }
2208
2210
  }
@@ -2278,7 +2280,7 @@ var BaseTransactionRequest = class {
2278
2280
  ]);
2279
2281
  }
2280
2282
  };
2281
- updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2283
+ updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2282
2284
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2283
2285
  }
2284
2286
  /**
@@ -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
- var import_configs8 = require("@fuel-ts/address/configs");
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
- var import_configs7 = require("@fuel-ts/address/configs");
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) {
2346
- transaction.receiptsRoot = import_configs7.ZeroBytes32;
2358
+ if (transaction.type === import_transactions8.TransactionType.Script) {
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,19 +2369,19 @@ 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
2367
2380
  };
2368
- inputClone.txID = import_configs7.ZeroBytes32;
2381
+ inputClone.txID = import_configs8.ZeroBytes32;
2369
2382
  inputClone.outputIndex = 0;
2370
- inputClone.balanceRoot = import_configs7.ZeroBytes32;
2371
- inputClone.stateRoot = import_configs7.ZeroBytes32;
2383
+ inputClone.balanceRoot = import_configs8.ZeroBytes32;
2384
+ inputClone.stateRoot = import_configs8.ZeroBytes32;
2372
2385
  return inputClone;
2373
2386
  }
2374
2387
  default:
@@ -2378,19 +2391,19 @@ 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: {
2382
- outputClone.balanceRoot = import_configs7.ZeroBytes32;
2383
- outputClone.stateRoot = import_configs7.ZeroBytes32;
2394
+ case import_transactions8.OutputType.Contract: {
2395
+ outputClone.balanceRoot = import_configs8.ZeroBytes32;
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: {
2391
- outputClone.to = import_configs7.ZeroBytes32;
2403
+ case import_transactions8.OutputType.Variable: {
2404
+ outputClone.to = import_configs8.ZeroBytes32;
2392
2405
  outputClone.amount = (0, import_math8.bn)(0);
2393
- outputClone.assetId = import_configs7.ZeroBytes32;
2406
+ outputClone.assetId = import_configs8.ZeroBytes32;
2394
2407
  return outputClone;
2395
2408
  }
2396
2409
  default:
@@ -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 */
@@ -2448,10 +2461,15 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2448
2461
  *
2449
2462
  * @param createTransactionRequestLike - The initial values for the instance
2450
2463
  */
2451
- constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2464
+ constructor({
2465
+ bytecodeWitnessIndex,
2466
+ salt,
2467
+ storageSlots,
2468
+ ...rest
2469
+ } = {}) {
2452
2470
  super(rest);
2453
2471
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2454
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2472
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2455
2473
  this.storageSlots = [...storageSlots ?? []];
2456
2474
  }
2457
2475
  /**
@@ -2464,12 +2482,12 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2464
2482
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2465
2483
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2466
2484
  return {
2467
- type: import_transactions8.TransactionType.Create,
2485
+ type: import_transactions9.TransactionType.Create,
2468
2486
  ...baseTransaction,
2469
2487
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2470
2488
  bytecodeWitnessIndex,
2471
2489
  storageSlotsCount: storageSlots.length,
2472
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2490
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
2473
2491
  storageSlots
2474
2492
  };
2475
2493
  }
@@ -2480,7 +2498,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2480
2498
  */
2481
2499
  getContractCreatedOutputs() {
2482
2500
  return this.outputs.filter(
2483
- (output) => output.type === import_transactions8.OutputType.ContractCreated
2501
+ (output) => output.type === import_transactions9.OutputType.ContractCreated
2484
2502
  );
2485
2503
  }
2486
2504
  /**
@@ -2501,7 +2519,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2501
2519
  */
2502
2520
  addContractCreatedOutput(contractId, stateRoot) {
2503
2521
  this.pushOutput({
2504
- type: import_transactions8.OutputType.ContractCreated,
2522
+ type: import_transactions9.OutputType.ContractCreated,
2505
2523
  contractId,
2506
2524
  stateRoot
2507
2525
  });
@@ -2519,9 +2537,9 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2519
2537
  // src/providers/transaction-request/script-transaction-request.ts
2520
2538
  var import_abi_coder3 = require("@fuel-ts/abi-coder");
2521
2539
  var import_address2 = require("@fuel-ts/address");
2522
- var import_configs9 = require("@fuel-ts/address/configs");
2540
+ var import_configs10 = require("@fuel-ts/address/configs");
2523
2541
  var import_math10 = require("@fuel-ts/math");
2524
- var import_transactions9 = require("@fuel-ts/transactions");
2542
+ var import_transactions10 = require("@fuel-ts/transactions");
2525
2543
  var import_utils15 = require("@fuel-ts/utils");
2526
2544
 
2527
2545
  // src/providers/transaction-request/scripts.ts
@@ -2559,7 +2577,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2559
2577
  return new this(obj);
2560
2578
  }
2561
2579
  /** Type of the transaction */
2562
- type = import_transactions9.TransactionType.Script;
2580
+ type = import_transactions10.TransactionType.Script;
2563
2581
  /** Gas limit for transaction */
2564
2582
  gasLimit;
2565
2583
  /** Script to execute */
@@ -2572,7 +2590,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2572
2590
  *
2573
2591
  * @param scriptTransactionRequestLike - The initial values for the instance.
2574
2592
  */
2575
- constructor({ script, scriptData, gasLimit, ...rest }) {
2593
+ constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2576
2594
  super(rest);
2577
2595
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2578
2596
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2588,12 +2606,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2588
2606
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2589
2607
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2590
2608
  return {
2591
- type: import_transactions9.TransactionType.Script,
2609
+ type: import_transactions10.TransactionType.Script,
2592
2610
  scriptGasLimit: this.gasLimit,
2593
2611
  ...super.getBaseTransaction(),
2594
2612
  scriptLength: script.length,
2595
2613
  scriptDataLength: scriptData.length,
2596
- receiptsRoot: import_configs9.ZeroBytes32,
2614
+ receiptsRoot: import_configs10.ZeroBytes32,
2597
2615
  script: (0, import_utils15.hexlify)(script),
2598
2616
  scriptData: (0, import_utils15.hexlify)(scriptData)
2599
2617
  };
@@ -2605,7 +2623,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2605
2623
  */
2606
2624
  getContractInputs() {
2607
2625
  return this.inputs.filter(
2608
- (input) => input.type === import_transactions9.InputType.Contract
2626
+ (input) => input.type === import_transactions10.InputType.Contract
2609
2627
  );
2610
2628
  }
2611
2629
  /**
@@ -2615,7 +2633,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2615
2633
  */
2616
2634
  getContractOutputs() {
2617
2635
  return this.outputs.filter(
2618
- (output) => output.type === import_transactions9.OutputType.Contract
2636
+ (output) => output.type === import_transactions10.OutputType.Contract
2619
2637
  );
2620
2638
  }
2621
2639
  /**
@@ -2625,7 +2643,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2625
2643
  */
2626
2644
  getVariableOutputs() {
2627
2645
  return this.outputs.filter(
2628
- (output) => output.type === import_transactions9.OutputType.Variable
2646
+ (output) => output.type === import_transactions10.OutputType.Variable
2629
2647
  );
2630
2648
  }
2631
2649
  /**
@@ -2648,7 +2666,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2648
2666
  let outputsNumber = numberOfVariables;
2649
2667
  while (outputsNumber) {
2650
2668
  this.pushOutput({
2651
- type: import_transactions9.OutputType.Variable
2669
+ type: import_transactions10.OutputType.Variable
2652
2670
  });
2653
2671
  outputsNumber -= 1;
2654
2672
  }
@@ -2681,12 +2699,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2681
2699
  return this;
2682
2700
  }
2683
2701
  const inputIndex = super.pushInput({
2684
- type: import_transactions9.InputType.Contract,
2702
+ type: import_transactions10.InputType.Contract,
2685
2703
  contractId: contractAddress.toB256(),
2686
2704
  txPointer: "0x00000000000000000000000000000000"
2687
2705
  });
2688
2706
  this.pushOutput({
2689
- type: import_transactions9.OutputType.Contract,
2707
+ type: import_transactions10.OutputType.Contract,
2690
2708
  inputIndex
2691
2709
  });
2692
2710
  return this;
@@ -2723,17 +2741,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2723
2741
 
2724
2742
  // src/providers/transaction-request/utils.ts
2725
2743
  var import_errors9 = require("@fuel-ts/errors");
2726
- var import_transactions10 = require("@fuel-ts/transactions");
2744
+ var import_transactions11 = require("@fuel-ts/transactions");
2727
2745
  var transactionRequestify = (obj) => {
2728
2746
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2729
2747
  return obj;
2730
2748
  }
2731
2749
  const { type } = obj;
2732
2750
  switch (obj.type) {
2733
- case import_transactions10.TransactionType.Script: {
2751
+ case import_transactions11.TransactionType.Script: {
2734
2752
  return ScriptTransactionRequest.from(obj);
2735
2753
  }
2736
- case import_transactions10.TransactionType.Create: {
2754
+ case import_transactions11.TransactionType.Create: {
2737
2755
  return CreateTransactionRequest.from(obj);
2738
2756
  }
2739
2757
  default: {
@@ -2745,7 +2763,7 @@ var transactionRequestify = (obj) => {
2745
2763
  // src/providers/transaction-response/transaction-response.ts
2746
2764
  var import_errors13 = require("@fuel-ts/errors");
2747
2765
  var import_math14 = require("@fuel-ts/math");
2748
- var import_transactions17 = require("@fuel-ts/transactions");
2766
+ var import_transactions18 = require("@fuel-ts/transactions");
2749
2767
  var import_utils21 = require("@fuel-ts/utils");
2750
2768
 
2751
2769
  // src/providers/transaction-summary/assemble-transaction-summary.ts
@@ -2753,7 +2771,7 @@ var import_utils19 = require("@fuel-ts/utils");
2753
2771
 
2754
2772
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2755
2773
  var import_math11 = require("@fuel-ts/math");
2756
- var import_transactions11 = require("@fuel-ts/transactions");
2774
+ var import_transactions12 = require("@fuel-ts/transactions");
2757
2775
  var import_utils16 = require("@fuel-ts/utils");
2758
2776
  var calculateTransactionFee = (params) => {
2759
2777
  const {
@@ -2764,8 +2782,8 @@ var calculateTransactionFee = (params) => {
2764
2782
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2765
2783
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2766
2784
  const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
2767
- const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
2768
- 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) {
2769
2787
  return {
2770
2788
  fee: (0, import_math11.bn)(0),
2771
2789
  minFee: (0, import_math11.bn)(0),
@@ -2776,7 +2794,7 @@ var calculateTransactionFee = (params) => {
2776
2794
  const { type, witnesses, inputs, policies } = transaction;
2777
2795
  let metadataGas = (0, import_math11.bn)(0);
2778
2796
  let gasLimit = (0, import_math11.bn)(0);
2779
- if (type === import_transactions11.TransactionType.Create) {
2797
+ if (type === import_transactions12.TransactionType.Create) {
2780
2798
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2781
2799
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2782
2800
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2802,8 +2820,8 @@ var calculateTransactionFee = (params) => {
2802
2820
  metadataGas,
2803
2821
  txBytesSize: transactionBytes.length
2804
2822
  });
2805
- const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions11.PolicyType.GasPrice)?.data);
2806
- 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;
2807
2825
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2808
2826
  const maxGas = getMaxGas({
2809
2827
  gasPerByte,
@@ -2825,10 +2843,10 @@ var calculateTransactionFee = (params) => {
2825
2843
  };
2826
2844
 
2827
2845
  // src/providers/transaction-summary/operations.ts
2828
- var import_configs10 = require("@fuel-ts/address/configs");
2846
+ var import_configs11 = require("@fuel-ts/address/configs");
2829
2847
  var import_errors11 = require("@fuel-ts/errors");
2830
2848
  var import_math13 = require("@fuel-ts/math");
2831
- var import_transactions14 = require("@fuel-ts/transactions");
2849
+ var import_transactions15 = require("@fuel-ts/transactions");
2832
2850
 
2833
2851
  // src/providers/transaction-summary/call.ts
2834
2852
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2876,7 +2894,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2876
2894
 
2877
2895
  // src/providers/transaction-summary/input.ts
2878
2896
  var import_errors10 = require("@fuel-ts/errors");
2879
- var import_transactions12 = require("@fuel-ts/transactions");
2897
+ var import_transactions13 = require("@fuel-ts/transactions");
2880
2898
  function getInputsByTypes(inputs, types) {
2881
2899
  return inputs.filter((i) => types.includes(i.type));
2882
2900
  }
@@ -2884,16 +2902,16 @@ function getInputsByType(inputs, type) {
2884
2902
  return inputs.filter((i) => i.type === type);
2885
2903
  }
2886
2904
  function getInputsCoin(inputs) {
2887
- return getInputsByType(inputs, import_transactions12.InputType.Coin);
2905
+ return getInputsByType(inputs, import_transactions13.InputType.Coin);
2888
2906
  }
2889
2907
  function getInputsMessage(inputs) {
2890
- return getInputsByType(inputs, import_transactions12.InputType.Message);
2908
+ return getInputsByType(inputs, import_transactions13.InputType.Message);
2891
2909
  }
2892
2910
  function getInputsCoinAndMessage(inputs) {
2893
- return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
2911
+ return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2894
2912
  }
2895
2913
  function getInputsContract(inputs) {
2896
- return getInputsByType(inputs, import_transactions12.InputType.Contract);
2914
+ return getInputsByType(inputs, import_transactions13.InputType.Contract);
2897
2915
  }
2898
2916
  function getInputFromAssetId(inputs, assetId) {
2899
2917
  const coinInputs = getInputsCoin(inputs);
@@ -2912,7 +2930,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2912
2930
  if (!contractInput) {
2913
2931
  return void 0;
2914
2932
  }
2915
- if (contractInput.type !== import_transactions12.InputType.Contract) {
2933
+ if (contractInput.type !== import_transactions13.InputType.Contract) {
2916
2934
  throw new import_errors10.FuelError(
2917
2935
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
2918
2936
  `Contract input should be of type 'contract'.`
@@ -2921,34 +2939,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
2921
2939
  return contractInput;
2922
2940
  }
2923
2941
  function getInputAccountAddress(input) {
2924
- if (input.type === import_transactions12.InputType.Coin) {
2942
+ if (input.type === import_transactions13.InputType.Coin) {
2925
2943
  return input.owner.toString();
2926
2944
  }
2927
- if (input.type === import_transactions12.InputType.Message) {
2945
+ if (input.type === import_transactions13.InputType.Message) {
2928
2946
  return input.recipient.toString();
2929
2947
  }
2930
2948
  return "";
2931
2949
  }
2932
2950
 
2933
2951
  // src/providers/transaction-summary/output.ts
2934
- var import_transactions13 = require("@fuel-ts/transactions");
2952
+ var import_transactions14 = require("@fuel-ts/transactions");
2935
2953
  function getOutputsByType(outputs, type) {
2936
2954
  return outputs.filter((o) => o.type === type);
2937
2955
  }
2938
2956
  function getOutputsContractCreated(outputs) {
2939
- return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
2957
+ return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
2940
2958
  }
2941
2959
  function getOutputsCoin(outputs) {
2942
- return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
2960
+ return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
2943
2961
  }
2944
2962
  function getOutputsChange(outputs) {
2945
- return getOutputsByType(outputs, import_transactions13.OutputType.Change);
2963
+ return getOutputsByType(outputs, import_transactions14.OutputType.Change);
2946
2964
  }
2947
2965
  function getOutputsContract(outputs) {
2948
- return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
2966
+ return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
2949
2967
  }
2950
2968
  function getOutputsVariable(outputs) {
2951
- return getOutputsByType(outputs, import_transactions13.OutputType.Variable);
2969
+ return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
2952
2970
  }
2953
2971
 
2954
2972
  // src/providers/transaction-summary/types.ts
@@ -2995,11 +3013,11 @@ function getReceiptsByType(receipts, type) {
2995
3013
  }
2996
3014
  function getTransactionTypeName(transactionType) {
2997
3015
  switch (transactionType) {
2998
- case import_transactions14.TransactionType.Mint:
3016
+ case import_transactions15.TransactionType.Mint:
2999
3017
  return "Mint" /* Mint */;
3000
- case import_transactions14.TransactionType.Create:
3018
+ case import_transactions15.TransactionType.Create:
3001
3019
  return "Create" /* Create */;
3002
- case import_transactions14.TransactionType.Script:
3020
+ case import_transactions15.TransactionType.Script:
3003
3021
  return "Script" /* Script */;
3004
3022
  default:
3005
3023
  throw new import_errors11.FuelError(
@@ -3025,10 +3043,10 @@ function hasSameAssetId(a) {
3025
3043
  return (b) => a.assetId === b.assetId;
3026
3044
  }
3027
3045
  function getReceiptsCall(receipts) {
3028
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
3046
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
3029
3047
  }
3030
3048
  function getReceiptsMessageOut(receipts) {
3031
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
3049
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
3032
3050
  }
3033
3051
  var mergeAssets = (op1, op2) => {
3034
3052
  const assets1 = op1.assetsSent || [];
@@ -3067,7 +3085,7 @@ function addOperation(operations, toAdd) {
3067
3085
  return allOperations;
3068
3086
  }
3069
3087
  function getReceiptsTransferOut(receipts) {
3070
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.TransferOut);
3088
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
3071
3089
  }
3072
3090
  function getWithdrawFromFuelOperations({
3073
3091
  inputs,
@@ -3170,7 +3188,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
3170
3188
  const { to: toAddress, assetId, amount } = receipt;
3171
3189
  let { from: fromAddress } = receipt;
3172
3190
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
3173
- if (import_configs10.ZeroBytes32 === fromAddress) {
3191
+ if (import_configs11.ZeroBytes32 === fromAddress) {
3174
3192
  const change = changeOutputs.find((output) => output.assetId === assetId);
3175
3193
  fromAddress = change?.to || fromAddress;
3176
3194
  }
@@ -3227,11 +3245,11 @@ function getTransferOperations({
3227
3245
  });
3228
3246
  const transferReceipts = getReceiptsByType(
3229
3247
  receipts,
3230
- import_transactions14.ReceiptType.Transfer
3248
+ import_transactions15.ReceiptType.Transfer
3231
3249
  );
3232
3250
  const transferOutReceipts = getReceiptsByType(
3233
3251
  receipts,
3234
- import_transactions14.ReceiptType.TransferOut
3252
+ import_transactions15.ReceiptType.TransferOut
3235
3253
  );
3236
3254
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3237
3255
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3316,17 +3334,17 @@ function getOperations({
3316
3334
  }
3317
3335
 
3318
3336
  // src/providers/transaction-summary/receipt.ts
3319
- var import_transactions15 = require("@fuel-ts/transactions");
3337
+ var import_transactions16 = require("@fuel-ts/transactions");
3320
3338
  var processGqlReceipt = (gqlReceipt) => {
3321
3339
  const receipt = assembleReceiptByType(gqlReceipt);
3322
3340
  switch (receipt.type) {
3323
- case import_transactions15.ReceiptType.ReturnData: {
3341
+ case import_transactions16.ReceiptType.ReturnData: {
3324
3342
  return {
3325
3343
  ...receipt,
3326
3344
  data: gqlReceipt.data || "0x"
3327
3345
  };
3328
3346
  }
3329
- case import_transactions15.ReceiptType.LogData: {
3347
+ case import_transactions16.ReceiptType.LogData: {
3330
3348
  return {
3331
3349
  ...receipt,
3332
3350
  data: gqlReceipt.data || "0x"
@@ -3339,7 +3357,7 @@ var processGqlReceipt = (gqlReceipt) => {
3339
3357
  var extractMintedAssetsFromReceipts = (receipts) => {
3340
3358
  const mintedAssets = [];
3341
3359
  receipts.forEach((receipt) => {
3342
- if (receipt.type === import_transactions15.ReceiptType.Mint) {
3360
+ if (receipt.type === import_transactions16.ReceiptType.Mint) {
3343
3361
  mintedAssets.push({
3344
3362
  subId: receipt.subId,
3345
3363
  contractId: receipt.contractId,
@@ -3353,7 +3371,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3353
3371
  var extractBurnedAssetsFromReceipts = (receipts) => {
3354
3372
  const burnedAssets = [];
3355
3373
  receipts.forEach((receipt) => {
3356
- if (receipt.type === import_transactions15.ReceiptType.Burn) {
3374
+ if (receipt.type === import_transactions16.ReceiptType.Burn) {
3357
3375
  burnedAssets.push({
3358
3376
  subId: receipt.subId,
3359
3377
  contractId: receipt.contractId,
@@ -3492,12 +3510,12 @@ function assembleTransactionSummary(params) {
3492
3510
 
3493
3511
  // src/providers/transaction-response/getDecodedLogs.ts
3494
3512
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3495
- var import_transactions16 = require("@fuel-ts/transactions");
3513
+ var import_transactions17 = require("@fuel-ts/transactions");
3496
3514
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3497
3515
  return receipts.reduce((logs, receipt) => {
3498
- 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) {
3499
3517
  const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
3500
- 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;
3501
3519
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3502
3520
  logs.push(decodedLog);
3503
3521
  }
@@ -3570,7 +3588,7 @@ var TransactionResponse = class {
3570
3588
  * @returns The decoded transaction.
3571
3589
  */
3572
3590
  decodeTransaction(transactionWithReceipts) {
3573
- return new import_transactions17.TransactionCoder().decode(
3591
+ return new import_transactions18.TransactionCoder().decode(
3574
3592
  (0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
3575
3593
  0
3576
3594
  )?.[0];
@@ -3747,7 +3765,6 @@ var processGqlChain = (chain) => {
3747
3765
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3748
3766
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3749
3767
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3750
- baseAssetId: consensusParameters.baseAssetId,
3751
3768
  gasCosts
3752
3769
  },
3753
3770
  gasCosts,
@@ -3990,17 +4007,6 @@ var _Provider = class {
3990
4007
  } = this.getChain();
3991
4008
  return chainId.toNumber();
3992
4009
  }
3993
- /**
3994
- * Returns the base asset ID
3995
- *
3996
- * @returns A promise that resolves to the base asset ID
3997
- */
3998
- getBaseAssetId() {
3999
- const {
4000
- consensusParameters: { baseAssetId }
4001
- } = this.getChain();
4002
- return baseAssetId;
4003
- }
4004
4010
  /**
4005
4011
  * Submits a transaction to the chain to be executed.
4006
4012
  *
@@ -4019,7 +4025,7 @@ var _Provider = class {
4019
4025
  }
4020
4026
  const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
4021
4027
  let abis;
4022
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4028
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4023
4029
  abis = transactionRequest.abis;
4024
4030
  }
4025
4031
  if (awaitExecution) {
@@ -4115,7 +4121,7 @@ var _Provider = class {
4115
4121
  * @returns A promise.
4116
4122
  */
4117
4123
  async estimateTxDependencies(transactionRequest) {
4118
- if (transactionRequest.type === import_transactions18.TransactionType.Create) {
4124
+ if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4119
4125
  return {
4120
4126
  receipts: [],
4121
4127
  outputVariables: 0,
@@ -4164,7 +4170,7 @@ var _Provider = class {
4164
4170
  transactionRequest.gasPrice = gasPrice;
4165
4171
  const minGas = transactionRequest.calculateMinGas(chainInfo);
4166
4172
  const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
4167
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4173
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4168
4174
  if (transactionRequest.gasLimit.eq(0)) {
4169
4175
  transactionRequest.gasLimit = minGas;
4170
4176
  transactionRequest.gasLimit = maxGasPerTx.sub(
@@ -4230,7 +4236,7 @@ var _Provider = class {
4230
4236
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4231
4237
  const { minGasPrice } = this.getGasConfig();
4232
4238
  const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
4233
- const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
4239
+ const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4234
4240
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4235
4241
  const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
4236
4242
  txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
@@ -4446,7 +4452,7 @@ var _Provider = class {
4446
4452
  time: block.header.time,
4447
4453
  transactionIds: block.transactions.map((tx) => tx.id),
4448
4454
  transactions: block.transactions.map(
4449
- (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]
4450
4456
  )
4451
4457
  };
4452
4458
  }
@@ -4461,7 +4467,7 @@ var _Provider = class {
4461
4467
  if (!transaction) {
4462
4468
  return null;
4463
4469
  }
4464
- return new import_transactions18.TransactionCoder().decode(
4470
+ return new import_transactions19.TransactionCoder().decode(
4465
4471
  (0, import_utils23.arrayify)(transaction.rawPayload),
4466
4472
  0
4467
4473
  )?.[0];
@@ -4541,7 +4547,7 @@ var _Provider = class {
4541
4547
  });
4542
4548
  const messages = result.messages.edges.map((edge) => edge.node);
4543
4549
  return messages.map((message) => ({
4544
- messageId: import_transactions18.InputMessageCoder.getMessageId({
4550
+ messageId: import_transactions19.InputMessageCoder.getMessageId({
4545
4551
  sender: message.sender,
4546
4552
  recipient: message.recipient,
4547
4553
  nonce: message.nonce,
@@ -4552,7 +4558,7 @@ var _Provider = class {
4552
4558
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4553
4559
  nonce: message.nonce,
4554
4560
  amount: (0, import_math15.bn)(message.amount),
4555
- data: import_transactions18.InputMessageCoder.decodeData(message.data),
4561
+ data: import_transactions19.InputMessageCoder.decodeData(message.data),
4556
4562
  daHeight: (0, import_math15.bn)(message.daHeight)
4557
4563
  }));
4558
4564
  }
@@ -4680,7 +4686,7 @@ cacheInputs_fn = function(inputs) {
4680
4686
  return;
4681
4687
  }
4682
4688
  inputs.forEach((input) => {
4683
- if (input.type === import_transactions18.InputType.Coin) {
4689
+ if (input.type === import_transactions19.InputType.Coin) {
4684
4690
  this.cache?.set(input.id);
4685
4691
  }
4686
4692
  });
@@ -4691,7 +4697,7 @@ __publicField(Provider, "nodeInfoCache", {});
4691
4697
  // src/providers/transaction-summary/get-transaction-summary.ts
4692
4698
  var import_errors15 = require("@fuel-ts/errors");
4693
4699
  var import_math16 = require("@fuel-ts/math");
4694
- var import_transactions19 = require("@fuel-ts/transactions");
4700
+ var import_transactions20 = require("@fuel-ts/transactions");
4695
4701
  var import_utils26 = require("@fuel-ts/utils");
4696
4702
  async function getTransactionSummary(params) {
4697
4703
  const { id, provider, abiMap } = params;
@@ -4704,7 +4710,7 @@ async function getTransactionSummary(params) {
4704
4710
  `Transaction not found for given id: ${id}.`
4705
4711
  );
4706
4712
  }
4707
- const [decodedTransaction] = new import_transactions19.TransactionCoder().decode(
4713
+ const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
4708
4714
  (0, import_utils26.arrayify)(gqlTransaction.rawPayload),
4709
4715
  0
4710
4716
  );
@@ -4758,7 +4764,7 @@ async function getTransactionsSummaries(params) {
4758
4764
  const transactions = edges.map((edge) => {
4759
4765
  const { node: gqlTransaction } = edge;
4760
4766
  const { id, rawPayload, receipts: gqlReceipts, status } = gqlTransaction;
4761
- 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);
4762
4768
  const receipts = gqlReceipts?.map(processGqlReceipt) || [];
4763
4769
  const transactionSummary = assembleTransactionSummary({
4764
4770
  id,
@@ -5064,9 +5070,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5064
5070
  * @param assetId - The asset ID to check the balance for.
5065
5071
  * @returns A promise that resolves to the balance amount.
5066
5072
  */
5067
- async getBalance(assetId) {
5068
- const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
5069
- const amount = await this.provider.getBalance(this.address, assetIdToFetch);
5073
+ async getBalance(assetId = import_configs12.BaseAssetId) {
5074
+ const amount = await this.provider.getBalance(this.address, assetId);
5070
5075
  return amount;
5071
5076
  }
5072
5077
  /**
@@ -5104,10 +5109,9 @@ var Account = class extends import_interfaces.AbstractAccount {
5104
5109
  * @returns A promise that resolves when the resources are added to the transaction.
5105
5110
  */
5106
5111
  async fund(request, coinQuantities, fee) {
5107
- const baseAssetId = this.provider.getBaseAssetId();
5108
5112
  const updatedQuantities = addAmountToAsset({
5109
5113
  amount: (0, import_math18.bn)(fee),
5110
- assetId: baseAssetId,
5114
+ assetId: import_configs12.BaseAssetId,
5111
5115
  coinQuantities
5112
5116
  });
5113
5117
  const quantitiesDict = {};
@@ -5131,8 +5135,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5131
5135
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
5132
5136
  cachedUtxos.push(input.id);
5133
5137
  }
5134
- } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
5135
- quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
5138
+ } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
5139
+ quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
5136
5140
  cachedMessages.push(input.nonce);
5137
5141
  }
5138
5142
  }
@@ -5164,13 +5168,11 @@ var Account = class extends import_interfaces.AbstractAccount {
5164
5168
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5165
5169
  * @returns A promise that resolves to the prepared transaction request.
5166
5170
  */
5167
- async createTransfer(destination, amount, assetId, txParams = {}) {
5171
+ async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5168
5172
  const { minGasPrice } = this.provider.getGasConfig();
5169
- const baseAssetId = this.provider.getBaseAssetId();
5170
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5171
- const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
5173
+ const params = { gasPrice: minGasPrice, ...txParams };
5172
5174
  const request = new ScriptTransactionRequest(params);
5173
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
5175
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
5174
5176
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
5175
5177
  estimateTxDependencies: true,
5176
5178
  resourcesOwner: this
@@ -5196,15 +5198,14 @@ var Account = class extends import_interfaces.AbstractAccount {
5196
5198
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5197
5199
  * @returns A promise that resolves to the transaction response.
5198
5200
  */
5199
- async transfer(destination, amount, assetId, txParams = {}) {
5201
+ async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5200
5202
  if ((0, import_math18.bn)(amount).lte(0)) {
5201
5203
  throw new import_errors16.FuelError(
5202
5204
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
5203
5205
  "Transfer amount must be a positive number."
5204
5206
  );
5205
5207
  }
5206
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5207
- const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
5208
+ const request = await this.createTransfer(destination, amount, assetId, txParams);
5208
5209
  return this.sendTransaction(request, { estimateTxDependencies: false });
5209
5210
  }
5210
5211
  /**
@@ -5216,7 +5217,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5216
5217
  * @param txParams - The optional transaction parameters.
5217
5218
  * @returns A promise that resolves to the transaction response.
5218
5219
  */
5219
- async transferToContract(contractId, amount, assetId, txParams = {}) {
5220
+ async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5220
5221
  if ((0, import_math18.bn)(amount).lte(0)) {
5221
5222
  throw new import_errors16.FuelError(
5222
5223
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -5225,13 +5226,11 @@ var Account = class extends import_interfaces.AbstractAccount {
5225
5226
  }
5226
5227
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
5227
5228
  const { minGasPrice } = this.provider.getGasConfig();
5228
- const baseAssetId = this.provider.getBaseAssetId();
5229
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5230
- const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
5229
+ const params = { gasPrice: minGasPrice, ...txParams };
5231
5230
  const { script, scriptData } = await assembleTransferToContractScript({
5232
5231
  hexlifiedContractId: contractAddress.toB256(),
5233
5232
  amountToTransfer: (0, import_math18.bn)(amount),
5234
- assetId: assetIdToTransfer
5233
+ assetId
5235
5234
  });
5236
5235
  const request = new ScriptTransactionRequest({
5237
5236
  ...params,
@@ -5241,7 +5240,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5241
5240
  request.addContractInputAndOutput(contractAddress);
5242
5241
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
5243
5242
  request,
5244
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
5243
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
5245
5244
  );
5246
5245
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
5247
5246
  this.validateGas({
@@ -5263,7 +5262,6 @@ var Account = class extends import_interfaces.AbstractAccount {
5263
5262
  */
5264
5263
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
5265
5264
  const { minGasPrice } = this.provider.getGasConfig();
5266
- const baseAssetId = this.provider.getBaseAssetId();
5267
5265
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
5268
5266
  const recipientDataArray = (0, import_utils28.arrayify)(
5269
5267
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -5276,14 +5274,9 @@ var Account = class extends import_interfaces.AbstractAccount {
5276
5274
  ...recipientDataArray,
5277
5275
  ...amountDataArray
5278
5276
  ]);
5279
- const params = {
5280
- script,
5281
- gasPrice: minGasPrice,
5282
- baseAssetId,
5283
- ...txParams
5284
- };
5277
+ const params = { script, gasPrice: minGasPrice, ...txParams };
5285
5278
  const request = new ScriptTransactionRequest(params);
5286
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
5279
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
5287
5280
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
5288
5281
  request,
5289
5282
  forwardingQuantities
@@ -8846,8 +8839,9 @@ var StorageAbstract = class {
8846
8839
  // src/predicate/predicate.ts
8847
8840
  var import_abi_coder7 = require("@fuel-ts/abi-coder");
8848
8841
  var import_address10 = require("@fuel-ts/address");
8842
+ var import_configs13 = require("@fuel-ts/address/configs");
8849
8843
  var import_errors25 = require("@fuel-ts/errors");
8850
- var import_transactions20 = require("@fuel-ts/transactions");
8844
+ var import_transactions21 = require("@fuel-ts/transactions");
8851
8845
  var import_utils37 = require("@fuel-ts/utils");
8852
8846
 
8853
8847
  // src/predicate/utils/getPredicateRoot.ts
@@ -8906,10 +8900,15 @@ var Predicate = class extends Account {
8906
8900
  populateTransactionPredicateData(transactionRequestLike) {
8907
8901
  const request = transactionRequestify(transactionRequestLike);
8908
8902
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
8909
- request.inputs?.forEach((input) => {
8910
- 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)) {
8911
8909
  input.predicate = this.bytes;
8912
8910
  input.predicateData = this.getPredicateData(policies.length);
8911
+ input.witnessIndex = 0;
8913
8912
  }
8914
8913
  });
8915
8914
  return request;
@@ -8923,9 +8922,8 @@ var Predicate = class extends Account {
8923
8922
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
8924
8923
  * @returns A promise that resolves to the prepared transaction request.
8925
8924
  */
8926
- async createTransfer(destination, amount, assetId, txParams = {}) {
8927
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
8928
- const request = await super.createTransfer(destination, amount, assetIdToTransfer, txParams);
8925
+ async createTransfer(destination, amount, assetId = import_configs13.BaseAssetId, txParams = {}) {
8926
+ const request = await super.createTransfer(destination, amount, assetId, txParams);
8929
8927
  return this.populateTransactionPredicateData(request);
8930
8928
  }
8931
8929
  /**
@@ -8948,12 +8946,26 @@ var Predicate = class extends Account {
8948
8946
  const transactionRequest = this.populateTransactionPredicateData(transactionRequestLike);
8949
8947
  return super.simulateTransaction(transactionRequest);
8950
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
+ }
8951
8963
  getPredicateData(policiesLength) {
8952
8964
  if (!this.predicateData.length) {
8953
8965
  return new Uint8Array();
8954
8966
  }
8955
8967
  const mainFn = this.interface?.functions.main;
8956
- 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);
8957
8969
  const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
8958
8970
  maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
8959
8971
  });
@@ -9027,6 +9039,28 @@ var Predicate = class extends Account {
9027
9039
  }
9028
9040
  return mutatedBytes;
9029
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
+ }
9030
9064
  };
9031
9065
 
9032
9066
  // src/connectors/fuel.ts
@@ -9750,6 +9784,7 @@ __publicField(Fuel, "defaultConfig", {});
9750
9784
  assets,
9751
9785
  buildBlockExplorerUrl,
9752
9786
  cacheFor,
9787
+ cacheResources,
9753
9788
  calculateMetadataGasForTxCreate,
9754
9789
  calculateMetadataGasForTxScript,
9755
9790
  calculatePriceWithFactor,
@@ -9796,6 +9831,7 @@ __publicField(Fuel, "defaultConfig", {});
9796
9831
  getReceiptsMessageOut,
9797
9832
  getReceiptsTransferOut,
9798
9833
  getReceiptsWithMissingData,
9834
+ getRequestInputResourceOwner,
9799
9835
  getTransactionStatusName,
9800
9836
  getTransactionSummary,
9801
9837
  getTransactionSummaryFromRequest,
@@ -9809,6 +9845,10 @@ __publicField(Fuel, "defaultConfig", {});
9809
9845
  isMessage,
9810
9846
  isRawCoin,
9811
9847
  isRawMessage,
9848
+ isRequestInputCoin,
9849
+ isRequestInputMessage,
9850
+ isRequestInputResource,
9851
+ isRequestInputResourceFromOwner,
9812
9852
  isType,
9813
9853
  isTypeCreate,
9814
9854
  isTypeMint,