@fuel-ts/account 0.0.0-rc-2045-20240411190910 → 0.0.0-rc-1976-20240412113424

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.

package/dist/index.js CHANGED
@@ -184,14 +184,12 @@ module.exports = __toCommonJS(src_exports);
184
184
 
185
185
  // src/account.ts
186
186
  var import_address4 = require("@fuel-ts/address");
187
- var import_configs12 = require("@fuel-ts/address/configs");
188
187
  var import_errors16 = require("@fuel-ts/errors");
189
188
  var import_interfaces = require("@fuel-ts/interfaces");
190
189
  var import_math18 = require("@fuel-ts/math");
191
190
  var import_utils28 = require("@fuel-ts/utils");
192
191
 
193
192
  // src/providers/coin-quantity.ts
194
- var import_configs = require("@fuel-ts/address/configs");
195
193
  var import_math = require("@fuel-ts/math");
196
194
  var import_utils = require("@fuel-ts/utils");
197
195
  var coinQuantityfy = (coinQuantityLike) => {
@@ -200,11 +198,11 @@ var coinQuantityfy = (coinQuantityLike) => {
200
198
  let max2;
201
199
  if (Array.isArray(coinQuantityLike)) {
202
200
  amount = coinQuantityLike[0];
203
- assetId = coinQuantityLike[1] ?? import_configs.BaseAssetId;
204
- max2 = coinQuantityLike[2] ?? void 0;
201
+ assetId = coinQuantityLike[1];
202
+ max2 = coinQuantityLike[2];
205
203
  } else {
206
204
  amount = coinQuantityLike.amount;
207
- assetId = coinQuantityLike.assetId ?? import_configs.BaseAssetId;
205
+ assetId = coinQuantityLike.assetId;
208
206
  max2 = coinQuantityLike.max ?? void 0;
209
207
  }
210
208
  const bnAmount = (0, import_math.bn)(amount);
@@ -1174,7 +1172,7 @@ var MemoryCache = class {
1174
1172
 
1175
1173
  // src/providers/transaction-request/input.ts
1176
1174
  var import_abi_coder = require("@fuel-ts/abi-coder");
1177
- var import_configs2 = require("@fuel-ts/address/configs");
1175
+ var import_configs = require("@fuel-ts/address/configs");
1178
1176
  var import_errors3 = require("@fuel-ts/errors");
1179
1177
  var import_math2 = require("@fuel-ts/math");
1180
1178
  var import_transactions = require("@fuel-ts/transactions");
@@ -1208,10 +1206,10 @@ var inputify = (value) => {
1208
1206
  case import_transactions.InputType.Contract: {
1209
1207
  return {
1210
1208
  type: import_transactions.InputType.Contract,
1211
- txID: import_configs2.ZeroBytes32,
1209
+ txID: import_configs.ZeroBytes32,
1212
1210
  outputIndex: 0,
1213
- balanceRoot: import_configs2.ZeroBytes32,
1214
- stateRoot: import_configs2.ZeroBytes32,
1211
+ balanceRoot: import_configs.ZeroBytes32,
1212
+ stateRoot: import_configs.ZeroBytes32,
1215
1213
  txPointer: {
1216
1214
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1217
1215
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1249,7 +1247,7 @@ var inputify = (value) => {
1249
1247
  };
1250
1248
 
1251
1249
  // src/providers/transaction-request/output.ts
1252
- var import_configs3 = require("@fuel-ts/address/configs");
1250
+ var import_configs2 = require("@fuel-ts/address/configs");
1253
1251
  var import_errors4 = require("@fuel-ts/errors");
1254
1252
  var import_math3 = require("@fuel-ts/math");
1255
1253
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1269,8 +1267,8 @@ var outputify = (value) => {
1269
1267
  return {
1270
1268
  type: import_transactions2.OutputType.Contract,
1271
1269
  inputIndex: value.inputIndex,
1272
- balanceRoot: import_configs3.ZeroBytes32,
1273
- stateRoot: import_configs3.ZeroBytes32
1270
+ balanceRoot: import_configs2.ZeroBytes32,
1271
+ stateRoot: import_configs2.ZeroBytes32
1274
1272
  };
1275
1273
  }
1276
1274
  case import_transactions2.OutputType.Change: {
@@ -1284,9 +1282,9 @@ var outputify = (value) => {
1284
1282
  case import_transactions2.OutputType.Variable: {
1285
1283
  return {
1286
1284
  type: import_transactions2.OutputType.Variable,
1287
- to: import_configs3.ZeroBytes32,
1285
+ to: import_configs2.ZeroBytes32,
1288
1286
  amount: (0, import_math3.bn)(0),
1289
- assetId: import_configs3.ZeroBytes32
1287
+ assetId: import_configs2.ZeroBytes32
1290
1288
  };
1291
1289
  }
1292
1290
  case import_transactions2.OutputType.ContractCreated: {
@@ -1308,7 +1306,7 @@ var outputify = (value) => {
1308
1306
  // src/providers/transaction-request/transaction-request.ts
1309
1307
  var import_abi_coder2 = require("@fuel-ts/abi-coder");
1310
1308
  var import_address = require("@fuel-ts/address");
1311
- var import_configs7 = require("@fuel-ts/address/configs");
1309
+ var import_configs6 = require("@fuel-ts/address/configs");
1312
1310
  var import_crypto = require("@fuel-ts/crypto");
1313
1311
  var import_math7 = require("@fuel-ts/math");
1314
1312
  var import_transactions6 = require("@fuel-ts/transactions");
@@ -1321,13 +1319,13 @@ var isCoin = (resource) => "id" in resource;
1321
1319
  var isMessage = (resource) => "recipient" in resource;
1322
1320
 
1323
1321
  // src/providers/utils/receipts.ts
1324
- var import_configs4 = require("@fuel-ts/address/configs");
1322
+ var import_configs3 = require("@fuel-ts/address/configs");
1325
1323
  var import_errors5 = require("@fuel-ts/errors");
1326
1324
  var import_math4 = require("@fuel-ts/math");
1327
1325
  var import_transactions3 = require("@fuel-ts/transactions");
1328
- var import_configs5 = require("@fuel-ts/transactions/configs");
1326
+ var import_configs4 = require("@fuel-ts/transactions/configs");
1329
1327
  var import_utils5 = require("@fuel-ts/utils");
1330
- var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1328
+ var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1331
1329
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1332
1330
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1333
1331
  (memo, receipt) => {
@@ -1344,7 +1342,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1344
1342
  missingOutputContractIds: []
1345
1343
  }
1346
1344
  );
1347
- var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1345
+ var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1348
1346
  function assembleReceiptByType(receipt) {
1349
1347
  const { receiptType } = receipt;
1350
1348
  switch (receiptType) {
@@ -1708,16 +1706,16 @@ function sleep(time) {
1708
1706
  var import_errors7 = require("@fuel-ts/errors");
1709
1707
  var import_math6 = require("@fuel-ts/math");
1710
1708
  var import_transactions5 = require("@fuel-ts/transactions");
1711
- var import_configs6 = require("@fuel-ts/transactions/configs");
1709
+ var import_configs5 = require("@fuel-ts/transactions/configs");
1712
1710
  var assemblePanicError = (status) => {
1713
1711
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
1714
1712
  const reason = status.reason;
1715
- if (import_configs6.PANIC_REASONS.includes(status.reason)) {
1713
+ if (import_configs5.PANIC_REASONS.includes(status.reason)) {
1716
1714
  errorMessage = `${errorMessage}
1717
1715
 
1718
1716
  You can read more about this error at:
1719
1717
 
1720
- ${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
1718
+ ${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
1721
1719
  }
1722
1720
  return { errorMessage, reason };
1723
1721
  };
@@ -1729,28 +1727,28 @@ var assembleRevertError = (receipts, logs) => {
1729
1727
  if (revertReceipt) {
1730
1728
  const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
1731
1729
  switch (reasonHex) {
1732
- case import_configs6.FAILED_REQUIRE_SIGNAL: {
1730
+ case import_configs5.FAILED_REQUIRE_SIGNAL: {
1733
1731
  reason = "require";
1734
1732
  errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
1735
1733
  break;
1736
1734
  }
1737
- case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
1735
+ case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
1738
1736
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1739
1737
  reason = "assert_eq";
1740
1738
  errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
1741
1739
  break;
1742
1740
  }
1743
- case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
1741
+ case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
1744
1742
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1745
1743
  reason = "assert_ne";
1746
1744
  errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
1747
1745
  break;
1748
1746
  }
1749
- case import_configs6.FAILED_ASSERT_SIGNAL:
1747
+ case import_configs5.FAILED_ASSERT_SIGNAL:
1750
1748
  reason = "assert";
1751
1749
  errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
1752
1750
  break;
1753
- case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1751
+ case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1754
1752
  reason = "MissingOutputChange";
1755
1753
  errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
1756
1754
  break;
@@ -1824,6 +1822,8 @@ var BaseTransactionRequest = class {
1824
1822
  outputs = [];
1825
1823
  /** List of witnesses */
1826
1824
  witnesses = [];
1825
+ /** Base asset ID - should be fetched from the chain */
1826
+ baseAssetId;
1827
1827
  /**
1828
1828
  * Constructor for initializing a base transaction request.
1829
1829
  *
@@ -1836,8 +1836,9 @@ var BaseTransactionRequest = class {
1836
1836
  witnessLimit,
1837
1837
  inputs,
1838
1838
  outputs,
1839
- witnesses
1840
- } = {}) {
1839
+ witnesses,
1840
+ baseAssetId
1841
+ }) {
1841
1842
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1842
1843
  this.maturity = maturity ?? 0;
1843
1844
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1845,6 +1846,7 @@ var BaseTransactionRequest = class {
1845
1846
  this.inputs = inputs ?? [];
1846
1847
  this.outputs = outputs ?? [];
1847
1848
  this.witnesses = witnesses ?? [];
1849
+ this.baseAssetId = baseAssetId;
1848
1850
  }
1849
1851
  static getPolicyMeta(req) {
1850
1852
  let policyTypes = 0;
@@ -1937,7 +1939,7 @@ var BaseTransactionRequest = class {
1937
1939
  * @returns The index of the created witness.
1938
1940
  */
1939
1941
  addEmptyWitness() {
1940
- this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
1942
+ this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1941
1943
  return this.witnesses.length - 1;
1942
1944
  }
1943
1945
  /**
@@ -2068,11 +2070,9 @@ var BaseTransactionRequest = class {
2068
2070
  *
2069
2071
  * @param message - Message resource.
2070
2072
  * @param predicate - Predicate bytes.
2071
- * @param predicateData - Predicate data bytes.
2072
2073
  */
2073
2074
  addMessageInput(message, predicate) {
2074
2075
  const { recipient, sender, amount } = message;
2075
- const assetId = import_configs7.BaseAssetId;
2076
2076
  let witnessIndex;
2077
2077
  if (predicate) {
2078
2078
  witnessIndex = 0;
@@ -2092,7 +2092,7 @@ var BaseTransactionRequest = class {
2092
2092
  predicate: predicate?.bytes
2093
2093
  };
2094
2094
  this.pushInput(input);
2095
- this.addChangeOutput(recipient, assetId);
2095
+ this.addChangeOutput(recipient, this.baseAssetId);
2096
2096
  }
2097
2097
  /**
2098
2098
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -2153,12 +2153,12 @@ var BaseTransactionRequest = class {
2153
2153
  * @param amount - Amount of coin.
2154
2154
  * @param assetId - Asset ID of coin.
2155
2155
  */
2156
- addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
2156
+ addCoinOutput(to, amount, assetId) {
2157
2157
  this.pushOutput({
2158
2158
  type: import_transactions6.OutputType.Coin,
2159
2159
  to: (0, import_address.addressify)(to).toB256(),
2160
2160
  amount,
2161
- assetId
2161
+ assetId: assetId ?? this.baseAssetId
2162
2162
  });
2163
2163
  return this;
2164
2164
  }
@@ -2185,7 +2185,7 @@ var BaseTransactionRequest = class {
2185
2185
  * @param to - Address of the owner.
2186
2186
  * @param assetId - Asset ID of coin.
2187
2187
  */
2188
- addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
2188
+ addChangeOutput(to, assetId) {
2189
2189
  const changeOutput = this.getChangeOutputs().find(
2190
2190
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
2191
2191
  );
@@ -2193,7 +2193,7 @@ var BaseTransactionRequest = class {
2193
2193
  this.pushOutput({
2194
2194
  type: import_transactions6.OutputType.Change,
2195
2195
  to: (0, import_address.addressify)(to).toB256(),
2196
- assetId
2196
+ assetId: assetId ?? this.baseAssetId
2197
2197
  });
2198
2198
  }
2199
2199
  }
@@ -2269,7 +2269,7 @@ var BaseTransactionRequest = class {
2269
2269
  ]);
2270
2270
  }
2271
2271
  };
2272
- updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2272
+ updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2273
2273
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2274
2274
  }
2275
2275
  /**
@@ -2319,13 +2319,13 @@ var BaseTransactionRequest = class {
2319
2319
  };
2320
2320
 
2321
2321
  // src/providers/transaction-request/create-transaction-request.ts
2322
- var import_configs9 = require("@fuel-ts/address/configs");
2322
+ var import_configs8 = require("@fuel-ts/address/configs");
2323
2323
  var import_math9 = require("@fuel-ts/math");
2324
2324
  var import_transactions8 = require("@fuel-ts/transactions");
2325
2325
  var import_utils13 = require("@fuel-ts/utils");
2326
2326
 
2327
2327
  // src/providers/transaction-request/hash-transaction.ts
2328
- var import_configs8 = require("@fuel-ts/address/configs");
2328
+ var import_configs7 = require("@fuel-ts/address/configs");
2329
2329
  var import_hasher = require("@fuel-ts/hasher");
2330
2330
  var import_math8 = require("@fuel-ts/math");
2331
2331
  var import_transactions7 = require("@fuel-ts/transactions");
@@ -2334,7 +2334,7 @@ var import_ramda2 = require("ramda");
2334
2334
  function hashTransaction(transactionRequest, chainId) {
2335
2335
  const transaction = transactionRequest.toTransaction();
2336
2336
  if (transaction.type === import_transactions7.TransactionType.Script) {
2337
- transaction.receiptsRoot = import_configs8.ZeroBytes32;
2337
+ transaction.receiptsRoot = import_configs7.ZeroBytes32;
2338
2338
  }
2339
2339
  transaction.inputs = transaction.inputs.map((input) => {
2340
2340
  const inputClone = (0, import_ramda2.clone)(input);
@@ -2356,10 +2356,10 @@ function hashTransaction(transactionRequest, chainId) {
2356
2356
  blockHeight: 0,
2357
2357
  txIndex: 0
2358
2358
  };
2359
- inputClone.txID = import_configs8.ZeroBytes32;
2359
+ inputClone.txID = import_configs7.ZeroBytes32;
2360
2360
  inputClone.outputIndex = 0;
2361
- inputClone.balanceRoot = import_configs8.ZeroBytes32;
2362
- inputClone.stateRoot = import_configs8.ZeroBytes32;
2361
+ inputClone.balanceRoot = import_configs7.ZeroBytes32;
2362
+ inputClone.stateRoot = import_configs7.ZeroBytes32;
2363
2363
  return inputClone;
2364
2364
  }
2365
2365
  default:
@@ -2370,8 +2370,8 @@ function hashTransaction(transactionRequest, chainId) {
2370
2370
  const outputClone = (0, import_ramda2.clone)(output);
2371
2371
  switch (outputClone.type) {
2372
2372
  case import_transactions7.OutputType.Contract: {
2373
- outputClone.balanceRoot = import_configs8.ZeroBytes32;
2374
- outputClone.stateRoot = import_configs8.ZeroBytes32;
2373
+ outputClone.balanceRoot = import_configs7.ZeroBytes32;
2374
+ outputClone.stateRoot = import_configs7.ZeroBytes32;
2375
2375
  return outputClone;
2376
2376
  }
2377
2377
  case import_transactions7.OutputType.Change: {
@@ -2379,9 +2379,9 @@ function hashTransaction(transactionRequest, chainId) {
2379
2379
  return outputClone;
2380
2380
  }
2381
2381
  case import_transactions7.OutputType.Variable: {
2382
- outputClone.to = import_configs8.ZeroBytes32;
2382
+ outputClone.to = import_configs7.ZeroBytes32;
2383
2383
  outputClone.amount = (0, import_math8.bn)(0);
2384
- outputClone.assetId = import_configs8.ZeroBytes32;
2384
+ outputClone.assetId = import_configs7.ZeroBytes32;
2385
2385
  return outputClone;
2386
2386
  }
2387
2387
  default:
@@ -2439,15 +2439,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2439
2439
  *
2440
2440
  * @param createTransactionRequestLike - The initial values for the instance
2441
2441
  */
2442
- constructor({
2443
- bytecodeWitnessIndex,
2444
- salt,
2445
- storageSlots,
2446
- ...rest
2447
- } = {}) {
2442
+ constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2448
2443
  super(rest);
2449
2444
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2450
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2445
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2451
2446
  this.storageSlots = [...storageSlots ?? []];
2452
2447
  }
2453
2448
  /**
@@ -2465,7 +2460,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2465
2460
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2466
2461
  bytecodeWitnessIndex,
2467
2462
  storageSlotsCount: storageSlots.length,
2468
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
2463
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2469
2464
  storageSlots
2470
2465
  };
2471
2466
  }
@@ -2515,7 +2510,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2515
2510
  // src/providers/transaction-request/script-transaction-request.ts
2516
2511
  var import_abi_coder3 = require("@fuel-ts/abi-coder");
2517
2512
  var import_address2 = require("@fuel-ts/address");
2518
- var import_configs10 = require("@fuel-ts/address/configs");
2513
+ var import_configs9 = require("@fuel-ts/address/configs");
2519
2514
  var import_math10 = require("@fuel-ts/math");
2520
2515
  var import_transactions9 = require("@fuel-ts/transactions");
2521
2516
  var import_utils15 = require("@fuel-ts/utils");
@@ -2568,7 +2563,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2568
2563
  *
2569
2564
  * @param scriptTransactionRequestLike - The initial values for the instance.
2570
2565
  */
2571
- constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2566
+ constructor({ script, scriptData, gasLimit, ...rest }) {
2572
2567
  super(rest);
2573
2568
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2574
2569
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2589,7 +2584,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2589
2584
  ...super.getBaseTransaction(),
2590
2585
  scriptLength: script.length,
2591
2586
  scriptDataLength: scriptData.length,
2592
- receiptsRoot: import_configs10.ZeroBytes32,
2587
+ receiptsRoot: import_configs9.ZeroBytes32,
2593
2588
  script: (0, import_utils15.hexlify)(script),
2594
2589
  scriptData: (0, import_utils15.hexlify)(scriptData)
2595
2590
  };
@@ -2821,7 +2816,7 @@ var calculateTransactionFee = (params) => {
2821
2816
  };
2822
2817
 
2823
2818
  // src/providers/transaction-summary/operations.ts
2824
- var import_configs11 = require("@fuel-ts/address/configs");
2819
+ var import_configs10 = require("@fuel-ts/address/configs");
2825
2820
  var import_errors11 = require("@fuel-ts/errors");
2826
2821
  var import_math13 = require("@fuel-ts/math");
2827
2822
  var import_transactions14 = require("@fuel-ts/transactions");
@@ -3166,7 +3161,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
3166
3161
  const { to: toAddress, assetId, amount } = receipt;
3167
3162
  let { from: fromAddress } = receipt;
3168
3163
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
3169
- if (import_configs11.ZeroBytes32 === fromAddress) {
3164
+ if (import_configs10.ZeroBytes32 === fromAddress) {
3170
3165
  const change = changeOutputs.find((output) => output.assetId === assetId);
3171
3166
  fromAddress = change?.to || fromAddress;
3172
3167
  }
@@ -3743,6 +3738,7 @@ var processGqlChain = (chain) => {
3743
3738
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3744
3739
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3745
3740
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3741
+ baseAssetId: consensusParameters.baseAssetId,
3746
3742
  gasCosts
3747
3743
  },
3748
3744
  gasCosts,
@@ -3985,6 +3981,17 @@ var _Provider = class {
3985
3981
  } = this.getChain();
3986
3982
  return chainId.toNumber();
3987
3983
  }
3984
+ /**
3985
+ * Returns the base asset ID
3986
+ *
3987
+ * @returns A promise that resolves to the base asset ID
3988
+ */
3989
+ getBaseAssetId() {
3990
+ const {
3991
+ consensusParameters: { baseAssetId }
3992
+ } = this.getChain();
3993
+ return baseAssetId;
3994
+ }
3988
3995
  /**
3989
3996
  * Submits a transaction to the chain to be executed.
3990
3997
  *
@@ -5048,8 +5055,9 @@ var Account = class extends import_interfaces.AbstractAccount {
5048
5055
  * @param assetId - The asset ID to check the balance for.
5049
5056
  * @returns A promise that resolves to the balance amount.
5050
5057
  */
5051
- async getBalance(assetId = import_configs12.BaseAssetId) {
5052
- const amount = await this.provider.getBalance(this.address, assetId);
5058
+ async getBalance(assetId) {
5059
+ const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
5060
+ const amount = await this.provider.getBalance(this.address, assetIdToFetch);
5053
5061
  return amount;
5054
5062
  }
5055
5063
  /**
@@ -5087,9 +5095,10 @@ var Account = class extends import_interfaces.AbstractAccount {
5087
5095
  * @returns A promise that resolves when the resources are added to the transaction.
5088
5096
  */
5089
5097
  async fund(request, coinQuantities, fee) {
5098
+ const baseAssetId = this.provider.getBaseAssetId();
5090
5099
  const updatedQuantities = addAmountToAsset({
5091
5100
  amount: (0, import_math18.bn)(fee),
5092
- assetId: import_configs12.BaseAssetId,
5101
+ assetId: baseAssetId,
5093
5102
  coinQuantities
5094
5103
  });
5095
5104
  const quantitiesDict = {};
@@ -5113,8 +5122,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5113
5122
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
5114
5123
  cachedUtxos.push(input.id);
5115
5124
  }
5116
- } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
5117
- quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
5125
+ } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
5126
+ quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
5118
5127
  cachedMessages.push(input.nonce);
5119
5128
  }
5120
5129
  }
@@ -5146,11 +5155,13 @@ var Account = class extends import_interfaces.AbstractAccount {
5146
5155
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5147
5156
  * @returns A promise that resolves to the prepared transaction request.
5148
5157
  */
5149
- async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5158
+ async createTransfer(destination, amount, assetId, txParams = {}) {
5150
5159
  const { minGasPrice } = this.provider.getGasConfig();
5151
- const params = { gasPrice: minGasPrice, ...txParams };
5160
+ const baseAssetId = this.provider.getBaseAssetId();
5161
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5162
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
5152
5163
  const request = new ScriptTransactionRequest(params);
5153
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
5164
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
5154
5165
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
5155
5166
  estimateTxDependencies: true,
5156
5167
  resourcesOwner: this
@@ -5176,14 +5187,15 @@ var Account = class extends import_interfaces.AbstractAccount {
5176
5187
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5177
5188
  * @returns A promise that resolves to the transaction response.
5178
5189
  */
5179
- async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5190
+ async transfer(destination, amount, assetId, txParams = {}) {
5180
5191
  if ((0, import_math18.bn)(amount).lte(0)) {
5181
5192
  throw new import_errors16.FuelError(
5182
5193
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
5183
5194
  "Transfer amount must be a positive number."
5184
5195
  );
5185
5196
  }
5186
- const request = await this.createTransfer(destination, amount, assetId, txParams);
5197
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5198
+ const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
5187
5199
  return this.sendTransaction(request, { estimateTxDependencies: false });
5188
5200
  }
5189
5201
  /**
@@ -5195,7 +5207,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5195
5207
  * @param txParams - The optional transaction parameters.
5196
5208
  * @returns A promise that resolves to the transaction response.
5197
5209
  */
5198
- async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5210
+ async transferToContract(contractId, amount, assetId, txParams = {}) {
5199
5211
  if ((0, import_math18.bn)(amount).lte(0)) {
5200
5212
  throw new import_errors16.FuelError(
5201
5213
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -5204,11 +5216,13 @@ var Account = class extends import_interfaces.AbstractAccount {
5204
5216
  }
5205
5217
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
5206
5218
  const { minGasPrice } = this.provider.getGasConfig();
5207
- const params = { gasPrice: minGasPrice, ...txParams };
5219
+ const baseAssetId = this.provider.getBaseAssetId();
5220
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5221
+ const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
5208
5222
  const { script, scriptData } = await assembleTransferToContractScript({
5209
5223
  hexlifiedContractId: contractAddress.toB256(),
5210
5224
  amountToTransfer: (0, import_math18.bn)(amount),
5211
- assetId
5225
+ assetId: assetIdToTransfer
5212
5226
  });
5213
5227
  const request = new ScriptTransactionRequest({
5214
5228
  ...params,
@@ -5218,7 +5232,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5218
5232
  request.addContractInputAndOutput(contractAddress);
5219
5233
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
5220
5234
  request,
5221
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
5235
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
5222
5236
  );
5223
5237
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
5224
5238
  this.validateGas({
@@ -5240,6 +5254,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5240
5254
  */
5241
5255
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
5242
5256
  const { minGasPrice } = this.provider.getGasConfig();
5257
+ const baseAssetId = this.provider.getBaseAssetId();
5243
5258
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
5244
5259
  const recipientDataArray = (0, import_utils28.arrayify)(
5245
5260
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -5252,9 +5267,14 @@ var Account = class extends import_interfaces.AbstractAccount {
5252
5267
  ...recipientDataArray,
5253
5268
  ...amountDataArray
5254
5269
  ]);
5255
- const params = { script, gasPrice: minGasPrice, ...txParams };
5270
+ const params = {
5271
+ script,
5272
+ gasPrice: minGasPrice,
5273
+ baseAssetId,
5274
+ ...txParams
5275
+ };
5256
5276
  const request = new ScriptTransactionRequest(params);
5257
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
5277
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
5258
5278
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
5259
5279
  request,
5260
5280
  forwardingQuantities
@@ -8817,7 +8837,6 @@ var StorageAbstract = class {
8817
8837
  // src/predicate/predicate.ts
8818
8838
  var import_abi_coder7 = require("@fuel-ts/abi-coder");
8819
8839
  var import_address10 = require("@fuel-ts/address");
8820
- var import_configs13 = require("@fuel-ts/address/configs");
8821
8840
  var import_errors25 = require("@fuel-ts/errors");
8822
8841
  var import_transactions20 = require("@fuel-ts/transactions");
8823
8842
  var import_utils37 = require("@fuel-ts/utils");
@@ -8895,8 +8914,9 @@ var Predicate = class extends Account {
8895
8914
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
8896
8915
  * @returns A promise that resolves to the prepared transaction request.
8897
8916
  */
8898
- async createTransfer(destination, amount, assetId = import_configs13.BaseAssetId, txParams = {}) {
8899
- const request = await super.createTransfer(destination, amount, assetId, txParams);
8917
+ async createTransfer(destination, amount, assetId, txParams = {}) {
8918
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
8919
+ const request = await super.createTransfer(destination, amount, assetIdToTransfer, txParams);
8900
8920
  return this.populateTransactionPredicateData(request);
8901
8921
  }
8902
8922
  /**