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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @fuel-ts/account might be problematic. Click here for more details.

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