@fuel-ts/account 0.0.0-rc-1962-20240328141721 → 0.0.0-rc-1895-20240328175953
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 +128 -12
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +541 -468
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +318 -240
- package/dist/index.mjs.map +1 -1
- package/dist/providers/transaction-response/transaction-response.d.ts.map +1 -1
- package/dist/providers/utils/extract-tx-error.d.ts +30 -0
- package/dist/providers/utils/extract-tx-error.d.ts.map +1 -0
- package/dist/providers/utils/index.d.ts +1 -0
- package/dist/providers/utils/index.d.ts.map +1 -1
- package/dist/test-utils.global.js +128 -12
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +501 -434
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +288 -213
- package/dist/test-utils.mjs.map +1 -1
- package/package.json +16 -16
package/dist/index.mjs
CHANGED
@@ -30,9 +30,9 @@ var __privateMethod = (obj, member, method) => {
|
|
30
30
|
// src/account.ts
|
31
31
|
import { Address as Address3 } from "@fuel-ts/address";
|
32
32
|
import { BaseAssetId as BaseAssetId3 } from "@fuel-ts/address/configs";
|
33
|
-
import { ErrorCode as
|
33
|
+
import { ErrorCode as ErrorCode15, FuelError as FuelError15 } from "@fuel-ts/errors";
|
34
34
|
import { AbstractAccount } from "@fuel-ts/interfaces";
|
35
|
-
import { bn as
|
35
|
+
import { bn as bn17 } from "@fuel-ts/math";
|
36
36
|
import { arrayify as arrayify14 } from "@fuel-ts/utils";
|
37
37
|
|
38
38
|
// src/providers/coin-quantity.ts
|
@@ -73,8 +73,8 @@ var addAmountToAsset = (params) => {
|
|
73
73
|
|
74
74
|
// src/providers/provider.ts
|
75
75
|
import { Address as Address2 } from "@fuel-ts/address";
|
76
|
-
import { ErrorCode as
|
77
|
-
import { BN, bn as
|
76
|
+
import { ErrorCode as ErrorCode13, FuelError as FuelError13 } from "@fuel-ts/errors";
|
77
|
+
import { BN, bn as bn15, max } from "@fuel-ts/math";
|
78
78
|
import {
|
79
79
|
InputType as InputType6,
|
80
80
|
TransactionType as TransactionType8,
|
@@ -1157,7 +1157,7 @@ var outputify = (value) => {
|
|
1157
1157
|
// src/providers/transaction-request/transaction-request.ts
|
1158
1158
|
import { Address, addressify } from "@fuel-ts/address";
|
1159
1159
|
import { BaseAssetId as BaseAssetId2, ZeroBytes32 as ZeroBytes324 } from "@fuel-ts/address/configs";
|
1160
|
-
import { bn as
|
1160
|
+
import { bn as bn7 } from "@fuel-ts/math";
|
1161
1161
|
import {
|
1162
1162
|
PolicyType,
|
1163
1163
|
TransactionCoder,
|
@@ -1562,6 +1562,76 @@ function sleep(time) {
|
|
1562
1562
|
});
|
1563
1563
|
}
|
1564
1564
|
|
1565
|
+
// src/providers/utils/extract-tx-error.ts
|
1566
|
+
import { ErrorCode as ErrorCode7, FuelError as FuelError7 } from "@fuel-ts/errors";
|
1567
|
+
import { bn as bn6 } from "@fuel-ts/math";
|
1568
|
+
import { ReceiptType as ReceiptType3 } from "@fuel-ts/transactions";
|
1569
|
+
import {
|
1570
|
+
FAILED_REQUIRE_SIGNAL,
|
1571
|
+
FAILED_ASSERT_EQ_SIGNAL,
|
1572
|
+
FAILED_ASSERT_NE_SIGNAL,
|
1573
|
+
FAILED_ASSERT_SIGNAL,
|
1574
|
+
FAILED_TRANSFER_TO_ADDRESS_SIGNAL as FAILED_TRANSFER_TO_ADDRESS_SIGNAL2,
|
1575
|
+
PANIC_REASONS,
|
1576
|
+
PANIC_DOC_URL
|
1577
|
+
} from "@fuel-ts/transactions/configs";
|
1578
|
+
var assemblePanicError = (status) => {
|
1579
|
+
let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
|
1580
|
+
if (PANIC_REASONS.includes(status.reason)) {
|
1581
|
+
errorMessage = `${errorMessage}
|
1582
|
+
|
1583
|
+
You can read more about this error at:
|
1584
|
+
|
1585
|
+
${PANIC_DOC_URL}#variant.${status.reason}`;
|
1586
|
+
}
|
1587
|
+
return errorMessage;
|
1588
|
+
};
|
1589
|
+
var stringify = (obj) => JSON.stringify(obj, null, 2);
|
1590
|
+
var assembleRevertError = (receipts, logs) => {
|
1591
|
+
let errorMessage = "The transaction reverted with an unknown reason.";
|
1592
|
+
const revertReceipt = receipts.find(({ type }) => type === ReceiptType3.Revert);
|
1593
|
+
if (revertReceipt) {
|
1594
|
+
const reasonHex = bn6(revertReceipt.val).toHex();
|
1595
|
+
switch (reasonHex) {
|
1596
|
+
case FAILED_REQUIRE_SIGNAL: {
|
1597
|
+
errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
|
1598
|
+
break;
|
1599
|
+
}
|
1600
|
+
case FAILED_ASSERT_EQ_SIGNAL: {
|
1601
|
+
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1602
|
+
errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
|
1603
|
+
break;
|
1604
|
+
}
|
1605
|
+
case FAILED_ASSERT_NE_SIGNAL: {
|
1606
|
+
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1607
|
+
errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
|
1608
|
+
break;
|
1609
|
+
}
|
1610
|
+
case FAILED_ASSERT_SIGNAL:
|
1611
|
+
errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
|
1612
|
+
break;
|
1613
|
+
case FAILED_TRANSFER_TO_ADDRESS_SIGNAL2:
|
1614
|
+
errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
|
1615
|
+
break;
|
1616
|
+
default:
|
1617
|
+
errorMessage = `The transaction reverted with an unknown reason: ${revertReceipt.val}`;
|
1618
|
+
}
|
1619
|
+
}
|
1620
|
+
return errorMessage;
|
1621
|
+
};
|
1622
|
+
var extractTxError = (params) => {
|
1623
|
+
const { receipts, status, logs } = params;
|
1624
|
+
const isPanic = receipts.some(({ type }) => type === ReceiptType3.Panic);
|
1625
|
+
let err = status?.type === "FailureStatus" && isPanic ? assemblePanicError(status) : assembleRevertError(receipts, logs);
|
1626
|
+
err += `
|
1627
|
+
|
1628
|
+
logs: ${JSON.stringify(logs, null, 2)}`;
|
1629
|
+
err += `
|
1630
|
+
|
1631
|
+
receipts: ${JSON.stringify(receipts, null, 2)}`;
|
1632
|
+
return new FuelError7(ErrorCode7.SCRIPT_REVERTED, err);
|
1633
|
+
};
|
1634
|
+
|
1565
1635
|
// src/providers/transaction-request/errors.ts
|
1566
1636
|
var ChangeOutputCollisionError = class extends Error {
|
1567
1637
|
name = "ChangeOutputCollisionError";
|
@@ -1624,10 +1694,10 @@ var BaseTransactionRequest = class {
|
|
1624
1694
|
outputs,
|
1625
1695
|
witnesses
|
1626
1696
|
} = {}) {
|
1627
|
-
this.gasPrice =
|
1697
|
+
this.gasPrice = bn7(gasPrice);
|
1628
1698
|
this.maturity = maturity ?? 0;
|
1629
|
-
this.witnessLimit = witnessLimit ?
|
1630
|
-
this.maxFee = maxFee ?
|
1699
|
+
this.witnessLimit = witnessLimit ? bn7(witnessLimit) : void 0;
|
1700
|
+
this.maxFee = maxFee ? bn7(maxFee) : void 0;
|
1631
1701
|
this.inputs = inputs ?? [];
|
1632
1702
|
this.outputs = outputs ?? [];
|
1633
1703
|
this.witnesses = witnesses ?? [];
|
@@ -2057,13 +2127,13 @@ var BaseTransactionRequest = class {
|
|
2057
2127
|
assetId,
|
2058
2128
|
owner: resourcesOwner || Address.fromRandom(),
|
2059
2129
|
maturity: 0,
|
2060
|
-
blockCreated:
|
2061
|
-
txCreatedIdx:
|
2130
|
+
blockCreated: bn7(1),
|
2131
|
+
txCreatedIdx: bn7(1)
|
2062
2132
|
}
|
2063
2133
|
]);
|
2064
2134
|
}
|
2065
2135
|
};
|
2066
|
-
updateAssetInput(BaseAssetId2,
|
2136
|
+
updateAssetInput(BaseAssetId2, bn7(1e11));
|
2067
2137
|
quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
|
2068
2138
|
}
|
2069
2139
|
/**
|
@@ -2074,7 +2144,7 @@ var BaseTransactionRequest = class {
|
|
2074
2144
|
*/
|
2075
2145
|
getCoinOutputsQuantities() {
|
2076
2146
|
const coinsQuantities = this.getCoinOutputs().map(({ amount, assetId }) => ({
|
2077
|
-
amount:
|
2147
|
+
amount: bn7(amount),
|
2078
2148
|
assetId: assetId.toString()
|
2079
2149
|
}));
|
2080
2150
|
return coinsQuantities;
|
@@ -2103,7 +2173,7 @@ var BaseTransactionRequest = class {
|
|
2103
2173
|
default:
|
2104
2174
|
return;
|
2105
2175
|
}
|
2106
|
-
if (correspondingInput && "predicateGasUsed" in correspondingInput &&
|
2176
|
+
if (correspondingInput && "predicateGasUsed" in correspondingInput && bn7(correspondingInput.predicateGasUsed).gt(0)) {
|
2107
2177
|
i.predicate = correspondingInput.predicate;
|
2108
2178
|
i.predicateData = correspondingInput.predicateData;
|
2109
2179
|
i.predicateGasUsed = correspondingInput.predicateGasUsed;
|
@@ -2114,14 +2184,14 @@ var BaseTransactionRequest = class {
|
|
2114
2184
|
|
2115
2185
|
// src/providers/transaction-request/create-transaction-request.ts
|
2116
2186
|
import { ZeroBytes32 as ZeroBytes326 } from "@fuel-ts/address/configs";
|
2117
|
-
import { bn as
|
2187
|
+
import { bn as bn9 } from "@fuel-ts/math";
|
2118
2188
|
import { TransactionType as TransactionType3, OutputType as OutputType4 } from "@fuel-ts/transactions";
|
2119
2189
|
import { arrayify as arrayify6, hexlify as hexlify9 } from "@fuel-ts/utils";
|
2120
2190
|
|
2121
2191
|
// src/providers/transaction-request/hash-transaction.ts
|
2122
2192
|
import { ZeroBytes32 as ZeroBytes325 } from "@fuel-ts/address/configs";
|
2123
2193
|
import { uint64ToBytesBE, sha256 } from "@fuel-ts/hasher";
|
2124
|
-
import { bn as
|
2194
|
+
import { bn as bn8 } from "@fuel-ts/math";
|
2125
2195
|
import { TransactionType as TransactionType2, InputType as InputType3, OutputType as OutputType3, TransactionCoder as TransactionCoder2 } from "@fuel-ts/transactions";
|
2126
2196
|
import { concat as concat2 } from "@fuel-ts/utils";
|
2127
2197
|
import { clone as clone2 } from "ramda";
|
@@ -2138,11 +2208,11 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2138
2208
|
blockHeight: 0,
|
2139
2209
|
txIndex: 0
|
2140
2210
|
};
|
2141
|
-
inputClone.predicateGasUsed =
|
2211
|
+
inputClone.predicateGasUsed = bn8(0);
|
2142
2212
|
return inputClone;
|
2143
2213
|
}
|
2144
2214
|
case InputType3.Message: {
|
2145
|
-
inputClone.predicateGasUsed =
|
2215
|
+
inputClone.predicateGasUsed = bn8(0);
|
2146
2216
|
return inputClone;
|
2147
2217
|
}
|
2148
2218
|
case InputType3.Contract: {
|
@@ -2169,12 +2239,12 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2169
2239
|
return outputClone;
|
2170
2240
|
}
|
2171
2241
|
case OutputType3.Change: {
|
2172
|
-
outputClone.amount =
|
2242
|
+
outputClone.amount = bn8(0);
|
2173
2243
|
return outputClone;
|
2174
2244
|
}
|
2175
2245
|
case OutputType3.Variable: {
|
2176
2246
|
outputClone.to = ZeroBytes325;
|
2177
|
-
outputClone.amount =
|
2247
|
+
outputClone.amount = bn8(0);
|
2178
2248
|
outputClone.assetId = ZeroBytes325;
|
2179
2249
|
return outputClone;
|
2180
2250
|
}
|
@@ -2298,7 +2368,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2298
2368
|
}
|
2299
2369
|
metadataGas(gasCosts) {
|
2300
2370
|
return calculateMetadataGasForTxCreate({
|
2301
|
-
contractBytesSize:
|
2371
|
+
contractBytesSize: bn9(arrayify6(this.witnesses[this.bytecodeWitnessIndex] || "0x").length),
|
2302
2372
|
gasCosts,
|
2303
2373
|
stateRootSize: this.storageSlots.length,
|
2304
2374
|
txBytesSize: this.byteSize()
|
@@ -2310,7 +2380,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2310
2380
|
import { Interface } from "@fuel-ts/abi-coder";
|
2311
2381
|
import { addressify as addressify2 } from "@fuel-ts/address";
|
2312
2382
|
import { ZeroBytes32 as ZeroBytes327 } from "@fuel-ts/address/configs";
|
2313
|
-
import { bn as
|
2383
|
+
import { bn as bn10 } from "@fuel-ts/math";
|
2314
2384
|
import { InputType as InputType4, OutputType as OutputType5, TransactionType as TransactionType4 } from "@fuel-ts/transactions";
|
2315
2385
|
import { arrayify as arrayify8, hexlify as hexlify10 } from "@fuel-ts/utils";
|
2316
2386
|
|
@@ -2364,7 +2434,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2364
2434
|
*/
|
2365
2435
|
constructor({ script, scriptData, gasLimit, ...rest } = {}) {
|
2366
2436
|
super(rest);
|
2367
|
-
this.gasLimit =
|
2437
|
+
this.gasLimit = bn10(gasLimit);
|
2368
2438
|
this.script = arrayify8(script ?? returnZeroScript.bytes);
|
2369
2439
|
this.scriptData = arrayify8(scriptData ?? returnZeroScript.encodeScriptData());
|
2370
2440
|
this.abis = rest.abis;
|
@@ -2512,7 +2582,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2512
2582
|
};
|
2513
2583
|
|
2514
2584
|
// src/providers/transaction-request/utils.ts
|
2515
|
-
import { ErrorCode as
|
2585
|
+
import { ErrorCode as ErrorCode8, FuelError as FuelError8 } from "@fuel-ts/errors";
|
2516
2586
|
import { TransactionType as TransactionType5 } from "@fuel-ts/transactions";
|
2517
2587
|
var transactionRequestify = (obj) => {
|
2518
2588
|
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
|
@@ -2527,14 +2597,14 @@ var transactionRequestify = (obj) => {
|
|
2527
2597
|
return CreateTransactionRequest.from(obj);
|
2528
2598
|
}
|
2529
2599
|
default: {
|
2530
|
-
throw new
|
2600
|
+
throw new FuelError8(ErrorCode8.INVALID_TRANSACTION_TYPE, `Invalid transaction type: ${type}.`);
|
2531
2601
|
}
|
2532
2602
|
}
|
2533
2603
|
};
|
2534
2604
|
|
2535
2605
|
// src/providers/transaction-response/transaction-response.ts
|
2536
|
-
import { ErrorCode as
|
2537
|
-
import { bn as
|
2606
|
+
import { ErrorCode as ErrorCode12, FuelError as FuelError12 } from "@fuel-ts/errors";
|
2607
|
+
import { bn as bn14 } from "@fuel-ts/math";
|
2538
2608
|
import { TransactionCoder as TransactionCoder4 } from "@fuel-ts/transactions";
|
2539
2609
|
import { arrayify as arrayify10 } from "@fuel-ts/utils";
|
2540
2610
|
|
@@ -2542,7 +2612,7 @@ import { arrayify as arrayify10 } from "@fuel-ts/utils";
|
|
2542
2612
|
import { DateTime, hexlify as hexlify11 } from "@fuel-ts/utils";
|
2543
2613
|
|
2544
2614
|
// src/providers/transaction-summary/calculate-transaction-fee.ts
|
2545
|
-
import { bn as
|
2615
|
+
import { bn as bn11 } from "@fuel-ts/math";
|
2546
2616
|
import { PolicyType as PolicyType2, TransactionCoder as TransactionCoder3, TransactionType as TransactionType6 } from "@fuel-ts/transactions";
|
2547
2617
|
import { arrayify as arrayify9 } from "@fuel-ts/utils";
|
2548
2618
|
var calculateTransactionFee = (params) => {
|
@@ -2551,24 +2621,24 @@ var calculateTransactionFee = (params) => {
|
|
2551
2621
|
rawPayload,
|
2552
2622
|
consensusParameters: { gasCosts, feeParams }
|
2553
2623
|
} = params;
|
2554
|
-
const gasPerByte =
|
2555
|
-
const gasPriceFactor =
|
2624
|
+
const gasPerByte = bn11(feeParams.gasPerByte);
|
2625
|
+
const gasPriceFactor = bn11(feeParams.gasPriceFactor);
|
2556
2626
|
const transactionBytes = arrayify9(rawPayload);
|
2557
2627
|
const [transaction] = new TransactionCoder3().decode(transactionBytes, 0);
|
2558
2628
|
if (transaction.type === TransactionType6.Mint) {
|
2559
2629
|
return {
|
2560
|
-
fee:
|
2561
|
-
minFee:
|
2562
|
-
maxFee:
|
2563
|
-
feeFromGasUsed:
|
2630
|
+
fee: bn11(0),
|
2631
|
+
minFee: bn11(0),
|
2632
|
+
maxFee: bn11(0),
|
2633
|
+
feeFromGasUsed: bn11(0)
|
2564
2634
|
};
|
2565
2635
|
}
|
2566
2636
|
const { type, witnesses, inputs, policies } = transaction;
|
2567
|
-
let metadataGas =
|
2568
|
-
let gasLimit =
|
2637
|
+
let metadataGas = bn11(0);
|
2638
|
+
let gasLimit = bn11(0);
|
2569
2639
|
if (type === TransactionType6.Create) {
|
2570
2640
|
const { bytecodeWitnessIndex, storageSlots } = transaction;
|
2571
|
-
const contractBytesSize =
|
2641
|
+
const contractBytesSize = bn11(arrayify9(witnesses[bytecodeWitnessIndex].data).length);
|
2572
2642
|
metadataGas = calculateMetadataGasForTxCreate({
|
2573
2643
|
contractBytesSize,
|
2574
2644
|
gasCosts,
|
@@ -2587,12 +2657,12 @@ var calculateTransactionFee = (params) => {
|
|
2587
2657
|
}
|
2588
2658
|
const minGas = getMinGas({
|
2589
2659
|
gasCosts,
|
2590
|
-
gasPerByte:
|
2660
|
+
gasPerByte: bn11(gasPerByte),
|
2591
2661
|
inputs,
|
2592
2662
|
metadataGas,
|
2593
2663
|
txBytesSize: transactionBytes.length
|
2594
2664
|
});
|
2595
|
-
const gasPrice =
|
2665
|
+
const gasPrice = bn11(policies.find((policy) => policy.type === PolicyType2.GasPrice)?.data);
|
2596
2666
|
const witnessLimit = policies.find((policy) => policy.type === PolicyType2.WitnessLimit)?.data;
|
2597
2667
|
const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
|
2598
2668
|
const maxGas = getMaxGas({
|
@@ -2616,13 +2686,13 @@ var calculateTransactionFee = (params) => {
|
|
2616
2686
|
|
2617
2687
|
// src/providers/transaction-summary/operations.ts
|
2618
2688
|
import { ZeroBytes32 as ZeroBytes328 } from "@fuel-ts/address/configs";
|
2619
|
-
import { ErrorCode as
|
2620
|
-
import { bn as
|
2621
|
-
import { ReceiptType as
|
2689
|
+
import { ErrorCode as ErrorCode10, FuelError as FuelError10 } from "@fuel-ts/errors";
|
2690
|
+
import { bn as bn13 } from "@fuel-ts/math";
|
2691
|
+
import { ReceiptType as ReceiptType4, TransactionType as TransactionType7 } from "@fuel-ts/transactions";
|
2622
2692
|
|
2623
2693
|
// src/providers/transaction-summary/call.ts
|
2624
2694
|
import { Interface as Interface2, calculateVmTxMemory } from "@fuel-ts/abi-coder";
|
2625
|
-
import { bn as
|
2695
|
+
import { bn as bn12 } from "@fuel-ts/math";
|
2626
2696
|
var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
2627
2697
|
const abiInterface = new Interface2(abi);
|
2628
2698
|
const callFunctionSelector = receipt.param1.toHex(8);
|
@@ -2631,7 +2701,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2631
2701
|
let encodedArgs;
|
2632
2702
|
if (functionFragment.isInputDataPointer) {
|
2633
2703
|
if (rawPayload) {
|
2634
|
-
const argsOffset =
|
2704
|
+
const argsOffset = bn12(receipt.param2).sub(calculateVmTxMemory({ maxInputs: maxInputs.toNumber() })).toNumber();
|
2635
2705
|
encodedArgs = `0x${rawPayload.slice(2).slice(argsOffset * 2)}`;
|
2636
2706
|
}
|
2637
2707
|
} else {
|
@@ -2665,7 +2735,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2665
2735
|
};
|
2666
2736
|
|
2667
2737
|
// src/providers/transaction-summary/input.ts
|
2668
|
-
import { ErrorCode as
|
2738
|
+
import { ErrorCode as ErrorCode9, FuelError as FuelError9 } from "@fuel-ts/errors";
|
2669
2739
|
import { InputType as InputType5 } from "@fuel-ts/transactions";
|
2670
2740
|
function getInputsByTypes(inputs, types) {
|
2671
2741
|
return inputs.filter((i) => types.includes(i.type));
|
@@ -2703,8 +2773,8 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2703
2773
|
return void 0;
|
2704
2774
|
}
|
2705
2775
|
if (contractInput.type !== InputType5.Contract) {
|
2706
|
-
throw new
|
2707
|
-
|
2776
|
+
throw new FuelError9(
|
2777
|
+
ErrorCode9.INVALID_TRANSACTION_INPUT,
|
2708
2778
|
`Contract input should be of type 'contract'.`
|
2709
2779
|
);
|
2710
2780
|
}
|
@@ -2792,8 +2862,8 @@ function getTransactionTypeName(transactionType) {
|
|
2792
2862
|
case TransactionType7.Script:
|
2793
2863
|
return "Script" /* Script */;
|
2794
2864
|
default:
|
2795
|
-
throw new
|
2796
|
-
|
2865
|
+
throw new FuelError10(
|
2866
|
+
ErrorCode10.INVALID_TRANSACTION_TYPE,
|
2797
2867
|
`Invalid transaction type: ${transactionType}.`
|
2798
2868
|
);
|
2799
2869
|
}
|
@@ -2815,10 +2885,10 @@ function hasSameAssetId(a) {
|
|
2815
2885
|
return (b) => a.assetId === b.assetId;
|
2816
2886
|
}
|
2817
2887
|
function getReceiptsCall(receipts) {
|
2818
|
-
return getReceiptsByType(receipts,
|
2888
|
+
return getReceiptsByType(receipts, ReceiptType4.Call);
|
2819
2889
|
}
|
2820
2890
|
function getReceiptsMessageOut(receipts) {
|
2821
|
-
return getReceiptsByType(receipts,
|
2891
|
+
return getReceiptsByType(receipts, ReceiptType4.MessageOut);
|
2822
2892
|
}
|
2823
2893
|
var mergeAssets = (op1, op2) => {
|
2824
2894
|
const assets1 = op1.assetsSent || [];
|
@@ -2831,7 +2901,7 @@ var mergeAssets = (op1, op2) => {
|
|
2831
2901
|
if (!matchingAsset) {
|
2832
2902
|
return asset1;
|
2833
2903
|
}
|
2834
|
-
const mergedAmount =
|
2904
|
+
const mergedAmount = bn13(asset1.amount).add(matchingAsset.amount);
|
2835
2905
|
return { ...asset1, amount: mergedAmount };
|
2836
2906
|
});
|
2837
2907
|
return mergedAssets.concat(filteredAssets);
|
@@ -2857,7 +2927,7 @@ function addOperation(operations, toAdd) {
|
|
2857
2927
|
return allOperations;
|
2858
2928
|
}
|
2859
2929
|
function getReceiptsTransferOut(receipts) {
|
2860
|
-
return getReceiptsByType(receipts,
|
2930
|
+
return getReceiptsByType(receipts, ReceiptType4.TransferOut);
|
2861
2931
|
}
|
2862
2932
|
function getWithdrawFromFuelOperations({
|
2863
2933
|
inputs,
|
@@ -3017,11 +3087,11 @@ function getTransferOperations({
|
|
3017
3087
|
});
|
3018
3088
|
const transferReceipts = getReceiptsByType(
|
3019
3089
|
receipts,
|
3020
|
-
|
3090
|
+
ReceiptType4.Transfer
|
3021
3091
|
);
|
3022
3092
|
const transferOutReceipts = getReceiptsByType(
|
3023
3093
|
receipts,
|
3024
|
-
|
3094
|
+
ReceiptType4.TransferOut
|
3025
3095
|
);
|
3026
3096
|
[...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
|
3027
3097
|
const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
|
@@ -3106,17 +3176,17 @@ function getOperations({
|
|
3106
3176
|
}
|
3107
3177
|
|
3108
3178
|
// src/providers/transaction-summary/receipt.ts
|
3109
|
-
import { ReceiptType as
|
3179
|
+
import { ReceiptType as ReceiptType5 } from "@fuel-ts/transactions";
|
3110
3180
|
var processGqlReceipt = (gqlReceipt) => {
|
3111
3181
|
const receipt = assembleReceiptByType(gqlReceipt);
|
3112
3182
|
switch (receipt.type) {
|
3113
|
-
case
|
3183
|
+
case ReceiptType5.ReturnData: {
|
3114
3184
|
return {
|
3115
3185
|
...receipt,
|
3116
3186
|
data: gqlReceipt.data || "0x"
|
3117
3187
|
};
|
3118
3188
|
}
|
3119
|
-
case
|
3189
|
+
case ReceiptType5.LogData: {
|
3120
3190
|
return {
|
3121
3191
|
...receipt,
|
3122
3192
|
data: gqlReceipt.data || "0x"
|
@@ -3129,7 +3199,7 @@ var processGqlReceipt = (gqlReceipt) => {
|
|
3129
3199
|
var extractMintedAssetsFromReceipts = (receipts) => {
|
3130
3200
|
const mintedAssets = [];
|
3131
3201
|
receipts.forEach((receipt) => {
|
3132
|
-
if (receipt.type ===
|
3202
|
+
if (receipt.type === ReceiptType5.Mint) {
|
3133
3203
|
mintedAssets.push({
|
3134
3204
|
subId: receipt.subId,
|
3135
3205
|
contractId: receipt.contractId,
|
@@ -3143,7 +3213,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
|
|
3143
3213
|
var extractBurnedAssetsFromReceipts = (receipts) => {
|
3144
3214
|
const burnedAssets = [];
|
3145
3215
|
receipts.forEach((receipt) => {
|
3146
|
-
if (receipt.type ===
|
3216
|
+
if (receipt.type === ReceiptType5.Burn) {
|
3147
3217
|
burnedAssets.push({
|
3148
3218
|
subId: receipt.subId,
|
3149
3219
|
contractId: receipt.contractId,
|
@@ -3156,7 +3226,7 @@ var extractBurnedAssetsFromReceipts = (receipts) => {
|
|
3156
3226
|
};
|
3157
3227
|
|
3158
3228
|
// src/providers/transaction-summary/status.ts
|
3159
|
-
import { ErrorCode as
|
3229
|
+
import { ErrorCode as ErrorCode11, FuelError as FuelError11 } from "@fuel-ts/errors";
|
3160
3230
|
var getTransactionStatusName = (gqlStatus) => {
|
3161
3231
|
switch (gqlStatus) {
|
3162
3232
|
case "FailureStatus":
|
@@ -3168,8 +3238,8 @@ var getTransactionStatusName = (gqlStatus) => {
|
|
3168
3238
|
case "SqueezedOutStatus":
|
3169
3239
|
return "squeezedout" /* squeezedout */;
|
3170
3240
|
default:
|
3171
|
-
throw new
|
3172
|
-
|
3241
|
+
throw new FuelError11(
|
3242
|
+
ErrorCode11.INVALID_TRANSACTION_STATUS,
|
3173
3243
|
`Invalid transaction status: ${gqlStatus}.`
|
3174
3244
|
);
|
3175
3245
|
}
|
@@ -3282,12 +3352,12 @@ function assembleTransactionSummary(params) {
|
|
3282
3352
|
|
3283
3353
|
// src/providers/transaction-response/getDecodedLogs.ts
|
3284
3354
|
import { Interface as Interface3, BigNumberCoder } from "@fuel-ts/abi-coder";
|
3285
|
-
import { ReceiptType as
|
3355
|
+
import { ReceiptType as ReceiptType6 } from "@fuel-ts/transactions";
|
3286
3356
|
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3287
3357
|
return receipts.reduce((logs, receipt) => {
|
3288
|
-
if (receipt.type ===
|
3358
|
+
if (receipt.type === ReceiptType6.LogData || receipt.type === ReceiptType6.Log) {
|
3289
3359
|
const interfaceToUse = new Interface3(externalAbis[receipt.id] || mainAbi);
|
3290
|
-
const data = receipt.type ===
|
3360
|
+
const data = receipt.type === ReceiptType6.Log ? new BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3291
3361
|
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3292
3362
|
logs.push(decodedLog);
|
3293
3363
|
}
|
@@ -3302,7 +3372,7 @@ var TransactionResponse = class {
|
|
3302
3372
|
/** Current provider */
|
3303
3373
|
provider;
|
3304
3374
|
/** Gas used on the transaction */
|
3305
|
-
gasUsed =
|
3375
|
+
gasUsed = bn14(0);
|
3306
3376
|
/** The graphql Transaction with receipts object. */
|
3307
3377
|
gqlTransaction;
|
3308
3378
|
abis;
|
@@ -3407,8 +3477,8 @@ var TransactionResponse = class {
|
|
3407
3477
|
});
|
3408
3478
|
for await (const { statusChange } of subscription) {
|
3409
3479
|
if (statusChange.type === "SqueezedOutStatus") {
|
3410
|
-
throw new
|
3411
|
-
|
3480
|
+
throw new FuelError12(
|
3481
|
+
ErrorCode12.TRANSACTION_SQUEEZED_OUT,
|
3412
3482
|
`Transaction Squeezed Out with reason: ${statusChange.reason}`
|
3413
3483
|
);
|
3414
3484
|
}
|
@@ -3430,14 +3500,26 @@ var TransactionResponse = class {
|
|
3430
3500
|
gqlTransaction: this.gqlTransaction,
|
3431
3501
|
...transactionSummary
|
3432
3502
|
};
|
3503
|
+
let logs = [];
|
3433
3504
|
if (this.abis) {
|
3434
|
-
|
3505
|
+
logs = getDecodedLogs(
|
3435
3506
|
transactionSummary.receipts,
|
3436
3507
|
this.abis.main,
|
3437
3508
|
this.abis.otherContractsAbis
|
3438
3509
|
);
|
3439
3510
|
transactionResult.logs = logs;
|
3440
3511
|
}
|
3512
|
+
if (transactionResult.isStatusFailure) {
|
3513
|
+
const {
|
3514
|
+
receipts,
|
3515
|
+
gqlTransaction: { status }
|
3516
|
+
} = transactionResult;
|
3517
|
+
throw extractTxError({
|
3518
|
+
receipts,
|
3519
|
+
status,
|
3520
|
+
logs
|
3521
|
+
});
|
3522
|
+
}
|
3441
3523
|
return transactionResult;
|
3442
3524
|
}
|
3443
3525
|
/**
|
@@ -3446,14 +3528,7 @@ var TransactionResponse = class {
|
|
3446
3528
|
* @param contractsAbiMap - The contracts ABI map.
|
3447
3529
|
*/
|
3448
3530
|
async wait(contractsAbiMap) {
|
3449
|
-
|
3450
|
-
if (result.isStatusFailure) {
|
3451
|
-
throw new FuelError11(
|
3452
|
-
ErrorCode11.TRANSACTION_FAILED,
|
3453
|
-
`Transaction failed: ${result.gqlTransaction.status.reason}`
|
3454
|
-
);
|
3455
|
-
}
|
3456
|
-
return result;
|
3531
|
+
return this.waitForResult(contractsAbiMap);
|
3457
3532
|
}
|
3458
3533
|
};
|
3459
3534
|
|
@@ -3515,29 +3590,29 @@ var processGqlChain = (chain) => {
|
|
3515
3590
|
const { contractParams, feeParams, predicateParams, scriptParams, txParams, gasCosts } = consensusParameters;
|
3516
3591
|
return {
|
3517
3592
|
name,
|
3518
|
-
baseChainHeight:
|
3593
|
+
baseChainHeight: bn15(daHeight),
|
3519
3594
|
consensusParameters: {
|
3520
|
-
contractMaxSize:
|
3521
|
-
maxInputs:
|
3522
|
-
maxOutputs:
|
3523
|
-
maxWitnesses:
|
3524
|
-
maxGasPerTx:
|
3525
|
-
maxScriptLength:
|
3526
|
-
maxScriptDataLength:
|
3527
|
-
maxStorageSlots:
|
3528
|
-
maxPredicateLength:
|
3529
|
-
maxPredicateDataLength:
|
3530
|
-
maxGasPerPredicate:
|
3531
|
-
gasPriceFactor:
|
3532
|
-
gasPerByte:
|
3533
|
-
maxMessageDataLength:
|
3534
|
-
chainId:
|
3595
|
+
contractMaxSize: bn15(contractParams.contractMaxSize),
|
3596
|
+
maxInputs: bn15(txParams.maxInputs),
|
3597
|
+
maxOutputs: bn15(txParams.maxOutputs),
|
3598
|
+
maxWitnesses: bn15(txParams.maxWitnesses),
|
3599
|
+
maxGasPerTx: bn15(txParams.maxGasPerTx),
|
3600
|
+
maxScriptLength: bn15(scriptParams.maxScriptLength),
|
3601
|
+
maxScriptDataLength: bn15(scriptParams.maxScriptDataLength),
|
3602
|
+
maxStorageSlots: bn15(contractParams.maxStorageSlots),
|
3603
|
+
maxPredicateLength: bn15(predicateParams.maxPredicateLength),
|
3604
|
+
maxPredicateDataLength: bn15(predicateParams.maxPredicateDataLength),
|
3605
|
+
maxGasPerPredicate: bn15(predicateParams.maxGasPerPredicate),
|
3606
|
+
gasPriceFactor: bn15(feeParams.gasPriceFactor),
|
3607
|
+
gasPerByte: bn15(feeParams.gasPerByte),
|
3608
|
+
maxMessageDataLength: bn15(predicateParams.maxMessageDataLength),
|
3609
|
+
chainId: bn15(consensusParameters.chainId),
|
3535
3610
|
gasCosts
|
3536
3611
|
},
|
3537
3612
|
gasCosts,
|
3538
3613
|
latestBlock: {
|
3539
3614
|
id: latestBlock.id,
|
3540
|
-
height:
|
3615
|
+
height: bn15(latestBlock.header.height),
|
3541
3616
|
time: latestBlock.header.time,
|
3542
3617
|
transactions: latestBlock.transactions.map((i) => ({
|
3543
3618
|
id: i.id
|
@@ -3607,8 +3682,8 @@ var _Provider = class {
|
|
3607
3682
|
getChain() {
|
3608
3683
|
const chain = _Provider.chainInfoCache[this.url];
|
3609
3684
|
if (!chain) {
|
3610
|
-
throw new
|
3611
|
-
|
3685
|
+
throw new FuelError13(
|
3686
|
+
ErrorCode13.CHAIN_INFO_CACHE_EMPTY,
|
3612
3687
|
"Chain info cache is empty. Make sure you have called `Provider.create` to initialize the provider."
|
3613
3688
|
);
|
3614
3689
|
}
|
@@ -3620,8 +3695,8 @@ var _Provider = class {
|
|
3620
3695
|
getNode() {
|
3621
3696
|
const node = _Provider.nodeInfoCache[this.url];
|
3622
3697
|
if (!node) {
|
3623
|
-
throw new
|
3624
|
-
|
3698
|
+
throw new FuelError13(
|
3699
|
+
ErrorCode13.NODE_INFO_CACHE_EMPTY,
|
3625
3700
|
"Node info cache is empty. Make sure you have called `Provider.create` to initialize the provider."
|
3626
3701
|
);
|
3627
3702
|
}
|
@@ -3668,8 +3743,8 @@ var _Provider = class {
|
|
3668
3743
|
static ensureClientVersionIsSupported(nodeInfo) {
|
3669
3744
|
const { isMajorSupported, isMinorSupported, supportedVersion } = checkFuelCoreVersionCompatibility(nodeInfo.nodeVersion);
|
3670
3745
|
if (!isMajorSupported || !isMinorSupported) {
|
3671
|
-
throw new
|
3672
|
-
|
3746
|
+
throw new FuelError13(
|
3747
|
+
FuelError13.CODES.UNSUPPORTED_FUEL_CLIENT_VERSION,
|
3673
3748
|
`Fuel client version: ${nodeInfo.nodeVersion}, Supported version: ${supportedVersion}`
|
3674
3749
|
);
|
3675
3750
|
}
|
@@ -3732,7 +3807,7 @@ var _Provider = class {
|
|
3732
3807
|
*/
|
3733
3808
|
async getBlockNumber() {
|
3734
3809
|
const { chain } = await this.operations.getChain();
|
3735
|
-
return
|
3810
|
+
return bn15(chain.latestBlock.header.height, 10);
|
3736
3811
|
}
|
3737
3812
|
/**
|
3738
3813
|
* Returns the chain information.
|
@@ -3742,9 +3817,9 @@ var _Provider = class {
|
|
3742
3817
|
async fetchNode() {
|
3743
3818
|
const { nodeInfo } = await this.operations.getNodeInfo();
|
3744
3819
|
const processedNodeInfo = {
|
3745
|
-
maxDepth:
|
3746
|
-
maxTx:
|
3747
|
-
minGasPrice:
|
3820
|
+
maxDepth: bn15(nodeInfo.maxDepth),
|
3821
|
+
maxTx: bn15(nodeInfo.maxTx),
|
3822
|
+
minGasPrice: bn15(nodeInfo.minGasPrice),
|
3748
3823
|
nodeVersion: nodeInfo.nodeVersion,
|
3749
3824
|
utxoValidation: nodeInfo.utxoValidation,
|
3750
3825
|
vmBacktrace: nodeInfo.vmBacktrace,
|
@@ -3799,8 +3874,8 @@ var _Provider = class {
|
|
3799
3874
|
const subscription = this.operations.submitAndAwait({ encodedTransaction });
|
3800
3875
|
for await (const { submitAndAwait } of subscription) {
|
3801
3876
|
if (submitAndAwait.type === "SqueezedOutStatus") {
|
3802
|
-
throw new
|
3803
|
-
|
3877
|
+
throw new FuelError13(
|
3878
|
+
ErrorCode13.TRANSACTION_SQUEEZED_OUT,
|
3804
3879
|
`Transaction Squeezed Out with reason: ${submitAndAwait.reason}`
|
3805
3880
|
);
|
3806
3881
|
}
|
@@ -3867,7 +3942,7 @@ var _Provider = class {
|
|
3867
3942
|
} = response;
|
3868
3943
|
if (inputs) {
|
3869
3944
|
inputs.forEach((input, index) => {
|
3870
|
-
if ("predicateGasUsed" in input &&
|
3945
|
+
if ("predicateGasUsed" in input && bn15(input.predicateGasUsed).gt(0)) {
|
3871
3946
|
transactionRequest.inputs[index].predicateGasUsed = input.predicateGasUsed;
|
3872
3947
|
}
|
3873
3948
|
});
|
@@ -3980,7 +4055,7 @@ var _Provider = class {
|
|
3980
4055
|
txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
|
3981
4056
|
if (estimatePredicates) {
|
3982
4057
|
if (isScriptTransaction) {
|
3983
|
-
txRequestClone.gasLimit =
|
4058
|
+
txRequestClone.gasLimit = bn15(0);
|
3984
4059
|
}
|
3985
4060
|
if (resourcesOwner && "populateTransactionPredicateData" in resourcesOwner) {
|
3986
4061
|
resourcesOwner.populateTransactionPredicateData(txRequestClone);
|
@@ -3996,8 +4071,8 @@ var _Provider = class {
|
|
3996
4071
|
let missingContractIds = [];
|
3997
4072
|
let outputVariables = 0;
|
3998
4073
|
if (isScriptTransaction && estimateTxDependencies) {
|
3999
|
-
txRequestClone.gasPrice =
|
4000
|
-
txRequestClone.gasLimit =
|
4074
|
+
txRequestClone.gasPrice = bn15(0);
|
4075
|
+
txRequestClone.gasLimit = bn15(maxGasPerTx.sub(maxGas).toNumber() * 0.9);
|
4001
4076
|
const result = await this.estimateTxDependencies(txRequestClone);
|
4002
4077
|
receipts = result.receipts;
|
4003
4078
|
outputVariables = result.outputVariables;
|
@@ -4059,11 +4134,11 @@ var _Provider = class {
|
|
4059
4134
|
return coins.map((coin) => ({
|
4060
4135
|
id: coin.utxoId,
|
4061
4136
|
assetId: coin.assetId,
|
4062
|
-
amount:
|
4137
|
+
amount: bn15(coin.amount),
|
4063
4138
|
owner: Address2.fromAddressOrString(coin.owner),
|
4064
|
-
maturity:
|
4065
|
-
blockCreated:
|
4066
|
-
txCreatedIdx:
|
4139
|
+
maturity: bn15(coin.maturity).toNumber(),
|
4140
|
+
blockCreated: bn15(coin.blockCreated),
|
4141
|
+
txCreatedIdx: bn15(coin.txCreatedIdx)
|
4067
4142
|
}));
|
4068
4143
|
}
|
4069
4144
|
/**
|
@@ -4100,9 +4175,9 @@ var _Provider = class {
|
|
4100
4175
|
switch (coin.__typename) {
|
4101
4176
|
case "MessageCoin":
|
4102
4177
|
return {
|
4103
|
-
amount:
|
4178
|
+
amount: bn15(coin.amount),
|
4104
4179
|
assetId: coin.assetId,
|
4105
|
-
daHeight:
|
4180
|
+
daHeight: bn15(coin.daHeight),
|
4106
4181
|
sender: Address2.fromAddressOrString(coin.sender),
|
4107
4182
|
recipient: Address2.fromAddressOrString(coin.recipient),
|
4108
4183
|
nonce: coin.nonce
|
@@ -4110,12 +4185,12 @@ var _Provider = class {
|
|
4110
4185
|
case "Coin":
|
4111
4186
|
return {
|
4112
4187
|
id: coin.utxoId,
|
4113
|
-
amount:
|
4188
|
+
amount: bn15(coin.amount),
|
4114
4189
|
assetId: coin.assetId,
|
4115
4190
|
owner: Address2.fromAddressOrString(coin.owner),
|
4116
|
-
maturity:
|
4117
|
-
blockCreated:
|
4118
|
-
txCreatedIdx:
|
4191
|
+
maturity: bn15(coin.maturity).toNumber(),
|
4192
|
+
blockCreated: bn15(coin.blockCreated),
|
4193
|
+
txCreatedIdx: bn15(coin.txCreatedIdx)
|
4119
4194
|
};
|
4120
4195
|
default:
|
4121
4196
|
return null;
|
@@ -4132,13 +4207,13 @@ var _Provider = class {
|
|
4132
4207
|
async getBlock(idOrHeight) {
|
4133
4208
|
let variables;
|
4134
4209
|
if (typeof idOrHeight === "number") {
|
4135
|
-
variables = { height:
|
4210
|
+
variables = { height: bn15(idOrHeight).toString(10) };
|
4136
4211
|
} else if (idOrHeight === "latest") {
|
4137
4212
|
variables = { height: (await this.getBlockNumber()).toString(10) };
|
4138
4213
|
} else if (idOrHeight.length === 66) {
|
4139
4214
|
variables = { blockId: idOrHeight };
|
4140
4215
|
} else {
|
4141
|
-
variables = { blockId:
|
4216
|
+
variables = { blockId: bn15(idOrHeight).toString(10) };
|
4142
4217
|
}
|
4143
4218
|
const { block } = await this.operations.getBlock(variables);
|
4144
4219
|
if (!block) {
|
@@ -4146,7 +4221,7 @@ var _Provider = class {
|
|
4146
4221
|
}
|
4147
4222
|
return {
|
4148
4223
|
id: block.id,
|
4149
|
-
height:
|
4224
|
+
height: bn15(block.header.height),
|
4150
4225
|
time: block.header.time,
|
4151
4226
|
transactionIds: block.transactions.map((tx) => tx.id)
|
4152
4227
|
};
|
@@ -4161,7 +4236,7 @@ var _Provider = class {
|
|
4161
4236
|
const { blocks: fetchedData } = await this.operations.getBlocks(params);
|
4162
4237
|
const blocks = fetchedData.edges.map(({ node: block }) => ({
|
4163
4238
|
id: block.id,
|
4164
|
-
height:
|
4239
|
+
height: bn15(block.header.height),
|
4165
4240
|
time: block.header.time,
|
4166
4241
|
transactionIds: block.transactions.map((tx) => tx.id)
|
4167
4242
|
}));
|
@@ -4176,7 +4251,7 @@ var _Provider = class {
|
|
4176
4251
|
async getBlockWithTransactions(idOrHeight) {
|
4177
4252
|
let variables;
|
4178
4253
|
if (typeof idOrHeight === "number") {
|
4179
|
-
variables = { blockHeight:
|
4254
|
+
variables = { blockHeight: bn15(idOrHeight).toString(10) };
|
4180
4255
|
} else if (idOrHeight === "latest") {
|
4181
4256
|
variables = { blockHeight: (await this.getBlockNumber()).toString() };
|
4182
4257
|
} else {
|
@@ -4188,7 +4263,7 @@ var _Provider = class {
|
|
4188
4263
|
}
|
4189
4264
|
return {
|
4190
4265
|
id: block.id,
|
4191
|
-
height:
|
4266
|
+
height: bn15(block.header.height, 10),
|
4192
4267
|
time: block.header.time,
|
4193
4268
|
transactionIds: block.transactions.map((tx) => tx.id),
|
4194
4269
|
transactions: block.transactions.map(
|
@@ -4237,7 +4312,7 @@ var _Provider = class {
|
|
4237
4312
|
contract: Address2.fromAddressOrString(contractId).toB256(),
|
4238
4313
|
asset: hexlify12(assetId)
|
4239
4314
|
});
|
4240
|
-
return
|
4315
|
+
return bn15(contractBalance.amount, 10);
|
4241
4316
|
}
|
4242
4317
|
/**
|
4243
4318
|
* Returns the balance for the given owner for the given asset ID.
|
@@ -4251,7 +4326,7 @@ var _Provider = class {
|
|
4251
4326
|
owner: Address2.fromAddressOrString(owner).toB256(),
|
4252
4327
|
assetId: hexlify12(assetId)
|
4253
4328
|
});
|
4254
|
-
return
|
4329
|
+
return bn15(balance.amount, 10);
|
4255
4330
|
}
|
4256
4331
|
/**
|
4257
4332
|
* Returns balances for the given owner.
|
@@ -4269,7 +4344,7 @@ var _Provider = class {
|
|
4269
4344
|
const balances = result.balances.edges.map((edge) => edge.node);
|
4270
4345
|
return balances.map((balance) => ({
|
4271
4346
|
assetId: balance.assetId,
|
4272
|
-
amount:
|
4347
|
+
amount: bn15(balance.amount)
|
4273
4348
|
}));
|
4274
4349
|
}
|
4275
4350
|
/**
|
@@ -4291,15 +4366,15 @@ var _Provider = class {
|
|
4291
4366
|
sender: message.sender,
|
4292
4367
|
recipient: message.recipient,
|
4293
4368
|
nonce: message.nonce,
|
4294
|
-
amount:
|
4369
|
+
amount: bn15(message.amount),
|
4295
4370
|
data: message.data
|
4296
4371
|
}),
|
4297
4372
|
sender: Address2.fromAddressOrString(message.sender),
|
4298
4373
|
recipient: Address2.fromAddressOrString(message.recipient),
|
4299
4374
|
nonce: message.nonce,
|
4300
|
-
amount:
|
4375
|
+
amount: bn15(message.amount),
|
4301
4376
|
data: InputMessageCoder.decodeData(message.data),
|
4302
|
-
daHeight:
|
4377
|
+
daHeight: bn15(message.daHeight)
|
4303
4378
|
}));
|
4304
4379
|
}
|
4305
4380
|
/**
|
@@ -4317,8 +4392,8 @@ var _Provider = class {
|
|
4317
4392
|
nonce
|
4318
4393
|
};
|
4319
4394
|
if (commitBlockId && commitBlockHeight) {
|
4320
|
-
throw new
|
4321
|
-
|
4395
|
+
throw new FuelError13(
|
4396
|
+
ErrorCode13.INVALID_INPUT_PARAMETERS,
|
4322
4397
|
"commitBlockId and commitBlockHeight cannot be used together"
|
4323
4398
|
);
|
4324
4399
|
}
|
@@ -4352,41 +4427,41 @@ var _Provider = class {
|
|
4352
4427
|
} = result.messageProof;
|
4353
4428
|
return {
|
4354
4429
|
messageProof: {
|
4355
|
-
proofIndex:
|
4430
|
+
proofIndex: bn15(messageProof.proofIndex),
|
4356
4431
|
proofSet: messageProof.proofSet
|
4357
4432
|
},
|
4358
4433
|
blockProof: {
|
4359
|
-
proofIndex:
|
4434
|
+
proofIndex: bn15(blockProof.proofIndex),
|
4360
4435
|
proofSet: blockProof.proofSet
|
4361
4436
|
},
|
4362
4437
|
messageBlockHeader: {
|
4363
4438
|
id: messageBlockHeader.id,
|
4364
|
-
daHeight:
|
4365
|
-
transactionsCount:
|
4439
|
+
daHeight: bn15(messageBlockHeader.daHeight),
|
4440
|
+
transactionsCount: bn15(messageBlockHeader.transactionsCount),
|
4366
4441
|
transactionsRoot: messageBlockHeader.transactionsRoot,
|
4367
|
-
height:
|
4442
|
+
height: bn15(messageBlockHeader.height),
|
4368
4443
|
prevRoot: messageBlockHeader.prevRoot,
|
4369
4444
|
time: messageBlockHeader.time,
|
4370
4445
|
applicationHash: messageBlockHeader.applicationHash,
|
4371
4446
|
messageReceiptRoot: messageBlockHeader.messageReceiptRoot,
|
4372
|
-
messageReceiptCount:
|
4447
|
+
messageReceiptCount: bn15(messageBlockHeader.messageReceiptCount)
|
4373
4448
|
},
|
4374
4449
|
commitBlockHeader: {
|
4375
4450
|
id: commitBlockHeader.id,
|
4376
|
-
daHeight:
|
4377
|
-
transactionsCount:
|
4451
|
+
daHeight: bn15(commitBlockHeader.daHeight),
|
4452
|
+
transactionsCount: bn15(commitBlockHeader.transactionsCount),
|
4378
4453
|
transactionsRoot: commitBlockHeader.transactionsRoot,
|
4379
|
-
height:
|
4454
|
+
height: bn15(commitBlockHeader.height),
|
4380
4455
|
prevRoot: commitBlockHeader.prevRoot,
|
4381
4456
|
time: commitBlockHeader.time,
|
4382
4457
|
applicationHash: commitBlockHeader.applicationHash,
|
4383
4458
|
messageReceiptRoot: commitBlockHeader.messageReceiptRoot,
|
4384
|
-
messageReceiptCount:
|
4459
|
+
messageReceiptCount: bn15(commitBlockHeader.messageReceiptCount)
|
4385
4460
|
},
|
4386
4461
|
sender: Address2.fromAddressOrString(sender),
|
4387
4462
|
recipient: Address2.fromAddressOrString(recipient),
|
4388
4463
|
nonce,
|
4389
|
-
amount:
|
4464
|
+
amount: bn15(amount),
|
4390
4465
|
data
|
4391
4466
|
};
|
4392
4467
|
}
|
@@ -4409,10 +4484,10 @@ var _Provider = class {
|
|
4409
4484
|
*/
|
4410
4485
|
async produceBlocks(amount, startTime) {
|
4411
4486
|
const { produceBlocks: latestBlockHeight } = await this.operations.produceBlocks({
|
4412
|
-
blocksToProduce:
|
4487
|
+
blocksToProduce: bn15(amount).toString(10),
|
4413
4488
|
startTimestamp: startTime ? DateTime2.fromUnixMilliseconds(startTime).toTai64() : void 0
|
4414
4489
|
});
|
4415
|
-
return
|
4490
|
+
return bn15(latestBlockHeight);
|
4416
4491
|
}
|
4417
4492
|
// eslint-disable-next-line @typescript-eslint/require-await
|
4418
4493
|
async getTransactionResponse(transactionId) {
|
@@ -4435,8 +4510,8 @@ __publicField(Provider, "chainInfoCache", {});
|
|
4435
4510
|
__publicField(Provider, "nodeInfoCache", {});
|
4436
4511
|
|
4437
4512
|
// src/providers/transaction-summary/get-transaction-summary.ts
|
4438
|
-
import { ErrorCode as
|
4439
|
-
import { bn as
|
4513
|
+
import { ErrorCode as ErrorCode14, FuelError as FuelError14 } from "@fuel-ts/errors";
|
4514
|
+
import { bn as bn16 } from "@fuel-ts/math";
|
4440
4515
|
import { TransactionCoder as TransactionCoder6 } from "@fuel-ts/transactions";
|
4441
4516
|
import { arrayify as arrayify12 } from "@fuel-ts/utils";
|
4442
4517
|
async function getTransactionSummary(params) {
|
@@ -4445,8 +4520,8 @@ async function getTransactionSummary(params) {
|
|
4445
4520
|
transactionId: id
|
4446
4521
|
});
|
4447
4522
|
if (!gqlTransaction) {
|
4448
|
-
throw new
|
4449
|
-
|
4523
|
+
throw new FuelError14(
|
4524
|
+
ErrorCode14.TRANSACTION_NOT_FOUND,
|
4450
4525
|
`Transaction not found for given id: ${id}.`
|
4451
4526
|
);
|
4452
4527
|
}
|
@@ -4464,8 +4539,8 @@ async function getTransactionSummary(params) {
|
|
4464
4539
|
transaction: decodedTransaction,
|
4465
4540
|
transactionBytes: arrayify12(gqlTransaction.rawPayload),
|
4466
4541
|
gqlTransactionStatus: gqlTransaction.status,
|
4467
|
-
gasPerByte:
|
4468
|
-
gasPriceFactor:
|
4542
|
+
gasPerByte: bn16(gasPerByte),
|
4543
|
+
gasPriceFactor: bn16(gasPriceFactor),
|
4469
4544
|
abiMap,
|
4470
4545
|
maxInputs,
|
4471
4546
|
gasCosts
|
@@ -4719,7 +4794,7 @@ var Account = class extends AbstractAccount {
|
|
4719
4794
|
*/
|
4720
4795
|
get provider() {
|
4721
4796
|
if (!this._provider) {
|
4722
|
-
throw new
|
4797
|
+
throw new FuelError15(ErrorCode15.MISSING_PROVIDER, "Provider not set");
|
4723
4798
|
}
|
4724
4799
|
return this._provider;
|
4725
4800
|
}
|
@@ -4771,8 +4846,8 @@ var Account = class extends AbstractAccount {
|
|
4771
4846
|
if (!hasNextPage) {
|
4772
4847
|
break;
|
4773
4848
|
}
|
4774
|
-
throw new
|
4775
|
-
|
4849
|
+
throw new FuelError15(
|
4850
|
+
ErrorCode15.NOT_SUPPORTED,
|
4776
4851
|
`Wallets containing more than ${pageSize} coins exceed the current supported limit.`
|
4777
4852
|
);
|
4778
4853
|
}
|
@@ -4797,8 +4872,8 @@ var Account = class extends AbstractAccount {
|
|
4797
4872
|
if (!hasNextPage) {
|
4798
4873
|
break;
|
4799
4874
|
}
|
4800
|
-
throw new
|
4801
|
-
|
4875
|
+
throw new FuelError15(
|
4876
|
+
ErrorCode15.NOT_SUPPORTED,
|
4802
4877
|
`Wallets containing more than ${pageSize} messages exceed the current supported limit.`
|
4803
4878
|
);
|
4804
4879
|
}
|
@@ -4833,8 +4908,8 @@ var Account = class extends AbstractAccount {
|
|
4833
4908
|
if (!hasNextPage) {
|
4834
4909
|
break;
|
4835
4910
|
}
|
4836
|
-
throw new
|
4837
|
-
|
4911
|
+
throw new FuelError15(
|
4912
|
+
ErrorCode15.NOT_SUPPORTED,
|
4838
4913
|
`Wallets containing more than ${pageSize} balances exceed the current supported limit.`
|
4839
4914
|
);
|
4840
4915
|
}
|
@@ -4850,7 +4925,7 @@ var Account = class extends AbstractAccount {
|
|
4850
4925
|
*/
|
4851
4926
|
async fund(request, coinQuantities, fee) {
|
4852
4927
|
const updatedQuantities = addAmountToAsset({
|
4853
|
-
amount:
|
4928
|
+
amount: bn17(fee),
|
4854
4929
|
assetId: BaseAssetId3,
|
4855
4930
|
coinQuantities
|
4856
4931
|
});
|
@@ -4858,7 +4933,7 @@ var Account = class extends AbstractAccount {
|
|
4858
4933
|
updatedQuantities.forEach(({ amount, assetId }) => {
|
4859
4934
|
quantitiesDict[assetId] = {
|
4860
4935
|
required: amount,
|
4861
|
-
owned:
|
4936
|
+
owned: bn17(0)
|
4862
4937
|
};
|
4863
4938
|
});
|
4864
4939
|
const cachedUtxos = [];
|
@@ -4871,7 +4946,7 @@ var Account = class extends AbstractAccount {
|
|
4871
4946
|
if (isCoin2) {
|
4872
4947
|
const assetId = String(input.assetId);
|
4873
4948
|
if (input.owner === owner && quantitiesDict[assetId]) {
|
4874
|
-
const amount =
|
4949
|
+
const amount = bn17(input.amount);
|
4875
4950
|
quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
|
4876
4951
|
cachedUtxos.push(input.id);
|
4877
4952
|
}
|
@@ -4917,8 +4992,8 @@ var Account = class extends AbstractAccount {
|
|
4917
4992
|
estimateTxDependencies: true,
|
4918
4993
|
resourcesOwner: this
|
4919
4994
|
});
|
4920
|
-
request.gasPrice =
|
4921
|
-
request.gasLimit =
|
4995
|
+
request.gasPrice = bn17(txParams.gasPrice ?? minGasPrice);
|
4996
|
+
request.gasLimit = bn17(txParams.gasLimit ?? gasUsed);
|
4922
4997
|
this.validateGas({
|
4923
4998
|
gasUsed,
|
4924
4999
|
gasPrice: request.gasPrice,
|
@@ -4939,9 +5014,9 @@ var Account = class extends AbstractAccount {
|
|
4939
5014
|
* @returns A promise that resolves to the transaction response.
|
4940
5015
|
*/
|
4941
5016
|
async transfer(destination, amount, assetId = BaseAssetId3, txParams = {}) {
|
4942
|
-
if (
|
4943
|
-
throw new
|
4944
|
-
|
5017
|
+
if (bn17(amount).lte(0)) {
|
5018
|
+
throw new FuelError15(
|
5019
|
+
ErrorCode15.INVALID_TRANSFER_AMOUNT,
|
4945
5020
|
"Transfer amount must be a positive number."
|
4946
5021
|
);
|
4947
5022
|
}
|
@@ -4958,9 +5033,9 @@ var Account = class extends AbstractAccount {
|
|
4958
5033
|
* @returns A promise that resolves to the transaction response.
|
4959
5034
|
*/
|
4960
5035
|
async transferToContract(contractId, amount, assetId = BaseAssetId3, txParams = {}) {
|
4961
|
-
if (
|
4962
|
-
throw new
|
4963
|
-
|
5036
|
+
if (bn17(amount).lte(0)) {
|
5037
|
+
throw new FuelError15(
|
5038
|
+
ErrorCode15.INVALID_TRANSFER_AMOUNT,
|
4964
5039
|
"Transfer amount must be a positive number."
|
4965
5040
|
);
|
4966
5041
|
}
|
@@ -4969,7 +5044,7 @@ var Account = class extends AbstractAccount {
|
|
4969
5044
|
const params = { gasPrice: minGasPrice, ...txParams };
|
4970
5045
|
const { script, scriptData } = await assembleTransferToContractScript({
|
4971
5046
|
hexlifiedContractId: contractAddress.toB256(),
|
4972
|
-
amountToTransfer:
|
5047
|
+
amountToTransfer: bn17(amount),
|
4973
5048
|
assetId
|
4974
5049
|
});
|
4975
5050
|
const request = new ScriptTransactionRequest({
|
@@ -4980,9 +5055,9 @@ var Account = class extends AbstractAccount {
|
|
4980
5055
|
request.addContractInputAndOutput(contractAddress);
|
4981
5056
|
const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
|
4982
5057
|
request,
|
4983
|
-
[{ amount:
|
5058
|
+
[{ amount: bn17(amount), assetId: String(assetId) }]
|
4984
5059
|
);
|
4985
|
-
request.gasLimit =
|
5060
|
+
request.gasLimit = bn17(params.gasLimit ?? gasUsed);
|
4986
5061
|
this.validateGas({
|
4987
5062
|
gasUsed,
|
4988
5063
|
gasPrice: request.gasPrice,
|
@@ -5007,7 +5082,7 @@ var Account = class extends AbstractAccount {
|
|
5007
5082
|
"0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
|
5008
5083
|
);
|
5009
5084
|
const amountDataArray = arrayify14(
|
5010
|
-
"0x".concat(
|
5085
|
+
"0x".concat(bn17(amount).toHex().substring(2).padStart(16, "0"))
|
5011
5086
|
);
|
5012
5087
|
const script = new Uint8Array([
|
5013
5088
|
...arrayify14(withdrawScript.bytes),
|
@@ -5016,12 +5091,12 @@ var Account = class extends AbstractAccount {
|
|
5016
5091
|
]);
|
5017
5092
|
const params = { script, gasPrice: minGasPrice, ...txParams };
|
5018
5093
|
const request = new ScriptTransactionRequest(params);
|
5019
|
-
const forwardingQuantities = [{ amount:
|
5094
|
+
const forwardingQuantities = [{ amount: bn17(amount), assetId: BaseAssetId3 }];
|
5020
5095
|
const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
|
5021
5096
|
request,
|
5022
5097
|
forwardingQuantities
|
5023
5098
|
);
|
5024
|
-
request.gasLimit =
|
5099
|
+
request.gasLimit = bn17(params.gasLimit ?? gasUsed);
|
5025
5100
|
this.validateGas({
|
5026
5101
|
gasUsed,
|
5027
5102
|
gasPrice: request.gasPrice,
|
@@ -5033,7 +5108,7 @@ var Account = class extends AbstractAccount {
|
|
5033
5108
|
}
|
5034
5109
|
async signMessage(message) {
|
5035
5110
|
if (!this._connector) {
|
5036
|
-
throw new
|
5111
|
+
throw new FuelError15(ErrorCode15.MISSING_CONNECTOR, "A connector is required to sign messages.");
|
5037
5112
|
}
|
5038
5113
|
return this._connector.signMessage(this.address.toString(), message);
|
5039
5114
|
}
|
@@ -5045,8 +5120,8 @@ var Account = class extends AbstractAccount {
|
|
5045
5120
|
*/
|
5046
5121
|
async signTransaction(transactionRequestLike) {
|
5047
5122
|
if (!this._connector) {
|
5048
|
-
throw new
|
5049
|
-
|
5123
|
+
throw new FuelError15(
|
5124
|
+
ErrorCode15.MISSING_CONNECTOR,
|
5050
5125
|
"A connector is required to sign transactions."
|
5051
5126
|
);
|
5052
5127
|
}
|
@@ -5093,14 +5168,14 @@ var Account = class extends AbstractAccount {
|
|
5093
5168
|
minGasPrice
|
5094
5169
|
}) {
|
5095
5170
|
if (minGasPrice.gt(gasPrice)) {
|
5096
|
-
throw new
|
5097
|
-
|
5171
|
+
throw new FuelError15(
|
5172
|
+
ErrorCode15.GAS_PRICE_TOO_LOW,
|
5098
5173
|
`Gas price '${gasPrice}' is lower than the required: '${minGasPrice}'.`
|
5099
5174
|
);
|
5100
5175
|
}
|
5101
5176
|
if (gasUsed.gt(gasLimit)) {
|
5102
|
-
throw new
|
5103
|
-
|
5177
|
+
throw new FuelError15(
|
5178
|
+
ErrorCode15.GAS_LIMIT_TOO_LOW,
|
5104
5179
|
`Gas limit '${gasLimit}' is lower than the required: '${gasUsed}'.`
|
5105
5180
|
);
|
5106
5181
|
}
|
@@ -5231,7 +5306,7 @@ import {
|
|
5231
5306
|
decryptJsonWalletData,
|
5232
5307
|
encryptJsonWalletData
|
5233
5308
|
} from "@fuel-ts/crypto";
|
5234
|
-
import { ErrorCode as
|
5309
|
+
import { ErrorCode as ErrorCode16, FuelError as FuelError16 } from "@fuel-ts/errors";
|
5235
5310
|
import { hexlify as hexlify14 } from "@fuel-ts/utils";
|
5236
5311
|
import { v4 as uuidv4 } from "uuid";
|
5237
5312
|
var DEFAULT_KDF_PARAMS_LOG_N = 13;
|
@@ -5309,8 +5384,8 @@ async function decryptKeystoreWallet(jsonWallet, password) {
|
|
5309
5384
|
const macHashUint8Array = keccak256(data);
|
5310
5385
|
const macHash = stringFromBuffer(macHashUint8Array, "hex");
|
5311
5386
|
if (mac !== macHash) {
|
5312
|
-
throw new
|
5313
|
-
|
5387
|
+
throw new FuelError16(
|
5388
|
+
ErrorCode16.INVALID_PASSWORD,
|
5314
5389
|
"Failed to decrypt the keystore wallet, the provided password is incorrect."
|
5315
5390
|
);
|
5316
5391
|
}
|
@@ -5432,15 +5507,15 @@ var BaseWalletUnlocked = class extends Account {
|
|
5432
5507
|
__publicField(BaseWalletUnlocked, "defaultPath", "m/44'/1179993420'/0'/0/0");
|
5433
5508
|
|
5434
5509
|
// src/hdwallet/hdwallet.ts
|
5435
|
-
import { ErrorCode as
|
5510
|
+
import { ErrorCode as ErrorCode19, FuelError as FuelError19 } from "@fuel-ts/errors";
|
5436
5511
|
import { sha256 as sha2564 } from "@fuel-ts/hasher";
|
5437
|
-
import { bn as
|
5512
|
+
import { bn as bn18, toBytes as toBytes2, toHex } from "@fuel-ts/math";
|
5438
5513
|
import { arrayify as arrayify18, hexlify as hexlify17, concat as concat5 } from "@fuel-ts/utils";
|
5439
5514
|
import { toBeHex, dataSlice as dataSlice2, encodeBase58 as encodeBase582, decodeBase58, computeHmac as computeHmac2, ripemd160 } from "ethers";
|
5440
5515
|
|
5441
5516
|
// src/mnemonic/mnemonic.ts
|
5442
5517
|
import { randomBytes as randomBytes3 } from "@fuel-ts/crypto";
|
5443
|
-
import { ErrorCode as
|
5518
|
+
import { ErrorCode as ErrorCode18, FuelError as FuelError18 } from "@fuel-ts/errors";
|
5444
5519
|
import { sha256 as sha2563 } from "@fuel-ts/hasher";
|
5445
5520
|
import { arrayify as arrayify17, hexlify as hexlify16, concat as concat4 } from "@fuel-ts/utils";
|
5446
5521
|
import { dataSlice, pbkdf2, computeHmac, encodeBase58 } from "ethers";
|
@@ -7504,7 +7579,7 @@ var Language = /* @__PURE__ */ ((Language2) => {
|
|
7504
7579
|
})(Language || {});
|
7505
7580
|
|
7506
7581
|
// src/mnemonic/utils.ts
|
7507
|
-
import { ErrorCode as
|
7582
|
+
import { ErrorCode as ErrorCode17, FuelError as FuelError17 } from "@fuel-ts/errors";
|
7508
7583
|
import { sha256 as sha2562 } from "@fuel-ts/hasher";
|
7509
7584
|
import { arrayify as arrayify16 } from "@fuel-ts/utils";
|
7510
7585
|
function toUtf8Bytes(stri) {
|
@@ -7521,8 +7596,8 @@ function toUtf8Bytes(stri) {
|
|
7521
7596
|
i += 1;
|
7522
7597
|
const c2 = str.charCodeAt(i);
|
7523
7598
|
if (i >= str.length || (c2 & 64512) !== 56320) {
|
7524
|
-
throw new
|
7525
|
-
|
7599
|
+
throw new FuelError17(
|
7600
|
+
ErrorCode17.INVALID_INPUT_PARAMETERS,
|
7526
7601
|
"Invalid UTF-8 in the input string."
|
7527
7602
|
);
|
7528
7603
|
}
|
@@ -7585,8 +7660,8 @@ function mnemonicWordsToEntropy(words, wordlist) {
|
|
7585
7660
|
for (let i = 0; i < words.length; i += 1) {
|
7586
7661
|
const index = wordlist.indexOf(words[i].normalize("NFKD"));
|
7587
7662
|
if (index === -1) {
|
7588
|
-
throw new
|
7589
|
-
|
7663
|
+
throw new FuelError17(
|
7664
|
+
ErrorCode17.INVALID_MNEMONIC,
|
7590
7665
|
`Invalid mnemonic: the word '${words[i]}' is not found in the provided wordlist.`
|
7591
7666
|
);
|
7592
7667
|
}
|
@@ -7602,8 +7677,8 @@ function mnemonicWordsToEntropy(words, wordlist) {
|
|
7602
7677
|
const checksumMask = getUpperMask(checksumBits);
|
7603
7678
|
const checksum = arrayify16(sha2562(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;
|
7604
7679
|
if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {
|
7605
|
-
throw new
|
7606
|
-
|
7680
|
+
throw new FuelError17(
|
7681
|
+
ErrorCode17.INVALID_CHECKSUM,
|
7607
7682
|
"Checksum validation failed for the provided mnemonic."
|
7608
7683
|
);
|
7609
7684
|
}
|
@@ -7617,16 +7692,16 @@ var TestnetPRV = "0x04358394";
|
|
7617
7692
|
var MNEMONIC_SIZES = [12, 15, 18, 21, 24];
|
7618
7693
|
function assertWordList(wordlist) {
|
7619
7694
|
if (wordlist.length !== 2048) {
|
7620
|
-
throw new
|
7621
|
-
|
7695
|
+
throw new FuelError18(
|
7696
|
+
ErrorCode18.INVALID_WORD_LIST,
|
7622
7697
|
`Expected word list length of 2048, but got ${wordlist.length}.`
|
7623
7698
|
);
|
7624
7699
|
}
|
7625
7700
|
}
|
7626
7701
|
function assertEntropy(entropy) {
|
7627
7702
|
if (entropy.length % 4 !== 0 || entropy.length < 16 || entropy.length > 32) {
|
7628
|
-
throw new
|
7629
|
-
|
7703
|
+
throw new FuelError18(
|
7704
|
+
ErrorCode18.INVALID_ENTROPY,
|
7630
7705
|
`Entropy should be between 16 and 32 bytes and a multiple of 4, but got ${entropy.length} bytes.`
|
7631
7706
|
);
|
7632
7707
|
}
|
@@ -7636,7 +7711,7 @@ function assertMnemonic(words) {
|
|
7636
7711
|
const errorMsg = `Invalid mnemonic size. Expected one of [${MNEMONIC_SIZES.join(
|
7637
7712
|
", "
|
7638
7713
|
)}] words, but got ${words.length}.`;
|
7639
|
-
throw new
|
7714
|
+
throw new FuelError18(ErrorCode18.INVALID_MNEMONIC, errorMsg);
|
7640
7715
|
}
|
7641
7716
|
}
|
7642
7717
|
var Mnemonic = class {
|
@@ -7754,8 +7829,8 @@ var Mnemonic = class {
|
|
7754
7829
|
static masterKeysFromSeed(seed) {
|
7755
7830
|
const seedArray = arrayify17(seed);
|
7756
7831
|
if (seedArray.length < 16 || seedArray.length > 64) {
|
7757
|
-
throw new
|
7758
|
-
|
7832
|
+
throw new FuelError18(
|
7833
|
+
ErrorCode18.INVALID_SEED,
|
7759
7834
|
`Seed length should be between 16 and 64 bytes, but received ${seedArray.length} bytes.`
|
7760
7835
|
);
|
7761
7836
|
}
|
@@ -7832,7 +7907,7 @@ function isValidExtendedKey(extendedKey) {
|
|
7832
7907
|
function parsePath(path, depth = 0) {
|
7833
7908
|
const components = path.split("/");
|
7834
7909
|
if (components.length === 0 || components[0] === "m" && depth !== 0) {
|
7835
|
-
throw new
|
7910
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, `invalid path - ${path}`);
|
7836
7911
|
}
|
7837
7912
|
if (components[0] === "m") {
|
7838
7913
|
components.shift();
|
@@ -7861,8 +7936,8 @@ var HDWallet = class {
|
|
7861
7936
|
this.privateKey = hexlify17(config.privateKey);
|
7862
7937
|
} else {
|
7863
7938
|
if (!config.publicKey) {
|
7864
|
-
throw new
|
7865
|
-
|
7939
|
+
throw new FuelError19(
|
7940
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7866
7941
|
"Both public and private Key cannot be missing. At least one should be provided."
|
7867
7942
|
);
|
7868
7943
|
}
|
@@ -7891,8 +7966,8 @@ var HDWallet = class {
|
|
7891
7966
|
const data = new Uint8Array(37);
|
7892
7967
|
if (index & HARDENED_INDEX) {
|
7893
7968
|
if (!privateKey) {
|
7894
|
-
throw new
|
7895
|
-
|
7969
|
+
throw new FuelError19(
|
7970
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7896
7971
|
"Cannot derive a hardened index without a private Key."
|
7897
7972
|
);
|
7898
7973
|
}
|
@@ -7906,7 +7981,7 @@ var HDWallet = class {
|
|
7906
7981
|
const IR = bytes.slice(32);
|
7907
7982
|
if (privateKey) {
|
7908
7983
|
const N = "0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141";
|
7909
|
-
const ki =
|
7984
|
+
const ki = bn18(IL).add(privateKey).mod(N).toBytes(32);
|
7910
7985
|
return new HDWallet({
|
7911
7986
|
privateKey: ki,
|
7912
7987
|
chainCode: IR,
|
@@ -7944,8 +8019,8 @@ var HDWallet = class {
|
|
7944
8019
|
*/
|
7945
8020
|
toExtendedKey(isPublic = false, testnet = false) {
|
7946
8021
|
if (this.depth >= 256) {
|
7947
|
-
throw new
|
7948
|
-
|
8022
|
+
throw new FuelError19(
|
8023
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7949
8024
|
`Exceeded max depth of 255. Current depth: ${this.depth}.`
|
7950
8025
|
);
|
7951
8026
|
}
|
@@ -7976,10 +8051,10 @@ var HDWallet = class {
|
|
7976
8051
|
const bytes = arrayify18(decoded);
|
7977
8052
|
const validChecksum = base58check(bytes.slice(0, 78)) === extendedKey;
|
7978
8053
|
if (bytes.length !== 82 || !isValidExtendedKey(bytes)) {
|
7979
|
-
throw new
|
8054
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Provided key is not a valid extended key.");
|
7980
8055
|
}
|
7981
8056
|
if (!validChecksum) {
|
7982
|
-
throw new
|
8057
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Provided key has an invalid checksum.");
|
7983
8058
|
}
|
7984
8059
|
const depth = bytes[4];
|
7985
8060
|
const parentFingerprint = hexlify17(bytes.slice(5, 9));
|
@@ -7987,14 +8062,14 @@ var HDWallet = class {
|
|
7987
8062
|
const chainCode = hexlify17(bytes.slice(13, 45));
|
7988
8063
|
const key = bytes.slice(45, 78);
|
7989
8064
|
if (depth === 0 && parentFingerprint !== "0x00000000" || depth === 0 && index !== 0) {
|
7990
|
-
throw new
|
7991
|
-
|
8065
|
+
throw new FuelError19(
|
8066
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7992
8067
|
"Inconsistency detected: Depth is zero but fingerprint/index is non-zero."
|
7993
8068
|
);
|
7994
8069
|
}
|
7995
8070
|
if (isPublicExtendedKey(bytes)) {
|
7996
8071
|
if (key[0] !== 3) {
|
7997
|
-
throw new
|
8072
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Invalid public extended key.");
|
7998
8073
|
}
|
7999
8074
|
return new HDWallet({
|
8000
8075
|
publicKey: key,
|
@@ -8005,7 +8080,7 @@ var HDWallet = class {
|
|
8005
8080
|
});
|
8006
8081
|
}
|
8007
8082
|
if (key[0] !== 0) {
|
8008
|
-
throw new
|
8083
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Invalid private extended key.");
|
8009
8084
|
}
|
8010
8085
|
return new HDWallet({
|
8011
8086
|
privateKey: key.slice(1),
|
@@ -8173,7 +8248,7 @@ __publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
|
|
8173
8248
|
// src/wallet-manager/wallet-manager.ts
|
8174
8249
|
import { Address as Address8 } from "@fuel-ts/address";
|
8175
8250
|
import { encrypt, decrypt } from "@fuel-ts/crypto";
|
8176
|
-
import { ErrorCode as
|
8251
|
+
import { ErrorCode as ErrorCode22, FuelError as FuelError22 } from "@fuel-ts/errors";
|
8177
8252
|
import { EventEmitter } from "events";
|
8178
8253
|
|
8179
8254
|
// src/wallet-manager/storages/memory-storage.ts
|
@@ -8196,7 +8271,7 @@ var MemoryStorage = class {
|
|
8196
8271
|
|
8197
8272
|
// src/wallet-manager/vaults/mnemonic-vault.ts
|
8198
8273
|
import { Address as Address6 } from "@fuel-ts/address";
|
8199
|
-
import { ErrorCode as
|
8274
|
+
import { ErrorCode as ErrorCode20, FuelError as FuelError20 } from "@fuel-ts/errors";
|
8200
8275
|
var _secret;
|
8201
8276
|
var MnemonicVault = class {
|
8202
8277
|
constructor(options) {
|
@@ -8252,8 +8327,8 @@ var MnemonicVault = class {
|
|
8252
8327
|
}
|
8253
8328
|
numberOfAccounts += 1;
|
8254
8329
|
} while (numberOfAccounts < this.numberOfAccounts);
|
8255
|
-
throw new
|
8256
|
-
|
8330
|
+
throw new FuelError20(
|
8331
|
+
ErrorCode20.WALLET_MANAGER_ERROR,
|
8257
8332
|
`Account with address '${address}' not found in derived wallets.`
|
8258
8333
|
);
|
8259
8334
|
}
|
@@ -8267,7 +8342,7 @@ __publicField(MnemonicVault, "type", "mnemonic");
|
|
8267
8342
|
|
8268
8343
|
// src/wallet-manager/vaults/privatekey-vault.ts
|
8269
8344
|
import { Address as Address7 } from "@fuel-ts/address";
|
8270
|
-
import { ErrorCode as
|
8345
|
+
import { ErrorCode as ErrorCode21, FuelError as FuelError21 } from "@fuel-ts/errors";
|
8271
8346
|
var _privateKeys;
|
8272
8347
|
var PrivateKeyVault = class {
|
8273
8348
|
/**
|
@@ -8308,8 +8383,8 @@ var PrivateKeyVault = class {
|
|
8308
8383
|
(pk) => Wallet.fromPrivateKey(pk).address.equals(ownerAddress)
|
8309
8384
|
);
|
8310
8385
|
if (!privateKey) {
|
8311
|
-
throw new
|
8312
|
-
|
8386
|
+
throw new FuelError21(
|
8387
|
+
ErrorCode21.WALLET_MANAGER_ERROR,
|
8313
8388
|
`No private key found for address '${address}'.`
|
8314
8389
|
);
|
8315
8390
|
}
|
@@ -8333,7 +8408,7 @@ var ERROR_MESSAGES = {
|
|
8333
8408
|
};
|
8334
8409
|
function assert(condition, message) {
|
8335
8410
|
if (!condition) {
|
8336
|
-
throw new
|
8411
|
+
throw new FuelError22(ErrorCode22.WALLET_MANAGER_ERROR, message);
|
8337
8412
|
}
|
8338
8413
|
}
|
8339
8414
|
var _vaults, _passphrase, _isLocked, _serializeVaults, serializeVaults_fn, _deserializeVaults, deserializeVaults_fn;
|
@@ -8559,25 +8634,25 @@ deserializeVaults_fn = function(vaults) {
|
|
8559
8634
|
__publicField(WalletManager, "Vaults", [MnemonicVault, PrivateKeyVault]);
|
8560
8635
|
|
8561
8636
|
// src/wallet-manager/types.ts
|
8562
|
-
import { ErrorCode as
|
8637
|
+
import { ErrorCode as ErrorCode23, FuelError as FuelError23 } from "@fuel-ts/errors";
|
8563
8638
|
var Vault = class {
|
8564
8639
|
constructor(_options) {
|
8565
|
-
throw new
|
8640
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8566
8641
|
}
|
8567
8642
|
serialize() {
|
8568
|
-
throw new
|
8643
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8569
8644
|
}
|
8570
8645
|
getAccounts() {
|
8571
|
-
throw new
|
8646
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8572
8647
|
}
|
8573
8648
|
addAccount() {
|
8574
|
-
throw new
|
8649
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8575
8650
|
}
|
8576
8651
|
exportAccount(_address) {
|
8577
|
-
throw new
|
8652
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8578
8653
|
}
|
8579
8654
|
getWallet(_address) {
|
8580
|
-
throw new
|
8655
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8581
8656
|
}
|
8582
8657
|
};
|
8583
8658
|
__publicField(Vault, "type");
|
@@ -8594,7 +8669,7 @@ import {
|
|
8594
8669
|
} from "@fuel-ts/abi-coder";
|
8595
8670
|
import { Address as Address9 } from "@fuel-ts/address";
|
8596
8671
|
import { BaseAssetId as BaseAssetId4 } from "@fuel-ts/address/configs";
|
8597
|
-
import { ErrorCode as
|
8672
|
+
import { ErrorCode as ErrorCode24, FuelError as FuelError24 } from "@fuel-ts/errors";
|
8598
8673
|
import { ByteArrayCoder, InputType as InputType7 } from "@fuel-ts/transactions";
|
8599
8674
|
import { arrayify as arrayify20, hexlify as hexlify19 } from "@fuel-ts/utils";
|
8600
8675
|
|
@@ -8722,8 +8797,8 @@ var Predicate = class extends Account {
|
|
8722
8797
|
if (jsonAbi) {
|
8723
8798
|
abiInterface = new Interface4(jsonAbi);
|
8724
8799
|
if (abiInterface.functions.main === void 0) {
|
8725
|
-
throw new
|
8726
|
-
|
8800
|
+
throw new FuelError24(
|
8801
|
+
ErrorCode24.ABI_MAIN_METHOD_MISSING,
|
8727
8802
|
'Cannot use ABI without "main" function.'
|
8728
8803
|
);
|
8729
8804
|
}
|
@@ -8768,8 +8843,8 @@ var Predicate = class extends Account {
|
|
8768
8843
|
mutatedBytes.set(encoded, offset);
|
8769
8844
|
});
|
8770
8845
|
} catch (err) {
|
8771
|
-
throw new
|
8772
|
-
|
8846
|
+
throw new FuelError24(
|
8847
|
+
ErrorCode24.INVALID_CONFIGURABLE_CONSTANTS,
|
8773
8848
|
`Error setting configurable constants: ${err.message}.`
|
8774
8849
|
);
|
8775
8850
|
}
|
@@ -8778,7 +8853,7 @@ var Predicate = class extends Account {
|
|
8778
8853
|
};
|
8779
8854
|
|
8780
8855
|
// src/connectors/fuel.ts
|
8781
|
-
import { ErrorCode as
|
8856
|
+
import { ErrorCode as ErrorCode25, FuelError as FuelError25 } from "@fuel-ts/errors";
|
8782
8857
|
|
8783
8858
|
// src/connectors/fuel-connector.ts
|
8784
8859
|
import { EventEmitter as EventEmitter2 } from "events";
|
@@ -9411,7 +9486,7 @@ var _Fuel = class extends FuelConnector {
|
|
9411
9486
|
const currentNetwork = await this.currentNetwork();
|
9412
9487
|
provider = await Provider.create(currentNetwork.url);
|
9413
9488
|
} else {
|
9414
|
-
throw new
|
9489
|
+
throw new FuelError25(ErrorCode25.INVALID_PROVIDER, "Provider is not valid.");
|
9415
9490
|
}
|
9416
9491
|
return provider;
|
9417
9492
|
}
|
@@ -9490,7 +9565,9 @@ export {
|
|
9490
9565
|
WalletUnlocked,
|
9491
9566
|
addAmountToAsset,
|
9492
9567
|
addOperation,
|
9568
|
+
assemblePanicError,
|
9493
9569
|
assembleReceiptByType,
|
9570
|
+
assembleRevertError,
|
9494
9571
|
assembleTransactionSummary,
|
9495
9572
|
assets,
|
9496
9573
|
buildBlockExplorerUrl,
|
@@ -9505,6 +9582,7 @@ export {
|
|
9505
9582
|
english,
|
9506
9583
|
extractBurnedAssetsFromReceipts,
|
9507
9584
|
extractMintedAssetsFromReceipts,
|
9585
|
+
extractTxError,
|
9508
9586
|
gasUsedByInputs,
|
9509
9587
|
getAssetEth,
|
9510
9588
|
getAssetFuel,
|