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

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

Potentially problematic release.


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

Files changed (45) hide show
  1. package/dist/account.d.ts.map +1 -1
  2. package/dist/index.global.js +101 -125
  3. package/dist/index.global.js.map +1 -1
  4. package/dist/index.js +241 -280
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +126 -159
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/predicate/predicate.d.ts +2 -11
  9. package/dist/predicate/predicate.d.ts.map +1 -1
  10. package/dist/providers/coin-quantity.d.ts +2 -2
  11. package/dist/providers/coin-quantity.d.ts.map +1 -1
  12. package/dist/providers/coin.d.ts +1 -2
  13. package/dist/providers/coin.d.ts.map +1 -1
  14. package/dist/providers/message.d.ts +0 -1
  15. package/dist/providers/message.d.ts.map +1 -1
  16. package/dist/providers/provider.d.ts +7 -0
  17. package/dist/providers/provider.d.ts.map +1 -1
  18. package/dist/providers/transaction-request/create-transaction-request.d.ts +1 -1
  19. package/dist/providers/transaction-request/create-transaction-request.d.ts.map +1 -1
  20. package/dist/providers/transaction-request/index.d.ts +0 -1
  21. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  22. package/dist/providers/transaction-request/script-transaction-request.d.ts +1 -1
  23. package/dist/providers/transaction-request/script-transaction-request.d.ts.map +1 -1
  24. package/dist/providers/transaction-request/transaction-request.d.ts +25 -6
  25. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  26. package/dist/test-utils/index.d.ts +0 -1
  27. package/dist/test-utils/index.d.ts.map +1 -1
  28. package/dist/test-utils/launchNode.d.ts.map +1 -1
  29. package/dist/test-utils/seedTestWallet.d.ts +1 -1
  30. package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
  31. package/dist/test-utils.global.js +106 -105
  32. package/dist/test-utils.global.js.map +1 -1
  33. package/dist/test-utils.js +238 -253
  34. package/dist/test-utils.js.map +1 -1
  35. package/dist/test-utils.mjs +129 -141
  36. package/dist/test-utils.mjs.map +1 -1
  37. package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
  38. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  39. package/package.json +15 -15
  40. package/dist/providers/transaction-request/helpers.d.ts +0 -10
  41. package/dist/providers/transaction-request/helpers.d.ts.map +0 -1
  42. package/dist/test-utils/resources.d.ts +0 -4
  43. package/dist/test-utils/resources.d.ts.map +0 -1
  44. package/dist/test-utils/transactionRequest.d.ts +0 -5
  45. package/dist/test-utils/transactionRequest.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -88,7 +88,7 @@ __export(src_exports, {
88
88
  StorageAbstract: () => StorageAbstract,
89
89
  TransactionResponse: () => TransactionResponse,
90
90
  TransactionStatus: () => TransactionStatus,
91
- TransactionType: () => import_transactions7.TransactionType,
91
+ TransactionType: () => import_transactions6.TransactionType,
92
92
  TransactionTypeName: () => TransactionTypeName,
93
93
  Vault: () => Vault,
94
94
  Wallet: () => Wallet,
@@ -104,7 +104,6 @@ __export(src_exports, {
104
104
  assets: () => assets,
105
105
  buildBlockExplorerUrl: () => buildBlockExplorerUrl,
106
106
  cacheFor: () => cacheFor,
107
- cacheResources: () => cacheResources,
108
107
  calculateMetadataGasForTxCreate: () => calculateMetadataGasForTxCreate,
109
108
  calculateMetadataGasForTxScript: () => calculateMetadataGasForTxScript,
110
109
  calculatePriceWithFactor: () => calculatePriceWithFactor,
@@ -151,7 +150,6 @@ __export(src_exports, {
151
150
  getReceiptsMessageOut: () => getReceiptsMessageOut,
152
151
  getReceiptsTransferOut: () => getReceiptsTransferOut,
153
152
  getReceiptsWithMissingData: () => getReceiptsWithMissingData,
154
- getRequestInputResourceOwner: () => getRequestInputResourceOwner,
155
153
  getTransactionStatusName: () => getTransactionStatusName,
156
154
  getTransactionSummary: () => getTransactionSummary,
157
155
  getTransactionSummaryFromRequest: () => getTransactionSummaryFromRequest,
@@ -165,10 +163,6 @@ __export(src_exports, {
165
163
  isMessage: () => isMessage,
166
164
  isRawCoin: () => isRawCoin,
167
165
  isRawMessage: () => isRawMessage,
168
- isRequestInputCoin: () => isRequestInputCoin,
169
- isRequestInputMessage: () => isRequestInputMessage,
170
- isRequestInputResource: () => isRequestInputResource,
171
- isRequestInputResourceFromOwner: () => isRequestInputResourceFromOwner,
172
166
  isType: () => isType,
173
167
  isTypeCreate: () => isTypeCreate,
174
168
  isTypeMint: () => isTypeMint,
@@ -190,14 +184,12 @@ module.exports = __toCommonJS(src_exports);
190
184
 
191
185
  // src/account.ts
192
186
  var import_address4 = require("@fuel-ts/address");
193
- var import_configs12 = require("@fuel-ts/address/configs");
194
187
  var import_errors16 = require("@fuel-ts/errors");
195
188
  var import_interfaces = require("@fuel-ts/interfaces");
196
189
  var import_math18 = require("@fuel-ts/math");
197
190
  var import_utils28 = require("@fuel-ts/utils");
198
191
 
199
192
  // src/providers/coin-quantity.ts
200
- var import_configs = require("@fuel-ts/address/configs");
201
193
  var import_math = require("@fuel-ts/math");
202
194
  var import_utils = require("@fuel-ts/utils");
203
195
  var coinQuantityfy = (coinQuantityLike) => {
@@ -206,11 +198,11 @@ var coinQuantityfy = (coinQuantityLike) => {
206
198
  let max2;
207
199
  if (Array.isArray(coinQuantityLike)) {
208
200
  amount = coinQuantityLike[0];
209
- assetId = coinQuantityLike[1] ?? import_configs.BaseAssetId;
210
- max2 = coinQuantityLike[2] ?? void 0;
201
+ assetId = coinQuantityLike[1];
202
+ max2 = coinQuantityLike[2];
211
203
  } else {
212
204
  amount = coinQuantityLike.amount;
213
- assetId = coinQuantityLike.assetId ?? import_configs.BaseAssetId;
205
+ assetId = coinQuantityLike.assetId;
214
206
  max2 = coinQuantityLike.max ?? void 0;
215
207
  }
216
208
  const bnAmount = (0, import_math.bn)(amount);
@@ -236,7 +228,7 @@ var addAmountToAsset = (params) => {
236
228
  var import_address3 = require("@fuel-ts/address");
237
229
  var import_errors14 = require("@fuel-ts/errors");
238
230
  var import_math15 = require("@fuel-ts/math");
239
- var import_transactions19 = require("@fuel-ts/transactions");
231
+ var import_transactions18 = require("@fuel-ts/transactions");
240
232
  var import_utils23 = require("@fuel-ts/utils");
241
233
  var import_versions = require("@fuel-ts/versions");
242
234
  var import_utils24 = require("@noble/curves/abstract/utils");
@@ -1189,7 +1181,7 @@ var MemoryCache = class {
1189
1181
 
1190
1182
  // src/providers/transaction-request/input.ts
1191
1183
  var import_abi_coder = require("@fuel-ts/abi-coder");
1192
- var import_configs2 = require("@fuel-ts/address/configs");
1184
+ var import_configs = require("@fuel-ts/address/configs");
1193
1185
  var import_errors3 = require("@fuel-ts/errors");
1194
1186
  var import_math2 = require("@fuel-ts/math");
1195
1187
  var import_transactions = require("@fuel-ts/transactions");
@@ -1223,10 +1215,10 @@ var inputify = (value) => {
1223
1215
  case import_transactions.InputType.Contract: {
1224
1216
  return {
1225
1217
  type: import_transactions.InputType.Contract,
1226
- txID: import_configs2.ZeroBytes32,
1218
+ txID: import_configs.ZeroBytes32,
1227
1219
  outputIndex: 0,
1228
- balanceRoot: import_configs2.ZeroBytes32,
1229
- stateRoot: import_configs2.ZeroBytes32,
1220
+ balanceRoot: import_configs.ZeroBytes32,
1221
+ stateRoot: import_configs.ZeroBytes32,
1230
1222
  txPointer: {
1231
1223
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1232
1224
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1264,7 +1256,7 @@ var inputify = (value) => {
1264
1256
  };
1265
1257
 
1266
1258
  // src/providers/transaction-request/output.ts
1267
- var import_configs3 = require("@fuel-ts/address/configs");
1259
+ var import_configs2 = require("@fuel-ts/address/configs");
1268
1260
  var import_errors4 = require("@fuel-ts/errors");
1269
1261
  var import_math3 = require("@fuel-ts/math");
1270
1262
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1284,8 +1276,8 @@ var outputify = (value) => {
1284
1276
  return {
1285
1277
  type: import_transactions2.OutputType.Contract,
1286
1278
  inputIndex: value.inputIndex,
1287
- balanceRoot: import_configs3.ZeroBytes32,
1288
- stateRoot: import_configs3.ZeroBytes32
1279
+ balanceRoot: import_configs2.ZeroBytes32,
1280
+ stateRoot: import_configs2.ZeroBytes32
1289
1281
  };
1290
1282
  }
1291
1283
  case import_transactions2.OutputType.Change: {
@@ -1299,9 +1291,9 @@ var outputify = (value) => {
1299
1291
  case import_transactions2.OutputType.Variable: {
1300
1292
  return {
1301
1293
  type: import_transactions2.OutputType.Variable,
1302
- to: import_configs3.ZeroBytes32,
1294
+ to: import_configs2.ZeroBytes32,
1303
1295
  amount: (0, import_math3.bn)(0),
1304
- assetId: import_configs3.ZeroBytes32
1296
+ assetId: import_configs2.ZeroBytes32
1305
1297
  };
1306
1298
  }
1307
1299
  case import_transactions2.OutputType.ContractCreated: {
@@ -1323,10 +1315,10 @@ var outputify = (value) => {
1323
1315
  // src/providers/transaction-request/transaction-request.ts
1324
1316
  var import_abi_coder2 = require("@fuel-ts/abi-coder");
1325
1317
  var import_address = require("@fuel-ts/address");
1326
- var import_configs7 = require("@fuel-ts/address/configs");
1318
+ var import_configs6 = require("@fuel-ts/address/configs");
1327
1319
  var import_crypto = require("@fuel-ts/crypto");
1328
1320
  var import_math7 = require("@fuel-ts/math");
1329
- var import_transactions7 = require("@fuel-ts/transactions");
1321
+ var import_transactions6 = require("@fuel-ts/transactions");
1330
1322
  var import_utils9 = require("@fuel-ts/utils");
1331
1323
 
1332
1324
  // src/providers/resource.ts
@@ -1336,13 +1328,13 @@ var isCoin = (resource) => "id" in resource;
1336
1328
  var isMessage = (resource) => "recipient" in resource;
1337
1329
 
1338
1330
  // src/providers/utils/receipts.ts
1339
- var import_configs4 = require("@fuel-ts/address/configs");
1331
+ var import_configs3 = require("@fuel-ts/address/configs");
1340
1332
  var import_errors5 = require("@fuel-ts/errors");
1341
1333
  var import_math4 = require("@fuel-ts/math");
1342
1334
  var import_transactions3 = require("@fuel-ts/transactions");
1343
- var import_configs5 = require("@fuel-ts/transactions/configs");
1335
+ var import_configs4 = require("@fuel-ts/transactions/configs");
1344
1336
  var import_utils5 = require("@fuel-ts/utils");
1345
- var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1337
+ var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1346
1338
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1347
1339
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1348
1340
  (memo, receipt) => {
@@ -1359,7 +1351,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1359
1351
  missingOutputContractIds: []
1360
1352
  }
1361
1353
  );
1362
- var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1354
+ var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1363
1355
  function assembleReceiptByType(receipt) {
1364
1356
  const { receiptType } = receipt;
1365
1357
  switch (receiptType) {
@@ -1723,16 +1715,16 @@ function sleep(time) {
1723
1715
  var import_errors7 = require("@fuel-ts/errors");
1724
1716
  var import_math6 = require("@fuel-ts/math");
1725
1717
  var import_transactions5 = require("@fuel-ts/transactions");
1726
- var import_configs6 = require("@fuel-ts/transactions/configs");
1718
+ var import_configs5 = require("@fuel-ts/transactions/configs");
1727
1719
  var assemblePanicError = (status) => {
1728
1720
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
1729
1721
  const reason = status.reason;
1730
- if (import_configs6.PANIC_REASONS.includes(status.reason)) {
1722
+ if (import_configs5.PANIC_REASONS.includes(status.reason)) {
1731
1723
  errorMessage = `${errorMessage}
1732
1724
 
1733
1725
  You can read more about this error at:
1734
1726
 
1735
- ${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
1727
+ ${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
1736
1728
  }
1737
1729
  return { errorMessage, reason };
1738
1730
  };
@@ -1744,28 +1736,28 @@ var assembleRevertError = (receipts, logs) => {
1744
1736
  if (revertReceipt) {
1745
1737
  const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
1746
1738
  switch (reasonHex) {
1747
- case import_configs6.FAILED_REQUIRE_SIGNAL: {
1739
+ case import_configs5.FAILED_REQUIRE_SIGNAL: {
1748
1740
  reason = "require";
1749
1741
  errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
1750
1742
  break;
1751
1743
  }
1752
- case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
1744
+ case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
1753
1745
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1754
1746
  reason = "assert_eq";
1755
1747
  errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
1756
1748
  break;
1757
1749
  }
1758
- case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
1750
+ case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
1759
1751
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1760
1752
  reason = "assert_ne";
1761
1753
  errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
1762
1754
  break;
1763
1755
  }
1764
- case import_configs6.FAILED_ASSERT_SIGNAL:
1756
+ case import_configs5.FAILED_ASSERT_SIGNAL:
1765
1757
  reason = "assert";
1766
1758
  errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
1767
1759
  break;
1768
- case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1760
+ case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1769
1761
  reason = "MissingOutputChange";
1770
1762
  errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
1771
1763
  break;
@@ -1813,33 +1805,6 @@ var NoWitnessByOwnerError = class extends Error {
1813
1805
  name = "NoWitnessByOwnerError";
1814
1806
  };
1815
1807
 
1816
- // src/providers/transaction-request/helpers.ts
1817
- var import_transactions6 = require("@fuel-ts/transactions");
1818
- var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
1819
- var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
1820
- var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
1821
- var getRequestInputResourceOwner = (input) => {
1822
- if (isRequestInputCoin(input)) {
1823
- return input.owner;
1824
- }
1825
- return input.recipient;
1826
- };
1827
- var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
1828
- var cacheResources = (resources) => resources.reduce(
1829
- (cache2, resource) => {
1830
- if (isCoin(resource)) {
1831
- cache2.utxos.push(resource.id);
1832
- } else {
1833
- cache2.messages.push(resource.nonce);
1834
- }
1835
- return cache2;
1836
- },
1837
- {
1838
- utxos: [],
1839
- messages: []
1840
- }
1841
- );
1842
-
1843
1808
  // src/providers/transaction-request/witness.ts
1844
1809
  var import_utils8 = require("@fuel-ts/utils");
1845
1810
  var witnessify = (value) => {
@@ -1866,6 +1831,8 @@ var BaseTransactionRequest = class {
1866
1831
  outputs = [];
1867
1832
  /** List of witnesses */
1868
1833
  witnesses = [];
1834
+ /** Base asset ID - should be fetched from the chain */
1835
+ baseAssetId;
1869
1836
  /**
1870
1837
  * Constructor for initializing a base transaction request.
1871
1838
  *
@@ -1878,8 +1845,9 @@ var BaseTransactionRequest = class {
1878
1845
  witnessLimit,
1879
1846
  inputs,
1880
1847
  outputs,
1881
- witnesses
1882
- } = {}) {
1848
+ witnesses,
1849
+ baseAssetId
1850
+ }) {
1883
1851
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1884
1852
  this.maturity = maturity ?? 0;
1885
1853
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1887,25 +1855,26 @@ var BaseTransactionRequest = class {
1887
1855
  this.inputs = inputs ?? [];
1888
1856
  this.outputs = outputs ?? [];
1889
1857
  this.witnesses = witnesses ?? [];
1858
+ this.baseAssetId = baseAssetId;
1890
1859
  }
1891
1860
  static getPolicyMeta(req) {
1892
1861
  let policyTypes = 0;
1893
1862
  const policies = [];
1894
1863
  if (req.gasPrice) {
1895
- policyTypes += import_transactions7.PolicyType.GasPrice;
1896
- policies.push({ data: req.gasPrice, type: import_transactions7.PolicyType.GasPrice });
1864
+ policyTypes += import_transactions6.PolicyType.GasPrice;
1865
+ policies.push({ data: req.gasPrice, type: import_transactions6.PolicyType.GasPrice });
1897
1866
  }
1898
1867
  if (req.witnessLimit) {
1899
- policyTypes += import_transactions7.PolicyType.WitnessLimit;
1900
- policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
1868
+ policyTypes += import_transactions6.PolicyType.WitnessLimit;
1869
+ policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
1901
1870
  }
1902
1871
  if (req.maturity > 0) {
1903
- policyTypes += import_transactions7.PolicyType.Maturity;
1904
- policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
1872
+ policyTypes += import_transactions6.PolicyType.Maturity;
1873
+ policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
1905
1874
  }
1906
1875
  if (req.maxFee) {
1907
- policyTypes += import_transactions7.PolicyType.MaxFee;
1908
- policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
1876
+ policyTypes += import_transactions6.PolicyType.MaxFee;
1877
+ policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
1909
1878
  }
1910
1879
  return {
1911
1880
  policyTypes,
@@ -1939,7 +1908,7 @@ var BaseTransactionRequest = class {
1939
1908
  * @returns The transaction bytes.
1940
1909
  */
1941
1910
  toTransactionBytes() {
1942
- return new import_transactions7.TransactionCoder().encode(this.toTransaction());
1911
+ return new import_transactions6.TransactionCoder().encode(this.toTransaction());
1943
1912
  }
1944
1913
  /**
1945
1914
  * @hidden
@@ -1979,7 +1948,7 @@ var BaseTransactionRequest = class {
1979
1948
  * @returns The index of the created witness.
1980
1949
  */
1981
1950
  addEmptyWitness() {
1982
- this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
1951
+ this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1983
1952
  return this.witnesses.length - 1;
1984
1953
  }
1985
1954
  /**
@@ -2030,7 +1999,7 @@ var BaseTransactionRequest = class {
2030
1999
  */
2031
2000
  getCoinInputs() {
2032
2001
  return this.inputs.filter(
2033
- (input) => input.type === import_transactions7.InputType.Coin
2002
+ (input) => input.type === import_transactions6.InputType.Coin
2034
2003
  );
2035
2004
  }
2036
2005
  /**
@@ -2040,7 +2009,7 @@ var BaseTransactionRequest = class {
2040
2009
  */
2041
2010
  getCoinOutputs() {
2042
2011
  return this.outputs.filter(
2043
- (output) => output.type === import_transactions7.OutputType.Coin
2012
+ (output) => output.type === import_transactions6.OutputType.Coin
2044
2013
  );
2045
2014
  }
2046
2015
  /**
@@ -2050,7 +2019,7 @@ var BaseTransactionRequest = class {
2050
2019
  */
2051
2020
  getChangeOutputs() {
2052
2021
  return this.outputs.filter(
2053
- (output) => output.type === import_transactions7.OutputType.Change
2022
+ (output) => output.type === import_transactions6.OutputType.Change
2054
2023
  );
2055
2024
  }
2056
2025
  /**
@@ -2062,9 +2031,9 @@ var BaseTransactionRequest = class {
2062
2031
  const ownerAddress = (0, import_address.addressify)(owner);
2063
2032
  const found = this.inputs.find((input) => {
2064
2033
  switch (input.type) {
2065
- case import_transactions7.InputType.Coin:
2034
+ case import_transactions6.InputType.Coin:
2066
2035
  return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
2067
- case import_transactions7.InputType.Message:
2036
+ case import_transactions6.InputType.Message:
2068
2037
  return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
2069
2038
  default:
2070
2039
  return false;
@@ -2080,8 +2049,8 @@ var BaseTransactionRequest = class {
2080
2049
  * @param predicate - Predicate bytes.
2081
2050
  * @param predicateData - Predicate data bytes.
2082
2051
  */
2083
- addCoinInput(coin) {
2084
- const { assetId, owner, amount, id, predicate } = coin;
2052
+ addCoinInput(coin, predicate) {
2053
+ const { assetId, owner, amount } = coin;
2085
2054
  let witnessIndex;
2086
2055
  if (predicate) {
2087
2056
  witnessIndex = 0;
@@ -2092,14 +2061,14 @@ var BaseTransactionRequest = class {
2092
2061
  }
2093
2062
  }
2094
2063
  const input = {
2095
- id,
2096
- type: import_transactions7.InputType.Coin,
2064
+ ...coin,
2065
+ type: import_transactions6.InputType.Coin,
2097
2066
  owner: owner.toB256(),
2098
2067
  amount,
2099
2068
  assetId,
2100
2069
  txPointer: "0x00000000000000000000000000000000",
2101
2070
  witnessIndex,
2102
- predicate
2071
+ predicate: predicate?.bytes
2103
2072
  };
2104
2073
  this.pushInput(input);
2105
2074
  this.addChangeOutput(owner, assetId);
@@ -2110,11 +2079,9 @@ var BaseTransactionRequest = class {
2110
2079
  *
2111
2080
  * @param message - Message resource.
2112
2081
  * @param predicate - Predicate bytes.
2113
- * @param predicateData - Predicate data bytes.
2114
2082
  */
2115
- addMessageInput(message) {
2116
- const { recipient, sender, amount, predicate, nonce } = message;
2117
- const assetId = import_configs7.BaseAssetId;
2083
+ addMessageInput(message, predicate) {
2084
+ const { recipient, sender, amount } = message;
2118
2085
  let witnessIndex;
2119
2086
  if (predicate) {
2120
2087
  witnessIndex = 0;
@@ -2125,16 +2092,16 @@ var BaseTransactionRequest = class {
2125
2092
  }
2126
2093
  }
2127
2094
  const input = {
2128
- nonce,
2129
- type: import_transactions7.InputType.Message,
2095
+ ...message,
2096
+ type: import_transactions6.InputType.Message,
2130
2097
  sender: sender.toB256(),
2131
2098
  recipient: recipient.toB256(),
2132
2099
  amount,
2133
2100
  witnessIndex,
2134
- predicate
2101
+ predicate: predicate?.bytes
2135
2102
  };
2136
2103
  this.pushInput(input);
2137
- this.addChangeOutput(recipient, assetId);
2104
+ this.addChangeOutput(recipient, this.baseAssetId);
2138
2105
  }
2139
2106
  /**
2140
2107
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -2162,6 +2129,32 @@ var BaseTransactionRequest = class {
2162
2129
  resources.forEach((resource) => this.addResource(resource));
2163
2130
  return this;
2164
2131
  }
2132
+ /**
2133
+ * Adds multiple resources to the transaction by adding coin/message inputs and change
2134
+ * outputs from the related assetIds.
2135
+ *
2136
+ * @param resources - The resources to add.
2137
+ * @returns This transaction.
2138
+ */
2139
+ addPredicateResource(resource, predicate) {
2140
+ if (isCoin(resource)) {
2141
+ this.addCoinInput(resource, predicate);
2142
+ } else {
2143
+ this.addMessageInput(resource, predicate);
2144
+ }
2145
+ return this;
2146
+ }
2147
+ /**
2148
+ * Adds multiple predicate coin/message inputs to the transaction and change outputs
2149
+ * from the related assetIds.
2150
+ *
2151
+ * @param resources - The resources to add.
2152
+ * @returns This transaction.
2153
+ */
2154
+ addPredicateResources(resources, predicate) {
2155
+ resources.forEach((resource) => this.addPredicateResource(resource, predicate));
2156
+ return this;
2157
+ }
2165
2158
  /**
2166
2159
  * Adds a coin output to the transaction.
2167
2160
  *
@@ -2169,12 +2162,12 @@ var BaseTransactionRequest = class {
2169
2162
  * @param amount - Amount of coin.
2170
2163
  * @param assetId - Asset ID of coin.
2171
2164
  */
2172
- addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
2165
+ addCoinOutput(to, amount, assetId) {
2173
2166
  this.pushOutput({
2174
- type: import_transactions7.OutputType.Coin,
2167
+ type: import_transactions6.OutputType.Coin,
2175
2168
  to: (0, import_address.addressify)(to).toB256(),
2176
2169
  amount,
2177
- assetId
2170
+ assetId: assetId ?? this.baseAssetId
2178
2171
  });
2179
2172
  return this;
2180
2173
  }
@@ -2187,7 +2180,7 @@ var BaseTransactionRequest = class {
2187
2180
  addCoinOutputs(to, quantities) {
2188
2181
  quantities.map(coinQuantityfy).forEach((quantity) => {
2189
2182
  this.pushOutput({
2190
- type: import_transactions7.OutputType.Coin,
2183
+ type: import_transactions6.OutputType.Coin,
2191
2184
  to: (0, import_address.addressify)(to).toB256(),
2192
2185
  amount: quantity.amount,
2193
2186
  assetId: quantity.assetId
@@ -2201,15 +2194,15 @@ var BaseTransactionRequest = class {
2201
2194
  * @param to - Address of the owner.
2202
2195
  * @param assetId - Asset ID of coin.
2203
2196
  */
2204
- addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
2197
+ addChangeOutput(to, assetId) {
2205
2198
  const changeOutput = this.getChangeOutputs().find(
2206
2199
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
2207
2200
  );
2208
2201
  if (!changeOutput) {
2209
2202
  this.pushOutput({
2210
- type: import_transactions7.OutputType.Change,
2203
+ type: import_transactions6.OutputType.Change,
2211
2204
  to: (0, import_address.addressify)(to).toB256(),
2212
- assetId
2205
+ assetId: assetId ?? this.baseAssetId
2213
2206
  });
2214
2207
  }
2215
2208
  }
@@ -2285,7 +2278,7 @@ var BaseTransactionRequest = class {
2285
2278
  ]);
2286
2279
  }
2287
2280
  };
2288
- updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2281
+ updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2289
2282
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2290
2283
  }
2291
2284
  /**
@@ -2310,20 +2303,16 @@ var BaseTransactionRequest = class {
2310
2303
  toJSON() {
2311
2304
  return normalizeJSON(this);
2312
2305
  }
2313
- removeWitness(index) {
2314
- this.witnesses.splice(index, 1);
2315
- this.adjustWitnessIndexes(index);
2316
- }
2317
2306
  updatePredicateInputs(inputs) {
2318
2307
  this.inputs.forEach((i) => {
2319
2308
  let correspondingInput;
2320
2309
  switch (i.type) {
2321
- case import_transactions7.InputType.Coin:
2322
- correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
2310
+ case import_transactions6.InputType.Coin:
2311
+ correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
2323
2312
  break;
2324
- case import_transactions7.InputType.Message:
2313
+ case import_transactions6.InputType.Message:
2325
2314
  correspondingInput = inputs.find(
2326
- (x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
2315
+ (x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
2327
2316
  );
2328
2317
  break;
2329
2318
  default:
@@ -2336,37 +2325,30 @@ var BaseTransactionRequest = class {
2336
2325
  }
2337
2326
  });
2338
2327
  }
2339
- adjustWitnessIndexes(removedIndex) {
2340
- this.inputs.filter(isRequestInputResource).forEach((input) => {
2341
- if (input.witnessIndex > removedIndex) {
2342
- input.witnessIndex -= 1;
2343
- }
2344
- });
2345
- }
2346
2328
  };
2347
2329
 
2348
2330
  // src/providers/transaction-request/create-transaction-request.ts
2349
- var import_configs9 = require("@fuel-ts/address/configs");
2331
+ var import_configs8 = require("@fuel-ts/address/configs");
2350
2332
  var import_math9 = require("@fuel-ts/math");
2351
- var import_transactions9 = require("@fuel-ts/transactions");
2333
+ var import_transactions8 = require("@fuel-ts/transactions");
2352
2334
  var import_utils13 = require("@fuel-ts/utils");
2353
2335
 
2354
2336
  // src/providers/transaction-request/hash-transaction.ts
2355
- var import_configs8 = require("@fuel-ts/address/configs");
2337
+ var import_configs7 = require("@fuel-ts/address/configs");
2356
2338
  var import_hasher = require("@fuel-ts/hasher");
2357
2339
  var import_math8 = require("@fuel-ts/math");
2358
- var import_transactions8 = require("@fuel-ts/transactions");
2340
+ var import_transactions7 = require("@fuel-ts/transactions");
2359
2341
  var import_utils11 = require("@fuel-ts/utils");
2360
2342
  var import_ramda2 = require("ramda");
2361
2343
  function hashTransaction(transactionRequest, chainId) {
2362
2344
  const transaction = transactionRequest.toTransaction();
2363
- if (transaction.type === import_transactions8.TransactionType.Script) {
2364
- transaction.receiptsRoot = import_configs8.ZeroBytes32;
2345
+ if (transaction.type === import_transactions7.TransactionType.Script) {
2346
+ transaction.receiptsRoot = import_configs7.ZeroBytes32;
2365
2347
  }
2366
2348
  transaction.inputs = transaction.inputs.map((input) => {
2367
2349
  const inputClone = (0, import_ramda2.clone)(input);
2368
2350
  switch (inputClone.type) {
2369
- case import_transactions8.InputType.Coin: {
2351
+ case import_transactions7.InputType.Coin: {
2370
2352
  inputClone.txPointer = {
2371
2353
  blockHeight: 0,
2372
2354
  txIndex: 0
@@ -2374,19 +2356,19 @@ function hashTransaction(transactionRequest, chainId) {
2374
2356
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2375
2357
  return inputClone;
2376
2358
  }
2377
- case import_transactions8.InputType.Message: {
2359
+ case import_transactions7.InputType.Message: {
2378
2360
  inputClone.predicateGasUsed = (0, import_math8.bn)(0);
2379
2361
  return inputClone;
2380
2362
  }
2381
- case import_transactions8.InputType.Contract: {
2363
+ case import_transactions7.InputType.Contract: {
2382
2364
  inputClone.txPointer = {
2383
2365
  blockHeight: 0,
2384
2366
  txIndex: 0
2385
2367
  };
2386
- inputClone.txID = import_configs8.ZeroBytes32;
2368
+ inputClone.txID = import_configs7.ZeroBytes32;
2387
2369
  inputClone.outputIndex = 0;
2388
- inputClone.balanceRoot = import_configs8.ZeroBytes32;
2389
- inputClone.stateRoot = import_configs8.ZeroBytes32;
2370
+ inputClone.balanceRoot = import_configs7.ZeroBytes32;
2371
+ inputClone.stateRoot = import_configs7.ZeroBytes32;
2390
2372
  return inputClone;
2391
2373
  }
2392
2374
  default:
@@ -2396,19 +2378,19 @@ function hashTransaction(transactionRequest, chainId) {
2396
2378
  transaction.outputs = transaction.outputs.map((output) => {
2397
2379
  const outputClone = (0, import_ramda2.clone)(output);
2398
2380
  switch (outputClone.type) {
2399
- case import_transactions8.OutputType.Contract: {
2400
- outputClone.balanceRoot = import_configs8.ZeroBytes32;
2401
- outputClone.stateRoot = import_configs8.ZeroBytes32;
2381
+ case import_transactions7.OutputType.Contract: {
2382
+ outputClone.balanceRoot = import_configs7.ZeroBytes32;
2383
+ outputClone.stateRoot = import_configs7.ZeroBytes32;
2402
2384
  return outputClone;
2403
2385
  }
2404
- case import_transactions8.OutputType.Change: {
2386
+ case import_transactions7.OutputType.Change: {
2405
2387
  outputClone.amount = (0, import_math8.bn)(0);
2406
2388
  return outputClone;
2407
2389
  }
2408
- case import_transactions8.OutputType.Variable: {
2409
- outputClone.to = import_configs8.ZeroBytes32;
2390
+ case import_transactions7.OutputType.Variable: {
2391
+ outputClone.to = import_configs7.ZeroBytes32;
2410
2392
  outputClone.amount = (0, import_math8.bn)(0);
2411
- outputClone.assetId = import_configs8.ZeroBytes32;
2393
+ outputClone.assetId = import_configs7.ZeroBytes32;
2412
2394
  return outputClone;
2413
2395
  }
2414
2396
  default:
@@ -2418,7 +2400,7 @@ function hashTransaction(transactionRequest, chainId) {
2418
2400
  transaction.witnessesCount = 0;
2419
2401
  transaction.witnesses = [];
2420
2402
  const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
2421
- const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
2403
+ const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
2422
2404
  return (0, import_hasher.sha256)(concatenatedData);
2423
2405
  }
2424
2406
 
@@ -2454,7 +2436,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2454
2436
  return new this(obj);
2455
2437
  }
2456
2438
  /** Type of the transaction */
2457
- type = import_transactions9.TransactionType.Create;
2439
+ type = import_transactions8.TransactionType.Create;
2458
2440
  /** Witness index of contract bytecode to create */
2459
2441
  bytecodeWitnessIndex;
2460
2442
  /** Salt */
@@ -2466,15 +2448,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2466
2448
  *
2467
2449
  * @param createTransactionRequestLike - The initial values for the instance
2468
2450
  */
2469
- constructor({
2470
- bytecodeWitnessIndex,
2471
- salt,
2472
- storageSlots,
2473
- ...rest
2474
- } = {}) {
2451
+ constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2475
2452
  super(rest);
2476
2453
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2477
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2454
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2478
2455
  this.storageSlots = [...storageSlots ?? []];
2479
2456
  }
2480
2457
  /**
@@ -2487,12 +2464,12 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2487
2464
  const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
2488
2465
  const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
2489
2466
  return {
2490
- type: import_transactions9.TransactionType.Create,
2467
+ type: import_transactions8.TransactionType.Create,
2491
2468
  ...baseTransaction,
2492
2469
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2493
2470
  bytecodeWitnessIndex,
2494
2471
  storageSlotsCount: storageSlots.length,
2495
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
2472
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2496
2473
  storageSlots
2497
2474
  };
2498
2475
  }
@@ -2503,7 +2480,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2503
2480
  */
2504
2481
  getContractCreatedOutputs() {
2505
2482
  return this.outputs.filter(
2506
- (output) => output.type === import_transactions9.OutputType.ContractCreated
2483
+ (output) => output.type === import_transactions8.OutputType.ContractCreated
2507
2484
  );
2508
2485
  }
2509
2486
  /**
@@ -2524,7 +2501,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2524
2501
  */
2525
2502
  addContractCreatedOutput(contractId, stateRoot) {
2526
2503
  this.pushOutput({
2527
- type: import_transactions9.OutputType.ContractCreated,
2504
+ type: import_transactions8.OutputType.ContractCreated,
2528
2505
  contractId,
2529
2506
  stateRoot
2530
2507
  });
@@ -2542,9 +2519,9 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2542
2519
  // src/providers/transaction-request/script-transaction-request.ts
2543
2520
  var import_abi_coder3 = require("@fuel-ts/abi-coder");
2544
2521
  var import_address2 = require("@fuel-ts/address");
2545
- var import_configs10 = require("@fuel-ts/address/configs");
2522
+ var import_configs9 = require("@fuel-ts/address/configs");
2546
2523
  var import_math10 = require("@fuel-ts/math");
2547
- var import_transactions10 = require("@fuel-ts/transactions");
2524
+ var import_transactions9 = require("@fuel-ts/transactions");
2548
2525
  var import_utils15 = require("@fuel-ts/utils");
2549
2526
 
2550
2527
  // src/providers/transaction-request/scripts.ts
@@ -2582,7 +2559,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2582
2559
  return new this(obj);
2583
2560
  }
2584
2561
  /** Type of the transaction */
2585
- type = import_transactions10.TransactionType.Script;
2562
+ type = import_transactions9.TransactionType.Script;
2586
2563
  /** Gas limit for transaction */
2587
2564
  gasLimit;
2588
2565
  /** Script to execute */
@@ -2595,7 +2572,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2595
2572
  *
2596
2573
  * @param scriptTransactionRequestLike - The initial values for the instance.
2597
2574
  */
2598
- constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2575
+ constructor({ script, scriptData, gasLimit, ...rest }) {
2599
2576
  super(rest);
2600
2577
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2601
2578
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2611,12 +2588,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2611
2588
  const script = (0, import_utils15.arrayify)(this.script ?? "0x");
2612
2589
  const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
2613
2590
  return {
2614
- type: import_transactions10.TransactionType.Script,
2591
+ type: import_transactions9.TransactionType.Script,
2615
2592
  scriptGasLimit: this.gasLimit,
2616
2593
  ...super.getBaseTransaction(),
2617
2594
  scriptLength: script.length,
2618
2595
  scriptDataLength: scriptData.length,
2619
- receiptsRoot: import_configs10.ZeroBytes32,
2596
+ receiptsRoot: import_configs9.ZeroBytes32,
2620
2597
  script: (0, import_utils15.hexlify)(script),
2621
2598
  scriptData: (0, import_utils15.hexlify)(scriptData)
2622
2599
  };
@@ -2628,7 +2605,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2628
2605
  */
2629
2606
  getContractInputs() {
2630
2607
  return this.inputs.filter(
2631
- (input) => input.type === import_transactions10.InputType.Contract
2608
+ (input) => input.type === import_transactions9.InputType.Contract
2632
2609
  );
2633
2610
  }
2634
2611
  /**
@@ -2638,7 +2615,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2638
2615
  */
2639
2616
  getContractOutputs() {
2640
2617
  return this.outputs.filter(
2641
- (output) => output.type === import_transactions10.OutputType.Contract
2618
+ (output) => output.type === import_transactions9.OutputType.Contract
2642
2619
  );
2643
2620
  }
2644
2621
  /**
@@ -2648,7 +2625,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2648
2625
  */
2649
2626
  getVariableOutputs() {
2650
2627
  return this.outputs.filter(
2651
- (output) => output.type === import_transactions10.OutputType.Variable
2628
+ (output) => output.type === import_transactions9.OutputType.Variable
2652
2629
  );
2653
2630
  }
2654
2631
  /**
@@ -2671,7 +2648,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2671
2648
  let outputsNumber = numberOfVariables;
2672
2649
  while (outputsNumber) {
2673
2650
  this.pushOutput({
2674
- type: import_transactions10.OutputType.Variable
2651
+ type: import_transactions9.OutputType.Variable
2675
2652
  });
2676
2653
  outputsNumber -= 1;
2677
2654
  }
@@ -2704,12 +2681,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2704
2681
  return this;
2705
2682
  }
2706
2683
  const inputIndex = super.pushInput({
2707
- type: import_transactions10.InputType.Contract,
2684
+ type: import_transactions9.InputType.Contract,
2708
2685
  contractId: contractAddress.toB256(),
2709
2686
  txPointer: "0x00000000000000000000000000000000"
2710
2687
  });
2711
2688
  this.pushOutput({
2712
- type: import_transactions10.OutputType.Contract,
2689
+ type: import_transactions9.OutputType.Contract,
2713
2690
  inputIndex
2714
2691
  });
2715
2692
  return this;
@@ -2746,17 +2723,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2746
2723
 
2747
2724
  // src/providers/transaction-request/utils.ts
2748
2725
  var import_errors9 = require("@fuel-ts/errors");
2749
- var import_transactions11 = require("@fuel-ts/transactions");
2726
+ var import_transactions10 = require("@fuel-ts/transactions");
2750
2727
  var transactionRequestify = (obj) => {
2751
2728
  if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
2752
2729
  return obj;
2753
2730
  }
2754
2731
  const { type } = obj;
2755
2732
  switch (obj.type) {
2756
- case import_transactions11.TransactionType.Script: {
2733
+ case import_transactions10.TransactionType.Script: {
2757
2734
  return ScriptTransactionRequest.from(obj);
2758
2735
  }
2759
- case import_transactions11.TransactionType.Create: {
2736
+ case import_transactions10.TransactionType.Create: {
2760
2737
  return CreateTransactionRequest.from(obj);
2761
2738
  }
2762
2739
  default: {
@@ -2768,7 +2745,7 @@ var transactionRequestify = (obj) => {
2768
2745
  // src/providers/transaction-response/transaction-response.ts
2769
2746
  var import_errors13 = require("@fuel-ts/errors");
2770
2747
  var import_math14 = require("@fuel-ts/math");
2771
- var import_transactions18 = require("@fuel-ts/transactions");
2748
+ var import_transactions17 = require("@fuel-ts/transactions");
2772
2749
  var import_utils21 = require("@fuel-ts/utils");
2773
2750
 
2774
2751
  // src/providers/transaction-summary/assemble-transaction-summary.ts
@@ -2776,7 +2753,7 @@ var import_utils19 = require("@fuel-ts/utils");
2776
2753
 
2777
2754
  // src/providers/transaction-summary/calculate-transaction-fee.ts
2778
2755
  var import_math11 = require("@fuel-ts/math");
2779
- var import_transactions12 = require("@fuel-ts/transactions");
2756
+ var import_transactions11 = require("@fuel-ts/transactions");
2780
2757
  var import_utils16 = require("@fuel-ts/utils");
2781
2758
  var calculateTransactionFee = (params) => {
2782
2759
  const {
@@ -2787,8 +2764,8 @@ var calculateTransactionFee = (params) => {
2787
2764
  const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
2788
2765
  const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
2789
2766
  const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
2790
- const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
2791
- if (transaction.type === import_transactions12.TransactionType.Mint) {
2767
+ const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
2768
+ if (transaction.type === import_transactions11.TransactionType.Mint) {
2792
2769
  return {
2793
2770
  fee: (0, import_math11.bn)(0),
2794
2771
  minFee: (0, import_math11.bn)(0),
@@ -2799,7 +2776,7 @@ var calculateTransactionFee = (params) => {
2799
2776
  const { type, witnesses, inputs, policies } = transaction;
2800
2777
  let metadataGas = (0, import_math11.bn)(0);
2801
2778
  let gasLimit = (0, import_math11.bn)(0);
2802
- if (type === import_transactions12.TransactionType.Create) {
2779
+ if (type === import_transactions11.TransactionType.Create) {
2803
2780
  const { bytecodeWitnessIndex, storageSlots } = transaction;
2804
2781
  const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
2805
2782
  metadataGas = calculateMetadataGasForTxCreate({
@@ -2825,8 +2802,8 @@ var calculateTransactionFee = (params) => {
2825
2802
  metadataGas,
2826
2803
  txBytesSize: transactionBytes.length
2827
2804
  });
2828
- const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions12.PolicyType.GasPrice)?.data);
2829
- const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
2805
+ const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions11.PolicyType.GasPrice)?.data);
2806
+ const witnessLimit = policies.find((policy) => policy.type === import_transactions11.PolicyType.WitnessLimit)?.data;
2830
2807
  const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
2831
2808
  const maxGas = getMaxGas({
2832
2809
  gasPerByte,
@@ -2848,10 +2825,10 @@ var calculateTransactionFee = (params) => {
2848
2825
  };
2849
2826
 
2850
2827
  // src/providers/transaction-summary/operations.ts
2851
- var import_configs11 = require("@fuel-ts/address/configs");
2828
+ var import_configs10 = require("@fuel-ts/address/configs");
2852
2829
  var import_errors11 = require("@fuel-ts/errors");
2853
2830
  var import_math13 = require("@fuel-ts/math");
2854
- var import_transactions15 = require("@fuel-ts/transactions");
2831
+ var import_transactions14 = require("@fuel-ts/transactions");
2855
2832
 
2856
2833
  // src/providers/transaction-summary/call.ts
2857
2834
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
@@ -2899,7 +2876,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
2899
2876
 
2900
2877
  // src/providers/transaction-summary/input.ts
2901
2878
  var import_errors10 = require("@fuel-ts/errors");
2902
- var import_transactions13 = require("@fuel-ts/transactions");
2879
+ var import_transactions12 = require("@fuel-ts/transactions");
2903
2880
  function getInputsByTypes(inputs, types) {
2904
2881
  return inputs.filter((i) => types.includes(i.type));
2905
2882
  }
@@ -2907,16 +2884,16 @@ function getInputsByType(inputs, type) {
2907
2884
  return inputs.filter((i) => i.type === type);
2908
2885
  }
2909
2886
  function getInputsCoin(inputs) {
2910
- return getInputsByType(inputs, import_transactions13.InputType.Coin);
2887
+ return getInputsByType(inputs, import_transactions12.InputType.Coin);
2911
2888
  }
2912
2889
  function getInputsMessage(inputs) {
2913
- return getInputsByType(inputs, import_transactions13.InputType.Message);
2890
+ return getInputsByType(inputs, import_transactions12.InputType.Message);
2914
2891
  }
2915
2892
  function getInputsCoinAndMessage(inputs) {
2916
- return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
2893
+ return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
2917
2894
  }
2918
2895
  function getInputsContract(inputs) {
2919
- return getInputsByType(inputs, import_transactions13.InputType.Contract);
2896
+ return getInputsByType(inputs, import_transactions12.InputType.Contract);
2920
2897
  }
2921
2898
  function getInputFromAssetId(inputs, assetId) {
2922
2899
  const coinInputs = getInputsCoin(inputs);
@@ -2935,7 +2912,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
2935
2912
  if (!contractInput) {
2936
2913
  return void 0;
2937
2914
  }
2938
- if (contractInput.type !== import_transactions13.InputType.Contract) {
2915
+ if (contractInput.type !== import_transactions12.InputType.Contract) {
2939
2916
  throw new import_errors10.FuelError(
2940
2917
  import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
2941
2918
  `Contract input should be of type 'contract'.`
@@ -2944,34 +2921,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
2944
2921
  return contractInput;
2945
2922
  }
2946
2923
  function getInputAccountAddress(input) {
2947
- if (input.type === import_transactions13.InputType.Coin) {
2924
+ if (input.type === import_transactions12.InputType.Coin) {
2948
2925
  return input.owner.toString();
2949
2926
  }
2950
- if (input.type === import_transactions13.InputType.Message) {
2927
+ if (input.type === import_transactions12.InputType.Message) {
2951
2928
  return input.recipient.toString();
2952
2929
  }
2953
2930
  return "";
2954
2931
  }
2955
2932
 
2956
2933
  // src/providers/transaction-summary/output.ts
2957
- var import_transactions14 = require("@fuel-ts/transactions");
2934
+ var import_transactions13 = require("@fuel-ts/transactions");
2958
2935
  function getOutputsByType(outputs, type) {
2959
2936
  return outputs.filter((o) => o.type === type);
2960
2937
  }
2961
2938
  function getOutputsContractCreated(outputs) {
2962
- return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
2939
+ return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
2963
2940
  }
2964
2941
  function getOutputsCoin(outputs) {
2965
- return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
2942
+ return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
2966
2943
  }
2967
2944
  function getOutputsChange(outputs) {
2968
- return getOutputsByType(outputs, import_transactions14.OutputType.Change);
2945
+ return getOutputsByType(outputs, import_transactions13.OutputType.Change);
2969
2946
  }
2970
2947
  function getOutputsContract(outputs) {
2971
- return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
2948
+ return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
2972
2949
  }
2973
2950
  function getOutputsVariable(outputs) {
2974
- return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
2951
+ return getOutputsByType(outputs, import_transactions13.OutputType.Variable);
2975
2952
  }
2976
2953
 
2977
2954
  // src/providers/transaction-summary/types.ts
@@ -3018,11 +2995,11 @@ function getReceiptsByType(receipts, type) {
3018
2995
  }
3019
2996
  function getTransactionTypeName(transactionType) {
3020
2997
  switch (transactionType) {
3021
- case import_transactions15.TransactionType.Mint:
2998
+ case import_transactions14.TransactionType.Mint:
3022
2999
  return "Mint" /* Mint */;
3023
- case import_transactions15.TransactionType.Create:
3000
+ case import_transactions14.TransactionType.Create:
3024
3001
  return "Create" /* Create */;
3025
- case import_transactions15.TransactionType.Script:
3002
+ case import_transactions14.TransactionType.Script:
3026
3003
  return "Script" /* Script */;
3027
3004
  default:
3028
3005
  throw new import_errors11.FuelError(
@@ -3048,10 +3025,10 @@ function hasSameAssetId(a) {
3048
3025
  return (b) => a.assetId === b.assetId;
3049
3026
  }
3050
3027
  function getReceiptsCall(receipts) {
3051
- return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
3028
+ return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
3052
3029
  }
3053
3030
  function getReceiptsMessageOut(receipts) {
3054
- return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
3031
+ return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
3055
3032
  }
3056
3033
  var mergeAssets = (op1, op2) => {
3057
3034
  const assets1 = op1.assetsSent || [];
@@ -3090,7 +3067,7 @@ function addOperation(operations, toAdd) {
3090
3067
  return allOperations;
3091
3068
  }
3092
3069
  function getReceiptsTransferOut(receipts) {
3093
- return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
3070
+ return getReceiptsByType(receipts, import_transactions14.ReceiptType.TransferOut);
3094
3071
  }
3095
3072
  function getWithdrawFromFuelOperations({
3096
3073
  inputs,
@@ -3193,7 +3170,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
3193
3170
  const { to: toAddress, assetId, amount } = receipt;
3194
3171
  let { from: fromAddress } = receipt;
3195
3172
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
3196
- if (import_configs11.ZeroBytes32 === fromAddress) {
3173
+ if (import_configs10.ZeroBytes32 === fromAddress) {
3197
3174
  const change = changeOutputs.find((output) => output.assetId === assetId);
3198
3175
  fromAddress = change?.to || fromAddress;
3199
3176
  }
@@ -3250,11 +3227,11 @@ function getTransferOperations({
3250
3227
  });
3251
3228
  const transferReceipts = getReceiptsByType(
3252
3229
  receipts,
3253
- import_transactions15.ReceiptType.Transfer
3230
+ import_transactions14.ReceiptType.Transfer
3254
3231
  );
3255
3232
  const transferOutReceipts = getReceiptsByType(
3256
3233
  receipts,
3257
- import_transactions15.ReceiptType.TransferOut
3234
+ import_transactions14.ReceiptType.TransferOut
3258
3235
  );
3259
3236
  [...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
3260
3237
  const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
@@ -3339,17 +3316,17 @@ function getOperations({
3339
3316
  }
3340
3317
 
3341
3318
  // src/providers/transaction-summary/receipt.ts
3342
- var import_transactions16 = require("@fuel-ts/transactions");
3319
+ var import_transactions15 = require("@fuel-ts/transactions");
3343
3320
  var processGqlReceipt = (gqlReceipt) => {
3344
3321
  const receipt = assembleReceiptByType(gqlReceipt);
3345
3322
  switch (receipt.type) {
3346
- case import_transactions16.ReceiptType.ReturnData: {
3323
+ case import_transactions15.ReceiptType.ReturnData: {
3347
3324
  return {
3348
3325
  ...receipt,
3349
3326
  data: gqlReceipt.data || "0x"
3350
3327
  };
3351
3328
  }
3352
- case import_transactions16.ReceiptType.LogData: {
3329
+ case import_transactions15.ReceiptType.LogData: {
3353
3330
  return {
3354
3331
  ...receipt,
3355
3332
  data: gqlReceipt.data || "0x"
@@ -3362,7 +3339,7 @@ var processGqlReceipt = (gqlReceipt) => {
3362
3339
  var extractMintedAssetsFromReceipts = (receipts) => {
3363
3340
  const mintedAssets = [];
3364
3341
  receipts.forEach((receipt) => {
3365
- if (receipt.type === import_transactions16.ReceiptType.Mint) {
3342
+ if (receipt.type === import_transactions15.ReceiptType.Mint) {
3366
3343
  mintedAssets.push({
3367
3344
  subId: receipt.subId,
3368
3345
  contractId: receipt.contractId,
@@ -3376,7 +3353,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
3376
3353
  var extractBurnedAssetsFromReceipts = (receipts) => {
3377
3354
  const burnedAssets = [];
3378
3355
  receipts.forEach((receipt) => {
3379
- if (receipt.type === import_transactions16.ReceiptType.Burn) {
3356
+ if (receipt.type === import_transactions15.ReceiptType.Burn) {
3380
3357
  burnedAssets.push({
3381
3358
  subId: receipt.subId,
3382
3359
  contractId: receipt.contractId,
@@ -3515,12 +3492,12 @@ function assembleTransactionSummary(params) {
3515
3492
 
3516
3493
  // src/providers/transaction-response/getDecodedLogs.ts
3517
3494
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
3518
- var import_transactions17 = require("@fuel-ts/transactions");
3495
+ var import_transactions16 = require("@fuel-ts/transactions");
3519
3496
  function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
3520
3497
  return receipts.reduce((logs, receipt) => {
3521
- if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
3498
+ if (receipt.type === import_transactions16.ReceiptType.LogData || receipt.type === import_transactions16.ReceiptType.Log) {
3522
3499
  const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
3523
- const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3500
+ const data = receipt.type === import_transactions16.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
3524
3501
  const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
3525
3502
  logs.push(decodedLog);
3526
3503
  }
@@ -3593,7 +3570,7 @@ var TransactionResponse = class {
3593
3570
  * @returns The decoded transaction.
3594
3571
  */
3595
3572
  decodeTransaction(transactionWithReceipts) {
3596
- return new import_transactions18.TransactionCoder().decode(
3573
+ return new import_transactions17.TransactionCoder().decode(
3597
3574
  (0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
3598
3575
  0
3599
3576
  )?.[0];
@@ -3770,6 +3747,7 @@ var processGqlChain = (chain) => {
3770
3747
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3771
3748
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3772
3749
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3750
+ baseAssetId: consensusParameters.baseAssetId,
3773
3751
  gasCosts
3774
3752
  },
3775
3753
  gasCosts,
@@ -4012,6 +3990,17 @@ var _Provider = class {
4012
3990
  } = this.getChain();
4013
3991
  return chainId.toNumber();
4014
3992
  }
3993
+ /**
3994
+ * Returns the base asset ID
3995
+ *
3996
+ * @returns A promise that resolves to the base asset ID
3997
+ */
3998
+ getBaseAssetId() {
3999
+ const {
4000
+ consensusParameters: { baseAssetId }
4001
+ } = this.getChain();
4002
+ return baseAssetId;
4003
+ }
4015
4004
  /**
4016
4005
  * Submits a transaction to the chain to be executed.
4017
4006
  *
@@ -4030,7 +4019,7 @@ var _Provider = class {
4030
4019
  }
4031
4020
  const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
4032
4021
  let abis;
4033
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4022
+ if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4034
4023
  abis = transactionRequest.abis;
4035
4024
  }
4036
4025
  if (awaitExecution) {
@@ -4126,7 +4115,7 @@ var _Provider = class {
4126
4115
  * @returns A promise.
4127
4116
  */
4128
4117
  async estimateTxDependencies(transactionRequest) {
4129
- if (transactionRequest.type === import_transactions19.TransactionType.Create) {
4118
+ if (transactionRequest.type === import_transactions18.TransactionType.Create) {
4130
4119
  return {
4131
4120
  receipts: [],
4132
4121
  outputVariables: 0,
@@ -4175,7 +4164,7 @@ var _Provider = class {
4175
4164
  transactionRequest.gasPrice = gasPrice;
4176
4165
  const minGas = transactionRequest.calculateMinGas(chainInfo);
4177
4166
  const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
4178
- if (transactionRequest.type === import_transactions19.TransactionType.Script) {
4167
+ if (transactionRequest.type === import_transactions18.TransactionType.Script) {
4179
4168
  if (transactionRequest.gasLimit.eq(0)) {
4180
4169
  transactionRequest.gasLimit = minGas;
4181
4170
  transactionRequest.gasLimit = maxGasPerTx.sub(
@@ -4241,7 +4230,7 @@ var _Provider = class {
4241
4230
  const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
4242
4231
  const { minGasPrice } = this.getGasConfig();
4243
4232
  const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
4244
- const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
4233
+ const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
4245
4234
  const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
4246
4235
  const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
4247
4236
  txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
@@ -4457,7 +4446,7 @@ var _Provider = class {
4457
4446
  time: block.header.time,
4458
4447
  transactionIds: block.transactions.map((tx) => tx.id),
4459
4448
  transactions: block.transactions.map(
4460
- (tx) => new import_transactions19.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4449
+ (tx) => new import_transactions18.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4461
4450
  )
4462
4451
  };
4463
4452
  }
@@ -4472,7 +4461,7 @@ var _Provider = class {
4472
4461
  if (!transaction) {
4473
4462
  return null;
4474
4463
  }
4475
- return new import_transactions19.TransactionCoder().decode(
4464
+ return new import_transactions18.TransactionCoder().decode(
4476
4465
  (0, import_utils23.arrayify)(transaction.rawPayload),
4477
4466
  0
4478
4467
  )?.[0];
@@ -4552,7 +4541,7 @@ var _Provider = class {
4552
4541
  });
4553
4542
  const messages = result.messages.edges.map((edge) => edge.node);
4554
4543
  return messages.map((message) => ({
4555
- messageId: import_transactions19.InputMessageCoder.getMessageId({
4544
+ messageId: import_transactions18.InputMessageCoder.getMessageId({
4556
4545
  sender: message.sender,
4557
4546
  recipient: message.recipient,
4558
4547
  nonce: message.nonce,
@@ -4563,7 +4552,7 @@ var _Provider = class {
4563
4552
  recipient: import_address3.Address.fromAddressOrString(message.recipient),
4564
4553
  nonce: message.nonce,
4565
4554
  amount: (0, import_math15.bn)(message.amount),
4566
- data: import_transactions19.InputMessageCoder.decodeData(message.data),
4555
+ data: import_transactions18.InputMessageCoder.decodeData(message.data),
4567
4556
  daHeight: (0, import_math15.bn)(message.daHeight)
4568
4557
  }));
4569
4558
  }
@@ -4691,7 +4680,7 @@ cacheInputs_fn = function(inputs) {
4691
4680
  return;
4692
4681
  }
4693
4682
  inputs.forEach((input) => {
4694
- if (input.type === import_transactions19.InputType.Coin) {
4683
+ if (input.type === import_transactions18.InputType.Coin) {
4695
4684
  this.cache?.set(input.id);
4696
4685
  }
4697
4686
  });
@@ -4702,7 +4691,7 @@ __publicField(Provider, "nodeInfoCache", {});
4702
4691
  // src/providers/transaction-summary/get-transaction-summary.ts
4703
4692
  var import_errors15 = require("@fuel-ts/errors");
4704
4693
  var import_math16 = require("@fuel-ts/math");
4705
- var import_transactions20 = require("@fuel-ts/transactions");
4694
+ var import_transactions19 = require("@fuel-ts/transactions");
4706
4695
  var import_utils26 = require("@fuel-ts/utils");
4707
4696
  async function getTransactionSummary(params) {
4708
4697
  const { id, provider, abiMap } = params;
@@ -4715,7 +4704,7 @@ async function getTransactionSummary(params) {
4715
4704
  `Transaction not found for given id: ${id}.`
4716
4705
  );
4717
4706
  }
4718
- const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
4707
+ const [decodedTransaction] = new import_transactions19.TransactionCoder().decode(
4719
4708
  (0, import_utils26.arrayify)(gqlTransaction.rawPayload),
4720
4709
  0
4721
4710
  );
@@ -4769,7 +4758,7 @@ async function getTransactionsSummaries(params) {
4769
4758
  const transactions = edges.map((edge) => {
4770
4759
  const { node: gqlTransaction } = edge;
4771
4760
  const { id, rawPayload, receipts: gqlReceipts, status } = gqlTransaction;
4772
- const [decodedTransaction] = new import_transactions20.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
4761
+ const [decodedTransaction] = new import_transactions19.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
4773
4762
  const receipts = gqlReceipts?.map(processGqlReceipt) || [];
4774
4763
  const transactionSummary = assembleTransactionSummary({
4775
4764
  id,
@@ -5075,8 +5064,9 @@ var Account = class extends import_interfaces.AbstractAccount {
5075
5064
  * @param assetId - The asset ID to check the balance for.
5076
5065
  * @returns A promise that resolves to the balance amount.
5077
5066
  */
5078
- async getBalance(assetId = import_configs12.BaseAssetId) {
5079
- const amount = await this.provider.getBalance(this.address, assetId);
5067
+ async getBalance(assetId) {
5068
+ const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
5069
+ const amount = await this.provider.getBalance(this.address, assetIdToFetch);
5080
5070
  return amount;
5081
5071
  }
5082
5072
  /**
@@ -5114,9 +5104,10 @@ var Account = class extends import_interfaces.AbstractAccount {
5114
5104
  * @returns A promise that resolves when the resources are added to the transaction.
5115
5105
  */
5116
5106
  async fund(request, coinQuantities, fee) {
5107
+ const baseAssetId = this.provider.getBaseAssetId();
5117
5108
  const updatedQuantities = addAmountToAsset({
5118
5109
  amount: (0, import_math18.bn)(fee),
5119
- assetId: import_configs12.BaseAssetId,
5110
+ assetId: baseAssetId,
5120
5111
  coinQuantities
5121
5112
  });
5122
5113
  const quantitiesDict = {};
@@ -5140,8 +5131,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5140
5131
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
5141
5132
  cachedUtxos.push(input.id);
5142
5133
  }
5143
- } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
5144
- quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
5134
+ } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
5135
+ quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
5145
5136
  cachedMessages.push(input.nonce);
5146
5137
  }
5147
5138
  }
@@ -5173,11 +5164,13 @@ var Account = class extends import_interfaces.AbstractAccount {
5173
5164
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5174
5165
  * @returns A promise that resolves to the prepared transaction request.
5175
5166
  */
5176
- async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5167
+ async createTransfer(destination, amount, assetId, txParams = {}) {
5177
5168
  const { minGasPrice } = this.provider.getGasConfig();
5178
- const params = { gasPrice: minGasPrice, ...txParams };
5169
+ const baseAssetId = this.provider.getBaseAssetId();
5170
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5171
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
5179
5172
  const request = new ScriptTransactionRequest(params);
5180
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
5173
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
5181
5174
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
5182
5175
  estimateTxDependencies: true,
5183
5176
  resourcesOwner: this
@@ -5203,14 +5196,15 @@ var Account = class extends import_interfaces.AbstractAccount {
5203
5196
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5204
5197
  * @returns A promise that resolves to the transaction response.
5205
5198
  */
5206
- async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5199
+ async transfer(destination, amount, assetId, txParams = {}) {
5207
5200
  if ((0, import_math18.bn)(amount).lte(0)) {
5208
5201
  throw new import_errors16.FuelError(
5209
5202
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
5210
5203
  "Transfer amount must be a positive number."
5211
5204
  );
5212
5205
  }
5213
- const request = await this.createTransfer(destination, amount, assetId, txParams);
5206
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5207
+ const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
5214
5208
  return this.sendTransaction(request, { estimateTxDependencies: false });
5215
5209
  }
5216
5210
  /**
@@ -5222,7 +5216,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5222
5216
  * @param txParams - The optional transaction parameters.
5223
5217
  * @returns A promise that resolves to the transaction response.
5224
5218
  */
5225
- async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5219
+ async transferToContract(contractId, amount, assetId, txParams = {}) {
5226
5220
  if ((0, import_math18.bn)(amount).lte(0)) {
5227
5221
  throw new import_errors16.FuelError(
5228
5222
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -5231,11 +5225,13 @@ var Account = class extends import_interfaces.AbstractAccount {
5231
5225
  }
5232
5226
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
5233
5227
  const { minGasPrice } = this.provider.getGasConfig();
5234
- const params = { gasPrice: minGasPrice, ...txParams };
5228
+ const baseAssetId = this.provider.getBaseAssetId();
5229
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5230
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
5235
5231
  const { script, scriptData } = await assembleTransferToContractScript({
5236
5232
  hexlifiedContractId: contractAddress.toB256(),
5237
5233
  amountToTransfer: (0, import_math18.bn)(amount),
5238
- assetId
5234
+ assetId: assetIdToTransfer
5239
5235
  });
5240
5236
  const request = new ScriptTransactionRequest({
5241
5237
  ...params,
@@ -5245,7 +5241,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5245
5241
  request.addContractInputAndOutput(contractAddress);
5246
5242
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
5247
5243
  request,
5248
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
5244
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
5249
5245
  );
5250
5246
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
5251
5247
  this.validateGas({
@@ -5267,6 +5263,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5267
5263
  */
5268
5264
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
5269
5265
  const { minGasPrice } = this.provider.getGasConfig();
5266
+ const baseAssetId = this.provider.getBaseAssetId();
5270
5267
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
5271
5268
  const recipientDataArray = (0, import_utils28.arrayify)(
5272
5269
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -5279,9 +5276,14 @@ var Account = class extends import_interfaces.AbstractAccount {
5279
5276
  ...recipientDataArray,
5280
5277
  ...amountDataArray
5281
5278
  ]);
5282
- const params = { script, gasPrice: minGasPrice, ...txParams };
5279
+ const params = {
5280
+ script,
5281
+ gasPrice: minGasPrice,
5282
+ baseAssetId,
5283
+ ...txParams
5284
+ };
5283
5285
  const request = new ScriptTransactionRequest(params);
5284
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
5286
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
5285
5287
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
5286
5288
  request,
5287
5289
  forwardingQuantities
@@ -8844,9 +8846,8 @@ var StorageAbstract = class {
8844
8846
  // src/predicate/predicate.ts
8845
8847
  var import_abi_coder7 = require("@fuel-ts/abi-coder");
8846
8848
  var import_address10 = require("@fuel-ts/address");
8847
- var import_configs13 = require("@fuel-ts/address/configs");
8848
8849
  var import_errors25 = require("@fuel-ts/errors");
8849
- var import_transactions21 = require("@fuel-ts/transactions");
8850
+ var import_transactions20 = require("@fuel-ts/transactions");
8850
8851
  var import_utils37 = require("@fuel-ts/utils");
8851
8852
 
8852
8853
  // src/predicate/utils/getPredicateRoot.ts
@@ -8905,15 +8906,10 @@ var Predicate = class extends Account {
8905
8906
  populateTransactionPredicateData(transactionRequestLike) {
8906
8907
  const request = transactionRequestify(transactionRequestLike);
8907
8908
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
8908
- const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
8909
- if (placeholderIndex !== -1) {
8910
- request.removeWitness(placeholderIndex);
8911
- }
8912
- request.inputs.filter(isRequestInputResource).forEach((input) => {
8913
- if (isRequestInputResourceFromOwner(input, this.address)) {
8909
+ request.inputs?.forEach((input) => {
8910
+ if (input.type === import_transactions20.InputType.Coin && (0, import_utils37.hexlify)(input.owner) === this.address.toB256()) {
8914
8911
  input.predicate = this.bytes;
8915
8912
  input.predicateData = this.getPredicateData(policies.length);
8916
- input.witnessIndex = 0;
8917
8913
  }
8918
8914
  });
8919
8915
  return request;
@@ -8927,8 +8923,9 @@ var Predicate = class extends Account {
8927
8923
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
8928
8924
  * @returns A promise that resolves to the prepared transaction request.
8929
8925
  */
8930
- async createTransfer(destination, amount, assetId = import_configs13.BaseAssetId, txParams = {}) {
8931
- const request = await super.createTransfer(destination, amount, assetId, txParams);
8926
+ async createTransfer(destination, amount, assetId, txParams = {}) {
8927
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
8928
+ const request = await super.createTransfer(destination, amount, assetIdToTransfer, txParams);
8932
8929
  return this.populateTransactionPredicateData(request);
8933
8930
  }
8934
8931
  /**
@@ -8951,26 +8948,12 @@ var Predicate = class extends Account {
8951
8948
  const transactionRequest = this.populateTransactionPredicateData(transactionRequestLike);
8952
8949
  return super.simulateTransaction(transactionRequest);
8953
8950
  }
8954
- /**
8955
- * Retrieves resources satisfying the spend query for the account.
8956
- *
8957
- * @param quantities - IDs of coins to exclude.
8958
- * @param excludedIds - IDs of resources to be excluded from the query.
8959
- * @returns A promise that resolves to an array of Resources.
8960
- */
8961
- async getResourcesToSpend(quantities, excludedIds) {
8962
- const resources = await super.getResourcesToSpend(quantities, excludedIds);
8963
- return resources.map((resource) => ({
8964
- ...resource,
8965
- predicate: (0, import_utils37.hexlify)(this.bytes)
8966
- }));
8967
- }
8968
8951
  getPredicateData(policiesLength) {
8969
8952
  if (!this.predicateData.length) {
8970
8953
  return new Uint8Array();
8971
8954
  }
8972
8955
  const mainFn = this.interface?.functions.main;
8973
- const paddedCode = new import_transactions21.ByteArrayCoder(this.bytes.length).encode(this.bytes);
8956
+ const paddedCode = new import_transactions20.ByteArrayCoder(this.bytes.length).encode(this.bytes);
8974
8957
  const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
8975
8958
  maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
8976
8959
  });
@@ -9044,22 +9027,6 @@ var Predicate = class extends Account {
9044
9027
  }
9045
9028
  return mutatedBytes;
9046
9029
  }
9047
- getIndexFromPlaceholderWitness(request) {
9048
- const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
9049
- let index = -1;
9050
- const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
9051
- if (hasEmptyPredicateInputs) {
9052
- index = hasEmptyPredicateInputs.witnessIndex;
9053
- const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
9054
- if (!allInputsAreEmpty) {
9055
- const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
9056
- if (wasFilledInputAddedFirst) {
9057
- index = -1;
9058
- }
9059
- }
9060
- }
9061
- return index;
9062
- }
9063
9030
  };
9064
9031
 
9065
9032
  // src/connectors/fuel.ts
@@ -9783,7 +9750,6 @@ __publicField(Fuel, "defaultConfig", {});
9783
9750
  assets,
9784
9751
  buildBlockExplorerUrl,
9785
9752
  cacheFor,
9786
- cacheResources,
9787
9753
  calculateMetadataGasForTxCreate,
9788
9754
  calculateMetadataGasForTxScript,
9789
9755
  calculatePriceWithFactor,
@@ -9830,7 +9796,6 @@ __publicField(Fuel, "defaultConfig", {});
9830
9796
  getReceiptsMessageOut,
9831
9797
  getReceiptsTransferOut,
9832
9798
  getReceiptsWithMissingData,
9833
- getRequestInputResourceOwner,
9834
9799
  getTransactionStatusName,
9835
9800
  getTransactionSummary,
9836
9801
  getTransactionSummaryFromRequest,
@@ -9844,10 +9809,6 @@ __publicField(Fuel, "defaultConfig", {});
9844
9809
  isMessage,
9845
9810
  isRawCoin,
9846
9811
  isRawMessage,
9847
- isRequestInputCoin,
9848
- isRequestInputMessage,
9849
- isRequestInputResource,
9850
- isRequestInputResourceFromOwner,
9851
9812
  isType,
9852
9813
  isTypeCreate,
9853
9814
  isTypeMint,