@fuel-ts/account 0.0.0-rc-1832-20240403171523 → 0.0.0-rc-1976-20240403225009

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
@@ -181,14 +181,12 @@ module.exports = __toCommonJS(src_exports);
181
181
 
182
182
  // src/account.ts
183
183
  var import_address4 = require("@fuel-ts/address");
184
- var import_configs11 = require("@fuel-ts/address/configs");
185
184
  var import_errors15 = require("@fuel-ts/errors");
186
185
  var import_interfaces = require("@fuel-ts/interfaces");
187
186
  var import_math17 = require("@fuel-ts/math");
188
187
  var import_utils27 = require("@fuel-ts/utils");
189
188
 
190
189
  // src/providers/coin-quantity.ts
191
- var import_configs = require("@fuel-ts/address/configs");
192
190
  var import_math = require("@fuel-ts/math");
193
191
  var import_utils = require("@fuel-ts/utils");
194
192
  var coinQuantityfy = (coinQuantityLike) => {
@@ -197,11 +195,11 @@ var coinQuantityfy = (coinQuantityLike) => {
197
195
  let max2;
198
196
  if (Array.isArray(coinQuantityLike)) {
199
197
  amount = coinQuantityLike[0];
200
- assetId = coinQuantityLike[1] ?? import_configs.BaseAssetId;
201
- max2 = coinQuantityLike[2] ?? void 0;
198
+ assetId = coinQuantityLike[1];
199
+ max2 = coinQuantityLike[2];
202
200
  } else {
203
201
  amount = coinQuantityLike.amount;
204
- assetId = coinQuantityLike.assetId ?? import_configs.BaseAssetId;
202
+ assetId = coinQuantityLike.assetId;
205
203
  max2 = coinQuantityLike.max ?? void 0;
206
204
  }
207
205
  const bnAmount = (0, import_math.bn)(amount);
@@ -1170,7 +1168,7 @@ var MemoryCache = class {
1170
1168
  };
1171
1169
 
1172
1170
  // src/providers/transaction-request/input.ts
1173
- var import_configs2 = require("@fuel-ts/address/configs");
1171
+ var import_configs = require("@fuel-ts/address/configs");
1174
1172
  var import_errors3 = require("@fuel-ts/errors");
1175
1173
  var import_math2 = require("@fuel-ts/math");
1176
1174
  var import_transactions = require("@fuel-ts/transactions");
@@ -1204,10 +1202,10 @@ var inputify = (value) => {
1204
1202
  case import_transactions.InputType.Contract: {
1205
1203
  return {
1206
1204
  type: import_transactions.InputType.Contract,
1207
- txID: import_configs2.ZeroBytes32,
1205
+ txID: import_configs.ZeroBytes32,
1208
1206
  outputIndex: 0,
1209
- balanceRoot: import_configs2.ZeroBytes32,
1210
- stateRoot: import_configs2.ZeroBytes32,
1207
+ balanceRoot: import_configs.ZeroBytes32,
1208
+ stateRoot: import_configs.ZeroBytes32,
1211
1209
  txPointer: {
1212
1210
  blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
1213
1211
  txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
@@ -1245,7 +1243,7 @@ var inputify = (value) => {
1245
1243
  };
1246
1244
 
1247
1245
  // src/providers/transaction-request/output.ts
1248
- var import_configs3 = require("@fuel-ts/address/configs");
1246
+ var import_configs2 = require("@fuel-ts/address/configs");
1249
1247
  var import_errors4 = require("@fuel-ts/errors");
1250
1248
  var import_math3 = require("@fuel-ts/math");
1251
1249
  var import_transactions2 = require("@fuel-ts/transactions");
@@ -1265,8 +1263,8 @@ var outputify = (value) => {
1265
1263
  return {
1266
1264
  type: import_transactions2.OutputType.Contract,
1267
1265
  inputIndex: value.inputIndex,
1268
- balanceRoot: import_configs3.ZeroBytes32,
1269
- stateRoot: import_configs3.ZeroBytes32
1266
+ balanceRoot: import_configs2.ZeroBytes32,
1267
+ stateRoot: import_configs2.ZeroBytes32
1270
1268
  };
1271
1269
  }
1272
1270
  case import_transactions2.OutputType.Change: {
@@ -1280,9 +1278,9 @@ var outputify = (value) => {
1280
1278
  case import_transactions2.OutputType.Variable: {
1281
1279
  return {
1282
1280
  type: import_transactions2.OutputType.Variable,
1283
- to: import_configs3.ZeroBytes32,
1281
+ to: import_configs2.ZeroBytes32,
1284
1282
  amount: (0, import_math3.bn)(0),
1285
- assetId: import_configs3.ZeroBytes32
1283
+ assetId: import_configs2.ZeroBytes32
1286
1284
  };
1287
1285
  }
1288
1286
  case import_transactions2.OutputType.ContractCreated: {
@@ -1303,7 +1301,7 @@ var outputify = (value) => {
1303
1301
 
1304
1302
  // src/providers/transaction-request/transaction-request.ts
1305
1303
  var import_address = require("@fuel-ts/address");
1306
- var import_configs6 = require("@fuel-ts/address/configs");
1304
+ var import_configs5 = require("@fuel-ts/address/configs");
1307
1305
  var import_math6 = require("@fuel-ts/math");
1308
1306
  var import_transactions5 = require("@fuel-ts/transactions");
1309
1307
  var import_utils9 = require("@fuel-ts/utils");
@@ -1315,13 +1313,13 @@ var isCoin = (resource) => "id" in resource;
1315
1313
  var isMessage = (resource) => "recipient" in resource;
1316
1314
 
1317
1315
  // src/providers/utils/receipts.ts
1318
- var import_configs4 = require("@fuel-ts/address/configs");
1316
+ var import_configs3 = require("@fuel-ts/address/configs");
1319
1317
  var import_errors5 = require("@fuel-ts/errors");
1320
1318
  var import_math4 = require("@fuel-ts/math");
1321
1319
  var import_transactions3 = require("@fuel-ts/transactions");
1322
- var import_configs5 = require("@fuel-ts/transactions/configs");
1320
+ var import_configs4 = require("@fuel-ts/transactions/configs");
1323
1321
  var import_utils5 = require("@fuel-ts/utils");
1324
- var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1322
+ var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
1325
1323
  var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
1326
1324
  var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1327
1325
  (memo, receipt) => {
@@ -1338,7 +1336,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
1338
1336
  missingOutputContractIds: []
1339
1337
  }
1340
1338
  );
1341
- var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
1339
+ var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
1342
1340
  function assembleReceiptByType(receipt) {
1343
1341
  const { receiptType } = receipt;
1344
1342
  switch (receiptType) {
@@ -1746,6 +1744,8 @@ var BaseTransactionRequest = class {
1746
1744
  outputs = [];
1747
1745
  /** List of witnesses */
1748
1746
  witnesses = [];
1747
+ /** Base asset ID - should be fetched from the chain */
1748
+ baseAssetId = import_configs5.ZeroBytes32;
1749
1749
  /**
1750
1750
  * Constructor for initializing a base transaction request.
1751
1751
  *
@@ -1758,7 +1758,8 @@ var BaseTransactionRequest = class {
1758
1758
  witnessLimit,
1759
1759
  inputs,
1760
1760
  outputs,
1761
- witnesses
1761
+ witnesses,
1762
+ baseAssetId
1762
1763
  } = {}) {
1763
1764
  this.gasPrice = (0, import_math6.bn)(gasPrice);
1764
1765
  this.maturity = maturity ?? 0;
@@ -1767,6 +1768,7 @@ var BaseTransactionRequest = class {
1767
1768
  this.inputs = inputs ?? [];
1768
1769
  this.outputs = outputs ?? [];
1769
1770
  this.witnesses = witnesses ?? [];
1771
+ this.baseAssetId = baseAssetId ?? import_configs5.ZeroBytes32;
1770
1772
  }
1771
1773
  static getPolicyMeta(req) {
1772
1774
  let policyTypes = 0;
@@ -1859,7 +1861,7 @@ var BaseTransactionRequest = class {
1859
1861
  * @returns The index of the created witness.
1860
1862
  */
1861
1863
  addEmptyWitness() {
1862
- this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
1864
+ this.addWitness((0, import_utils9.concat)([import_configs5.ZeroBytes32, import_configs5.ZeroBytes32]));
1863
1865
  return this.witnesses.length - 1;
1864
1866
  }
1865
1867
  /**
@@ -1991,11 +1993,9 @@ var BaseTransactionRequest = class {
1991
1993
  *
1992
1994
  * @param message - Message resource.
1993
1995
  * @param predicate - Predicate bytes.
1994
- * @param predicateData - Predicate data bytes.
1995
1996
  */
1996
1997
  addMessageInput(message, predicate) {
1997
1998
  const { recipient, sender, amount } = message;
1998
- const assetId = import_configs6.BaseAssetId;
1999
1999
  let witnessIndex;
2000
2000
  if (predicate) {
2001
2001
  witnessIndex = 0;
@@ -2016,7 +2016,7 @@ var BaseTransactionRequest = class {
2016
2016
  predicateData: predicate?.predicateDataBytes
2017
2017
  };
2018
2018
  this.pushInput(input);
2019
- this.addChangeOutput(recipient, assetId);
2019
+ this.addChangeOutput(recipient, this.baseAssetId);
2020
2020
  }
2021
2021
  /**
2022
2022
  * Adds a single resource to the transaction by adding a coin/message input and a
@@ -2077,12 +2077,12 @@ var BaseTransactionRequest = class {
2077
2077
  * @param amount - Amount of coin.
2078
2078
  * @param assetId - Asset ID of coin.
2079
2079
  */
2080
- addCoinOutput(to, amount, assetId = import_configs6.BaseAssetId) {
2080
+ addCoinOutput(to, amount, assetId) {
2081
2081
  this.pushOutput({
2082
2082
  type: import_transactions5.OutputType.Coin,
2083
2083
  to: (0, import_address.addressify)(to).toB256(),
2084
2084
  amount,
2085
- assetId
2085
+ assetId: assetId ?? this.baseAssetId
2086
2086
  });
2087
2087
  return this;
2088
2088
  }
@@ -2109,7 +2109,7 @@ var BaseTransactionRequest = class {
2109
2109
  * @param to - Address of the owner.
2110
2110
  * @param assetId - Asset ID of coin.
2111
2111
  */
2112
- addChangeOutput(to, assetId = import_configs6.BaseAssetId) {
2112
+ addChangeOutput(to, assetId) {
2113
2113
  const changeOutput = this.getChangeOutputs().find(
2114
2114
  (output) => (0, import_utils9.hexlify)(output.assetId) === assetId
2115
2115
  );
@@ -2117,7 +2117,7 @@ var BaseTransactionRequest = class {
2117
2117
  this.pushOutput({
2118
2118
  type: import_transactions5.OutputType.Change,
2119
2119
  to: (0, import_address.addressify)(to).toB256(),
2120
- assetId
2120
+ assetId: assetId ?? this.baseAssetId
2121
2121
  });
2122
2122
  }
2123
2123
  }
@@ -2171,7 +2171,7 @@ var BaseTransactionRequest = class {
2171
2171
  let idCounter = 0;
2172
2172
  const generateId = () => {
2173
2173
  const counterString = String(idCounter++);
2174
- const id = import_configs6.ZeroBytes32.slice(0, -counterString.length).concat(counterString);
2174
+ const id = import_configs5.ZeroBytes32.slice(0, -counterString.length).concat(counterString);
2175
2175
  return id;
2176
2176
  };
2177
2177
  const findAssetInput = (assetId) => this.inputs.find((input) => {
@@ -2199,7 +2199,7 @@ var BaseTransactionRequest = class {
2199
2199
  ]);
2200
2200
  }
2201
2201
  };
2202
- updateAssetInput(import_configs6.BaseAssetId, (0, import_math6.bn)(1e11));
2202
+ updateAssetInput(this.baseAssetId, (0, import_math6.bn)(1e11));
2203
2203
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
2204
2204
  }
2205
2205
  /**
@@ -2249,13 +2249,13 @@ var BaseTransactionRequest = class {
2249
2249
  };
2250
2250
 
2251
2251
  // src/providers/transaction-request/create-transaction-request.ts
2252
- var import_configs8 = require("@fuel-ts/address/configs");
2252
+ var import_configs7 = require("@fuel-ts/address/configs");
2253
2253
  var import_math8 = require("@fuel-ts/math");
2254
2254
  var import_transactions7 = require("@fuel-ts/transactions");
2255
2255
  var import_utils13 = require("@fuel-ts/utils");
2256
2256
 
2257
2257
  // src/providers/transaction-request/hash-transaction.ts
2258
- var import_configs7 = require("@fuel-ts/address/configs");
2258
+ var import_configs6 = require("@fuel-ts/address/configs");
2259
2259
  var import_hasher = require("@fuel-ts/hasher");
2260
2260
  var import_math7 = require("@fuel-ts/math");
2261
2261
  var import_transactions6 = require("@fuel-ts/transactions");
@@ -2264,7 +2264,7 @@ var import_ramda2 = require("ramda");
2264
2264
  function hashTransaction(transactionRequest, chainId) {
2265
2265
  const transaction = transactionRequest.toTransaction();
2266
2266
  if (transaction.type === import_transactions6.TransactionType.Script) {
2267
- transaction.receiptsRoot = import_configs7.ZeroBytes32;
2267
+ transaction.receiptsRoot = import_configs6.ZeroBytes32;
2268
2268
  }
2269
2269
  transaction.inputs = transaction.inputs.map((input) => {
2270
2270
  const inputClone = (0, import_ramda2.clone)(input);
@@ -2286,10 +2286,10 @@ function hashTransaction(transactionRequest, chainId) {
2286
2286
  blockHeight: 0,
2287
2287
  txIndex: 0
2288
2288
  };
2289
- inputClone.txID = import_configs7.ZeroBytes32;
2289
+ inputClone.txID = import_configs6.ZeroBytes32;
2290
2290
  inputClone.outputIndex = 0;
2291
- inputClone.balanceRoot = import_configs7.ZeroBytes32;
2292
- inputClone.stateRoot = import_configs7.ZeroBytes32;
2291
+ inputClone.balanceRoot = import_configs6.ZeroBytes32;
2292
+ inputClone.stateRoot = import_configs6.ZeroBytes32;
2293
2293
  return inputClone;
2294
2294
  }
2295
2295
  default:
@@ -2300,8 +2300,8 @@ function hashTransaction(transactionRequest, chainId) {
2300
2300
  const outputClone = (0, import_ramda2.clone)(output);
2301
2301
  switch (outputClone.type) {
2302
2302
  case import_transactions6.OutputType.Contract: {
2303
- outputClone.balanceRoot = import_configs7.ZeroBytes32;
2304
- outputClone.stateRoot = import_configs7.ZeroBytes32;
2303
+ outputClone.balanceRoot = import_configs6.ZeroBytes32;
2304
+ outputClone.stateRoot = import_configs6.ZeroBytes32;
2305
2305
  return outputClone;
2306
2306
  }
2307
2307
  case import_transactions6.OutputType.Change: {
@@ -2309,9 +2309,9 @@ function hashTransaction(transactionRequest, chainId) {
2309
2309
  return outputClone;
2310
2310
  }
2311
2311
  case import_transactions6.OutputType.Variable: {
2312
- outputClone.to = import_configs7.ZeroBytes32;
2312
+ outputClone.to = import_configs6.ZeroBytes32;
2313
2313
  outputClone.amount = (0, import_math7.bn)(0);
2314
- outputClone.assetId = import_configs7.ZeroBytes32;
2314
+ outputClone.assetId = import_configs6.ZeroBytes32;
2315
2315
  return outputClone;
2316
2316
  }
2317
2317
  default:
@@ -2377,7 +2377,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2377
2377
  } = {}) {
2378
2378
  super(rest);
2379
2379
  this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
2380
- this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
2380
+ this.salt = (0, import_utils13.hexlify)(salt ?? import_configs7.ZeroBytes32);
2381
2381
  this.storageSlots = [...storageSlots ?? []];
2382
2382
  }
2383
2383
  /**
@@ -2395,7 +2395,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2395
2395
  bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
2396
2396
  bytecodeWitnessIndex,
2397
2397
  storageSlotsCount: storageSlots.length,
2398
- salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
2398
+ salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs7.ZeroBytes32,
2399
2399
  storageSlots
2400
2400
  };
2401
2401
  }
@@ -2445,7 +2445,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
2445
2445
  // src/providers/transaction-request/script-transaction-request.ts
2446
2446
  var import_abi_coder = require("@fuel-ts/abi-coder");
2447
2447
  var import_address2 = require("@fuel-ts/address");
2448
- var import_configs9 = require("@fuel-ts/address/configs");
2448
+ var import_configs8 = require("@fuel-ts/address/configs");
2449
2449
  var import_math9 = require("@fuel-ts/math");
2450
2450
  var import_transactions8 = require("@fuel-ts/transactions");
2451
2451
  var import_utils15 = require("@fuel-ts/utils");
@@ -2519,7 +2519,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
2519
2519
  ...super.getBaseTransaction(),
2520
2520
  scriptLength: script.length,
2521
2521
  scriptDataLength: scriptData.length,
2522
- receiptsRoot: import_configs9.ZeroBytes32,
2522
+ receiptsRoot: import_configs8.ZeroBytes32,
2523
2523
  script: (0, import_utils15.hexlify)(script),
2524
2524
  scriptData: (0, import_utils15.hexlify)(scriptData)
2525
2525
  };
@@ -2751,7 +2751,7 @@ var calculateTransactionFee = (params) => {
2751
2751
  };
2752
2752
 
2753
2753
  // src/providers/transaction-summary/operations.ts
2754
- var import_configs10 = require("@fuel-ts/address/configs");
2754
+ var import_configs9 = require("@fuel-ts/address/configs");
2755
2755
  var import_errors10 = require("@fuel-ts/errors");
2756
2756
  var import_math12 = require("@fuel-ts/math");
2757
2757
  var import_transactions13 = require("@fuel-ts/transactions");
@@ -3096,7 +3096,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
3096
3096
  const { to: toAddress, assetId, amount } = receipt;
3097
3097
  let { from: fromAddress } = receipt;
3098
3098
  const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
3099
- if (import_configs10.ZeroBytes32 === fromAddress) {
3099
+ if (import_configs9.ZeroBytes32 === fromAddress) {
3100
3100
  const change = changeOutputs.find((output) => output.assetId === assetId);
3101
3101
  fromAddress = change?.to || fromAddress;
3102
3102
  }
@@ -3668,6 +3668,7 @@ var processGqlChain = (chain) => {
3668
3668
  gasPerByte: (0, import_math14.bn)(feeParams.gasPerByte),
3669
3669
  maxMessageDataLength: (0, import_math14.bn)(predicateParams.maxMessageDataLength),
3670
3670
  chainId: (0, import_math14.bn)(consensusParameters.chainId),
3671
+ baseAssetId: consensusParameters.baseAssetId,
3671
3672
  gasCosts
3672
3673
  },
3673
3674
  gasCosts,
@@ -3910,6 +3911,17 @@ var _Provider = class {
3910
3911
  } = this.getChain();
3911
3912
  return chainId.toNumber();
3912
3913
  }
3914
+ /**
3915
+ * Returns the base asset ID
3916
+ *
3917
+ * @returns A promise that resolves to the base asset ID
3918
+ */
3919
+ getBaseAssetId() {
3920
+ const {
3921
+ consensusParameters: { baseAssetId }
3922
+ } = this.getChain();
3923
+ return baseAssetId;
3924
+ }
3913
3925
  /**
3914
3926
  * Submits a transaction to the chain to be executed.
3915
3927
  *
@@ -4946,8 +4958,9 @@ var Account = class extends import_interfaces.AbstractAccount {
4946
4958
  * @param assetId - The asset ID to check the balance for.
4947
4959
  * @returns A promise that resolves to the balance amount.
4948
4960
  */
4949
- async getBalance(assetId = import_configs11.BaseAssetId) {
4950
- const amount = await this.provider.getBalance(this.address, assetId);
4961
+ async getBalance(assetId) {
4962
+ const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
4963
+ const amount = await this.provider.getBalance(this.address, assetIdToFetch);
4951
4964
  return amount;
4952
4965
  }
4953
4966
  /**
@@ -4985,9 +4998,10 @@ var Account = class extends import_interfaces.AbstractAccount {
4985
4998
  * @returns A promise that resolves when the resources are added to the transaction.
4986
4999
  */
4987
5000
  async fund(request, coinQuantities, fee) {
5001
+ const baseAssetId = this.provider.getBaseAssetId();
4988
5002
  const updatedQuantities = addAmountToAsset({
4989
5003
  amount: (0, import_math17.bn)(fee),
4990
- assetId: import_configs11.BaseAssetId,
5004
+ assetId: baseAssetId,
4991
5005
  coinQuantities
4992
5006
  });
4993
5007
  const quantitiesDict = {};
@@ -5011,8 +5025,8 @@ var Account = class extends import_interfaces.AbstractAccount {
5011
5025
  quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
5012
5026
  cachedUtxos.push(input.id);
5013
5027
  }
5014
- } else if (input.recipient === owner && input.amount && quantitiesDict[import_configs11.BaseAssetId]) {
5015
- quantitiesDict[import_configs11.BaseAssetId].owned = quantitiesDict[import_configs11.BaseAssetId].owned.add(input.amount);
5028
+ } else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
5029
+ quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
5016
5030
  cachedMessages.push(input.nonce);
5017
5031
  }
5018
5032
  }
@@ -5044,11 +5058,12 @@ var Account = class extends import_interfaces.AbstractAccount {
5044
5058
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5045
5059
  * @returns A promise that resolves to the prepared transaction request.
5046
5060
  */
5047
- async createTransfer(destination, amount, assetId = import_configs11.BaseAssetId, txParams = {}) {
5061
+ async createTransfer(destination, amount, assetId, txParams = {}) {
5048
5062
  const { minGasPrice } = this.provider.getGasConfig();
5063
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5049
5064
  const params = { gasPrice: minGasPrice, ...txParams };
5050
5065
  const request = new ScriptTransactionRequest(params);
5051
- request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
5066
+ request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
5052
5067
  const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
5053
5068
  estimateTxDependencies: true,
5054
5069
  resourcesOwner: this
@@ -5074,14 +5089,15 @@ var Account = class extends import_interfaces.AbstractAccount {
5074
5089
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
5075
5090
  * @returns A promise that resolves to the transaction response.
5076
5091
  */
5077
- async transfer(destination, amount, assetId = import_configs11.BaseAssetId, txParams = {}) {
5092
+ async transfer(destination, amount, assetId, txParams = {}) {
5078
5093
  if ((0, import_math17.bn)(amount).lte(0)) {
5079
5094
  throw new import_errors15.FuelError(
5080
5095
  import_errors15.ErrorCode.INVALID_TRANSFER_AMOUNT,
5081
5096
  "Transfer amount must be a positive number."
5082
5097
  );
5083
5098
  }
5084
- const request = await this.createTransfer(destination, amount, assetId, txParams);
5099
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5100
+ const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
5085
5101
  return this.sendTransaction(request, { estimateTxDependencies: false });
5086
5102
  }
5087
5103
  /**
@@ -5093,7 +5109,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5093
5109
  * @param txParams - The optional transaction parameters.
5094
5110
  * @returns A promise that resolves to the transaction response.
5095
5111
  */
5096
- async transferToContract(contractId, amount, assetId = import_configs11.BaseAssetId, txParams = {}) {
5112
+ async transferToContract(contractId, amount, assetId, txParams = {}) {
5097
5113
  if ((0, import_math17.bn)(amount).lte(0)) {
5098
5114
  throw new import_errors15.FuelError(
5099
5115
  import_errors15.ErrorCode.INVALID_TRANSFER_AMOUNT,
@@ -5102,11 +5118,12 @@ var Account = class extends import_interfaces.AbstractAccount {
5102
5118
  }
5103
5119
  const contractAddress = import_address4.Address.fromAddressOrString(contractId);
5104
5120
  const { minGasPrice } = this.provider.getGasConfig();
5121
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
5105
5122
  const params = { gasPrice: minGasPrice, ...txParams };
5106
5123
  const { script, scriptData } = await assembleTransferToContractScript({
5107
5124
  hexlifiedContractId: contractAddress.toB256(),
5108
5125
  amountToTransfer: (0, import_math17.bn)(amount),
5109
- assetId
5126
+ assetId: assetIdToTransfer
5110
5127
  });
5111
5128
  const request = new ScriptTransactionRequest({
5112
5129
  ...params,
@@ -5116,7 +5133,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5116
5133
  request.addContractInputAndOutput(contractAddress);
5117
5134
  const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
5118
5135
  request,
5119
- [{ amount: (0, import_math17.bn)(amount), assetId: String(assetId) }]
5136
+ [{ amount: (0, import_math17.bn)(amount), assetId: String(assetIdToTransfer) }]
5120
5137
  );
5121
5138
  request.gasLimit = (0, import_math17.bn)(params.gasLimit ?? gasUsed);
5122
5139
  this.validateGas({
@@ -5138,6 +5155,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5138
5155
  */
5139
5156
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
5140
5157
  const { minGasPrice } = this.provider.getGasConfig();
5158
+ const baseAssetId = this.provider.getBaseAssetId();
5141
5159
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
5142
5160
  const recipientDataArray = (0, import_utils27.arrayify)(
5143
5161
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
@@ -5152,7 +5170,7 @@ var Account = class extends import_interfaces.AbstractAccount {
5152
5170
  ]);
5153
5171
  const params = { script, gasPrice: minGasPrice, ...txParams };
5154
5172
  const request = new ScriptTransactionRequest(params);
5155
- const forwardingQuantities = [{ amount: (0, import_math17.bn)(amount), assetId: import_configs11.BaseAssetId }];
5173
+ const forwardingQuantities = [{ amount: (0, import_math17.bn)(amount), assetId: baseAssetId }];
5156
5174
  const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
5157
5175
  request,
5158
5176
  forwardingQuantities
@@ -8715,7 +8733,6 @@ var StorageAbstract = class {
8715
8733
  // src/predicate/predicate.ts
8716
8734
  var import_abi_coder5 = require("@fuel-ts/abi-coder");
8717
8735
  var import_address10 = require("@fuel-ts/address");
8718
- var import_configs12 = require("@fuel-ts/address/configs");
8719
8736
  var import_errors24 = require("@fuel-ts/errors");
8720
8737
  var import_transactions19 = require("@fuel-ts/transactions");
8721
8738
  var import_utils36 = require("@fuel-ts/utils");
@@ -8794,8 +8811,9 @@ var Predicate = class extends Account {
8794
8811
  * @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
8795
8812
  * @returns A promise that resolves to the prepared transaction request.
8796
8813
  */
8797
- async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
8798
- const request = await super.createTransfer(destination, amount, assetId, txParams);
8814
+ async createTransfer(destination, amount, assetId, txParams = {}) {
8815
+ const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
8816
+ const request = await super.createTransfer(destination, amount, assetIdToTransfer, txParams);
8799
8817
  return this.populateTransactionPredicateData(request);
8800
8818
  }
8801
8819
  /**