@fuel-ts/account 0.0.0-rc-1356-20240322130951 → 0.0.0-rc-1832-20240322144804

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
@@ -171,6 +171,7 @@ __export(src_exports, {
171
171
  resolveGasDependentCosts: () => resolveGasDependentCosts,
172
172
  resolveIconPaths: () => resolveIconPaths,
173
173
  returnZeroScript: () => returnZeroScript,
174
+ sleep: () => sleep,
174
175
  transactionRequestify: () => transactionRequestify,
175
176
  urlJoin: () => urlJoin,
176
177
  withTimeout: () => withTimeout,
@@ -184,7 +185,7 @@ var import_configs11 = require("@fuel-ts/address/configs");
184
185
  var import_errors15 = require("@fuel-ts/errors");
185
186
  var import_interfaces = require("@fuel-ts/interfaces");
186
187
  var import_math17 = require("@fuel-ts/math");
187
- var import_utils28 = require("@fuel-ts/utils");
188
+ var import_utils27 = require("@fuel-ts/utils");
188
189
 
189
190
  // src/providers/coin-quantity.ts
190
191
  var import_configs = require("@fuel-ts/address/configs");
@@ -227,9 +228,9 @@ var import_address3 = require("@fuel-ts/address");
227
228
  var import_errors13 = require("@fuel-ts/errors");
228
229
  var import_math14 = require("@fuel-ts/math");
229
230
  var import_transactions17 = require("@fuel-ts/transactions");
230
- var import_utils23 = require("@fuel-ts/utils");
231
+ var import_utils22 = require("@fuel-ts/utils");
231
232
  var import_versions = require("@fuel-ts/versions");
232
- var import_utils24 = require("@noble/curves/abstract/utils");
233
+ var import_utils23 = require("@noble/curves/abstract/utils");
233
234
  var import_ethers = require("ethers");
234
235
  var import_graphql_request = require("graphql-request");
235
236
  var import_ramda3 = require("ramda");
@@ -1688,6 +1689,15 @@ function normalizeJSON(root) {
1688
1689
  return normalize((0, import_ramda.clone)(root));
1689
1690
  }
1690
1691
 
1692
+ // src/providers/utils/sleep.ts
1693
+ function sleep(time) {
1694
+ return new Promise((resolve) => {
1695
+ setTimeout(() => {
1696
+ resolve(true);
1697
+ }, time);
1698
+ });
1699
+ }
1700
+
1691
1701
  // src/providers/transaction-request/errors.ts
1692
1702
  var ChangeOutputCollisionError = class extends Error {
1693
1703
  name = "ChangeOutputCollisionError";
@@ -3545,7 +3555,6 @@ function getDecodedLogs(receipts, abiInterface) {
3545
3555
  }
3546
3556
 
3547
3557
  // src/providers/utils/auto-retry-fetch.ts
3548
- var import_utils22 = require("@fuel-ts/utils");
3549
3558
  function getWaitDelay(options, retryAttemptNum) {
3550
3559
  const duration = options.baseDelay ?? 150;
3551
3560
  switch (options.backoff) {
@@ -3575,7 +3584,7 @@ function autoRetryFetch(fetchFn, options, retryAttemptNum = 0) {
3575
3584
  throw error;
3576
3585
  }
3577
3586
  const delay = getWaitDelay(options, retryNum);
3578
- await (0, import_utils22.sleep)(delay);
3587
+ await sleep(delay);
3579
3588
  return autoRetryFetch(fetchFn, options, retryNum)(...args);
3580
3589
  }
3581
3590
  };
@@ -3878,7 +3887,7 @@ var _Provider = class {
3878
3887
  if (estimateTxDependencies) {
3879
3888
  await this.estimateTxDependencies(transactionRequest);
3880
3889
  }
3881
- const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
3890
+ const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
3882
3891
  if (awaitExecution) {
3883
3892
  const subscription = this.operations.submitAndAwait({ encodedTransaction });
3884
3893
  for await (const { submitAndAwait } of subscription) {
@@ -3917,7 +3926,7 @@ var _Provider = class {
3917
3926
  if (estimateTxDependencies) {
3918
3927
  return this.estimateTxDependencies(transactionRequest);
3919
3928
  }
3920
- const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
3929
+ const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
3921
3930
  const { dryRun: gqlReceipts } = await this.operations.dryRun({
3922
3931
  encodedTransaction,
3923
3932
  utxoValidation: utxoValidation || false
@@ -3936,13 +3945,13 @@ var _Provider = class {
3936
3945
  async estimatePredicates(transactionRequest) {
3937
3946
  const shouldEstimatePredicates = Boolean(
3938
3947
  transactionRequest.inputs.find(
3939
- (input) => "predicate" in input && input.predicate && !(0, import_utils24.equalBytes)((0, import_utils23.arrayify)(input.predicate), (0, import_utils23.arrayify)("0x")) && new import_math14.BN(input.predicateGasUsed).isZero()
3948
+ (input) => "predicate" in input && input.predicate && !(0, import_utils23.equalBytes)((0, import_utils22.arrayify)(input.predicate), (0, import_utils22.arrayify)("0x")) && new import_math14.BN(input.predicateGasUsed).isZero()
3940
3949
  )
3941
3950
  );
3942
3951
  if (!shouldEstimatePredicates) {
3943
3952
  return transactionRequest;
3944
3953
  }
3945
- const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
3954
+ const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
3946
3955
  const response = await this.operations.estimatePredicates({
3947
3956
  encodedTransaction
3948
3957
  });
@@ -3985,7 +3994,7 @@ var _Provider = class {
3985
3994
  let outputVariables = 0;
3986
3995
  for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
3987
3996
  const { dryRun: gqlReceipts } = await this.operations.dryRun({
3988
- encodedTransaction: (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes()),
3997
+ encodedTransaction: (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes()),
3989
3998
  utxoValidation: false
3990
3999
  });
3991
4000
  receipts = gqlReceipts.map(processGqlReceipt);
@@ -4023,7 +4032,7 @@ var _Provider = class {
4023
4032
  if (estimateTxDependencies) {
4024
4033
  return this.estimateTxDependencies(transactionRequest);
4025
4034
  }
4026
- const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
4035
+ const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
4027
4036
  const { dryRun: gqlReceipts } = await this.operations.dryRun({
4028
4037
  encodedTransaction,
4029
4038
  utxoValidation: true
@@ -4133,7 +4142,7 @@ var _Provider = class {
4133
4142
  const result = await this.operations.getCoins({
4134
4143
  first: 10,
4135
4144
  ...paginationArgs,
4136
- filter: { owner: ownerAddress.toB256(), assetId: assetId && (0, import_utils23.hexlify)(assetId) }
4145
+ filter: { owner: ownerAddress.toB256(), assetId: assetId && (0, import_utils22.hexlify)(assetId) }
4137
4146
  });
4138
4147
  const coins = result.coins.edges.map((edge) => edge.node);
4139
4148
  return coins.map((coin) => ({
@@ -4157,19 +4166,19 @@ var _Provider = class {
4157
4166
  async getResourcesToSpend(owner, quantities, excludedIds) {
4158
4167
  const ownerAddress = import_address3.Address.fromAddressOrString(owner);
4159
4168
  const excludeInput = {
4160
- messages: excludedIds?.messages?.map((nonce) => (0, import_utils23.hexlify)(nonce)) || [],
4161
- utxos: excludedIds?.utxos?.map((id) => (0, import_utils23.hexlify)(id)) || []
4169
+ messages: excludedIds?.messages?.map((nonce) => (0, import_utils22.hexlify)(nonce)) || [],
4170
+ utxos: excludedIds?.utxos?.map((id) => (0, import_utils22.hexlify)(id)) || []
4162
4171
  };
4163
4172
  if (this.cache) {
4164
4173
  const uniqueUtxos = new Set(
4165
- excludeInput.utxos.concat(this.cache?.getActiveData().map((id) => (0, import_utils23.hexlify)(id)))
4174
+ excludeInput.utxos.concat(this.cache?.getActiveData().map((id) => (0, import_utils22.hexlify)(id)))
4166
4175
  );
4167
4176
  excludeInput.utxos = Array.from(uniqueUtxos);
4168
4177
  }
4169
4178
  const coinsQuery = {
4170
4179
  owner: ownerAddress.toB256(),
4171
4180
  queryPerAsset: quantities.map(coinQuantityfy).map(({ assetId, amount, max: maxPerAsset }) => ({
4172
- assetId: (0, import_utils23.hexlify)(assetId),
4181
+ assetId: (0, import_utils22.hexlify)(assetId),
4173
4182
  amount: amount.toString(10),
4174
4183
  max: maxPerAsset ? maxPerAsset.toString(10) : void 0
4175
4184
  })),
@@ -4272,7 +4281,7 @@ var _Provider = class {
4272
4281
  time: block.header.time,
4273
4282
  transactionIds: block.transactions.map((tx) => tx.id),
4274
4283
  transactions: block.transactions.map(
4275
- (tx) => new import_transactions17.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
4284
+ (tx) => new import_transactions17.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
4276
4285
  )
4277
4286
  };
4278
4287
  }
@@ -4288,7 +4297,7 @@ var _Provider = class {
4288
4297
  return null;
4289
4298
  }
4290
4299
  return new import_transactions17.TransactionCoder().decode(
4291
- (0, import_utils23.arrayify)(transaction.rawPayload),
4300
+ (0, import_utils22.arrayify)(transaction.rawPayload),
4292
4301
  0
4293
4302
  )?.[0];
4294
4303
  }
@@ -4315,7 +4324,7 @@ var _Provider = class {
4315
4324
  async getContractBalance(contractId, assetId) {
4316
4325
  const { contractBalance } = await this.operations.getContractBalance({
4317
4326
  contract: import_address3.Address.fromAddressOrString(contractId).toB256(),
4318
- asset: (0, import_utils23.hexlify)(assetId)
4327
+ asset: (0, import_utils22.hexlify)(assetId)
4319
4328
  });
4320
4329
  return (0, import_math14.bn)(contractBalance.amount, 10);
4321
4330
  }
@@ -4329,7 +4338,7 @@ var _Provider = class {
4329
4338
  async getBalance(owner, assetId) {
4330
4339
  const { balance } = await this.operations.getBalance({
4331
4340
  owner: import_address3.Address.fromAddressOrString(owner).toB256(),
4332
- assetId: (0, import_utils23.hexlify)(assetId)
4341
+ assetId: (0, import_utils22.hexlify)(assetId)
4333
4342
  });
4334
4343
  return (0, import_math14.bn)(balance.amount, 10);
4335
4344
  }
@@ -4490,7 +4499,7 @@ var _Provider = class {
4490
4499
  async produceBlocks(amount, startTime) {
4491
4500
  const { produceBlocks: latestBlockHeight } = await this.operations.produceBlocks({
4492
4501
  blocksToProduce: (0, import_math14.bn)(amount).toString(10),
4493
- startTimestamp: startTime ? import_utils23.DateTime.fromUnixMilliseconds(startTime).toTai64() : void 0
4502
+ startTimestamp: startTime ? import_utils22.DateTime.fromUnixMilliseconds(startTime).toTai64() : void 0
4494
4503
  });
4495
4504
  return (0, import_math14.bn)(latestBlockHeight);
4496
4505
  }
@@ -4518,7 +4527,7 @@ __publicField(Provider, "nodeInfoCache", {});
4518
4527
  var import_errors14 = require("@fuel-ts/errors");
4519
4528
  var import_math15 = require("@fuel-ts/math");
4520
4529
  var import_transactions18 = require("@fuel-ts/transactions");
4521
- var import_utils26 = require("@fuel-ts/utils");
4530
+ var import_utils25 = require("@fuel-ts/utils");
4522
4531
  async function getTransactionSummary(params) {
4523
4532
  const { id, provider, abiMap } = params;
4524
4533
  const { transaction: gqlTransaction } = await provider.operations.getTransactionWithReceipts({
@@ -4531,7 +4540,7 @@ async function getTransactionSummary(params) {
4531
4540
  );
4532
4541
  }
4533
4542
  const [decodedTransaction] = new import_transactions18.TransactionCoder().decode(
4534
- (0, import_utils26.arrayify)(gqlTransaction.rawPayload),
4543
+ (0, import_utils25.arrayify)(gqlTransaction.rawPayload),
4535
4544
  0
4536
4545
  );
4537
4546
  const receipts = gqlTransaction.receipts?.map(processGqlReceipt) || [];
@@ -4542,7 +4551,7 @@ async function getTransactionSummary(params) {
4542
4551
  id: gqlTransaction.id,
4543
4552
  receipts,
4544
4553
  transaction: decodedTransaction,
4545
- transactionBytes: (0, import_utils26.arrayify)(gqlTransaction.rawPayload),
4554
+ transactionBytes: (0, import_utils25.arrayify)(gqlTransaction.rawPayload),
4546
4555
  gqlTransactionStatus: gqlTransaction.status,
4547
4556
  gasPerByte: (0, import_math15.bn)(gasPerByte),
4548
4557
  gasPriceFactor: (0, import_math15.bn)(gasPriceFactor),
@@ -4584,13 +4593,13 @@ async function getTransactionsSummaries(params) {
4584
4593
  const transactions = edges.map((edge) => {
4585
4594
  const { node: gqlTransaction } = edge;
4586
4595
  const { id, rawPayload, receipts: gqlReceipts, status } = gqlTransaction;
4587
- const [decodedTransaction] = new import_transactions18.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
4596
+ const [decodedTransaction] = new import_transactions18.TransactionCoder().decode((0, import_utils25.arrayify)(rawPayload), 0);
4588
4597
  const receipts = gqlReceipts?.map(processGqlReceipt) || [];
4589
4598
  const transactionSummary = assembleTransactionSummary({
4590
4599
  id,
4591
4600
  receipts,
4592
4601
  transaction: decodedTransaction,
4593
- transactionBytes: (0, import_utils26.arrayify)(rawPayload),
4602
+ transactionBytes: (0, import_utils25.arrayify)(rawPayload),
4594
4603
  gqlTransactionStatus: status,
4595
4604
  abiMap,
4596
4605
  gasPerByte,
@@ -4734,16 +4743,16 @@ var assets = [
4734
4743
  // src/utils/formatTransferToContractScriptData.ts
4735
4744
  var import_abi_coder4 = require("@fuel-ts/abi-coder");
4736
4745
  var import_math16 = require("@fuel-ts/math");
4737
- var import_utils27 = require("@fuel-ts/utils");
4746
+ var import_utils26 = require("@fuel-ts/utils");
4738
4747
  var asm = __toESM(require("@fuels/vm-asm"));
4739
4748
  var formatTransferToContractScriptData = (params) => {
4740
4749
  const { assetId, amountToTransfer, hexlifiedContractId } = params;
4741
4750
  const numberCoder = new import_abi_coder4.BigNumberCoder("u64");
4742
4751
  const encoded = numberCoder.encode(new import_math16.BN(amountToTransfer).toNumber());
4743
4752
  const scriptData = Uint8Array.from([
4744
- ...(0, import_utils27.arrayify)(hexlifiedContractId),
4753
+ ...(0, import_utils26.arrayify)(hexlifiedContractId),
4745
4754
  ...encoded,
4746
- ...(0, import_utils27.arrayify)(assetId)
4755
+ ...(0, import_utils26.arrayify)(assetId)
4747
4756
  ]);
4748
4757
  return scriptData;
4749
4758
  };
@@ -5083,14 +5092,14 @@ var Account = class extends import_interfaces.AbstractAccount {
5083
5092
  async withdrawToBaseLayer(recipient, amount, txParams = {}) {
5084
5093
  const { minGasPrice } = this.provider.getGasConfig();
5085
5094
  const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
5086
- const recipientDataArray = (0, import_utils28.arrayify)(
5095
+ const recipientDataArray = (0, import_utils27.arrayify)(
5087
5096
  "0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
5088
5097
  );
5089
- const amountDataArray = (0, import_utils28.arrayify)(
5098
+ const amountDataArray = (0, import_utils27.arrayify)(
5090
5099
  "0x".concat((0, import_math17.bn)(amount).toHex().substring(2).padStart(16, "0"))
5091
5100
  );
5092
5101
  const script = new Uint8Array([
5093
- ...(0, import_utils28.arrayify)(withdrawScript.bytes),
5102
+ ...(0, import_utils27.arrayify)(withdrawScript.bytes),
5094
5103
  ...recipientDataArray,
5095
5104
  ...amountDataArray
5096
5105
  ]);
@@ -5174,14 +5183,14 @@ var Account = class extends import_interfaces.AbstractAccount {
5174
5183
 
5175
5184
  // src/wallet/base-wallet-unlocked.ts
5176
5185
  var import_hasher3 = require("@fuel-ts/hasher");
5177
- var import_utils31 = require("@fuel-ts/utils");
5186
+ var import_utils30 = require("@fuel-ts/utils");
5178
5187
 
5179
5188
  // src/signer/signer.ts
5180
5189
  var import_address5 = require("@fuel-ts/address");
5181
5190
  var import_crypto = require("@fuel-ts/crypto");
5182
5191
  var import_hasher2 = require("@fuel-ts/hasher");
5183
5192
  var import_math18 = require("@fuel-ts/math");
5184
- var import_utils29 = require("@fuel-ts/utils");
5193
+ var import_utils28 = require("@fuel-ts/utils");
5185
5194
  var import_secp256k1 = require("@noble/curves/secp256k1");
5186
5195
  var Signer = class {
5187
5196
  address;
@@ -5201,9 +5210,9 @@ var Signer = class {
5201
5210
  }
5202
5211
  }
5203
5212
  const privateKeyBytes = (0, import_math18.toBytes)(privateKey, 32);
5204
- this.privateKey = (0, import_utils29.hexlify)(privateKeyBytes);
5205
- this.publicKey = (0, import_utils29.hexlify)(import_secp256k1.secp256k1.getPublicKey(privateKeyBytes, false).slice(1));
5206
- this.compressedPublicKey = (0, import_utils29.hexlify)(import_secp256k1.secp256k1.getPublicKey(privateKeyBytes, true));
5213
+ this.privateKey = (0, import_utils28.hexlify)(privateKeyBytes);
5214
+ this.publicKey = (0, import_utils28.hexlify)(import_secp256k1.secp256k1.getPublicKey(privateKeyBytes, false).slice(1));
5215
+ this.compressedPublicKey = (0, import_utils28.hexlify)(import_secp256k1.secp256k1.getPublicKey(privateKeyBytes, true));
5207
5216
  this.address = import_address5.Address.fromPublicKey(this.publicKey);
5208
5217
  }
5209
5218
  /**
@@ -5217,11 +5226,11 @@ var Signer = class {
5217
5226
  * @returns hashed signature
5218
5227
  */
5219
5228
  sign(data) {
5220
- const signature = import_secp256k1.secp256k1.sign((0, import_utils29.arrayify)(data), (0, import_utils29.arrayify)(this.privateKey));
5229
+ const signature = import_secp256k1.secp256k1.sign((0, import_utils28.arrayify)(data), (0, import_utils28.arrayify)(this.privateKey));
5221
5230
  const r = (0, import_math18.toBytes)(`0x${signature.r.toString(16)}`, 32);
5222
5231
  const s = (0, import_math18.toBytes)(`0x${signature.s.toString(16)}`, 32);
5223
5232
  s[0] |= (signature.recovery || 0) << 7;
5224
- return (0, import_utils29.hexlify)((0, import_utils29.concat)([r, s]));
5233
+ return (0, import_utils28.hexlify)((0, import_utils28.concat)([r, s]));
5225
5234
  }
5226
5235
  /**
5227
5236
  * Add point on the current elliptic curve
@@ -5230,8 +5239,8 @@ var Signer = class {
5230
5239
  * @returns compressed point on the curve
5231
5240
  */
5232
5241
  addPoint(point) {
5233
- const p0 = import_secp256k1.secp256k1.ProjectivePoint.fromHex((0, import_utils29.arrayify)(this.compressedPublicKey));
5234
- const p1 = import_secp256k1.secp256k1.ProjectivePoint.fromHex((0, import_utils29.arrayify)(point));
5242
+ const p0 = import_secp256k1.secp256k1.ProjectivePoint.fromHex((0, import_utils28.arrayify)(this.compressedPublicKey));
5243
+ const p1 = import_secp256k1.secp256k1.ProjectivePoint.fromHex((0, import_utils28.arrayify)(point));
5235
5244
  const result = p0.add(p1);
5236
5245
  return `0x${result.toHex(true)}`;
5237
5246
  }
@@ -5243,16 +5252,16 @@ var Signer = class {
5243
5252
  * @returns public key from signature from the
5244
5253
  */
5245
5254
  static recoverPublicKey(data, signature) {
5246
- const signedMessageBytes = (0, import_utils29.arrayify)(signature);
5255
+ const signedMessageBytes = (0, import_utils28.arrayify)(signature);
5247
5256
  const r = signedMessageBytes.slice(0, 32);
5248
5257
  const s = signedMessageBytes.slice(32, 64);
5249
5258
  const recoveryParam = (s[0] & 128) >> 7;
5250
5259
  s[0] &= 127;
5251
- const sig = new import_secp256k1.secp256k1.Signature(BigInt((0, import_utils29.hexlify)(r)), BigInt((0, import_utils29.hexlify)(s))).addRecoveryBit(
5260
+ const sig = new import_secp256k1.secp256k1.Signature(BigInt((0, import_utils28.hexlify)(r)), BigInt((0, import_utils28.hexlify)(s))).addRecoveryBit(
5252
5261
  recoveryParam
5253
5262
  );
5254
- const publicKey = sig.recoverPublicKey((0, import_utils29.arrayify)(data)).toRawBytes(false).slice(1);
5255
- return (0, import_utils29.hexlify)(publicKey);
5263
+ const publicKey = sig.recoverPublicKey((0, import_utils28.arrayify)(data)).toRawBytes(false).slice(1);
5264
+ return (0, import_utils28.hexlify)(publicKey);
5256
5265
  }
5257
5266
  /**
5258
5267
  * Recover the address from a signature performed with [`sign`](#sign).
@@ -5271,7 +5280,7 @@ var Signer = class {
5271
5280
  * @returns random 32-byte hashed
5272
5281
  */
5273
5282
  static generatePrivateKey(entropy) {
5274
- return entropy ? (0, import_hasher2.hash)((0, import_utils29.concat)([(0, import_crypto.randomBytes)(32), (0, import_utils29.arrayify)(entropy)])) : (0, import_crypto.randomBytes)(32);
5283
+ return entropy ? (0, import_hasher2.hash)((0, import_utils28.concat)([(0, import_crypto.randomBytes)(32), (0, import_utils28.arrayify)(entropy)])) : (0, import_crypto.randomBytes)(32);
5275
5284
  }
5276
5285
  /**
5277
5286
  * Extended publicKey from a compact publicKey
@@ -5280,8 +5289,8 @@ var Signer = class {
5280
5289
  * @returns extended publicKey
5281
5290
  */
5282
5291
  static extendPublicKey(publicKey) {
5283
- const point = import_secp256k1.secp256k1.ProjectivePoint.fromHex((0, import_utils29.arrayify)(publicKey));
5284
- return (0, import_utils29.hexlify)(point.toRawBytes(false).slice(1));
5292
+ const point = import_secp256k1.secp256k1.ProjectivePoint.fromHex((0, import_utils28.arrayify)(publicKey));
5293
+ return (0, import_utils28.hexlify)(point.toRawBytes(false).slice(1));
5285
5294
  }
5286
5295
  };
5287
5296
 
@@ -5289,7 +5298,7 @@ var Signer = class {
5289
5298
  var import_address6 = require("@fuel-ts/address");
5290
5299
  var import_crypto2 = require("@fuel-ts/crypto");
5291
5300
  var import_errors16 = require("@fuel-ts/errors");
5292
- var import_utils30 = require("@fuel-ts/utils");
5301
+ var import_utils29 = require("@fuel-ts/utils");
5293
5302
  var import_uuid = require("uuid");
5294
5303
  var DEFAULT_KDF_PARAMS_LOG_N = 13;
5295
5304
  var DEFAULT_KDF_PARAMS_R = 8;
@@ -5372,7 +5381,7 @@ async function decryptKeystoreWallet(jsonWallet, password) {
5372
5381
  );
5373
5382
  }
5374
5383
  const buffer = await (0, import_crypto2.decryptJsonWalletData)(ciphertextBuffer, key, ivBuffer);
5375
- const privateKey = (0, import_utils30.hexlify)(buffer);
5384
+ const privateKey = (0, import_utils29.hexlify)(buffer);
5376
5385
  return privateKey;
5377
5386
  }
5378
5387
 
@@ -5417,7 +5426,7 @@ var BaseWalletUnlocked = class extends Account {
5417
5426
  */
5418
5427
  async signMessage(message) {
5419
5428
  const signedMessage = await this.signer().sign((0, import_hasher3.hashMessage)(message));
5420
- return (0, import_utils31.hexlify)(signedMessage);
5429
+ return (0, import_utils30.hexlify)(signedMessage);
5421
5430
  }
5422
5431
  /**
5423
5432
  * Signs a transaction with the wallet's private key.
@@ -5430,7 +5439,7 @@ var BaseWalletUnlocked = class extends Account {
5430
5439
  const chainId = this.provider.getChain().consensusParameters.chainId.toNumber();
5431
5440
  const hashedTransaction = transactionRequest.getTransactionId(chainId);
5432
5441
  const signature = await this.signer().sign(hashedTransaction);
5433
- return (0, import_utils31.hexlify)(signature);
5442
+ return (0, import_utils30.hexlify)(signature);
5434
5443
  }
5435
5444
  /**
5436
5445
  * Populates a transaction with the witnesses signature.
@@ -5492,14 +5501,14 @@ __publicField(BaseWalletUnlocked, "defaultPath", "m/44'/1179993420'/0'/0/0");
5492
5501
  var import_errors19 = require("@fuel-ts/errors");
5493
5502
  var import_hasher6 = require("@fuel-ts/hasher");
5494
5503
  var import_math19 = require("@fuel-ts/math");
5495
- var import_utils35 = require("@fuel-ts/utils");
5504
+ var import_utils34 = require("@fuel-ts/utils");
5496
5505
  var import_ethers3 = require("ethers");
5497
5506
 
5498
5507
  // src/mnemonic/mnemonic.ts
5499
5508
  var import_crypto3 = require("@fuel-ts/crypto");
5500
5509
  var import_errors18 = require("@fuel-ts/errors");
5501
5510
  var import_hasher5 = require("@fuel-ts/hasher");
5502
- var import_utils33 = require("@fuel-ts/utils");
5511
+ var import_utils32 = require("@fuel-ts/utils");
5503
5512
  var import_ethers2 = require("ethers");
5504
5513
 
5505
5514
  // src/wordlists/words/english.ts
@@ -7563,7 +7572,7 @@ var Language = /* @__PURE__ */ ((Language2) => {
7563
7572
  // src/mnemonic/utils.ts
7564
7573
  var import_errors17 = require("@fuel-ts/errors");
7565
7574
  var import_hasher4 = require("@fuel-ts/hasher");
7566
- var import_utils32 = require("@fuel-ts/utils");
7575
+ var import_utils31 = require("@fuel-ts/utils");
7567
7576
  function toUtf8Bytes(stri) {
7568
7577
  const str = stri.normalize("NFKD");
7569
7578
  const result = [];
@@ -7630,14 +7639,14 @@ function entropyToMnemonicIndices(entropy) {
7630
7639
  }
7631
7640
  }
7632
7641
  const checksumBits = entropy.length / 4;
7633
- const checksum = (0, import_utils32.arrayify)((0, import_hasher4.sha256)(entropy))[0] & getUpperMask(checksumBits);
7642
+ const checksum = (0, import_utils31.arrayify)((0, import_hasher4.sha256)(entropy))[0] & getUpperMask(checksumBits);
7634
7643
  indices[indices.length - 1] <<= checksumBits;
7635
7644
  indices[indices.length - 1] |= checksum >> 8 - checksumBits;
7636
7645
  return indices;
7637
7646
  }
7638
7647
  function mnemonicWordsToEntropy(words, wordlist) {
7639
7648
  const size = Math.ceil(11 * words.length / 8);
7640
- const entropy = (0, import_utils32.arrayify)(new Uint8Array(size));
7649
+ const entropy = (0, import_utils31.arrayify)(new Uint8Array(size));
7641
7650
  let offset = 0;
7642
7651
  for (let i = 0; i < words.length; i += 1) {
7643
7652
  const index = wordlist.indexOf(words[i].normalize("NFKD"));
@@ -7657,7 +7666,7 @@ function mnemonicWordsToEntropy(words, wordlist) {
7657
7666
  const entropyBits = 32 * words.length / 3;
7658
7667
  const checksumBits = words.length / 3;
7659
7668
  const checksumMask = getUpperMask(checksumBits);
7660
- const checksum = (0, import_utils32.arrayify)((0, import_hasher4.sha256)(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;
7669
+ const checksum = (0, import_utils31.arrayify)((0, import_hasher4.sha256)(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;
7661
7670
  if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {
7662
7671
  throw new import_errors17.FuelError(
7663
7672
  import_errors17.ErrorCode.INVALID_CHECKSUM,
@@ -7732,7 +7741,7 @@ var Mnemonic = class {
7732
7741
  static mnemonicToEntropy(phrase, wordlist = english) {
7733
7742
  const words = getWords(phrase);
7734
7743
  assertMnemonic(words);
7735
- return (0, import_utils33.hexlify)(mnemonicWordsToEntropy(words, wordlist));
7744
+ return (0, import_utils32.hexlify)(mnemonicWordsToEntropy(words, wordlist));
7736
7745
  }
7737
7746
  /**
7738
7747
  * @param entropy - Entropy source to the mnemonic phrase.
@@ -7740,7 +7749,7 @@ var Mnemonic = class {
7740
7749
  * @returns 64-byte array contains privateKey and chainCode as described on BIP39
7741
7750
  */
7742
7751
  static entropyToMnemonic(entropy, wordlist = english) {
7743
- const entropyBytes = (0, import_utils33.arrayify)(entropy);
7752
+ const entropyBytes = (0, import_utils32.arrayify)(entropy);
7744
7753
  assertWordList(wordlist);
7745
7754
  assertEntropy(entropyBytes);
7746
7755
  return entropyToMnemonicIndices(entropyBytes).map((i) => wordlist[i]).join(" ");
@@ -7809,14 +7818,14 @@ var Mnemonic = class {
7809
7818
  * @returns 64-byte array contains privateKey and chainCode as described on BIP39
7810
7819
  */
7811
7820
  static masterKeysFromSeed(seed) {
7812
- const seedArray = (0, import_utils33.arrayify)(seed);
7821
+ const seedArray = (0, import_utils32.arrayify)(seed);
7813
7822
  if (seedArray.length < 16 || seedArray.length > 64) {
7814
7823
  throw new import_errors18.FuelError(
7815
7824
  import_errors18.ErrorCode.INVALID_SEED,
7816
7825
  `Seed length should be between 16 and 64 bytes, but received ${seedArray.length} bytes.`
7817
7826
  );
7818
7827
  }
7819
- return (0, import_utils33.arrayify)((0, import_ethers2.computeHmac)("sha512", MasterSecret, seedArray));
7828
+ return (0, import_utils32.arrayify)((0, import_ethers2.computeHmac)("sha512", MasterSecret, seedArray));
7820
7829
  }
7821
7830
  /**
7822
7831
  * Get the extendKey as defined on BIP-32 from the provided seed
@@ -7827,22 +7836,22 @@ var Mnemonic = class {
7827
7836
  */
7828
7837
  static seedToExtendedKey(seed, testnet = false) {
7829
7838
  const masterKey = Mnemonic.masterKeysFromSeed(seed);
7830
- const prefix = (0, import_utils33.arrayify)(testnet ? TestnetPRV : MainnetPRV);
7839
+ const prefix = (0, import_utils32.arrayify)(testnet ? TestnetPRV : MainnetPRV);
7831
7840
  const depth = "0x00";
7832
7841
  const fingerprint = "0x00000000";
7833
7842
  const index = "0x00000000";
7834
7843
  const chainCode = masterKey.slice(32);
7835
7844
  const privateKey = masterKey.slice(0, 32);
7836
- const extendedKey = (0, import_utils33.concat)([
7845
+ const extendedKey = (0, import_utils32.concat)([
7837
7846
  prefix,
7838
7847
  depth,
7839
7848
  fingerprint,
7840
7849
  index,
7841
7850
  chainCode,
7842
- (0, import_utils33.concat)(["0x00", privateKey])
7851
+ (0, import_utils32.concat)(["0x00", privateKey])
7843
7852
  ]);
7844
7853
  const checksum = (0, import_ethers2.dataSlice)((0, import_hasher5.sha256)((0, import_hasher5.sha256)(extendedKey)), 0, 4);
7845
- return (0, import_ethers2.encodeBase58)((0, import_utils33.concat)([extendedKey, checksum]));
7854
+ return (0, import_ethers2.encodeBase58)((0, import_utils32.concat)([extendedKey, checksum]));
7846
7855
  }
7847
7856
  /**
7848
7857
  * Create a new mnemonic using a randomly generated number as entropy.
@@ -7857,7 +7866,7 @@ var Mnemonic = class {
7857
7866
  * @returns A randomly generated mnemonic
7858
7867
  */
7859
7868
  static generate(size = 32, extraEntropy = "") {
7860
- const entropy = extraEntropy ? (0, import_hasher5.sha256)((0, import_utils33.concat)([(0, import_crypto3.randomBytes)(size), (0, import_utils33.arrayify)(extraEntropy)])) : (0, import_crypto3.randomBytes)(size);
7869
+ const entropy = extraEntropy ? (0, import_hasher5.sha256)((0, import_utils32.concat)([(0, import_crypto3.randomBytes)(size), (0, import_utils32.arrayify)(extraEntropy)])) : (0, import_crypto3.randomBytes)(size);
7861
7870
  return Mnemonic.entropyToMnemonic(entropy);
7862
7871
  }
7863
7872
  };
@@ -7865,12 +7874,12 @@ var mnemonic_default = Mnemonic;
7865
7874
 
7866
7875
  // src/hdwallet/hdwallet.ts
7867
7876
  var HARDENED_INDEX = 2147483648;
7868
- var MainnetPRV2 = (0, import_utils35.hexlify)("0x0488ade4");
7869
- var MainnetPUB = (0, import_utils35.hexlify)("0x0488b21e");
7870
- var TestnetPRV2 = (0, import_utils35.hexlify)("0x04358394");
7871
- var TestnetPUB = (0, import_utils35.hexlify)("0x043587cf");
7877
+ var MainnetPRV2 = (0, import_utils34.hexlify)("0x0488ade4");
7878
+ var MainnetPUB = (0, import_utils34.hexlify)("0x0488b21e");
7879
+ var TestnetPRV2 = (0, import_utils34.hexlify)("0x04358394");
7880
+ var TestnetPUB = (0, import_utils34.hexlify)("0x043587cf");
7872
7881
  function base58check(data) {
7873
- return (0, import_ethers3.encodeBase58)((0, import_utils35.concat)([data, (0, import_ethers3.dataSlice)((0, import_hasher6.sha256)((0, import_hasher6.sha256)(data)), 0, 4)]));
7882
+ return (0, import_ethers3.encodeBase58)((0, import_utils34.concat)([data, (0, import_ethers3.dataSlice)((0, import_hasher6.sha256)((0, import_hasher6.sha256)(data)), 0, 4)]));
7874
7883
  }
7875
7884
  function getExtendedKeyPrefix(isPublic = false, testnet = false) {
7876
7885
  if (isPublic) {
@@ -7879,11 +7888,11 @@ function getExtendedKeyPrefix(isPublic = false, testnet = false) {
7879
7888
  return testnet ? TestnetPRV2 : MainnetPRV2;
7880
7889
  }
7881
7890
  function isPublicExtendedKey(extendedKey) {
7882
- return [MainnetPUB, TestnetPUB].includes((0, import_utils35.hexlify)(extendedKey.slice(0, 4)));
7891
+ return [MainnetPUB, TestnetPUB].includes((0, import_utils34.hexlify)(extendedKey.slice(0, 4)));
7883
7892
  }
7884
7893
  function isValidExtendedKey(extendedKey) {
7885
7894
  return [MainnetPRV2, TestnetPRV2, MainnetPUB, TestnetPUB].includes(
7886
- (0, import_utils35.hexlify)(extendedKey.slice(0, 4))
7895
+ (0, import_utils34.hexlify)(extendedKey.slice(0, 4))
7887
7896
  );
7888
7897
  }
7889
7898
  function parsePath(path, depth = 0) {
@@ -7901,8 +7910,8 @@ function parsePath(path, depth = 0) {
7901
7910
  var HDWallet = class {
7902
7911
  depth = 0;
7903
7912
  index = 0;
7904
- fingerprint = (0, import_utils35.hexlify)("0x00000000");
7905
- parentFingerprint = (0, import_utils35.hexlify)("0x00000000");
7913
+ fingerprint = (0, import_utils34.hexlify)("0x00000000");
7914
+ parentFingerprint = (0, import_utils34.hexlify)("0x00000000");
7906
7915
  privateKey;
7907
7916
  publicKey;
7908
7917
  chainCode;
@@ -7914,8 +7923,8 @@ var HDWallet = class {
7914
7923
  constructor(config) {
7915
7924
  if (config.privateKey) {
7916
7925
  const signer = new Signer(config.privateKey);
7917
- this.publicKey = (0, import_utils35.hexlify)(signer.compressedPublicKey);
7918
- this.privateKey = (0, import_utils35.hexlify)(config.privateKey);
7926
+ this.publicKey = (0, import_utils34.hexlify)(signer.compressedPublicKey);
7927
+ this.privateKey = (0, import_utils34.hexlify)(config.privateKey);
7919
7928
  } else {
7920
7929
  if (!config.publicKey) {
7921
7930
  throw new import_errors19.FuelError(
@@ -7923,7 +7932,7 @@ var HDWallet = class {
7923
7932
  "Both public and private Key cannot be missing. At least one should be provided."
7924
7933
  );
7925
7934
  }
7926
- this.publicKey = (0, import_utils35.hexlify)(config.publicKey);
7935
+ this.publicKey = (0, import_utils34.hexlify)(config.publicKey);
7927
7936
  }
7928
7937
  this.parentFingerprint = config.parentFingerprint || this.parentFingerprint;
7929
7938
  this.fingerprint = (0, import_ethers3.dataSlice)((0, import_ethers3.ripemd160)((0, import_hasher6.sha256)(this.publicKey)), 0, 4);
@@ -7942,9 +7951,9 @@ var HDWallet = class {
7942
7951
  * @returns A new instance of HDWallet on the derived index
7943
7952
  */
7944
7953
  deriveIndex(index) {
7945
- const privateKey = this.privateKey && (0, import_utils35.arrayify)(this.privateKey);
7946
- const publicKey = (0, import_utils35.arrayify)(this.publicKey);
7947
- const chainCode = (0, import_utils35.arrayify)(this.chainCode);
7954
+ const privateKey = this.privateKey && (0, import_utils34.arrayify)(this.privateKey);
7955
+ const publicKey = (0, import_utils34.arrayify)(this.publicKey);
7956
+ const chainCode = (0, import_utils34.arrayify)(this.chainCode);
7948
7957
  const data = new Uint8Array(37);
7949
7958
  if (index & HARDENED_INDEX) {
7950
7959
  if (!privateKey) {
@@ -7955,10 +7964,10 @@ var HDWallet = class {
7955
7964
  }
7956
7965
  data.set(privateKey, 1);
7957
7966
  } else {
7958
- data.set((0, import_utils35.arrayify)(this.publicKey));
7967
+ data.set((0, import_utils34.arrayify)(this.publicKey));
7959
7968
  }
7960
7969
  data.set((0, import_math19.toBytes)(index, 4), 33);
7961
- const bytes = (0, import_utils35.arrayify)((0, import_ethers3.computeHmac)("sha512", chainCode, data));
7970
+ const bytes = (0, import_utils34.arrayify)((0, import_ethers3.computeHmac)("sha512", chainCode, data));
7962
7971
  const IL = bytes.slice(0, 32);
7963
7972
  const IR = bytes.slice(32);
7964
7973
  if (privateKey) {
@@ -7972,7 +7981,7 @@ var HDWallet = class {
7972
7981
  parentFingerprint: this.fingerprint
7973
7982
  });
7974
7983
  }
7975
- const signer = new Signer((0, import_utils35.hexlify)(IL));
7984
+ const signer = new Signer((0, import_utils34.hexlify)(IL));
7976
7985
  const Ki = signer.addPoint(publicKey);
7977
7986
  return new HDWallet({
7978
7987
  publicKey: Ki,
@@ -8007,12 +8016,12 @@ var HDWallet = class {
8007
8016
  );
8008
8017
  }
8009
8018
  const prefix = getExtendedKeyPrefix(this.privateKey == null || isPublic, testnet);
8010
- const depth = (0, import_utils35.hexlify)(Uint8Array.from([this.depth]));
8019
+ const depth = (0, import_utils34.hexlify)(Uint8Array.from([this.depth]));
8011
8020
  const parentFingerprint = this.parentFingerprint;
8012
8021
  const index = (0, import_math19.toHex)(this.index, 4);
8013
8022
  const chainCode = this.chainCode;
8014
- const key = this.privateKey != null && !isPublic ? (0, import_utils35.concat)(["0x00", this.privateKey]) : this.publicKey;
8015
- const extendedKey = (0, import_utils35.arrayify)((0, import_utils35.concat)([prefix, depth, parentFingerprint, index, chainCode, key]));
8023
+ const key = this.privateKey != null && !isPublic ? (0, import_utils34.concat)(["0x00", this.privateKey]) : this.publicKey;
8024
+ const extendedKey = (0, import_utils34.arrayify)((0, import_utils34.concat)([prefix, depth, parentFingerprint, index, chainCode, key]));
8016
8025
  return base58check(extendedKey);
8017
8026
  }
8018
8027
  /**
@@ -8024,13 +8033,13 @@ var HDWallet = class {
8024
8033
  static fromSeed(seed) {
8025
8034
  const masterKey = mnemonic_default.masterKeysFromSeed(seed);
8026
8035
  return new HDWallet({
8027
- chainCode: (0, import_utils35.arrayify)(masterKey.slice(32)),
8028
- privateKey: (0, import_utils35.arrayify)(masterKey.slice(0, 32))
8036
+ chainCode: (0, import_utils34.arrayify)(masterKey.slice(32)),
8037
+ privateKey: (0, import_utils34.arrayify)(masterKey.slice(0, 32))
8029
8038
  });
8030
8039
  }
8031
8040
  static fromExtendedKey(extendedKey) {
8032
8041
  const decoded = (0, import_ethers3.toBeHex)((0, import_ethers3.decodeBase58)(extendedKey));
8033
- const bytes = (0, import_utils35.arrayify)(decoded);
8042
+ const bytes = (0, import_utils34.arrayify)(decoded);
8034
8043
  const validChecksum = base58check(bytes.slice(0, 78)) === extendedKey;
8035
8044
  if (bytes.length !== 82 || !isValidExtendedKey(bytes)) {
8036
8045
  throw new import_errors19.FuelError(import_errors19.ErrorCode.HD_WALLET_ERROR, "Provided key is not a valid extended key.");
@@ -8039,9 +8048,9 @@ var HDWallet = class {
8039
8048
  throw new import_errors19.FuelError(import_errors19.ErrorCode.HD_WALLET_ERROR, "Provided key has an invalid checksum.");
8040
8049
  }
8041
8050
  const depth = bytes[4];
8042
- const parentFingerprint = (0, import_utils35.hexlify)(bytes.slice(5, 9));
8043
- const index = parseInt((0, import_utils35.hexlify)(bytes.slice(9, 13)).substring(2), 16);
8044
- const chainCode = (0, import_utils35.hexlify)(bytes.slice(13, 45));
8051
+ const parentFingerprint = (0, import_utils34.hexlify)(bytes.slice(5, 9));
8052
+ const index = parseInt((0, import_utils34.hexlify)(bytes.slice(9, 13)).substring(2), 16);
8053
+ const chainCode = (0, import_utils34.hexlify)(bytes.slice(13, 45));
8045
8054
  const key = bytes.slice(45, 78);
8046
8055
  if (depth === 0 && parentFingerprint !== "0x00000000" || depth === 0 && index !== 0) {
8047
8056
  throw new import_errors19.FuelError(
@@ -8647,18 +8656,18 @@ var import_address10 = require("@fuel-ts/address");
8647
8656
  var import_configs12 = require("@fuel-ts/address/configs");
8648
8657
  var import_errors24 = require("@fuel-ts/errors");
8649
8658
  var import_transactions19 = require("@fuel-ts/transactions");
8650
- var import_utils37 = require("@fuel-ts/utils");
8659
+ var import_utils36 = require("@fuel-ts/utils");
8651
8660
 
8652
8661
  // src/predicate/utils/getPredicateRoot.ts
8653
8662
  var import_hasher7 = require("@fuel-ts/hasher");
8654
8663
  var import_merkle = require("@fuel-ts/merkle");
8655
- var import_utils36 = require("@fuel-ts/utils");
8664
+ var import_utils35 = require("@fuel-ts/utils");
8656
8665
  var getPredicateRoot = (bytecode) => {
8657
8666
  const chunkSize = 16 * 1024;
8658
- const bytes = (0, import_utils36.arrayify)(bytecode);
8659
- const chunks = (0, import_utils36.chunkAndPadBytes)(bytes, chunkSize);
8660
- const codeRoot = (0, import_merkle.calcRoot)(chunks.map((c) => (0, import_utils36.hexlify)(c)));
8661
- const predicateRoot = (0, import_hasher7.hash)((0, import_utils36.concat)(["0x4655454C", codeRoot]));
8667
+ const bytes = (0, import_utils35.arrayify)(bytecode);
8668
+ const chunks = (0, import_utils35.chunkAndPadBytes)(bytes, chunkSize);
8669
+ const codeRoot = (0, import_merkle.calcRoot)(chunks.map((c) => (0, import_utils35.hexlify)(c)));
8670
+ const predicateRoot = (0, import_hasher7.hash)((0, import_utils35.concat)(["0x4655454C", codeRoot]));
8662
8671
  return predicateRoot;
8663
8672
  };
8664
8673
 
@@ -8707,7 +8716,7 @@ var Predicate = class extends Account {
8707
8716
  const request = transactionRequestify(transactionRequestLike);
8708
8717
  const { policies } = BaseTransactionRequest.getPolicyMeta(request);
8709
8718
  request.inputs?.forEach((input) => {
8710
- if (input.type === import_transactions19.InputType.Coin && (0, import_utils37.hexlify)(input.owner) === this.address.toB256()) {
8719
+ if (input.type === import_transactions19.InputType.Coin && (0, import_utils36.hexlify)(input.owner) === this.address.toB256()) {
8711
8720
  input.predicate = this.bytes;
8712
8721
  input.predicateData = this.getPredicateData(policies.length);
8713
8722
  }
@@ -8768,7 +8777,7 @@ var Predicate = class extends Account {
8768
8777
  * @returns An object containing the new predicate bytes and interface.
8769
8778
  */
8770
8779
  static processPredicateData(bytes, jsonAbi, configurableConstants) {
8771
- let predicateBytes = (0, import_utils37.arrayify)(bytes);
8780
+ let predicateBytes = (0, import_utils36.arrayify)(bytes);
8772
8781
  let abiInterface;
8773
8782
  if (jsonAbi) {
8774
8783
  abiInterface = new import_abi_coder5.Interface(jsonAbi);
@@ -9604,6 +9613,7 @@ __publicField(Fuel, "defaultConfig", {});
9604
9613
  resolveGasDependentCosts,
9605
9614
  resolveIconPaths,
9606
9615
  returnZeroScript,
9616
+ sleep,
9607
9617
  transactionRequestify,
9608
9618
  urlJoin,
9609
9619
  withTimeout,