@fuel-ts/account 0.0.0-rc-1976-20240417161625 → 0.0.0-rc-2037-20240417202046

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 +124 -100
  3. package/dist/index.global.js.map +1 -1
  4. package/dist/index.js +280 -241
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +159 -126
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/predicate/predicate.d.ts +11 -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,33 @@ 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) => {
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
+
1808
1843
  // src/providers/transaction-request/witness.ts
1809
1844
  var import_utils8 = require("@fuel-ts/utils");
1810
1845
  var witnessify = (value) => {
@@ -1831,8 +1866,6 @@ var BaseTransactionRequest = class {
1831
1866
  outputs = [];
1832
1867
  /** List of witnesses */
1833
1868
  witnesses = [];
1834
- /** Base asset ID - should be fetched from the chain */
1835
- baseAssetId;
1836
1869
  /**
1837
1870
  * Constructor for initializing a base transaction request.
1838
1871
  *
@@ -1845,9 +1878,8 @@ var BaseTransactionRequest = class {
1845
1878
  witnessLimit,
1846
1879
  inputs,
1847
1880
  outputs,
1848
- witnesses,
1849
- baseAssetId
1850
- }) {
1881
+ witnesses
1882
+ } = {}) {
1851
1883
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1852
1884
  this.maturity = maturity ?? 0;
1853
1885
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1855,26 +1887,25 @@ var BaseTransactionRequest = class {
1855
1887
  this.inputs = inputs ?? [];
1856
1888
  this.outputs = outputs ?? [];
1857
1889
  this.witnesses = witnesses ?? [];
1858
- this.baseAssetId = baseAssetId;
1859
1890
  }
1860
1891
  static getPolicyMeta(req) {
1861
1892
  let policyTypes = 0;
1862
1893
  const policies = [];
1863
1894
  if (req.gasPrice) {
1864
- policyTypes += import_transactions6.PolicyType.GasPrice;
1865
- 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 });
1866
1897
  }
1867
1898
  if (req.witnessLimit) {
1868
- policyTypes += import_transactions6.PolicyType.WitnessLimit;
1869
- 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 });
1870
1901
  }
1871
1902
  if (req.maturity > 0) {
1872
- policyTypes += import_transactions6.PolicyType.Maturity;
1873
- 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 });
1874
1905
  }
1875
1906
  if (req.maxFee) {
1876
- policyTypes += import_transactions6.PolicyType.MaxFee;
1877
- 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 });
1878
1909
  }
1879
1910
  return {
1880
1911
  policyTypes,
@@ -1908,7 +1939,7 @@ var BaseTransactionRequest = class {
1908
1939
  * @returns The transaction bytes.
1909
1940
  */
1910
1941
  toTransactionBytes() {
1911
- return new import_transactions6.TransactionCoder().encode(this.toTransaction());
1942
+ return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1912
1943
  }
1913
1944
  /**
1914
1945
  * @hidden
@@ -1948,7 +1979,7 @@ var BaseTransactionRequest = class {
1948
1979
  * @returns The index of the created witness.
1949
1980
  */
1950
1981
  addEmptyWitness() {
1951
- this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1982
+ this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
1952
1983
  return this.witnesses.length - 1;
1953
1984
  }
1954
1985
  /**
@@ -1999,7 +2030,7 @@ var BaseTransactionRequest = class {
1999
2030
  */
2000
2031
  getCoinInputs() {
2001
2032
  return this.inputs.filter(
2002
- (input) => input.type === import_transactions6.InputType.Coin
2033
+ (input) => input.type === import_transactions7.InputType.Coin
2003
2034
  );
2004
2035
  }
2005
2036
  /**
@@ -2009,7 +2040,7 @@ var BaseTransactionRequest = class {
2009
2040
  */
2010
2041
  getCoinOutputs() {
2011
2042
  return this.outputs.filter(
2012
- (output) => output.type === import_transactions6.OutputType.Coin
2043
+ (output) => output.type === import_transactions7.OutputType.Coin
2013
2044
  );
2014
2045
  }
2015
2046
  /**
@@ -2019,7 +2050,7 @@ var BaseTransactionRequest = class {
2019
2050
  */
2020
2051
  getChangeOutputs() {
2021
2052
  return this.outputs.filter(
2022
- (output) => output.type === import_transactions6.OutputType.Change
2053
+ (output) => output.type === import_transactions7.OutputType.Change
2023
2054
  );
2024
2055
  }
2025
2056
  /**
@@ -2031,9 +2062,9 @@ var BaseTransactionRequest = class {
2031
2062
  const ownerAddress = (0, import_address.addressify)(owner);
2032
2063
  const found = this.inputs.find((input) => {
2033
2064
  switch (input.type) {
2034
- case import_transactions6.InputType.Coin:
2065
+ case import_transactions7.InputType.Coin:
2035
2066
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
2036
- case import_transactions6.InputType.Message:
2067
+ case import_transactions7.InputType.Message:
2037
2068
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
2038
2069
  default:
2039
2070
  return false;
@@ -2049,8 +2080,8 @@ var BaseTransactionRequest = class {
2049
2080
  * @param predicate - Predicate bytes.
2050
2081
  * @param predicateData - Predicate data bytes.
2051
2082
  */
2052
- addCoinInput(coin, predicate) {
2053
- const { assetId, owner, amount } = coin;
2083
+ addCoinInput(coin) {
2084
+ const { assetId, owner, amount, id, predicate } = coin;
2054
2085
  let witnessIndex;
2055
2086
  if (predicate) {
2056
2087
  witnessIndex = 0;
@@ -2061,14 +2092,14 @@ var BaseTransactionRequest = class {
2061
2092
  }
2062
2093
  }
2063
2094
  const input = {
2064
- ...coin,
2065
- type: import_transactions6.InputType.Coin,
2095
+ id,
2096
+ type: import_transactions7.InputType.Coin,
2066
2097
  owner: owner.toB256(),
2067
2098
  amount,
2068
2099
  assetId,
2069
2100
  txPointer: "0x00000000000000000000000000000000",
2070
2101
  witnessIndex,
2071
- predicate: predicate?.bytes
2102
+ predicate
2072
2103
  };
2073
2104
  this.pushInput(input);
2074
2105
  this.addChangeOutput(owner, assetId);
@@ -2079,9 +2110,11 @@ var BaseTransactionRequest = class {
2079
2110
  *
2080
2111
  * @param message - Message resource.
2081
2112
  * @param predicate - Predicate bytes.
2113
+ * @param predicateData - Predicate data bytes.
2082
2114
  */
2083
- addMessageInput(message, predicate) {
2084
- const { recipient, sender, amount } = message;
2115
+ addMessageInput(message) {
2116
+ const { recipient, sender, amount, predicate, nonce } = message;
2117
+ const assetId = import_configs7.BaseAssetId;
2085
2118
  let witnessIndex;
2086
2119
  if (predicate) {
2087
2120
  witnessIndex = 0;
@@ -2092,16 +2125,16 @@ 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
- this.addChangeOutput(recipient, this.baseAssetId);
2137
+ this.addChangeOutput(recipient, assetId);
2105
2138
  }
2106
2139
  /**
2107
2140
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -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
  *
@@ -2162,12 +2169,12 @@ var BaseTransactionRequest = class {
2162
2169
  * @param amount - Amount of coin.
2163
2170
  * @param assetId - Asset ID of coin.
2164
2171
  */
2165
- addCoinOutput(to, amount, assetId) {
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
- assetId: assetId ?? this.baseAssetId
2177
+ assetId
2171
2178
  });
2172
2179
  return this;
2173
2180
  }
@@ -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
@@ -2194,15 +2201,15 @@ var BaseTransactionRequest = class {
2194
2201
  * @param to - Address of the owner.
2195
2202
  * @param assetId - Asset ID of coin.
2196
2203
  */
2197
- addChangeOutput(to, assetId) {
2204
+ addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
2198
2205
  const changeOutput = this.getChangeOutputs().find(
2199
2206
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
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
- assetId: assetId ?? this.baseAssetId
2212
+ assetId
2206
2213
  });
2207
2214
  }
2208
2215
  }
@@ -2278,7 +2285,7 @@ var BaseTransactionRequest = class {
2278
2285
  ]);
2279
2286
  }
2280
2287
  };
2281
- updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2288
+ updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2282
2289
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2283
2290
  }
2284
2291
  /**
@@ -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
- var import_configs8 = require("@fuel-ts/address/configs");
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
- var import_configs7 = require("@fuel-ts/address/configs");
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) {
2346
- transaction.receiptsRoot = import_configs7.ZeroBytes32;
2363
+ if (transaction.type === import_transactions8.TransactionType.Script) {
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,19 +2374,19 @@ 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
2367
2385
  };
2368
- inputClone.txID = import_configs7.ZeroBytes32;
2386
+ inputClone.txID = import_configs8.ZeroBytes32;
2369
2387
  inputClone.outputIndex = 0;
2370
- inputClone.balanceRoot = import_configs7.ZeroBytes32;
2371
- inputClone.stateRoot = import_configs7.ZeroBytes32;
2388
+ inputClone.balanceRoot = import_configs8.ZeroBytes32;
2389
+ inputClone.stateRoot = import_configs8.ZeroBytes32;
2372
2390
  return inputClone;
2373
2391
  }
2374
2392
  default:
@@ -2378,19 +2396,19 @@ 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: {
2382
- outputClone.balanceRoot = import_configs7.ZeroBytes32;
2383
- outputClone.stateRoot = import_configs7.ZeroBytes32;
2399
+ case import_transactions8.OutputType.Contract: {
2400
+ outputClone.balanceRoot = import_configs8.ZeroBytes32;
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: {
2391
- outputClone.to = import_configs7.ZeroBytes32;
2408
+ case import_transactions8.OutputType.Variable: {
2409
+ outputClone.to = import_configs8.ZeroBytes32;
2392
2410
  outputClone.amount = (0, import_math8.bn)(0);
2393
- outputClone.assetId = import_configs7.ZeroBytes32;
2411
+ outputClone.assetId = import_configs8.ZeroBytes32;
2394
2412
  return outputClone;
2395
2413
  }
2396
2414
  default:
@@ -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 */
@@ -2448,10 +2466,15 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2448
2466
  *
2449
2467
  * @param createTransactionRequestLike - The initial values for the instance
2450
2468
  */
2451
- constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2469
+ constructor({
2470
+ bytecodeWitnessIndex,
2471
+ salt,
2472
+ storageSlots,
2473
+ ...rest
2474
+ } = {}) {
2452
2475
  super(rest);
2453
2476
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2454
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2477
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2455
2478
  this.storageSlots = [...storageSlots ?? []];
2456
2479
  }
2457
2480
  /**
@@ -2464,12 +2487,12 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2464
2487
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2465
2488
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2466
2489
  return {
2467
- type: import_transactions8.TransactionType.Create,
2490
+ type: import_transactions9.TransactionType.Create,
2468
2491
  ...baseTransaction,
2469
2492
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2470
2493
  bytecodeWitnessIndex,
2471
2494
  storageSlotsCount: storageSlots.length,
2472
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2495
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
2473
2496
  storageSlots
2474
2497
  };
2475
2498
  }
@@ -2480,7 +2503,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2480
2503
  */
2481
2504
  getContractCreatedOutputs() {
2482
2505
  return this.outputs.filter(
2483
- (output) => output.type === import_transactions8.OutputType.ContractCreated
2506
+ (output) => output.type === import_transactions9.OutputType.ContractCreated
2484
2507
  );
2485
2508
  }
2486
2509
  /**
@@ -2501,7 +2524,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2501
2524
  */
2502
2525
  addContractCreatedOutput(contractId, stateRoot) {
2503
2526
  this.pushOutput({
2504
- type: import_transactions8.OutputType.ContractCreated,
2527
+ type: import_transactions9.OutputType.ContractCreated,
2505
2528
  contractId,
2506
2529
  stateRoot
2507
2530
  });
@@ -2519,9 +2542,9 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2519
2542
  // src/providers/transaction-request/script-transaction-request.ts
2520
2543
  var import_abi_coder3 = require("@fuel-ts/abi-coder");
2521
2544
  var import_address2 = require("@fuel-ts/address");
2522
- var import_configs9 = require("@fuel-ts/address/configs");
2545
+ var import_configs10 = require("@fuel-ts/address/configs");
2523
2546
  var import_math10 = require("@fuel-ts/math");
2524
- var import_transactions9 = require("@fuel-ts/transactions");
2547
+ var import_transactions10 = require("@fuel-ts/transactions");
2525
2548
  var import_utils15 = require("@fuel-ts/utils");
2526
2549
 
2527
2550
  // src/providers/transaction-request/scripts.ts
@@ -2559,7 +2582,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2559
2582
  return new this(obj);
2560
2583
  }
2561
2584
  /** Type of the transaction */
2562
- type = import_transactions9.TransactionType.Script;
2585
+ type = import_transactions10.TransactionType.Script;
2563
2586
  /** Gas limit for transaction */
2564
2587
  gasLimit;
2565
2588
  /** Script to execute */
@@ -2572,7 +2595,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2572
2595
  *
2573
2596
  * @param scriptTransactionRequestLike - The initial values for the instance.
2574
2597
  */
2575
- constructor({ script, scriptData, gasLimit, ...rest }) {
2598
+ constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2576
2599
  super(rest);
2577
2600
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2578
2601
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2588,12 +2611,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2588
2611
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2589
2612
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2590
2613
  return {
2591
- type: import_transactions9.TransactionType.Script,
2614
+ type: import_transactions10.TransactionType.Script,
2592
2615
  scriptGasLimit: this.gasLimit,
2593
2616
  ...super.getBaseTransaction(),
2594
2617
  scriptLength: script.length,
2595
2618
  scriptDataLength: scriptData.length,
2596
- receiptsRoot: import_configs9.ZeroBytes32,
2619
+ receiptsRoot: import_configs10.ZeroBytes32,
2597
2620
  script: (0, import_utils15.hexlify)(script),
2598
2621
  scriptData: (0, import_utils15.hexlify)(scriptData)
2599
2622
  };
@@ -2605,7 +2628,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2605
2628
  */
2606
2629
  getContractInputs() {
2607
2630
  return this.inputs.filter(
2608
- (input) => input.type === import_transactions9.InputType.Contract
2631
+ (input) => input.type === import_transactions10.InputType.Contract
2609
2632
  );
2610
2633
  }
2611
2634
  /**
@@ -2615,7 +2638,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2615
2638
  */
2616
2639
  getContractOutputs() {
2617
2640
  return this.outputs.filter(
2618
- (output) => output.type === import_transactions9.OutputType.Contract
2641
+ (output) => output.type === import_transactions10.OutputType.Contract
2619
2642
  );
2620
2643
  }
2621
2644
  /**
@@ -2625,7 +2648,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2625
2648
  */
2626
2649
  getVariableOutputs() {
2627
2650
  return this.outputs.filter(
2628
- (output) => output.type === import_transactions9.OutputType.Variable
2651
+ (output) => output.type === import_transactions10.OutputType.Variable
2629
2652
  );
2630
2653
  }
2631
2654
  /**
@@ -2648,7 +2671,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2648
2671
  let outputsNumber = numberOfVariables;
2649
2672
  while (outputsNumber) {
2650
2673
  this.pushOutput({
2651
- type: import_transactions9.OutputType.Variable
2674
+ type: import_transactions10.OutputType.Variable
2652
2675
  });
2653
2676
  outputsNumber -= 1;
2654
2677
  }
@@ -2681,12 +2704,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2681
2704
  return this;
2682
2705
  }
2683
2706
  const inputIndex = super.pushInput({
2684
- type: import_transactions9.InputType.Contract,
2707
+ type: import_transactions10.InputType.Contract,
2685
2708
  contractId: contractAddress.toB256(),
2686
2709
  txPointer: "0x00000000000000000000000000000000"
2687
2710
  });
2688
2711
  this.pushOutput({
2689
- type: import_transactions9.OutputType.Contract,
2712
+ type: import_transactions10.OutputType.Contract,
2690
2713
  inputIndex
2691
2714
  });
2692
2715
  return this;
@@ -2723,17 +2746,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2723
2746
 
2724
2747
  // src/providers/transaction-request/utils.ts
2725
2748
  var import_errors9 = require("@fuel-ts/errors");
2726
- var import_transactions10 = require("@fuel-ts/transactions");
2749
+ var import_transactions11 = require("@fuel-ts/transactions");
2727
2750
  var transactionRequestify = (obj) => {
2728
2751
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2729
2752
  return obj;
2730
2753
  }
2731
2754
  const { type } = obj;
2732
2755
  switch (obj.type) {
2733
- case import_transactions10.TransactionType.Script: {
2756
+ case import_transactions11.TransactionType.Script: {
2734
2757
  return ScriptTransactionRequest.from(obj);
2735
2758
  }
2736
- case import_transactions10.TransactionType.Create: {
2759
+ case import_transactions11.TransactionType.Create: {
2737
2760
  return CreateTransactionRequest.from(obj);
2738
2761
  }
2739
2762
  default: {
@@ -2745,7 +2768,7 @@ var transactionRequestify = (obj) => {
2745
2768
  // src/providers/transaction-response/transaction-response.ts
2746
2769
  var import_errors13 = require("@fuel-ts/errors");
2747
2770
  var import_math14 = require("@fuel-ts/math");
2748
- var import_transactions17 = require("@fuel-ts/transactions");
2771
+ var import_transactions18 = require("@fuel-ts/transactions");
2749
2772
  var import_utils21 = require("@fuel-ts/utils");
2750
2773
 
2751
2774
  // src/providers/transaction-summary/assemble-transaction-summary.ts
@@ -2753,7 +2776,7 @@ var import_utils19 = require("@fuel-ts/utils");
2753
2776
 
2754
2777
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2755
2778
  var import_math11 = require("@fuel-ts/math");
2756
- var import_transactions11 = require("@fuel-ts/transactions");
2779
+ var import_transactions12 = require("@fuel-ts/transactions");
2757
2780
  var import_utils16 = require("@fuel-ts/utils");
2758
2781
  var calculateTransactionFee = (params) => {
2759
2782
  const {
@@ -2764,8 +2787,8 @@ var calculateTransactionFee = (params) => {
2764
2787
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2765
2788
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2766
2789
  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) {
2790
+ const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2791
+ if (transaction.type === import_transactions12.TransactionType.Mint) {
2769
2792
  return {
2770
2793
  fee: (0, import_math11.bn)(0),
2771
2794
  minFee: (0, import_math11.bn)(0),
@@ -2776,7 +2799,7 @@ var calculateTransactionFee = (params) => {
2776
2799
  const { type, witnesses, inputs, policies } = transaction;
2777
2800
  let metadataGas = (0, import_math11.bn)(0);
2778
2801
  let gasLimit = (0, import_math11.bn)(0);
2779
- if (type === import_transactions11.TransactionType.Create) {
2802
+ if (type === import_transactions12.TransactionType.Create) {
2780
2803
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2781
2804
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2782
2805
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2802,8 +2825,8 @@ var calculateTransactionFee = (params) => {
2802
2825
  metadataGas,
2803
2826
  txBytesSize: transactionBytes.length
2804
2827
  });
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;
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;
2807
2830
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2808
2831
  const maxGas = getMaxGas({
2809
2832
  gasPerByte,
@@ -2825,10 +2848,10 @@ var calculateTransactionFee = (params) => {
2825
2848
  };
2826
2849
 
2827
2850
  // src/providers/transaction-summary/operations.ts
2828
- var import_configs10 = require("@fuel-ts/address/configs");
2851
+ var import_configs11 = require("@fuel-ts/address/configs");
2829
2852
  var import_errors11 = require("@fuel-ts/errors");
2830
2853
  var import_math13 = require("@fuel-ts/math");
2831
- var import_transactions14 = require("@fuel-ts/transactions");
2854
+ var import_transactions15 = require("@fuel-ts/transactions");
2832
2855
 
2833
2856
  // src/providers/transaction-summary/call.ts
2834
2857
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2876,7 +2899,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2876
2899
 
2877
2900
  // src/providers/transaction-summary/input.ts
2878
2901
  var import_errors10 = require("@fuel-ts/errors");
2879
- var import_transactions12 = require("@fuel-ts/transactions");
2902
+ var import_transactions13 = require("@fuel-ts/transactions");
2880
2903
  function getInputsByTypes(inputs, types) {
2881
2904
  return inputs.filter((i) => types.includes(i.type));
2882
2905
  }
@@ -2884,16 +2907,16 @@ function getInputsByType(inputs, type) {
2884
2907
  return inputs.filter((i) => i.type === type);
2885
2908
  }
2886
2909
  function getInputsCoin(inputs) {
2887
- return getInputsByType(inputs, import_transactions12.InputType.Coin);
2910
+ return getInputsByType(inputs, import_transactions13.InputType.Coin);
2888
2911
  }
2889
2912
  function getInputsMessage(inputs) {
2890
- return getInputsByType(inputs, import_transactions12.InputType.Message);
2913
+ return getInputsByType(inputs, import_transactions13.InputType.Message);
2891
2914
  }
2892
2915
  function getInputsCoinAndMessage(inputs) {
2893
- return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
2916
+ return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2894
2917
  }
2895
2918
  function getInputsContract(inputs) {
2896
- return getInputsByType(inputs, import_transactions12.InputType.Contract);
2919
+ return getInputsByType(inputs, import_transactions13.InputType.Contract);
2897
2920
  }
2898
2921
  function getInputFromAssetId(inputs, assetId) {
2899
2922
  const coinInputs = getInputsCoin(inputs);
@@ -2912,7 +2935,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2912
2935
  if (!contractInput) {
2913
2936
  return void 0;
2914
2937
  }
2915
- if (contractInput.type !== import_transactions12.InputType.Contract) {
2938
+ if (contractInput.type !== import_transactions13.InputType.Contract) {
2916
2939
  throw new import_errors10.FuelError(
2917
2940
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
2918
2941
  `Contract input should be of type 'contract'.`
@@ -2921,34 +2944,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
2921
2944
  return contractInput;
2922
2945
  }
2923
2946
  function getInputAccountAddress(input) {
2924
- if (input.type === import_transactions12.InputType.Coin) {
2947
+ if (input.type === import_transactions13.InputType.Coin) {
2925
2948
  return input.owner.toString();
2926
2949
  }
2927
- if (input.type === import_transactions12.InputType.Message) {
2950
+ if (input.type === import_transactions13.InputType.Message) {
2928
2951
  return input.recipient.toString();
2929
2952
  }
2930
2953
  return "";
2931
2954
  }
2932
2955
 
2933
2956
  // src/providers/transaction-summary/output.ts
2934
- var import_transactions13 = require("@fuel-ts/transactions");
2957
+ var import_transactions14 = require("@fuel-ts/transactions");
2935
2958
  function getOutputsByType(outputs, type) {
2936
2959
  return outputs.filter((o) => o.type === type);
2937
2960
  }
2938
2961
  function getOutputsContractCreated(outputs) {
2939
- return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
2962
+ return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
2940
2963
  }
2941
2964
  function getOutputsCoin(outputs) {
2942
- return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
2965
+ return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
2943
2966
  }
2944
2967
  function getOutputsChange(outputs) {
2945
- return getOutputsByType(outputs, import_transactions13.OutputType.Change);
2968
+ return getOutputsByType(outputs, import_transactions14.OutputType.Change);
2946
2969
  }
2947
2970
  function getOutputsContract(outputs) {
2948
- return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
2971
+ return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
2949
2972
  }
2950
2973
  function getOutputsVariable(outputs) {
2951
- return getOutputsByType(outputs, import_transactions13.OutputType.Variable);
2974
+ return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
2952
2975
  }
2953
2976
 
2954
2977
  // src/providers/transaction-summary/types.ts
@@ -2995,11 +3018,11 @@ function getReceiptsByType(receipts, type) {
2995
3018
  }
2996
3019
  function getTransactionTypeName(transactionType) {
2997
3020
  switch (transactionType) {
2998
- case import_transactions14.TransactionType.Mint:
3021
+ case import_transactions15.TransactionType.Mint:
2999
3022
  return "Mint" /* Mint */;
3000
- case import_transactions14.TransactionType.Create:
3023
+ case import_transactions15.TransactionType.Create:
3001
3024
  return "Create" /* Create */;
3002
- case import_transactions14.TransactionType.Script:
3025
+ case import_transactions15.TransactionType.Script:
3003
3026
  return "Script" /* Script */;
3004
3027
  default:
3005
3028
  throw new import_errors11.FuelError(
@@ -3025,10 +3048,10 @@ function hasSameAssetId(a) {
3025
3048
  return (b) => a.assetId === b.assetId;
3026
3049
  }
3027
3050
  function getReceiptsCall(receipts) {
3028
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
3051
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
3029
3052
  }
3030
3053
  function getReceiptsMessageOut(receipts) {
3031
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
3054
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
3032
3055
  }
3033
3056
  var mergeAssets = (op1, op2) => {
3034
3057
  const assets1 = op1.assetsSent || [];
@@ -3067,7 +3090,7 @@ function addOperation(operations, toAdd) {
3067
3090
  return allOperations;
3068
3091
  }
3069
3092
  function getReceiptsTransferOut(receipts) {
3070
- return getReceiptsByType(receipts, import_transactions14.ReceiptType.TransferOut);
3093
+ return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
3071
3094
  }
3072
3095
  function getWithdrawFromFuelOperations({
3073
3096
  inputs,
@@ -3170,7 +3193,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
3170
3193
  const { to: toAddress, assetId, amount } = receipt;
3171
3194
  let { from: fromAddress } = receipt;
3172
3195
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
3173
- if (import_configs10.ZeroBytes32 === fromAddress) {
3196
+ if (import_configs11.ZeroBytes32 === fromAddress) {
3174
3197
  const change = changeOutputs.find((output) => output.assetId === assetId);
3175
3198
  fromAddress = change?.to || fromAddress;
3176
3199
  }
@@ -3227,11 +3250,11 @@ function getTransferOperations({
3227
3250
  });
3228
3251
  const transferReceipts = getReceiptsByType(
3229
3252
  receipts,
3230
- import_transactions14.ReceiptType.Transfer
3253
+ import_transactions15.ReceiptType.Transfer
3231
3254
  );
3232
3255
  const transferOutReceipts = getReceiptsByType(
3233
3256
  receipts,
3234
- import_transactions14.ReceiptType.TransferOut
3257
+ import_transactions15.ReceiptType.TransferOut
3235
3258
  );
3236
3259
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3237
3260
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3316,17 +3339,17 @@ function getOperations({
3316
3339
  }
3317
3340
 
3318
3341
  // src/providers/transaction-summary/receipt.ts
3319
- var import_transactions15 = require("@fuel-ts/transactions");
3342
+ var import_transactions16 = require("@fuel-ts/transactions");
3320
3343
  var processGqlReceipt = (gqlReceipt) => {
3321
3344
  const receipt = assembleReceiptByType(gqlReceipt);
3322
3345
  switch (receipt.type) {
3323
- case import_transactions15.ReceiptType.ReturnData: {
3346
+ case import_transactions16.ReceiptType.ReturnData: {
3324
3347
  return {
3325
3348
  ...receipt,
3326
3349
  data: gqlReceipt.data || "0x"
3327
3350
  };
3328
3351
  }
3329
- case import_transactions15.ReceiptType.LogData: {
3352
+ case import_transactions16.ReceiptType.LogData: {
3330
3353
  return {
3331
3354
  ...receipt,
3332
3355
  data: gqlReceipt.data || "0x"
@@ -3339,7 +3362,7 @@ var processGqlReceipt = (gqlReceipt) => {
3339
3362
  var extractMintedAssetsFromReceipts = (receipts) => {
3340
3363
  const mintedAssets = [];
3341
3364
  receipts.forEach((receipt) => {
3342
- if (receipt.type === import_transactions15.ReceiptType.Mint) {
3365
+ if (receipt.type === import_transactions16.ReceiptType.Mint) {
3343
3366
  mintedAssets.push({
3344
3367
  subId: receipt.subId,
3345
3368
  contractId: receipt.contractId,
@@ -3353,7 +3376,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3353
3376
  var extractBurnedAssetsFromReceipts = (receipts) => {
3354
3377
  const burnedAssets = [];
3355
3378
  receipts.forEach((receipt) => {
3356
- if (receipt.type === import_transactions15.ReceiptType.Burn) {
3379
+ if (receipt.type === import_transactions16.ReceiptType.Burn) {
3357
3380
  burnedAssets.push({
3358
3381
  subId: receipt.subId,
3359
3382
  contractId: receipt.contractId,
@@ -3492,12 +3515,12 @@ function assembleTransactionSummary(params) {
3492
3515
 
3493
3516
  // src/providers/transaction-response/getDecodedLogs.ts
3494
3517
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3495
- var import_transactions16 = require("@fuel-ts/transactions");
3518
+ var import_transactions17 = require("@fuel-ts/transactions");
3496
3519
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3497
3520
  return receipts.reduce((logs, receipt) => {
3498
- 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) {
3499
3522
  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;
3523
+ const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3501
3524
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3502
3525
  logs.push(decodedLog);
3503
3526
  }
@@ -3570,7 +3593,7 @@ var TransactionResponse = class {
3570
3593
  * @returns The decoded transaction.
3571
3594
  */
3572
3595
  decodeTransaction(transactionWithReceipts) {
3573
- return new import_transactions17.TransactionCoder().decode(
3596
+ return new import_transactions18.TransactionCoder().decode(
3574
3597
  (0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
3575
3598
  0
3576
3599
  )?.[0];
@@ -3747,7 +3770,6 @@ var processGqlChain = (chain) => {
3747
3770
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3748
3771
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3749
3772
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3750
- baseAssetId: consensusParameters.baseAssetId,
3751
3773
  gasCosts
3752
3774
  },
3753
3775
  gasCosts,
@@ -3990,17 +4012,6 @@ var _Provider = class {
3990
4012
  } = this.getChain();
3991
4013
  return chainId.toNumber();
3992
4014
  }
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
4015
  /**
4005
4016
  * Submits a transaction to the chain to be executed.
4006
4017
  *
@@ -4019,7 +4030,7 @@ var _Provider = class {
4019
4030
  }
4020
4031
  const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
4021
4032
  let abis;
4022
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4033
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4023
4034
  abis = transactionRequest.abis;
4024
4035
  }
4025
4036
  if (awaitExecution) {
@@ -4115,7 +4126,7 @@ var _Provider = class {
4115
4126
  * @returns A promise.
4116
4127
  */
4117
4128
  async estimateTxDependencies(transactionRequest) {
4118
- if (transactionRequest.type === import_transactions18.TransactionType.Create) {
4129
+ if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4119
4130
  return {
4120
4131
  receipts: [],
4121
4132
  outputVariables: 0,
@@ -4164,7 +4175,7 @@ var _Provider = class {
4164
4175
  transactionRequest.gasPrice = gasPrice;
4165
4176
  const minGas = transactionRequest.calculateMinGas(chainInfo);
4166
4177
  const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
4167
- if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4178
+ if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4168
4179
  if (transactionRequest.gasLimit.eq(0)) {
4169
4180
  transactionRequest.gasLimit = minGas;
4170
4181
  transactionRequest.gasLimit = maxGasPerTx.sub(
@@ -4230,7 +4241,7 @@ var _Provider = class {
4230
4241
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4231
4242
  const { minGasPrice } = this.getGasConfig();
4232
4243
  const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
4233
- const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
4244
+ const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4234
4245
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4235
4246
  const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
4236
4247
  txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
@@ -4446,7 +4457,7 @@ var _Provider = class {
4446
4457
  time: block.header.time,
4447
4458
  transactionIds: block.transactions.map((tx) => tx.id),
4448
4459
  transactions: block.transactions.map(
4449
- (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]
4450
4461
  )
4451
4462
  };
4452
4463
  }
@@ -4461,7 +4472,7 @@ var _Provider = class {
4461
4472
  if (!transaction) {
4462
4473
  return null;
4463
4474
  }
4464
- return new import_transactions18.TransactionCoder().decode(
4475
+ return new import_transactions19.TransactionCoder().decode(
4465
4476
  (0, import_utils23.arrayify)(transaction.rawPayload),
4466
4477
  0
4467
4478
  )?.[0];
@@ -4541,7 +4552,7 @@ var _Provider = class {
4541
4552
  });
4542
4553
  const messages = result.messages.edges.map((edge) => edge.node);
4543
4554
  return messages.map((message) => ({
4544
- messageId: import_transactions18.InputMessageCoder.getMessageId({
4555
+ messageId: import_transactions19.InputMessageCoder.getMessageId({
4545
4556
  sender: message.sender,
4546
4557
  recipient: message.recipient,
4547
4558
  nonce: message.nonce,
@@ -4552,7 +4563,7 @@ var _Provider = class {
4552
4563
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4553
4564
  nonce: message.nonce,
4554
4565
  amount: (0, import_math15.bn)(message.amount),
4555
- data: import_transactions18.InputMessageCoder.decodeData(message.data),
4566
+ data: import_transactions19.InputMessageCoder.decodeData(message.data),
4556
4567
  daHeight: (0, import_math15.bn)(message.daHeight)
4557
4568
  }));
4558
4569
  }
@@ -4680,7 +4691,7 @@ cacheInputs_fn = function(inputs) {
4680
4691
  return;
4681
4692
  }
4682
4693
  inputs.forEach((input) => {
4683
- if (input.type === import_transactions18.InputType.Coin) {
4694
+ if (input.type === import_transactions19.InputType.Coin) {
4684
4695
  this.cache?.set(input.id);
4685
4696
  }
4686
4697
  });
@@ -4691,7 +4702,7 @@ __publicField(Provider, "nodeInfoCache", {});
4691
4702
  // src/providers/transaction-summary/get-transaction-summary.ts
4692
4703
  var import_errors15 = require("@fuel-ts/errors");
4693
4704
  var import_math16 = require("@fuel-ts/math");
4694
- var import_transactions19 = require("@fuel-ts/transactions");
4705
+ var import_transactions20 = require("@fuel-ts/transactions");
4695
4706
  var import_utils26 = require("@fuel-ts/utils");
4696
4707
  async function getTransactionSummary(params) {
4697
4708
  const { id, provider, abiMap } = params;
@@ -4704,7 +4715,7 @@ async function getTransactionSummary(params) {
4704
4715
  `Transaction not found for given id: ${id}.`
4705
4716
  );
4706
4717
  }
4707
- const [decodedTransaction] = new import_transactions19.TransactionCoder().decode(
4718
+ const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
4708
4719
  (0, import_utils26.arrayify)(gqlTransaction.rawPayload),
4709
4720
  0
4710
4721
  );
@@ -4758,7 +4769,7 @@ async function getTransactionsSummaries(params) {
4758
4769
  const transactions = edges.map((edge) => {
4759
4770
  const { node: gqlTransaction } = edge;
4760
4771
  const { id, rawPayload, receipts: gqlReceipts, status } = gqlTransaction;
4761
- 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);
4762
4773
  const receipts = gqlReceipts?.map(processGqlReceipt) || [];
4763
4774
  const transactionSummary = assembleTransactionSummary({
4764
4775
  id,
@@ -5064,9 +5075,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5064
5075
  * @param assetId - The asset ID to check the balance for.
5065
5076
  * @returns A promise that resolves to the balance amount.
5066
5077
  */
5067
- async getBalance(assetId) {
5068
- const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
5069
- const amount = await this.provider.getBalance(this.address, assetIdToFetch);
5078
+ async getBalance(assetId = import_configs12.BaseAssetId) {
5079
+ const amount = await this.provider.getBalance(this.address, assetId);
5070
5080
  return amount;
5071
5081
  }
5072
5082
  /**
@@ -5104,10 +5114,9 @@ var Account = class extends import_interfaces.AbstractAccount {
5104
5114
  * @returns A promise that resolves when the resources are added to the transaction.
5105
5115
  */
5106
5116
  async fund(request, coinQuantities, fee) {
5107
- const baseAssetId = this.provider.getBaseAssetId();
5108
5117
  const updatedQuantities = addAmountToAsset({
5109
5118
  amount: (0, import_math18.bn)(fee),
5110
- assetId: baseAssetId,
5119
+ assetId: import_configs12.BaseAssetId,
5111
5120
  coinQuantities
5112
5121
  });
5113
5122
  const quantitiesDict = {};
@@ -5131,8 +5140,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5131
5140
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
5132
5141
  cachedUtxos.push(input.id);
5133
5142
  }
5134
- } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
5135
- quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
5143
+ } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
5144
+ quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
5136
5145
  cachedMessages.push(input.nonce);
5137
5146
  }
5138
5147
  }
@@ -5164,13 +5173,11 @@ var Account = class extends import_interfaces.AbstractAccount {
5164
5173
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5165
5174
  * @returns A promise that resolves to the prepared transaction request.
5166
5175
  */
5167
- async createTransfer(destination, amount, assetId, txParams = {}) {
5176
+ async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5168
5177
  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 };
5178
+ const params = { gasPrice: minGasPrice, ...txParams };
5172
5179
  const request = new ScriptTransactionRequest(params);
5173
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
5180
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
5174
5181
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
5175
5182
  estimateTxDependencies: true,
5176
5183
  resourcesOwner: this
@@ -5196,15 +5203,14 @@ var Account = class extends import_interfaces.AbstractAccount {
5196
5203
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5197
5204
  * @returns A promise that resolves to the transaction response.
5198
5205
  */
5199
- async transfer(destination, amount, assetId, txParams = {}) {
5206
+ async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5200
5207
  if ((0, import_math18.bn)(amount).lte(0)) {
5201
5208
  throw new import_errors16.FuelError(
5202
5209
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
5203
5210
  "Transfer amount must be a positive number."
5204
5211
  );
5205
5212
  }
5206
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5207
- const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
5213
+ const request = await this.createTransfer(destination, amount, assetId, txParams);
5208
5214
  return this.sendTransaction(request, { estimateTxDependencies: false });
5209
5215
  }
5210
5216
  /**
@@ -5216,7 +5222,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5216
5222
  * @param txParams - The optional transaction parameters.
5217
5223
  * @returns A promise that resolves to the transaction response.
5218
5224
  */
5219
- async transferToContract(contractId, amount, assetId, txParams = {}) {
5225
+ async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5220
5226
  if ((0, import_math18.bn)(amount).lte(0)) {
5221
5227
  throw new import_errors16.FuelError(
5222
5228
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -5225,13 +5231,11 @@ var Account = class extends import_interfaces.AbstractAccount {
5225
5231
  }
5226
5232
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
5227
5233
  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 };
5234
+ const params = { gasPrice: minGasPrice, ...txParams };
5231
5235
  const { script, scriptData } = await assembleTransferToContractScript({
5232
5236
  hexlifiedContractId: contractAddress.toB256(),
5233
5237
  amountToTransfer: (0, import_math18.bn)(amount),
5234
- assetId: assetIdToTransfer
5238
+ assetId
5235
5239
  });
5236
5240
  const request = new ScriptTransactionRequest({
5237
5241
  ...params,
@@ -5241,7 +5245,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5241
5245
  request.addContractInputAndOutput(contractAddress);
5242
5246
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
5243
5247
  request,
5244
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
5248
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
5245
5249
  );
5246
5250
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
5247
5251
  this.validateGas({
@@ -5263,7 +5267,6 @@ var Account = class extends import_interfaces.AbstractAccount {
5263
5267
  */
5264
5268
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
5265
5269
  const { minGasPrice } = this.provider.getGasConfig();
5266
- const baseAssetId = this.provider.getBaseAssetId();
5267
5270
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
5268
5271
  const recipientDataArray = (0, import_utils28.arrayify)(
5269
5272
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -5276,14 +5279,9 @@ var Account = class extends import_interfaces.AbstractAccount {
5276
5279
  ...recipientDataArray,
5277
5280
  ...amountDataArray
5278
5281
  ]);
5279
- const params = {
5280
- script,
5281
- gasPrice: minGasPrice,
5282
- baseAssetId,
5283
- ...txParams
5284
- };
5282
+ const params = { script, gasPrice: minGasPrice, ...txParams };
5285
5283
  const request = new ScriptTransactionRequest(params);
5286
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
5284
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
5287
5285
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
5288
5286
  request,
5289
5287
  forwardingQuantities
@@ -8846,8 +8844,9 @@ var StorageAbstract = class {
8846
8844
  // src/predicate/predicate.ts
8847
8845
  var import_abi_coder7 = require("@fuel-ts/abi-coder");
8848
8846
  var import_address10 = require("@fuel-ts/address");
8847
+ var import_configs13 = require("@fuel-ts/address/configs");
8849
8848
  var import_errors25 = require("@fuel-ts/errors");
8850
- var import_transactions20 = require("@fuel-ts/transactions");
8849
+ var import_transactions21 = require("@fuel-ts/transactions");
8851
8850
  var import_utils37 = require("@fuel-ts/utils");
8852
8851
 
8853
8852
  // src/predicate/utils/getPredicateRoot.ts
@@ -8906,10 +8905,15 @@ var Predicate = class extends Account {
8906
8905
  populateTransactionPredicateData(transactionRequestLike) {
8907
8906
  const request = transactionRequestify(transactionRequestLike);
8908
8907
  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()) {
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)) {
8911
8914
  input.predicate = this.bytes;
8912
8915
  input.predicateData = this.getPredicateData(policies.length);
8916
+ input.witnessIndex = 0;
8913
8917
  }
8914
8918
  });
8915
8919
  return request;
@@ -8923,9 +8927,8 @@ var Predicate = class extends Account {
8923
8927
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
8924
8928
  * @returns A promise that resolves to the prepared transaction request.
8925
8929
  */
8926
- async createTransfer(destination, amount, assetId, txParams = {}) {
8927
- const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
8928
- const request = await super.createTransfer(destination, amount, assetIdToTransfer, txParams);
8930
+ async createTransfer(destination, amount, assetId = import_configs13.BaseAssetId, txParams = {}) {
8931
+ const request = await super.createTransfer(destination, amount, assetId, txParams);
8929
8932
  return this.populateTransactionPredicateData(request);
8930
8933
  }
8931
8934
  /**
@@ -8948,12 +8951,26 @@ var Predicate = class extends Account {
8948
8951
  const transactionRequest = this.populateTransactionPredicateData(transactionRequestLike);
8949
8952
  return super.simulateTransaction(transactionRequest);
8950
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
+ }
8951
8968
  getPredicateData(policiesLength) {
8952
8969
  if (!this.predicateData.length) {
8953
8970
  return new Uint8Array();
8954
8971
  }
8955
8972
  const mainFn = this.interface?.functions.main;
8956
- 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);
8957
8974
  const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
8958
8975
  maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
8959
8976
  });
@@ -9027,6 +9044,22 @@ var Predicate = class extends Account {
9027
9044
  }
9028
9045
  return mutatedBytes;
9029
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
+ }
9030
9063
  };
9031
9064
 
9032
9065
  // src/connectors/fuel.ts
@@ -9750,6 +9783,7 @@ __publicField(Fuel, "defaultConfig", {});
9750
9783
  assets,
9751
9784
  buildBlockExplorerUrl,
9752
9785
  cacheFor,
9786
+ cacheResources,
9753
9787
  calculateMetadataGasForTxCreate,
9754
9788
  calculateMetadataGasForTxScript,
9755
9789
  calculatePriceWithFactor,
@@ -9796,6 +9830,7 @@ __publicField(Fuel, "defaultConfig", {});
9796
9830
  getReceiptsMessageOut,
9797
9831
  getReceiptsTransferOut,
9798
9832
  getReceiptsWithMissingData,
9833
+ getRequestInputResourceOwner,
9799
9834
  getTransactionStatusName,
9800
9835
  getTransactionSummary,
9801
9836
  getTransactionSummaryFromRequest,
@@ -9809,6 +9844,10 @@ __publicField(Fuel, "defaultConfig", {});
9809
9844
  isMessage,
9810
9845
  isRawCoin,
9811
9846
  isRawMessage,
9847
+ isRequestInputCoin,
9848
+ isRequestInputMessage,
9849
+ isRequestInputResource,
9850
+ isRequestInputResourceFromOwner,
9812
9851
  isType,
9813
9852
  isTypeCreate,
9814
9853
  isTypeMint,