@fuel-ts/account 0.0.0-rc-2037-20240417234504 → 0.0.0-rc-1976-20240418110250

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 +101 -125
  3. package/dist/index.global.js.map +1 -1
  4. package/dist/index.js +241 -280
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +126 -159
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/predicate/predicate.d.ts +2 -11
  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 +106 -105
  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
@@ -48,9 +48,6 @@ var __privateMethod = (obj, member, method) => {
48
48
  // src/test-utils/index.ts
49
49
  var test_utils_exports = {};
50
50
  __export(test_utils_exports, {
51
- generateFakeRequestInputCoin: () => generateFakeRequestInputCoin,
52
- generateFakeRequestInputContract: () => generateFakeRequestInputContract,
53
- generateFakeRequestInputMessage: () => generateFakeRequestInputMessage,
54
51
  generateTestWallet: () => generateTestWallet,
55
52
  killNode: () => killNode,
56
53
  launchNode: () => launchNode,
@@ -65,14 +62,12 @@ var import_utils31 = require("@fuel-ts/utils");
65
62
 
66
63
  // src/account.ts
67
64
  var import_address4 = require("@fuel-ts/address");
68
- var import_configs12 = require("@fuel-ts/address/configs");
69
65
  var import_errors16 = require("@fuel-ts/errors");
70
66
  var import_interfaces = require("@fuel-ts/interfaces");
71
67
  var import_math18 = require("@fuel-ts/math");
72
68
  var import_utils28 = require("@fuel-ts/utils");
73
69
 
74
70
  // src/providers/coin-quantity.ts
75
- var import_configs = require("@fuel-ts/address/configs");
76
71
  var import_math = require("@fuel-ts/math");
77
72
  var import_utils = require("@fuel-ts/utils");
78
73
  var coinQuantityfy = (coinQuantityLike) => {
@@ -81,11 +76,11 @@ var coinQuantityfy = (coinQuantityLike) => {
81
76
  let max2;
82
77
  if (Array.isArray(coinQuantityLike)) {
83
78
  amount = coinQuantityLike[0];
84
- assetId = coinQuantityLike[1] ?? import_configs.BaseAssetId;
85
- max2 = coinQuantityLike[2] ?? void 0;
79
+ assetId = coinQuantityLike[1];
80
+ max2 = coinQuantityLike[2];
86
81
  } else {
87
82
  amount = coinQuantityLike.amount;
88
- assetId = coinQuantityLike.assetId ?? import_configs.BaseAssetId;
83
+ assetId = coinQuantityLike.assetId;
89
84
  max2 = coinQuantityLike.max ?? void 0;
90
85
  }
91
86
  const bnAmount = (0, import_math.bn)(amount);
@@ -111,7 +106,7 @@ var addAmountToAsset = (params) => {
111
106
  var import_address3 = require("@fuel-ts/address");
112
107
  var import_errors14 = require("@fuel-ts/errors");
113
108
  var import_math15 = require("@fuel-ts/math");
114
- var import_transactions19 = require("@fuel-ts/transactions");
109
+ var import_transactions18 = require("@fuel-ts/transactions");
115
110
  var import_utils23 = require("@fuel-ts/utils");
116
111
  var import_versions = require("@fuel-ts/versions");
117
112
  var import_utils24 = require("@noble/curves/abstract/utils");
@@ -1064,7 +1059,7 @@ var MemoryCache = class {
1064
1059
 
1065
1060
  // src/providers/transaction-request/input.ts
1066
1061
  var import_abi_coder = require("@fuel-ts/abi-coder");
1067
- var import_configs2 = require("@fuel-ts/address/configs");
1062
+ var import_configs = require("@fuel-ts/address/configs");
1068
1063
  var import_errors3 = require("@fuel-ts/errors");
1069
1064
  var import_math2 = require("@fuel-ts/math");
1070
1065
  var import_transactions = require("@fuel-ts/transactions");
@@ -1098,10 +1093,10 @@ var inputify = (value) => {
1098
1093
  case import_transactions.InputType.Contract: {
1099
1094
  return {
1100
1095
  type: import_transactions.InputType.Contract,
1101
- txID: import_configs2.ZeroBytes32,
1096
+ txID: import_configs.ZeroBytes32,
1102
1097
  outputIndex: 0,
1103
- balanceRoot: import_configs2.ZeroBytes32,
1104
- stateRoot: import_configs2.ZeroBytes32,
1098
+ balanceRoot: import_configs.ZeroBytes32,
1099
+ stateRoot: import_configs.ZeroBytes32,
1105
1100
  txPointer: {
1106
1101
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1107
1102
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1139,7 +1134,7 @@ var inputify = (value) => {
1139
1134
  };
1140
1135
 
1141
1136
  // src/providers/transaction-request/output.ts
1142
- var import_configs3 = require("@fuel-ts/address/configs");
1137
+ var import_configs2 = require("@fuel-ts/address/configs");
1143
1138
  var import_errors4 = require("@fuel-ts/errors");
1144
1139
  var import_math3 = require("@fuel-ts/math");
1145
1140
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1159,8 +1154,8 @@ var outputify = (value) => {
1159
1154
  return {
1160
1155
  type: import_transactions2.OutputType.Contract,
1161
1156
  inputIndex: value.inputIndex,
1162
- balanceRoot: import_configs3.ZeroBytes32,
1163
- stateRoot: import_configs3.ZeroBytes32
1157
+ balanceRoot: import_configs2.ZeroBytes32,
1158
+ stateRoot: import_configs2.ZeroBytes32
1164
1159
  };
1165
1160
  }
1166
1161
  case import_transactions2.OutputType.Change: {
@@ -1174,9 +1169,9 @@ var outputify = (value) => {
1174
1169
  case import_transactions2.OutputType.Variable: {
1175
1170
  return {
1176
1171
  type: import_transactions2.OutputType.Variable,
1177
- to: import_configs3.ZeroBytes32,
1172
+ to: import_configs2.ZeroBytes32,
1178
1173
  amount: (0, import_math3.bn)(0),
1179
- assetId: import_configs3.ZeroBytes32
1174
+ assetId: import_configs2.ZeroBytes32
1180
1175
  };
1181
1176
  }
1182
1177
  case import_transactions2.OutputType.ContractCreated: {
@@ -1198,23 +1193,23 @@ var outputify = (value) => {
1198
1193
  // src/providers/transaction-request/transaction-request.ts
1199
1194
  var import_abi_coder2 = require("@fuel-ts/abi-coder");
1200
1195
  var import_address = require("@fuel-ts/address");
1201
- var import_configs7 = require("@fuel-ts/address/configs");
1196
+ var import_configs6 = require("@fuel-ts/address/configs");
1202
1197
  var import_crypto = require("@fuel-ts/crypto");
1203
1198
  var import_math7 = require("@fuel-ts/math");
1204
- var import_transactions7 = require("@fuel-ts/transactions");
1199
+ var import_transactions6 = require("@fuel-ts/transactions");
1205
1200
  var import_utils9 = require("@fuel-ts/utils");
1206
1201
 
1207
1202
  // src/providers/resource.ts
1208
1203
  var isCoin = (resource) => "id" in resource;
1209
1204
 
1210
1205
  // src/providers/utils/receipts.ts
1211
- var import_configs4 = require("@fuel-ts/address/configs");
1206
+ var import_configs3 = require("@fuel-ts/address/configs");
1212
1207
  var import_errors5 = require("@fuel-ts/errors");
1213
1208
  var import_math4 = require("@fuel-ts/math");
1214
1209
  var import_transactions3 = require("@fuel-ts/transactions");
1215
- var import_configs5 = require("@fuel-ts/transactions/configs");
1210
+ var import_configs4 = require("@fuel-ts/transactions/configs");
1216
1211
  var import_utils5 = require("@fuel-ts/utils");
1217
- var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1212
+ var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1218
1213
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1219
1214
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1220
1215
  (memo, receipt) => {
@@ -1231,7 +1226,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1231
1226
  missingOutputContractIds: []
1232
1227
  }
1233
1228
  );
1234
- var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1229
+ var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1235
1230
  function assembleReceiptByType(receipt) {
1236
1231
  const { receiptType } = receipt;
1237
1232
  switch (receiptType) {
@@ -1536,16 +1531,16 @@ function sleep(time) {
1536
1531
  var import_errors7 = require("@fuel-ts/errors");
1537
1532
  var import_math6 = require("@fuel-ts/math");
1538
1533
  var import_transactions5 = require("@fuel-ts/transactions");
1539
- var import_configs6 = require("@fuel-ts/transactions/configs");
1534
+ var import_configs5 = require("@fuel-ts/transactions/configs");
1540
1535
  var assemblePanicError = (status) => {
1541
1536
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
1542
1537
  const reason = status.reason;
1543
- if (import_configs6.PANIC_REASONS.includes(status.reason)) {
1538
+ if (import_configs5.PANIC_REASONS.includes(status.reason)) {
1544
1539
  errorMessage = `${errorMessage}
1545
1540
 
1546
1541
  You can read more about this error at:
1547
1542
 
1548
- ${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
1543
+ ${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
1549
1544
  }
1550
1545
  return { errorMessage, reason };
1551
1546
  };
@@ -1557,28 +1552,28 @@ var assembleRevertError = (receipts, logs) => {
1557
1552
  if (revertReceipt) {
1558
1553
  const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
1559
1554
  switch (reasonHex) {
1560
- case import_configs6.FAILED_REQUIRE_SIGNAL: {
1555
+ case import_configs5.FAILED_REQUIRE_SIGNAL: {
1561
1556
  reason = "require";
1562
1557
  errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
1563
1558
  break;
1564
1559
  }
1565
- case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
1560
+ case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
1566
1561
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1567
1562
  reason = "assert_eq";
1568
1563
  errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
1569
1564
  break;
1570
1565
  }
1571
- case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
1566
+ case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
1572
1567
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1573
1568
  reason = "assert_ne";
1574
1569
  errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
1575
1570
  break;
1576
1571
  }
1577
- case import_configs6.FAILED_ASSERT_SIGNAL:
1572
+ case import_configs5.FAILED_ASSERT_SIGNAL:
1578
1573
  reason = "assert";
1579
1574
  errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
1580
1575
  break;
1581
- case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1576
+ case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1582
1577
  reason = "MissingOutputChange";
1583
1578
  errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
1584
1579
  break;
@@ -1614,12 +1609,6 @@ var NoWitnessAtIndexError = class extends Error {
1614
1609
  name = "NoWitnessAtIndexError";
1615
1610
  };
1616
1611
 
1617
- // src/providers/transaction-request/helpers.ts
1618
- var import_transactions6 = require("@fuel-ts/transactions");
1619
- var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
1620
- var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
1621
- var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
1622
-
1623
1612
  // src/providers/transaction-request/witness.ts
1624
1613
  var import_utils8 = require("@fuel-ts/utils");
1625
1614
  var witnessify = (value) => {
@@ -1646,6 +1635,8 @@ var BaseTransactionRequest = class {
1646
1635
  outputs = [];
1647
1636
  /** List of witnesses */
1648
1637
  witnesses = [];
1638
+ /** Base asset ID - should be fetched from the chain */
1639
+ baseAssetId;
1649
1640
  /**
1650
1641
  * Constructor for initializing a base transaction request.
1651
1642
  *
@@ -1658,8 +1649,9 @@ var BaseTransactionRequest = class {
1658
1649
  witnessLimit,
1659
1650
  inputs,
1660
1651
  outputs,
1661
- witnesses
1662
- } = {}) {
1652
+ witnesses,
1653
+ baseAssetId
1654
+ }) {
1663
1655
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1664
1656
  this.maturity = maturity ?? 0;
1665
1657
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1667,25 +1659,26 @@ var BaseTransactionRequest = class {
1667
1659
  this.inputs = inputs ?? [];
1668
1660
  this.outputs = outputs ?? [];
1669
1661
  this.witnesses = witnesses ?? [];
1662
+ this.baseAssetId = baseAssetId;
1670
1663
  }
1671
1664
  static getPolicyMeta(req) {
1672
1665
  let policyTypes = 0;
1673
1666
  const policies = [];
1674
1667
  if (req.gasPrice) {
1675
- policyTypes += import_transactions7.PolicyType.GasPrice;
1676
- policies.push({ data: req.gasPrice, type: import_transactions7.PolicyType.GasPrice });
1668
+ policyTypes += import_transactions6.PolicyType.GasPrice;
1669
+ policies.push({ data: req.gasPrice, type: import_transactions6.PolicyType.GasPrice });
1677
1670
  }
1678
1671
  if (req.witnessLimit) {
1679
- policyTypes += import_transactions7.PolicyType.WitnessLimit;
1680
- policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
1672
+ policyTypes += import_transactions6.PolicyType.WitnessLimit;
1673
+ policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
1681
1674
  }
1682
1675
  if (req.maturity > 0) {
1683
- policyTypes += import_transactions7.PolicyType.Maturity;
1684
- policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
1676
+ policyTypes += import_transactions6.PolicyType.Maturity;
1677
+ policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
1685
1678
  }
1686
1679
  if (req.maxFee) {
1687
- policyTypes += import_transactions7.PolicyType.MaxFee;
1688
- policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
1680
+ policyTypes += import_transactions6.PolicyType.MaxFee;
1681
+ policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
1689
1682
  }
1690
1683
  return {
1691
1684
  policyTypes,
@@ -1719,7 +1712,7 @@ var BaseTransactionRequest = class {
1719
1712
  * @returns The transaction bytes.
1720
1713
  */
1721
1714
  toTransactionBytes() {
1722
- return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1715
+ return new import_transactions6.TransactionCoder().encode(this.toTransaction());
1723
1716
  }
1724
1717
  /**
1725
1718
  * @hidden
@@ -1759,7 +1752,7 @@ var BaseTransactionRequest = class {
1759
1752
  * @returns The index of the created witness.
1760
1753
  */
1761
1754
  addEmptyWitness() {
1762
- this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
1755
+ this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1763
1756
  return this.witnesses.length - 1;
1764
1757
  }
1765
1758
  /**
@@ -1810,7 +1803,7 @@ var BaseTransactionRequest = class {
1810
1803
  */
1811
1804
  getCoinInputs() {
1812
1805
  return this.inputs.filter(
1813
- (input) => input.type === import_transactions7.InputType.Coin
1806
+ (input) => input.type === import_transactions6.InputType.Coin
1814
1807
  );
1815
1808
  }
1816
1809
  /**
@@ -1820,7 +1813,7 @@ var BaseTransactionRequest = class {
1820
1813
  */
1821
1814
  getCoinOutputs() {
1822
1815
  return this.outputs.filter(
1823
- (output) => output.type === import_transactions7.OutputType.Coin
1816
+ (output) => output.type === import_transactions6.OutputType.Coin
1824
1817
  );
1825
1818
  }
1826
1819
  /**
@@ -1830,7 +1823,7 @@ var BaseTransactionRequest = class {
1830
1823
  */
1831
1824
  getChangeOutputs() {
1832
1825
  return this.outputs.filter(
1833
- (output) => output.type === import_transactions7.OutputType.Change
1826
+ (output) => output.type === import_transactions6.OutputType.Change
1834
1827
  );
1835
1828
  }
1836
1829
  /**
@@ -1842,9 +1835,9 @@ var BaseTransactionRequest = class {
1842
1835
  const ownerAddress = (0, import_address.addressify)(owner);
1843
1836
  const found = this.inputs.find((input) => {
1844
1837
  switch (input.type) {
1845
- case import_transactions7.InputType.Coin:
1838
+ case import_transactions6.InputType.Coin:
1846
1839
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
1847
- case import_transactions7.InputType.Message:
1840
+ case import_transactions6.InputType.Message:
1848
1841
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
1849
1842
  default:
1850
1843
  return false;
@@ -1860,8 +1853,8 @@ var BaseTransactionRequest = class {
1860
1853
  * @param predicate - Predicate bytes.
1861
1854
  * @param predicateData - Predicate data bytes.
1862
1855
  */
1863
- addCoinInput(coin) {
1864
- const { assetId, owner, amount, id, predicate } = coin;
1856
+ addCoinInput(coin, predicate) {
1857
+ const { assetId, owner, amount } = coin;
1865
1858
  let witnessIndex;
1866
1859
  if (predicate) {
1867
1860
  witnessIndex = 0;
@@ -1872,14 +1865,14 @@ var BaseTransactionRequest = class {
1872
1865
  }
1873
1866
  }
1874
1867
  const input = {
1875
- id,
1876
- type: import_transactions7.InputType.Coin,
1868
+ ...coin,
1869
+ type: import_transactions6.InputType.Coin,
1877
1870
  owner: owner.toB256(),
1878
1871
  amount,
1879
1872
  assetId,
1880
1873
  txPointer: "0x00000000000000000000000000000000",
1881
1874
  witnessIndex,
1882
- predicate
1875
+ predicate: predicate?.bytes
1883
1876
  };
1884
1877
  this.pushInput(input);
1885
1878
  this.addChangeOutput(owner, assetId);
@@ -1890,11 +1883,9 @@ var BaseTransactionRequest = class {
1890
1883
  *
1891
1884
  * @param message - Message resource.
1892
1885
  * @param predicate - Predicate bytes.
1893
- * @param predicateData - Predicate data bytes.
1894
1886
  */
1895
- addMessageInput(message) {
1896
- const { recipient, sender, amount, predicate, nonce } = message;
1897
- const assetId = import_configs7.BaseAssetId;
1887
+ addMessageInput(message, predicate) {
1888
+ const { recipient, sender, amount } = message;
1898
1889
  let witnessIndex;
1899
1890
  if (predicate) {
1900
1891
  witnessIndex = 0;
@@ -1905,16 +1896,16 @@ var BaseTransactionRequest = class {
1905
1896
  }
1906
1897
  }
1907
1898
  const input = {
1908
- nonce,
1909
- type: import_transactions7.InputType.Message,
1899
+ ...message,
1900
+ type: import_transactions6.InputType.Message,
1910
1901
  sender: sender.toB256(),
1911
1902
  recipient: recipient.toB256(),
1912
1903
  amount,
1913
1904
  witnessIndex,
1914
- predicate
1905
+ predicate: predicate?.bytes
1915
1906
  };
1916
1907
  this.pushInput(input);
1917
- this.addChangeOutput(recipient, assetId);
1908
+ this.addChangeOutput(recipient, this.baseAssetId);
1918
1909
  }
1919
1910
  /**
1920
1911
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -1942,6 +1933,32 @@ var BaseTransactionRequest = class {
1942
1933
  resources.forEach((resource) => this.addResource(resource));
1943
1934
  return this;
1944
1935
  }
1936
+ /**
1937
+ * Adds multiple resources to the transaction by adding coin/message inputs and change
1938
+ * outputs from the related assetIds.
1939
+ *
1940
+ * @param resources - The resources to add.
1941
+ * @returns This transaction.
1942
+ */
1943
+ addPredicateResource(resource, predicate) {
1944
+ if (isCoin(resource)) {
1945
+ this.addCoinInput(resource, predicate);
1946
+ } else {
1947
+ this.addMessageInput(resource, predicate);
1948
+ }
1949
+ return this;
1950
+ }
1951
+ /**
1952
+ * Adds multiple predicate coin/message inputs to the transaction and change outputs
1953
+ * from the related assetIds.
1954
+ *
1955
+ * @param resources - The resources to add.
1956
+ * @returns This transaction.
1957
+ */
1958
+ addPredicateResources(resources, predicate) {
1959
+ resources.forEach((resource) => this.addPredicateResource(resource, predicate));
1960
+ return this;
1961
+ }
1945
1962
  /**
1946
1963
  * Adds a coin output to the transaction.
1947
1964
  *
@@ -1949,12 +1966,12 @@ var BaseTransactionRequest = class {
1949
1966
  * @param amount - Amount of coin.
1950
1967
  * @param assetId - Asset ID of coin.
1951
1968
  */
1952
- addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
1969
+ addCoinOutput(to, amount, assetId) {
1953
1970
  this.pushOutput({
1954
- type: import_transactions7.OutputType.Coin,
1971
+ type: import_transactions6.OutputType.Coin,
1955
1972
  to: (0, import_address.addressify)(to).toB256(),
1956
1973
  amount,
1957
- assetId
1974
+ assetId: assetId ?? this.baseAssetId
1958
1975
  });
1959
1976
  return this;
1960
1977
  }
@@ -1967,7 +1984,7 @@ var BaseTransactionRequest = class {
1967
1984
  addCoinOutputs(to, quantities) {
1968
1985
  quantities.map(coinQuantityfy).forEach((quantity) => {
1969
1986
  this.pushOutput({
1970
- type: import_transactions7.OutputType.Coin,
1987
+ type: import_transactions6.OutputType.Coin,
1971
1988
  to: (0, import_address.addressify)(to).toB256(),
1972
1989
  amount: quantity.amount,
1973
1990
  assetId: quantity.assetId
@@ -1981,15 +1998,15 @@ var BaseTransactionRequest = class {
1981
1998
  * @param to - Address of the owner.
1982
1999
  * @param assetId - Asset ID of coin.
1983
2000
  */
1984
- addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
2001
+ addChangeOutput(to, assetId) {
1985
2002
  const changeOutput = this.getChangeOutputs().find(
1986
2003
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
1987
2004
  );
1988
2005
  if (!changeOutput) {
1989
2006
  this.pushOutput({
1990
- type: import_transactions7.OutputType.Change,
2007
+ type: import_transactions6.OutputType.Change,
1991
2008
  to: (0, import_address.addressify)(to).toB256(),
1992
- assetId
2009
+ assetId: assetId ?? this.baseAssetId
1993
2010
  });
1994
2011
  }
1995
2012
  }
@@ -2065,7 +2082,7 @@ var BaseTransactionRequest = class {
2065
2082
  ]);
2066
2083
  }
2067
2084
  };
2068
- updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2085
+ updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2069
2086
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2070
2087
  }
2071
2088
  /**
@@ -2090,20 +2107,16 @@ var BaseTransactionRequest = class {
2090
2107
  toJSON() {
2091
2108
  return normalizeJSON(this);
2092
2109
  }
2093
- removeWitness(index) {
2094
- this.witnesses.splice(index, 1);
2095
- this.adjustWitnessIndexes(index);
2096
- }
2097
2110
  updatePredicateInputs(inputs) {
2098
2111
  this.inputs.forEach((i) => {
2099
2112
  let correspondingInput;
2100
2113
  switch (i.type) {
2101
- case import_transactions7.InputType.Coin:
2102
- correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
2114
+ case import_transactions6.InputType.Coin:
2115
+ correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
2103
2116
  break;
2104
- case import_transactions7.InputType.Message:
2117
+ case import_transactions6.InputType.Message:
2105
2118
  correspondingInput = inputs.find(
2106
- (x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
2119
+ (x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
2107
2120
  );
2108
2121
  break;
2109
2122
  default:
@@ -2116,37 +2129,30 @@ var BaseTransactionRequest = class {
2116
2129
  }
2117
2130
  });
2118
2131
  }
2119
- adjustWitnessIndexes(removedIndex) {
2120
- this.inputs.filter(isRequestInputResource).forEach((input) => {
2121
- if (input.witnessIndex > removedIndex) {
2122
- input.witnessIndex -= 1;
2123
- }
2124
- });
2125
- }
2126
2132
  };
2127
2133
 
2128
2134
  // src/providers/transaction-request/create-transaction-request.ts
2129
- var import_configs9 = require("@fuel-ts/address/configs");
2135
+ var import_configs8 = require("@fuel-ts/address/configs");
2130
2136
  var import_math9 = require("@fuel-ts/math");
2131
- var import_transactions9 = require("@fuel-ts/transactions");
2137
+ var import_transactions8 = require("@fuel-ts/transactions");
2132
2138
  var import_utils13 = require("@fuel-ts/utils");
2133
2139
 
2134
2140
  // src/providers/transaction-request/hash-transaction.ts
2135
- var import_configs8 = require("@fuel-ts/address/configs");
2141
+ var import_configs7 = require("@fuel-ts/address/configs");
2136
2142
  var import_hasher = require("@fuel-ts/hasher");
2137
2143
  var import_math8 = require("@fuel-ts/math");
2138
- var import_transactions8 = require("@fuel-ts/transactions");
2144
+ var import_transactions7 = require("@fuel-ts/transactions");
2139
2145
  var import_utils11 = require("@fuel-ts/utils");
2140
2146
  var import_ramda2 = require("ramda");
2141
2147
  function hashTransaction(transactionRequest, chainId) {
2142
2148
  const transaction = transactionRequest.toTransaction();
2143
- if (transaction.type === import_transactions8.TransactionType.Script) {
2144
- transaction.receiptsRoot = import_configs8.ZeroBytes32;
2149
+ if (transaction.type === import_transactions7.TransactionType.Script) {
2150
+ transaction.receiptsRoot = import_configs7.ZeroBytes32;
2145
2151
  }
2146
2152
  transaction.inputs = transaction.inputs.map((input) => {
2147
2153
  const inputClone = (0, import_ramda2.clone)(input);
2148
2154
  switch (inputClone.type) {
2149
- case import_transactions8.InputType.Coin: {
2155
+ case import_transactions7.InputType.Coin: {
2150
2156
  inputClone.txPointer = {
2151
2157
  blockHeight: 0,
2152
2158
  txIndex: 0
@@ -2154,19 +2160,19 @@ function hashTransaction(transactionRequest, chainId) {
2154
2160
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2155
2161
  return inputClone;
2156
2162
  }
2157
- case import_transactions8.InputType.Message: {
2163
+ case import_transactions7.InputType.Message: {
2158
2164
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2159
2165
  return inputClone;
2160
2166
  }
2161
- case import_transactions8.InputType.Contract: {
2167
+ case import_transactions7.InputType.Contract: {
2162
2168
  inputClone.txPointer = {
2163
2169
  blockHeight: 0,
2164
2170
  txIndex: 0
2165
2171
  };
2166
- inputClone.txID = import_configs8.ZeroBytes32;
2172
+ inputClone.txID = import_configs7.ZeroBytes32;
2167
2173
  inputClone.outputIndex = 0;
2168
- inputClone.balanceRoot = import_configs8.ZeroBytes32;
2169
- inputClone.stateRoot = import_configs8.ZeroBytes32;
2174
+ inputClone.balanceRoot = import_configs7.ZeroBytes32;
2175
+ inputClone.stateRoot = import_configs7.ZeroBytes32;
2170
2176
  return inputClone;
2171
2177
  }
2172
2178
  default:
@@ -2176,19 +2182,19 @@ function hashTransaction(transactionRequest, chainId) {
2176
2182
  transaction.outputs = transaction.outputs.map((output) => {
2177
2183
  const outputClone = (0, import_ramda2.clone)(output);
2178
2184
  switch (outputClone.type) {
2179
- case import_transactions8.OutputType.Contract: {
2180
- outputClone.balanceRoot = import_configs8.ZeroBytes32;
2181
- outputClone.stateRoot = import_configs8.ZeroBytes32;
2185
+ case import_transactions7.OutputType.Contract: {
2186
+ outputClone.balanceRoot = import_configs7.ZeroBytes32;
2187
+ outputClone.stateRoot = import_configs7.ZeroBytes32;
2182
2188
  return outputClone;
2183
2189
  }
2184
- case import_transactions8.OutputType.Change: {
2190
+ case import_transactions7.OutputType.Change: {
2185
2191
  outputClone.amount = (0, import_math8.bn)(0);
2186
2192
  return outputClone;
2187
2193
  }
2188
- case import_transactions8.OutputType.Variable: {
2189
- outputClone.to = import_configs8.ZeroBytes32;
2194
+ case import_transactions7.OutputType.Variable: {
2195
+ outputClone.to = import_configs7.ZeroBytes32;
2190
2196
  outputClone.amount = (0, import_math8.bn)(0);
2191
- outputClone.assetId = import_configs8.ZeroBytes32;
2197
+ outputClone.assetId = import_configs7.ZeroBytes32;
2192
2198
  return outputClone;
2193
2199
  }
2194
2200
  default:
@@ -2198,7 +2204,7 @@ function hashTransaction(transactionRequest, chainId) {
2198
2204
  transaction.witnessesCount = 0;
2199
2205
  transaction.witnesses = [];
2200
2206
  const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
2201
- const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
2207
+ const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
2202
2208
  return (0, import_hasher.sha256)(concatenatedData);
2203
2209
  }
2204
2210
 
@@ -2234,7 +2240,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2234
2240
  return new this(obj);
2235
2241
  }
2236
2242
  /** Type of the transaction */
2237
- type = import_transactions9.TransactionType.Create;
2243
+ type = import_transactions8.TransactionType.Create;
2238
2244
  /** Witness index of contract bytecode to create */
2239
2245
  bytecodeWitnessIndex;
2240
2246
  /** Salt */
@@ -2246,15 +2252,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2246
2252
  *
2247
2253
  * @param createTransactionRequestLike - The initial values for the instance
2248
2254
  */
2249
- constructor({
2250
- bytecodeWitnessIndex,
2251
- salt,
2252
- storageSlots,
2253
- ...rest
2254
- } = {}) {
2255
+ constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2255
2256
  super(rest);
2256
2257
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2257
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2258
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2258
2259
  this.storageSlots = [...storageSlots ?? []];
2259
2260
  }
2260
2261
  /**
@@ -2267,12 +2268,12 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2267
2268
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2268
2269
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2269
2270
  return {
2270
- type: import_transactions9.TransactionType.Create,
2271
+ type: import_transactions8.TransactionType.Create,
2271
2272
  ...baseTransaction,
2272
2273
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2273
2274
  bytecodeWitnessIndex,
2274
2275
  storageSlotsCount: storageSlots.length,
2275
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
2276
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2276
2277
  storageSlots
2277
2278
  };
2278
2279
  }
@@ -2283,7 +2284,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2283
2284
  */
2284
2285
  getContractCreatedOutputs() {
2285
2286
  return this.outputs.filter(
2286
- (output) => output.type === import_transactions9.OutputType.ContractCreated
2287
+ (output) => output.type === import_transactions8.OutputType.ContractCreated
2287
2288
  );
2288
2289
  }
2289
2290
  /**
@@ -2304,7 +2305,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2304
2305
  */
2305
2306
  addContractCreatedOutput(contractId, stateRoot) {
2306
2307
  this.pushOutput({
2307
- type: import_transactions9.OutputType.ContractCreated,
2308
+ type: import_transactions8.OutputType.ContractCreated,
2308
2309
  contractId,
2309
2310
  stateRoot
2310
2311
  });
@@ -2322,9 +2323,9 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2322
2323
  // src/providers/transaction-request/script-transaction-request.ts
2323
2324
  var import_abi_coder3 = require("@fuel-ts/abi-coder");
2324
2325
  var import_address2 = require("@fuel-ts/address");
2325
- var import_configs10 = require("@fuel-ts/address/configs");
2326
+ var import_configs9 = require("@fuel-ts/address/configs");
2326
2327
  var import_math10 = require("@fuel-ts/math");
2327
- var import_transactions10 = require("@fuel-ts/transactions");
2328
+ var import_transactions9 = require("@fuel-ts/transactions");
2328
2329
  var import_utils15 = require("@fuel-ts/utils");
2329
2330
 
2330
2331
  // src/providers/transaction-request/scripts.ts
@@ -2362,7 +2363,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2362
2363
  return new this(obj);
2363
2364
  }
2364
2365
  /** Type of the transaction */
2365
- type = import_transactions10.TransactionType.Script;
2366
+ type = import_transactions9.TransactionType.Script;
2366
2367
  /** Gas limit for transaction */
2367
2368
  gasLimit;
2368
2369
  /** Script to execute */
@@ -2375,7 +2376,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2375
2376
  *
2376
2377
  * @param scriptTransactionRequestLike - The initial values for the instance.
2377
2378
  */
2378
- constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2379
+ constructor({ script, scriptData, gasLimit, ...rest }) {
2379
2380
  super(rest);
2380
2381
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2381
2382
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2391,12 +2392,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2391
2392
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2392
2393
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2393
2394
  return {
2394
- type: import_transactions10.TransactionType.Script,
2395
+ type: import_transactions9.TransactionType.Script,
2395
2396
  scriptGasLimit: this.gasLimit,
2396
2397
  ...super.getBaseTransaction(),
2397
2398
  scriptLength: script.length,
2398
2399
  scriptDataLength: scriptData.length,
2399
- receiptsRoot: import_configs10.ZeroBytes32,
2400
+ receiptsRoot: import_configs9.ZeroBytes32,
2400
2401
  script: (0, import_utils15.hexlify)(script),
2401
2402
  scriptData: (0, import_utils15.hexlify)(scriptData)
2402
2403
  };
@@ -2408,7 +2409,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2408
2409
  */
2409
2410
  getContractInputs() {
2410
2411
  return this.inputs.filter(
2411
- (input) => input.type === import_transactions10.InputType.Contract
2412
+ (input) => input.type === import_transactions9.InputType.Contract
2412
2413
  );
2413
2414
  }
2414
2415
  /**
@@ -2418,7 +2419,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2418
2419
  */
2419
2420
  getContractOutputs() {
2420
2421
  return this.outputs.filter(
2421
- (output) => output.type === import_transactions10.OutputType.Contract
2422
+ (output) => output.type === import_transactions9.OutputType.Contract
2422
2423
  );
2423
2424
  }
2424
2425
  /**
@@ -2428,7 +2429,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2428
2429
  */
2429
2430
  getVariableOutputs() {
2430
2431
  return this.outputs.filter(
2431
- (output) => output.type === import_transactions10.OutputType.Variable
2432
+ (output) => output.type === import_transactions9.OutputType.Variable
2432
2433
  );
2433
2434
  }
2434
2435
  /**
@@ -2451,7 +2452,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2451
2452
  let outputsNumber = numberOfVariables;
2452
2453
  while (outputsNumber) {
2453
2454
  this.pushOutput({
2454
- type: import_transactions10.OutputType.Variable
2455
+ type: import_transactions9.OutputType.Variable
2455
2456
  });
2456
2457
  outputsNumber -= 1;
2457
2458
  }
@@ -2484,12 +2485,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2484
2485
  return this;
2485
2486
  }
2486
2487
  const inputIndex = super.pushInput({
2487
- type: import_transactions10.InputType.Contract,
2488
+ type: import_transactions9.InputType.Contract,
2488
2489
  contractId: contractAddress.toB256(),
2489
2490
  txPointer: "0x00000000000000000000000000000000"
2490
2491
  });
2491
2492
  this.pushOutput({
2492
- type: import_transactions10.OutputType.Contract,
2493
+ type: import_transactions9.OutputType.Contract,
2493
2494
  inputIndex
2494
2495
  });
2495
2496
  return this;
@@ -2526,17 +2527,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2526
2527
 
2527
2528
  // src/providers/transaction-request/utils.ts
2528
2529
  var import_errors9 = require("@fuel-ts/errors");
2529
- var import_transactions11 = require("@fuel-ts/transactions");
2530
+ var import_transactions10 = require("@fuel-ts/transactions");
2530
2531
  var transactionRequestify = (obj) => {
2531
2532
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2532
2533
  return obj;
2533
2534
  }
2534
2535
  const { type } = obj;
2535
2536
  switch (obj.type) {
2536
- case import_transactions11.TransactionType.Script: {
2537
+ case import_transactions10.TransactionType.Script: {
2537
2538
  return ScriptTransactionRequest.from(obj);
2538
2539
  }
2539
- case import_transactions11.TransactionType.Create: {
2540
+ case import_transactions10.TransactionType.Create: {
2540
2541
  return CreateTransactionRequest.from(obj);
2541
2542
  }
2542
2543
  default: {
@@ -2548,7 +2549,7 @@ var transactionRequestify = (obj) => {
2548
2549
  // src/providers/transaction-response/transaction-response.ts
2549
2550
  var import_errors13 = require("@fuel-ts/errors");
2550
2551
  var import_math14 = require("@fuel-ts/math");
2551
- var import_transactions18 = require("@fuel-ts/transactions");
2552
+ var import_transactions17 = require("@fuel-ts/transactions");
2552
2553
  var import_utils21 = require("@fuel-ts/utils");
2553
2554
 
2554
2555
  // src/providers/transaction-summary/assemble-transaction-summary.ts
@@ -2556,7 +2557,7 @@ var import_utils19 = require("@fuel-ts/utils");
2556
2557
 
2557
2558
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2558
2559
  var import_math11 = require("@fuel-ts/math");
2559
- var import_transactions12 = require("@fuel-ts/transactions");
2560
+ var import_transactions11 = require("@fuel-ts/transactions");
2560
2561
  var import_utils16 = require("@fuel-ts/utils");
2561
2562
  var calculateTransactionFee = (params) => {
2562
2563
  const {
@@ -2567,8 +2568,8 @@ var calculateTransactionFee = (params) => {
2567
2568
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2568
2569
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2569
2570
  const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
2570
- const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2571
- if (transaction.type === import_transactions12.TransactionType.Mint) {
2571
+ const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
2572
+ if (transaction.type === import_transactions11.TransactionType.Mint) {
2572
2573
  return {
2573
2574
  fee: (0, import_math11.bn)(0),
2574
2575
  minFee: (0, import_math11.bn)(0),
@@ -2579,7 +2580,7 @@ var calculateTransactionFee = (params) => {
2579
2580
  const { type, witnesses, inputs, policies } = transaction;
2580
2581
  let metadataGas = (0, import_math11.bn)(0);
2581
2582
  let gasLimit = (0, import_math11.bn)(0);
2582
- if (type === import_transactions12.TransactionType.Create) {
2583
+ if (type === import_transactions11.TransactionType.Create) {
2583
2584
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2584
2585
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2585
2586
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2605,8 +2606,8 @@ var calculateTransactionFee = (params) => {
2605
2606
  metadataGas,
2606
2607
  txBytesSize: transactionBytes.length
2607
2608
  });
2608
- const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions12.PolicyType.GasPrice)?.data);
2609
- const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
2609
+ const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions11.PolicyType.GasPrice)?.data);
2610
+ const witnessLimit = policies.find((policy) => policy.type === import_transactions11.PolicyType.WitnessLimit)?.data;
2610
2611
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2611
2612
  const maxGas = getMaxGas({
2612
2613
  gasPerByte,
@@ -2628,10 +2629,10 @@ var calculateTransactionFee = (params) => {
2628
2629
  };
2629
2630
 
2630
2631
  // src/providers/transaction-summary/operations.ts
2631
- var import_configs11 = require("@fuel-ts/address/configs");
2632
+ var import_configs10 = require("@fuel-ts/address/configs");
2632
2633
  var import_errors11 = require("@fuel-ts/errors");
2633
2634
  var import_math13 = require("@fuel-ts/math");
2634
- var import_transactions15 = require("@fuel-ts/transactions");
2635
+ var import_transactions14 = require("@fuel-ts/transactions");
2635
2636
 
2636
2637
  // src/providers/transaction-summary/call.ts
2637
2638
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2679,7 +2680,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2679
2680
 
2680
2681
  // src/providers/transaction-summary/input.ts
2681
2682
  var import_errors10 = require("@fuel-ts/errors");
2682
- var import_transactions13 = require("@fuel-ts/transactions");
2683
+ var import_transactions12 = require("@fuel-ts/transactions");
2683
2684
  function getInputsByTypes(inputs, types) {
2684
2685
  return inputs.filter((i) => types.includes(i.type));
2685
2686
  }
@@ -2687,16 +2688,16 @@ function getInputsByType(inputs, type) {
2687
2688
  return inputs.filter((i) => i.type === type);
2688
2689
  }
2689
2690
  function getInputsCoin(inputs) {
2690
- return getInputsByType(inputs, import_transactions13.InputType.Coin);
2691
+ return getInputsByType(inputs, import_transactions12.InputType.Coin);
2691
2692
  }
2692
2693
  function getInputsMessage(inputs) {
2693
- return getInputsByType(inputs, import_transactions13.InputType.Message);
2694
+ return getInputsByType(inputs, import_transactions12.InputType.Message);
2694
2695
  }
2695
2696
  function getInputsCoinAndMessage(inputs) {
2696
- return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2697
+ return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
2697
2698
  }
2698
2699
  function getInputsContract(inputs) {
2699
- return getInputsByType(inputs, import_transactions13.InputType.Contract);
2700
+ return getInputsByType(inputs, import_transactions12.InputType.Contract);
2700
2701
  }
2701
2702
  function getInputFromAssetId(inputs, assetId) {
2702
2703
  const coinInputs = getInputsCoin(inputs);
@@ -2715,7 +2716,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2715
2716
  if (!contractInput) {
2716
2717
  return void 0;
2717
2718
  }
2718
- if (contractInput.type !== import_transactions13.InputType.Contract) {
2719
+ if (contractInput.type !== import_transactions12.InputType.Contract) {
2719
2720
  throw new import_errors10.FuelError(
2720
2721
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
2721
2722
  `Contract input should be of type 'contract'.`
@@ -2724,31 +2725,31 @@ function getInputContractFromIndex(inputs, inputIndex) {
2724
2725
  return contractInput;
2725
2726
  }
2726
2727
  function getInputAccountAddress(input) {
2727
- if (input.type === import_transactions13.InputType.Coin) {
2728
+ if (input.type === import_transactions12.InputType.Coin) {
2728
2729
  return input.owner.toString();
2729
2730
  }
2730
- if (input.type === import_transactions13.InputType.Message) {
2731
+ if (input.type === import_transactions12.InputType.Message) {
2731
2732
  return input.recipient.toString();
2732
2733
  }
2733
2734
  return "";
2734
2735
  }
2735
2736
 
2736
2737
  // src/providers/transaction-summary/output.ts
2737
- var import_transactions14 = require("@fuel-ts/transactions");
2738
+ var import_transactions13 = require("@fuel-ts/transactions");
2738
2739
  function getOutputsByType(outputs, type) {
2739
2740
  return outputs.filter((o) => o.type === type);
2740
2741
  }
2741
2742
  function getOutputsContractCreated(outputs) {
2742
- return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
2743
+ return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
2743
2744
  }
2744
2745
  function getOutputsCoin(outputs) {
2745
- return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
2746
+ return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
2746
2747
  }
2747
2748
  function getOutputsChange(outputs) {
2748
- return getOutputsByType(outputs, import_transactions14.OutputType.Change);
2749
+ return getOutputsByType(outputs, import_transactions13.OutputType.Change);
2749
2750
  }
2750
2751
  function getOutputsContract(outputs) {
2751
- return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
2752
+ return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
2752
2753
  }
2753
2754
 
2754
2755
  // src/providers/transaction-summary/operations.ts
@@ -2757,11 +2758,11 @@ function getReceiptsByType(receipts, type) {
2757
2758
  }
2758
2759
  function getTransactionTypeName(transactionType) {
2759
2760
  switch (transactionType) {
2760
- case import_transactions15.TransactionType.Mint:
2761
+ case import_transactions14.TransactionType.Mint:
2761
2762
  return "Mint" /* Mint */;
2762
- case import_transactions15.TransactionType.Create:
2763
+ case import_transactions14.TransactionType.Create:
2763
2764
  return "Create" /* Create */;
2764
- case import_transactions15.TransactionType.Script:
2765
+ case import_transactions14.TransactionType.Script:
2765
2766
  return "Script" /* Script */;
2766
2767
  default:
2767
2768
  throw new import_errors11.FuelError(
@@ -2784,10 +2785,10 @@ function isTypeScript(transactionType) {
2784
2785
  return isType(transactionType, "Script" /* Script */);
2785
2786
  }
2786
2787
  function getReceiptsCall(receipts) {
2787
- return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
2788
+ return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
2788
2789
  }
2789
2790
  function getReceiptsMessageOut(receipts) {
2790
- return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
2791
+ return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
2791
2792
  }
2792
2793
  var mergeAssets = (op1, op2) => {
2793
2794
  const assets1 = op1.assetsSent || [];
@@ -2926,7 +2927,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
2926
2927
  const { to: toAddress, assetId, amount } = receipt;
2927
2928
  let { from: fromAddress } = receipt;
2928
2929
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
2929
- if (import_configs11.ZeroBytes32 === fromAddress) {
2930
+ if (import_configs10.ZeroBytes32 === fromAddress) {
2930
2931
  const change = changeOutputs.find((output) => output.assetId === assetId);
2931
2932
  fromAddress = change?.to || fromAddress;
2932
2933
  }
@@ -2983,11 +2984,11 @@ function getTransferOperations({
2983
2984
  });
2984
2985
  const transferReceipts = getReceiptsByType(
2985
2986
  receipts,
2986
- import_transactions15.ReceiptType.Transfer
2987
+ import_transactions14.ReceiptType.Transfer
2987
2988
  );
2988
2989
  const transferOutReceipts = getReceiptsByType(
2989
2990
  receipts,
2990
- import_transactions15.ReceiptType.TransferOut
2991
+ import_transactions14.ReceiptType.TransferOut
2991
2992
  );
2992
2993
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
2993
2994
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3072,17 +3073,17 @@ function getOperations({
3072
3073
  }
3073
3074
 
3074
3075
  // src/providers/transaction-summary/receipt.ts
3075
- var import_transactions16 = require("@fuel-ts/transactions");
3076
+ var import_transactions15 = require("@fuel-ts/transactions");
3076
3077
  var processGqlReceipt = (gqlReceipt) => {
3077
3078
  const receipt = assembleReceiptByType(gqlReceipt);
3078
3079
  switch (receipt.type) {
3079
- case import_transactions16.ReceiptType.ReturnData: {
3080
+ case import_transactions15.ReceiptType.ReturnData: {
3080
3081
  return {
3081
3082
  ...receipt,
3082
3083
  data: gqlReceipt.data || "0x"
3083
3084
  };
3084
3085
  }
3085
- case import_transactions16.ReceiptType.LogData: {
3086
+ case import_transactions15.ReceiptType.LogData: {
3086
3087
  return {
3087
3088
  ...receipt,
3088
3089
  data: gqlReceipt.data || "0x"
@@ -3095,7 +3096,7 @@ var processGqlReceipt = (gqlReceipt) => {
3095
3096
  var extractMintedAssetsFromReceipts = (receipts) => {
3096
3097
  const mintedAssets = [];
3097
3098
  receipts.forEach((receipt) => {
3098
- if (receipt.type === import_transactions16.ReceiptType.Mint) {
3099
+ if (receipt.type === import_transactions15.ReceiptType.Mint) {
3099
3100
  mintedAssets.push({
3100
3101
  subId: receipt.subId,
3101
3102
  contractId: receipt.contractId,
@@ -3109,7 +3110,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3109
3110
  var extractBurnedAssetsFromReceipts = (receipts) => {
3110
3111
  const burnedAssets = [];
3111
3112
  receipts.forEach((receipt) => {
3112
- if (receipt.type === import_transactions16.ReceiptType.Burn) {
3113
+ if (receipt.type === import_transactions15.ReceiptType.Burn) {
3113
3114
  burnedAssets.push({
3114
3115
  subId: receipt.subId,
3115
3116
  contractId: receipt.contractId,
@@ -3248,12 +3249,12 @@ function assembleTransactionSummary(params) {
3248
3249
 
3249
3250
  // src/providers/transaction-response/getDecodedLogs.ts
3250
3251
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3251
- var import_transactions17 = require("@fuel-ts/transactions");
3252
+ var import_transactions16 = require("@fuel-ts/transactions");
3252
3253
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3253
3254
  return receipts.reduce((logs, receipt) => {
3254
- if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
3255
+ if (receipt.type === import_transactions16.ReceiptType.LogData || receipt.type === import_transactions16.ReceiptType.Log) {
3255
3256
  const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
3256
- const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3257
+ const data = receipt.type === import_transactions16.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3257
3258
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3258
3259
  logs.push(decodedLog);
3259
3260
  }
@@ -3326,7 +3327,7 @@ var TransactionResponse = class {
3326
3327
  * @returns The decoded transaction.
3327
3328
  */
3328
3329
  decodeTransaction(transactionWithReceipts) {
3329
- return new import_transactions18.TransactionCoder().decode(
3330
+ return new import_transactions17.TransactionCoder().decode(
3330
3331
  (0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
3331
3332
  0
3332
3333
  )?.[0];
@@ -3503,6 +3504,7 @@ var processGqlChain = (chain) => {
3503
3504
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3504
3505
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3505
3506
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3507
+ baseAssetId: consensusParameters.baseAssetId,
3506
3508
  gasCosts
3507
3509
  },
3508
3510
  gasCosts,
@@ -3745,6 +3747,17 @@ var _Provider = class {
3745
3747
  } = this.getChain();
3746
3748
  return chainId.toNumber();
3747
3749
  }
3750
+ /**
3751
+ * Returns the base asset ID
3752
+ *
3753
+ * @returns A promise that resolves to the base asset ID
3754
+ */
3755
+ getBaseAssetId() {
3756
+ const {
3757
+ consensusParameters: { baseAssetId }
3758
+ } = this.getChain();
3759
+ return baseAssetId;
3760
+ }
3748
3761
  /**
3749
3762
  * Submits a transaction to the chain to be executed.
3750
3763
  *
@@ -3763,7 +3776,7 @@ var _Provider = class {
3763
3776
  }
3764
3777
  const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
3765
3778
  let abis;
3766
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
3779
+ if (transactionRequest.type === import_transactions18.TransactionType.Script) {
3767
3780
  abis = transactionRequest.abis;
3768
3781
  }
3769
3782
  if (awaitExecution) {
@@ -3859,7 +3872,7 @@ var _Provider = class {
3859
3872
  * @returns A promise.
3860
3873
  */
3861
3874
  async estimateTxDependencies(transactionRequest) {
3862
- if (transactionRequest.type === import_transactions19.TransactionType.Create) {
3875
+ if (transactionRequest.type === import_transactions18.TransactionType.Create) {
3863
3876
  return {
3864
3877
  receipts: [],
3865
3878
  outputVariables: 0,
@@ -3908,7 +3921,7 @@ var _Provider = class {
3908
3921
  transactionRequest.gasPrice = gasPrice;
3909
3922
  const minGas = transactionRequest.calculateMinGas(chainInfo);
3910
3923
  const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
3911
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
3924
+ if (transactionRequest.type === import_transactions18.TransactionType.Script) {
3912
3925
  if (transactionRequest.gasLimit.eq(0)) {
3913
3926
  transactionRequest.gasLimit = minGas;
3914
3927
  transactionRequest.gasLimit = maxGasPerTx.sub(
@@ -3974,7 +3987,7 @@ var _Provider = class {
3974
3987
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
3975
3988
  const { minGasPrice } = this.getGasConfig();
3976
3989
  const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
3977
- const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
3990
+ const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
3978
3991
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
3979
3992
  const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
3980
3993
  txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
@@ -4190,7 +4203,7 @@ var _Provider = class {
4190
4203
  time: block.header.time,
4191
4204
  transactionIds: block.transactions.map((tx) => tx.id),
4192
4205
  transactions: block.transactions.map(
4193
- (tx) => new import_transactions19.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4206
+ (tx) => new import_transactions18.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4194
4207
  )
4195
4208
  };
4196
4209
  }
@@ -4205,7 +4218,7 @@ var _Provider = class {
4205
4218
  if (!transaction) {
4206
4219
  return null;
4207
4220
  }
4208
- return new import_transactions19.TransactionCoder().decode(
4221
+ return new import_transactions18.TransactionCoder().decode(
4209
4222
  (0, import_utils23.arrayify)(transaction.rawPayload),
4210
4223
  0
4211
4224
  )?.[0];
@@ -4285,7 +4298,7 @@ var _Provider = class {
4285
4298
  });
4286
4299
  const messages = result.messages.edges.map((edge) => edge.node);
4287
4300
  return messages.map((message) => ({
4288
- messageId: import_transactions19.InputMessageCoder.getMessageId({
4301
+ messageId: import_transactions18.InputMessageCoder.getMessageId({
4289
4302
  sender: message.sender,
4290
4303
  recipient: message.recipient,
4291
4304
  nonce: message.nonce,
@@ -4296,7 +4309,7 @@ var _Provider = class {
4296
4309
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4297
4310
  nonce: message.nonce,
4298
4311
  amount: (0, import_math15.bn)(message.amount),
4299
- data: import_transactions19.InputMessageCoder.decodeData(message.data),
4312
+ data: import_transactions18.InputMessageCoder.decodeData(message.data),
4300
4313
  daHeight: (0, import_math15.bn)(message.daHeight)
4301
4314
  }));
4302
4315
  }
@@ -4424,7 +4437,7 @@ cacheInputs_fn = function(inputs) {
4424
4437
  return;
4425
4438
  }
4426
4439
  inputs.forEach((input) => {
4427
- if (input.type === import_transactions19.InputType.Coin) {
4440
+ if (input.type === import_transactions18.InputType.Coin) {
4428
4441
  this.cache?.set(input.id);
4429
4442
  }
4430
4443
  });
@@ -4435,7 +4448,7 @@ __publicField(Provider, "nodeInfoCache", {});
4435
4448
  // src/providers/transaction-summary/get-transaction-summary.ts
4436
4449
  var import_errors15 = require("@fuel-ts/errors");
4437
4450
  var import_math16 = require("@fuel-ts/math");
4438
- var import_transactions20 = require("@fuel-ts/transactions");
4451
+ var import_transactions19 = require("@fuel-ts/transactions");
4439
4452
  var import_utils26 = require("@fuel-ts/utils");
4440
4453
 
4441
4454
  // src/providers/chains.ts
@@ -4642,8 +4655,9 @@ var Account = class extends import_interfaces.AbstractAccount {
4642
4655
  * @param assetId - The asset ID to check the balance for.
4643
4656
  * @returns A promise that resolves to the balance amount.
4644
4657
  */
4645
- async getBalance(assetId = import_configs12.BaseAssetId) {
4646
- const amount = await this.provider.getBalance(this.address, assetId);
4658
+ async getBalance(assetId) {
4659
+ const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
4660
+ const amount = await this.provider.getBalance(this.address, assetIdToFetch);
4647
4661
  return amount;
4648
4662
  }
4649
4663
  /**
@@ -4681,9 +4695,10 @@ var Account = class extends import_interfaces.AbstractAccount {
4681
4695
  * @returns A promise that resolves when the resources are added to the transaction.
4682
4696
  */
4683
4697
  async fund(request, coinQuantities, fee) {
4698
+ const baseAssetId = this.provider.getBaseAssetId();
4684
4699
  const updatedQuantities = addAmountToAsset({
4685
4700
  amount: (0, import_math18.bn)(fee),
4686
- assetId: import_configs12.BaseAssetId,
4701
+ assetId: baseAssetId,
4687
4702
  coinQuantities
4688
4703
  });
4689
4704
  const quantitiesDict = {};
@@ -4707,8 +4722,8 @@ var Account = class extends import_interfaces.AbstractAccount {
4707
4722
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
4708
4723
  cachedUtxos.push(input.id);
4709
4724
  }
4710
- } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
4711
- quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
4725
+ } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
4726
+ quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
4712
4727
  cachedMessages.push(input.nonce);
4713
4728
  }
4714
4729
  }
@@ -4740,11 +4755,13 @@ var Account = class extends import_interfaces.AbstractAccount {
4740
4755
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
4741
4756
  * @returns A promise that resolves to the prepared transaction request.
4742
4757
  */
4743
- async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4758
+ async createTransfer(destination, amount, assetId, txParams = {}) {
4744
4759
  const { minGasPrice } = this.provider.getGasConfig();
4745
- const params = { gasPrice: minGasPrice, ...txParams };
4760
+ const baseAssetId = this.provider.getBaseAssetId();
4761
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4762
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
4746
4763
  const request = new ScriptTransactionRequest(params);
4747
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
4764
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
4748
4765
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
4749
4766
  estimateTxDependencies: true,
4750
4767
  resourcesOwner: this
@@ -4770,14 +4787,15 @@ var Account = class extends import_interfaces.AbstractAccount {
4770
4787
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
4771
4788
  * @returns A promise that resolves to the transaction response.
4772
4789
  */
4773
- async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4790
+ async transfer(destination, amount, assetId, txParams = {}) {
4774
4791
  if ((0, import_math18.bn)(amount).lte(0)) {
4775
4792
  throw new import_errors16.FuelError(
4776
4793
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
4777
4794
  "Transfer amount must be a positive number."
4778
4795
  );
4779
4796
  }
4780
- const request = await this.createTransfer(destination, amount, assetId, txParams);
4797
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4798
+ const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
4781
4799
  return this.sendTransaction(request, { estimateTxDependencies: false });
4782
4800
  }
4783
4801
  /**
@@ -4789,7 +4807,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4789
4807
  * @param txParams - The optional transaction parameters.
4790
4808
  * @returns A promise that resolves to the transaction response.
4791
4809
  */
4792
- async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4810
+ async transferToContract(contractId, amount, assetId, txParams = {}) {
4793
4811
  if ((0, import_math18.bn)(amount).lte(0)) {
4794
4812
  throw new import_errors16.FuelError(
4795
4813
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -4798,11 +4816,13 @@ var Account = class extends import_interfaces.AbstractAccount {
4798
4816
  }
4799
4817
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
4800
4818
  const { minGasPrice } = this.provider.getGasConfig();
4801
- const params = { gasPrice: minGasPrice, ...txParams };
4819
+ const baseAssetId = this.provider.getBaseAssetId();
4820
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4821
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
4802
4822
  const { script, scriptData } = await assembleTransferToContractScript({
4803
4823
  hexlifiedContractId: contractAddress.toB256(),
4804
4824
  amountToTransfer: (0, import_math18.bn)(amount),
4805
- assetId
4825
+ assetId: assetIdToTransfer
4806
4826
  });
4807
4827
  const request = new ScriptTransactionRequest({
4808
4828
  ...params,
@@ -4812,7 +4832,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4812
4832
  request.addContractInputAndOutput(contractAddress);
4813
4833
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
4814
4834
  request,
4815
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
4835
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
4816
4836
  );
4817
4837
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
4818
4838
  this.validateGas({
@@ -4834,6 +4854,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4834
4854
  */
4835
4855
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
4836
4856
  const { minGasPrice } = this.provider.getGasConfig();
4857
+ const baseAssetId = this.provider.getBaseAssetId();
4837
4858
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
4838
4859
  const recipientDataArray = (0, import_utils28.arrayify)(
4839
4860
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -4846,9 +4867,14 @@ var Account = class extends import_interfaces.AbstractAccount {
4846
4867
  ...recipientDataArray,
4847
4868
  ...amountDataArray
4848
4869
  ]);
4849
- const params = { script, gasPrice: minGasPrice, ...txParams };
4870
+ const params = {
4871
+ script,
4872
+ gasPrice: minGasPrice,
4873
+ baseAssetId,
4874
+ ...txParams
4875
+ };
4850
4876
  const request = new ScriptTransactionRequest(params);
4851
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
4877
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
4852
4878
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
4853
4879
  request,
4854
4880
  forwardingQuantities
@@ -7986,26 +8012,21 @@ __publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
7986
8012
 
7987
8013
  // src/test-utils/seedTestWallet.ts
7988
8014
  var import_crypto5 = require("@fuel-ts/crypto");
7989
- var seedTestWallet = async (wallet, quantities, utxosAmount = 1) => {
7990
- const toFundAccounts = Array.isArray(wallet) ? wallet : [wallet];
8015
+ var seedTestWallet = async (wallet, quantities) => {
7991
8016
  const genesisWallet = new WalletUnlocked(
7992
8017
  process.env.GENESIS_SECRET || (0, import_crypto5.randomBytes)(32),
7993
- toFundAccounts[0].provider
8018
+ wallet.provider
7994
8019
  );
7995
8020
  const resources = await genesisWallet.getResourcesToSpend(quantities);
7996
8021
  const { minGasPrice } = genesisWallet.provider.getGasConfig();
8022
+ const baseAssetId = genesisWallet.provider.getBaseAssetId();
7997
8023
  const request = new ScriptTransactionRequest({
8024
+ baseAssetId,
7998
8025
  gasLimit: 1e4,
7999
8026
  gasPrice: minGasPrice
8000
8027
  });
8001
8028
  request.addResources(resources);
8002
- quantities.map(coinQuantityfy).forEach(
8003
- ({ amount, assetId }) => toFundAccounts.forEach(({ address }) => {
8004
- for (let i = 0; i < utxosAmount; i++) {
8005
- request.addCoinOutput(address, amount.div(utxosAmount), assetId);
8006
- }
8007
- })
8008
- );
8029
+ quantities.map(coinQuantityfy).forEach(({ amount, assetId }) => request.addCoinOutput(wallet.address, amount, assetId));
8009
8030
  await genesisWallet.sendTransaction(request, { awaitExecution: true });
8010
8031
  };
8011
8032
 
@@ -8019,7 +8040,7 @@ var generateTestWallet = async (provider, quantities) => {
8019
8040
  };
8020
8041
 
8021
8042
  // src/test-utils/launchNode.ts
8022
- var import_configs13 = require("@fuel-ts/address/configs");
8043
+ var import_configs11 = require("@fuel-ts/address/configs");
8023
8044
  var import_math21 = require("@fuel-ts/math");
8024
8045
  var import_utils36 = require("@fuel-ts/utils");
8025
8046
  var import_cli_utils = require("@fuel-ts/utils/cli-utils");
@@ -8119,7 +8140,7 @@ var launchNode = async ({
8119
8140
  {
8120
8141
  owner: signer.address.toHexString(),
8121
8142
  amount: (0, import_math21.toHex)(1e9),
8122
- asset_id: import_configs13.BaseAssetId
8143
+ asset_id: import_utils36.defaultChainConfig?.consensus_parameters?.base_asset_id ?? import_configs11.ZeroBytes32
8123
8144
  }
8124
8145
  ]
8125
8146
  }
@@ -8185,9 +8206,10 @@ var launchNode = async ({
8185
8206
  })
8186
8207
  );
8187
8208
  var generateWallets = async (count, provider) => {
8209
+ const baseAssetId = provider.getBaseAssetId();
8188
8210
  const wallets = [];
8189
8211
  for (let i = 0; i < count; i += 1) {
8190
- const wallet = await generateTestWallet(provider, [[1e3, import_configs13.BaseAssetId]]);
8212
+ const wallet = await generateTestWallet(provider, [[1e3, baseAssetId]]);
8191
8213
  wallets.push(wallet);
8192
8214
  }
8193
8215
  return wallets;
@@ -8204,45 +8226,8 @@ var launchNodeAndGetWallets = async ({
8204
8226
  };
8205
8227
  return { wallets, stop: cleanup, provider };
8206
8228
  };
8207
-
8208
- // src/test-utils/transactionRequest.ts
8209
- var import_abi_coder7 = require("@fuel-ts/abi-coder");
8210
- var import_address7 = require("@fuel-ts/address");
8211
- var import_configs14 = require("@fuel-ts/address/configs");
8212
- var import_crypto7 = require("@fuel-ts/crypto");
8213
- var import_math22 = require("@fuel-ts/math");
8214
- var import_transactions21 = require("@fuel-ts/transactions");
8215
- var import_utils37 = require("@fuel-ts/utils");
8216
- var generateFakeRequestInputCoin = (partial = {}) => ({
8217
- id: (0, import_utils37.hexlify)((0, import_crypto7.randomBytes)(import_abi_coder7.UTXO_ID_LEN)),
8218
- type: import_transactions21.InputType.Coin,
8219
- owner: (0, import_address7.getRandomB256)(),
8220
- amount: (0, import_math22.bn)(100),
8221
- assetId: import_configs14.ZeroBytes32,
8222
- txPointer: "0x00000000000000000000000000000000",
8223
- witnessIndex: 0,
8224
- ...partial
8225
- });
8226
- var generateFakeRequestInputMessage = (partial = {}) => ({
8227
- nonce: (0, import_address7.getRandomB256)(),
8228
- type: import_transactions21.InputType.Message,
8229
- sender: (0, import_address7.getRandomB256)(),
8230
- recipient: (0, import_address7.getRandomB256)(),
8231
- amount: (0, import_math22.bn)(100),
8232
- witnessIndex: 0,
8233
- ...partial
8234
- });
8235
- var generateFakeRequestInputContract = (partial = {}) => ({
8236
- contractId: (0, import_address7.getRandomB256)(),
8237
- type: import_transactions21.InputType.Contract,
8238
- txPointer: "0x00000000000000000000000000000000",
8239
- ...partial
8240
- });
8241
8229
  // Annotate the CommonJS export names for ESM import in node:
8242
8230
  0 && (module.exports = {
8243
- generateFakeRequestInputCoin,
8244
- generateFakeRequestInputContract,
8245
- generateFakeRequestInputMessage,
8246
8231
  generateTestWallet,
8247
8232
  killNode,
8248
8233
  launchNode,