@fuel-ts/account 0.0.0-rc-2037-20240423110545 → 0.0.0-rc-1976-20240423111125

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