@fuel-ts/account 0.0.0-rc-1936-20240328132546 → 0.0.0-rc-1895-20240328133917
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 +160 -28
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +572 -483
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +350 -256
- package/dist/index.mjs.map +1 -1
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/transaction-request/script-transaction-request.d.ts +3 -0
- package/dist/providers/transaction-request/script-transaction-request.d.ts.map +1 -1
- package/dist/providers/transaction-request/types.d.ts +5 -0
- package/dist/providers/transaction-request/types.d.ts.map +1 -1
- package/dist/providers/transaction-response/getDecodedLogs.d.ts.map +1 -1
- package/dist/providers/transaction-response/transaction-response.d.ts +5 -2
- 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 +160 -15
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +532 -438
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +320 -218
- 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
|
|
@@ -2356,6 +2426,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2356
2426
|
script;
|
2357
2427
|
/** Script input data (parameters) */
|
2358
2428
|
scriptData;
|
2429
|
+
abis;
|
2359
2430
|
/**
|
2360
2431
|
* Constructor for `ScriptTransactionRequest`.
|
2361
2432
|
*
|
@@ -2363,9 +2434,10 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2363
2434
|
*/
|
2364
2435
|
constructor({ script, scriptData, gasLimit, ...rest } = {}) {
|
2365
2436
|
super(rest);
|
2366
|
-
this.gasLimit =
|
2437
|
+
this.gasLimit = bn10(gasLimit);
|
2367
2438
|
this.script = arrayify8(script ?? returnZeroScript.bytes);
|
2368
2439
|
this.scriptData = arrayify8(scriptData ?? returnZeroScript.encodeScriptData());
|
2440
|
+
this.abis = rest.abis;
|
2369
2441
|
}
|
2370
2442
|
/**
|
2371
2443
|
* Converts the transaction request to a `TransactionScript`.
|
@@ -2510,7 +2582,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2510
2582
|
};
|
2511
2583
|
|
2512
2584
|
// src/providers/transaction-request/utils.ts
|
2513
|
-
import { ErrorCode as
|
2585
|
+
import { ErrorCode as ErrorCode8, FuelError as FuelError8 } from "@fuel-ts/errors";
|
2514
2586
|
import { TransactionType as TransactionType5 } from "@fuel-ts/transactions";
|
2515
2587
|
var transactionRequestify = (obj) => {
|
2516
2588
|
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
|
@@ -2525,14 +2597,14 @@ var transactionRequestify = (obj) => {
|
|
2525
2597
|
return CreateTransactionRequest.from(obj);
|
2526
2598
|
}
|
2527
2599
|
default: {
|
2528
|
-
throw new
|
2600
|
+
throw new FuelError8(ErrorCode8.INVALID_TRANSACTION_TYPE, `Invalid transaction type: ${type}.`);
|
2529
2601
|
}
|
2530
2602
|
}
|
2531
2603
|
};
|
2532
2604
|
|
2533
2605
|
// src/providers/transaction-response/transaction-response.ts
|
2534
|
-
import { ErrorCode as
|
2535
|
-
import { bn as
|
2606
|
+
import { ErrorCode as ErrorCode12, FuelError as FuelError12 } from "@fuel-ts/errors";
|
2607
|
+
import { bn as bn14 } from "@fuel-ts/math";
|
2536
2608
|
import { TransactionCoder as TransactionCoder4 } from "@fuel-ts/transactions";
|
2537
2609
|
import { arrayify as arrayify10 } from "@fuel-ts/utils";
|
2538
2610
|
|
@@ -2540,7 +2612,7 @@ import { arrayify as arrayify10 } from "@fuel-ts/utils";
|
|
2540
2612
|
import { DateTime, hexlify as hexlify11 } from "@fuel-ts/utils";
|
2541
2613
|
|
2542
2614
|
// src/providers/transaction-summary/calculate-transaction-fee.ts
|
2543
|
-
import { bn as
|
2615
|
+
import { bn as bn11 } from "@fuel-ts/math";
|
2544
2616
|
import { PolicyType as PolicyType2, TransactionCoder as TransactionCoder3, TransactionType as TransactionType6 } from "@fuel-ts/transactions";
|
2545
2617
|
import { arrayify as arrayify9 } from "@fuel-ts/utils";
|
2546
2618
|
var calculateTransactionFee = (params) => {
|
@@ -2549,24 +2621,24 @@ var calculateTransactionFee = (params) => {
|
|
2549
2621
|
rawPayload,
|
2550
2622
|
consensusParameters: { gasCosts, feeParams }
|
2551
2623
|
} = params;
|
2552
|
-
const gasPerByte =
|
2553
|
-
const gasPriceFactor =
|
2624
|
+
const gasPerByte = bn11(feeParams.gasPerByte);
|
2625
|
+
const gasPriceFactor = bn11(feeParams.gasPriceFactor);
|
2554
2626
|
const transactionBytes = arrayify9(rawPayload);
|
2555
2627
|
const [transaction] = new TransactionCoder3().decode(transactionBytes, 0);
|
2556
2628
|
if (transaction.type === TransactionType6.Mint) {
|
2557
2629
|
return {
|
2558
|
-
fee:
|
2559
|
-
minFee:
|
2560
|
-
maxFee:
|
2561
|
-
feeFromGasUsed:
|
2630
|
+
fee: bn11(0),
|
2631
|
+
minFee: bn11(0),
|
2632
|
+
maxFee: bn11(0),
|
2633
|
+
feeFromGasUsed: bn11(0)
|
2562
2634
|
};
|
2563
2635
|
}
|
2564
2636
|
const { type, witnesses, inputs, policies } = transaction;
|
2565
|
-
let metadataGas =
|
2566
|
-
let gasLimit =
|
2637
|
+
let metadataGas = bn11(0);
|
2638
|
+
let gasLimit = bn11(0);
|
2567
2639
|
if (type === TransactionType6.Create) {
|
2568
2640
|
const { bytecodeWitnessIndex, storageSlots } = transaction;
|
2569
|
-
const contractBytesSize =
|
2641
|
+
const contractBytesSize = bn11(arrayify9(witnesses[bytecodeWitnessIndex].data).length);
|
2570
2642
|
metadataGas = calculateMetadataGasForTxCreate({
|
2571
2643
|
contractBytesSize,
|
2572
2644
|
gasCosts,
|
@@ -2585,12 +2657,12 @@ var calculateTransactionFee = (params) => {
|
|
2585
2657
|
}
|
2586
2658
|
const minGas = getMinGas({
|
2587
2659
|
gasCosts,
|
2588
|
-
gasPerByte:
|
2660
|
+
gasPerByte: bn11(gasPerByte),
|
2589
2661
|
inputs,
|
2590
2662
|
metadataGas,
|
2591
2663
|
txBytesSize: transactionBytes.length
|
2592
2664
|
});
|
2593
|
-
const gasPrice =
|
2665
|
+
const gasPrice = bn11(policies.find((policy) => policy.type === PolicyType2.GasPrice)?.data);
|
2594
2666
|
const witnessLimit = policies.find((policy) => policy.type === PolicyType2.WitnessLimit)?.data;
|
2595
2667
|
const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
|
2596
2668
|
const maxGas = getMaxGas({
|
@@ -2614,13 +2686,13 @@ var calculateTransactionFee = (params) => {
|
|
2614
2686
|
|
2615
2687
|
// src/providers/transaction-summary/operations.ts
|
2616
2688
|
import { ZeroBytes32 as ZeroBytes328 } from "@fuel-ts/address/configs";
|
2617
|
-
import { ErrorCode as
|
2618
|
-
import { bn as
|
2619
|
-
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";
|
2620
2692
|
|
2621
2693
|
// src/providers/transaction-summary/call.ts
|
2622
2694
|
import { Interface as Interface2, calculateVmTxMemory } from "@fuel-ts/abi-coder";
|
2623
|
-
import { bn as
|
2695
|
+
import { bn as bn12 } from "@fuel-ts/math";
|
2624
2696
|
var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
2625
2697
|
const abiInterface = new Interface2(abi);
|
2626
2698
|
const callFunctionSelector = receipt.param1.toHex(8);
|
@@ -2629,7 +2701,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2629
2701
|
let encodedArgs;
|
2630
2702
|
if (functionFragment.isInputDataPointer) {
|
2631
2703
|
if (rawPayload) {
|
2632
|
-
const argsOffset =
|
2704
|
+
const argsOffset = bn12(receipt.param2).sub(calculateVmTxMemory({ maxInputs: maxInputs.toNumber() })).toNumber();
|
2633
2705
|
encodedArgs = `0x${rawPayload.slice(2).slice(argsOffset * 2)}`;
|
2634
2706
|
}
|
2635
2707
|
} else {
|
@@ -2663,7 +2735,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2663
2735
|
};
|
2664
2736
|
|
2665
2737
|
// src/providers/transaction-summary/input.ts
|
2666
|
-
import { ErrorCode as
|
2738
|
+
import { ErrorCode as ErrorCode9, FuelError as FuelError9 } from "@fuel-ts/errors";
|
2667
2739
|
import { InputType as InputType5 } from "@fuel-ts/transactions";
|
2668
2740
|
function getInputsByTypes(inputs, types) {
|
2669
2741
|
return inputs.filter((i) => types.includes(i.type));
|
@@ -2701,8 +2773,8 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2701
2773
|
return void 0;
|
2702
2774
|
}
|
2703
2775
|
if (contractInput.type !== InputType5.Contract) {
|
2704
|
-
throw new
|
2705
|
-
|
2776
|
+
throw new FuelError9(
|
2777
|
+
ErrorCode9.INVALID_TRANSACTION_INPUT,
|
2706
2778
|
`Contract input should be of type 'contract'.`
|
2707
2779
|
);
|
2708
2780
|
}
|
@@ -2790,8 +2862,8 @@ function getTransactionTypeName(transactionType) {
|
|
2790
2862
|
case TransactionType7.Script:
|
2791
2863
|
return "Script" /* Script */;
|
2792
2864
|
default:
|
2793
|
-
throw new
|
2794
|
-
|
2865
|
+
throw new FuelError10(
|
2866
|
+
ErrorCode10.INVALID_TRANSACTION_TYPE,
|
2795
2867
|
`Invalid transaction type: ${transactionType}.`
|
2796
2868
|
);
|
2797
2869
|
}
|
@@ -2813,10 +2885,10 @@ function hasSameAssetId(a) {
|
|
2813
2885
|
return (b) => a.assetId === b.assetId;
|
2814
2886
|
}
|
2815
2887
|
function getReceiptsCall(receipts) {
|
2816
|
-
return getReceiptsByType(receipts,
|
2888
|
+
return getReceiptsByType(receipts, ReceiptType4.Call);
|
2817
2889
|
}
|
2818
2890
|
function getReceiptsMessageOut(receipts) {
|
2819
|
-
return getReceiptsByType(receipts,
|
2891
|
+
return getReceiptsByType(receipts, ReceiptType4.MessageOut);
|
2820
2892
|
}
|
2821
2893
|
var mergeAssets = (op1, op2) => {
|
2822
2894
|
const assets1 = op1.assetsSent || [];
|
@@ -2829,7 +2901,7 @@ var mergeAssets = (op1, op2) => {
|
|
2829
2901
|
if (!matchingAsset) {
|
2830
2902
|
return asset1;
|
2831
2903
|
}
|
2832
|
-
const mergedAmount =
|
2904
|
+
const mergedAmount = bn13(asset1.amount).add(matchingAsset.amount);
|
2833
2905
|
return { ...asset1, amount: mergedAmount };
|
2834
2906
|
});
|
2835
2907
|
return mergedAssets.concat(filteredAssets);
|
@@ -2855,7 +2927,7 @@ function addOperation(operations, toAdd) {
|
|
2855
2927
|
return allOperations;
|
2856
2928
|
}
|
2857
2929
|
function getReceiptsTransferOut(receipts) {
|
2858
|
-
return getReceiptsByType(receipts,
|
2930
|
+
return getReceiptsByType(receipts, ReceiptType4.TransferOut);
|
2859
2931
|
}
|
2860
2932
|
function getWithdrawFromFuelOperations({
|
2861
2933
|
inputs,
|
@@ -3015,11 +3087,11 @@ function getTransferOperations({
|
|
3015
3087
|
});
|
3016
3088
|
const transferReceipts = getReceiptsByType(
|
3017
3089
|
receipts,
|
3018
|
-
|
3090
|
+
ReceiptType4.Transfer
|
3019
3091
|
);
|
3020
3092
|
const transferOutReceipts = getReceiptsByType(
|
3021
3093
|
receipts,
|
3022
|
-
|
3094
|
+
ReceiptType4.TransferOut
|
3023
3095
|
);
|
3024
3096
|
[...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
|
3025
3097
|
const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
|
@@ -3104,17 +3176,17 @@ function getOperations({
|
|
3104
3176
|
}
|
3105
3177
|
|
3106
3178
|
// src/providers/transaction-summary/receipt.ts
|
3107
|
-
import { ReceiptType as
|
3179
|
+
import { ReceiptType as ReceiptType5 } from "@fuel-ts/transactions";
|
3108
3180
|
var processGqlReceipt = (gqlReceipt) => {
|
3109
3181
|
const receipt = assembleReceiptByType(gqlReceipt);
|
3110
3182
|
switch (receipt.type) {
|
3111
|
-
case
|
3183
|
+
case ReceiptType5.ReturnData: {
|
3112
3184
|
return {
|
3113
3185
|
...receipt,
|
3114
3186
|
data: gqlReceipt.data || "0x"
|
3115
3187
|
};
|
3116
3188
|
}
|
3117
|
-
case
|
3189
|
+
case ReceiptType5.LogData: {
|
3118
3190
|
return {
|
3119
3191
|
...receipt,
|
3120
3192
|
data: gqlReceipt.data || "0x"
|
@@ -3127,7 +3199,7 @@ var processGqlReceipt = (gqlReceipt) => {
|
|
3127
3199
|
var extractMintedAssetsFromReceipts = (receipts) => {
|
3128
3200
|
const mintedAssets = [];
|
3129
3201
|
receipts.forEach((receipt) => {
|
3130
|
-
if (receipt.type ===
|
3202
|
+
if (receipt.type === ReceiptType5.Mint) {
|
3131
3203
|
mintedAssets.push({
|
3132
3204
|
subId: receipt.subId,
|
3133
3205
|
contractId: receipt.contractId,
|
@@ -3141,7 +3213,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
|
|
3141
3213
|
var extractBurnedAssetsFromReceipts = (receipts) => {
|
3142
3214
|
const burnedAssets = [];
|
3143
3215
|
receipts.forEach((receipt) => {
|
3144
|
-
if (receipt.type ===
|
3216
|
+
if (receipt.type === ReceiptType5.Burn) {
|
3145
3217
|
burnedAssets.push({
|
3146
3218
|
subId: receipt.subId,
|
3147
3219
|
contractId: receipt.contractId,
|
@@ -3154,7 +3226,7 @@ var extractBurnedAssetsFromReceipts = (receipts) => {
|
|
3154
3226
|
};
|
3155
3227
|
|
3156
3228
|
// src/providers/transaction-summary/status.ts
|
3157
|
-
import { ErrorCode as
|
3229
|
+
import { ErrorCode as ErrorCode11, FuelError as FuelError11 } from "@fuel-ts/errors";
|
3158
3230
|
var getTransactionStatusName = (gqlStatus) => {
|
3159
3231
|
switch (gqlStatus) {
|
3160
3232
|
case "FailureStatus":
|
@@ -3166,8 +3238,8 @@ var getTransactionStatusName = (gqlStatus) => {
|
|
3166
3238
|
case "SqueezedOutStatus":
|
3167
3239
|
return "squeezedout" /* squeezedout */;
|
3168
3240
|
default:
|
3169
|
-
throw new
|
3170
|
-
|
3241
|
+
throw new FuelError11(
|
3242
|
+
ErrorCode11.INVALID_TRANSACTION_STATUS,
|
3171
3243
|
`Invalid transaction status: ${gqlStatus}.`
|
3172
3244
|
);
|
3173
3245
|
}
|
@@ -3278,6 +3350,21 @@ function assembleTransactionSummary(params) {
|
|
3278
3350
|
return transactionSummary;
|
3279
3351
|
}
|
3280
3352
|
|
3353
|
+
// src/providers/transaction-response/getDecodedLogs.ts
|
3354
|
+
import { Interface as Interface3, BigNumberCoder } from "@fuel-ts/abi-coder";
|
3355
|
+
import { ReceiptType as ReceiptType6 } from "@fuel-ts/transactions";
|
3356
|
+
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3357
|
+
return receipts.reduce((logs, receipt) => {
|
3358
|
+
if (receipt.type === ReceiptType6.LogData || receipt.type === ReceiptType6.Log) {
|
3359
|
+
const interfaceToUse = new Interface3(externalAbis[receipt.id] || mainAbi);
|
3360
|
+
const data = receipt.type === ReceiptType6.Log ? new BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3361
|
+
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3362
|
+
logs.push(decodedLog);
|
3363
|
+
}
|
3364
|
+
return logs;
|
3365
|
+
}, []);
|
3366
|
+
}
|
3367
|
+
|
3281
3368
|
// src/providers/transaction-response/transaction-response.ts
|
3282
3369
|
var TransactionResponse = class {
|
3283
3370
|
/** Transaction ID */
|
@@ -3285,18 +3372,20 @@ var TransactionResponse = class {
|
|
3285
3372
|
/** Current provider */
|
3286
3373
|
provider;
|
3287
3374
|
/** Gas used on the transaction */
|
3288
|
-
gasUsed =
|
3375
|
+
gasUsed = bn14(0);
|
3289
3376
|
/** The graphql Transaction with receipts object. */
|
3290
3377
|
gqlTransaction;
|
3378
|
+
abis;
|
3291
3379
|
/**
|
3292
3380
|
* Constructor for `TransactionResponse`.
|
3293
3381
|
*
|
3294
3382
|
* @param id - The transaction ID.
|
3295
3383
|
* @param provider - The provider.
|
3296
3384
|
*/
|
3297
|
-
constructor(id, provider) {
|
3385
|
+
constructor(id, provider, abis) {
|
3298
3386
|
this.id = id;
|
3299
3387
|
this.provider = provider;
|
3388
|
+
this.abis = abis;
|
3300
3389
|
}
|
3301
3390
|
/**
|
3302
3391
|
* Async constructor for `TransactionResponse`. This method can be used to create
|
@@ -3306,8 +3395,8 @@ var TransactionResponse = class {
|
|
3306
3395
|
* @param id - The transaction ID.
|
3307
3396
|
* @param provider - The provider.
|
3308
3397
|
*/
|
3309
|
-
static async create(id, provider) {
|
3310
|
-
const response = new TransactionResponse(id, provider);
|
3398
|
+
static async create(id, provider, abis) {
|
3399
|
+
const response = new TransactionResponse(id, provider, abis);
|
3311
3400
|
await response.fetch();
|
3312
3401
|
return response;
|
3313
3402
|
}
|
@@ -3388,8 +3477,8 @@ var TransactionResponse = class {
|
|
3388
3477
|
});
|
3389
3478
|
for await (const { statusChange } of subscription) {
|
3390
3479
|
if (statusChange.type === "SqueezedOutStatus") {
|
3391
|
-
throw new
|
3392
|
-
|
3480
|
+
throw new FuelError12(
|
3481
|
+
ErrorCode12.TRANSACTION_SQUEEZED_OUT,
|
3393
3482
|
`Transaction Squeezed Out with reason: ${statusChange.reason}`
|
3394
3483
|
);
|
3395
3484
|
}
|
@@ -3411,6 +3500,26 @@ var TransactionResponse = class {
|
|
3411
3500
|
gqlTransaction: this.gqlTransaction,
|
3412
3501
|
...transactionSummary
|
3413
3502
|
};
|
3503
|
+
let logs = [];
|
3504
|
+
if (this.abis) {
|
3505
|
+
logs = getDecodedLogs(
|
3506
|
+
transactionSummary.receipts,
|
3507
|
+
this.abis.main,
|
3508
|
+
this.abis.otherContractsAbis
|
3509
|
+
);
|
3510
|
+
transactionResult.logs = logs;
|
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
|
+
}
|
3414
3523
|
return transactionResult;
|
3415
3524
|
}
|
3416
3525
|
/**
|
@@ -3419,32 +3528,10 @@ var TransactionResponse = class {
|
|
3419
3528
|
* @param contractsAbiMap - The contracts ABI map.
|
3420
3529
|
*/
|
3421
3530
|
async wait(contractsAbiMap) {
|
3422
|
-
|
3423
|
-
if (result.isStatusFailure) {
|
3424
|
-
throw new FuelError11(
|
3425
|
-
ErrorCode11.TRANSACTION_FAILED,
|
3426
|
-
`Transaction failed: ${result.gqlTransaction.status.reason}`
|
3427
|
-
);
|
3428
|
-
}
|
3429
|
-
return result;
|
3531
|
+
return this.waitForResult(contractsAbiMap);
|
3430
3532
|
}
|
3431
3533
|
};
|
3432
3534
|
|
3433
|
-
// src/providers/transaction-response/getDecodedLogs.ts
|
3434
|
-
import { Interface as Interface3, BigNumberCoder } from "@fuel-ts/abi-coder";
|
3435
|
-
import { ReceiptType as ReceiptType5 } from "@fuel-ts/transactions";
|
3436
|
-
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3437
|
-
return receipts.reduce((logs, receipt) => {
|
3438
|
-
if (receipt.type === ReceiptType5.LogData || receipt.type === ReceiptType5.Log) {
|
3439
|
-
const interfaceToUse = externalAbis[receipt.id] ? new Interface3(externalAbis[receipt.id]) : new Interface3(mainAbi);
|
3440
|
-
const data = receipt.type === ReceiptType5.Log ? new BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3441
|
-
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3442
|
-
logs.push(decodedLog);
|
3443
|
-
}
|
3444
|
-
return logs;
|
3445
|
-
}, []);
|
3446
|
-
}
|
3447
|
-
|
3448
3535
|
// src/providers/utils/auto-retry-fetch.ts
|
3449
3536
|
function getWaitDelay(options, retryAttemptNum) {
|
3450
3537
|
const duration = options.baseDelay ?? 150;
|
@@ -3503,29 +3590,29 @@ var processGqlChain = (chain) => {
|
|
3503
3590
|
const { contractParams, feeParams, predicateParams, scriptParams, txParams, gasCosts } = consensusParameters;
|
3504
3591
|
return {
|
3505
3592
|
name,
|
3506
|
-
baseChainHeight:
|
3593
|
+
baseChainHeight: bn15(daHeight),
|
3507
3594
|
consensusParameters: {
|
3508
|
-
contractMaxSize:
|
3509
|
-
maxInputs:
|
3510
|
-
maxOutputs:
|
3511
|
-
maxWitnesses:
|
3512
|
-
maxGasPerTx:
|
3513
|
-
maxScriptLength:
|
3514
|
-
maxScriptDataLength:
|
3515
|
-
maxStorageSlots:
|
3516
|
-
maxPredicateLength:
|
3517
|
-
maxPredicateDataLength:
|
3518
|
-
maxGasPerPredicate:
|
3519
|
-
gasPriceFactor:
|
3520
|
-
gasPerByte:
|
3521
|
-
maxMessageDataLength:
|
3522
|
-
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),
|
3523
3610
|
gasCosts
|
3524
3611
|
},
|
3525
3612
|
gasCosts,
|
3526
3613
|
latestBlock: {
|
3527
3614
|
id: latestBlock.id,
|
3528
|
-
height:
|
3615
|
+
height: bn15(latestBlock.header.height),
|
3529
3616
|
time: latestBlock.header.time,
|
3530
3617
|
transactions: latestBlock.transactions.map((i) => ({
|
3531
3618
|
id: i.id
|
@@ -3595,8 +3682,8 @@ var _Provider = class {
|
|
3595
3682
|
getChain() {
|
3596
3683
|
const chain = _Provider.chainInfoCache[this.url];
|
3597
3684
|
if (!chain) {
|
3598
|
-
throw new
|
3599
|
-
|
3685
|
+
throw new FuelError13(
|
3686
|
+
ErrorCode13.CHAIN_INFO_CACHE_EMPTY,
|
3600
3687
|
"Chain info cache is empty. Make sure you have called `Provider.create` to initialize the provider."
|
3601
3688
|
);
|
3602
3689
|
}
|
@@ -3608,8 +3695,8 @@ var _Provider = class {
|
|
3608
3695
|
getNode() {
|
3609
3696
|
const node = _Provider.nodeInfoCache[this.url];
|
3610
3697
|
if (!node) {
|
3611
|
-
throw new
|
3612
|
-
|
3698
|
+
throw new FuelError13(
|
3699
|
+
ErrorCode13.NODE_INFO_CACHE_EMPTY,
|
3613
3700
|
"Node info cache is empty. Make sure you have called `Provider.create` to initialize the provider."
|
3614
3701
|
);
|
3615
3702
|
}
|
@@ -3656,8 +3743,8 @@ var _Provider = class {
|
|
3656
3743
|
static ensureClientVersionIsSupported(nodeInfo) {
|
3657
3744
|
const { isMajorSupported, isMinorSupported, supportedVersion } = checkFuelCoreVersionCompatibility(nodeInfo.nodeVersion);
|
3658
3745
|
if (!isMajorSupported || !isMinorSupported) {
|
3659
|
-
throw new
|
3660
|
-
|
3746
|
+
throw new FuelError13(
|
3747
|
+
FuelError13.CODES.UNSUPPORTED_FUEL_CLIENT_VERSION,
|
3661
3748
|
`Fuel client version: ${nodeInfo.nodeVersion}, Supported version: ${supportedVersion}`
|
3662
3749
|
);
|
3663
3750
|
}
|
@@ -3720,7 +3807,7 @@ var _Provider = class {
|
|
3720
3807
|
*/
|
3721
3808
|
async getBlockNumber() {
|
3722
3809
|
const { chain } = await this.operations.getChain();
|
3723
|
-
return
|
3810
|
+
return bn15(chain.latestBlock.header.height, 10);
|
3724
3811
|
}
|
3725
3812
|
/**
|
3726
3813
|
* Returns the chain information.
|
@@ -3730,9 +3817,9 @@ var _Provider = class {
|
|
3730
3817
|
async fetchNode() {
|
3731
3818
|
const { nodeInfo } = await this.operations.getNodeInfo();
|
3732
3819
|
const processedNodeInfo = {
|
3733
|
-
maxDepth:
|
3734
|
-
maxTx:
|
3735
|
-
minGasPrice:
|
3820
|
+
maxDepth: bn15(nodeInfo.maxDepth),
|
3821
|
+
maxTx: bn15(nodeInfo.maxTx),
|
3822
|
+
minGasPrice: bn15(nodeInfo.minGasPrice),
|
3736
3823
|
nodeVersion: nodeInfo.nodeVersion,
|
3737
3824
|
utxoValidation: nodeInfo.utxoValidation,
|
3738
3825
|
vmBacktrace: nodeInfo.vmBacktrace,
|
@@ -3779,12 +3866,16 @@ var _Provider = class {
|
|
3779
3866
|
await this.estimateTxDependencies(transactionRequest);
|
3780
3867
|
}
|
3781
3868
|
const encodedTransaction = hexlify12(transactionRequest.toTransactionBytes());
|
3869
|
+
let abis;
|
3870
|
+
if (transactionRequest.type === TransactionType8.Script) {
|
3871
|
+
abis = transactionRequest.abis;
|
3872
|
+
}
|
3782
3873
|
if (awaitExecution) {
|
3783
3874
|
const subscription = this.operations.submitAndAwait({ encodedTransaction });
|
3784
3875
|
for await (const { submitAndAwait } of subscription) {
|
3785
3876
|
if (submitAndAwait.type === "SqueezedOutStatus") {
|
3786
|
-
throw new
|
3787
|
-
|
3877
|
+
throw new FuelError13(
|
3878
|
+
ErrorCode13.TRANSACTION_SQUEEZED_OUT,
|
3788
3879
|
`Transaction Squeezed Out with reason: ${submitAndAwait.reason}`
|
3789
3880
|
);
|
3790
3881
|
}
|
@@ -3793,14 +3884,14 @@ var _Provider = class {
|
|
3793
3884
|
}
|
3794
3885
|
}
|
3795
3886
|
const transactionId2 = transactionRequest.getTransactionId(this.getChainId());
|
3796
|
-
const response = new TransactionResponse(transactionId2, this);
|
3887
|
+
const response = new TransactionResponse(transactionId2, this, abis);
|
3797
3888
|
await response.fetch();
|
3798
3889
|
return response;
|
3799
3890
|
}
|
3800
3891
|
const {
|
3801
3892
|
submit: { id: transactionId }
|
3802
3893
|
} = await this.operations.submit({ encodedTransaction });
|
3803
|
-
return new TransactionResponse(transactionId, this);
|
3894
|
+
return new TransactionResponse(transactionId, this, abis);
|
3804
3895
|
}
|
3805
3896
|
/**
|
3806
3897
|
* Executes a transaction without actually submitting it to the chain.
|
@@ -3851,7 +3942,7 @@ var _Provider = class {
|
|
3851
3942
|
} = response;
|
3852
3943
|
if (inputs) {
|
3853
3944
|
inputs.forEach((input, index) => {
|
3854
|
-
if ("predicateGasUsed" in input &&
|
3945
|
+
if ("predicateGasUsed" in input && bn15(input.predicateGasUsed).gt(0)) {
|
3855
3946
|
transactionRequest.inputs[index].predicateGasUsed = input.predicateGasUsed;
|
3856
3947
|
}
|
3857
3948
|
});
|
@@ -3964,7 +4055,7 @@ var _Provider = class {
|
|
3964
4055
|
txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
|
3965
4056
|
if (estimatePredicates) {
|
3966
4057
|
if (isScriptTransaction) {
|
3967
|
-
txRequestClone.gasLimit =
|
4058
|
+
txRequestClone.gasLimit = bn15(0);
|
3968
4059
|
}
|
3969
4060
|
if (resourcesOwner && "populateTransactionPredicateData" in resourcesOwner) {
|
3970
4061
|
resourcesOwner.populateTransactionPredicateData(txRequestClone);
|
@@ -3980,8 +4071,8 @@ var _Provider = class {
|
|
3980
4071
|
let missingContractIds = [];
|
3981
4072
|
let outputVariables = 0;
|
3982
4073
|
if (isScriptTransaction && estimateTxDependencies) {
|
3983
|
-
txRequestClone.gasPrice =
|
3984
|
-
txRequestClone.gasLimit =
|
4074
|
+
txRequestClone.gasPrice = bn15(0);
|
4075
|
+
txRequestClone.gasLimit = bn15(maxGasPerTx.sub(maxGas).toNumber() * 0.9);
|
3985
4076
|
const result = await this.estimateTxDependencies(txRequestClone);
|
3986
4077
|
receipts = result.receipts;
|
3987
4078
|
outputVariables = result.outputVariables;
|
@@ -4043,11 +4134,11 @@ var _Provider = class {
|
|
4043
4134
|
return coins.map((coin) => ({
|
4044
4135
|
id: coin.utxoId,
|
4045
4136
|
assetId: coin.assetId,
|
4046
|
-
amount:
|
4137
|
+
amount: bn15(coin.amount),
|
4047
4138
|
owner: Address2.fromAddressOrString(coin.owner),
|
4048
|
-
maturity:
|
4049
|
-
blockCreated:
|
4050
|
-
txCreatedIdx:
|
4139
|
+
maturity: bn15(coin.maturity).toNumber(),
|
4140
|
+
blockCreated: bn15(coin.blockCreated),
|
4141
|
+
txCreatedIdx: bn15(coin.txCreatedIdx)
|
4051
4142
|
}));
|
4052
4143
|
}
|
4053
4144
|
/**
|
@@ -4084,9 +4175,9 @@ var _Provider = class {
|
|
4084
4175
|
switch (coin.__typename) {
|
4085
4176
|
case "MessageCoin":
|
4086
4177
|
return {
|
4087
|
-
amount:
|
4178
|
+
amount: bn15(coin.amount),
|
4088
4179
|
assetId: coin.assetId,
|
4089
|
-
daHeight:
|
4180
|
+
daHeight: bn15(coin.daHeight),
|
4090
4181
|
sender: Address2.fromAddressOrString(coin.sender),
|
4091
4182
|
recipient: Address2.fromAddressOrString(coin.recipient),
|
4092
4183
|
nonce: coin.nonce
|
@@ -4094,12 +4185,12 @@ var _Provider = class {
|
|
4094
4185
|
case "Coin":
|
4095
4186
|
return {
|
4096
4187
|
id: coin.utxoId,
|
4097
|
-
amount:
|
4188
|
+
amount: bn15(coin.amount),
|
4098
4189
|
assetId: coin.assetId,
|
4099
4190
|
owner: Address2.fromAddressOrString(coin.owner),
|
4100
|
-
maturity:
|
4101
|
-
blockCreated:
|
4102
|
-
txCreatedIdx:
|
4191
|
+
maturity: bn15(coin.maturity).toNumber(),
|
4192
|
+
blockCreated: bn15(coin.blockCreated),
|
4193
|
+
txCreatedIdx: bn15(coin.txCreatedIdx)
|
4103
4194
|
};
|
4104
4195
|
default:
|
4105
4196
|
return null;
|
@@ -4116,13 +4207,13 @@ var _Provider = class {
|
|
4116
4207
|
async getBlock(idOrHeight) {
|
4117
4208
|
let variables;
|
4118
4209
|
if (typeof idOrHeight === "number") {
|
4119
|
-
variables = { height:
|
4210
|
+
variables = { height: bn15(idOrHeight).toString(10) };
|
4120
4211
|
} else if (idOrHeight === "latest") {
|
4121
4212
|
variables = { height: (await this.getBlockNumber()).toString(10) };
|
4122
4213
|
} else if (idOrHeight.length === 66) {
|
4123
4214
|
variables = { blockId: idOrHeight };
|
4124
4215
|
} else {
|
4125
|
-
variables = { blockId:
|
4216
|
+
variables = { blockId: bn15(idOrHeight).toString(10) };
|
4126
4217
|
}
|
4127
4218
|
const { block } = await this.operations.getBlock(variables);
|
4128
4219
|
if (!block) {
|
@@ -4130,7 +4221,7 @@ var _Provider = class {
|
|
4130
4221
|
}
|
4131
4222
|
return {
|
4132
4223
|
id: block.id,
|
4133
|
-
height:
|
4224
|
+
height: bn15(block.header.height),
|
4134
4225
|
time: block.header.time,
|
4135
4226
|
transactionIds: block.transactions.map((tx) => tx.id)
|
4136
4227
|
};
|
@@ -4145,7 +4236,7 @@ var _Provider = class {
|
|
4145
4236
|
const { blocks: fetchedData } = await this.operations.getBlocks(params);
|
4146
4237
|
const blocks = fetchedData.edges.map(({ node: block }) => ({
|
4147
4238
|
id: block.id,
|
4148
|
-
height:
|
4239
|
+
height: bn15(block.header.height),
|
4149
4240
|
time: block.header.time,
|
4150
4241
|
transactionIds: block.transactions.map((tx) => tx.id)
|
4151
4242
|
}));
|
@@ -4160,7 +4251,7 @@ var _Provider = class {
|
|
4160
4251
|
async getBlockWithTransactions(idOrHeight) {
|
4161
4252
|
let variables;
|
4162
4253
|
if (typeof idOrHeight === "number") {
|
4163
|
-
variables = { blockHeight:
|
4254
|
+
variables = { blockHeight: bn15(idOrHeight).toString(10) };
|
4164
4255
|
} else if (idOrHeight === "latest") {
|
4165
4256
|
variables = { blockHeight: (await this.getBlockNumber()).toString() };
|
4166
4257
|
} else {
|
@@ -4172,7 +4263,7 @@ var _Provider = class {
|
|
4172
4263
|
}
|
4173
4264
|
return {
|
4174
4265
|
id: block.id,
|
4175
|
-
height:
|
4266
|
+
height: bn15(block.header.height, 10),
|
4176
4267
|
time: block.header.time,
|
4177
4268
|
transactionIds: block.transactions.map((tx) => tx.id),
|
4178
4269
|
transactions: block.transactions.map(
|
@@ -4221,7 +4312,7 @@ var _Provider = class {
|
|
4221
4312
|
contract: Address2.fromAddressOrString(contractId).toB256(),
|
4222
4313
|
asset: hexlify12(assetId)
|
4223
4314
|
});
|
4224
|
-
return
|
4315
|
+
return bn15(contractBalance.amount, 10);
|
4225
4316
|
}
|
4226
4317
|
/**
|
4227
4318
|
* Returns the balance for the given owner for the given asset ID.
|
@@ -4235,7 +4326,7 @@ var _Provider = class {
|
|
4235
4326
|
owner: Address2.fromAddressOrString(owner).toB256(),
|
4236
4327
|
assetId: hexlify12(assetId)
|
4237
4328
|
});
|
4238
|
-
return
|
4329
|
+
return bn15(balance.amount, 10);
|
4239
4330
|
}
|
4240
4331
|
/**
|
4241
4332
|
* Returns balances for the given owner.
|
@@ -4253,7 +4344,7 @@ var _Provider = class {
|
|
4253
4344
|
const balances = result.balances.edges.map((edge) => edge.node);
|
4254
4345
|
return balances.map((balance) => ({
|
4255
4346
|
assetId: balance.assetId,
|
4256
|
-
amount:
|
4347
|
+
amount: bn15(balance.amount)
|
4257
4348
|
}));
|
4258
4349
|
}
|
4259
4350
|
/**
|
@@ -4275,15 +4366,15 @@ var _Provider = class {
|
|
4275
4366
|
sender: message.sender,
|
4276
4367
|
recipient: message.recipient,
|
4277
4368
|
nonce: message.nonce,
|
4278
|
-
amount:
|
4369
|
+
amount: bn15(message.amount),
|
4279
4370
|
data: message.data
|
4280
4371
|
}),
|
4281
4372
|
sender: Address2.fromAddressOrString(message.sender),
|
4282
4373
|
recipient: Address2.fromAddressOrString(message.recipient),
|
4283
4374
|
nonce: message.nonce,
|
4284
|
-
amount:
|
4375
|
+
amount: bn15(message.amount),
|
4285
4376
|
data: InputMessageCoder.decodeData(message.data),
|
4286
|
-
daHeight:
|
4377
|
+
daHeight: bn15(message.daHeight)
|
4287
4378
|
}));
|
4288
4379
|
}
|
4289
4380
|
/**
|
@@ -4301,8 +4392,8 @@ var _Provider = class {
|
|
4301
4392
|
nonce
|
4302
4393
|
};
|
4303
4394
|
if (commitBlockId && commitBlockHeight) {
|
4304
|
-
throw new
|
4305
|
-
|
4395
|
+
throw new FuelError13(
|
4396
|
+
ErrorCode13.INVALID_INPUT_PARAMETERS,
|
4306
4397
|
"commitBlockId and commitBlockHeight cannot be used together"
|
4307
4398
|
);
|
4308
4399
|
}
|
@@ -4336,41 +4427,41 @@ var _Provider = class {
|
|
4336
4427
|
} = result.messageProof;
|
4337
4428
|
return {
|
4338
4429
|
messageProof: {
|
4339
|
-
proofIndex:
|
4430
|
+
proofIndex: bn15(messageProof.proofIndex),
|
4340
4431
|
proofSet: messageProof.proofSet
|
4341
4432
|
},
|
4342
4433
|
blockProof: {
|
4343
|
-
proofIndex:
|
4434
|
+
proofIndex: bn15(blockProof.proofIndex),
|
4344
4435
|
proofSet: blockProof.proofSet
|
4345
4436
|
},
|
4346
4437
|
messageBlockHeader: {
|
4347
4438
|
id: messageBlockHeader.id,
|
4348
|
-
daHeight:
|
4349
|
-
transactionsCount:
|
4439
|
+
daHeight: bn15(messageBlockHeader.daHeight),
|
4440
|
+
transactionsCount: bn15(messageBlockHeader.transactionsCount),
|
4350
4441
|
transactionsRoot: messageBlockHeader.transactionsRoot,
|
4351
|
-
height:
|
4442
|
+
height: bn15(messageBlockHeader.height),
|
4352
4443
|
prevRoot: messageBlockHeader.prevRoot,
|
4353
4444
|
time: messageBlockHeader.time,
|
4354
4445
|
applicationHash: messageBlockHeader.applicationHash,
|
4355
4446
|
messageReceiptRoot: messageBlockHeader.messageReceiptRoot,
|
4356
|
-
messageReceiptCount:
|
4447
|
+
messageReceiptCount: bn15(messageBlockHeader.messageReceiptCount)
|
4357
4448
|
},
|
4358
4449
|
commitBlockHeader: {
|
4359
4450
|
id: commitBlockHeader.id,
|
4360
|
-
daHeight:
|
4361
|
-
transactionsCount:
|
4451
|
+
daHeight: bn15(commitBlockHeader.daHeight),
|
4452
|
+
transactionsCount: bn15(commitBlockHeader.transactionsCount),
|
4362
4453
|
transactionsRoot: commitBlockHeader.transactionsRoot,
|
4363
|
-
height:
|
4454
|
+
height: bn15(commitBlockHeader.height),
|
4364
4455
|
prevRoot: commitBlockHeader.prevRoot,
|
4365
4456
|
time: commitBlockHeader.time,
|
4366
4457
|
applicationHash: commitBlockHeader.applicationHash,
|
4367
4458
|
messageReceiptRoot: commitBlockHeader.messageReceiptRoot,
|
4368
|
-
messageReceiptCount:
|
4459
|
+
messageReceiptCount: bn15(commitBlockHeader.messageReceiptCount)
|
4369
4460
|
},
|
4370
4461
|
sender: Address2.fromAddressOrString(sender),
|
4371
4462
|
recipient: Address2.fromAddressOrString(recipient),
|
4372
4463
|
nonce,
|
4373
|
-
amount:
|
4464
|
+
amount: bn15(amount),
|
4374
4465
|
data
|
4375
4466
|
};
|
4376
4467
|
}
|
@@ -4393,10 +4484,10 @@ var _Provider = class {
|
|
4393
4484
|
*/
|
4394
4485
|
async produceBlocks(amount, startTime) {
|
4395
4486
|
const { produceBlocks: latestBlockHeight } = await this.operations.produceBlocks({
|
4396
|
-
blocksToProduce:
|
4487
|
+
blocksToProduce: bn15(amount).toString(10),
|
4397
4488
|
startTimestamp: startTime ? DateTime2.fromUnixMilliseconds(startTime).toTai64() : void 0
|
4398
4489
|
});
|
4399
|
-
return
|
4490
|
+
return bn15(latestBlockHeight);
|
4400
4491
|
}
|
4401
4492
|
// eslint-disable-next-line @typescript-eslint/require-await
|
4402
4493
|
async getTransactionResponse(transactionId) {
|
@@ -4419,8 +4510,8 @@ __publicField(Provider, "chainInfoCache", {});
|
|
4419
4510
|
__publicField(Provider, "nodeInfoCache", {});
|
4420
4511
|
|
4421
4512
|
// src/providers/transaction-summary/get-transaction-summary.ts
|
4422
|
-
import { ErrorCode as
|
4423
|
-
import { bn as
|
4513
|
+
import { ErrorCode as ErrorCode14, FuelError as FuelError14 } from "@fuel-ts/errors";
|
4514
|
+
import { bn as bn16 } from "@fuel-ts/math";
|
4424
4515
|
import { TransactionCoder as TransactionCoder6 } from "@fuel-ts/transactions";
|
4425
4516
|
import { arrayify as arrayify12 } from "@fuel-ts/utils";
|
4426
4517
|
async function getTransactionSummary(params) {
|
@@ -4429,8 +4520,8 @@ async function getTransactionSummary(params) {
|
|
4429
4520
|
transactionId: id
|
4430
4521
|
});
|
4431
4522
|
if (!gqlTransaction) {
|
4432
|
-
throw new
|
4433
|
-
|
4523
|
+
throw new FuelError14(
|
4524
|
+
ErrorCode14.TRANSACTION_NOT_FOUND,
|
4434
4525
|
`Transaction not found for given id: ${id}.`
|
4435
4526
|
);
|
4436
4527
|
}
|
@@ -4448,8 +4539,8 @@ async function getTransactionSummary(params) {
|
|
4448
4539
|
transaction: decodedTransaction,
|
4449
4540
|
transactionBytes: arrayify12(gqlTransaction.rawPayload),
|
4450
4541
|
gqlTransactionStatus: gqlTransaction.status,
|
4451
|
-
gasPerByte:
|
4452
|
-
gasPriceFactor:
|
4542
|
+
gasPerByte: bn16(gasPerByte),
|
4543
|
+
gasPriceFactor: bn16(gasPriceFactor),
|
4453
4544
|
abiMap,
|
4454
4545
|
maxInputs,
|
4455
4546
|
gasCosts
|
@@ -4703,7 +4794,7 @@ var Account = class extends AbstractAccount {
|
|
4703
4794
|
*/
|
4704
4795
|
get provider() {
|
4705
4796
|
if (!this._provider) {
|
4706
|
-
throw new
|
4797
|
+
throw new FuelError15(ErrorCode15.MISSING_PROVIDER, "Provider not set");
|
4707
4798
|
}
|
4708
4799
|
return this._provider;
|
4709
4800
|
}
|
@@ -4755,8 +4846,8 @@ var Account = class extends AbstractAccount {
|
|
4755
4846
|
if (!hasNextPage) {
|
4756
4847
|
break;
|
4757
4848
|
}
|
4758
|
-
throw new
|
4759
|
-
|
4849
|
+
throw new FuelError15(
|
4850
|
+
ErrorCode15.NOT_SUPPORTED,
|
4760
4851
|
`Wallets containing more than ${pageSize} coins exceed the current supported limit.`
|
4761
4852
|
);
|
4762
4853
|
}
|
@@ -4781,8 +4872,8 @@ var Account = class extends AbstractAccount {
|
|
4781
4872
|
if (!hasNextPage) {
|
4782
4873
|
break;
|
4783
4874
|
}
|
4784
|
-
throw new
|
4785
|
-
|
4875
|
+
throw new FuelError15(
|
4876
|
+
ErrorCode15.NOT_SUPPORTED,
|
4786
4877
|
`Wallets containing more than ${pageSize} messages exceed the current supported limit.`
|
4787
4878
|
);
|
4788
4879
|
}
|
@@ -4817,8 +4908,8 @@ var Account = class extends AbstractAccount {
|
|
4817
4908
|
if (!hasNextPage) {
|
4818
4909
|
break;
|
4819
4910
|
}
|
4820
|
-
throw new
|
4821
|
-
|
4911
|
+
throw new FuelError15(
|
4912
|
+
ErrorCode15.NOT_SUPPORTED,
|
4822
4913
|
`Wallets containing more than ${pageSize} balances exceed the current supported limit.`
|
4823
4914
|
);
|
4824
4915
|
}
|
@@ -4834,7 +4925,7 @@ var Account = class extends AbstractAccount {
|
|
4834
4925
|
*/
|
4835
4926
|
async fund(request, coinQuantities, fee) {
|
4836
4927
|
const updatedQuantities = addAmountToAsset({
|
4837
|
-
amount:
|
4928
|
+
amount: bn17(fee),
|
4838
4929
|
assetId: BaseAssetId3,
|
4839
4930
|
coinQuantities
|
4840
4931
|
});
|
@@ -4842,7 +4933,7 @@ var Account = class extends AbstractAccount {
|
|
4842
4933
|
updatedQuantities.forEach(({ amount, assetId }) => {
|
4843
4934
|
quantitiesDict[assetId] = {
|
4844
4935
|
required: amount,
|
4845
|
-
owned:
|
4936
|
+
owned: bn17(0)
|
4846
4937
|
};
|
4847
4938
|
});
|
4848
4939
|
const cachedUtxos = [];
|
@@ -4855,7 +4946,7 @@ var Account = class extends AbstractAccount {
|
|
4855
4946
|
if (isCoin2) {
|
4856
4947
|
const assetId = String(input.assetId);
|
4857
4948
|
if (input.owner === owner && quantitiesDict[assetId]) {
|
4858
|
-
const amount =
|
4949
|
+
const amount = bn17(input.amount);
|
4859
4950
|
quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
|
4860
4951
|
cachedUtxos.push(input.id);
|
4861
4952
|
}
|
@@ -4901,8 +4992,8 @@ var Account = class extends AbstractAccount {
|
|
4901
4992
|
estimateTxDependencies: true,
|
4902
4993
|
resourcesOwner: this
|
4903
4994
|
});
|
4904
|
-
request.gasPrice =
|
4905
|
-
request.gasLimit =
|
4995
|
+
request.gasPrice = bn17(txParams.gasPrice ?? minGasPrice);
|
4996
|
+
request.gasLimit = bn17(txParams.gasLimit ?? gasUsed);
|
4906
4997
|
this.validateGas({
|
4907
4998
|
gasUsed,
|
4908
4999
|
gasPrice: request.gasPrice,
|
@@ -4923,9 +5014,9 @@ var Account = class extends AbstractAccount {
|
|
4923
5014
|
* @returns A promise that resolves to the transaction response.
|
4924
5015
|
*/
|
4925
5016
|
async transfer(destination, amount, assetId = BaseAssetId3, txParams = {}) {
|
4926
|
-
if (
|
4927
|
-
throw new
|
4928
|
-
|
5017
|
+
if (bn17(amount).lte(0)) {
|
5018
|
+
throw new FuelError15(
|
5019
|
+
ErrorCode15.INVALID_TRANSFER_AMOUNT,
|
4929
5020
|
"Transfer amount must be a positive number."
|
4930
5021
|
);
|
4931
5022
|
}
|
@@ -4942,9 +5033,9 @@ var Account = class extends AbstractAccount {
|
|
4942
5033
|
* @returns A promise that resolves to the transaction response.
|
4943
5034
|
*/
|
4944
5035
|
async transferToContract(contractId, amount, assetId = BaseAssetId3, txParams = {}) {
|
4945
|
-
if (
|
4946
|
-
throw new
|
4947
|
-
|
5036
|
+
if (bn17(amount).lte(0)) {
|
5037
|
+
throw new FuelError15(
|
5038
|
+
ErrorCode15.INVALID_TRANSFER_AMOUNT,
|
4948
5039
|
"Transfer amount must be a positive number."
|
4949
5040
|
);
|
4950
5041
|
}
|
@@ -4953,7 +5044,7 @@ var Account = class extends AbstractAccount {
|
|
4953
5044
|
const params = { gasPrice: minGasPrice, ...txParams };
|
4954
5045
|
const { script, scriptData } = await assembleTransferToContractScript({
|
4955
5046
|
hexlifiedContractId: contractAddress.toB256(),
|
4956
|
-
amountToTransfer:
|
5047
|
+
amountToTransfer: bn17(amount),
|
4957
5048
|
assetId
|
4958
5049
|
});
|
4959
5050
|
const request = new ScriptTransactionRequest({
|
@@ -4964,9 +5055,9 @@ var Account = class extends AbstractAccount {
|
|
4964
5055
|
request.addContractInputAndOutput(contractAddress);
|
4965
5056
|
const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
|
4966
5057
|
request,
|
4967
|
-
[{ amount:
|
5058
|
+
[{ amount: bn17(amount), assetId: String(assetId) }]
|
4968
5059
|
);
|
4969
|
-
request.gasLimit =
|
5060
|
+
request.gasLimit = bn17(params.gasLimit ?? gasUsed);
|
4970
5061
|
this.validateGas({
|
4971
5062
|
gasUsed,
|
4972
5063
|
gasPrice: request.gasPrice,
|
@@ -4991,7 +5082,7 @@ var Account = class extends AbstractAccount {
|
|
4991
5082
|
"0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
|
4992
5083
|
);
|
4993
5084
|
const amountDataArray = arrayify14(
|
4994
|
-
"0x".concat(
|
5085
|
+
"0x".concat(bn17(amount).toHex().substring(2).padStart(16, "0"))
|
4995
5086
|
);
|
4996
5087
|
const script = new Uint8Array([
|
4997
5088
|
...arrayify14(withdrawScript.bytes),
|
@@ -5000,12 +5091,12 @@ var Account = class extends AbstractAccount {
|
|
5000
5091
|
]);
|
5001
5092
|
const params = { script, gasPrice: minGasPrice, ...txParams };
|
5002
5093
|
const request = new ScriptTransactionRequest(params);
|
5003
|
-
const forwardingQuantities = [{ amount:
|
5094
|
+
const forwardingQuantities = [{ amount: bn17(amount), assetId: BaseAssetId3 }];
|
5004
5095
|
const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
|
5005
5096
|
request,
|
5006
5097
|
forwardingQuantities
|
5007
5098
|
);
|
5008
|
-
request.gasLimit =
|
5099
|
+
request.gasLimit = bn17(params.gasLimit ?? gasUsed);
|
5009
5100
|
this.validateGas({
|
5010
5101
|
gasUsed,
|
5011
5102
|
gasPrice: request.gasPrice,
|
@@ -5017,7 +5108,7 @@ var Account = class extends AbstractAccount {
|
|
5017
5108
|
}
|
5018
5109
|
async signMessage(message) {
|
5019
5110
|
if (!this._connector) {
|
5020
|
-
throw new
|
5111
|
+
throw new FuelError15(ErrorCode15.MISSING_CONNECTOR, "A connector is required to sign messages.");
|
5021
5112
|
}
|
5022
5113
|
return this._connector.signMessage(this.address.toString(), message);
|
5023
5114
|
}
|
@@ -5029,8 +5120,8 @@ var Account = class extends AbstractAccount {
|
|
5029
5120
|
*/
|
5030
5121
|
async signTransaction(transactionRequestLike) {
|
5031
5122
|
if (!this._connector) {
|
5032
|
-
throw new
|
5033
|
-
|
5123
|
+
throw new FuelError15(
|
5124
|
+
ErrorCode15.MISSING_CONNECTOR,
|
5034
5125
|
"A connector is required to sign transactions."
|
5035
5126
|
);
|
5036
5127
|
}
|
@@ -5077,14 +5168,14 @@ var Account = class extends AbstractAccount {
|
|
5077
5168
|
minGasPrice
|
5078
5169
|
}) {
|
5079
5170
|
if (minGasPrice.gt(gasPrice)) {
|
5080
|
-
throw new
|
5081
|
-
|
5171
|
+
throw new FuelError15(
|
5172
|
+
ErrorCode15.GAS_PRICE_TOO_LOW,
|
5082
5173
|
`Gas price '${gasPrice}' is lower than the required: '${minGasPrice}'.`
|
5083
5174
|
);
|
5084
5175
|
}
|
5085
5176
|
if (gasUsed.gt(gasLimit)) {
|
5086
|
-
throw new
|
5087
|
-
|
5177
|
+
throw new FuelError15(
|
5178
|
+
ErrorCode15.GAS_LIMIT_TOO_LOW,
|
5088
5179
|
`Gas limit '${gasLimit}' is lower than the required: '${gasUsed}'.`
|
5089
5180
|
);
|
5090
5181
|
}
|
@@ -5215,7 +5306,7 @@ import {
|
|
5215
5306
|
decryptJsonWalletData,
|
5216
5307
|
encryptJsonWalletData
|
5217
5308
|
} from "@fuel-ts/crypto";
|
5218
|
-
import { ErrorCode as
|
5309
|
+
import { ErrorCode as ErrorCode16, FuelError as FuelError16 } from "@fuel-ts/errors";
|
5219
5310
|
import { hexlify as hexlify14 } from "@fuel-ts/utils";
|
5220
5311
|
import { v4 as uuidv4 } from "uuid";
|
5221
5312
|
var DEFAULT_KDF_PARAMS_LOG_N = 13;
|
@@ -5293,8 +5384,8 @@ async function decryptKeystoreWallet(jsonWallet, password) {
|
|
5293
5384
|
const macHashUint8Array = keccak256(data);
|
5294
5385
|
const macHash = stringFromBuffer(macHashUint8Array, "hex");
|
5295
5386
|
if (mac !== macHash) {
|
5296
|
-
throw new
|
5297
|
-
|
5387
|
+
throw new FuelError16(
|
5388
|
+
ErrorCode16.INVALID_PASSWORD,
|
5298
5389
|
"Failed to decrypt the keystore wallet, the provided password is incorrect."
|
5299
5390
|
);
|
5300
5391
|
}
|
@@ -5416,15 +5507,15 @@ var BaseWalletUnlocked = class extends Account {
|
|
5416
5507
|
__publicField(BaseWalletUnlocked, "defaultPath", "m/44'/1179993420'/0'/0/0");
|
5417
5508
|
|
5418
5509
|
// src/hdwallet/hdwallet.ts
|
5419
|
-
import { ErrorCode as
|
5510
|
+
import { ErrorCode as ErrorCode19, FuelError as FuelError19 } from "@fuel-ts/errors";
|
5420
5511
|
import { sha256 as sha2564 } from "@fuel-ts/hasher";
|
5421
|
-
import { bn as
|
5512
|
+
import { bn as bn18, toBytes as toBytes2, toHex } from "@fuel-ts/math";
|
5422
5513
|
import { arrayify as arrayify18, hexlify as hexlify17, concat as concat5 } from "@fuel-ts/utils";
|
5423
5514
|
import { toBeHex, dataSlice as dataSlice2, encodeBase58 as encodeBase582, decodeBase58, computeHmac as computeHmac2, ripemd160 } from "ethers";
|
5424
5515
|
|
5425
5516
|
// src/mnemonic/mnemonic.ts
|
5426
5517
|
import { randomBytes as randomBytes3 } from "@fuel-ts/crypto";
|
5427
|
-
import { ErrorCode as
|
5518
|
+
import { ErrorCode as ErrorCode18, FuelError as FuelError18 } from "@fuel-ts/errors";
|
5428
5519
|
import { sha256 as sha2563 } from "@fuel-ts/hasher";
|
5429
5520
|
import { arrayify as arrayify17, hexlify as hexlify16, concat as concat4 } from "@fuel-ts/utils";
|
5430
5521
|
import { dataSlice, pbkdf2, computeHmac, encodeBase58 } from "ethers";
|
@@ -7488,7 +7579,7 @@ var Language = /* @__PURE__ */ ((Language2) => {
|
|
7488
7579
|
})(Language || {});
|
7489
7580
|
|
7490
7581
|
// src/mnemonic/utils.ts
|
7491
|
-
import { ErrorCode as
|
7582
|
+
import { ErrorCode as ErrorCode17, FuelError as FuelError17 } from "@fuel-ts/errors";
|
7492
7583
|
import { sha256 as sha2562 } from "@fuel-ts/hasher";
|
7493
7584
|
import { arrayify as arrayify16 } from "@fuel-ts/utils";
|
7494
7585
|
function toUtf8Bytes(stri) {
|
@@ -7505,8 +7596,8 @@ function toUtf8Bytes(stri) {
|
|
7505
7596
|
i += 1;
|
7506
7597
|
const c2 = str.charCodeAt(i);
|
7507
7598
|
if (i >= str.length || (c2 & 64512) !== 56320) {
|
7508
|
-
throw new
|
7509
|
-
|
7599
|
+
throw new FuelError17(
|
7600
|
+
ErrorCode17.INVALID_INPUT_PARAMETERS,
|
7510
7601
|
"Invalid UTF-8 in the input string."
|
7511
7602
|
);
|
7512
7603
|
}
|
@@ -7569,8 +7660,8 @@ function mnemonicWordsToEntropy(words, wordlist) {
|
|
7569
7660
|
for (let i = 0; i < words.length; i += 1) {
|
7570
7661
|
const index = wordlist.indexOf(words[i].normalize("NFKD"));
|
7571
7662
|
if (index === -1) {
|
7572
|
-
throw new
|
7573
|
-
|
7663
|
+
throw new FuelError17(
|
7664
|
+
ErrorCode17.INVALID_MNEMONIC,
|
7574
7665
|
`Invalid mnemonic: the word '${words[i]}' is not found in the provided wordlist.`
|
7575
7666
|
);
|
7576
7667
|
}
|
@@ -7586,8 +7677,8 @@ function mnemonicWordsToEntropy(words, wordlist) {
|
|
7586
7677
|
const checksumMask = getUpperMask(checksumBits);
|
7587
7678
|
const checksum = arrayify16(sha2562(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;
|
7588
7679
|
if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {
|
7589
|
-
throw new
|
7590
|
-
|
7680
|
+
throw new FuelError17(
|
7681
|
+
ErrorCode17.INVALID_CHECKSUM,
|
7591
7682
|
"Checksum validation failed for the provided mnemonic."
|
7592
7683
|
);
|
7593
7684
|
}
|
@@ -7601,16 +7692,16 @@ var TestnetPRV = "0x04358394";
|
|
7601
7692
|
var MNEMONIC_SIZES = [12, 15, 18, 21, 24];
|
7602
7693
|
function assertWordList(wordlist) {
|
7603
7694
|
if (wordlist.length !== 2048) {
|
7604
|
-
throw new
|
7605
|
-
|
7695
|
+
throw new FuelError18(
|
7696
|
+
ErrorCode18.INVALID_WORD_LIST,
|
7606
7697
|
`Expected word list length of 2048, but got ${wordlist.length}.`
|
7607
7698
|
);
|
7608
7699
|
}
|
7609
7700
|
}
|
7610
7701
|
function assertEntropy(entropy) {
|
7611
7702
|
if (entropy.length % 4 !== 0 || entropy.length < 16 || entropy.length > 32) {
|
7612
|
-
throw new
|
7613
|
-
|
7703
|
+
throw new FuelError18(
|
7704
|
+
ErrorCode18.INVALID_ENTROPY,
|
7614
7705
|
`Entropy should be between 16 and 32 bytes and a multiple of 4, but got ${entropy.length} bytes.`
|
7615
7706
|
);
|
7616
7707
|
}
|
@@ -7620,7 +7711,7 @@ function assertMnemonic(words) {
|
|
7620
7711
|
const errorMsg = `Invalid mnemonic size. Expected one of [${MNEMONIC_SIZES.join(
|
7621
7712
|
", "
|
7622
7713
|
)}] words, but got ${words.length}.`;
|
7623
|
-
throw new
|
7714
|
+
throw new FuelError18(ErrorCode18.INVALID_MNEMONIC, errorMsg);
|
7624
7715
|
}
|
7625
7716
|
}
|
7626
7717
|
var Mnemonic = class {
|
@@ -7738,8 +7829,8 @@ var Mnemonic = class {
|
|
7738
7829
|
static masterKeysFromSeed(seed) {
|
7739
7830
|
const seedArray = arrayify17(seed);
|
7740
7831
|
if (seedArray.length < 16 || seedArray.length > 64) {
|
7741
|
-
throw new
|
7742
|
-
|
7832
|
+
throw new FuelError18(
|
7833
|
+
ErrorCode18.INVALID_SEED,
|
7743
7834
|
`Seed length should be between 16 and 64 bytes, but received ${seedArray.length} bytes.`
|
7744
7835
|
);
|
7745
7836
|
}
|
@@ -7816,7 +7907,7 @@ function isValidExtendedKey(extendedKey) {
|
|
7816
7907
|
function parsePath(path, depth = 0) {
|
7817
7908
|
const components = path.split("/");
|
7818
7909
|
if (components.length === 0 || components[0] === "m" && depth !== 0) {
|
7819
|
-
throw new
|
7910
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, `invalid path - ${path}`);
|
7820
7911
|
}
|
7821
7912
|
if (components[0] === "m") {
|
7822
7913
|
components.shift();
|
@@ -7845,8 +7936,8 @@ var HDWallet = class {
|
|
7845
7936
|
this.privateKey = hexlify17(config.privateKey);
|
7846
7937
|
} else {
|
7847
7938
|
if (!config.publicKey) {
|
7848
|
-
throw new
|
7849
|
-
|
7939
|
+
throw new FuelError19(
|
7940
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7850
7941
|
"Both public and private Key cannot be missing. At least one should be provided."
|
7851
7942
|
);
|
7852
7943
|
}
|
@@ -7875,8 +7966,8 @@ var HDWallet = class {
|
|
7875
7966
|
const data = new Uint8Array(37);
|
7876
7967
|
if (index & HARDENED_INDEX) {
|
7877
7968
|
if (!privateKey) {
|
7878
|
-
throw new
|
7879
|
-
|
7969
|
+
throw new FuelError19(
|
7970
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7880
7971
|
"Cannot derive a hardened index without a private Key."
|
7881
7972
|
);
|
7882
7973
|
}
|
@@ -7890,7 +7981,7 @@ var HDWallet = class {
|
|
7890
7981
|
const IR = bytes.slice(32);
|
7891
7982
|
if (privateKey) {
|
7892
7983
|
const N = "0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141";
|
7893
|
-
const ki =
|
7984
|
+
const ki = bn18(IL).add(privateKey).mod(N).toBytes(32);
|
7894
7985
|
return new HDWallet({
|
7895
7986
|
privateKey: ki,
|
7896
7987
|
chainCode: IR,
|
@@ -7928,8 +8019,8 @@ var HDWallet = class {
|
|
7928
8019
|
*/
|
7929
8020
|
toExtendedKey(isPublic = false, testnet = false) {
|
7930
8021
|
if (this.depth >= 256) {
|
7931
|
-
throw new
|
7932
|
-
|
8022
|
+
throw new FuelError19(
|
8023
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7933
8024
|
`Exceeded max depth of 255. Current depth: ${this.depth}.`
|
7934
8025
|
);
|
7935
8026
|
}
|
@@ -7960,10 +8051,10 @@ var HDWallet = class {
|
|
7960
8051
|
const bytes = arrayify18(decoded);
|
7961
8052
|
const validChecksum = base58check(bytes.slice(0, 78)) === extendedKey;
|
7962
8053
|
if (bytes.length !== 82 || !isValidExtendedKey(bytes)) {
|
7963
|
-
throw new
|
8054
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Provided key is not a valid extended key.");
|
7964
8055
|
}
|
7965
8056
|
if (!validChecksum) {
|
7966
|
-
throw new
|
8057
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Provided key has an invalid checksum.");
|
7967
8058
|
}
|
7968
8059
|
const depth = bytes[4];
|
7969
8060
|
const parentFingerprint = hexlify17(bytes.slice(5, 9));
|
@@ -7971,14 +8062,14 @@ var HDWallet = class {
|
|
7971
8062
|
const chainCode = hexlify17(bytes.slice(13, 45));
|
7972
8063
|
const key = bytes.slice(45, 78);
|
7973
8064
|
if (depth === 0 && parentFingerprint !== "0x00000000" || depth === 0 && index !== 0) {
|
7974
|
-
throw new
|
7975
|
-
|
8065
|
+
throw new FuelError19(
|
8066
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7976
8067
|
"Inconsistency detected: Depth is zero but fingerprint/index is non-zero."
|
7977
8068
|
);
|
7978
8069
|
}
|
7979
8070
|
if (isPublicExtendedKey(bytes)) {
|
7980
8071
|
if (key[0] !== 3) {
|
7981
|
-
throw new
|
8072
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Invalid public extended key.");
|
7982
8073
|
}
|
7983
8074
|
return new HDWallet({
|
7984
8075
|
publicKey: key,
|
@@ -7989,7 +8080,7 @@ var HDWallet = class {
|
|
7989
8080
|
});
|
7990
8081
|
}
|
7991
8082
|
if (key[0] !== 0) {
|
7992
|
-
throw new
|
8083
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Invalid private extended key.");
|
7993
8084
|
}
|
7994
8085
|
return new HDWallet({
|
7995
8086
|
privateKey: key.slice(1),
|
@@ -8157,7 +8248,7 @@ __publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
|
|
8157
8248
|
// src/wallet-manager/wallet-manager.ts
|
8158
8249
|
import { Address as Address8 } from "@fuel-ts/address";
|
8159
8250
|
import { encrypt, decrypt } from "@fuel-ts/crypto";
|
8160
|
-
import { ErrorCode as
|
8251
|
+
import { ErrorCode as ErrorCode22, FuelError as FuelError22 } from "@fuel-ts/errors";
|
8161
8252
|
import { EventEmitter } from "events";
|
8162
8253
|
|
8163
8254
|
// src/wallet-manager/storages/memory-storage.ts
|
@@ -8180,7 +8271,7 @@ var MemoryStorage = class {
|
|
8180
8271
|
|
8181
8272
|
// src/wallet-manager/vaults/mnemonic-vault.ts
|
8182
8273
|
import { Address as Address6 } from "@fuel-ts/address";
|
8183
|
-
import { ErrorCode as
|
8274
|
+
import { ErrorCode as ErrorCode20, FuelError as FuelError20 } from "@fuel-ts/errors";
|
8184
8275
|
var _secret;
|
8185
8276
|
var MnemonicVault = class {
|
8186
8277
|
constructor(options) {
|
@@ -8236,8 +8327,8 @@ var MnemonicVault = class {
|
|
8236
8327
|
}
|
8237
8328
|
numberOfAccounts += 1;
|
8238
8329
|
} while (numberOfAccounts < this.numberOfAccounts);
|
8239
|
-
throw new
|
8240
|
-
|
8330
|
+
throw new FuelError20(
|
8331
|
+
ErrorCode20.WALLET_MANAGER_ERROR,
|
8241
8332
|
`Account with address '${address}' not found in derived wallets.`
|
8242
8333
|
);
|
8243
8334
|
}
|
@@ -8251,7 +8342,7 @@ __publicField(MnemonicVault, "type", "mnemonic");
|
|
8251
8342
|
|
8252
8343
|
// src/wallet-manager/vaults/privatekey-vault.ts
|
8253
8344
|
import { Address as Address7 } from "@fuel-ts/address";
|
8254
|
-
import { ErrorCode as
|
8345
|
+
import { ErrorCode as ErrorCode21, FuelError as FuelError21 } from "@fuel-ts/errors";
|
8255
8346
|
var _privateKeys;
|
8256
8347
|
var PrivateKeyVault = class {
|
8257
8348
|
/**
|
@@ -8292,8 +8383,8 @@ var PrivateKeyVault = class {
|
|
8292
8383
|
(pk) => Wallet.fromPrivateKey(pk).address.equals(ownerAddress)
|
8293
8384
|
);
|
8294
8385
|
if (!privateKey) {
|
8295
|
-
throw new
|
8296
|
-
|
8386
|
+
throw new FuelError21(
|
8387
|
+
ErrorCode21.WALLET_MANAGER_ERROR,
|
8297
8388
|
`No private key found for address '${address}'.`
|
8298
8389
|
);
|
8299
8390
|
}
|
@@ -8317,7 +8408,7 @@ var ERROR_MESSAGES = {
|
|
8317
8408
|
};
|
8318
8409
|
function assert(condition, message) {
|
8319
8410
|
if (!condition) {
|
8320
|
-
throw new
|
8411
|
+
throw new FuelError22(ErrorCode22.WALLET_MANAGER_ERROR, message);
|
8321
8412
|
}
|
8322
8413
|
}
|
8323
8414
|
var _vaults, _passphrase, _isLocked, _serializeVaults, serializeVaults_fn, _deserializeVaults, deserializeVaults_fn;
|
@@ -8543,25 +8634,25 @@ deserializeVaults_fn = function(vaults) {
|
|
8543
8634
|
__publicField(WalletManager, "Vaults", [MnemonicVault, PrivateKeyVault]);
|
8544
8635
|
|
8545
8636
|
// src/wallet-manager/types.ts
|
8546
|
-
import { ErrorCode as
|
8637
|
+
import { ErrorCode as ErrorCode23, FuelError as FuelError23 } from "@fuel-ts/errors";
|
8547
8638
|
var Vault = class {
|
8548
8639
|
constructor(_options) {
|
8549
|
-
throw new
|
8640
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8550
8641
|
}
|
8551
8642
|
serialize() {
|
8552
|
-
throw new
|
8643
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8553
8644
|
}
|
8554
8645
|
getAccounts() {
|
8555
|
-
throw new
|
8646
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8556
8647
|
}
|
8557
8648
|
addAccount() {
|
8558
|
-
throw new
|
8649
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8559
8650
|
}
|
8560
8651
|
exportAccount(_address) {
|
8561
|
-
throw new
|
8652
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8562
8653
|
}
|
8563
8654
|
getWallet(_address) {
|
8564
|
-
throw new
|
8655
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8565
8656
|
}
|
8566
8657
|
};
|
8567
8658
|
__publicField(Vault, "type");
|
@@ -8578,7 +8669,7 @@ import {
|
|
8578
8669
|
} from "@fuel-ts/abi-coder";
|
8579
8670
|
import { Address as Address9 } from "@fuel-ts/address";
|
8580
8671
|
import { BaseAssetId as BaseAssetId4 } from "@fuel-ts/address/configs";
|
8581
|
-
import { ErrorCode as
|
8672
|
+
import { ErrorCode as ErrorCode24, FuelError as FuelError24 } from "@fuel-ts/errors";
|
8582
8673
|
import { ByteArrayCoder, InputType as InputType7 } from "@fuel-ts/transactions";
|
8583
8674
|
import { arrayify as arrayify20, hexlify as hexlify19 } from "@fuel-ts/utils";
|
8584
8675
|
|
@@ -8706,8 +8797,8 @@ var Predicate = class extends Account {
|
|
8706
8797
|
if (jsonAbi) {
|
8707
8798
|
abiInterface = new Interface4(jsonAbi);
|
8708
8799
|
if (abiInterface.functions.main === void 0) {
|
8709
|
-
throw new
|
8710
|
-
|
8800
|
+
throw new FuelError24(
|
8801
|
+
ErrorCode24.ABI_MAIN_METHOD_MISSING,
|
8711
8802
|
'Cannot use ABI without "main" function.'
|
8712
8803
|
);
|
8713
8804
|
}
|
@@ -8752,8 +8843,8 @@ var Predicate = class extends Account {
|
|
8752
8843
|
mutatedBytes.set(encoded, offset);
|
8753
8844
|
});
|
8754
8845
|
} catch (err) {
|
8755
|
-
throw new
|
8756
|
-
|
8846
|
+
throw new FuelError24(
|
8847
|
+
ErrorCode24.INVALID_CONFIGURABLE_CONSTANTS,
|
8757
8848
|
`Error setting configurable constants: ${err.message}.`
|
8758
8849
|
);
|
8759
8850
|
}
|
@@ -8762,7 +8853,7 @@ var Predicate = class extends Account {
|
|
8762
8853
|
};
|
8763
8854
|
|
8764
8855
|
// src/connectors/fuel.ts
|
8765
|
-
import { ErrorCode as
|
8856
|
+
import { ErrorCode as ErrorCode25, FuelError as FuelError25 } from "@fuel-ts/errors";
|
8766
8857
|
|
8767
8858
|
// src/connectors/fuel-connector.ts
|
8768
8859
|
import { EventEmitter as EventEmitter2 } from "events";
|
@@ -9395,7 +9486,7 @@ var _Fuel = class extends FuelConnector {
|
|
9395
9486
|
const currentNetwork = await this.currentNetwork();
|
9396
9487
|
provider = await Provider.create(currentNetwork.url);
|
9397
9488
|
} else {
|
9398
|
-
throw new
|
9489
|
+
throw new FuelError25(ErrorCode25.INVALID_PROVIDER, "Provider is not valid.");
|
9399
9490
|
}
|
9400
9491
|
return provider;
|
9401
9492
|
}
|
@@ -9474,7 +9565,9 @@ export {
|
|
9474
9565
|
WalletUnlocked,
|
9475
9566
|
addAmountToAsset,
|
9476
9567
|
addOperation,
|
9568
|
+
assemblePanicError,
|
9477
9569
|
assembleReceiptByType,
|
9570
|
+
assembleRevertError,
|
9478
9571
|
assembleTransactionSummary,
|
9479
9572
|
assets,
|
9480
9573
|
buildBlockExplorerUrl,
|
@@ -9489,6 +9582,7 @@ export {
|
|
9489
9582
|
english,
|
9490
9583
|
extractBurnedAssetsFromReceipts,
|
9491
9584
|
extractMintedAssetsFromReceipts,
|
9585
|
+
extractTxError,
|
9492
9586
|
gasUsedByInputs,
|
9493
9587
|
getAssetEth,
|
9494
9588
|
getAssetFuel,
|