@fuel-ts/account 0.0.0-rc-2037-20240411135757 → 0.0.0-rc-1976-20240411153008

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 (32) hide show
  1. package/dist/account.d.ts.map +1 -1
  2. package/dist/index.global.js +98 -65
  3. package/dist/index.global.js.map +1 -1
  4. package/dist/index.js +135 -104
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +96 -65
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/predicate/predicate.d.ts +1 -9
  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/script-transaction-request.d.ts +1 -1
  21. package/dist/providers/transaction-request/script-transaction-request.d.ts.map +1 -1
  22. package/dist/providers/transaction-request/transaction-request.d.ts +25 -4
  23. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  24. package/dist/test-utils/launchNode.d.ts.map +1 -1
  25. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  26. package/dist/test-utils.global.js +102 -51
  27. package/dist/test-utils.global.js.map +1 -1
  28. package/dist/test-utils.js +138 -89
  29. package/dist/test-utils.js.map +1 -1
  30. package/dist/test-utils.mjs +99 -50
  31. package/dist/test-utils.mjs.map +1 -1
  32. package/package.json +16 -16
@@ -62,14 +62,12 @@ var import_utils31 = require("@fuel-ts/utils");
62
62
 
63
63
  // src/account.ts
64
64
  var import_address4 = require("@fuel-ts/address");
65
- var import_configs12 = require("@fuel-ts/address/configs");
66
65
  var import_errors16 = require("@fuel-ts/errors");
67
66
  var import_interfaces = require("@fuel-ts/interfaces");
68
67
  var import_math18 = require("@fuel-ts/math");
69
68
  var import_utils28 = require("@fuel-ts/utils");
70
69
 
71
70
  // src/providers/coin-quantity.ts
72
- var import_configs = require("@fuel-ts/address/configs");
73
71
  var import_math = require("@fuel-ts/math");
74
72
  var import_utils = require("@fuel-ts/utils");
