@fuel-ts/account 0.0.0-rc-2045-20240419094011 → 0.0.0-rc-1976-20240419101644

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);
@@ -1183,7 +1181,7 @@ var MemoryCache = class {
1183
1181
 
1184
1182
  // src/providers/transaction-request/input.ts
1185
1183
  var import_abi_coder = require("@fuel-ts/abi-coder");
1186
- var import_configs2 = require("@fuel-ts/address/configs");
1184
+ var import_configs = require("@fuel-ts/address/configs");
1187
1185
  var import_errors3 = require("@fuel-ts/errors");
1188
1186
  var import_math2 = require("@fuel-ts/math");
1189
1187
  var import_transactions = require("@fuel-ts/transactions");
@@ -1217,10 +1215,10 @@ var inputify = (value) => {
1217
1215
  case import_transactions.InputType.Contract: {
1218
1216
  return {
1219
1217
  type: import_transactions.InputType.Contract,
1220
- txID: import_configs2.ZeroBytes32,
1218
+ txID: import_configs.ZeroBytes32,
1221
1219
  outputIndex: 0,
1222
- balanceRoot: import_configs2.ZeroBytes32,
1223
- stateRoot: import_configs2.ZeroBytes32,
1220
+ balanceRoot: import_configs.ZeroBytes32,
1221
+ stateRoot: import_configs.ZeroBytes32,
1224
1222
  txPointer: {
1225
1223
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1226
1224
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1258,7 +1256,7 @@ var inputify = (value) => {
1258
1256
  };
1259
1257
 
1260
1258
  // src/providers/transaction-request/output.ts
1261
- var import_configs3 = require("@fuel-ts/address/configs");
1259
+ var import_configs2 = require("@fuel-ts/address/configs");
1262
1260
  var import_errors4 = require("@fuel-ts/errors");
1263
1261
  var import_math3 = require("@fuel-ts/math");
1264
1262
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1278,8 +1276,8 @@ var outputify = (value) => {
1278
1276
  return {
1279
1277
  type: import_transactions2.OutputType.Contract,
1280
1278
  inputIndex: value.inputIndex,
1281
- balanceRoot: import_configs3.ZeroBytes32,
1282
- stateRoot: import_configs3.ZeroBytes32
1279
+ balanceRoot: import_configs2.ZeroBytes32,
1280
+ stateRoot: import_configs2.ZeroBytes32
1283
1281
  };
1284
1282
  }
1285
1283
  case import_transactions2.OutputType.Change: {
@@ -1293,9 +1291,9 @@ var outputify = (value) => {
1293
1291
  case import_transactions2.OutputType.Variable: {
1294
1292
  return {
1295
1293
  type: import_transactions2.OutputType.Variable,
1296
- to: import_configs3.ZeroBytes32,
1294
+ to: import_configs2.ZeroBytes32,
1297
1295
  amount: (0, import_math3.bn)(0),
1298
- assetId: import_configs3.ZeroBytes32
1296
+ assetId: import_configs2.ZeroBytes32
1299
1297
  };
1300
1298
  }
1301
1299
  case import_transactions2.OutputType.ContractCreated: {
@@ -1317,7 +1315,7 @@ var outputify = (value) => {
1317
1315
  // src/providers/transaction-request/transaction-request.ts
1318
1316
  var import_abi_coder2 = require("@fuel-ts/abi-coder");
1319
1317
  var import_address = require("@fuel-ts/address");
1320
- var import_configs7 = require("@fuel-ts/address/configs");
1318
+ var import_configs6 = require("@fuel-ts/address/configs");
1321
1319
  var import_crypto = require("@fuel-ts/crypto");
1322
1320
  var import_math7 = require("@fuel-ts/math");
1323
1321
  var import_transactions6 = require("@fuel-ts/transactions");
@@ -1330,13 +1328,13 @@ var isCoin = (resource) => "id" in resource;
1330
1328
  var isMessage = (resource) => "recipient" in resource;
1331
1329
 
1332
1330
  // src/providers/utils/receipts.ts
1333
- var import_configs4 = require("@fuel-ts/address/configs");
1331
+ var import_configs3 = require("@fuel-ts/address/configs");
1334
1332
  var import_errors5 = require("@fuel-ts/errors");
1335
1333
  var import_math4 = require("@fuel-ts/math");
1336
1334
  var import_transactions3 = require("@fuel-ts/transactions");
1337
- var import_configs5 = require("@fuel-ts/transactions/configs");
1335
+ var import_configs4 = require("@fuel-ts/transactions/configs");
1338
1336
  var import_utils5 = require("@fuel-ts/utils");
1339
- 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;
1340
1338
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1341
1339
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1342
1340
  (memo, receipt) => {
@@ -1353,7 +1351,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1353
1351
  missingOutputContractIds: []
1354
1352
  }
1355
1353
  );
1356
- var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1354
+ var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1357
1355
  function assembleReceiptByType(receipt) {
1358
1356
  const { receiptType } = receipt;
1359
1357
  switch (receiptType) {
@@ -1717,16 +1715,16 @@ function sleep(time) {
1717
1715
  var import_errors7 = require("@fuel-ts/errors");
1718
1716
  var import_math6 = require("@fuel-ts/math");
1719
1717
  var import_transactions5 = require("@fuel-ts/transactions");
1720
- var import_configs6 = require("@fuel-ts/transactions/configs");
1718
+ var import_configs5 = require("@fuel-ts/transactions/configs");
1721
1719
  var assemblePanicError = (status) => {
1722
1720
  let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
1723
1721
  const reason = status.reason;
1724
- if (import_configs6.PANIC_REASONS.includes(status.reason)) {
1722
+ if (import_configs5.PANIC_REASONS.includes(status.reason)) {
1725
1723
  errorMessage = `${errorMessage}
1726
1724
 
1727
1725
  You can read more about this error at:
1728
1726
 
1729
- ${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
1727
+ ${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
1730
1728
  }
1731
1729
  return { errorMessage, reason };
1732
1730
  };
@@ -1738,28 +1736,28 @@ var assembleRevertError = (receipts, logs) => {
1738
1736
  if (revertReceipt) {
1739
1737
  const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
1740
1738
  switch (reasonHex) {
1741
- case import_configs6.FAILED_REQUIRE_SIGNAL: {
1739
+ case import_configs5.FAILED_REQUIRE_SIGNAL: {
1742
1740
  reason = "require";
1743
1741
  errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
1744
1742
  break;
1745
1743
  }
1746
- case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
1744
+ case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
1747
1745
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1748
1746
  reason = "assert_eq";
1749
1747
  errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
1750
1748
  break;
1751
1749
  }
1752
- case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
1750
+ case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
1753
1751
  const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
1754
1752
  reason = "assert_ne";
1755
1753
  errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
1756
1754
  break;
1757
1755
  }
1758
- case import_configs6.FAILED_ASSERT_SIGNAL:
1756
+ case import_configs5.FAILED_ASSERT_SIGNAL:
1759
1757
  reason = "assert";
1760
1758
  errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
1761
1759
  break;
1762
- case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1760
+ case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
1763
1761
  reason = "MissingOutputChange";
1764
1762
  errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
1765
1763
  break;
@@ -1833,6 +1831,8 @@ var BaseTransactionRequest = class {
1833
1831
  outputs = [];
1834
1832
  /** List of witnesses */
1835
1833
  witnesses = [];
1834
+ /** Base asset ID - should be fetched from the chain */
1835
+ baseAssetId;
1836
1836
  /**
1837
1837
  * Constructor for initializing a base transaction request.
1838
1838
  *
@@ -1845,8 +1845,9 @@ var BaseTransactionRequest = class {
1845
1845
  witnessLimit,
1846
1846
  inputs,
1847
1847
  outputs,
1848
- witnesses
1849
- } = {}) {
1848
+ witnesses,
1849
+ baseAssetId
1850
+ }) {
1850
1851
  this.gasPrice = (0, import_math7.bn)(gasPrice);
1851
1852
  this.maturity = maturity ?? 0;
1852
1853
  this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
@@ -1854,6 +1855,7 @@ var BaseTransactionRequest = class {
1854
1855
  this.inputs = inputs ?? [];
1855
1856
  this.outputs = outputs ?? [];
1856
1857
  this.witnesses = witnesses ?? [];
1858
+ this.baseAssetId = baseAssetId;
1857
1859
  }
1858
1860
  static getPolicyMeta(req) {
1859
1861
  let policyTypes = 0;
@@ -1946,7 +1948,7 @@ var BaseTransactionRequest = class {
1946
1948
  * @returns The index of the created witness.
1947
1949
  */
1948
1950
  addEmptyWitness() {
1949
- 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]));
1950
1952
  return this.witnesses.length - 1;
1951
1953
  }
1952
1954
  /**
@@ -2077,11 +2079,9 @@ var BaseTransactionRequest = class {
2077
2079
  *
2078
2080
  * @param message - Message resource.
2079
2081
  * @param predicate - Predicate bytes.
2080
- * @param predicateData - Predicate data bytes.
2081
2082
  */
2082
2083
  addMessageInput(message, predicate) {
2083
2084
  const { recipient, sender, amount } = message;
2084
- const assetId = import_configs7.BaseAssetId;
2085
2085
  let witnessIndex;
2086
2086
  if (predicate) {
2087
2087
  witnessIndex = 0;
@@ -2101,7 +2101,7 @@ var BaseTransactionRequest = class {
2101
2101
  predicate: predicate?.bytes
2102
2102
  };
2103
2103
  this.pushInput(input);
2104
- this.addChangeOutput(recipient, assetId);
2104
+ this.addChangeOutput(recipient, this.baseAssetId);
2105
2105
  }
2106
2106
  /**
2107
2107
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -2162,12 +2162,12 @@ var BaseTransactionRequest = class {
2162
2162
  * @param amount - Amount of coin.
2163
2163
  * @param assetId - Asset ID of coin.
2164
2164
  */
2165
- addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
2165
+ addCoinOutput(to, amount, assetId) {
2166
2166
  this.pushOutput({
2167
2167
  type: import_transactions6.OutputType.Coin,
2168
2168
  to: (0, import_address.addressify)(to).toB256(),
2169
2169
  amount,
2170
- assetId
2170
+ assetId: assetId ?? this.baseAssetId
2171
2171
  });
2172
2172
  return this;
2173
2173
  }
@@ -2194,7 +2194,7 @@ var BaseTransactionRequest = class {
2194
2194
  * @param to - Address of the owner.
2195
2195
  * @param assetId - Asset ID of coin.
2196
2196
  */
2197
- addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
2197
+ addChangeOutput(to, assetId) {
2198
2198
  const changeOutput = this.getChangeOutputs().find(
2199
2199
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
2200
2200
  );
@@ -2202,7 +2202,7 @@ var BaseTransactionRequest = class {
2202
2202
  this.pushOutput({
2203
2203
  type: import_transactions6.OutputType.Change,
2204
2204
  to: (0, import_address.addressify)(to).toB256(),
2205
- assetId
2205
+ assetId: assetId ?? this.baseAssetId
2206
2206
  });
2207
2207
  }
2208
2208
  }
@@ -2278,7 +2278,7 @@ var BaseTransactionRequest = class {
2278
2278
  ]);
2279
2279
  }
2280
2280
  };
2281
- updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
2281
+ updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
2282
2282
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2283
2283
  }
2284
2284
  /**
@@ -2328,13 +2328,13 @@ var BaseTransactionRequest = class {
2328
2328
  };
2329
2329
 
2330
2330
  // src/providers/transaction-request/create-transaction-request.ts
2331
- var import_configs9 = require("@fuel-ts/address/configs");
2331
+ var import_configs8 = require("@fuel-ts/address/configs");
2332
2332
  var import_math9 = require("@fuel-ts/math");
2333
2333
  var import_transactions8 = require("@fuel-ts/transactions");
2334
2334
  var import_utils13 = require("@fuel-ts/utils");
2335
2335
 
2336
2336
  // src/providers/transaction-request/hash-transaction.ts
2337
- var import_configs8 = require("@fuel-ts/address/configs");
2337
+ var import_configs7 = require("@fuel-ts/address/configs");
2338
2338
  var import_hasher = require("@fuel-ts/hasher");
2339
2339
  var import_math8 = require("@fuel-ts/math");
2340
2340
  var import_transactions7 = require("@fuel-ts/transactions");
@@ -2343,7 +2343,7 @@ var import_ramda2 = require("ramda");
2343
2343
  function hashTransaction(transactionRequest, chainId) {
2344
2344
  const transaction = transactionRequest.toTransaction();
2345
2345
  if (transaction.type === import_transactions7.TransactionType.Script) {
2346
- transaction.receiptsRoot = import_configs8.ZeroBytes32;
2346
+ transaction.receiptsRoot = import_configs7.ZeroBytes32;
2347
2347
  }
2348
2348
  transaction.inputs = transaction.inputs.map((input) => {
2349
2349
  const inputClone = (0, import_ramda2.clone)(input);
@@ -2365,10 +2365,10 @@ function hashTransaction(transactionRequest, chainId) {
2365
2365
  blockHeight: 0,
2366
2366
  txIndex: 0
2367
2367
  };
2368
- inputClone.txID = import_configs8.ZeroBytes32;
2368
+ inputClone.txID = import_configs7.ZeroBytes32;
2369
2369
  inputClone.outputIndex = 0;
2370
- inputClone.balanceRoot = import_configs8.ZeroBytes32;
2371
- inputClone.stateRoot = import_configs8.ZeroBytes32;
2370
+ inputClone.balanceRoot = import_configs7.ZeroBytes32;
2371
+ inputClone.stateRoot = import_configs7.ZeroBytes32;
2372
2372
  return inputClone;
2373
2373
  }
2374
2374
  default:
@@ -2379,8 +2379,8 @@ function hashTransaction(transactionRequest, chainId) {
2379
2379
  const outputClone = (0, import_ramda2.clone)(output);
2380
2380
  switch (outputClone.type) {
2381
2381
  case import_transactions7.OutputType.Contract: {
2382
- outputClone.balanceRoot = import_configs8.ZeroBytes32;
2383
- outputClone.stateRoot = import_configs8.ZeroBytes32;
2382
+ outputClone.balanceRoot = import_configs7.ZeroBytes32;
2383
+ outputClone.stateRoot = import_configs7.ZeroBytes32;
2384
2384
  return outputClone;
2385
2385
  }
2386
2386
  case import_transactions7.OutputType.Change: {
@@ -2388,9 +2388,9 @@ function hashTransaction(transactionRequest, chainId) {
2388
2388
  return outputClone;
2389
2389
  }
2390
2390
  case import_transactions7.OutputType.Variable: {
2391
- outputClone.to = import_configs8.ZeroBytes32;
2391
+ outputClone.to = import_configs7.ZeroBytes32;
2392
2392
  outputClone.amount = (0, import_math8.bn)(0);
2393
- outputClone.assetId = import_configs8.ZeroBytes32;
2393
+ outputClone.assetId = import_configs7.ZeroBytes32;
2394
2394
  return outputClone;
2395
2395
  }
2396
2396
  default:
@@ -2448,15 +2448,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2448
2448
  *
2449
2449
  * @param createTransactionRequestLike - The initial values for the instance
2450
2450
  */
2451
- constructor({
2452
- bytecodeWitnessIndex,
2453
- salt,
2454
- storageSlots,
2455
- ...rest
2456
- } = {}) {
2451
+ constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
2457
2452
  super(rest);
2458
2453
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2459
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
2454
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2460
2455
  this.storageSlots = [...storageSlots ?? []];
2461
2456
  }
2462
2457
  /**
@@ -2474,7 +2469,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2474
2469
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2475
2470
  bytecodeWitnessIndex,
2476
2471
  storageSlotsCount: storageSlots.length,
2477
- 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,
2478
2473
  storageSlots
2479
2474
  };
2480
2475
  }
@@ -2524,7 +2519,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2524
2519
  // src/providers/transaction-request/script-transaction-request.ts
2525
2520
  var import_abi_coder3 = require("@fuel-ts/abi-coder");
2526
2521
  var import_address2 = require("@fuel-ts/address");
2527
- var import_configs10 = require("@fuel-ts/address/configs");
2522
+ var import_configs9 = require("@fuel-ts/address/configs");
2528
2523
  var import_math10 = require("@fuel-ts/math");
2529
2524
  var import_transactions9 = require("@fuel-ts/transactions");
2530
2525
  var import_utils15 = require("@fuel-ts/utils");
@@ -2577,7 +2572,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2577
2572
  *
2578
2573
  * @param scriptTransactionRequestLike - The initial values for the instance.
2579
2574
  */
2580
- constructor({ script, scriptData, gasLimit, ...rest } = {}) {
2575
+ constructor({ script, scriptData, gasLimit, ...rest }) {
2581
2576
  super(rest);
2582
2577
  this.gasLimit = (0, import_math10.bn)(gasLimit);
2583
2578
  this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
@@ -2598,7 +2593,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2598
2593
  ...super.getBaseTransaction(),
2599
2594
  scriptLength: script.length,
2600
2595
  scriptDataLength: scriptData.length,
2601
- receiptsRoot: import_configs10.ZeroBytes32,
2596
+ receiptsRoot: import_configs9.ZeroBytes32,
2602
2597
  script: (0, import_utils15.hexlify)(script),
2603
2598
  scriptData: (0, import_utils15.hexlify)(scriptData)
2604
2599
  };
@@ -2830,7 +2825,7 @@ var calculateTransactionFee = (params) => {
2830
2825
  };
2831
2826
 
2832
2827
  // src/providers/transaction-summary/operations.ts
2833
- var import_configs11 = require("@fuel-ts/address/configs");
2828
+ var import_configs10 = require("@fuel-ts/address/configs");
2834
2829
  var import_errors11 = require("@fuel-ts/errors");
2835
2830
  var import_math13 = require("@fuel-ts/math");
2836
2831
  var import_transactions14 = require("@fuel-ts/transactions");
@@ -3175,7 +3170,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
3175
3170
  const { to: toAddress, assetId, amount } = receipt;
3176
3171
  let { from: fromAddress } = receipt;
3177
3172
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
3178
- if (import_configs11.ZeroBytes32 === fromAddress) {
3173
+ if (import_configs10.ZeroBytes32 === fromAddress) {
3179
3174
  const change = changeOutputs.find((output) => output.assetId === assetId);
3180
3175
  fromAddress = change?.to || fromAddress;
3181
3176
  }
@@ -3752,6 +3747,7 @@ var processGqlChain = (chain) => {
3752
3747
  gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
3753
3748
  maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
3754
3749
  chainId: (0, import_math15.bn)(consensusParameters.chainId),
3750
+ baseAssetId: consensusParameters.baseAssetId,
3755
3751
  gasCosts
3756
3752
  },
3757
3753
  gasCosts,
@@ -3994,6 +3990,17 @@ var _Provider = class {
3994
3990
  } = this.getChain();
3995
3991
  return chainId.toNumber();
3996
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
+ }
3997
4004
  /**
3998
4005
  * Submits a transaction to the chain to be executed.
3999
4006
  *
@@ -5057,8 +5064,9 @@ var Account = class extends import_interfaces.AbstractAccount {
5057
5064
  * @param assetId - The asset ID to check the balance for.
5058
5065
  * @returns A promise that resolves to the balance amount.
5059
5066
  */
5060
- async getBalance(assetId = import_configs12.BaseAssetId) {
5061
- 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);
5062
5070
  return amount;
5063
5071
  }
5064
5072
  /**
@@ -5096,9 +5104,10 @@ var Account = class extends import_interfaces.AbstractAccount {
5096
5104
  * @returns A promise that resolves when the resources are added to the transaction.
5097
5105
  */
5098
5106
  async fund(request, coinQuantities, fee) {
5107
+ const baseAssetId = this.provider.getBaseAssetId();
5099
5108
  const updatedQuantities = addAmountToAsset({
5100
5109
  amount: (0, import_math18.bn)(fee),
5101
- assetId: import_configs12.BaseAssetId,
5110
+ assetId: baseAssetId,
5102
5111
  coinQuantities
5103
5112
  });
5104
5113
  const quantitiesDict = {};
@@ -5122,8 +5131,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5122
5131
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
5123
5132
  cachedUtxos.push(input.id);
5124
5133
  }
5125
- } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
5126
- 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);
5127
5136
  cachedMessages.push(input.nonce);
5128
5137
  }
5129
5138
  }
@@ -5155,11 +5164,13 @@ var Account = class extends import_interfaces.AbstractAccount {
5155
5164
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5156
5165
  * @returns A promise that resolves to the prepared transaction request.
5157
5166
  */
5158
- async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5167
+ async createTransfer(destination, amount, assetId, txParams = {}) {
5159
5168
  const { minGasPrice } = this.provider.getGasConfig();
5160
- 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 };
5161
5172
  const request = new ScriptTransactionRequest(params);
5162
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
5173
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
5163
5174
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
5164
5175
  estimateTxDependencies: true,
5165
5176
  resourcesOwner: this
@@ -5185,14 +5196,15 @@ var Account = class extends import_interfaces.AbstractAccount {
5185
5196
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5186
5197
  * @returns A promise that resolves to the transaction response.
5187
5198
  */
5188
- async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5199
+ async transfer(destination, amount, assetId, txParams = {}) {
5189
5200
  if ((0, import_math18.bn)(amount).lte(0)) {
5190
5201
  throw new import_errors16.FuelError(
5191
5202
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
5192
5203
  "Transfer amount must be a positive number."
5193
5204
  );
5194
5205
  }
5195
- 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);
5196
5208
  return this.sendTransaction(request, { estimateTxDependencies: false });
5197
5209
  }
5198
5210
  /**
@@ -5204,7 +5216,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5204
5216
  * @param txParams - The optional transaction parameters.
5205
5217
  * @returns A promise that resolves to the transaction response.
5206
5218
  */
5207
- async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
5219
+ async transferToContract(contractId, amount, assetId, txParams = {}) {
5208
5220
  if ((0, import_math18.bn)(amount).lte(0)) {
5209
5221
  throw new import_errors16.FuelError(
5210
5222
  import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -5213,11 +5225,13 @@ var Account = class extends import_interfaces.AbstractAccount {
5213
5225
  }
5214
5226
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
5215
5227
  const { minGasPrice } = this.provider.getGasConfig();
5216
- 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 };
5217
5231
  const { script, scriptData } = await assembleTransferToContractScript({
5218
5232
  hexlifiedContractId: contractAddress.toB256(),
5219
5233
  amountToTransfer: (0, import_math18.bn)(amount),
5220
- assetId
5234
+ assetId: assetIdToTransfer
5221
5235
  });
5222
5236
  const request = new ScriptTransactionRequest({
5223
5237
  ...params,
@@ -5227,7 +5241,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5227
5241
  request.addContractInputAndOutput(contractAddress);
5228
5242
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
5229
5243
  request,
5230
- [{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
5244
+ [{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
5231
5245
  );
5232
5246
  request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
5233
5247
  this.validateGas({
@@ -5249,6 +5263,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5249
5263
  */
5250
5264
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
5251
5265
  const { minGasPrice } = this.provider.getGasConfig();
5266
+ const baseAssetId = this.provider.getBaseAssetId();
5252
5267
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
5253
5268
  const recipientDataArray = (0, import_utils28.arrayify)(
5254
5269
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -5261,9 +5276,14 @@ var Account = class extends import_interfaces.AbstractAccount {
5261
5276
  ...recipientDataArray,
5262
5277
  ...amountDataArray
5263
5278
  ]);
5264
- const params = { script, gasPrice: minGasPrice, ...txParams };
5279
+ const params = {
5280
+ script,
5281
+ gasPrice: minGasPrice,
5282
+ baseAssetId,
5283
+ ...txParams
5284
+ };
5265
5285
  const request = new ScriptTransactionRequest(params);
5266
- const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
5286
+ const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
5267
5287
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
5268
5288
  request,
5269
5289
  forwardingQuantities
@@ -8826,7 +8846,6 @@ var StorageAbstract = class {
8826
8846
  // src/predicate/predicate.ts
8827
8847
  var import_abi_coder7 = require("@fuel-ts/abi-coder");
8828
8848
  var import_address10 = require("@fuel-ts/address");
8829
- var import_configs13 = require("@fuel-ts/address/configs");
8830
8849
  var import_errors25 = require("@fuel-ts/errors");
8831
8850
  var import_transactions20 = require("@fuel-ts/transactions");
8832
8851
  var import_utils37 = require("@fuel-ts/utils");
@@ -8904,8 +8923,9 @@ var Predicate = class extends Account {
8904
8923
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
8905
8924
  * @returns A promise that resolves to the prepared transaction request.
8906
8925
  */
8907
- async createTransfer(destination, amount, assetId = import_configs13.BaseAssetId, txParams = {}) {
8908
- 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);
8909
8929
  return this.populateTransactionPredicateData(request);
8910
8930
  }
8911
8931
  /**