@fuel-ts/account 0.0.0-rc-2037-20240412171107 → 0.0.0-rc-1976-20240415100843

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 +134 -103
  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 +137 -88
  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);
@@ -1052,7 +1050,7 @@ var MemoryCache = class {
1052
1050
 
1053
1051
  // src/providers/transaction-request/input.ts
1054
1052
  var import_abi_coder = require("@fuel-ts/abi-coder");
1055
- var import_configs2 = require("@fuel-ts/address/configs");
1053
+ var import_configs = require("@fuel-ts/address/configs");
1056
1054
  var import_errors3 = require("@fuel-ts/errors");
1057
1055
  var import_math2 = require("@fuel-ts/math");
1058
1056
  var import_transactions = require("@fuel-ts/transactions");
@@ -1086,10 +1084,10 @@ var inputify = (value) => {
1086
1084
  case import_transactions.InputType.Contract: {
1087
1085
  return {
1088
1086
  type: import_transactions.InputType.Contract,
1089
- txID: import_configs2.ZeroBytes32,
1087
+ txID: import_configs.ZeroBytes32,
1090
1088
  outputIndex: 0,
1091
- balanceRoot: import_configs2.ZeroBytes32,
1092
- stateRoot: import_configs2.ZeroBytes32,
1089
+ balanceRoot: import_configs.ZeroBytes32,
1090
+ stateRoot: import_configs.ZeroBytes32,
1093
1091
  txPointer: {
1094
1092
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1095
1093
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1127,7 +1125,7 @@ var inputify = (value) => {
1127
1125
  };
1128
1126
 
1129
1127
  // src/providers/transaction-request/output.ts
1130
- var import_configs3 = require("@fuel-ts/address/configs");
1128
+ var import_configs2 = require("@fuel-ts/address/configs");
1131
1129
  var import_errors4 = require("@fuel-ts/errors");
1132
1130
  var import_math3 = require("@fuel-ts/math");
1133
1131
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1147,8 +1145,8 @@ var outputify = (value) => {
1147
1145
  return {
1148
1146
  type: import_transactions2.OutputType.Contract,
1149
1147
  inputIndex: value.inputIndex,
1150
- balanceRoot: import_configs3.ZeroBytes32,
1151
- stateRoot: import_configs3.ZeroBytes32
1148
+ balanceRoot: import_configs2.ZeroBytes32,
1149
+ stateRoot: import_configs2.ZeroBytes32
1152
1150
  };
1153
1151
  }
1154
1152
  case import_transactions2.OutputType.Change: {
@@ -1162,9 +1160,9 @@ var outputify = (value) => {
1162
1160
  case import_transactions2.OutputType.Variable: {
1163
1161
  return {
1164
1162
  type: import_transactions2.OutputType.Variable,
1165
- to: import_configs3.ZeroBytes32,
1163
+ to: import_configs2.ZeroBytes32,
1166
1164
  amount: (0, import_math3.bn)(0),
1167
- assetId: import_configs3.ZeroBytes32
1165
+ assetId: import_configs2.ZeroBytes32
1168
1166
  };
1169
1167
  }
1170
1168
  case import_transactions2.OutputType.ContractCreated: {
@@ -1186,7 +1184,7 @@ var outputify = (value) => {
1186
1184
  // src/providers/transaction-request/transaction-request.ts
1187
1185
  var import_abi_coder2 = require("@fuel-ts/abi-coder");
1188
1186
  var import_address = require("@fuel-ts/address");
1189
- var import_configs7 = require("@fuel-ts/address/configs");
1187
+ var import_configs6 = require("@fuel-ts/address/configs");
1190
1188
  var import_crypto = require("@fuel-ts/crypto");
1191
1189
  var import_math7 = require("@fuel-ts/math");
1192
1190
  var import_transactions6 = require("@fuel-ts/transactions");
@@ -1196,13 +1194,13 @@ var import_utils9 = require("@fuel-ts/utils");
1196
1194
  var isCoin = (resource) => "id" in resource;
1197
1195
 
1198
1196
  // src/providers/utils/receipts.ts
1199
- var import_configs4 = require("@fuel-ts/address/configs");
1197
+ var import_configs3 = require("@fuel-ts/address/configs");
1200
1198
  var import_errors5 = require("@fuel-ts/errors");
1201
1199
  var import_math4 = require("@fuel-ts/math");
1202
1200
  var import_transactions3 = require("@fuel-ts/transactions");
1203
- var import_configs5 = require("@fuel-ts/transactions/configs");
1201
+ var import_configs4 = require("@fuel-ts/transactions/configs");
1204
1202
  var import_utils5 = require("@fuel-ts/utils");
1205
- var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1203
+ var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1206
1204
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1207
1205
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1208
1206
  (memo, receipt) => {
@@ -1219,7 +1217,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1219
1217
  missingOutputContractIds: []
1220
1218
  }
1221
1219
  );
1222
- var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1220
+ var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1223
1221
  function assembleReceiptByType(receipt) {
1224
1222
  const { receiptType } = receipt;
1225
1223
  switch (receiptType) {
@@ -1524,16 +1522,16 @@ function sleep(time) {
1524
1522
  var import_errors7 = require("@fuel-ts/errors");
1525
1523
  var import_math6 = require("@fuel-ts/math");
1526
1524
  var import_transactions5 = require("@fuel-ts/transactions");
1527
- var import_configs6 = require("@fuel-ts/transactions/configs");
1525
+ var import_configs5 = require("@fuel-ts/transactions/configs");
1528
1526
  var assemblePanicError = (status) => {
1529
1527
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
1530
1528
  const reason = status.reason;
1531
- if (import_configs6.PANIC_REASONS.includes(status.reason)) {
1529
+ if (import_configs5.PANIC_REASONS.includes(status.reason)) {
1532
1530
  errorMessage = `${errorMessage}
1533
1531
 
1534
1532
  You can read more about this error at:
1535
1533
 
1536
- ${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
1534
+ ${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
1537
1535
  }
1538
1536
  return { errorMessage, reason };
1539
1537
  };
@@ -1545,28 +1543,28 @@ var assembleRevertError = (receipts, logs) => {
1545
1543
  if (revertReceipt) {
1546
1544
  const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
1547
1545
  switch (reasonHex) {
1548
- case import_configs6.FAILED_REQUIRE_SIGNAL: {
1546
+ case import_configs5.FAILED_REQUIRE_SIGNAL: {
1549
1547
  reason = "require";
1550
1548
  errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
1551
1549
  break;
1552
1550
  }
1553
- case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
1551
+ case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
1554
1552
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1555
1553
  reason = "assert_eq";
1556
1554
  errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
1557
1555
  break;
1558
1556
  }
1559
- case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
1557
+ case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
1560
1558
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1561
1559
  reason = "assert_ne";
1562
1560
  errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
1563
1561
  break;
1564
1562
  }
1565
- case import_configs6.FAILED_ASSERT_SIGNAL:
1563
+ case import_configs5.FAILED_ASSERT_SIGNAL:
1566
1564
  reason = "assert";
1567
1565
  errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
1568
1566
  break;
1569
- case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1567
+ case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1570
1568
  reason = "MissingOutputChange";
1571
1569
  errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
1572
1570
  break;
@@ -1628,6 +1626,8 @@ var BaseTransactionRequest = class {
1628
1626
  outputs = [];
1629
1627
  /** List of witnesses */
1630
1628
  witnesses = [];
1629
+ /** Base asset ID - should be fetched from the chain */
1630
+ baseAssetId;
1631
1631
  /**
1632
1632
  * Constructor for initializing a base transaction request.
1633
1633
  *
@@ -1640,8 +1640,9 @@ var BaseTransactionRequest = class {
1640
1640
  witnessLimit,
1641
1641
  inputs,
1642
1642
  outputs,
1643
- witnesses
1644
- } = {}) {
1643
+ witnesses,
1644
+ baseAssetId
1645
+ }) {
1645
1646
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1646
1647
  this.maturity = maturity ?? 0;
1647
1648
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1649,6 +1650,7 @@ var BaseTransactionRequest = class {
1649
1650
  this.inputs = inputs ?? [];
1650
1651
  this.outputs = outputs ?? [];
1651
1652
  this.witnesses = witnesses ?? [];
1653
+ this.baseAssetId = baseAssetId;
1652
1654
  }
1653
1655
  static getPolicyMeta(req) {
1654
1656
  let policyTypes = 0;
@@ -1741,7 +1743,7 @@ var BaseTransactionRequest = class {
1741
1743
  * @returns The index of the created witness.
1742
1744
  */
1743
1745
  addEmptyWitness() {
1744
- this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
1746
+ this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1745
1747
  return this.witnesses.length - 1;
1746
1748
  }
1747
1749
  /**
@@ -1842,8 +1844,8 @@ var BaseTransactionRequest = class {
1842
1844
  * @param predicate - Predicate bytes.
1843
1845
  * @param predicateData - Predicate data bytes.
1844
1846
  */
1845
- addCoinInput(coin) {
1846
- const { assetId, owner, amount, id, predicate } = coin;
1847
+ addCoinInput(coin, predicate) {
1848
+ const { assetId, owner, amount } = coin;
1847
1849
  let witnessIndex;
1848
1850
  if (predicate) {
1849
1851
  witnessIndex = 0;
@@ -1854,14 +1856,14 @@ var BaseTransactionRequest = class {
1854
1856
  }
1855
1857
  }
1856
1858
  const input = {
1857
- id,
1859
+ ...coin,
1858
1860
  type: import_transactions6.InputType.Coin,
1859
1861
  owner: owner.toB256(),
1860
1862
  amount,
1861
1863
  assetId,
1862
1864
  txPointer: "0x00000000000000000000000000000000",
1863
1865
  witnessIndex,
1864
- predicate
1866
+ predicate: predicate?.bytes
1865
1867
  };
1866
1868
  this.pushInput(input);
1867
1869
  this.addChangeOutput(owner, assetId);
@@ -1872,11 +1874,9 @@ var BaseTransactionRequest = class {
1872
1874
  *
1873
1875
  * @param message - Message resource.
1874
1876
  * @param predicate - Predicate bytes.
1875
- * @param predicateData - Predicate data bytes.
1876
1877
  */
1877
- addMessageInput(message) {
1878
- const { recipient, sender, amount, predicate, nonce } = message;
1879
- const assetId = import_configs7.BaseAssetId;
1878
+ addMessageInput(message, predicate) {
1879
+ const { recipient, sender, amount } = message;
1880
1880
  let witnessIndex;
1881
1881
  if (predicate) {
1882
1882
  witnessIndex = 0;
@@ -1887,16 +1887,16 @@ var BaseTransactionRequest = class {
1887
1887
  }
1888
1888
  }
1889
1889
  const input = {
1890
- nonce,
1890
+ ...message,
1891
1891
  type: import_transactions6.InputType.Message,
1892
1892
  sender: sender.toB256(),
1893
1893
  recipient: recipient.toB256(),
1894
1894
  amount,
1895
1895
  witnessIndex,
1896
- predicate
1896
+ predicate: predicate?.bytes
1897
1897
  };
1898
1898
  this.pushInput(input);
1899
- this.addChangeOutput(recipient, assetId);
1899
+ this.addChangeOutput(recipient, this.baseAssetId);
1900
1900
  }
1901
1901
  /**
1902
1902
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -1924,6 +1924,32 @@ var BaseTransactionRequest = class {
1924
1924
  resources.forEach((resource) => this.addResource(resource));
1925
1925
  return this;
1926
1926
  }
1927
+ /**
1928
+ * Adds multiple resources to the transaction by adding coin/message inputs and change
1929
+ * outputs from the related assetIds.
1930
+ *
1931
+ * @param resources - The resources to add.
1932
+ * @returns This transaction.
1933
+ */
1934
+ addPredicateResource(resource, predicate) {
1935
+ if (isCoin(resource)) {
1936
+ this.addCoinInput(resource, predicate);
1937
+ } else {
1938
+ this.addMessageInput(resource, predicate);
1939
+ }
1940
+ return this;
1941
+ }
1942
+ /**
1943
+ * Adds multiple predicate coin/message inputs to the transaction and change outputs
1944
+ * from the related assetIds.
1945
+ *
1946
+ * @param resources - The resources to add.
1947
+ * @returns This transaction.
1948
+ */
1949
+ addPredicateResources(resources, predicate) {
1950
+ resources.forEach((resource) => this.addPredicateResource(resource, predicate));
1951
+ return this;
1952
+ }
1927
1953
  /**
1928
1954
  * Adds a coin output to the transaction.
1929
1955
  *
@@ -1931,12 +1957,12 @@ var BaseTransactionRequest = class {
1931
1957
  * @param amount - Amount of coin.
1932
1958
  * @param assetId - Asset ID of coin.
1933
1959
  */
1934
- addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
1960
+ addCoinOutput(to, amount, assetId) {
1935
1961
  this.pushOutput({
1936
1962
  type: import_transactions6.OutputType.Coin,
1937
1963
  to: (0, import_address.addressify)(to).toB256(),
1938
1964
  amount,
1939
- assetId
1965
+ assetId: assetId ?? this.baseAssetId
1940
1966
  });
1941
1967
  return this;
1942
1968
  }
@@ -1963,7 +1989,7 @@ var BaseTransactionRequest = class {
1963
1989
  * @param to - Address of the owner.
1964
1990
  * @param assetId - Asset ID of coin.
1965
1991
  */
1966
- addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
1992
+ addChangeOutput(to, assetId) {
1967
1993
  const changeOutput = this.getChangeOutputs().find(
1968
1994
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
1969
1995
  );
@@ -1971,7 +1997,7 @@ var BaseTransactionRequest = class {
1971
1997
  this.pushOutput({
1972
1998
  type: import_transactions6.OutputType.Change,
1973
1999
  to: (0, import_address.addressify)(to).toB256(),
1974
- assetId
2000
+ assetId: assetId ?? this.baseAssetId
1975
2001
  });
1976
2002
  }
1977
2003
  }
@@ -2047,7 +2073,7 @@ var BaseTransactionRequest = class {
2047
2073
  ]);
2048
2074
  }
2049
2075
  };
2050
- updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2076
+ updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2051
2077
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2052
2078
  }
2053
2079
  /**
@@ -2097,13 +2123,13 @@ var BaseTransactionRequest = class {
2097
2123
  };
2098
2124
 
2099
2125
  // src/providers/transaction-request/create-transaction-request.ts
2100
- var import_configs9 = require("@fuel-ts/address/configs");
2126
+ var import_configs8 = require("@fuel-ts/address/configs");
2101
2127
  var import_math9 = require("@fuel-ts/math");
2102
2128
  var import_transactions8 = require("@fuel-ts/transactions");
2103
2129
  var import_utils13 = require("@fuel-ts/utils");
2104
2130
 
2105
2131
  // src/providers/transaction-request/hash-transaction.ts
2106
- var import_configs8 = require("@fuel-ts/address/configs");
2132
+ var import_configs7 = require("@fuel-ts/address/configs");
2107
2133
  var import_hasher = require("@fuel-ts/hasher");
2108
2134
  var import_math8 = require("@fuel-ts/math");
2109
2135
  var import_transactions7 = require("@fuel-ts/transactions");
@@ -2112,7 +2138,7 @@ var import_ramda2 = require("ramda");
2112
2138
  function hashTransaction(transactionRequest, chainId) {
2113
2139
  const transaction = transactionRequest.toTransaction();
2114
2140
  if (transaction.type === import_transactions7.TransactionType.Script) {
2115
- transaction.receiptsRoot = import_configs8.ZeroBytes32;
2141
+ transaction.receiptsRoot = import_configs7.ZeroBytes32;
2116
2142
  }
2117
2143
  transaction.inputs = transaction.inputs.map((input) => {
2118
2144
  const inputClone = (0, import_ramda2.clone)(input);
@@ -2134,10 +2160,10 @@ function hashTransaction(transactionRequest, chainId) {
2134
2160
  blockHeight: 0,
2135
2161
  txIndex: 0
2136
2162
  };
2137
- inputClone.txID = import_configs8.ZeroBytes32;
2163
+ inputClone.txID = import_configs7.ZeroBytes32;
2138
2164
  inputClone.outputIndex = 0;
2139
- inputClone.balanceRoot = import_configs8.ZeroBytes32;
2140
- inputClone.stateRoot = import_configs8.ZeroBytes32;
2165
+ inputClone.balanceRoot = import_configs7.ZeroBytes32;
2166
+ inputClone.stateRoot = import_configs7.ZeroBytes32;
2141
2167
  return inputClone;
2142
2168
  }
2143
2169
  default:
@@ -2148,8 +2174,8 @@ function hashTransaction(transactionRequest, chainId) {
2148
2174
  const outputClone = (0, import_ramda2.clone)(output);
2149
2175
  switch (outputClone.type) {
2150
2176
  case import_transactions7.OutputType.Contract: {
2151
- outputClone.balanceRoot = import_configs8.ZeroBytes32;
2152
- outputClone.stateRoot = import_configs8.ZeroBytes32;
2177
+ outputClone.balanceRoot = import_configs7.ZeroBytes32;
2178
+ outputClone.stateRoot = import_configs7.ZeroBytes32;
2153
2179
  return outputClone;
2154
2180
  }
2155
2181
  case import_transactions7.OutputType.Change: {
@@ -2157,9 +2183,9 @@ function hashTransaction(transactionRequest, chainId) {
2157
2183
  return outputClone;
2158
2184
  }
2159
2185
  case import_transactions7.OutputType.Variable: {
2160
- outputClone.to = import_configs8.ZeroBytes32;
2186
+ outputClone.to = import_configs7.ZeroBytes32;
2161
2187
  outputClone.amount = (0, import_math8.bn)(0);
2162
- outputClone.assetId = import_configs8.ZeroBytes32;
2188
+ outputClone.assetId = import_configs7.ZeroBytes32;
2163
2189
  return outputClone;
2164
2190
  }
2165
2191
  default:
@@ -2217,15 +2243,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2217
2243
  *
2218
2244
  * @param createTransactionRequestLike - The initial values for the instance
2219
2245
  */
2220
- constructor({
2221
- bytecodeWitnessIndex,
2222
- salt,
2223
- storageSlots,
2224
- ...rest
2225
- } = {}) {
2246
+ constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2226
2247
  super(rest);
2227
2248
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2228
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2249
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2229
2250
  this.storageSlots = [...storageSlots ?? []];
2230
2251
  }
2231
2252
  /**
@@ -2243,7 +2264,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2243
2264
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2244
2265
  bytecodeWitnessIndex,
2245
2266
  storageSlotsCount: storageSlots.length,
2246
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
2267
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2247
2268
  storageSlots
2248
2269
  };
2249
2270
  }
@@ -2293,7 +2314,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2293
2314
  // src/providers/transaction-request/script-transaction-request.ts
2294
2315
  var import_abi_coder3 = require("@fuel-ts/abi-coder");
2295
2316
  var import_address2 = require("@fuel-ts/address");
2296
- var import_configs10 = require("@fuel-ts/address/configs");
2317
+ var import_configs9 = require("@fuel-ts/address/configs");
2297
2318
  var import_math10 = require("@fuel-ts/math");
2298
2319
  var import_transactions9 = require("@fuel-ts/transactions");
2299
2320
  var import_utils15 = require("@fuel-ts/utils");
@@ -2346,7 +2367,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2346
2367
  *
2347
2368
  * @param scriptTransactionRequestLike - The initial values for the instance.
2348
2369
  */
2349
- constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2370
+ constructor({ script, scriptData, gasLimit, ...rest }) {
2350
2371
  super(rest);
2351
2372
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2352
2373
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2367,7 +2388,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2367
2388
  ...super.getBaseTransaction(),
2368
2389
  scriptLength: script.length,
2369
2390
  scriptDataLength: scriptData.length,
2370
- receiptsRoot: import_configs10.ZeroBytes32,
2391
+ receiptsRoot: import_configs9.ZeroBytes32,
2371
2392
  script: (0, import_utils15.hexlify)(script),
2372
2393
  scriptData: (0, import_utils15.hexlify)(scriptData)
2373
2394
  };
@@ -2599,7 +2620,7 @@ var calculateTransactionFee = (params) => {
2599
2620
  };
2600
2621
 
2601
2622
  // src/providers/transaction-summary/operations.ts
2602
- var import_configs11 = require("@fuel-ts/address/configs");
2623
+ var import_configs10 = require("@fuel-ts/address/configs");
2603
2624
  var import_errors11 = require("@fuel-ts/errors");
2604
2625
  var import_math13 = require("@fuel-ts/math");
2605
2626
  var import_transactions14 = require("@fuel-ts/transactions");
@@ -2897,7 +2918,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
2897
2918
  const { to: toAddress, assetId, amount } = receipt;
2898
2919
  let { from: fromAddress } = receipt;
2899
2920
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
2900
- if (import_configs11.ZeroBytes32 === fromAddress) {
2921
+ if (import_configs10.ZeroBytes32 === fromAddress) {
2901
2922
  const change = changeOutputs.find((output) => output.assetId === assetId);
2902
2923
  fromAddress = change?.to || fromAddress;
2903
2924
  }
@@ -3474,6 +3495,7 @@ var processGqlChain = (chain) => {
3474
3495
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3475
3496
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3476
3497
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3498
+ baseAssetId: consensusParameters.baseAssetId,
3477
3499
  gasCosts
3478
3500
  },
3479
3501
  gasCosts,
@@ -3716,6 +3738,17 @@ var _Provider = class {
3716
3738
  } = this.getChain();
3717
3739
  return chainId.toNumber();
3718
3740
  }
3741
+ /**
3742
+ * Returns the base asset ID
3743
+ *
3744
+ * @returns A promise that resolves to the base asset ID
3745
+ */
3746
+ getBaseAssetId() {
3747
+ const {
3748
+ consensusParameters: { baseAssetId }
3749
+ } = this.getChain();
3750
+ return baseAssetId;
3751
+ }
3719
3752
  /**
3720
3753
  * Submits a transaction to the chain to be executed.
3721
3754
  *
@@ -4613,8 +4646,9 @@ var Account = class extends import_interfaces.AbstractAccount {
4613
4646
  * @param assetId - The asset ID to check the balance for.
4614
4647
  * @returns A promise that resolves to the balance amount.
4615
4648
  */
4616
- async getBalance(assetId = import_configs12.BaseAssetId) {
4617
- const amount = await this.provider.getBalance(this.address, assetId);
4649
+ async getBalance(assetId) {
4650
+ const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
4651
+ const amount = await this.provider.getBalance(this.address, assetIdToFetch);
4618
4652
  return amount;
4619
4653
  }
4620
4654
  /**
@@ -4652,9 +4686,10 @@ var Account = class extends import_interfaces.AbstractAccount {
4652
4686
  * @returns A promise that resolves when the resources are added to the transaction.
4653
4687
  */
4654
4688
  async fund(request, coinQuantities, fee) {
4689
+ const baseAssetId = this.provider.getBaseAssetId();
4655
4690
  const updatedQuantities = addAmountToAsset({
4656
4691
  amount: (0, import_math18.bn)(fee),
4657
- assetId: import_configs12.BaseAssetId,
4692
+ assetId: baseAssetId,
4658
4693
  coinQuantities
4659
4694
  });
4660
4695
  const quantitiesDict = {};
@@ -4678,8 +4713,8 @@ var Account = class extends import_interfaces.AbstractAccount {
4678
4713
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
4679
4714
  cachedUtxos.push(input.id);
4680
4715
  }
4681
- } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
4682
- quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
4716
+ } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
4717
+ quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
4683
4718
  cachedMessages.push(input.nonce);
4684
4719
  }
4685
4720
  }
@@ -4711,11 +4746,13 @@ var Account = class extends import_interfaces.AbstractAccount {
4711
4746
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
4712
4747
  * @returns A promise that resolves to the prepared transaction request.
4713
4748
  */
4714
- async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4749
+ async createTransfer(destination, amount, assetId, txParams = {}) {
4715
4750
  const { minGasPrice } = this.provider.getGasConfig();
4716
- const params = { gasPrice: minGasPrice, ...txParams };
4751
+ const baseAssetId = this.provider.getBaseAssetId();
4752
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4753
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
4717
4754
  const request = new ScriptTransactionRequest(params);
4718
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
4755
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
4719
4756
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
4720
4757
  estimateTxDependencies: true,
4721
4758
  resourcesOwner: this
@@ -4741,14 +4778,15 @@ var Account = class extends import_interfaces.AbstractAccount {
4741
4778
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
4742
4779
  * @returns A promise that resolves to the transaction response.
4743
4780
  */
4744
- async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4781
+ async transfer(destination, amount, assetId, txParams = {}) {
4745
4782
  if ((0, import_math18.bn)(amount).lte(0)) {
4746
4783
  throw new import_errors16.FuelError(
4747
4784
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
4748
4785
  "Transfer amount must be a positive number."
4749
4786
  );
4750
4787
  }
4751
- const request = await this.createTransfer(destination, amount, assetId, txParams);
4788
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4789
+ const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
4752
4790
  return this.sendTransaction(request, { estimateTxDependencies: false });
4753
4791
  }
4754
4792
  /**
@@ -4760,7 +4798,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4760
4798
  * @param txParams - The optional transaction parameters.
4761
4799
  * @returns A promise that resolves to the transaction response.
4762
4800
  */
4763
- async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
4801
+ async transferToContract(contractId, amount, assetId, txParams = {}) {
4764
4802
  if ((0, import_math18.bn)(amount).lte(0)) {
4765
4803
  throw new import_errors16.FuelError(
4766
4804
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -4769,11 +4807,13 @@ var Account = class extends import_interfaces.AbstractAccount {
4769
4807
  }
4770
4808
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
4771
4809
  const { minGasPrice } = this.provider.getGasConfig();
4772
- const params = { gasPrice: minGasPrice, ...txParams };
4810
+ const baseAssetId = this.provider.getBaseAssetId();
4811
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
4812
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
4773
4813
  const { script, scriptData } = await assembleTransferToContractScript({
4774
4814
  hexlifiedContractId: contractAddress.toB256(),
4775
4815
  amountToTransfer: (0, import_math18.bn)(amount),
4776
- assetId
4816
+ assetId: assetIdToTransfer
4777
4817
  });
4778
4818
  const request = new ScriptTransactionRequest({
4779
4819
  ...params,
@@ -4783,7 +4823,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4783
4823
  request.addContractInputAndOutput(contractAddress);
4784
4824
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
4785
4825
  request,
4786
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
4826
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
4787
4827
  );
4788
4828
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
4789
4829
  this.validateGas({
@@ -4805,6 +4845,7 @@ var Account = class extends import_interfaces.AbstractAccount {
4805
4845
  */
4806
4846
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
4807
4847
  const { minGasPrice } = this.provider.getGasConfig();
4848
+ const baseAssetId = this.provider.getBaseAssetId();
4808
4849
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
4809
4850
  const recipientDataArray = (0, import_utils28.arrayify)(
4810
4851
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -4817,9 +4858,14 @@ var Account = class extends import_interfaces.AbstractAccount {
4817
4858
  ...recipientDataArray,
4818
4859
  ...amountDataArray
4819
4860
  ]);
4820
- const params = { script, gasPrice: minGasPrice, ...txParams };
4861
+ const params = {
4862
+ script,
4863
+ gasPrice: minGasPrice,
4864
+ baseAssetId,
4865
+ ...txParams
4866
+ };
4821
4867
  const request = new ScriptTransactionRequest(params);
4822
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
4868
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
4823
4869
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
4824
4870
  request,
4825
4871
  forwardingQuantities
@@ -7964,7 +8010,9 @@ var seedTestWallet = async (wallet, quantities) => {
7964
8010
  );
7965
8011
  const resources = await genesisWallet.getResourcesToSpend(quantities);
7966
8012
  const { minGasPrice } = genesisWallet.provider.getGasConfig();
8013
+ const baseAssetId = genesisWallet.provider.getBaseAssetId();
7967
8014
  const request = new ScriptTransactionRequest({
8015
+ baseAssetId,
7968
8016
  gasLimit: 1e4,
7969
8017
  gasPrice: minGasPrice
7970
8018
  });
@@ -7983,7 +8031,7 @@ var generateTestWallet = async (provider, quantities) => {
7983
8031
  };
7984
8032
 
7985
8033
  // src/test-utils/launchNode.ts
7986
- var import_configs13 = require("@fuel-ts/address/configs");
8034
+ var import_configs11 = require("@fuel-ts/address/configs");
7987
8035
  var import_math21 = require("@fuel-ts/math");
7988
8036
  var import_utils36 = require("@fuel-ts/utils");
7989
8037
  var import_cli_utils = require("@fuel-ts/utils/cli-utils");
@@ -8083,7 +8131,7 @@ var launchNode = async ({
8083
8131
  {
8084
8132
  owner: signer.address.toHexString(),
8085
8133
  amount: (0, import_math21.toHex)(1e9),
8086
- asset_id: import_configs13.BaseAssetId
8134
+ asset_id: import_utils36.defaultChainConfig?.consensus_parameters?.base_asset_id ?? import_configs11.ZeroBytes32
8087
8135
  }
8088
8136
  ]
8089
8137
  }
@@ -8149,9 +8197,10 @@ var launchNode = async ({
8149
8197
  })
8150
8198
  );
8151
8199
  var generateWallets = async (count, provider) => {
8200
+ const baseAssetId = provider.getBaseAssetId();
8152
8201
  const wallets = [];
8153
8202
  for (let i = 0; i < count; i += 1) {
8154
- const wallet = await generateTestWallet(provider, [[1e3, import_configs13.BaseAssetId]]);
8203
+ const wallet = await generateTestWallet(provider, [[1e3, baseAssetId]]);
8155
8204
  wallets.push(wallet);
8156
8205
  }
8157
8206
  return wallets;