75
73
  var coinQuantityfy = (coinQuantityLike) => {
@@ -78,11 +76,11 @@ var coinQuantityfy = (coinQuantityLike) => {
78
76
  let max2;
79
77
  if (Array.isArray(coinQuantityLike)) {
80
78
  amount = coinQuantityLike[0];
81
- assetId = coinQuantityLike[1] ?? import_configs.BaseAssetId;
82
- max2 = coinQuantityLike[2] ?? void 0;
79
+ assetId = coinQuantityLike[1];
80
+ max2 = coinQuantityLike[2];
83
81
  } else {
84
82
  amount = coinQuantityLike.amount;
85
- assetId = coinQuantityLike.assetId ?? import_configs.BaseAssetId;
83
+ assetId = coinQuantityLike.assetId;
86
84
  max2 = coinQuantityLike.max ?? void 0;
87
85
  }
88
86
  const bnAmount = (0, import_math.bn)(amount);
@@ -1051,7 +1049,7 @@ var MemoryCache = class {
1051
1049
  };
1052
1050
 
1053
1051
  // src/providers/transaction-request/input.ts
1054
- var import_configs2 = require("@fuel-ts/address/configs");
1052
+ var import_configs = require("@fuel-ts/address/configs");
1055
1053
  var import_errors3 = require("@fuel-ts/errors");
1056
1054
  var import_math2 = require("@fuel-ts/math");
1057
1055
  var import_transactions = require("@fuel-ts/transactions");
@@ -1085,10 +1083,10 @@ var inputify = (value) => {
1085
1083
  case import_transactions.InputType.Contract: {
1086
1084
  return {
1087
1085
  type: import_transactions.InputType.Contract,
1088
- txID: import_configs2.ZeroBytes32,
1086
+ txID: import_configs.ZeroBytes32,
1089
1087
  outputIndex: 0,
1090
- balanceRoot: import_configs2.ZeroBytes32,
1091
- stateRoot: import_configs2.ZeroBytes32,
1088
+ balanceRoot: import_configs.ZeroBytes32,
1089
+ stateRoot: import_configs.ZeroBytes32,
1092
1090
  txPointer: {
1093
1091
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1094
1092
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1126,7 +1124,7 @@ var inputify = (value) => {
1126
1124
  };
1127
1125
 
1128
1126
  // src/providers/transaction-request/output.ts
1129
- var import_configs3 = require("@fuel-ts/address/configs");
1127
+ var import_configs2 = require("@fuel-ts/address/configs");
1130
1128
  var import_errors4 = require("@fuel-ts/errors");
1131
1129
  var import_math3 = require("@fuel-ts/math");
1132
1130
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1146,8 +1144,8 @@ var outputify = (value) => {
1146
1144
  return {
1147
1145
  type: import_transactions2.OutputType.Contract,
1148
1146
  inputIndex: value.inputIndex,
1149
- balanceRoot: import_configs3.ZeroBytes32,
1150
- stateRoot: import_configs3.ZeroBytes32
1147
+ balanceRoot: import_configs2.ZeroBytes32,
1148
+ stateRoot: import_configs2.ZeroBytes32
1151
1149
  };
1152
1150
  }
1153
1151
  case import_transactions2.OutputType.Change: {
@@ -1161,9 +1159,9 @@ var outputify = (value) => {
1161
1159
  case import_transactions2.OutputType.Variable: {
1162
1160
  return {
1163
1161
  type: import_transactions2.OutputType.Variable,
1164
- to: import_configs3.ZeroBytes32,
1162
+ to: import_configs2.ZeroBytes32,
1165
1163
  amount: (0, import_math3.bn)(0),
1166
- assetId: import_configs3.ZeroBytes32
1164
+ assetId: import_configs2.ZeroBytes32
1167
1165
  };
1168
1166
  }
1169
1167
  case import_transactions2.OutputType.ContractCreated: {
@@ -1184,7 +1182,7 @@ var outputify = (value) => {
1184
1182
 
1185
1183
  // src/providers/transaction-request/transaction-request.ts
1186
1184
  var import_address = require("@fuel-ts/address");
1187
- var import_configs7 = require("@fuel-ts/address/configs");
1185
+ var import_configs6 = require("@fuel-ts/address/configs");
1188
1186
  var import_math7 = require("@fuel-ts/math");
1189
1187
  var import_transactions6 = require("@fuel-ts/transactions");
1190
1188
  var import_utils9 = require("@fuel-ts/utils");
@@ -1193,13 +1191,13 @@ var import_utils9 = require("@fuel-ts/utils");
1193
1191
  var isCoin = (resource) => "id" in resource;
1194
1192
 
1195
1193
  // src/providers/utils/receipts.ts
1196
- var import_configs4 = require("@fuel-ts/address/configs");
1194
+ var import_configs3 = require("@fuel-ts/address/configs");
1197
1195
  var import_errors5 = require("@fuel-ts/errors");
1198
1196
  var import_math4 = require("@fuel-ts/math");
1199
1197
  var import_transactions3 = require("@fuel-ts/transactions");
1200
- var import_configs5 = require("@fuel-ts/transactions/configs");
1198
+ var import_configs4 = require("@fuel-ts/transactions/configs");
1201
1199
  var import_utils5 = require("@fuel-ts/utils");
1202
- var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1200
+ var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1203
1201
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1204
1202
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1205
1203
  (memo, receipt) => {
@@ -1216,7 +1214,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1216
1214
  missingOutputContractIds: []
1217
1215
  }
1218
1216
  );
1219
- var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1217
+ var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1220
1218
  function assembleReceiptByType(receipt) {
1221
1219
  const { receiptType } = receipt;
1222
1220
  switch (receiptType) {
@@ -1521,16 +1519,16 @@ function sleep(time) {
1521
1519
  var import_errors7 = require("@fuel-ts/errors");
1522
1520
  var import_math6 = require("@fuel-ts/math");
1523
1521
  var import_transactions5 = require("@fuel-ts/transactions");
1524
- var import_configs6 = require("@fuel-ts/transactions/configs");
1522
+ var import_configs5 = require("@fuel-ts/transactions/configs");
1525
1523
  var assemblePanicError = (status) => {
1526
1524
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
1527
1525
  const reason = status.reason;
1528
- if (import_configs6.PANIC_REASONS.includes(status.reason)) {
1526
+ if (import_configs5.PANIC_REASONS.includes(status.reason)) {
1529
1527
  errorMessage = `${errorMessage}
1530
1528
 
1531
1529
  You can read more about this error at:
1532
1530
 
1533
- ${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
1531
+ ${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
1534
1532
  }
1535
1533
  return { errorMessage, reason };
1536
1534
  };
@@ -1542,28 +1540,28 @@ var assembleRevertError = (receipts, logs) => {
1542
1540
  if (revertReceipt) {
1543
1541
  const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
1544
1542
  switch (reasonHex) {
1545
- case import_configs6.FAILED_REQUIRE_SIGNAL: {
1543
+ case import_configs5.FAILED_REQUIRE_SIGNAL: {
1546
1544
  reason = "require";
1547
1545
  errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
1548
1546
  break;
1549
1547
  }
1550
- case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
1548
+ case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
1551
1549
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1552
1550
  reason = "assert_eq";
1553
1551
  errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
1554
1552
  break;
1555
1553
  }
1556
- case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
1554
+ case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
1557
1555
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1558
1556
  reason = "assert_ne";
1559
1557
  errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
1560
1558
  break;
1561
1559
  }
1562
- case import_configs6.FAILED_ASSERT_SIGNAL:
1560
+ case import_configs5.FAILED_ASSERT_SIGNAL:
1563
1561
  reason = "assert";
1564
1562
  errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
1565
1563
  break;
1566
- case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1564
+ case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1567
1565
  reason = "MissingOutputChange";
1568
1566
  errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
1569
1567
  break;
@@ -1625,6 +1623,8 @@ var BaseTransactionRequest = class {
1625
1623
  outputs = [];
1626
1624
  /** List of witnesses */
1627
1625
  witnesses = [];
1626
+ /** Base asset ID - should be fetched from the chain */
1627
+ baseAssetId;
1628
1628
  /**
1629
1629
  * Constructor for initializing a base transaction request.
1630
1630
  *
@@ -1637,8 +1637,9 @@ var BaseTransactionRequest = class {
1637
1637
  witnessLimit,
1638
1638
  inputs,
1639
1639
  outputs,
1640
- witnesses
1641
- } = {}) {
1640
+ witnesses,
1641
+ baseAssetId
1642
+ }) {
1642
1643
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1643
1644
  this.maturity = maturity ?? 0;
1644
1645
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1646,6 +1647,7 @@ var BaseTransactionRequest = class {
1646
1647
  this.inputs = inputs ?? [];
1647
1648
  this.outputs = outputs ?? [];
1648
1649
  this.witnesses = witnesses ?? [];
1650
+ this.baseAssetId = baseAssetId;
1649
1651
  }
1650
1652
  static getPolicyMeta(req) {
1651
1653
  let policyTypes = 0;
@@ -1738,7 +1740,7 @@ var BaseTransactionRequest = class {
1738
1740
  * @returns The index of the created witness.
1739
1741
  */
1740
1742
  addEmptyWitness() {
1741
- this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
1743
+ this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1742
1744
  return this.witnesses.length - 1;
1743
1745
  }
1744
1746
  /**
@@ -1839,8 +1841,8 @@ var BaseTransactionRequest = class {
1839
1841
  * @param predicate - Predicate bytes.
1840
1842
  * @param predicateData - Predicate data bytes.
1841
1843
  */
1842
- addCoinInput(coin) {
1843
- const { assetId, owner, amount, id, predicate } = coin;
1844
+ addCoinInput(coin, predicate) {
1845
+ const { assetId, owner, amount } = coin;
1844
1846
  let witnessIndex;
1845
1847
  if (predicate) {
1846
1848
  witnessIndex = 0;
@@ -1851,14 +1853,14 @@ var BaseTransactionRequest = class {
1851
1853
  }
1852
1854
  }
1853
1855
  const input = {
1854
- id,
1856
+ ...coin,
1855
1857
  type: import_transactions6.InputType.Coin,
1856
1858
  owner: owner.toB256(),
1857
1859
  amount,
1858
1860
  assetId,
1859
1861
  txPointer: "0x00000000000000000000000000000000",
1860
1862
  witnessIndex,
1861
- predicate
1863
+ predicate: predicate?.bytes
1862
1864
  };
1863
1865
  this.pushInput(input);
1864
1866
  this.addChangeOutput(owner, assetId);
@@ -1869,11 +1871,9 @@ var BaseTransactionRequest = class {
1869
1871
  *
1870
1872
  * @param message - Message resource.
1871
1873
  * @param predicate - Predicate bytes.
1872
- * @param predicateData - Predicate data bytes.
1873
1874
  */
1874
- addMessageInput(message) {
1875
- const { recipient, sender, amount, predicate, nonce } = message;
1876
- const assetId = import_configs7.BaseAssetId;
1875
+ addMessageInput(message, predicate) {
1876
+ const { recipient, sender, amount } = message;
1877
1877
  let witnessIndex;
1878
1878
  if (predicate) {
1879
1879
  witnessIndex = 0;
@@ -1884,16 +1884,16 @@ var BaseTransactionRequest = class {
1884
1884
  }
1885
1885
  }
1886
1886
  const input = {
1887
- nonce,
1887
+ ...message,
1888
1888
  type: import_transactions6.InputType.Message,
1889
1889
  sender: sender.toB256(),
1890
1890
  recipient: recipient.toB256(),
1891
1891
  amount,
1892
1892
  witnessIndex,
1893
- predicate
1893
+ predicate: predicate?.bytes
1894
1894
  };
1895
1895
  this.pushInput(input);
1896
- this.addChangeOutput(recipient, assetId);
1896
+ this.addChangeOutput(recipient, this.baseAssetId);
1897
1897
  }
1898
1898
  /**
1899
1899
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -1921,6 +1921,32 @@ var BaseTransactionRequest = class {
1921
1921
  resources.forEach((resource) => this.addResource(resource));
1922
1922
  return this;
1923
1923
  }
1924
+ /**
1925
+ * Adds multiple resources to the transaction by adding coin/message inputs and change
1926
+ * outputs from the related assetIds.
1927
+ *
1928
+ * @param resources - The resources to add.
1929
+ * @returns This transaction.
1930
+ */
1931
+ addPredicateResource(resource, predicate) {
1932
+ if (isCoin(resource)) {
1933
+ this.addCoinInput(resource, predicate);
1934
+ } else {
1935
+ this.addMessageInput(resource, predicate);
1936
+ }
1937
+ return this;
1938
+ }
1939
+ /**
1940
+ * Adds multiple predicate coin/message inputs to the transaction and change outputs
1941
+ * from the related assetIds.
1942
+ *
1943
+ * @param resources - The resources to add.
1944
+ * @returns This transaction.
1945
+ */
1946
+ addPredicateResources(resources, predicate) {
1947
+ resources.forEach((resource) => this.addPredicateResource(resource, predicate));
1948
+ return this;
1949
+ }
1924
1950
  /**
1925
1951
  * Adds a coin output to the transaction.
1926
1952
  *
@@ -1928,12 +1954,12 @@ var BaseTransactionRequest = class {
1928
1954
  * @param amount - Amount of coin.
1929
1955
  * @param assetId - Asset ID of coin.
1930
1956
  */
1931
- addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
1957
+ addCoinOutput(to, amount, assetId) {
1932
1958
  this.pushOutput({
1933
1959
  type: import_transactions6.OutputType.Coin,
1934
1960
  to: (0, import_address.addressify)(to).toB256(),
1935
1961
  amount,
1936
- assetId
1962
+ assetId: assetId ?? this.baseAssetId
1937
1963
  });
1938
1964
  return this;
1939
1965
  }
@@ -1960,7 +1986,7 @@ var BaseTransactionRequest = class {
1960
1986
  * @param to - Address of the owner.
1961
1987
  * @param assetId - Asset ID of coin.
1962
1988
  */
1963
- addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
1989
+ addChangeOutput(to, assetId) {
1964
1990
  const changeOutput = this.getChangeOutputs().find(
1965
1991
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
1966
1992
  );
@@ -1968,7 +1994,7 @@ var BaseTransactionRequest = class {
1968
1994
  this.pushOutput({
1969
1995
  type: import_transactions6.OutputType.Change,
1970
1996
  to: (0, import_address.addressify)(to).toB256(),
1971
- assetId
1997
+ assetId: assetId ?? this.baseAssetId
1972
1998
  });
1973
1999
  }
1974
2000
  }
@@ -2022,7 +2048,7 @@ var BaseTransactionRequest = class {
2022
2048
  let idCounter = 0;
2023
2049
  const generateId = () => {
2024
2050
  const counterString = String(idCounter++);
2025
- const id = import_configs7.ZeroBytes32.slice(0, -counterString.length).concat(counterString);
2051
+ const id = import_configs6.ZeroBytes32.slice(0, -counterString.length).concat(counterString);
2026
2052
  return id;
2027
2053
  };
2028
2054
  const findAssetInput = (assetId) => this.inputs.find((input) => {
@@ -2050,7 +2076,7 @@ var BaseTransactionRequest = class {
2050
2076
  ]);
2051
2077
  }
2052
2078
  };
2053
- updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2079
+ updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2054
2080
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2055
2081
  }
2056
2082
  /**
@@ -2100,13 +2126,13 @@ var BaseTransactionRequest = class {
2100
2126
  };
2101
2127
 
2102
2128
  // src/providers/transaction-request/create-transaction-request.ts
2103
- var import_configs9 = require("@fuel-ts/address/configs");
2129
+ var import_configs8 = require("@fuel-ts/address/configs");
2104
2130
  var import_math9 = require("@fuel-ts/math");
2105
2131
  var import_transactions8 = require("@fuel-ts/transactions");
2106
2132
  var import_utils13 = require("@fuel-ts/utils");
2107
2133
 
2108
2134
  // src/providers/transaction-request/hash-transaction.ts
2109
- var import_configs8 = require("@fuel-ts/address/configs");
2135
+ var import_configs7 = require("@fuel-ts/address/configs");
2110
2136
  var import_hasher = require("@fuel-ts/hasher");
2111
2137
  var import_math8 = require("@fuel-ts/math");
2112
2138
  var import_transactions7 = require("@fuel-ts/transactions");
@@ -2115,7 +2141,7 @@ var import_ramda2 = require("ramda");
2115
2141
  function hashTransaction(transactionRequest, chainId) {
2116
2142
  const transaction = transactionRequest.toTransaction();
2117
2143
  if (transaction.type === import_transactions7.TransactionType.Script) {
2118
- transaction.receiptsRoot = import_configs8.ZeroBytes32;
2144
+ transaction.receiptsRoot = import_configs7.ZeroBytes32;
2119
2145
  }
2120
2146
  transaction.inputs = transaction.inputs.map((input) => {
2121
2147
  const inputClone = (0, import_ramda2.clone)(input);
@@ -2137,10 +2163,10 @@ function hashTransaction(transactionRequest, chainId) {
2137
2163
  blockHeight: 0,
2138
2164
  txIndex: 0
2139
2165
  };
2140
- inputClone.txID = import_configs8.ZeroBytes32;
2166
+ inputClone.txID = import_configs7.ZeroBytes32;
2141
2167
  inputClone.outputIndex = 0;
2142
- inputClone.balanceRoot = import_configs8.ZeroBytes32;
2143
- inputClone.stateRoot = import_configs8.ZeroBytes32;
2168
+ inputClone.balanceRoot = import_configs7.ZeroBytes32;
2169
+ inputClone.stateRoot = import_configs7.ZeroBytes32;
2144
2170
  return inputClone;
2145
2171
  }
2146
2172
  default:
@@ -2151,8 +2177,8 @@ function hashTransaction(transactionRequest, chainId) {
2151
2177
  const outputClone = (0, import_ramda2.clone)(output);
2152
2178
  switch (outputClone.type) {
2153
2179
  case import_transactions7.OutputType.Contract: {
2154
- outputClone.balanceRoot = import_configs8.ZeroBytes32;
2155
- outputClone.stateRoot = import_configs8.ZeroBytes32;
2180
+ outputClone.balanceRoot = import_configs7.ZeroBytes32;
2181
+ outputClone.stateRoot = import_configs7.ZeroBytes32;
2156
2182
  return outputClone;
2157
2183
  }
2158
2184
  case import_transactions7.OutputType.Change: {
@@ -2160,9 +2186,9 @@ function hashTransaction(transactionRequest, chainId) {
2160
2186
  return outputClone;
2161
2187
  }
2162
2188
  case import_transactions7.OutputType.Variable: {
2163
- outputClone.to = import_configs8.ZeroBytes32;
2189
+ outputClone.to = import_configs7.ZeroBytes32;
2164
2190
  outputClone.amount = (0, import_math8.bn)(0);
2165
- outputClone.assetId = import_configs8.ZeroBytes32;
2191
+ outputClone.assetId = import_configs7.ZeroBytes32;
2166
2192
  return outputClone;
2167
2193
  }
2168
2194
  default:
@@ -2220,15 +2246,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2220
2246
  *
2221
2247
  * @param createTransactionRequestLike - The initial values for the instance
2222
2248
  */
2223
- constructor({
2224
- bytecodeWitnessIndex,
2225
- salt,
2226
- storageSlots,
2227
- ...rest
2228
- } = {}) {
2249
+ constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2229
2250
  super(rest);
2230
2251
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2231
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2252
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2232
2253
  this.storageSlots = [...storageSlots ?? []];
2233
2254
  }
2234
2255
  /**
@@ -2246,7 +2267,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2246
2267
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2247
2268
  bytecodeWitnessIndex,
2248
2269
  storageSlotsCount: storageSlots.length,
2249
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
2270
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2250
2271
  storageSlots
2251
2272
  };
2252
2273
  }
@@ -2296,7 +2317,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2296
2317
  // src/providers/transaction-request/script-transaction-request.ts
2297
2318
  var import_abi_coder = require("@fuel-ts/abi-coder");
2298
2319
  var import_address2 = require("@fuel-ts/address");
2299
- var import_configs10 = require("@fuel-ts/address/configs");
2320
+ var import_configs9 = require("@fuel-ts/address/configs");
2300
2321
  var import_math10 = require("@fuel-ts/math");
2301
2322
  var import_transactions9 = require("@fuel-ts/transactions");
2302
2323
  var import_utils15 = require("@fuel-ts/utils");
@@ -2349,7 +2370,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2349
2370
  *
2350
2371
  * @param scriptTransactionRequestLike - The initial values for the instance.
2351
2372
  */
2352
- constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2373
+ constructor({ script, scriptData, gasLimit, ...rest }) {
2353
2374
  super(rest);
2354
2375
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2355
2376
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2370,7 +2391,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2370
2391
  ...super.getBaseTransaction(),
2371
2392
  scriptLength: script.length,
2372
2393
  scriptDataLength: scriptData.length,
2373
- receiptsRoot: import_configs10.ZeroBytes32,
2394
+ receiptsRoot: import_configs9.ZeroBytes32,
2374
2395
  script: (0, import_utils15.hexlify)(script),
2375
2396
  scriptData: (0, import_utils15.hexlify)(scriptData)
2376
2397
  };
@@ -2602,7 +2623,7 @@ var calculateTransactionFee = (params) => {
2602
2623
  };
2603
2624
 
2604
2625
  // src/providers/transaction-summary/operations.ts
2605
- var import_configs11 = require("@fuel-ts/address/configs");
2626
+ var import_configs10 = require("@fuel-ts/address/configs");
2606
2627
  var import_errors11 = require("@fuel-ts/errors");
2607
2628
  var import_math13 = require("@fuel-ts/math");
2608
2629
  var import_transactions14 = require("@fuel-ts/transactions");
@@ -2900,7 +2921,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
2900
2921
  const { to: toAddress, assetId, amount } = receipt;
2901
2922
  let { from: fromAddress } = receipt;
2902
2923
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
2903
- if (import_configs11.ZeroBytes32 === fromAddress) {
2924
+ if (import_configs10.ZeroBytes32 === fromAddress) {
2904
2925
  const change = changeOutputs.find((output) => output.assetId === assetId);
2905
2926
  fromAddress = change?.to || fromAddress;
2906
2927
  }
@@ -3477,6 +3498,7 @@ var processGqlChain = (chain) => {
3477
3498
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3478
3499
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3479
3500
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3501
+ baseAssetId: consensusParameters.baseAssetId,
3480
3502
  gasCosts
3481
3503
  },
3482
3504
  gasCosts,
@@ -3719,6 +3741,17 @@ var _Provider = class {
3719
3741
  } = this.getChain();
3720
3742
  return chainId.toNumber();
3721
3743
  }
3744
+ /**
3745
+ * Returns the base asset ID
3746
+ *
3747
+ * @returns A promise that resolves to the base asset ID
3748
+ */
3749
+ getBaseAssetId() {
3750
+ const {
3751
+ consensusParameters: { baseAssetId }
3752
+ } = this.getChain();
3753
+ return baseAssetId;
3754
+ }
3722
3755
  /**
3723
3756
  * Submits a transaction to the chain to be executed.
3724
3757
  *
@@ -4589,8 +4622,9 @@ var Account = class extends import_interfaces.AbstractAccount {
4589
4622
  * @param assetId - The asset ID to check the balance for.
4590
4623
  * @returns A promise that resolves to the balance amount.
4591
4624
  */
4592
- async getBalance(assetId = import_configs12.BaseAssetId) {
4593
- const amount = await this.provider.getBalance(this.address, assetId);
4625
+ async getBalance(assetId) {
4626
+ const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
4627
+ const amount = await this.provider.getBalance(this.address, assetIdToFetch);
4594
4628
  return amount;
4595
4629
  }
4596
4630
  /**
@@ -4628,9 +4662,10 @@ var Account = class extends import_interfaces.AbstractAccount {
4628
4662
  * @returns A promise that resolves when the resources are added to the transaction.
4629
4663
  */
4630
4664
  async fund(request, coinQuantities, fee) {
4665
+ const baseAssetId = this.provider.getBaseAssetId();
4631
4666
  const updatedQuantities = addAmountToAsset({
4632
4667
  amount: (0, import_math18.bn)(fee),
4633
- assetId: import_configs12.BaseAssetId,
4668
+ assetId: baseAssetId,
4634
4669
  coinQuantities
4635
4670
  });
4636
4671
  const quantitiesDict = {};
@@ -4654,8 +4689,8 @@ var Account = class extends import_interfaces.AbstractAccount {
4654
4689
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
4655
4690
  cachedUtxos.push(input.id);
4656
4691
  }
4657
- } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
4658
- quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
4692
+ } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
4693
+ quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
4659
4694
  cachedMessages.push(input.nonce);
4660
4695
  }
4661
4696
  }
@@ -4687,11 +4722,13 @@ var Account = class extends import_interfaces.AbstractAccount {
4687
4722
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
4688
4723
  * @returns A promise that resolves to the prepared transaction request.
4689
4724
  */
4690
- async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4725
+ async createTransfer(destination, amount, assetId, txParams = {}) {
4691
4726
  const { minGasPrice } = this.provider.getGasConfig();
4692
- const params = { gasPrice: minGasPrice, ...txParams };
4727
+ const baseAssetId = this.provider.getBaseAssetId();
4728
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4729
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
4693
4730
  const request = new ScriptTransactionRequest(params);
4694
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
4731
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
4695
4732
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
4696
4733
  estimateTxDependencies: true,
4697
4734
  resourcesOwner: this
@@ -4717,14 +4754,15 @@ var Account = class extends import_interfaces.AbstractAccount {
4717
4754
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
4718
4755
  * @returns A promise that resolves to the transaction response.
4719
4756
  */
4720
- async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4757
+ async transfer(destination, amount, assetId, txParams = {}) {
4721
4758
  if ((0, import_math18.bn)(amount).lte(0)) {
4722
4759
  throw new import_errors16.FuelError(
4723
4760
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
4724
4761
  "Transfer amount must be a positive number."
4725
4762
  );
4726
4763
  }
4727
- const request = await this.createTransfer(destination, amount, assetId, txParams);
4764
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4765
+ const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
4728
4766
  return this.sendTransaction(request, { estimateTxDependencies: false });
4729
4767
  }
4730
4768
  /**
@@ -4736,7 +4774,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4736
4774
  * @param txParams - The optional transaction parameters.
4737
4775
  * @returns A promise that resolves to the transaction response.
4738
4776
  */
4739
- async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4777
+ async transferToContract(contractId, amount, assetId, txParams = {}) {
4740
4778
  if ((0, import_math18.bn)(amount).lte(0)) {
4741
4779
  throw new import_errors16.FuelError(
4742
4780
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -4745,11 +4783,13 @@ var Account = class extends import_interfaces.AbstractAccount {
4745
4783
  }
4746
4784
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
4747
4785
  const { minGasPrice } = this.provider.getGasConfig();
4748
- const params = { gasPrice: minGasPrice, ...txParams };
4786
+ const baseAssetId = this.provider.getBaseAssetId();
4787
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4788
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
4749
4789
  const { script, scriptData } = await assembleTransferToContractScript({
4750
4790
  hexlifiedContractId: contractAddress.toB256(),
4751
4791
  amountToTransfer: (0, import_math18.bn)(amount),
4752
- assetId
4792
+ assetId: assetIdToTransfer
4753
4793
  });
4754
4794
  const request = new ScriptTransactionRequest({
4755
4795
  ...params,
@@ -4759,7 +4799,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4759
4799
  request.addContractInputAndOutput(contractAddress);
4760
4800
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
4761
4801
  request,
4762
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
4802
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
4763
4803
  );
4764
4804
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
4765
4805
  this.validateGas({
@@ -4781,6 +4821,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4781
4821
  */
4782
4822
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
4783
4823
  const { minGasPrice } = this.provider.getGasConfig();
4824
+ const baseAssetId = this.provider.getBaseAssetId();
4784
4825
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
4785
4826
  const recipientDataArray = (0, import_utils28.arrayify)(
4786
4827
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -4793,9 +4834,14 @@ var Account = class extends import_interfaces.AbstractAccount {
4793
4834
  ...recipientDataArray,
4794
4835
  ...amountDataArray
4795
4836
  ]);
4796
- const params = { script, gasPrice: minGasPrice, ...txParams };
4837
+ const params = {
4838
+ script,
4839
+ gasPrice: minGasPrice,
4840
+ baseAssetId,
4841
+ ...txParams
4842
+ };
4797
4843
  const request = new ScriptTransactionRequest(params);
4798
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
4844
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
4799
4845
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
4800
4846
  request,
4801
4847
  forwardingQuantities
@@ -7940,7 +7986,9 @@ var seedTestWallet = async (wallet, quantities) => {
7940
7986
  );
7941
7987
  const resources = await genesisWallet.getResourcesToSpend(quantities);
7942
7988
  const { minGasPrice } = genesisWallet.provider.getGasConfig();
7989
+ const baseAssetId = genesisWallet.provider.getBaseAssetId();
7943
7990
  const request = new ScriptTransactionRequest({
7991
+ baseAssetId,
7944
7992
  gasLimit: 1e4,
7945
7993
  gasPrice: minGasPrice
7946
7994
  });
@@ -7959,7 +8007,7 @@ var generateTestWallet = async (provider, quantities) => {
7959
8007
  };
7960
8008
 
7961
8009
  // src/test-utils/launchNode.ts
7962
- var import_configs13 = require("@fuel-ts/address/configs");
8010
+ var import_configs11 = require("@fuel-ts/address/configs");
7963
8011
  var import_math21 = require("@fuel-ts/math");
7964
8012
  var import_utils36 = require("@fuel-ts/utils");
7965
8013
  var import_cli_utils = require("@fuel-ts/utils/cli-utils");
@@ -8059,7 +8107,7 @@ var launchNode = async ({
8059
8107
  {
8060
8108
  owner: signer.address.toHexString(),
8061
8109
  amount: (0, import_math21.toHex)(1e9),
8062
- asset_id: import_configs13.BaseAssetId
8110
+ asset_id: import_utils36.defaultChainConfig?.consensus_parameters?.base_asset_id ?? import_configs11.ZeroBytes32
8063
8111
  }
8064
8112
  ]
8065
8113
  }
@@ -8125,9 +8173,10 @@ var launchNode = async ({
8125
8173
  })
8126
8174
  );
8127
8175
  var generateWallets = async (count, provider) => {
8176
+ const baseAssetId = provider.getBaseAssetId();
8128
8177
  const wallets = [];
8129
8178
  for (let i = 0; i < count; i += 1) {
8130
- const wallet = await generateTestWallet(provider, [[1e3, import_configs13.BaseAssetId]]);
8179
+ const wallet = await generateTestWallet(provider, [[1e3, baseAssetId]]);
8131
8180
  wallets.push(wallet);
8132
8181
  }
8133
8182
  return wallets;