@fuel-ts/account 0.0.0-rc-2045-20240415152456 → 0.0.0-rc-1832-20240415161726
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.global.js +124 -142
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +75 -96
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +41 -62
- package/dist/index.mjs.map +1 -1
- package/dist/predicate/predicate.d.ts +1 -0
- package/dist/predicate/predicate.d.ts.map +1 -1
- package/dist/providers/provider.d.ts +2 -13
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/transaction-request/input.d.ts.map +1 -1
- package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
- package/dist/test-utils.global.js +125 -144
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +71 -93
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +42 -64
- package/dist/test-utils.mjs.map +1 -1
- package/package.json +16 -16
package/dist/index.js
CHANGED
@@ -1173,7 +1173,6 @@ var MemoryCache = class {
|
|
1173
1173
|
};
|
1174
1174
|
|
1175
1175
|
// src/providers/transaction-request/input.ts
|
1176
|
-
var import_abi_coder = require("@fuel-ts/abi-coder");
|
1177
1176
|
var import_configs2 = require("@fuel-ts/address/configs");
|
1178
1177
|
var import_errors3 = require("@fuel-ts/errors");
|
1179
1178
|
var import_math2 = require("@fuel-ts/math");
|
@@ -1187,8 +1186,8 @@ var inputify = (value) => {
|
|
1187
1186
|
const predicateData = (0, import_utils3.arrayify)(value.predicateData ?? "0x");
|
1188
1187
|
return {
|
1189
1188
|
type: import_transactions.InputType.Coin,
|
1190
|
-
txID: (0, import_utils3.hexlify)((0, import_utils3.arrayify)(value.id).slice(0,
|
1191
|
-
outputIndex: (0,
|
1189
|
+
txID: (0, import_utils3.hexlify)((0, import_utils3.arrayify)(value.id).slice(0, 32)),
|
1190
|
+
outputIndex: (0, import_utils3.arrayify)(value.id)[32],
|
1192
1191
|
owner: (0, import_utils3.hexlify)(value.owner),
|
1193
1192
|
amount: (0, import_math2.bn)(value.amount),
|
1194
1193
|
assetId: (0, import_utils3.hexlify)(value.assetId),
|
@@ -1306,10 +1305,8 @@ var outputify = (value) => {
|
|
1306
1305
|
};
|
1307
1306
|
|
1308
1307
|
// src/providers/transaction-request/transaction-request.ts
|
1309
|
-
var import_abi_coder2 = require("@fuel-ts/abi-coder");
|
1310
1308
|
var import_address = require("@fuel-ts/address");
|
1311
1309
|
var import_configs7 = require("@fuel-ts/address/configs");
|
1312
|
-
var import_crypto = require("@fuel-ts/crypto");
|
1313
1310
|
var import_math7 = require("@fuel-ts/math");
|
1314
1311
|
var import_transactions6 = require("@fuel-ts/transactions");
|
1315
1312
|
var import_utils9 = require("@fuel-ts/utils");
|
@@ -2057,7 +2054,8 @@ var BaseTransactionRequest = class {
|
|
2057
2054
|
assetId,
|
2058
2055
|
txPointer: "0x00000000000000000000000000000000",
|
2059
2056
|
witnessIndex,
|
2060
|
-
predicate: predicate?.bytes
|
2057
|
+
predicate: predicate?.bytes,
|
2058
|
+
predicateData: predicate?.predicateDataBytes
|
2061
2059
|
};
|
2062
2060
|
this.pushInput(input);
|
2063
2061
|
this.addChangeOutput(owner, assetId);
|
@@ -2089,7 +2087,8 @@ var BaseTransactionRequest = class {
|
|
2089
2087
|
recipient: recipient.toB256(),
|
2090
2088
|
amount,
|
2091
2089
|
witnessIndex,
|
2092
|
-
predicate: predicate?.bytes
|
2090
|
+
predicate: predicate?.bytes,
|
2091
|
+
predicateData: predicate?.predicateDataBytes
|
2093
2092
|
};
|
2094
2093
|
this.pushInput(input);
|
2095
2094
|
this.addChangeOutput(recipient, assetId);
|
@@ -2244,6 +2243,12 @@ var BaseTransactionRequest = class {
|
|
2244
2243
|
* @param quantities - CoinQuantity Array.
|
2245
2244
|
*/
|
2246
2245
|
fundWithFakeUtxos(quantities, resourcesOwner) {
|
2246
|
+
let idCounter = 0;
|
2247
|
+
const generateId = () => {
|
2248
|
+
const counterString = String(idCounter++);
|
2249
|
+
const id = import_configs7.ZeroBytes32.slice(0, -counterString.length).concat(counterString);
|
2250
|
+
return id;
|
2251
|
+
};
|
2247
2252
|
const findAssetInput = (assetId) => this.inputs.find((input) => {
|
2248
2253
|
if ("assetId" in input) {
|
2249
2254
|
return input.assetId === assetId;
|
@@ -2253,12 +2258,12 @@ var BaseTransactionRequest = class {
|
|
2253
2258
|
const updateAssetInput = (assetId, quantity) => {
|
2254
2259
|
const assetInput = findAssetInput(assetId);
|
2255
2260
|
if (assetInput && "assetId" in assetInput) {
|
2256
|
-
assetInput.id = (
|
2261
|
+
assetInput.id = generateId();
|
2257
2262
|
assetInput.amount = quantity;
|
2258
2263
|
} else {
|
2259
2264
|
this.addResources([
|
2260
2265
|
{
|
2261
|
-
id: (
|
2266
|
+
id: generateId(),
|
2262
2267
|
amount: quantity,
|
2263
2268
|
assetId,
|
2264
2269
|
owner: resourcesOwner || import_address.Address.fromRandom(),
|
@@ -2513,7 +2518,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2513
2518
|
};
|
2514
2519
|
|
2515
2520
|
// src/providers/transaction-request/script-transaction-request.ts
|
2516
|
-
var
|
2521
|
+
var import_abi_coder = require("@fuel-ts/abi-coder");
|
2517
2522
|
var import_address2 = require("@fuel-ts/address");
|
2518
2523
|
var import_configs10 = require("@fuel-ts/address/configs");
|
2519
2524
|
var import_math10 = require("@fuel-ts/math");
|
@@ -2705,7 +2710,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2705
2710
|
* @returns The current instance of the `ScriptTransactionRequest`.
|
2706
2711
|
*/
|
2707
2712
|
setData(abi, args) {
|
2708
|
-
const abiInterface = new
|
2713
|
+
const abiInterface = new import_abi_coder.Interface(abi);
|
2709
2714
|
this.scriptData = abiInterface.functions.main.encodeArguments(args);
|
2710
2715
|
return this;
|
2711
2716
|
}
|
@@ -2827,17 +2832,17 @@ var import_math13 = require("@fuel-ts/math");
|
|
2827
2832
|
var import_transactions14 = require("@fuel-ts/transactions");
|
2828
2833
|
|
2829
2834
|
// src/providers/transaction-summary/call.ts
|
2830
|
-
var
|
2835
|
+
var import_abi_coder2 = require("@fuel-ts/abi-coder");
|
2831
2836
|
var import_math12 = require("@fuel-ts/math");
|
2832
2837
|
var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
2833
|
-
const abiInterface = new
|
2838
|
+
const abiInterface = new import_abi_coder2.Interface(abi);
|
2834
2839
|
const callFunctionSelector = receipt.param1.toHex(8);
|
2835
2840
|
const functionFragment = abiInterface.getFunction(callFunctionSelector);
|
2836
2841
|
const inputs = functionFragment.jsonFn.inputs;
|
2837
2842
|
let encodedArgs;
|
2838
2843
|
if (functionFragment.isInputDataPointer) {
|
2839
2844
|
if (rawPayload) {
|
2840
|
-
const argsOffset = (0, import_math12.bn)(receipt.param2).sub((0,
|
2845
|
+
const argsOffset = (0, import_math12.bn)(receipt.param2).sub((0, import_abi_coder2.calculateVmTxMemory)({ maxInputs: maxInputs.toNumber() })).toNumber();
|
2841
2846
|
encodedArgs = `0x${rawPayload.slice(2).slice(argsOffset * 2)}`;
|
2842
2847
|
}
|
2843
2848
|
} else {
|
@@ -3487,13 +3492,13 @@ function assembleTransactionSummary(params) {
|
|
3487
3492
|
}
|
3488
3493
|
|
3489
3494
|
// src/providers/transaction-response/getDecodedLogs.ts
|
3490
|
-
var
|
3495
|
+
var import_abi_coder3 = require("@fuel-ts/abi-coder");
|
3491
3496
|
var import_transactions16 = require("@fuel-ts/transactions");
|
3492
3497
|
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3493
3498
|
return receipts.reduce((logs, receipt) => {
|
3494
3499
|
if (receipt.type === import_transactions16.ReceiptType.LogData || receipt.type === import_transactions16.ReceiptType.Log) {
|
3495
|
-
const interfaceToUse = new
|
3496
|
-
const data = receipt.type === import_transactions16.ReceiptType.Log ? new
|
3500
|
+
const interfaceToUse = new import_abi_coder3.Interface(externalAbis[receipt.id] || mainAbi);
|
3501
|
+
const data = receipt.type === import_transactions16.ReceiptType.Log ? new import_abi_coder3.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3497
3502
|
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3498
3503
|
logs.push(decodedLog);
|
3499
3504
|
}
|
@@ -4135,36 +4140,6 @@ var _Provider = class {
|
|
4135
4140
|
missingContractIds
|
4136
4141
|
};
|
4137
4142
|
}
|
4138
|
-
/**
|
4139
|
-
* Estimates the transaction gas and fee based on the provided transaction request.
|
4140
|
-
* @param transactionRequest - The transaction request object.
|
4141
|
-
* @returns An object containing the estimated minimum gas, minimum fee, maximum gas, and maximum fee.
|
4142
|
-
*/
|
4143
|
-
estimateTxGasAndFee(params) {
|
4144
|
-
const { transactionRequest } = params;
|
4145
|
-
const { gasPriceFactor, minGasPrice, maxGasPerTx } = this.getGasConfig();
|
4146
|
-
const chainInfo = this.getChain();
|
4147
|
-
const gasPrice = transactionRequest.gasPrice.eq(0) ? minGasPrice : transactionRequest.gasPrice;
|
4148
|
-
transactionRequest.gasPrice = gasPrice;
|
4149
|
-
const minGas = transactionRequest.calculateMinGas(chainInfo);
|
4150
|
-
const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
|
4151
|
-
if (transactionRequest.type === import_transactions18.TransactionType.Script) {
|
4152
|
-
if (transactionRequest.gasLimit.eq(0)) {
|
4153
|
-
transactionRequest.gasLimit = minGas;
|
4154
|
-
transactionRequest.gasLimit = maxGasPerTx.sub(
|
4155
|
-
transactionRequest.calculateMaxGas(chainInfo, minGas)
|
4156
|
-
);
|
4157
|
-
}
|
4158
|
-
}
|
4159
|
-
const maxGas = transactionRequest.calculateMaxGas(chainInfo, minGas);
|
4160
|
-
const maxFee = calculatePriceWithFactor(maxGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
|
4161
|
-
return {
|
4162
|
-
minGas,
|
4163
|
-
minFee,
|
4164
|
-
maxGas,
|
4165
|
-
maxFee
|
4166
|
-
};
|
4167
|
-
}
|
4168
4143
|
/**
|
4169
4144
|
* Executes a signed transaction without applying the states changes
|
4170
4145
|
* on the chain.
|
@@ -4212,16 +4187,17 @@ var _Provider = class {
|
|
4212
4187
|
signatureCallback
|
4213
4188
|
} = {}) {
|
4214
4189
|
const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
|
4215
|
-
const
|
4216
|
-
const
|
4190
|
+
const chainInfo = this.getChain();
|
4191
|
+
const { gasPriceFactor, minGasPrice, maxGasPerTx } = this.getGasConfig();
|
4192
|
+
const gasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
|
4217
4193
|
const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
|
4218
4194
|
const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
|
4219
4195
|
const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
|
4220
4196
|
txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
|
4221
|
-
if (isScriptTransaction) {
|
4222
|
-
txRequestClone.gasLimit = (0, import_math15.bn)(0);
|
4223
|
-
}
|
4224
4197
|
if (estimatePredicates) {
|
4198
|
+
if (isScriptTransaction) {
|
4199
|
+
txRequestClone.gasLimit = (0, import_math15.bn)(0);
|
4200
|
+
}
|
4225
4201
|
if (resourcesOwner && "populateTransactionPredicateData" in resourcesOwner) {
|
4226
4202
|
resourcesOwner.populateTransactionPredicateData(txRequestClone);
|
4227
4203
|
}
|
@@ -4230,34 +4206,36 @@ var _Provider = class {
|
|
4230
4206
|
if (signatureCallback && isScriptTransaction) {
|
4231
4207
|
await signatureCallback(txRequestClone);
|
4232
4208
|
}
|
4233
|
-
|
4234
|
-
|
4235
|
-
});
|
4209
|
+
const minGas = txRequestClone.calculateMinGas(chainInfo);
|
4210
|
+
const maxGas = txRequestClone.calculateMaxGas(chainInfo, minGas);
|
4236
4211
|
let receipts = [];
|
4237
4212
|
let missingContractIds = [];
|
4238
4213
|
let outputVariables = 0;
|
4239
|
-
let gasUsed = (0, import_math15.bn)(0);
|
4240
4214
|
if (isScriptTransaction && estimateTxDependencies) {
|
4241
4215
|
txRequestClone.gasPrice = (0, import_math15.bn)(0);
|
4216
|
+
txRequestClone.gasLimit = (0, import_math15.bn)(maxGasPerTx.sub(maxGas).toNumber() * 0.9);
|
4242
4217
|
const result = await this.estimateTxDependencies(txRequestClone);
|
4243
4218
|
receipts = result.receipts;
|
4244
4219
|
outputVariables = result.outputVariables;
|
4245
4220
|
missingContractIds = result.missingContractIds;
|
4246
|
-
gasUsed = isScriptTransaction ? getGasUsedFromReceipts(receipts) : gasUsed;
|
4247
|
-
txRequestClone.gasLimit = gasUsed;
|
4248
|
-
txRequestClone.gasPrice = setGasPrice;
|
4249
|
-
({ maxFee, maxGas, minFee, minGas } = this.estimateTxGasAndFee({
|
4250
|
-
transactionRequest: txRequestClone
|
4251
|
-
}));
|
4252
4221
|
}
|
4222
|
+
const gasUsed = isScriptTransaction ? getGasUsedFromReceipts(receipts) : minGas;
|
4223
|
+
const usedFee = calculatePriceWithFactor(
|
4224
|
+
gasUsed,
|
4225
|
+
gasPrice,
|
4226
|
+
gasPriceFactor
|
4227
|
+
).normalizeZeroToOne();
|
4228
|
+
const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
|
4229
|
+
const maxFee = calculatePriceWithFactor(maxGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
|
4253
4230
|
return {
|
4254
4231
|
requiredQuantities: allQuantities,
|
4255
4232
|
receipts,
|
4256
4233
|
gasUsed,
|
4257
4234
|
minGasPrice,
|
4258
|
-
gasPrice
|
4235
|
+
gasPrice,
|
4259
4236
|
minGas,
|
4260
4237
|
maxGas,
|
4238
|
+
usedFee,
|
4261
4239
|
minFee,
|
4262
4240
|
maxFee,
|
4263
4241
|
estimatedInputs: txRequestClone.inputs,
|
@@ -4890,13 +4868,13 @@ var assets = [
|
|
4890
4868
|
];
|
4891
4869
|
|
4892
4870
|
// src/utils/formatTransferToContractScriptData.ts
|
4893
|
-
var
|
4871
|
+
var import_abi_coder4 = require("@fuel-ts/abi-coder");
|
4894
4872
|
var import_math17 = require("@fuel-ts/math");
|
4895
4873
|
var import_utils27 = require("@fuel-ts/utils");
|
4896
4874
|
var asm = __toESM(require("@fuels/vm-asm"));
|
4897
4875
|
var formatTransferToContractScriptData = (params) => {
|
4898
4876
|
const { assetId, amountToTransfer, hexlifiedContractId } = params;
|
4899
|
-
const numberCoder = new
|
4877
|
+
const numberCoder = new import_abi_coder4.BigNumberCoder("u64");
|
4900
4878
|
const encoded = numberCoder.encode(new import_math17.BN(amountToTransfer).toNumber());
|
4901
4879
|
const scriptData = Uint8Array.from([
|
4902
4880
|
...(0, import_utils27.arrayify)(hexlifiedContractId),
|
@@ -5351,7 +5329,7 @@ var import_utils31 = require("@fuel-ts/utils");
|
|
5351
5329
|
|
5352
5330
|
// src/signer/signer.ts
|
5353
5331
|
var import_address5 = require("@fuel-ts/address");
|
5354
|
-
var
|
5332
|
+
var import_crypto = require("@fuel-ts/crypto");
|
5355
5333
|
var import_hasher2 = require("@fuel-ts/hasher");
|
5356
5334
|
var import_math19 = require("@fuel-ts/math");
|
5357
5335
|
var import_utils29 = require("@fuel-ts/utils");
|
@@ -5444,7 +5422,7 @@ var Signer = class {
|
|
5444
5422
|
* @returns random 32-byte hashed
|
5445
5423
|
*/
|
5446
5424
|
static generatePrivateKey(entropy) {
|
5447
|
-
return entropy ? (0, import_hasher2.hash)((0, import_utils29.concat)([(0,
|
5425
|
+
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);
|
5448
5426
|
}
|
5449
5427
|
/**
|
5450
5428
|
* Extended publicKey from a compact publicKey
|
@@ -5460,7 +5438,7 @@ var Signer = class {
|
|
5460
5438
|
|
5461
5439
|
// src/wallet/keystore-wallet.ts
|
5462
5440
|
var import_address6 = require("@fuel-ts/address");
|
5463
|
-
var
|
5441
|
+
var import_crypto2 = require("@fuel-ts/crypto");
|
5464
5442
|
var import_errors17 = require("@fuel-ts/errors");
|
5465
5443
|
var import_utils30 = require("@fuel-ts/utils");
|
5466
5444
|
var import_uuid = require("uuid");
|
@@ -5476,22 +5454,22 @@ var removeHexPrefix = (hexString) => {
|
|
5476
5454
|
return hexString;
|
5477
5455
|
};
|
5478
5456
|
async function encryptKeystoreWallet(privateKey, address, password) {
|
5479
|
-
const privateKeyBuffer = (0,
|
5457
|
+
const privateKeyBuffer = (0, import_crypto2.bufferFromString)(removeHexPrefix(privateKey), "hex");
|
5480
5458
|
const ownerAddress = import_address6.Address.fromAddressOrString(address);
|
5481
|
-
const salt = (0,
|
5482
|
-
const key = (0,
|
5483
|
-
password: (0,
|
5459
|
+
const salt = (0, import_crypto2.randomBytes)(DEFAULT_KEY_SIZE);
|
5460
|
+
const key = (0, import_crypto2.scrypt)({
|
5461
|
+
password: (0, import_crypto2.bufferFromString)(password),
|
5484
5462
|
salt,
|
5485
5463
|
dklen: DEFAULT_KEY_SIZE,
|
5486
5464
|
n: 2 ** DEFAULT_KDF_PARAMS_LOG_N,
|
5487
5465
|
r: DEFAULT_KDF_PARAMS_R,
|
5488
5466
|
p: DEFAULT_KDF_PARAMS_P
|
5489
5467
|
});
|
5490
|
-
const iv = (0,
|
5491
|
-
const ciphertext = await (0,
|
5468
|
+
const iv = (0, import_crypto2.randomBytes)(DEFAULT_IV_SIZE);
|
5469
|
+
const ciphertext = await (0, import_crypto2.encryptJsonWalletData)(privateKeyBuffer, key, iv);
|
5492
5470
|
const data = Uint8Array.from([...key.subarray(16, 32), ...ciphertext]);
|
5493
|
-
const macHashUint8Array = (0,
|
5494
|
-
const mac = (0,
|
5471
|
+
const macHashUint8Array = (0, import_crypto2.keccak256)(data);
|
5472
|
+
const mac = (0, import_crypto2.stringFromBuffer)(macHashUint8Array, "hex");
|
5495
5473
|
const keystore = {
|
5496
5474
|
id: (0, import_uuid.v4)(),
|
5497
5475
|
version: 3,
|
@@ -5499,15 +5477,15 @@ async function encryptKeystoreWallet(privateKey, address, password) {
|
|
5499
5477
|
crypto: {
|
5500
5478
|
cipher: "aes-128-ctr",
|
5501
5479
|
mac,
|
5502
|
-
cipherparams: { iv: (0,
|
5503
|
-
ciphertext: (0,
|
5480
|
+
cipherparams: { iv: (0, import_crypto2.stringFromBuffer)(iv, "hex") },
|
5481
|
+
ciphertext: (0, import_crypto2.stringFromBuffer)(ciphertext, "hex"),
|
5504
5482
|
kdf: "scrypt",
|
5505
5483
|
kdfparams: {
|
5506
5484
|
dklen: DEFAULT_KEY_SIZE,
|
5507
5485
|
n: 2 ** DEFAULT_KDF_PARAMS_LOG_N,
|
5508
5486
|
p: DEFAULT_KDF_PARAMS_P,
|
5509
5487
|
r: DEFAULT_KDF_PARAMS_R,
|
5510
|
-
salt: (0,
|
5488
|
+
salt: (0, import_crypto2.stringFromBuffer)(salt, "hex")
|
5511
5489
|
}
|
5512
5490
|
}
|
5513
5491
|
};
|
@@ -5523,11 +5501,11 @@ async function decryptKeystoreWallet(jsonWallet, password) {
|
|
5523
5501
|
kdfparams: { dklen, n, r, p, salt }
|
5524
5502
|
}
|
5525
5503
|
} = keystoreWallet;
|
5526
|
-
const ciphertextBuffer = (0,
|
5527
|
-
const ivBuffer = (0,
|
5528
|
-
const saltBuffer = (0,
|
5529
|
-
const passwordBuffer = (0,
|
5530
|
-
const key = (0,
|
5504
|
+
const ciphertextBuffer = (0, import_crypto2.bufferFromString)(ciphertext, "hex");
|
5505
|
+
const ivBuffer = (0, import_crypto2.bufferFromString)(iv, "hex");
|
5506
|
+
const saltBuffer = (0, import_crypto2.bufferFromString)(salt, "hex");
|
5507
|
+
const passwordBuffer = (0, import_crypto2.bufferFromString)(password);
|
5508
|
+
const key = (0, import_crypto2.scrypt)({
|
5531
5509
|
password: passwordBuffer,
|
5532
5510
|
salt: saltBuffer,
|
5533
5511
|
n,
|
@@ -5536,15 +5514,15 @@ async function decryptKeystoreWallet(jsonWallet, password) {
|
|
5536
5514
|
dklen
|
5537
5515
|
});
|
5538
5516
|
const data = Uint8Array.from([...key.subarray(16, 32), ...ciphertextBuffer]);
|
5539
|
-
const macHashUint8Array = (0,
|
5540
|
-
const macHash = (0,
|
5517
|
+
const macHashUint8Array = (0, import_crypto2.keccak256)(data);
|
5518
|
+
const macHash = (0, import_crypto2.stringFromBuffer)(macHashUint8Array, "hex");
|
5541
5519
|
if (mac !== macHash) {
|
5542
5520
|
throw new import_errors17.FuelError(
|
5543
5521
|
import_errors17.ErrorCode.INVALID_PASSWORD,
|
5544
5522
|
"Failed to decrypt the keystore wallet, the provided password is incorrect."
|
5545
5523
|
);
|
5546
5524
|
}
|
5547
|
-
const buffer = await (0,
|
5525
|
+
const buffer = await (0, import_crypto2.decryptJsonWalletData)(ciphertextBuffer, key, ivBuffer);
|
5548
5526
|
const privateKey = (0, import_utils30.hexlify)(buffer);
|
5549
5527
|
return privateKey;
|
5550
5528
|
}
|
@@ -5669,7 +5647,7 @@ var import_utils35 = require("@fuel-ts/utils");
|
|
5669
5647
|
var import_ethers3 = require("ethers");
|
5670
5648
|
|
5671
5649
|
// src/mnemonic/mnemonic.ts
|
5672
|
-
var
|
5650
|
+
var import_crypto3 = require("@fuel-ts/crypto");
|
5673
5651
|
var import_errors19 = require("@fuel-ts/errors");
|
5674
5652
|
var import_hasher5 = require("@fuel-ts/hasher");
|
5675
5653
|
var import_utils33 = require("@fuel-ts/utils");
|
@@ -8030,7 +8008,7 @@ var Mnemonic = class {
|
|
8030
8008
|
* @returns A randomly generated mnemonic
|
8031
8009
|
*/
|
8032
8010
|
static generate(size = 32, extraEntropy = "") {
|
8033
|
-
const entropy = extraEntropy ? (0, import_hasher5.sha256)((0, import_utils33.concat)([(0,
|
8011
|
+
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);
|
8034
8012
|
return Mnemonic.entropyToMnemonic(entropy);
|
8035
8013
|
}
|
8036
8014
|
};
|
@@ -8402,7 +8380,7 @@ __publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
|
|
8402
8380
|
|
8403
8381
|
// src/wallet-manager/wallet-manager.ts
|
8404
8382
|
var import_address9 = require("@fuel-ts/address");
|
8405
|
-
var
|
8383
|
+
var import_crypto4 = require("@fuel-ts/crypto");
|
8406
8384
|
var import_errors23 = require("@fuel-ts/errors");
|
8407
8385
|
var import_events = require("events");
|
8408
8386
|
|
@@ -8730,7 +8708,7 @@ var _WalletManager = class extends import_events.EventEmitter {
|
|
8730
8708
|
await assert(!__privateGet(this, _isLocked), ERROR_MESSAGES.wallet_not_unlocked);
|
8731
8709
|
const data = await this.storage.getItem(this.STORAGE_KEY);
|
8732
8710
|
if (data) {
|
8733
|
-
const state = await (0,
|
8711
|
+
const state = await (0, import_crypto4.decrypt)(__privateGet(this, _passphrase), JSON.parse(data));
|
8734
8712
|
__privateSet(this, _vaults, __privateMethod(this, _deserializeVaults, deserializeVaults_fn).call(this, state.vaults));
|
8735
8713
|
}
|
8736
8714
|
}
|
@@ -8739,7 +8717,7 @@ var _WalletManager = class extends import_events.EventEmitter {
|
|
8739
8717
|
*/
|
8740
8718
|
async saveState() {
|
8741
8719
|
await assert(!__privateGet(this, _isLocked), ERROR_MESSAGES.wallet_not_unlocked);
|
8742
|
-
const encryptedData = await (0,
|
8720
|
+
const encryptedData = await (0, import_crypto4.encrypt)(__privateGet(this, _passphrase), {
|
8743
8721
|
vaults: __privateMethod(this, _serializeVaults, serializeVaults_fn).call(this, __privateGet(this, _vaults))
|
8744
8722
|
});
|
8745
8723
|
await this.storage.setItem(this.STORAGE_KEY, JSON.stringify(encryptedData));
|
@@ -8815,7 +8793,7 @@ var StorageAbstract = class {
|
|
8815
8793
|
};
|
8816
8794
|
|
8817
8795
|
// src/predicate/predicate.ts
|
8818
|
-
var
|
8796
|
+
var import_abi_coder5 = require("@fuel-ts/abi-coder");
|
8819
8797
|
var import_address10 = require("@fuel-ts/address");
|
8820
8798
|
var import_configs13 = require("@fuel-ts/address/configs");
|
8821
8799
|
var import_errors25 = require("@fuel-ts/errors");
|
@@ -8838,6 +8816,7 @@ var getPredicateRoot = (bytecode) => {
|
|
8838
8816
|
// src/predicate/predicate.ts
|
8839
8817
|
var Predicate = class extends Account {
|
8840
8818
|
bytes;
|
8819
|
+
predicateDataBytes = Uint8Array.from([]);
|
8841
8820
|
predicateData = [];
|
8842
8821
|
interface;
|
8843
8822
|
/**
|
@@ -8925,10 +8904,10 @@ var Predicate = class extends Account {
|
|
8925
8904
|
}
|
8926
8905
|
const mainFn = this.interface?.functions.main;
|
8927
8906
|
const paddedCode = new import_transactions20.ByteArrayCoder(this.bytes.length).encode(this.bytes);
|
8928
|
-
const VM_TX_MEMORY = (0,
|
8907
|
+
const VM_TX_MEMORY = (0, import_abi_coder5.calculateVmTxMemory)({
|
8929
8908
|
maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
|
8930
8909
|
});
|
8931
|
-
const OFFSET = VM_TX_MEMORY +
|
8910
|
+
const OFFSET = VM_TX_MEMORY + import_abi_coder5.SCRIPT_FIXED_SIZE + import_abi_coder5.INPUT_COIN_FIXED_SIZE + import_abi_coder5.WORD_SIZE + paddedCode.byteLength + policiesLength * import_abi_coder5.WORD_SIZE;
|
8932
8911
|
return mainFn?.encodeArguments(this.predicateData, OFFSET) || new Uint8Array();
|
8933
8912
|
}
|
8934
8913
|
/**
|
@@ -8943,7 +8922,7 @@ var Predicate = class extends Account {
|
|
8943
8922
|
let predicateBytes = (0, import_utils37.arrayify)(bytes);
|
8944
8923
|
let abiInterface;
|
8945
8924
|
if (jsonAbi) {
|
8946
|
-
abiInterface = new
|
8925
|
+
abiInterface = new import_abi_coder5.Interface(jsonAbi);
|
8947
8926
|
if (abiInterface.functions.main === void 0) {
|
8948
8927
|
throw new import_errors25.FuelError(
|
8949
8928
|
import_errors25.ErrorCode.ABI_MAIN_METHOD_MISSING,
|