@fuel-ts/account 0.0.0-rc-1976-20240403225009 → 0.0.0-rc-1895-20240404023124
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/account.d.ts.map +1 -1
- package/dist/index.global.js +171 -63
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +578 -513
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +356 -286
- package/dist/index.mjs.map +1 -1
- package/dist/predicate/predicate.d.ts.map +1 -1
- package/dist/providers/coin-quantity.d.ts +2 -2
- package/dist/providers/coin-quantity.d.ts.map +1 -1
- package/dist/providers/provider.d.ts +0 -7
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/transaction-request/transaction-request.d.ts +2 -5
- package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
- package/dist/providers/transaction-response/transaction-response.d.ts.map +1 -1
- package/dist/providers/utils/extract-tx-error.d.ts +36 -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/launchNode.d.ts.map +1 -1
- package/dist/test-utils.global.js +172 -65
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +537 -479
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +326 -260
- package/dist/test-utils.mjs.map +1 -1
- package/package.json +16 -16
package/dist/index.mjs
CHANGED
@@ -29,12 +29,14 @@ var __privateMethod = (obj, member, method) => {
|
|
29
29
|
|
30
30
|
// src/account.ts
|
31
31
|
import { Address as Address3 } from "@fuel-ts/address";
|
32
|
-
import {
|
32
|
+
import { BaseAssetId as BaseAssetId3 } from "@fuel-ts/address/configs";
|
33
|
+
import { ErrorCode as ErrorCode15, FuelError as FuelError15 } from "@fuel-ts/errors";
|
33
34
|
import { AbstractAccount } from "@fuel-ts/interfaces";
|
34
|
-
import { bn as
|
35
|
+
import { bn as bn17 } from "@fuel-ts/math";
|
35
36
|
import { arrayify as arrayify14 } from "@fuel-ts/utils";
|
36
37
|
|
37
38
|
// src/providers/coin-quantity.ts
|
39
|
+
import { BaseAssetId } from "@fuel-ts/address/configs";
|
38
40
|
import { bn } from "@fuel-ts/math";
|
39
41
|
import { hexlify } from "@fuel-ts/utils";
|
40
42
|
var coinQuantityfy = (coinQuantityLike) => {
|
@@ -43,11 +45,11 @@ var coinQuantityfy = (coinQuantityLike) => {
|
|
43
45
|
let max2;
|
44
46
|
if (Array.isArray(coinQuantityLike)) {
|
45
47
|
amount = coinQuantityLike[0];
|
46
|
-
assetId = coinQuantityLike[1];
|
47
|
-
max2 = coinQuantityLike[2];
|
48
|
+
assetId = coinQuantityLike[1] ?? BaseAssetId;
|
49
|
+
max2 = coinQuantityLike[2] ?? void 0;
|
48
50
|
} else {
|
49
51
|
amount = coinQuantityLike.amount;
|
50
|
-
assetId = coinQuantityLike.assetId;
|
52
|
+
assetId = coinQuantityLike.assetId ?? BaseAssetId;
|
51
53
|
max2 = coinQuantityLike.max ?? void 0;
|
52
54
|
}
|
53
55
|
const bnAmount = bn(amount);
|
@@ -71,8 +73,8 @@ var addAmountToAsset = (params) => {
|
|
71
73
|
|
72
74
|
// src/providers/provider.ts
|
73
75
|
import { Address as Address2 } from "@fuel-ts/address";
|
74
|
-
import { ErrorCode as
|
75
|
-
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";
|
76
78
|
import {
|
77
79
|
InputType as InputType6,
|
78
80
|
TransactionType as TransactionType8,
|
@@ -1154,8 +1156,8 @@ var outputify = (value) => {
|
|
1154
1156
|
|
1155
1157
|
// src/providers/transaction-request/transaction-request.ts
|
1156
1158
|
import { Address, addressify } from "@fuel-ts/address";
|
1157
|
-
import { ZeroBytes32 as ZeroBytes324 } from "@fuel-ts/address/configs";
|
1158
|
-
import { bn as
|
1159
|
+
import { BaseAssetId as BaseAssetId2, ZeroBytes32 as ZeroBytes324 } from "@fuel-ts/address/configs";
|
1160
|
+
import { bn as bn7 } from "@fuel-ts/math";
|
1159
1161
|
import {
|
1160
1162
|
PolicyType,
|
1161
1163
|
TransactionCoder,
|
@@ -1560,6 +1562,86 @@ function sleep(time) {
|
|
1560
1562
|
});
|
1561
1563
|
}
|
1562
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
|
+
const reason = status.reason;
|
1581
|
+
if (PANIC_REASONS.includes(status.reason)) {
|
1582
|
+
errorMessage = `${errorMessage}
|
1583
|
+
|
1584
|
+
You can read more about this error at:
|
1585
|
+
|
1586
|
+
${PANIC_DOC_URL}#variant.${status.reason}`;
|
1587
|
+
}
|
1588
|
+
return { errorMessage, reason };
|
1589
|
+
};
|
1590
|
+
var stringify = (obj) => JSON.stringify(obj, null, 2);
|
1591
|
+
var assembleRevertError = (receipts, logs) => {
|
1592
|
+
let errorMessage = "The transaction reverted with an unknown reason.";
|
1593
|
+
const revertReceipt = receipts.find(({ type }) => type === ReceiptType3.Revert);
|
1594
|
+
let reason = "";
|
1595
|
+
if (revertReceipt) {
|
1596
|
+
const reasonHex = bn6(revertReceipt.val).toHex();
|
1597
|
+
switch (reasonHex) {
|
1598
|
+
case FAILED_REQUIRE_SIGNAL: {
|
1599
|
+
reason = "require";
|
1600
|
+
errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
|
1601
|
+
break;
|
1602
|
+
}
|
1603
|
+
case FAILED_ASSERT_EQ_SIGNAL: {
|
1604
|
+
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1605
|
+
reason = "assert_eq";
|
1606
|
+
errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
|
1607
|
+
break;
|
1608
|
+
}
|
1609
|
+
case FAILED_ASSERT_NE_SIGNAL: {
|
1610
|
+
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1611
|
+
reason = "assert_ne";
|
1612
|
+
errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
|
1613
|
+
break;
|
1614
|
+
}
|
1615
|
+
case FAILED_ASSERT_SIGNAL:
|
1616
|
+
reason = "assert";
|
1617
|
+
errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
|
1618
|
+
break;
|
1619
|
+
case FAILED_TRANSFER_TO_ADDRESS_SIGNAL2:
|
1620
|
+
reason = "MissingOutputChange";
|
1621
|
+
errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
|
1622
|
+
break;
|
1623
|
+
default:
|
1624
|
+
reason = "unknown";
|
1625
|
+
errorMessage = `The transaction reverted with an unknown reason: ${revertReceipt.val}`;
|
1626
|
+
}
|
1627
|
+
}
|
1628
|
+
return { errorMessage, reason };
|
1629
|
+
};
|
1630
|
+
var extractTxError = (params) => {
|
1631
|
+
const { receipts, status, logs } = params;
|
1632
|
+
const isPanic = receipts.some(({ type }) => type === ReceiptType3.Panic);
|
1633
|
+
const isRevert = receipts.some(({ type }) => type === ReceiptType3.Revert);
|
1634
|
+
const { errorMessage, reason } = status?.type === "FailureStatus" && isPanic ? assemblePanicError(status) : assembleRevertError(receipts, logs);
|
1635
|
+
const metadata = {
|
1636
|
+
logs,
|
1637
|
+
receipts,
|
1638
|
+
panic: isPanic,
|
1639
|
+
revert: isRevert,
|
1640
|
+
reason
|
1641
|
+
};
|
1642
|
+
return new FuelError7(ErrorCode7.SCRIPT_REVERTED, errorMessage, metadata);
|
1643
|
+
};
|
1644
|
+
|
1563
1645
|
// src/providers/transaction-request/errors.ts
|
1564
1646
|
var ChangeOutputCollisionError = class extends Error {
|
1565
1647
|
name = "ChangeOutputCollisionError";
|
@@ -1608,8 +1690,6 @@ var BaseTransactionRequest = class {
|
|
1608
1690
|
outputs = [];
|
1609
1691
|
/** List of witnesses */
|
1610
1692
|
witnesses = [];
|
1611
|
-
/** Base asset ID - should be fetched from the chain */
|
1612
|
-
baseAssetId = ZeroBytes324;
|
1613
1693
|
/**
|
1614
1694
|
* Constructor for initializing a base transaction request.
|
1615
1695
|
*
|
@@ -1622,17 +1702,15 @@ var BaseTransactionRequest = class {
|
|
1622
1702
|
witnessLimit,
|
1623
1703
|
inputs,
|
1624
1704
|
outputs,
|
1625
|
-
witnesses
|
1626
|
-
baseAssetId
|
1705
|
+
witnesses
|
1627
1706
|
} = {}) {
|
1628
|
-
this.gasPrice =
|
1707
|
+
this.gasPrice = bn7(gasPrice);
|
1629
1708
|
this.maturity = maturity ?? 0;
|
1630
|
-
this.witnessLimit = witnessLimit ?
|
1631
|
-
this.maxFee = maxFee ?
|
1709
|
+
this.witnessLimit = witnessLimit ? bn7(witnessLimit) : void 0;
|
1710
|
+
this.maxFee = maxFee ? bn7(maxFee) : void 0;
|
1632
1711
|
this.inputs = inputs ?? [];
|
1633
1712
|
this.outputs = outputs ?? [];
|
1634
1713
|
this.witnesses = witnesses ?? [];
|
1635
|
-
this.baseAssetId = baseAssetId ?? ZeroBytes324;
|
1636
1714
|
}
|
1637
1715
|
static getPolicyMeta(req) {
|
1638
1716
|
let policyTypes = 0;
|
@@ -1857,9 +1935,11 @@ var BaseTransactionRequest = class {
|
|
1857
1935
|
*
|
1858
1936
|
* @param message - Message resource.
|
1859
1937
|
* @param predicate - Predicate bytes.
|
1938
|
+
* @param predicateData - Predicate data bytes.
|
1860
1939
|
*/
|
1861
1940
|
addMessageInput(message, predicate) {
|
1862
1941
|
const { recipient, sender, amount } = message;
|
1942
|
+
const assetId = BaseAssetId2;
|
1863
1943
|
let witnessIndex;
|
1864
1944
|
if (predicate) {
|
1865
1945
|
witnessIndex = 0;
|
@@ -1880,7 +1960,7 @@ var BaseTransactionRequest = class {
|
|
1880
1960
|
predicateData: predicate?.predicateDataBytes
|
1881
1961
|
};
|
1882
1962
|
this.pushInput(input);
|
1883
|
-
this.addChangeOutput(recipient,
|
1963
|
+
this.addChangeOutput(recipient, assetId);
|
1884
1964
|
}
|
1885
1965
|
/**
|
1886
1966
|
* Adds a single resource to the transaction by adding a coin/message input and a
|
@@ -1941,12 +2021,12 @@ var BaseTransactionRequest = class {
|
|
1941
2021
|
* @param amount - Amount of coin.
|
1942
2022
|
* @param assetId - Asset ID of coin.
|
1943
2023
|
*/
|
1944
|
-
addCoinOutput(to, amount, assetId) {
|
2024
|
+
addCoinOutput(to, amount, assetId = BaseAssetId2) {
|
1945
2025
|
this.pushOutput({
|
1946
2026
|
type: OutputType2.Coin,
|
1947
2027
|
to: addressify(to).toB256(),
|
1948
2028
|
amount,
|
1949
|
-
assetId
|
2029
|
+
assetId
|
1950
2030
|
});
|
1951
2031
|
return this;
|
1952
2032
|
}
|
@@ -1973,7 +2053,7 @@ var BaseTransactionRequest = class {
|
|
1973
2053
|
* @param to - Address of the owner.
|
1974
2054
|
* @param assetId - Asset ID of coin.
|
1975
2055
|
*/
|
1976
|
-
addChangeOutput(to, assetId) {
|
2056
|
+
addChangeOutput(to, assetId = BaseAssetId2) {
|
1977
2057
|
const changeOutput = this.getChangeOutputs().find(
|
1978
2058
|
(output) => hexlify7(output.assetId) === assetId
|
1979
2059
|
);
|
@@ -1981,7 +2061,7 @@ var BaseTransactionRequest = class {
|
|
1981
2061
|
this.pushOutput({
|
1982
2062
|
type: OutputType2.Change,
|
1983
2063
|
to: addressify(to).toB256(),
|
1984
|
-
assetId
|
2064
|
+
assetId
|
1985
2065
|
});
|
1986
2066
|
}
|
1987
2067
|
}
|
@@ -2057,13 +2137,13 @@ var BaseTransactionRequest = class {
|
|
2057
2137
|
assetId,
|
2058
2138
|
owner: resourcesOwner || Address.fromRandom(),
|
2059
2139
|
maturity: 0,
|
2060
|
-
blockCreated:
|
2061
|
-
txCreatedIdx:
|
2140
|
+
blockCreated: bn7(1),
|
2141
|
+
txCreatedIdx: bn7(1)
|
2062
2142
|
}
|
2063
2143
|
]);
|
2064
2144
|
}
|
2065
2145
|
};
|
2066
|
-
updateAssetInput(
|
2146
|
+
updateAssetInput(BaseAssetId2, bn7(1e11));
|
2067
2147
|
quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
|
2068
2148
|
}
|
2069
2149
|
/**
|
@@ -2074,7 +2154,7 @@ var BaseTransactionRequest = class {
|
|
2074
2154
|
*/
|
2075
2155
|
getCoinOutputsQuantities() {
|
2076
2156
|
const coinsQuantities = this.getCoinOutputs().map(({ amount, assetId }) => ({
|
2077
|
-
amount:
|
2157
|
+
amount: bn7(amount),
|
2078
2158
|
assetId: assetId.toString()
|
2079
2159
|
}));
|
2080
2160
|
return coinsQuantities;
|
@@ -2103,7 +2183,7 @@ var BaseTransactionRequest = class {
|
|
2103
2183
|
default:
|
2104
2184
|
return;
|
2105
2185
|
}
|
2106
|
-
if (correspondingInput && "predicateGasUsed" in correspondingInput &&
|
2186
|
+
if (correspondingInput && "predicateGasUsed" in correspondingInput && bn7(correspondingInput.predicateGasUsed).gt(0)) {
|
2107
2187
|
i.predicate = correspondingInput.predicate;
|
2108
2188
|
i.predicateData = correspondingInput.predicateData;
|
2109
2189
|
i.predicateGasUsed = correspondingInput.predicateGasUsed;
|
@@ -2114,14 +2194,14 @@ var BaseTransactionRequest = class {
|
|
2114
2194
|
|
2115
2195
|
// src/providers/transaction-request/create-transaction-request.ts
|
2116
2196
|
import { ZeroBytes32 as ZeroBytes326 } from "@fuel-ts/address/configs";
|
2117
|
-
import { bn as
|
2197
|
+
import { bn as bn9 } from "@fuel-ts/math";
|
2118
2198
|
import { TransactionType as TransactionType3, OutputType as OutputType4 } from "@fuel-ts/transactions";
|
2119
2199
|
import { arrayify as arrayify6, hexlify as hexlify9 } from "@fuel-ts/utils";
|
2120
2200
|
|
2121
2201
|
// src/providers/transaction-request/hash-transaction.ts
|
2122
2202
|
import { ZeroBytes32 as ZeroBytes325 } from "@fuel-ts/address/configs";
|
2123
2203
|
import { uint64ToBytesBE, sha256 } from "@fuel-ts/hasher";
|
2124
|
-
import { bn as
|
2204
|
+
import { bn as bn8 } from "@fuel-ts/math";
|
2125
2205
|
import { TransactionType as TransactionType2, InputType as InputType3, OutputType as OutputType3, TransactionCoder as TransactionCoder2 } from "@fuel-ts/transactions";
|
2126
2206
|
import { concat as concat2 } from "@fuel-ts/utils";
|
2127
2207
|
import { clone as clone2 } from "ramda";
|
@@ -2138,11 +2218,11 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2138
2218
|
blockHeight: 0,
|
2139
2219
|
txIndex: 0
|
2140
2220
|
};
|
2141
|
-
inputClone.predicateGasUsed =
|
2221
|
+
inputClone.predicateGasUsed = bn8(0);
|
2142
2222
|
return inputClone;
|
2143
2223
|
}
|
2144
2224
|
case InputType3.Message: {
|
2145
|
-
inputClone.predicateGasUsed =
|
2225
|
+
inputClone.predicateGasUsed = bn8(0);
|
2146
2226
|
return inputClone;
|
2147
2227
|
}
|
2148
2228
|
case InputType3.Contract: {
|
@@ -2169,12 +2249,12 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2169
2249
|
return outputClone;
|
2170
2250
|
}
|
2171
2251
|
case OutputType3.Change: {
|
2172
|
-
outputClone.amount =
|
2252
|
+
outputClone.amount = bn8(0);
|
2173
2253
|
return outputClone;
|
2174
2254
|
}
|
2175
2255
|
case OutputType3.Variable: {
|
2176
2256
|
outputClone.to = ZeroBytes325;
|
2177
|
-
outputClone.amount =
|
2257
|
+
outputClone.amount = bn8(0);
|
2178
2258
|
outputClone.assetId = ZeroBytes325;
|
2179
2259
|
return outputClone;
|
2180
2260
|
}
|
@@ -2298,7 +2378,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2298
2378
|
}
|
2299
2379
|
metadataGas(gasCosts) {
|
2300
2380
|
return calculateMetadataGasForTxCreate({
|
2301
|
-
contractBytesSize:
|
2381
|
+
contractBytesSize: bn9(arrayify6(this.witnesses[this.bytecodeWitnessIndex] || "0x").length),
|
2302
2382
|
gasCosts,
|
2303
2383
|
stateRootSize: this.storageSlots.length,
|
2304
2384
|
txBytesSize: this.byteSize()
|
@@ -2310,7 +2390,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2310
2390
|
import { Interface } from "@fuel-ts/abi-coder";
|
2311
2391
|
import { addressify as addressify2 } from "@fuel-ts/address";
|
2312
2392
|
import { ZeroBytes32 as ZeroBytes327 } from "@fuel-ts/address/configs";
|
2313
|
-
import { bn as
|
2393
|
+
import { bn as bn10 } from "@fuel-ts/math";
|
2314
2394
|
import { InputType as InputType4, OutputType as OutputType5, TransactionType as TransactionType4 } from "@fuel-ts/transactions";
|
2315
2395
|
import { arrayify as arrayify8, hexlify as hexlify10 } from "@fuel-ts/utils";
|
2316
2396
|
|
@@ -2364,7 +2444,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2364
2444
|
*/
|
2365
2445
|
constructor({ script, scriptData, gasLimit, ...rest } = {}) {
|
2366
2446
|
super(rest);
|
2367
|
-
this.gasLimit =
|
2447
|
+
this.gasLimit = bn10(gasLimit);
|
2368
2448
|
this.script = arrayify8(script ?? returnZeroScript.bytes);
|
2369
2449
|
this.scriptData = arrayify8(scriptData ?? returnZeroScript.encodeScriptData());
|
2370
2450
|
this.abis = rest.abis;
|
@@ -2512,7 +2592,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2512
2592
|
};
|
2513
2593
|
|
2514
2594
|
// src/providers/transaction-request/utils.ts
|
2515
|
-
import { ErrorCode as
|
2595
|
+
import { ErrorCode as ErrorCode8, FuelError as FuelError8 } from "@fuel-ts/errors";
|
2516
2596
|
import { TransactionType as TransactionType5 } from "@fuel-ts/transactions";
|
2517
2597
|
var transactionRequestify = (obj) => {
|
2518
2598
|
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
|
@@ -2527,14 +2607,14 @@ var transactionRequestify = (obj) => {
|
|
2527
2607
|
return CreateTransactionRequest.from(obj);
|
2528
2608
|
}
|
2529
2609
|
default: {
|
2530
|
-
throw new
|
2610
|
+
throw new FuelError8(ErrorCode8.INVALID_TRANSACTION_TYPE, `Invalid transaction type: ${type}.`);
|
2531
2611
|
}
|
2532
2612
|
}
|
2533
2613
|
};
|
2534
2614
|
|
2535
2615
|
// src/providers/transaction-response/transaction-response.ts
|
2536
|
-
import { ErrorCode as
|
2537
|
-
import { bn as
|
2616
|
+
import { ErrorCode as ErrorCode12, FuelError as FuelError12 } from "@fuel-ts/errors";
|
2617
|
+
import { bn as bn14 } from "@fuel-ts/math";
|
2538
2618
|
import { TransactionCoder as TransactionCoder4 } from "@fuel-ts/transactions";
|
2539
2619
|
import { arrayify as arrayify10 } from "@fuel-ts/utils";
|
2540
2620
|
|
@@ -2542,7 +2622,7 @@ import { arrayify as arrayify10 } from "@fuel-ts/utils";
|
|
2542
2622
|
import { DateTime, hexlify as hexlify11 } from "@fuel-ts/utils";
|
2543
2623
|
|
2544
2624
|
// src/providers/transaction-summary/calculate-transaction-fee.ts
|
2545
|
-
import { bn as
|
2625
|
+
import { bn as bn11 } from "@fuel-ts/math";
|
2546
2626
|
import { PolicyType as PolicyType2, TransactionCoder as TransactionCoder3, TransactionType as TransactionType6 } from "@fuel-ts/transactions";
|
2547
2627
|
import { arrayify as arrayify9 } from "@fuel-ts/utils";
|
2548
2628
|
var calculateTransactionFee = (params) => {
|
@@ -2551,24 +2631,24 @@ var calculateTransactionFee = (params) => {
|
|
2551
2631
|
rawPayload,
|
2552
2632
|
consensusParameters: { gasCosts, feeParams }
|
2553
2633
|
} = params;
|
2554
|
-
const gasPerByte =
|
2555
|
-
const gasPriceFactor =
|
2634
|
+
const gasPerByte = bn11(feeParams.gasPerByte);
|
2635
|
+
const gasPriceFactor = bn11(feeParams.gasPriceFactor);
|
2556
2636
|
const transactionBytes = arrayify9(rawPayload);
|
2557
2637
|
const [transaction] = new TransactionCoder3().decode(transactionBytes, 0);
|
2558
2638
|
if (transaction.type === TransactionType6.Mint) {
|
2559
2639
|
return {
|
2560
|
-
fee:
|
2561
|
-
minFee:
|
2562
|
-
maxFee:
|
2563
|
-
feeFromGasUsed:
|
2640
|
+
fee: bn11(0),
|
2641
|
+
minFee: bn11(0),
|
2642
|
+
maxFee: bn11(0),
|
2643
|
+
feeFromGasUsed: bn11(0)
|
2564
2644
|
};
|
2565
2645
|
}
|
2566
2646
|
const { type, witnesses, inputs, policies } = transaction;
|
2567
|
-
let metadataGas =
|
2568
|
-
let gasLimit =
|
2647
|
+
let metadataGas = bn11(0);
|
2648
|
+
let gasLimit = bn11(0);
|
2569
2649
|
if (type === TransactionType6.Create) {
|
2570
2650
|
const { bytecodeWitnessIndex, storageSlots } = transaction;
|
2571
|
-
const contractBytesSize =
|
2651
|
+
const contractBytesSize = bn11(arrayify9(witnesses[bytecodeWitnessIndex].data).length);
|
2572
2652
|
metadataGas = calculateMetadataGasForTxCreate({
|
2573
2653
|
contractBytesSize,
|
2574
2654
|
gasCosts,
|
@@ -2587,12 +2667,12 @@ var calculateTransactionFee = (params) => {
|
|
2587
2667
|
}
|
2588
2668
|
const minGas = getMinGas({
|
2589
2669
|
gasCosts,
|
2590
|
-
gasPerByte:
|
2670
|
+
gasPerByte: bn11(gasPerByte),
|
2591
2671
|
inputs,
|
2592
2672
|
metadataGas,
|
2593
2673
|
txBytesSize: transactionBytes.length
|
2594
2674
|
});
|
2595
|
-
const gasPrice =
|
2675
|
+
const gasPrice = bn11(policies.find((policy) => policy.type === PolicyType2.GasPrice)?.data);
|
2596
2676
|
const witnessLimit = policies.find((policy) => policy.type === PolicyType2.WitnessLimit)?.data;
|
2597
2677
|
const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
|
2598
2678
|
const maxGas = getMaxGas({
|
@@ -2616,13 +2696,13 @@ var calculateTransactionFee = (params) => {
|
|
2616
2696
|
|
2617
2697
|
// src/providers/transaction-summary/operations.ts
|
2618
2698
|
import { ZeroBytes32 as ZeroBytes328 } from "@fuel-ts/address/configs";
|
2619
|
-
import { ErrorCode as
|
2620
|
-
import { bn as
|
2621
|
-
import { ReceiptType as
|
2699
|
+
import { ErrorCode as ErrorCode10, FuelError as FuelError10 } from "@fuel-ts/errors";
|
2700
|
+
import { bn as bn13 } from "@fuel-ts/math";
|
2701
|
+
import { ReceiptType as ReceiptType4, TransactionType as TransactionType7 } from "@fuel-ts/transactions";
|
2622
2702
|
|
2623
2703
|
// src/providers/transaction-summary/call.ts
|
2624
2704
|
import { Interface as Interface2, calculateVmTxMemory } from "@fuel-ts/abi-coder";
|
2625
|
-
import { bn as
|
2705
|
+
import { bn as bn12 } from "@fuel-ts/math";
|
2626
2706
|
var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
2627
2707
|
const abiInterface = new Interface2(abi);
|
2628
2708
|
const callFunctionSelector = receipt.param1.toHex(8);
|
@@ -2631,7 +2711,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2631
2711
|
let encodedArgs;
|
2632
2712
|
if (functionFragment.isInputDataPointer) {
|
2633
2713
|
if (rawPayload) {
|
2634
|
-
const argsOffset =
|
2714
|
+
const argsOffset = bn12(receipt.param2).sub(calculateVmTxMemory({ maxInputs: maxInputs.toNumber() })).toNumber();
|
2635
2715
|
encodedArgs = `0x${rawPayload.slice(2).slice(argsOffset * 2)}`;
|
2636
2716
|
}
|
2637
2717
|
} else {
|
@@ -2665,7 +2745,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2665
2745
|
};
|
2666
2746
|
|
2667
2747
|
// src/providers/transaction-summary/input.ts
|
2668
|
-
import { ErrorCode as
|
2748
|
+
import { ErrorCode as ErrorCode9, FuelError as FuelError9 } from "@fuel-ts/errors";
|
2669
2749
|
import { InputType as InputType5 } from "@fuel-ts/transactions";
|
2670
2750
|
function getInputsByTypes(inputs, types) {
|
2671
2751
|
return inputs.filter((i) => types.includes(i.type));
|
@@ -2703,8 +2783,8 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2703
2783
|
return void 0;
|
2704
2784
|
}
|
2705
2785
|
if (contractInput.type !== InputType5.Contract) {
|
2706
|
-
throw new
|
2707
|
-
|
2786
|
+
throw new FuelError9(
|
2787
|
+
ErrorCode9.INVALID_TRANSACTION_INPUT,
|
2708
2788
|
`Contract input should be of type 'contract'.`
|
2709
2789
|
);
|
2710
2790
|
}
|
@@ -2792,8 +2872,8 @@ function getTransactionTypeName(transactionType) {
|
|
2792
2872
|
case TransactionType7.Script:
|
2793
2873
|
return "Script" /* Script */;
|
2794
2874
|
default:
|
2795
|
-
throw new
|
2796
|
-
|
2875
|
+
throw new FuelError10(
|
2876
|
+
ErrorCode10.INVALID_TRANSACTION_TYPE,
|
2797
2877
|
`Invalid transaction type: ${transactionType}.`
|
2798
2878
|
);
|
2799
2879
|
}
|
@@ -2815,10 +2895,10 @@ function hasSameAssetId(a) {
|
|
2815
2895
|
return (b) => a.assetId === b.assetId;
|
2816
2896
|
}
|
2817
2897
|
function getReceiptsCall(receipts) {
|
2818
|
-
return getReceiptsByType(receipts,
|
2898
|
+
return getReceiptsByType(receipts, ReceiptType4.Call);
|
2819
2899
|
}
|
2820
2900
|
function getReceiptsMessageOut(receipts) {
|
2821
|
-
return getReceiptsByType(receipts,
|
2901
|
+
return getReceiptsByType(receipts, ReceiptType4.MessageOut);
|
2822
2902
|
}
|
2823
2903
|
var mergeAssets = (op1, op2) => {
|
2824
2904
|
const assets1 = op1.assetsSent || [];
|
@@ -2831,7 +2911,7 @@ var mergeAssets = (op1, op2) => {
|
|
2831
2911
|
if (!matchingAsset) {
|
2832
2912
|
return asset1;
|
2833
2913
|
}
|
2834
|
-
const mergedAmount =
|
2914
|
+
const mergedAmount = bn13(asset1.amount).add(matchingAsset.amount);
|
2835
2915
|
return { ...asset1, amount: mergedAmount };
|
2836
2916
|
});
|
2837
2917
|
return mergedAssets.concat(filteredAssets);
|
@@ -2857,7 +2937,7 @@ function addOperation(operations, toAdd) {
|
|
2857
2937
|
return allOperations;
|
2858
2938
|
}
|
2859
2939
|
function getReceiptsTransferOut(receipts) {
|
2860
|
-
return getReceiptsByType(receipts,
|
2940
|
+
return getReceiptsByType(receipts, ReceiptType4.TransferOut);
|
2861
2941
|
}
|
2862
2942
|
function getWithdrawFromFuelOperations({
|
2863
2943
|
inputs,
|
@@ -3017,11 +3097,11 @@ function getTransferOperations({
|
|
3017
3097
|
});
|
3018
3098
|
const transferReceipts = getReceiptsByType(
|
3019
3099
|
receipts,
|
3020
|
-
|
3100
|
+
ReceiptType4.Transfer
|
3021
3101
|
);
|
3022
3102
|
const transferOutReceipts = getReceiptsByType(
|
3023
3103
|
receipts,
|
3024
|
-
|
3104
|
+
ReceiptType4.TransferOut
|
3025
3105
|
);
|
3026
3106
|
[...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
|
3027
3107
|
const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
|
@@ -3106,17 +3186,17 @@ function getOperations({
|
|
3106
3186
|
}
|
3107
3187
|
|
3108
3188
|
// src/providers/transaction-summary/receipt.ts
|
3109
|
-
import { ReceiptType as
|
3189
|
+
import { ReceiptType as ReceiptType5 } from "@fuel-ts/transactions";
|
3110
3190
|
var processGqlReceipt = (gqlReceipt) => {
|
3111
3191
|
const receipt = assembleReceiptByType(gqlReceipt);
|
3112
3192
|
switch (receipt.type) {
|
3113
|
-
case
|
3193
|
+
case ReceiptType5.ReturnData: {
|
3114
3194
|
return {
|
3115
3195
|
...receipt,
|
3116
3196
|
data: gqlReceipt.data || "0x"
|
3117
3197
|
};
|
3118
3198
|
}
|
3119
|
-
case
|
3199
|
+
case ReceiptType5.LogData: {
|
3120
3200
|
return {
|
3121
3201
|
...receipt,
|
3122
3202
|
data: gqlReceipt.data || "0x"
|
@@ -3129,7 +3209,7 @@ var processGqlReceipt = (gqlReceipt) => {
|
|
3129
3209
|
var extractMintedAssetsFromReceipts = (receipts) => {
|
3130
3210
|
const mintedAssets = [];
|
3131
3211
|
receipts.forEach((receipt) => {
|
3132
|
-
if (receipt.type ===
|
3212
|
+
if (receipt.type === ReceiptType5.Mint) {
|
3133
3213
|
mintedAssets.push({
|
3134
3214
|
subId: receipt.subId,
|
3135
3215
|
contractId: receipt.contractId,
|
@@ -3143,7 +3223,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
|
|
3143
3223
|
var extractBurnedAssetsFromReceipts = (receipts) => {
|
3144
3224
|
const burnedAssets = [];
|
3145
3225
|
receipts.forEach((receipt) => {
|
3146
|
-
if (receipt.type ===
|
3226
|
+
if (receipt.type === ReceiptType5.Burn) {
|
3147
3227
|
burnedAssets.push({
|
3148
3228
|
subId: receipt.subId,
|
3149
3229
|
contractId: receipt.contractId,
|
@@ -3156,7 +3236,7 @@ var extractBurnedAssetsFromReceipts = (receipts) => {
|
|
3156
3236
|
};
|
3157
3237
|
|
3158
3238
|
// src/providers/transaction-summary/status.ts
|
3159
|
-
import { ErrorCode as
|
3239
|
+
import { ErrorCode as ErrorCode11, FuelError as FuelError11 } from "@fuel-ts/errors";
|
3160
3240
|
var getTransactionStatusName = (gqlStatus) => {
|
3161
3241
|
switch (gqlStatus) {
|
3162
3242
|
case "FailureStatus":
|
@@ -3168,8 +3248,8 @@ var getTransactionStatusName = (gqlStatus) => {
|
|
3168
3248
|
case "SqueezedOutStatus":
|
3169
3249
|
return "squeezedout" /* squeezedout */;
|
3170
3250
|
default:
|
3171
|
-
throw new
|
3172
|
-
|
3251
|
+
throw new FuelError11(
|
3252
|
+
ErrorCode11.INVALID_TRANSACTION_STATUS,
|
3173
3253
|
`Invalid transaction status: ${gqlStatus}.`
|
3174
3254
|
);
|
3175
3255
|
}
|
@@ -3282,12 +3362,12 @@ function assembleTransactionSummary(params) {
|
|
3282
3362
|
|
3283
3363
|
// src/providers/transaction-response/getDecodedLogs.ts
|
3284
3364
|
import { Interface as Interface3, BigNumberCoder } from "@fuel-ts/abi-coder";
|
3285
|
-
import { ReceiptType as
|
3365
|
+
import { ReceiptType as ReceiptType6 } from "@fuel-ts/transactions";
|
3286
3366
|
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3287
3367
|
return receipts.reduce((logs, receipt) => {
|
3288
|
-
if (receipt.type ===
|
3368
|
+
if (receipt.type === ReceiptType6.LogData || receipt.type === ReceiptType6.Log) {
|
3289
3369
|
const interfaceToUse = new Interface3(externalAbis[receipt.id] || mainAbi);
|
3290
|
-
const data = receipt.type ===
|
3370
|
+
const data = receipt.type === ReceiptType6.Log ? new BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3291
3371
|
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3292
3372
|
logs.push(decodedLog);
|
3293
3373
|
}
|
@@ -3302,7 +3382,7 @@ var TransactionResponse = class {
|
|
3302
3382
|
/** Current provider */
|
3303
3383
|
provider;
|
3304
3384
|
/** Gas used on the transaction */
|
3305
|
-
gasUsed =
|
3385
|
+
gasUsed = bn14(0);
|
3306
3386
|
/** The graphql Transaction with receipts object. */
|
3307
3387
|
gqlTransaction;
|
3308
3388
|
abis;
|
@@ -3407,8 +3487,8 @@ var TransactionResponse = class {
|
|
3407
3487
|
});
|
3408
3488
|
for await (const { statusChange } of subscription) {
|
3409
3489
|
if (statusChange.type === "SqueezedOutStatus") {
|
3410
|
-
throw new
|
3411
|
-
|
3490
|
+
throw new FuelError12(
|
3491
|
+
ErrorCode12.TRANSACTION_SQUEEZED_OUT,
|
3412
3492
|
`Transaction Squeezed Out with reason: ${statusChange.reason}`
|
3413
3493
|
);
|
3414
3494
|
}
|
@@ -3430,14 +3510,26 @@ var TransactionResponse = class {
|
|
3430
3510
|
gqlTransaction: this.gqlTransaction,
|
3431
3511
|
...transactionSummary
|
3432
3512
|
};
|
3513
|
+
let logs = [];
|
3433
3514
|
if (this.abis) {
|
3434
|
-
|
3515
|
+
logs = getDecodedLogs(
|
3435
3516
|
transactionSummary.receipts,
|
3436
3517
|
this.abis.main,
|
3437
3518
|
this.abis.otherContractsAbis
|
3438
3519
|
);
|
3439
3520
|
transactionResult.logs = logs;
|
3440
3521
|
}
|
3522
|
+
if (transactionResult.isStatusFailure) {
|
3523
|
+
const {
|
3524
|
+
receipts,
|
3525
|
+
gqlTransaction: { status }
|
3526
|
+
} = transactionResult;
|
3527
|
+
throw extractTxError({
|
3528
|
+
receipts,
|
3529
|
+
status,
|
3530
|
+
logs
|
3531
|
+
});
|
3532
|
+
}
|
3441
3533
|
return transactionResult;
|
3442
3534
|
}
|
3443
3535
|
/**
|
@@ -3446,14 +3538,7 @@ var TransactionResponse = class {
|
|
3446
3538
|
* @param contractsAbiMap - The contracts ABI map.
|
3447
3539
|
*/
|
3448
3540
|
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;
|
3541
|
+
return this.waitForResult(contractsAbiMap);
|
3457
3542
|
}
|
3458
3543
|
};
|
3459
3544
|
|
@@ -3515,30 +3600,29 @@ var processGqlChain = (chain) => {
|
|
3515
3600
|
const { contractParams, feeParams, predicateParams, scriptParams, txParams, gasCosts } = consensusParameters;
|
3516
3601
|
return {
|
3517
3602
|
name,
|
3518
|
-
baseChainHeight:
|
3603
|
+
baseChainHeight: bn15(daHeight),
|
3519
3604
|
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:
|
3535
|
-
baseAssetId: consensusParameters.baseAssetId,
|
3605
|
+
contractMaxSize: bn15(contractParams.contractMaxSize),
|
3606
|
+
maxInputs: bn15(txParams.maxInputs),
|
3607
|
+
maxOutputs: bn15(txParams.maxOutputs),
|
3608
|
+
maxWitnesses: bn15(txParams.maxWitnesses),
|
3609
|
+
maxGasPerTx: bn15(txParams.maxGasPerTx),
|
3610
|
+
maxScriptLength: bn15(scriptParams.maxScriptLength),
|
3611
|
+
maxScriptDataLength: bn15(scriptParams.maxScriptDataLength),
|
3612
|
+
maxStorageSlots: bn15(contractParams.maxStorageSlots),
|
3613
|
+
maxPredicateLength: bn15(predicateParams.maxPredicateLength),
|
3614
|
+
maxPredicateDataLength: bn15(predicateParams.maxPredicateDataLength),
|
3615
|
+
maxGasPerPredicate: bn15(predicateParams.maxGasPerPredicate),
|
3616
|
+
gasPriceFactor: bn15(feeParams.gasPriceFactor),
|
3617
|
+
gasPerByte: bn15(feeParams.gasPerByte),
|
3618
|
+
maxMessageDataLength: bn15(predicateParams.maxMessageDataLength),
|
3619
|
+
chainId: bn15(consensusParameters.chainId),
|
3536
3620
|
gasCosts
|
3537
3621
|
},
|
3538
3622
|
gasCosts,
|
3539
3623
|
latestBlock: {
|
3540
3624
|
id: latestBlock.id,
|
3541
|
-
height:
|
3625
|
+
height: bn15(latestBlock.header.height),
|
3542
3626
|
time: latestBlock.header.time,
|
3543
3627
|
transactions: latestBlock.transactions.map((i) => ({
|
3544
3628
|
id: i.id
|
@@ -3608,8 +3692,8 @@ var _Provider = class {
|
|
3608
3692
|
getChain() {
|
3609
3693
|
const chain = _Provider.chainInfoCache[this.url];
|
3610
3694
|
if (!chain) {
|
3611
|
-
throw new
|
3612
|
-
|
3695
|
+
throw new FuelError13(
|
3696
|
+
ErrorCode13.CHAIN_INFO_CACHE_EMPTY,
|
3613
3697
|
"Chain info cache is empty. Make sure you have called `Provider.create` to initialize the provider."
|
3614
3698
|
);
|
3615
3699
|
}
|
@@ -3621,8 +3705,8 @@ var _Provider = class {
|
|
3621
3705
|
getNode() {
|
3622
3706
|
const node = _Provider.nodeInfoCache[this.url];
|
3623
3707
|
if (!node) {
|
3624
|
-
throw new
|
3625
|
-
|
3708
|
+
throw new FuelError13(
|
3709
|
+
ErrorCode13.NODE_INFO_CACHE_EMPTY,
|
3626
3710
|
"Node info cache is empty. Make sure you have called `Provider.create` to initialize the provider."
|
3627
3711
|
);
|
3628
3712
|
}
|
@@ -3669,8 +3753,8 @@ var _Provider = class {
|
|
3669
3753
|
static ensureClientVersionIsSupported(nodeInfo) {
|
3670
3754
|
const { isMajorSupported, isMinorSupported, supportedVersion } = checkFuelCoreVersionCompatibility(nodeInfo.nodeVersion);
|
3671
3755
|
if (!isMajorSupported || !isMinorSupported) {
|
3672
|
-
throw new
|
3673
|
-
|
3756
|
+
throw new FuelError13(
|
3757
|
+
FuelError13.CODES.UNSUPPORTED_FUEL_CLIENT_VERSION,
|
3674
3758
|
`Fuel client version: ${nodeInfo.nodeVersion}, Supported version: ${supportedVersion}`
|
3675
3759
|
);
|
3676
3760
|
}
|
@@ -3733,7 +3817,7 @@ var _Provider = class {
|
|
3733
3817
|
*/
|
3734
3818
|
async getBlockNumber() {
|
3735
3819
|
const { chain } = await this.operations.getChain();
|
3736
|
-
return
|
3820
|
+
return bn15(chain.latestBlock.header.height, 10);
|
3737
3821
|
}
|
3738
3822
|
/**
|
3739
3823
|
* Returns the chain information.
|
@@ -3743,9 +3827,9 @@ var _Provider = class {
|
|
3743
3827
|
async fetchNode() {
|
3744
3828
|
const { nodeInfo } = await this.operations.getNodeInfo();
|
3745
3829
|
const processedNodeInfo = {
|
3746
|
-
maxDepth:
|
3747
|
-
maxTx:
|
3748
|
-
minGasPrice:
|
3830
|
+
maxDepth: bn15(nodeInfo.maxDepth),
|
3831
|
+
maxTx: bn15(nodeInfo.maxTx),
|
3832
|
+
minGasPrice: bn15(nodeInfo.minGasPrice),
|
3749
3833
|
nodeVersion: nodeInfo.nodeVersion,
|
3750
3834
|
utxoValidation: nodeInfo.utxoValidation,
|
3751
3835
|
vmBacktrace: nodeInfo.vmBacktrace,
|
@@ -3775,17 +3859,6 @@ var _Provider = class {
|
|
3775
3859
|
} = this.getChain();
|
3776
3860
|
return chainId.toNumber();
|
3777
3861
|
}
|
3778
|
-
/**
|
3779
|
-
* Returns the base asset ID
|
3780
|
-
*
|
3781
|
-
* @returns A promise that resolves to the base asset ID
|
3782
|
-
*/
|
3783
|
-
getBaseAssetId() {
|
3784
|
-
const {
|
3785
|
-
consensusParameters: { baseAssetId }
|
3786
|
-
} = this.getChain();
|
3787
|
-
return baseAssetId;
|
3788
|
-
}
|
3789
3862
|
/**
|
3790
3863
|
* Submits a transaction to the chain to be executed.
|
3791
3864
|
*
|
@@ -3811,8 +3884,8 @@ var _Provider = class {
|
|
3811
3884
|
const subscription = this.operations.submitAndAwait({ encodedTransaction });
|
3812
3885
|
for await (const { submitAndAwait } of subscription) {
|
3813
3886
|
if (submitAndAwait.type === "SqueezedOutStatus") {
|
3814
|
-
throw new
|
3815
|
-
|
3887
|
+
throw new FuelError13(
|
3888
|
+
ErrorCode13.TRANSACTION_SQUEEZED_OUT,
|
3816
3889
|
`Transaction Squeezed Out with reason: ${submitAndAwait.reason}`
|
3817
3890
|
);
|
3818
3891
|
}
|
@@ -3879,7 +3952,7 @@ var _Provider = class {
|
|
3879
3952
|
} = response;
|
3880
3953
|
if (inputs) {
|
3881
3954
|
inputs.forEach((input, index) => {
|
3882
|
-
if ("predicateGasUsed" in input &&
|
3955
|
+
if ("predicateGasUsed" in input && bn15(input.predicateGasUsed).gt(0)) {
|
3883
3956
|
transactionRequest.inputs[index].predicateGasUsed = input.predicateGasUsed;
|
3884
3957
|
}
|
3885
3958
|
});
|
@@ -3992,7 +4065,7 @@ var _Provider = class {
|
|
3992
4065
|
txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
|
3993
4066
|
if (estimatePredicates) {
|
3994
4067
|
if (isScriptTransaction) {
|
3995
|
-
txRequestClone.gasLimit =
|
4068
|
+
txRequestClone.gasLimit = bn15(0);
|
3996
4069
|
}
|
3997
4070
|
if (resourcesOwner && "populateTransactionPredicateData" in resourcesOwner) {
|
3998
4071
|
resourcesOwner.populateTransactionPredicateData(txRequestClone);
|
@@ -4008,8 +4081,8 @@ var _Provider = class {
|
|
4008
4081
|
let missingContractIds = [];
|
4009
4082
|
let outputVariables = 0;
|
4010
4083
|
if (isScriptTransaction && estimateTxDependencies) {
|
4011
|
-
txRequestClone.gasPrice =
|
4012
|
-
txRequestClone.gasLimit =
|
4084
|
+
txRequestClone.gasPrice = bn15(0);
|
4085
|
+
txRequestClone.gasLimit = bn15(maxGasPerTx.sub(maxGas).toNumber() * 0.9);
|
4013
4086
|
const result = await this.estimateTxDependencies(txRequestClone);
|
4014
4087
|
receipts = result.receipts;
|
4015
4088
|
outputVariables = result.outputVariables;
|
@@ -4071,11 +4144,11 @@ var _Provider = class {
|
|
4071
4144
|
return coins.map((coin) => ({
|
4072
4145
|
id: coin.utxoId,
|
4073
4146
|
assetId: coin.assetId,
|
4074
|
-
amount:
|
4147
|
+
amount: bn15(coin.amount),
|
4075
4148
|
owner: Address2.fromAddressOrString(coin.owner),
|
4076
|
-
maturity:
|
4077
|
-
blockCreated:
|
4078
|
-
txCreatedIdx:
|
4149
|
+
maturity: bn15(coin.maturity).toNumber(),
|
4150
|
+
blockCreated: bn15(coin.blockCreated),
|
4151
|
+
txCreatedIdx: bn15(coin.txCreatedIdx)
|
4079
4152
|
}));
|
4080
4153
|
}
|
4081
4154
|
/**
|
@@ -4112,9 +4185,9 @@ var _Provider = class {
|
|
4112
4185
|
switch (coin.__typename) {
|
4113
4186
|
case "MessageCoin":
|
4114
4187
|
return {
|
4115
|
-
amount:
|
4188
|
+
amount: bn15(coin.amount),
|
4116
4189
|
assetId: coin.assetId,
|
4117
|
-
daHeight:
|
4190
|
+
daHeight: bn15(coin.daHeight),
|
4118
4191
|
sender: Address2.fromAddressOrString(coin.sender),
|
4119
4192
|
recipient: Address2.fromAddressOrString(coin.recipient),
|
4120
4193
|
nonce: coin.nonce
|
@@ -4122,12 +4195,12 @@ var _Provider = class {
|
|
4122
4195
|
case "Coin":
|
4123
4196
|
return {
|
4124
4197
|
id: coin.utxoId,
|
4125
|
-
amount:
|
4198
|
+
amount: bn15(coin.amount),
|
4126
4199
|
assetId: coin.assetId,
|
4127
4200
|
owner: Address2.fromAddressOrString(coin.owner),
|
4128
|
-
maturity:
|
4129
|
-
blockCreated:
|
4130
|
-
txCreatedIdx:
|
4201
|
+
maturity: bn15(coin.maturity).toNumber(),
|
4202
|
+
blockCreated: bn15(coin.blockCreated),
|
4203
|
+
txCreatedIdx: bn15(coin.txCreatedIdx)
|
4131
4204
|
};
|
4132
4205
|
default:
|
4133
4206
|
return null;
|
@@ -4144,13 +4217,13 @@ var _Provider = class {
|
|
4144
4217
|
async getBlock(idOrHeight) {
|
4145
4218
|
let variables;
|
4146
4219
|
if (typeof idOrHeight === "number") {
|
4147
|
-
variables = { height:
|
4220
|
+
variables = { height: bn15(idOrHeight).toString(10) };
|
4148
4221
|
} else if (idOrHeight === "latest") {
|
4149
4222
|
variables = { height: (await this.getBlockNumber()).toString(10) };
|
4150
4223
|
} else if (idOrHeight.length === 66) {
|
4151
4224
|
variables = { blockId: idOrHeight };
|
4152
4225
|
} else {
|
4153
|
-
variables = { blockId:
|
4226
|
+
variables = { blockId: bn15(idOrHeight).toString(10) };
|
4154
4227
|
}
|
4155
4228
|
const { block } = await this.operations.getBlock(variables);
|
4156
4229
|
if (!block) {
|
@@ -4158,7 +4231,7 @@ var _Provider = class {
|
|
4158
4231
|
}
|
4159
4232
|
return {
|
4160
4233
|
id: block.id,
|
4161
|
-
height:
|
4234
|
+
height: bn15(block.header.height),
|
4162
4235
|
time: block.header.time,
|
4163
4236
|
transactionIds: block.transactions.map((tx) => tx.id)
|
4164
4237
|
};
|
@@ -4173,7 +4246,7 @@ var _Provider = class {
|
|
4173
4246
|
const { blocks: fetchedData } = await this.operations.getBlocks(params);
|
4174
4247
|
const blocks = fetchedData.edges.map(({ node: block }) => ({
|
4175
4248
|
id: block.id,
|
4176
|
-
height:
|
4249
|
+
height: bn15(block.header.height),
|
4177
4250
|
time: block.header.time,
|
4178
4251
|
transactionIds: block.transactions.map((tx) => tx.id)
|
4179
4252
|
}));
|
@@ -4188,7 +4261,7 @@ var _Provider = class {
|
|
4188
4261
|
async getBlockWithTransactions(idOrHeight) {
|
4189
4262
|
let variables;
|
4190
4263
|
if (typeof idOrHeight === "number") {
|
4191
|
-
variables = { blockHeight:
|
4264
|
+
variables = { blockHeight: bn15(idOrHeight).toString(10) };
|
4192
4265
|
} else if (idOrHeight === "latest") {
|
4193
4266
|
variables = { blockHeight: (await this.getBlockNumber()).toString() };
|
4194
4267
|
} else {
|
@@ -4200,7 +4273,7 @@ var _Provider = class {
|
|
4200
4273
|
}
|
4201
4274
|
return {
|
4202
4275
|
id: block.id,
|
4203
|
-
height:
|
4276
|
+
height: bn15(block.header.height, 10),
|
4204
4277
|
time: block.header.time,
|
4205
4278
|
transactionIds: block.transactions.map((tx) => tx.id),
|
4206
4279
|
transactions: block.transactions.map(
|
@@ -4249,7 +4322,7 @@ var _Provider = class {
|
|
4249
4322
|
contract: Address2.fromAddressOrString(contractId).toB256(),
|
4250
4323
|
asset: hexlify12(assetId)
|
4251
4324
|
});
|
4252
|
-
return
|
4325
|
+
return bn15(contractBalance.amount, 10);
|
4253
4326
|
}
|
4254
4327
|
/**
|
4255
4328
|
* Returns the balance for the given owner for the given asset ID.
|
@@ -4263,7 +4336,7 @@ var _Provider = class {
|
|
4263
4336
|
owner: Address2.fromAddressOrString(owner).toB256(),
|
4264
4337
|
assetId: hexlify12(assetId)
|
4265
4338
|
});
|
4266
|
-
return
|
4339
|
+
return bn15(balance.amount, 10);
|
4267
4340
|
}
|
4268
4341
|
/**
|
4269
4342
|
* Returns balances for the given owner.
|
@@ -4281,7 +4354,7 @@ var _Provider = class {
|
|
4281
4354
|
const balances = result.balances.edges.map((edge) => edge.node);
|
4282
4355
|
return balances.map((balance) => ({
|
4283
4356
|
assetId: balance.assetId,
|
4284
|
-
amount:
|
4357
|
+
amount: bn15(balance.amount)
|
4285
4358
|
}));
|
4286
4359
|
}
|
4287
4360
|
/**
|
@@ -4303,15 +4376,15 @@ var _Provider = class {
|
|
4303
4376
|
sender: message.sender,
|
4304
4377
|
recipient: message.recipient,
|
4305
4378
|
nonce: message.nonce,
|
4306
|
-
amount:
|
4379
|
+
amount: bn15(message.amount),
|
4307
4380
|
data: message.data
|
4308
4381
|
}),
|
4309
4382
|
sender: Address2.fromAddressOrString(message.sender),
|
4310
4383
|
recipient: Address2.fromAddressOrString(message.recipient),
|
4311
4384
|
nonce: message.nonce,
|
4312
|
-
amount:
|
4385
|
+
amount: bn15(message.amount),
|
4313
4386
|
data: InputMessageCoder.decodeData(message.data),
|
4314
|
-
daHeight:
|
4387
|
+
daHeight: bn15(message.daHeight)
|
4315
4388
|
}));
|
4316
4389
|
}
|
4317
4390
|
/**
|
@@ -4329,8 +4402,8 @@ var _Provider = class {
|
|
4329
4402
|
nonce
|
4330
4403
|
};
|
4331
4404
|
if (commitBlockId && commitBlockHeight) {
|
4332
|
-
throw new
|
4333
|
-
|
4405
|
+
throw new FuelError13(
|
4406
|
+
ErrorCode13.INVALID_INPUT_PARAMETERS,
|
4334
4407
|
"commitBlockId and commitBlockHeight cannot be used together"
|
4335
4408
|
);
|
4336
4409
|
}
|
@@ -4364,41 +4437,41 @@ var _Provider = class {
|
|
4364
4437
|
} = result.messageProof;
|
4365
4438
|
return {
|
4366
4439
|
messageProof: {
|
4367
|
-
proofIndex:
|
4440
|
+
proofIndex: bn15(messageProof.proofIndex),
|
4368
4441
|
proofSet: messageProof.proofSet
|
4369
4442
|
},
|
4370
4443
|
blockProof: {
|
4371
|
-
proofIndex:
|
4444
|
+
proofIndex: bn15(blockProof.proofIndex),
|
4372
4445
|
proofSet: blockProof.proofSet
|
4373
4446
|
},
|
4374
4447
|
messageBlockHeader: {
|
4375
4448
|
id: messageBlockHeader.id,
|
4376
|
-
daHeight:
|
4377
|
-
transactionsCount:
|
4449
|
+
daHeight: bn15(messageBlockHeader.daHeight),
|
4450
|
+
transactionsCount: bn15(messageBlockHeader.transactionsCount),
|
4378
4451
|
transactionsRoot: messageBlockHeader.transactionsRoot,
|
4379
|
-
height:
|
4452
|
+
height: bn15(messageBlockHeader.height),
|
4380
4453
|
prevRoot: messageBlockHeader.prevRoot,
|
4381
4454
|
time: messageBlockHeader.time,
|
4382
4455
|
applicationHash: messageBlockHeader.applicationHash,
|
4383
4456
|
messageReceiptRoot: messageBlockHeader.messageReceiptRoot,
|
4384
|
-
messageReceiptCount:
|
4457
|
+
messageReceiptCount: bn15(messageBlockHeader.messageReceiptCount)
|
4385
4458
|
},
|
4386
4459
|
commitBlockHeader: {
|
4387
4460
|
id: commitBlockHeader.id,
|
4388
|
-
daHeight:
|
4389
|
-
transactionsCount:
|
4461
|
+
daHeight: bn15(commitBlockHeader.daHeight),
|
4462
|
+
transactionsCount: bn15(commitBlockHeader.transactionsCount),
|
4390
4463
|
transactionsRoot: commitBlockHeader.transactionsRoot,
|
4391
|
-
height:
|
4464
|
+
height: bn15(commitBlockHeader.height),
|
4392
4465
|
prevRoot: commitBlockHeader.prevRoot,
|
4393
4466
|
time: commitBlockHeader.time,
|
4394
4467
|
applicationHash: commitBlockHeader.applicationHash,
|
4395
4468
|
messageReceiptRoot: commitBlockHeader.messageReceiptRoot,
|
4396
|
-
messageReceiptCount:
|
4469
|
+
messageReceiptCount: bn15(commitBlockHeader.messageReceiptCount)
|
4397
4470
|
},
|
4398
4471
|
sender: Address2.fromAddressOrString(sender),
|
4399
4472
|
recipient: Address2.fromAddressOrString(recipient),
|
4400
4473
|
nonce,
|
4401
|
-
amount:
|
4474
|
+
amount: bn15(amount),
|
4402
4475
|
data
|
4403
4476
|
};
|
4404
4477
|
}
|
@@ -4421,10 +4494,10 @@ var _Provider = class {
|
|
4421
4494
|
*/
|
4422
4495
|
async produceBlocks(amount, startTime) {
|
4423
4496
|
const { produceBlocks: latestBlockHeight } = await this.operations.produceBlocks({
|
4424
|
-
blocksToProduce:
|
4497
|
+
blocksToProduce: bn15(amount).toString(10),
|
4425
4498
|
startTimestamp: startTime ? DateTime2.fromUnixMilliseconds(startTime).toTai64() : void 0
|
4426
4499
|
});
|
4427
|
-
return
|
4500
|
+
return bn15(latestBlockHeight);
|
4428
4501
|
}
|
4429
4502
|
// eslint-disable-next-line @typescript-eslint/require-await
|
4430
4503
|
async getTransactionResponse(transactionId) {
|
@@ -4447,8 +4520,8 @@ __publicField(Provider, "chainInfoCache", {});
|
|
4447
4520
|
__publicField(Provider, "nodeInfoCache", {});
|
4448
4521
|
|
4449
4522
|
// src/providers/transaction-summary/get-transaction-summary.ts
|
4450
|
-
import { ErrorCode as
|
4451
|
-
import { bn as
|
4523
|
+
import { ErrorCode as ErrorCode14, FuelError as FuelError14 } from "@fuel-ts/errors";
|
4524
|
+
import { bn as bn16 } from "@fuel-ts/math";
|
4452
4525
|
import { TransactionCoder as TransactionCoder6 } from "@fuel-ts/transactions";
|
4453
4526
|
import { arrayify as arrayify12 } from "@fuel-ts/utils";
|
4454
4527
|
async function getTransactionSummary(params) {
|
@@ -4457,8 +4530,8 @@ async function getTransactionSummary(params) {
|
|
4457
4530
|
transactionId: id
|
4458
4531
|
});
|
4459
4532
|
if (!gqlTransaction) {
|
4460
|
-
throw new
|
4461
|
-
|
4533
|
+
throw new FuelError14(
|
4534
|
+
ErrorCode14.TRANSACTION_NOT_FOUND,
|
4462
4535
|
`Transaction not found for given id: ${id}.`
|
4463
4536
|
);
|
4464
4537
|
}
|
@@ -4476,8 +4549,8 @@ async function getTransactionSummary(params) {
|
|
4476
4549
|
transaction: decodedTransaction,
|
4477
4550
|
transactionBytes: arrayify12(gqlTransaction.rawPayload),
|
4478
4551
|
gqlTransactionStatus: gqlTransaction.status,
|
4479
|
-
gasPerByte:
|
4480
|
-
gasPriceFactor:
|
4552
|
+
gasPerByte: bn16(gasPerByte),
|
4553
|
+
gasPriceFactor: bn16(gasPriceFactor),
|
4481
4554
|
abiMap,
|
4482
4555
|
maxInputs,
|
4483
4556
|
gasCosts
|
@@ -4731,7 +4804,7 @@ var Account = class extends AbstractAccount {
|
|
4731
4804
|
*/
|
4732
4805
|
get provider() {
|
4733
4806
|
if (!this._provider) {
|
4734
|
-
throw new
|
4807
|
+
throw new FuelError15(ErrorCode15.MISSING_PROVIDER, "Provider not set");
|
4735
4808
|
}
|
4736
4809
|
return this._provider;
|
4737
4810
|
}
|
@@ -4783,8 +4856,8 @@ var Account = class extends AbstractAccount {
|
|
4783
4856
|
if (!hasNextPage) {
|
4784
4857
|
break;
|
4785
4858
|
}
|
4786
|
-
throw new
|
4787
|
-
|
4859
|
+
throw new FuelError15(
|
4860
|
+
ErrorCode15.NOT_SUPPORTED,
|
4788
4861
|
`Wallets containing more than ${pageSize} coins exceed the current supported limit.`
|
4789
4862
|
);
|
4790
4863
|
}
|
@@ -4809,8 +4882,8 @@ var Account = class extends AbstractAccount {
|
|
4809
4882
|
if (!hasNextPage) {
|
4810
4883
|
break;
|
4811
4884
|
}
|
4812
|
-
throw new
|
4813
|
-
|
4885
|
+
throw new FuelError15(
|
4886
|
+
ErrorCode15.NOT_SUPPORTED,
|
4814
4887
|
`Wallets containing more than ${pageSize} messages exceed the current supported limit.`
|
4815
4888
|
);
|
4816
4889
|
}
|
@@ -4822,9 +4895,8 @@ var Account = class extends AbstractAccount {
|
|
4822
4895
|
* @param assetId - The asset ID to check the balance for.
|
4823
4896
|
* @returns A promise that resolves to the balance amount.
|
4824
4897
|
*/
|
4825
|
-
async getBalance(assetId) {
|
4826
|
-
const
|
4827
|
-
const amount = await this.provider.getBalance(this.address, assetIdToFetch);
|
4898
|
+
async getBalance(assetId = BaseAssetId3) {
|
4899
|
+
const amount = await this.provider.getBalance(this.address, assetId);
|
4828
4900
|
return amount;
|
4829
4901
|
}
|
4830
4902
|
/**
|
@@ -4846,8 +4918,8 @@ var Account = class extends AbstractAccount {
|
|
4846
4918
|
if (!hasNextPage) {
|
4847
4919
|
break;
|
4848
4920
|
}
|
4849
|
-
throw new
|
4850
|
-
|
4921
|
+
throw new FuelError15(
|
4922
|
+
ErrorCode15.NOT_SUPPORTED,
|
4851
4923
|
`Wallets containing more than ${pageSize} balances exceed the current supported limit.`
|
4852
4924
|
);
|
4853
4925
|
}
|
@@ -4862,17 +4934,16 @@ var Account = class extends AbstractAccount {
|
|
4862
4934
|
* @returns A promise that resolves when the resources are added to the transaction.
|
4863
4935
|
*/
|
4864
4936
|
async fund(request, coinQuantities, fee) {
|
4865
|
-
const baseAssetId = this.provider.getBaseAssetId();
|
4866
4937
|
const updatedQuantities = addAmountToAsset({
|
4867
|
-
amount:
|
4868
|
-
assetId:
|
4938
|
+
amount: bn17(fee),
|
4939
|
+
assetId: BaseAssetId3,
|
4869
4940
|
coinQuantities
|
4870
4941
|
});
|
4871
4942
|
const quantitiesDict = {};
|
4872
4943
|
updatedQuantities.forEach(({ amount, assetId }) => {
|
4873
4944
|
quantitiesDict[assetId] = {
|
4874
4945
|
required: amount,
|
4875
|
-
owned:
|
4946
|
+
owned: bn17(0)
|
4876
4947
|
};
|
4877
4948
|
});
|
4878
4949
|
const cachedUtxos = [];
|
@@ -4885,12 +4956,12 @@ var Account = class extends AbstractAccount {
|
|
4885
4956
|
if (isCoin2) {
|
4886
4957
|
const assetId = String(input.assetId);
|
4887
4958
|
if (input.owner === owner && quantitiesDict[assetId]) {
|
4888
|
-
const amount =
|
4959
|
+
const amount = bn17(input.amount);
|
4889
4960
|
quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
|
4890
4961
|
cachedUtxos.push(input.id);
|
4891
4962
|
}
|
4892
|
-
} else if (input.recipient === owner && input.amount && quantitiesDict[
|
4893
|
-
quantitiesDict[
|
4963
|
+
} else if (input.recipient === owner && input.amount && quantitiesDict[BaseAssetId3]) {
|
4964
|
+
quantitiesDict[BaseAssetId3].owned = quantitiesDict[BaseAssetId3].owned.add(input.amount);
|
4894
4965
|
cachedMessages.push(input.nonce);
|
4895
4966
|
}
|
4896
4967
|
}
|
@@ -4922,18 +4993,17 @@ var Account = class extends AbstractAccount {
|
|
4922
4993
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
4923
4994
|
* @returns A promise that resolves to the prepared transaction request.
|
4924
4995
|
*/
|
4925
|
-
async createTransfer(destination, amount, assetId, txParams = {}) {
|
4996
|
+
async createTransfer(destination, amount, assetId = BaseAssetId3, txParams = {}) {
|
4926
4997
|
const { minGasPrice } = this.provider.getGasConfig();
|
4927
|
-
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
4928
4998
|
const params = { gasPrice: minGasPrice, ...txParams };
|
4929
4999
|
const request = new ScriptTransactionRequest(params);
|
4930
|
-
request.addCoinOutput(Address3.fromAddressOrString(destination), amount,
|
5000
|
+
request.addCoinOutput(Address3.fromAddressOrString(destination), amount, assetId);
|
4931
5001
|
const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
|
4932
5002
|
estimateTxDependencies: true,
|
4933
5003
|
resourcesOwner: this
|
4934
5004
|
});
|
4935
|
-
request.gasPrice =
|
4936
|
-
request.gasLimit =
|
5005
|
+
request.gasPrice = bn17(txParams.gasPrice ?? minGasPrice);
|
5006
|
+
request.gasLimit = bn17(txParams.gasLimit ?? gasUsed);
|
4937
5007
|
this.validateGas({
|
4938
5008
|
gasUsed,
|
4939
5009
|
gasPrice: request.gasPrice,
|
@@ -4953,15 +5023,14 @@ var Account = class extends AbstractAccount {
|
|
4953
5023
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
4954
5024
|
* @returns A promise that resolves to the transaction response.
|
4955
5025
|
*/
|
4956
|
-
async transfer(destination, amount, assetId, txParams = {}) {
|
4957
|
-
if (
|
4958
|
-
throw new
|
4959
|
-
|
5026
|
+
async transfer(destination, amount, assetId = BaseAssetId3, txParams = {}) {
|
5027
|
+
if (bn17(amount).lte(0)) {
|
5028
|
+
throw new FuelError15(
|
5029
|
+
ErrorCode15.INVALID_TRANSFER_AMOUNT,
|
4960
5030
|
"Transfer amount must be a positive number."
|
4961
5031
|
);
|
4962
5032
|
}
|
4963
|
-
const
|
4964
|
-
const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
|
5033
|
+
const request = await this.createTransfer(destination, amount, assetId, txParams);
|
4965
5034
|
return this.sendTransaction(request, { estimateTxDependencies: false });
|
4966
5035
|
}
|
4967
5036
|
/**
|
@@ -4973,21 +5042,20 @@ var Account = class extends AbstractAccount {
|
|
4973
5042
|
* @param txParams - The optional transaction parameters.
|
4974
5043
|
* @returns A promise that resolves to the transaction response.
|
4975
5044
|
*/
|
4976
|
-
async transferToContract(contractId, amount, assetId, txParams = {}) {
|
4977
|
-
if (
|
4978
|
-
throw new
|
4979
|
-
|
5045
|
+
async transferToContract(contractId, amount, assetId = BaseAssetId3, txParams = {}) {
|
5046
|
+
if (bn17(amount).lte(0)) {
|
5047
|
+
throw new FuelError15(
|
5048
|
+
ErrorCode15.INVALID_TRANSFER_AMOUNT,
|
4980
5049
|
"Transfer amount must be a positive number."
|
4981
5050
|
);
|
4982
5051
|
}
|
4983
5052
|
const contractAddress = Address3.fromAddressOrString(contractId);
|
4984
5053
|
const { minGasPrice } = this.provider.getGasConfig();
|
4985
|
-
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
4986
5054
|
const params = { gasPrice: minGasPrice, ...txParams };
|
4987
5055
|
const { script, scriptData } = await assembleTransferToContractScript({
|
4988
5056
|
hexlifiedContractId: contractAddress.toB256(),
|
4989
|
-
amountToTransfer:
|
4990
|
-
assetId
|
5057
|
+
amountToTransfer: bn17(amount),
|
5058
|
+
assetId
|
4991
5059
|
});
|
4992
5060
|
const request = new ScriptTransactionRequest({
|
4993
5061
|
...params,
|
@@ -4997,9 +5065,9 @@ var Account = class extends AbstractAccount {
|
|
4997
5065
|
request.addContractInputAndOutput(contractAddress);
|
4998
5066
|
const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
|
4999
5067
|
request,
|
5000
|
-
[{ amount:
|
5068
|
+
[{ amount: bn17(amount), assetId: String(assetId) }]
|
5001
5069
|
);
|
5002
|
-
request.gasLimit =
|
5070
|
+
request.gasLimit = bn17(params.gasLimit ?? gasUsed);
|
5003
5071
|
this.validateGas({
|
5004
5072
|
gasUsed,
|
5005
5073
|
gasPrice: request.gasPrice,
|
@@ -5019,13 +5087,12 @@ var Account = class extends AbstractAccount {
|
|
5019
5087
|
*/
|
5020
5088
|
async withdrawToBaseLayer(recipient, amount, txParams = {}) {
|
5021
5089
|
const { minGasPrice } = this.provider.getGasConfig();
|
5022
|
-
const baseAssetId = this.provider.getBaseAssetId();
|
5023
5090
|
const recipientAddress = Address3.fromAddressOrString(recipient);
|
5024
5091
|
const recipientDataArray = arrayify14(
|
5025
5092
|
"0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
|
5026
5093
|
);
|
5027
5094
|
const amountDataArray = arrayify14(
|
5028
|
-
"0x".concat(
|
5095
|
+
"0x".concat(bn17(amount).toHex().substring(2).padStart(16, "0"))
|
5029
5096
|
);
|
5030
5097
|
const script = new Uint8Array([
|
5031
5098
|
...arrayify14(withdrawScript.bytes),
|
@@ -5034,12 +5101,12 @@ var Account = class extends AbstractAccount {
|
|
5034
5101
|
]);
|
5035
5102
|
const params = { script, gasPrice: minGasPrice, ...txParams };
|
5036
5103
|
const request = new ScriptTransactionRequest(params);
|
5037
|
-
const forwardingQuantities = [{ amount:
|
5104
|
+
const forwardingQuantities = [{ amount: bn17(amount), assetId: BaseAssetId3 }];
|
5038
5105
|
const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
|
5039
5106
|
request,
|
5040
5107
|
forwardingQuantities
|
5041
5108
|
);
|
5042
|
-
request.gasLimit =
|
5109
|
+
request.gasLimit = bn17(params.gasLimit ?? gasUsed);
|
5043
5110
|
this.validateGas({
|
5044
5111
|
gasUsed,
|
5045
5112
|
gasPrice: request.gasPrice,
|
@@ -5051,7 +5118,7 @@ var Account = class extends AbstractAccount {
|
|
5051
5118
|
}
|
5052
5119
|
async signMessage(message) {
|
5053
5120
|
if (!this._connector) {
|
5054
|
-
throw new
|
5121
|
+
throw new FuelError15(ErrorCode15.MISSING_CONNECTOR, "A connector is required to sign messages.");
|
5055
5122
|
}
|
5056
5123
|
return this._connector.signMessage(this.address.toString(), message);
|
5057
5124
|
}
|
@@ -5063,8 +5130,8 @@ var Account = class extends AbstractAccount {
|
|
5063
5130
|
*/
|
5064
5131
|
async signTransaction(transactionRequestLike) {
|
5065
5132
|
if (!this._connector) {
|
5066
|
-
throw new
|
5067
|
-
|
5133
|
+
throw new FuelError15(
|
5134
|
+
ErrorCode15.MISSING_CONNECTOR,
|
5068
5135
|
"A connector is required to sign transactions."
|
5069
5136
|
);
|
5070
5137
|
}
|
@@ -5111,14 +5178,14 @@ var Account = class extends AbstractAccount {
|
|
5111
5178
|
minGasPrice
|
5112
5179
|
}) {
|
5113
5180
|
if (minGasPrice.gt(gasPrice)) {
|
5114
|
-
throw new
|
5115
|
-
|
5181
|
+
throw new FuelError15(
|
5182
|
+
ErrorCode15.GAS_PRICE_TOO_LOW,
|
5116
5183
|
`Gas price '${gasPrice}' is lower than the required: '${minGasPrice}'.`
|
5117
5184
|
);
|
5118
5185
|
}
|
5119
5186
|
if (gasUsed.gt(gasLimit)) {
|
5120
|
-
throw new
|
5121
|
-
|
5187
|
+
throw new FuelError15(
|
5188
|
+
ErrorCode15.GAS_LIMIT_TOO_LOW,
|
5122
5189
|
`Gas limit '${gasLimit}' is lower than the required: '${gasUsed}'.`
|
5123
5190
|
);
|
5124
5191
|
}
|
@@ -5249,7 +5316,7 @@ import {
|
|
5249
5316
|
decryptJsonWalletData,
|
5250
5317
|
encryptJsonWalletData
|
5251
5318
|
} from "@fuel-ts/crypto";
|
5252
|
-
import { ErrorCode as
|
5319
|
+
import { ErrorCode as ErrorCode16, FuelError as FuelError16 } from "@fuel-ts/errors";
|
5253
5320
|
import { hexlify as hexlify14 } from "@fuel-ts/utils";
|
5254
5321
|
import { v4 as uuidv4 } from "uuid";
|
5255
5322
|
var DEFAULT_KDF_PARAMS_LOG_N = 13;
|
@@ -5327,8 +5394,8 @@ async function decryptKeystoreWallet(jsonWallet, password) {
|
|
5327
5394
|
const macHashUint8Array = keccak256(data);
|
5328
5395
|
const macHash = stringFromBuffer(macHashUint8Array, "hex");
|
5329
5396
|
if (mac !== macHash) {
|
5330
|
-
throw new
|
5331
|
-
|
5397
|
+
throw new FuelError16(
|
5398
|
+
ErrorCode16.INVALID_PASSWORD,
|
5332
5399
|
"Failed to decrypt the keystore wallet, the provided password is incorrect."
|
5333
5400
|
);
|
5334
5401
|
}
|
@@ -5450,15 +5517,15 @@ var BaseWalletUnlocked = class extends Account {
|
|
5450
5517
|
__publicField(BaseWalletUnlocked, "defaultPath", "m/44'/1179993420'/0'/0/0");
|
5451
5518
|
|
5452
5519
|
// src/hdwallet/hdwallet.ts
|
5453
|
-
import { ErrorCode as
|
5520
|
+
import { ErrorCode as ErrorCode19, FuelError as FuelError19 } from "@fuel-ts/errors";
|
5454
5521
|
import { sha256 as sha2564 } from "@fuel-ts/hasher";
|
5455
|
-
import { bn as
|
5522
|
+
import { bn as bn18, toBytes as toBytes2, toHex } from "@fuel-ts/math";
|
5456
5523
|
import { arrayify as arrayify18, hexlify as hexlify17, concat as concat5 } from "@fuel-ts/utils";
|
5457
5524
|
import { toBeHex, dataSlice as dataSlice2, encodeBase58 as encodeBase582, decodeBase58, computeHmac as computeHmac2, ripemd160 } from "ethers";
|
5458
5525
|
|
5459
5526
|
// src/mnemonic/mnemonic.ts
|
5460
5527
|
import { randomBytes as randomBytes3 } from "@fuel-ts/crypto";
|
5461
|
-
import { ErrorCode as
|
5528
|
+
import { ErrorCode as ErrorCode18, FuelError as FuelError18 } from "@fuel-ts/errors";
|
5462
5529
|
import { sha256 as sha2563 } from "@fuel-ts/hasher";
|
5463
5530
|
import { arrayify as arrayify17, hexlify as hexlify16, concat as concat4 } from "@fuel-ts/utils";
|
5464
5531
|
import { dataSlice, pbkdf2, computeHmac, encodeBase58 } from "ethers";
|
@@ -7522,7 +7589,7 @@ var Language = /* @__PURE__ */ ((Language2) => {
|
|
7522
7589
|
})(Language || {});
|
7523
7590
|
|
7524
7591
|
// src/mnemonic/utils.ts
|
7525
|
-
import { ErrorCode as
|
7592
|
+
import { ErrorCode as ErrorCode17, FuelError as FuelError17 } from "@fuel-ts/errors";
|
7526
7593
|
import { sha256 as sha2562 } from "@fuel-ts/hasher";
|
7527
7594
|
import { arrayify as arrayify16 } from "@fuel-ts/utils";
|
7528
7595
|
function toUtf8Bytes(stri) {
|
@@ -7539,8 +7606,8 @@ function toUtf8Bytes(stri) {
|
|
7539
7606
|
i += 1;
|
7540
7607
|
const c2 = str.charCodeAt(i);
|
7541
7608
|
if (i >= str.length || (c2 & 64512) !== 56320) {
|
7542
|
-
throw new
|
7543
|
-
|
7609
|
+
throw new FuelError17(
|
7610
|
+
ErrorCode17.INVALID_INPUT_PARAMETERS,
|
7544
7611
|
"Invalid UTF-8 in the input string."
|
7545
7612
|
);
|
7546
7613
|
}
|
@@ -7603,8 +7670,8 @@ function mnemonicWordsToEntropy(words, wordlist) {
|
|
7603
7670
|
for (let i = 0; i < words.length; i += 1) {
|
7604
7671
|
const index = wordlist.indexOf(words[i].normalize("NFKD"));
|
7605
7672
|
if (index === -1) {
|
7606
|
-
throw new
|
7607
|
-
|
7673
|
+
throw new FuelError17(
|
7674
|
+
ErrorCode17.INVALID_MNEMONIC,
|
7608
7675
|
`Invalid mnemonic: the word '${words[i]}' is not found in the provided wordlist.`
|
7609
7676
|
);
|
7610
7677
|
}
|
@@ -7620,8 +7687,8 @@ function mnemonicWordsToEntropy(words, wordlist) {
|
|
7620
7687
|
const checksumMask = getUpperMask(checksumBits);
|
7621
7688
|
const checksum = arrayify16(sha2562(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;
|
7622
7689
|
if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {
|
7623
|
-
throw new
|
7624
|
-
|
7690
|
+
throw new FuelError17(
|
7691
|
+
ErrorCode17.INVALID_CHECKSUM,
|
7625
7692
|
"Checksum validation failed for the provided mnemonic."
|
7626
7693
|
);
|
7627
7694
|
}
|
@@ -7635,16 +7702,16 @@ var TestnetPRV = "0x04358394";
|
|
7635
7702
|
var MNEMONIC_SIZES = [12, 15, 18, 21, 24];
|
7636
7703
|
function assertWordList(wordlist) {
|
7637
7704
|
if (wordlist.length !== 2048) {
|
7638
|
-
throw new
|
7639
|
-
|
7705
|
+
throw new FuelError18(
|
7706
|
+
ErrorCode18.INVALID_WORD_LIST,
|
7640
7707
|
`Expected word list length of 2048, but got ${wordlist.length}.`
|
7641
7708
|
);
|
7642
7709
|
}
|
7643
7710
|
}
|
7644
7711
|
function assertEntropy(entropy) {
|
7645
7712
|
if (entropy.length % 4 !== 0 || entropy.length < 16 || entropy.length > 32) {
|
7646
|
-
throw new
|
7647
|
-
|
7713
|
+
throw new FuelError18(
|
7714
|
+
ErrorCode18.INVALID_ENTROPY,
|
7648
7715
|
`Entropy should be between 16 and 32 bytes and a multiple of 4, but got ${entropy.length} bytes.`
|
7649
7716
|
);
|
7650
7717
|
}
|
@@ -7654,7 +7721,7 @@ function assertMnemonic(words) {
|
|
7654
7721
|
const errorMsg = `Invalid mnemonic size. Expected one of [${MNEMONIC_SIZES.join(
|
7655
7722
|
", "
|
7656
7723
|
)}] words, but got ${words.length}.`;
|
7657
|
-
throw new
|
7724
|
+
throw new FuelError18(ErrorCode18.INVALID_MNEMONIC, errorMsg);
|
7658
7725
|
}
|
7659
7726
|
}
|
7660
7727
|
var Mnemonic = class {
|
@@ -7772,8 +7839,8 @@ var Mnemonic = class {
|
|
7772
7839
|
static masterKeysFromSeed(seed) {
|
7773
7840
|
const seedArray = arrayify17(seed);
|
7774
7841
|
if (seedArray.length < 16 || seedArray.length > 64) {
|
7775
|
-
throw new
|
7776
|
-
|
7842
|
+
throw new FuelError18(
|
7843
|
+
ErrorCode18.INVALID_SEED,
|
7777
7844
|
`Seed length should be between 16 and 64 bytes, but received ${seedArray.length} bytes.`
|
7778
7845
|
);
|
7779
7846
|
}
|
@@ -7850,7 +7917,7 @@ function isValidExtendedKey(extendedKey) {
|
|
7850
7917
|
function parsePath(path, depth = 0) {
|
7851
7918
|
const components = path.split("/");
|
7852
7919
|
if (components.length === 0 || components[0] === "m" && depth !== 0) {
|
7853
|
-
throw new
|
7920
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, `invalid path - ${path}`);
|
7854
7921
|
}
|
7855
7922
|
if (components[0] === "m") {
|
7856
7923
|
components.shift();
|
@@ -7879,8 +7946,8 @@ var HDWallet = class {
|
|
7879
7946
|
this.privateKey = hexlify17(config.privateKey);
|
7880
7947
|
} else {
|
7881
7948
|
if (!config.publicKey) {
|
7882
|
-
throw new
|
7883
|
-
|
7949
|
+
throw new FuelError19(
|
7950
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7884
7951
|
"Both public and private Key cannot be missing. At least one should be provided."
|
7885
7952
|
);
|
7886
7953
|
}
|
@@ -7909,8 +7976,8 @@ var HDWallet = class {
|
|
7909
7976
|
const data = new Uint8Array(37);
|
7910
7977
|
if (index & HARDENED_INDEX) {
|
7911
7978
|
if (!privateKey) {
|
7912
|
-
throw new
|
7913
|
-
|
7979
|
+
throw new FuelError19(
|
7980
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7914
7981
|
"Cannot derive a hardened index without a private Key."
|
7915
7982
|
);
|
7916
7983
|
}
|
@@ -7924,7 +7991,7 @@ var HDWallet = class {
|
|
7924
7991
|
const IR = bytes.slice(32);
|
7925
7992
|
if (privateKey) {
|
7926
7993
|
const N = "0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141";
|
7927
|
-
const ki =
|
7994
|
+
const ki = bn18(IL).add(privateKey).mod(N).toBytes(32);
|
7928
7995
|
return new HDWallet({
|
7929
7996
|
privateKey: ki,
|
7930
7997
|
chainCode: IR,
|
@@ -7962,8 +8029,8 @@ var HDWallet = class {
|
|
7962
8029
|
*/
|
7963
8030
|
toExtendedKey(isPublic = false, testnet = false) {
|
7964
8031
|
if (this.depth >= 256) {
|
7965
|
-
throw new
|
7966
|
-
|
8032
|
+
throw new FuelError19(
|
8033
|
+
ErrorCode19.HD_WALLET_ERROR,
|
7967
8034
|
`Exceeded max depth of 255. Current depth: ${this.depth}.`
|
7968
8035
|
);
|
7969
8036
|
}
|
@@ -7994,10 +8061,10 @@ var HDWallet = class {
|
|
7994
8061
|
const bytes = arrayify18(decoded);
|
7995
8062
|
const validChecksum = base58check(bytes.slice(0, 78)) === extendedKey;
|
7996
8063
|
if (bytes.length !== 82 || !isValidExtendedKey(bytes)) {
|
7997
|
-
throw new
|
8064
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Provided key is not a valid extended key.");
|
7998
8065
|
}
|
7999
8066
|
if (!validChecksum) {
|
8000
|
-
throw new
|
8067
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Provided key has an invalid checksum.");
|
8001
8068
|
}
|
8002
8069
|
const depth = bytes[4];
|
8003
8070
|
const parentFingerprint = hexlify17(bytes.slice(5, 9));
|
@@ -8005,14 +8072,14 @@ var HDWallet = class {
|
|
8005
8072
|
const chainCode = hexlify17(bytes.slice(13, 45));
|
8006
8073
|
const key = bytes.slice(45, 78);
|
8007
8074
|
if (depth === 0 && parentFingerprint !== "0x00000000" || depth === 0 && index !== 0) {
|
8008
|
-
throw new
|
8009
|
-
|
8075
|
+
throw new FuelError19(
|
8076
|
+
ErrorCode19.HD_WALLET_ERROR,
|
8010
8077
|
"Inconsistency detected: Depth is zero but fingerprint/index is non-zero."
|
8011
8078
|
);
|
8012
8079
|
}
|
8013
8080
|
if (isPublicExtendedKey(bytes)) {
|
8014
8081
|
if (key[0] !== 3) {
|
8015
|
-
throw new
|
8082
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Invalid public extended key.");
|
8016
8083
|
}
|
8017
8084
|
return new HDWallet({
|
8018
8085
|
publicKey: key,
|
@@ -8023,7 +8090,7 @@ var HDWallet = class {
|
|
8023
8090
|
});
|
8024
8091
|
}
|
8025
8092
|
if (key[0] !== 0) {
|
8026
|
-
throw new
|
8093
|
+
throw new FuelError19(ErrorCode19.HD_WALLET_ERROR, "Invalid private extended key.");
|
8027
8094
|
}
|
8028
8095
|
return new HDWallet({
|
8029
8096
|
privateKey: key.slice(1),
|
@@ -8191,7 +8258,7 @@ __publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
|
|
8191
8258
|
// src/wallet-manager/wallet-manager.ts
|
8192
8259
|
import { Address as Address8 } from "@fuel-ts/address";
|
8193
8260
|
import { encrypt, decrypt } from "@fuel-ts/crypto";
|
8194
|
-
import { ErrorCode as
|
8261
|
+
import { ErrorCode as ErrorCode22, FuelError as FuelError22 } from "@fuel-ts/errors";
|
8195
8262
|
import { EventEmitter } from "events";
|
8196
8263
|
|
8197
8264
|
// src/wallet-manager/storages/memory-storage.ts
|
@@ -8214,7 +8281,7 @@ var MemoryStorage = class {
|
|
8214
8281
|
|
8215
8282
|
// src/wallet-manager/vaults/mnemonic-vault.ts
|
8216
8283
|
import { Address as Address6 } from "@fuel-ts/address";
|
8217
|
-
import { ErrorCode as
|
8284
|
+
import { ErrorCode as ErrorCode20, FuelError as FuelError20 } from "@fuel-ts/errors";
|
8218
8285
|
var _secret;
|
8219
8286
|
var MnemonicVault = class {
|
8220
8287
|
constructor(options) {
|
@@ -8270,8 +8337,8 @@ var MnemonicVault = class {
|
|
8270
8337
|
}
|
8271
8338
|
numberOfAccounts += 1;
|
8272
8339
|
} while (numberOfAccounts < this.numberOfAccounts);
|
8273
|
-
throw new
|
8274
|
-
|
8340
|
+
throw new FuelError20(
|
8341
|
+
ErrorCode20.WALLET_MANAGER_ERROR,
|
8275
8342
|
`Account with address '${address}' not found in derived wallets.`
|
8276
8343
|
);
|
8277
8344
|
}
|
@@ -8285,7 +8352,7 @@ __publicField(MnemonicVault, "type", "mnemonic");
|
|
8285
8352
|
|
8286
8353
|
// src/wallet-manager/vaults/privatekey-vault.ts
|
8287
8354
|
import { Address as Address7 } from "@fuel-ts/address";
|
8288
|
-
import { ErrorCode as
|
8355
|
+
import { ErrorCode as ErrorCode21, FuelError as FuelError21 } from "@fuel-ts/errors";
|
8289
8356
|
var _privateKeys;
|
8290
8357
|
var PrivateKeyVault = class {
|
8291
8358
|
/**
|
@@ -8326,8 +8393,8 @@ var PrivateKeyVault = class {
|
|
8326
8393
|
(pk) => Wallet.fromPrivateKey(pk).address.equals(ownerAddress)
|
8327
8394
|
);
|
8328
8395
|
if (!privateKey) {
|
8329
|
-
throw new
|
8330
|
-
|
8396
|
+
throw new FuelError21(
|
8397
|
+
ErrorCode21.WALLET_MANAGER_ERROR,
|
8331
8398
|
`No private key found for address '${address}'.`
|
8332
8399
|
);
|
8333
8400
|
}
|
@@ -8351,7 +8418,7 @@ var ERROR_MESSAGES = {
|
|
8351
8418
|
};
|
8352
8419
|
function assert(condition, message) {
|
8353
8420
|
if (!condition) {
|
8354
|
-
throw new
|
8421
|
+
throw new FuelError22(ErrorCode22.WALLET_MANAGER_ERROR, message);
|
8355
8422
|
}
|
8356
8423
|
}
|
8357
8424
|
var _vaults, _passphrase, _isLocked, _serializeVaults, serializeVaults_fn, _deserializeVaults, deserializeVaults_fn;
|
@@ -8577,25 +8644,25 @@ deserializeVaults_fn = function(vaults) {
|
|
8577
8644
|
__publicField(WalletManager, "Vaults", [MnemonicVault, PrivateKeyVault]);
|
8578
8645
|
|
8579
8646
|
// src/wallet-manager/types.ts
|
8580
|
-
import { ErrorCode as
|
8647
|
+
import { ErrorCode as ErrorCode23, FuelError as FuelError23 } from "@fuel-ts/errors";
|
8581
8648
|
var Vault = class {
|
8582
8649
|
constructor(_options) {
|
8583
|
-
throw new
|
8650
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8584
8651
|
}
|
8585
8652
|
serialize() {
|
8586
|
-
throw new
|
8653
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8587
8654
|
}
|
8588
8655
|
getAccounts() {
|
8589
|
-
throw new
|
8656
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8590
8657
|
}
|
8591
8658
|
addAccount() {
|
8592
|
-
throw new
|
8659
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8593
8660
|
}
|
8594
8661
|
exportAccount(_address) {
|
8595
|
-
throw new
|
8662
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8596
8663
|
}
|
8597
8664
|
getWallet(_address) {
|
8598
|
-
throw new
|
8665
|
+
throw new FuelError23(ErrorCode23.NOT_IMPLEMENTED, "Not implemented.");
|
8599
8666
|
}
|
8600
8667
|
};
|
8601
8668
|
__publicField(Vault, "type");
|
@@ -8611,7 +8678,8 @@ import {
|
|
8611
8678
|
SCRIPT_FIXED_SIZE
|
8612
8679
|
} from "@fuel-ts/abi-coder";
|
8613
8680
|
import { Address as Address9 } from "@fuel-ts/address";
|
8614
|
-
import {
|
8681
|
+
import { BaseAssetId as BaseAssetId4 } from "@fuel-ts/address/configs";
|
8682
|
+
import { ErrorCode as ErrorCode24, FuelError as FuelError24 } from "@fuel-ts/errors";
|
8615
8683
|
import { ByteArrayCoder, InputType as InputType7 } from "@fuel-ts/transactions";
|
8616
8684
|
import { arrayify as arrayify20, hexlify as hexlify19 } from "@fuel-ts/utils";
|
8617
8685
|
|
@@ -8689,9 +8757,8 @@ var Predicate = class extends Account {
|
|
8689
8757
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
8690
8758
|
* @returns A promise that resolves to the prepared transaction request.
|
8691
8759
|
*/
|
8692
|
-
async createTransfer(destination, amount, assetId, txParams = {}) {
|
8693
|
-
const
|
8694
|
-
const request = await super.createTransfer(destination, amount, assetIdToTransfer, txParams);
|
8760
|
+
async createTransfer(destination, amount, assetId = BaseAssetId4, txParams = {}) {
|
8761
|
+
const request = await super.createTransfer(destination, amount, assetId, txParams);
|
8695
8762
|
return this.populateTransactionPredicateData(request);
|
8696
8763
|
}
|
8697
8764
|
/**
|
@@ -8740,8 +8807,8 @@ var Predicate = class extends Account {
|
|
8740
8807
|
if (jsonAbi) {
|
8741
8808
|
abiInterface = new Interface4(jsonAbi);
|
8742
8809
|
if (abiInterface.functions.main === void 0) {
|
8743
|
-
throw new
|
8744
|
-
|
8810
|
+
throw new FuelError24(
|
8811
|
+
ErrorCode24.ABI_MAIN_METHOD_MISSING,
|
8745
8812
|
'Cannot use ABI without "main" function.'
|
8746
8813
|
);
|
8747
8814
|
}
|
@@ -8786,8 +8853,8 @@ var Predicate = class extends Account {
|
|
8786
8853
|
mutatedBytes.set(encoded, offset);
|
8787
8854
|
});
|
8788
8855
|
} catch (err) {
|
8789
|
-
throw new
|
8790
|
-
|
8856
|
+
throw new FuelError24(
|
8857
|
+
ErrorCode24.INVALID_CONFIGURABLE_CONSTANTS,
|
8791
8858
|
`Error setting configurable constants: ${err.message}.`
|
8792
8859
|
);
|
8793
8860
|
}
|
@@ -8796,7 +8863,7 @@ var Predicate = class extends Account {
|
|
8796
8863
|
};
|
8797
8864
|
|
8798
8865
|
// src/connectors/fuel.ts
|
8799
|
-
import { ErrorCode as
|
8866
|
+
import { ErrorCode as ErrorCode25, FuelError as FuelError25 } from "@fuel-ts/errors";
|
8800
8867
|
|
8801
8868
|
// src/connectors/fuel-connector.ts
|
8802
8869
|
import { EventEmitter as EventEmitter2 } from "events";
|
@@ -9429,7 +9496,7 @@ var _Fuel = class extends FuelConnector {
|
|
9429
9496
|
const currentNetwork = await this.currentNetwork();
|
9430
9497
|
provider = await Provider.create(currentNetwork.url);
|
9431
9498
|
} else {
|
9432
|
-
throw new
|
9499
|
+
throw new FuelError25(ErrorCode25.INVALID_PROVIDER, "Provider is not valid.");
|
9433
9500
|
}
|
9434
9501
|
return provider;
|
9435
9502
|
}
|
@@ -9508,7 +9575,9 @@ export {
|
|
9508
9575
|
WalletUnlocked,
|
9509
9576
|
addAmountToAsset,
|
9510
9577
|
addOperation,
|
9578
|
+
assemblePanicError,
|
9511
9579
|
assembleReceiptByType,
|
9580
|
+
assembleRevertError,
|
9512
9581
|
assembleTransactionSummary,
|
9513
9582
|
assets,
|
9514
9583
|
buildBlockExplorerUrl,
|
@@ -9523,6 +9592,7 @@ export {
|
|
9523
9592
|
english,
|
9524
9593
|
extractBurnedAssetsFromReceipts,
|
9525
9594
|
extractMintedAssetsFromReceipts,
|
9595
|
+
extractTxError,
|
9526
9596
|
gasUsedByInputs,
|
9527
9597
|
getAssetEth,
|
9528
9598
|
getAssetFuel,
|