@fuel-ts/account 0.0.0-rc-2037-20240417131250 → 0.0.0-rc-1976-20240417161625
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 +100 -124
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +241 -280
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +126 -159
- package/dist/index.mjs.map +1 -1
- package/dist/predicate/predicate.d.ts +2 -11
- 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/coin.d.ts +1 -2
- package/dist/providers/coin.d.ts.map +1 -1
- package/dist/providers/message.d.ts +0 -1
- package/dist/providers/message.d.ts.map +1 -1
- package/dist/providers/provider.d.ts +7 -0
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/transaction-request/create-transaction-request.d.ts +1 -1
- package/dist/providers/transaction-request/create-transaction-request.d.ts.map +1 -1
- package/dist/providers/transaction-request/index.d.ts +0 -1
- package/dist/providers/transaction-request/index.d.ts.map +1 -1
- package/dist/providers/transaction-request/script-transaction-request.d.ts +1 -1
- package/dist/providers/transaction-request/script-transaction-request.d.ts.map +1 -1
- package/dist/providers/transaction-request/transaction-request.d.ts +25 -6
- package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
- package/dist/test-utils/index.d.ts +0 -1
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/launchNode.d.ts.map +1 -1
- package/dist/test-utils/seedTestWallet.d.ts +1 -1
- package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
- package/dist/test-utils.global.js +105 -104
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +238 -253
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +129 -141
- package/dist/test-utils.mjs.map +1 -1
- package/dist/wallet/base-wallet-unlocked.d.ts +2 -2
- package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
- package/package.json +15 -15
- package/dist/providers/transaction-request/helpers.d.ts +0 -10
- package/dist/providers/transaction-request/helpers.d.ts.map +0 -1
- package/dist/test-utils/resources.d.ts +0 -4
- package/dist/test-utils/resources.d.ts.map +0 -1
- package/dist/test-utils/transactionRequest.d.ts +0 -5
- package/dist/test-utils/transactionRequest.d.ts.map +0 -1
package/dist/test-utils.js
CHANGED
@@ -48,9 +48,6 @@ var __privateMethod = (obj, member, method) => {
|
|
48
48
|
// src/test-utils/index.ts
|
49
49
|
var test_utils_exports = {};
|
50
50
|
__export(test_utils_exports, {
|
51
|
-
generateFakeRequestInputCoin: () => generateFakeRequestInputCoin,
|
52
|
-
generateFakeRequestInputContract: () => generateFakeRequestInputContract,
|
53
|
-
generateFakeRequestInputMessage: () => generateFakeRequestInputMessage,
|
54
51
|
generateTestWallet: () => generateTestWallet,
|
55
52
|
killNode: () => killNode,
|
56
53
|
launchNode: () => launchNode,
|
@@ -65,14 +62,12 @@ var import_utils31 = require("@fuel-ts/utils");
|
|
65
62
|
|
66
63
|
// src/account.ts
|
67
64
|
var import_address4 = require("@fuel-ts/address");
|
68
|
-
var import_configs12 = require("@fuel-ts/address/configs");
|
69
65
|
var import_errors16 = require("@fuel-ts/errors");
|
70
66
|
var import_interfaces = require("@fuel-ts/interfaces");
|
71
67
|
var import_math18 = require("@fuel-ts/math");
|
72
68
|
var import_utils28 = require("@fuel-ts/utils");
|
73
69
|
|
74
70
|
// src/providers/coin-quantity.ts
|
75
|
-
var import_configs = require("@fuel-ts/address/configs");
|
76
71
|
var import_math = require("@fuel-ts/math");
|
77
72
|
var import_utils = require("@fuel-ts/utils");
|
78
73
|
var coinQuantityfy = (coinQuantityLike) => {
|
@@ -81,11 +76,11 @@ var coinQuantityfy = (coinQuantityLike) => {
|
|
81
76
|
let max2;
|
82
77
|
if (Array.isArray(coinQuantityLike)) {
|
83
78
|
amount = coinQuantityLike[0];
|
84
|
-
assetId = coinQuantityLike[1]
|
85
|
-
max2 = coinQuantityLike[2]
|
79
|
+
assetId = coinQuantityLike[1];
|
80
|
+
max2 = coinQuantityLike[2];
|
86
81
|
} else {
|
87
82
|
amount = coinQuantityLike.amount;
|
88
|
-
assetId = coinQuantityLike.assetId
|
83
|
+
assetId = coinQuantityLike.assetId;
|
89
84
|
max2 = coinQuantityLike.max ?? void 0;
|
90
85
|
}
|
91
86
|
const bnAmount = (0, import_math.bn)(amount);
|
@@ -111,7 +106,7 @@ var addAmountToAsset = (params) => {
|
|
111
106
|
var import_address3 = require("@fuel-ts/address");
|
112
107
|
var import_errors14 = require("@fuel-ts/errors");
|
113
108
|
var import_math15 = require("@fuel-ts/math");
|
114
|
-
var
|
109
|
+
var import_transactions18 = require("@fuel-ts/transactions");
|
115
110
|
var import_utils23 = require("@fuel-ts/utils");
|
116
111
|
var import_versions = require("@fuel-ts/versions");
|
117
112
|
var import_utils24 = require("@noble/curves/abstract/utils");
|
@@ -1064,7 +1059,7 @@ var MemoryCache = class {
|
|
1064
1059
|
|
1065
1060
|
// src/providers/transaction-request/input.ts
|
1066
1061
|
var import_abi_coder = require("@fuel-ts/abi-coder");
|
1067
|
-
var
|
1062
|
+
var import_configs = require("@fuel-ts/address/configs");
|
1068
1063
|
var import_errors3 = require("@fuel-ts/errors");
|
1069
1064
|
var import_math2 = require("@fuel-ts/math");
|
1070
1065
|
var import_transactions = require("@fuel-ts/transactions");
|
@@ -1098,10 +1093,10 @@ var inputify = (value) => {
|
|
1098
1093
|
case import_transactions.InputType.Contract: {
|
1099
1094
|
return {
|
1100
1095
|
type: import_transactions.InputType.Contract,
|
1101
|
-
txID:
|
1096
|
+
txID: import_configs.ZeroBytes32,
|
1102
1097
|
outputIndex: 0,
|
1103
|
-
balanceRoot:
|
1104
|
-
stateRoot:
|
1098
|
+
balanceRoot: import_configs.ZeroBytes32,
|
1099
|
+
stateRoot: import_configs.ZeroBytes32,
|
1105
1100
|
txPointer: {
|
1106
1101
|
blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
|
1107
1102
|
txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
|
@@ -1139,7 +1134,7 @@ var inputify = (value) => {
|
|
1139
1134
|
};
|
1140
1135
|
|
1141
1136
|
// src/providers/transaction-request/output.ts
|
1142
|
-
var
|
1137
|
+
var import_configs2 = require("@fuel-ts/address/configs");
|
1143
1138
|
var import_errors4 = require("@fuel-ts/errors");
|
1144
1139
|
var import_math3 = require("@fuel-ts/math");
|
1145
1140
|
var import_transactions2 = require("@fuel-ts/transactions");
|
@@ -1159,8 +1154,8 @@ var outputify = (value) => {
|
|
1159
1154
|
return {
|
1160
1155
|
type: import_transactions2.OutputType.Contract,
|
1161
1156
|
inputIndex: value.inputIndex,
|
1162
|
-
balanceRoot:
|
1163
|
-
stateRoot:
|
1157
|
+
balanceRoot: import_configs2.ZeroBytes32,
|
1158
|
+
stateRoot: import_configs2.ZeroBytes32
|
1164
1159
|
};
|
1165
1160
|
}
|
1166
1161
|
case import_transactions2.OutputType.Change: {
|
@@ -1174,9 +1169,9 @@ var outputify = (value) => {
|
|
1174
1169
|
case import_transactions2.OutputType.Variable: {
|
1175
1170
|
return {
|
1176
1171
|
type: import_transactions2.OutputType.Variable,
|
1177
|
-
to:
|
1172
|
+
to: import_configs2.ZeroBytes32,
|
1178
1173
|
amount: (0, import_math3.bn)(0),
|
1179
|
-
assetId:
|
1174
|
+
assetId: import_configs2.ZeroBytes32
|
1180
1175
|
};
|
1181
1176
|
}
|
1182
1177
|
case import_transactions2.OutputType.ContractCreated: {
|
@@ -1198,23 +1193,23 @@ var outputify = (value) => {
|
|
1198
1193
|
// src/providers/transaction-request/transaction-request.ts
|
1199
1194
|
var import_abi_coder2 = require("@fuel-ts/abi-coder");
|
1200
1195
|
var import_address = require("@fuel-ts/address");
|
1201
|
-
var
|
1196
|
+
var import_configs6 = require("@fuel-ts/address/configs");
|
1202
1197
|
var import_crypto = require("@fuel-ts/crypto");
|
1203
1198
|
var import_math7 = require("@fuel-ts/math");
|
1204
|
-
var
|
1199
|
+
var import_transactions6 = require("@fuel-ts/transactions");
|
1205
1200
|
var import_utils9 = require("@fuel-ts/utils");
|
1206
1201
|
|
1207
1202
|
// src/providers/resource.ts
|
1208
1203
|
var isCoin = (resource) => "id" in resource;
|
1209
1204
|
|
1210
1205
|
// src/providers/utils/receipts.ts
|
1211
|
-
var
|
1206
|
+
var import_configs3 = require("@fuel-ts/address/configs");
|
1212
1207
|
var import_errors5 = require("@fuel-ts/errors");
|
1213
1208
|
var import_math4 = require("@fuel-ts/math");
|
1214
1209
|
var import_transactions3 = require("@fuel-ts/transactions");
|
1215
|
-
var
|
1210
|
+
var import_configs4 = require("@fuel-ts/transactions/configs");
|
1216
1211
|
var import_utils5 = require("@fuel-ts/utils");
|
1217
|
-
var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") ===
|
1212
|
+
var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs4.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
|
1218
1213
|
var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
|
1219
1214
|
var getReceiptsWithMissingData = (receipts) => receipts.reduce(
|
1220
1215
|
(memo, receipt) => {
|
@@ -1231,7 +1226,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
|
|
1231
1226
|
missingOutputContractIds: []
|
1232
1227
|
}
|
1233
1228
|
);
|
1234
|
-
var hexOrZero = (hex) => hex ||
|
1229
|
+
var hexOrZero = (hex) => hex || import_configs3.ZeroBytes32;
|
1235
1230
|
function assembleReceiptByType(receipt) {
|
1236
1231
|
const { receiptType } = receipt;
|
1237
1232
|
switch (receiptType) {
|
@@ -1536,16 +1531,16 @@ function sleep(time) {
|
|
1536
1531
|
var import_errors7 = require("@fuel-ts/errors");
|
1537
1532
|
var import_math6 = require("@fuel-ts/math");
|
1538
1533
|
var import_transactions5 = require("@fuel-ts/transactions");
|
1539
|
-
var
|
1534
|
+
var import_configs5 = require("@fuel-ts/transactions/configs");
|
1540
1535
|
var assemblePanicError = (status) => {
|
1541
1536
|
let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
|
1542
1537
|
const reason = status.reason;
|
1543
|
-
if (
|
1538
|
+
if (import_configs5.PANIC_REASONS.includes(status.reason)) {
|
1544
1539
|
errorMessage = `${errorMessage}
|
1545
1540
|
|
1546
1541
|
You can read more about this error at:
|
1547
1542
|
|
1548
|
-
${
|
1543
|
+
${import_configs5.PANIC_DOC_URL}#variant.${status.reason}`;
|
1549
1544
|
}
|
1550
1545
|
return { errorMessage, reason };
|
1551
1546
|
};
|
@@ -1557,28 +1552,28 @@ var assembleRevertError = (receipts, logs) => {
|
|
1557
1552
|
if (revertReceipt) {
|
1558
1553
|
const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
|
1559
1554
|
switch (reasonHex) {
|
1560
|
-
case
|
1555
|
+
case import_configs5.FAILED_REQUIRE_SIGNAL: {
|
1561
1556
|
reason = "require";
|
1562
1557
|
errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
|
1563
1558
|
break;
|
1564
1559
|
}
|
1565
|
-
case
|
1560
|
+
case import_configs5.FAILED_ASSERT_EQ_SIGNAL: {
|
1566
1561
|
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1567
1562
|
reason = "assert_eq";
|
1568
1563
|
errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
|
1569
1564
|
break;
|
1570
1565
|
}
|
1571
|
-
case
|
1566
|
+
case import_configs5.FAILED_ASSERT_NE_SIGNAL: {
|
1572
1567
|
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1573
1568
|
reason = "assert_ne";
|
1574
1569
|
errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
|
1575
1570
|
break;
|
1576
1571
|
}
|
1577
|
-
case
|
1572
|
+
case import_configs5.FAILED_ASSERT_SIGNAL:
|
1578
1573
|
reason = "assert";
|
1579
1574
|
errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
|
1580
1575
|
break;
|
1581
|
-
case
|
1576
|
+
case import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
|
1582
1577
|
reason = "MissingOutputChange";
|
1583
1578
|
errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
|
1584
1579
|
break;
|
@@ -1614,12 +1609,6 @@ var NoWitnessAtIndexError = class extends Error {
|
|
1614
1609
|
name = "NoWitnessAtIndexError";
|
1615
1610
|
};
|
1616
1611
|
|
1617
|
-
// src/providers/transaction-request/helpers.ts
|
1618
|
-
var import_transactions6 = require("@fuel-ts/transactions");
|
1619
|
-
var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
|
1620
|
-
var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
|
1621
|
-
var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
|
1622
|
-
|
1623
1612
|
// src/providers/transaction-request/witness.ts
|
1624
1613
|
var import_utils8 = require("@fuel-ts/utils");
|
1625
1614
|
var witnessify = (value) => {
|
@@ -1646,6 +1635,8 @@ var BaseTransactionRequest = class {
|
|
1646
1635
|
outputs = [];
|
1647
1636
|
/** List of witnesses */
|
1648
1637
|
witnesses = [];
|
1638
|
+
/** Base asset ID - should be fetched from the chain */
|
1639
|
+
baseAssetId;
|
1649
1640
|
/**
|
1650
1641
|
* Constructor for initializing a base transaction request.
|
1651
1642
|
*
|
@@ -1658,8 +1649,9 @@ var BaseTransactionRequest = class {
|
|
1658
1649
|
witnessLimit,
|
1659
1650
|
inputs,
|
1660
1651
|
outputs,
|
1661
|
-
witnesses
|
1662
|
-
|
1652
|
+
witnesses,
|
1653
|
+
baseAssetId
|
1654
|
+
}) {
|
1663
1655
|
this.gasPrice = (0, import_math7.bn)(gasPrice);
|
1664
1656
|
this.maturity = maturity ?? 0;
|
1665
1657
|
this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
|
@@ -1667,25 +1659,26 @@ var BaseTransactionRequest = class {
|
|
1667
1659
|
this.inputs = inputs ?? [];
|
1668
1660
|
this.outputs = outputs ?? [];
|
1669
1661
|
this.witnesses = witnesses ?? [];
|
1662
|
+
this.baseAssetId = baseAssetId;
|
1670
1663
|
}
|
1671
1664
|
static getPolicyMeta(req) {
|
1672
1665
|
let policyTypes = 0;
|
1673
1666
|
const policies = [];
|
1674
1667
|
if (req.gasPrice) {
|
1675
|
-
policyTypes +=
|
1676
|
-
policies.push({ data: req.gasPrice, type:
|
1668
|
+
policyTypes += import_transactions6.PolicyType.GasPrice;
|
1669
|
+
policies.push({ data: req.gasPrice, type: import_transactions6.PolicyType.GasPrice });
|
1677
1670
|
}
|
1678
1671
|
if (req.witnessLimit) {
|
1679
|
-
policyTypes +=
|
1680
|
-
policies.push({ data: req.witnessLimit, type:
|
1672
|
+
policyTypes += import_transactions6.PolicyType.WitnessLimit;
|
1673
|
+
policies.push({ data: req.witnessLimit, type: import_transactions6.PolicyType.WitnessLimit });
|
1681
1674
|
}
|
1682
1675
|
if (req.maturity > 0) {
|
1683
|
-
policyTypes +=
|
1684
|
-
policies.push({ data: req.maturity, type:
|
1676
|
+
policyTypes += import_transactions6.PolicyType.Maturity;
|
1677
|
+
policies.push({ data: req.maturity, type: import_transactions6.PolicyType.Maturity });
|
1685
1678
|
}
|
1686
1679
|
if (req.maxFee) {
|
1687
|
-
policyTypes +=
|
1688
|
-
policies.push({ data: req.maxFee, type:
|
1680
|
+
policyTypes += import_transactions6.PolicyType.MaxFee;
|
1681
|
+
policies.push({ data: req.maxFee, type: import_transactions6.PolicyType.MaxFee });
|
1689
1682
|
}
|
1690
1683
|
return {
|
1691
1684
|
policyTypes,
|
@@ -1719,7 +1712,7 @@ var BaseTransactionRequest = class {
|
|
1719
1712
|
* @returns The transaction bytes.
|
1720
1713
|
*/
|
1721
1714
|
toTransactionBytes() {
|
1722
|
-
return new
|
1715
|
+
return new import_transactions6.TransactionCoder().encode(this.toTransaction());
|
1723
1716
|
}
|
1724
1717
|
/**
|
1725
1718
|
* @hidden
|
@@ -1759,7 +1752,7 @@ var BaseTransactionRequest = class {
|
|
1759
1752
|
* @returns The index of the created witness.
|
1760
1753
|
*/
|
1761
1754
|
addEmptyWitness() {
|
1762
|
-
this.addWitness((0, import_utils9.concat)([
|
1755
|
+
this.addWitness((0, import_utils9.concat)([import_configs6.ZeroBytes32, import_configs6.ZeroBytes32]));
|
1763
1756
|
return this.witnesses.length - 1;
|
1764
1757
|
}
|
1765
1758
|
/**
|
@@ -1810,7 +1803,7 @@ var BaseTransactionRequest = class {
|
|
1810
1803
|
*/
|
1811
1804
|
getCoinInputs() {
|
1812
1805
|
return this.inputs.filter(
|
1813
|
-
(input) => input.type ===
|
1806
|
+
(input) => input.type === import_transactions6.InputType.Coin
|
1814
1807
|
);
|
1815
1808
|
}
|
1816
1809
|
/**
|
@@ -1820,7 +1813,7 @@ var BaseTransactionRequest = class {
|
|
1820
1813
|
*/
|
1821
1814
|
getCoinOutputs() {
|
1822
1815
|
return this.outputs.filter(
|
1823
|
-
(output) => output.type ===
|
1816
|
+
(output) => output.type === import_transactions6.OutputType.Coin
|
1824
1817
|
);
|
1825
1818
|
}
|
1826
1819
|
/**
|
@@ -1830,7 +1823,7 @@ var BaseTransactionRequest = class {
|
|
1830
1823
|
*/
|
1831
1824
|
getChangeOutputs() {
|
1832
1825
|
return this.outputs.filter(
|
1833
|
-
(output) => output.type ===
|
1826
|
+
(output) => output.type === import_transactions6.OutputType.Change
|
1834
1827
|
);
|
1835
1828
|
}
|
1836
1829
|
/**
|
@@ -1842,9 +1835,9 @@ var BaseTransactionRequest = class {
|
|
1842
1835
|
const ownerAddress = (0, import_address.addressify)(owner);
|
1843
1836
|
const found = this.inputs.find((input) => {
|
1844
1837
|
switch (input.type) {
|
1845
|
-
case
|
1838
|
+
case import_transactions6.InputType.Coin:
|
1846
1839
|
return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
|
1847
|
-
case
|
1840
|
+
case import_transactions6.InputType.Message:
|
1848
1841
|
return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
|
1849
1842
|
default:
|
1850
1843
|
return false;
|
@@ -1860,8 +1853,8 @@ var BaseTransactionRequest = class {
|
|
1860
1853
|
* @param predicate - Predicate bytes.
|
1861
1854
|
* @param predicateData - Predicate data bytes.
|
1862
1855
|
*/
|
1863
|
-
addCoinInput(coin) {
|
1864
|
-
const { assetId, owner, amount
|
1856
|
+
addCoinInput(coin, predicate) {
|
1857
|
+
const { assetId, owner, amount } = coin;
|
1865
1858
|
let witnessIndex;
|
1866
1859
|
if (predicate) {
|
1867
1860
|
witnessIndex = 0;
|
@@ -1872,14 +1865,14 @@ var BaseTransactionRequest = class {
|
|
1872
1865
|
}
|
1873
1866
|
}
|
1874
1867
|
const input = {
|
1875
|
-
|
1876
|
-
type:
|
1868
|
+
...coin,
|
1869
|
+
type: import_transactions6.InputType.Coin,
|
1877
1870
|
owner: owner.toB256(),
|
1878
1871
|
amount,
|
1879
1872
|
assetId,
|
1880
1873
|
txPointer: "0x00000000000000000000000000000000",
|
1881
1874
|
witnessIndex,
|
1882
|
-
predicate
|
1875
|
+
predicate: predicate?.bytes
|
1883
1876
|
};
|
1884
1877
|
this.pushInput(input);
|
1885
1878
|
this.addChangeOutput(owner, assetId);
|
@@ -1890,11 +1883,9 @@ var BaseTransactionRequest = class {
|
|
1890
1883
|
*
|
1891
1884
|
* @param message - Message resource.
|
1892
1885
|
* @param predicate - Predicate bytes.
|
1893
|
-
* @param predicateData - Predicate data bytes.
|
1894
1886
|
*/
|
1895
|
-
addMessageInput(message) {
|
1896
|
-
const { recipient, sender, amount
|
1897
|
-
const assetId = import_configs7.BaseAssetId;
|
1887
|
+
addMessageInput(message, predicate) {
|
1888
|
+
const { recipient, sender, amount } = message;
|
1898
1889
|
let witnessIndex;
|
1899
1890
|
if (predicate) {
|
1900
1891
|
witnessIndex = 0;
|
@@ -1905,16 +1896,16 @@ var BaseTransactionRequest = class {
|
|
1905
1896
|
}
|
1906
1897
|
}
|
1907
1898
|
const input = {
|
1908
|
-
|
1909
|
-
type:
|
1899
|
+
...message,
|
1900
|
+
type: import_transactions6.InputType.Message,
|
1910
1901
|
sender: sender.toB256(),
|
1911
1902
|
recipient: recipient.toB256(),
|
1912
1903
|
amount,
|
1913
1904
|
witnessIndex,
|
1914
|
-
predicate
|
1905
|
+
predicate: predicate?.bytes
|
1915
1906
|
};
|
1916
1907
|
this.pushInput(input);
|
1917
|
-
this.addChangeOutput(recipient,
|
1908
|
+
this.addChangeOutput(recipient, this.baseAssetId);
|
1918
1909
|
}
|
1919
1910
|
/**
|
1920
1911
|
* Adds a single resource to the transaction by adding a coin/message input and a
|
@@ -1942,6 +1933,32 @@ var BaseTransactionRequest = class {
|
|
1942
1933
|
resources.forEach((resource) => this.addResource(resource));
|
1943
1934
|
return this;
|
1944
1935
|
}
|
1936
|
+
/**
|
1937
|
+
* Adds multiple resources to the transaction by adding coin/message inputs and change
|
1938
|
+
* outputs from the related assetIds.
|
1939
|
+
*
|
1940
|
+
* @param resources - The resources to add.
|
1941
|
+
* @returns This transaction.
|
1942
|
+
*/
|
1943
|
+
addPredicateResource(resource, predicate) {
|
1944
|
+
if (isCoin(resource)) {
|
1945
|
+
this.addCoinInput(resource, predicate);
|
1946
|
+
} else {
|
1947
|
+
this.addMessageInput(resource, predicate);
|
1948
|
+
}
|
1949
|
+
return this;
|
1950
|
+
}
|
1951
|
+
/**
|
1952
|
+
* Adds multiple predicate coin/message inputs to the transaction and change outputs
|
1953
|
+
* from the related assetIds.
|
1954
|
+
*
|
1955
|
+
* @param resources - The resources to add.
|
1956
|
+
* @returns This transaction.
|
1957
|
+
*/
|
1958
|
+
addPredicateResources(resources, predicate) {
|
1959
|
+
resources.forEach((resource) => this.addPredicateResource(resource, predicate));
|
1960
|
+
return this;
|
1961
|
+
}
|
1945
1962
|
/**
|
1946
1963
|
* Adds a coin output to the transaction.
|
1947
1964
|
*
|
@@ -1949,12 +1966,12 @@ var BaseTransactionRequest = class {
|
|
1949
1966
|
* @param amount - Amount of coin.
|
1950
1967
|
* @param assetId - Asset ID of coin.
|
1951
1968
|
*/
|
1952
|
-
addCoinOutput(to, amount, assetId
|
1969
|
+
addCoinOutput(to, amount, assetId) {
|
1953
1970
|
this.pushOutput({
|
1954
|
-
type:
|
1971
|
+
type: import_transactions6.OutputType.Coin,
|
1955
1972
|
to: (0, import_address.addressify)(to).toB256(),
|
1956
1973
|
amount,
|
1957
|
-
assetId
|
1974
|
+
assetId: assetId ?? this.baseAssetId
|
1958
1975
|
});
|
1959
1976
|
return this;
|
1960
1977
|
}
|
@@ -1967,7 +1984,7 @@ var BaseTransactionRequest = class {
|
|
1967
1984
|
addCoinOutputs(to, quantities) {
|
1968
1985
|
quantities.map(coinQuantityfy).forEach((quantity) => {
|
1969
1986
|
this.pushOutput({
|
1970
|
-
type:
|
1987
|
+
type: import_transactions6.OutputType.Coin,
|
1971
1988
|
to: (0, import_address.addressify)(to).toB256(),
|
1972
1989
|
amount: quantity.amount,
|
1973
1990
|
assetId: quantity.assetId
|
@@ -1981,15 +1998,15 @@ var BaseTransactionRequest = class {
|
|
1981
1998
|
* @param to - Address of the owner.
|
1982
1999
|
* @param assetId - Asset ID of coin.
|
1983
2000
|
*/
|
1984
|
-
addChangeOutput(to, assetId
|
2001
|
+
addChangeOutput(to, assetId) {
|
1985
2002
|
const changeOutput = this.getChangeOutputs().find(
|
1986
2003
|
(output) => (0, import_utils9.hexlify)(output.assetId) === assetId
|
1987
2004
|
);
|
1988
2005
|
if (!changeOutput) {
|
1989
2006
|
this.pushOutput({
|
1990
|
-
type:
|
2007
|
+
type: import_transactions6.OutputType.Change,
|
1991
2008
|
to: (0, import_address.addressify)(to).toB256(),
|
1992
|
-
assetId
|
2009
|
+
assetId: assetId ?? this.baseAssetId
|
1993
2010
|
});
|
1994
2011
|
}
|
1995
2012
|
}
|
@@ -2065,7 +2082,7 @@ var BaseTransactionRequest = class {
|
|
2065
2082
|
]);
|
2066
2083
|
}
|
2067
2084
|
};
|
2068
|
-
updateAssetInput(
|
2085
|
+
updateAssetInput(this.baseAssetId, (0, import_math7.bn)(1e11));
|
2069
2086
|
quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
|
2070
2087
|
}
|
2071
2088
|
/**
|
@@ -2090,20 +2107,16 @@ var BaseTransactionRequest = class {
|
|
2090
2107
|
toJSON() {
|
2091
2108
|
return normalizeJSON(this);
|
2092
2109
|
}
|
2093
|
-
removeWitness(index) {
|
2094
|
-
this.witnesses.splice(index, 1);
|
2095
|
-
this.adjustWitnessIndexes(index);
|
2096
|
-
}
|
2097
2110
|
updatePredicateInputs(inputs) {
|
2098
2111
|
this.inputs.forEach((i) => {
|
2099
2112
|
let correspondingInput;
|
2100
2113
|
switch (i.type) {
|
2101
|
-
case
|
2102
|
-
correspondingInput = inputs.find((x) => x.type ===
|
2114
|
+
case import_transactions6.InputType.Coin:
|
2115
|
+
correspondingInput = inputs.find((x) => x.type === import_transactions6.InputType.Coin && x.owner === i.owner);
|
2103
2116
|
break;
|
2104
|
-
case
|
2117
|
+
case import_transactions6.InputType.Message:
|
2105
2118
|
correspondingInput = inputs.find(
|
2106
|
-
(x) => x.type ===
|
2119
|
+
(x) => x.type === import_transactions6.InputType.Message && x.sender === i.sender
|
2107
2120
|
);
|
2108
2121
|
break;
|
2109
2122
|
default:
|
@@ -2116,37 +2129,30 @@ var BaseTransactionRequest = class {
|
|
2116
2129
|
}
|
2117
2130
|
});
|
2118
2131
|
}
|
2119
|
-
adjustWitnessIndexes(removedIndex) {
|
2120
|
-
this.inputs.filter(isRequestInputResource).forEach((input) => {
|
2121
|
-
if (input.witnessIndex > removedIndex) {
|
2122
|
-
input.witnessIndex -= 1;
|
2123
|
-
}
|
2124
|
-
});
|
2125
|
-
}
|
2126
2132
|
};
|
2127
2133
|
|
2128
2134
|
// src/providers/transaction-request/create-transaction-request.ts
|
2129
|
-
var
|
2135
|
+
var import_configs8 = require("@fuel-ts/address/configs");
|
2130
2136
|
var import_math9 = require("@fuel-ts/math");
|
2131
|
-
var
|
2137
|
+
var import_transactions8 = require("@fuel-ts/transactions");
|
2132
2138
|
var import_utils13 = require("@fuel-ts/utils");
|
2133
2139
|
|
2134
2140
|
// src/providers/transaction-request/hash-transaction.ts
|
2135
|
-
var
|
2141
|
+
var import_configs7 = require("@fuel-ts/address/configs");
|
2136
2142
|
var import_hasher = require("@fuel-ts/hasher");
|
2137
2143
|
var import_math8 = require("@fuel-ts/math");
|
2138
|
-
var
|
2144
|
+
var import_transactions7 = require("@fuel-ts/transactions");
|
2139
2145
|
var import_utils11 = require("@fuel-ts/utils");
|
2140
2146
|
var import_ramda2 = require("ramda");
|
2141
2147
|
function hashTransaction(transactionRequest, chainId) {
|
2142
2148
|
const transaction = transactionRequest.toTransaction();
|
2143
|
-
if (transaction.type ===
|
2144
|
-
transaction.receiptsRoot =
|
2149
|
+
if (transaction.type === import_transactions7.TransactionType.Script) {
|
2150
|
+
transaction.receiptsRoot = import_configs7.ZeroBytes32;
|
2145
2151
|
}
|
2146
2152
|
transaction.inputs = transaction.inputs.map((input) => {
|
2147
2153
|
const inputClone = (0, import_ramda2.clone)(input);
|
2148
2154
|
switch (inputClone.type) {
|
2149
|
-
case
|
2155
|
+
case import_transactions7.InputType.Coin: {
|
2150
2156
|
inputClone.txPointer = {
|
2151
2157
|
blockHeight: 0,
|
2152
2158
|
txIndex: 0
|
@@ -2154,19 +2160,19 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2154
2160
|
inputClone.predicateGasUsed = (0, import_math8.bn)(0);
|
2155
2161
|
return inputClone;
|
2156
2162
|
}
|
2157
|
-
case
|
2163
|
+
case import_transactions7.InputType.Message: {
|
2158
2164
|
inputClone.predicateGasUsed = (0, import_math8.bn)(0);
|
2159
2165
|
return inputClone;
|
2160
2166
|
}
|
2161
|
-
case
|
2167
|
+
case import_transactions7.InputType.Contract: {
|
2162
2168
|
inputClone.txPointer = {
|
2163
2169
|
blockHeight: 0,
|
2164
2170
|
txIndex: 0
|
2165
2171
|
};
|
2166
|
-
inputClone.txID =
|
2172
|
+
inputClone.txID = import_configs7.ZeroBytes32;
|
2167
2173
|
inputClone.outputIndex = 0;
|
2168
|
-
inputClone.balanceRoot =
|
2169
|
-
inputClone.stateRoot =
|
2174
|
+
inputClone.balanceRoot = import_configs7.ZeroBytes32;
|
2175
|
+
inputClone.stateRoot = import_configs7.ZeroBytes32;
|
2170
2176
|
return inputClone;
|
2171
2177
|
}
|
2172
2178
|
default:
|
@@ -2176,19 +2182,19 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2176
2182
|
transaction.outputs = transaction.outputs.map((output) => {
|
2177
2183
|
const outputClone = (0, import_ramda2.clone)(output);
|
2178
2184
|
switch (outputClone.type) {
|
2179
|
-
case
|
2180
|
-
outputClone.balanceRoot =
|
2181
|
-
outputClone.stateRoot =
|
2185
|
+
case import_transactions7.OutputType.Contract: {
|
2186
|
+
outputClone.balanceRoot = import_configs7.ZeroBytes32;
|
2187
|
+
outputClone.stateRoot = import_configs7.ZeroBytes32;
|
2182
2188
|
return outputClone;
|
2183
2189
|
}
|
2184
|
-
case
|
2190
|
+
case import_transactions7.OutputType.Change: {
|
2185
2191
|
outputClone.amount = (0, import_math8.bn)(0);
|
2186
2192
|
return outputClone;
|
2187
2193
|
}
|
2188
|
-
case
|
2189
|
-
outputClone.to =
|
2194
|
+
case import_transactions7.OutputType.Variable: {
|
2195
|
+
outputClone.to = import_configs7.ZeroBytes32;
|
2190
2196
|
outputClone.amount = (0, import_math8.bn)(0);
|
2191
|
-
outputClone.assetId =
|
2197
|
+
outputClone.assetId = import_configs7.ZeroBytes32;
|
2192
2198
|
return outputClone;
|
2193
2199
|
}
|
2194
2200
|
default:
|
@@ -2198,7 +2204,7 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2198
2204
|
transaction.witnessesCount = 0;
|
2199
2205
|
transaction.witnesses = [];
|
2200
2206
|
const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
|
2201
|
-
const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new
|
2207
|
+
const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions7.TransactionCoder().encode(transaction)]);
|
2202
2208
|
return (0, import_hasher.sha256)(concatenatedData);
|
2203
2209
|
}
|
2204
2210
|
|
@@ -2234,7 +2240,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2234
2240
|
return new this(obj);
|
2235
2241
|
}
|
2236
2242
|
/** Type of the transaction */
|
2237
|
-
type =
|
2243
|
+
type = import_transactions8.TransactionType.Create;
|
2238
2244
|
/** Witness index of contract bytecode to create */
|
2239
2245
|
bytecodeWitnessIndex;
|
2240
2246
|
/** Salt */
|
@@ -2246,15 +2252,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2246
2252
|
*
|
2247
2253
|
* @param createTransactionRequestLike - The initial values for the instance
|
2248
2254
|
*/
|
2249
|
-
constructor({
|
2250
|
-
bytecodeWitnessIndex,
|
2251
|
-
salt,
|
2252
|
-
storageSlots,
|
2253
|
-
...rest
|
2254
|
-
} = {}) {
|
2255
|
+
constructor({ bytecodeWitnessIndex, salt, storageSlots, ...rest }) {
|
2255
2256
|
super(rest);
|
2256
2257
|
this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
|
2257
|
-
this.salt = (0, import_utils13.hexlify)(salt ??
|
2258
|
+
this.salt = (0, import_utils13.hexlify)(salt ?? import_configs8.ZeroBytes32);
|
2258
2259
|
this.storageSlots = [...storageSlots ?? []];
|
2259
2260
|
}
|
2260
2261
|
/**
|
@@ -2267,12 +2268,12 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2267
2268
|
const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
|
2268
2269
|
const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
|
2269
2270
|
return {
|
2270
|
-
type:
|
2271
|
+
type: import_transactions8.TransactionType.Create,
|
2271
2272
|
...baseTransaction,
|
2272
2273
|
bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
|
2273
2274
|
bytecodeWitnessIndex,
|
2274
2275
|
storageSlotsCount: storageSlots.length,
|
2275
|
-
salt: this.salt ? (0, import_utils13.hexlify)(this.salt) :
|
2276
|
+
salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
|
2276
2277
|
storageSlots
|
2277
2278
|
};
|
2278
2279
|
}
|
@@ -2283,7 +2284,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2283
2284
|
*/
|
2284
2285
|
getContractCreatedOutputs() {
|
2285
2286
|
return this.outputs.filter(
|
2286
|
-
(output) => output.type ===
|
2287
|
+
(output) => output.type === import_transactions8.OutputType.ContractCreated
|
2287
2288
|
);
|
2288
2289
|
}
|
2289
2290
|
/**
|
@@ -2304,7 +2305,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2304
2305
|
*/
|
2305
2306
|
addContractCreatedOutput(contractId, stateRoot) {
|
2306
2307
|
this.pushOutput({
|
2307
|
-
type:
|
2308
|
+
type: import_transactions8.OutputType.ContractCreated,
|
2308
2309
|
contractId,
|
2309
2310
|
stateRoot
|
2310
2311
|
});
|
@@ -2322,9 +2323,9 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2322
2323
|
// src/providers/transaction-request/script-transaction-request.ts
|
2323
2324
|
var import_abi_coder3 = require("@fuel-ts/abi-coder");
|
2324
2325
|
var import_address2 = require("@fuel-ts/address");
|
2325
|
-
var
|
2326
|
+
var import_configs9 = require("@fuel-ts/address/configs");
|
2326
2327
|
var import_math10 = require("@fuel-ts/math");
|
2327
|
-
var
|
2328
|
+
var import_transactions9 = require("@fuel-ts/transactions");
|
2328
2329
|
var import_utils15 = require("@fuel-ts/utils");
|
2329
2330
|
|
2330
2331
|
// src/providers/transaction-request/scripts.ts
|
@@ -2362,7 +2363,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2362
2363
|
return new this(obj);
|
2363
2364
|
}
|
2364
2365
|
/** Type of the transaction */
|
2365
|
-
type =
|
2366
|
+
type = import_transactions9.TransactionType.Script;
|
2366
2367
|
/** Gas limit for transaction */
|
2367
2368
|
gasLimit;
|
2368
2369
|
/** Script to execute */
|
@@ -2375,7 +2376,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2375
2376
|
*
|
2376
2377
|
* @param scriptTransactionRequestLike - The initial values for the instance.
|
2377
2378
|
*/
|
2378
|
-
constructor({ script, scriptData, gasLimit, ...rest }
|
2379
|
+
constructor({ script, scriptData, gasLimit, ...rest }) {
|
2379
2380
|
super(rest);
|
2380
2381
|
this.gasLimit = (0, import_math10.bn)(gasLimit);
|
2381
2382
|
this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
|
@@ -2391,12 +2392,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2391
2392
|
const script = (0, import_utils15.arrayify)(this.script ?? "0x");
|
2392
2393
|
const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
|
2393
2394
|
return {
|
2394
|
-
type:
|
2395
|
+
type: import_transactions9.TransactionType.Script,
|
2395
2396
|
scriptGasLimit: this.gasLimit,
|
2396
2397
|
...super.getBaseTransaction(),
|
2397
2398
|
scriptLength: script.length,
|
2398
2399
|
scriptDataLength: scriptData.length,
|
2399
|
-
receiptsRoot:
|
2400
|
+
receiptsRoot: import_configs9.ZeroBytes32,
|
2400
2401
|
script: (0, import_utils15.hexlify)(script),
|
2401
2402
|
scriptData: (0, import_utils15.hexlify)(scriptData)
|
2402
2403
|
};
|
@@ -2408,7 +2409,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2408
2409
|
*/
|
2409
2410
|
getContractInputs() {
|
2410
2411
|
return this.inputs.filter(
|
2411
|
-
(input) => input.type ===
|
2412
|
+
(input) => input.type === import_transactions9.InputType.Contract
|
2412
2413
|
);
|
2413
2414
|
}
|
2414
2415
|
/**
|
@@ -2418,7 +2419,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2418
2419
|
*/
|
2419
2420
|
getContractOutputs() {
|
2420
2421
|
return this.outputs.filter(
|
2421
|
-
(output) => output.type ===
|
2422
|
+
(output) => output.type === import_transactions9.OutputType.Contract
|
2422
2423
|
);
|
2423
2424
|
}
|
2424
2425
|
/**
|
@@ -2428,7 +2429,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2428
2429
|
*/
|
2429
2430
|
getVariableOutputs() {
|
2430
2431
|
return this.outputs.filter(
|
2431
|
-
(output) => output.type ===
|
2432
|
+
(output) => output.type === import_transactions9.OutputType.Variable
|
2432
2433
|
);
|
2433
2434
|
}
|
2434
2435
|
/**
|
@@ -2451,7 +2452,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2451
2452
|
let outputsNumber = numberOfVariables;
|
2452
2453
|
while (outputsNumber) {
|
2453
2454
|
this.pushOutput({
|
2454
|
-
type:
|
2455
|
+
type: import_transactions9.OutputType.Variable
|
2455
2456
|
});
|
2456
2457
|
outputsNumber -= 1;
|
2457
2458
|
}
|
@@ -2484,12 +2485,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2484
2485
|
return this;
|
2485
2486
|
}
|
2486
2487
|
const inputIndex = super.pushInput({
|
2487
|
-
type:
|
2488
|
+
type: import_transactions9.InputType.Contract,
|
2488
2489
|
contractId: contractAddress.toB256(),
|
2489
2490
|
txPointer: "0x00000000000000000000000000000000"
|
2490
2491
|
});
|
2491
2492
|
this.pushOutput({
|
2492
|
-
type:
|
2493
|
+
type: import_transactions9.OutputType.Contract,
|
2493
2494
|
inputIndex
|
2494
2495
|
});
|
2495
2496
|
return this;
|
@@ -2526,17 +2527,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2526
2527
|
|
2527
2528
|
// src/providers/transaction-request/utils.ts
|
2528
2529
|
var import_errors9 = require("@fuel-ts/errors");
|
2529
|
-
var
|
2530
|
+
var import_transactions10 = require("@fuel-ts/transactions");
|
2530
2531
|
var transactionRequestify = (obj) => {
|
2531
2532
|
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
|
2532
2533
|
return obj;
|
2533
2534
|
}
|
2534
2535
|
const { type } = obj;
|
2535
2536
|
switch (obj.type) {
|
2536
|
-
case
|
2537
|
+
case import_transactions10.TransactionType.Script: {
|
2537
2538
|
return ScriptTransactionRequest.from(obj);
|
2538
2539
|
}
|
2539
|
-
case
|
2540
|
+
case import_transactions10.TransactionType.Create: {
|
2540
2541
|
return CreateTransactionRequest.from(obj);
|
2541
2542
|
}
|
2542
2543
|
default: {
|
@@ -2548,7 +2549,7 @@ var transactionRequestify = (obj) => {
|
|
2548
2549
|
// src/providers/transaction-response/transaction-response.ts
|
2549
2550
|
var import_errors13 = require("@fuel-ts/errors");
|
2550
2551
|
var import_math14 = require("@fuel-ts/math");
|
2551
|
-
var
|
2552
|
+
var import_transactions17 = require("@fuel-ts/transactions");
|
2552
2553
|
var import_utils21 = require("@fuel-ts/utils");
|
2553
2554
|
|
2554
2555
|
// src/providers/transaction-summary/assemble-transaction-summary.ts
|
@@ -2556,7 +2557,7 @@ var import_utils19 = require("@fuel-ts/utils");
|
|
2556
2557
|
|
2557
2558
|
// src/providers/transaction-summary/calculate-transaction-fee.ts
|
2558
2559
|
var import_math11 = require("@fuel-ts/math");
|
2559
|
-
var
|
2560
|
+
var import_transactions11 = require("@fuel-ts/transactions");
|
2560
2561
|
var import_utils16 = require("@fuel-ts/utils");
|
2561
2562
|
var calculateTransactionFee = (params) => {
|
2562
2563
|
const {
|
@@ -2567,8 +2568,8 @@ var calculateTransactionFee = (params) => {
|
|
2567
2568
|
const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
|
2568
2569
|
const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
|
2569
2570
|
const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
|
2570
|
-
const [transaction] = new
|
2571
|
-
if (transaction.type ===
|
2571
|
+
const [transaction] = new import_transactions11.TransactionCoder().decode(transactionBytes, 0);
|
2572
|
+
if (transaction.type === import_transactions11.TransactionType.Mint) {
|
2572
2573
|
return {
|
2573
2574
|
fee: (0, import_math11.bn)(0),
|
2574
2575
|
minFee: (0, import_math11.bn)(0),
|
@@ -2579,7 +2580,7 @@ var calculateTransactionFee = (params) => {
|
|
2579
2580
|
const { type, witnesses, inputs, policies } = transaction;
|
2580
2581
|
let metadataGas = (0, import_math11.bn)(0);
|
2581
2582
|
let gasLimit = (0, import_math11.bn)(0);
|
2582
|
-
if (type ===
|
2583
|
+
if (type === import_transactions11.TransactionType.Create) {
|
2583
2584
|
const { bytecodeWitnessIndex, storageSlots } = transaction;
|
2584
2585
|
const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
|
2585
2586
|
metadataGas = calculateMetadataGasForTxCreate({
|
@@ -2605,8 +2606,8 @@ var calculateTransactionFee = (params) => {
|
|
2605
2606
|
metadataGas,
|
2606
2607
|
txBytesSize: transactionBytes.length
|
2607
2608
|
});
|
2608
|
-
const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type ===
|
2609
|
-
const witnessLimit = policies.find((policy) => policy.type ===
|
2609
|
+
const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions11.PolicyType.GasPrice)?.data);
|
2610
|
+
const witnessLimit = policies.find((policy) => policy.type === import_transactions11.PolicyType.WitnessLimit)?.data;
|
2610
2611
|
const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
|
2611
2612
|
const maxGas = getMaxGas({
|
2612
2613
|
gasPerByte,
|
@@ -2628,10 +2629,10 @@ var calculateTransactionFee = (params) => {
|
|
2628
2629
|
};
|
2629
2630
|
|
2630
2631
|
// src/providers/transaction-summary/operations.ts
|
2631
|
-
var
|
2632
|
+
var import_configs10 = require("@fuel-ts/address/configs");
|
2632
2633
|
var import_errors11 = require("@fuel-ts/errors");
|
2633
2634
|
var import_math13 = require("@fuel-ts/math");
|
2634
|
-
var
|
2635
|
+
var import_transactions14 = require("@fuel-ts/transactions");
|
2635
2636
|
|
2636
2637
|
// src/providers/transaction-summary/call.ts
|
2637
2638
|
var import_abi_coder4 = require("@fuel-ts/abi-coder");
|
@@ -2679,7 +2680,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2679
2680
|
|
2680
2681
|
// src/providers/transaction-summary/input.ts
|
2681
2682
|
var import_errors10 = require("@fuel-ts/errors");
|
2682
|
-
var
|
2683
|
+
var import_transactions12 = require("@fuel-ts/transactions");
|
2683
2684
|
function getInputsByTypes(inputs, types) {
|
2684
2685
|
return inputs.filter((i) => types.includes(i.type));
|
2685
2686
|
}
|
@@ -2687,16 +2688,16 @@ function getInputsByType(inputs, type) {
|
|
2687
2688
|
return inputs.filter((i) => i.type === type);
|
2688
2689
|
}
|
2689
2690
|
function getInputsCoin(inputs) {
|
2690
|
-
return getInputsByType(inputs,
|
2691
|
+
return getInputsByType(inputs, import_transactions12.InputType.Coin);
|
2691
2692
|
}
|
2692
2693
|
function getInputsMessage(inputs) {
|
2693
|
-
return getInputsByType(inputs,
|
2694
|
+
return getInputsByType(inputs, import_transactions12.InputType.Message);
|
2694
2695
|
}
|
2695
2696
|
function getInputsCoinAndMessage(inputs) {
|
2696
|
-
return getInputsByTypes(inputs, [
|
2697
|
+
return getInputsByTypes(inputs, [import_transactions12.InputType.Coin, import_transactions12.InputType.Message]);
|
2697
2698
|
}
|
2698
2699
|
function getInputsContract(inputs) {
|
2699
|
-
return getInputsByType(inputs,
|
2700
|
+
return getInputsByType(inputs, import_transactions12.InputType.Contract);
|
2700
2701
|
}
|
2701
2702
|
function getInputFromAssetId(inputs, assetId) {
|
2702
2703
|
const coinInputs = getInputsCoin(inputs);
|
@@ -2715,7 +2716,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2715
2716
|
if (!contractInput) {
|
2716
2717
|
return void 0;
|
2717
2718
|
}
|
2718
|
-
if (contractInput.type !==
|
2719
|
+
if (contractInput.type !== import_transactions12.InputType.Contract) {
|
2719
2720
|
throw new import_errors10.FuelError(
|
2720
2721
|
import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
|
2721
2722
|
`Contract input should be of type 'contract'.`
|
@@ -2724,31 +2725,31 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2724
2725
|
return contractInput;
|
2725
2726
|
}
|
2726
2727
|
function getInputAccountAddress(input) {
|
2727
|
-
if (input.type ===
|
2728
|
+
if (input.type === import_transactions12.InputType.Coin) {
|
2728
2729
|
return input.owner.toString();
|
2729
2730
|
}
|
2730
|
-
if (input.type ===
|
2731
|
+
if (input.type === import_transactions12.InputType.Message) {
|
2731
2732
|
return input.recipient.toString();
|
2732
2733
|
}
|
2733
2734
|
return "";
|
2734
2735
|
}
|
2735
2736
|
|
2736
2737
|
// src/providers/transaction-summary/output.ts
|
2737
|
-
var
|
2738
|
+
var import_transactions13 = require("@fuel-ts/transactions");
|
2738
2739
|
function getOutputsByType(outputs, type) {
|
2739
2740
|
return outputs.filter((o) => o.type === type);
|
2740
2741
|
}
|
2741
2742
|
function getOutputsContractCreated(outputs) {
|
2742
|
-
return getOutputsByType(outputs,
|
2743
|
+
return getOutputsByType(outputs, import_transactions13.OutputType.ContractCreated);
|
2743
2744
|
}
|
2744
2745
|
function getOutputsCoin(outputs) {
|
2745
|
-
return getOutputsByType(outputs,
|
2746
|
+
return getOutputsByType(outputs, import_transactions13.OutputType.Coin);
|
2746
2747
|
}
|
2747
2748
|
function getOutputsChange(outputs) {
|
2748
|
-
return getOutputsByType(outputs,
|
2749
|
+
return getOutputsByType(outputs, import_transactions13.OutputType.Change);
|
2749
2750
|
}
|
2750
2751
|
function getOutputsContract(outputs) {
|
2751
|
-
return getOutputsByType(outputs,
|
2752
|
+
return getOutputsByType(outputs, import_transactions13.OutputType.Contract);
|
2752
2753
|
}
|
2753
2754
|
|
2754
2755
|
// src/providers/transaction-summary/operations.ts
|
@@ -2757,11 +2758,11 @@ function getReceiptsByType(receipts, type) {
|
|
2757
2758
|
}
|
2758
2759
|
function getTransactionTypeName(transactionType) {
|
2759
2760
|
switch (transactionType) {
|
2760
|
-
case
|
2761
|
+
case import_transactions14.TransactionType.Mint:
|
2761
2762
|
return "Mint" /* Mint */;
|
2762
|
-
case
|
2763
|
+
case import_transactions14.TransactionType.Create:
|
2763
2764
|
return "Create" /* Create */;
|
2764
|
-
case
|
2765
|
+
case import_transactions14.TransactionType.Script:
|
2765
2766
|
return "Script" /* Script */;
|
2766
2767
|
default:
|
2767
2768
|
throw new import_errors11.FuelError(
|
@@ -2784,10 +2785,10 @@ function isTypeScript(transactionType) {
|
|
2784
2785
|
return isType(transactionType, "Script" /* Script */);
|
2785
2786
|
}
|
2786
2787
|
function getReceiptsCall(receipts) {
|
2787
|
-
return getReceiptsByType(receipts,
|
2788
|
+
return getReceiptsByType(receipts, import_transactions14.ReceiptType.Call);
|
2788
2789
|
}
|
2789
2790
|
function getReceiptsMessageOut(receipts) {
|
2790
|
-
return getReceiptsByType(receipts,
|
2791
|
+
return getReceiptsByType(receipts, import_transactions14.ReceiptType.MessageOut);
|
2791
2792
|
}
|
2792
2793
|
var mergeAssets = (op1, op2) => {
|
2793
2794
|
const assets1 = op1.assetsSent || [];
|
@@ -2926,7 +2927,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
|
|
2926
2927
|
const { to: toAddress, assetId, amount } = receipt;
|
2927
2928
|
let { from: fromAddress } = receipt;
|
2928
2929
|
const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
|
2929
|
-
if (
|
2930
|
+
if (import_configs10.ZeroBytes32 === fromAddress) {
|
2930
2931
|
const change = changeOutputs.find((output) => output.assetId === assetId);
|
2931
2932
|
fromAddress = change?.to || fromAddress;
|
2932
2933
|
}
|
@@ -2983,11 +2984,11 @@ function getTransferOperations({
|
|
2983
2984
|
});
|
2984
2985
|
const transferReceipts = getReceiptsByType(
|
2985
2986
|
receipts,
|
2986
|
-
|
2987
|
+
import_transactions14.ReceiptType.Transfer
|
2987
2988
|
);
|
2988
2989
|
const transferOutReceipts = getReceiptsByType(
|
2989
2990
|
receipts,
|
2990
|
-
|
2991
|
+
import_transactions14.ReceiptType.TransferOut
|
2991
2992
|
);
|
2992
2993
|
[...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
|
2993
2994
|
const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
|
@@ -3072,17 +3073,17 @@ function getOperations({
|
|
3072
3073
|
}
|
3073
3074
|
|
3074
3075
|
// src/providers/transaction-summary/receipt.ts
|
3075
|
-
var
|
3076
|
+
var import_transactions15 = require("@fuel-ts/transactions");
|
3076
3077
|
var processGqlReceipt = (gqlReceipt) => {
|
3077
3078
|
const receipt = assembleReceiptByType(gqlReceipt);
|
3078
3079
|
switch (receipt.type) {
|
3079
|
-
case
|
3080
|
+
case import_transactions15.ReceiptType.ReturnData: {
|
3080
3081
|
return {
|
3081
3082
|
...receipt,
|
3082
3083
|
data: gqlReceipt.data || "0x"
|
3083
3084
|
};
|
3084
3085
|
}
|
3085
|
-
case
|
3086
|
+
case import_transactions15.ReceiptType.LogData: {
|
3086
3087
|
return {
|
3087
3088
|
...receipt,
|
3088
3089
|
data: gqlReceipt.data || "0x"
|
@@ -3095,7 +3096,7 @@ var processGqlReceipt = (gqlReceipt) => {
|
|
3095
3096
|
var extractMintedAssetsFromReceipts = (receipts) => {
|
3096
3097
|
const mintedAssets = [];
|
3097
3098
|
receipts.forEach((receipt) => {
|
3098
|
-
if (receipt.type ===
|
3099
|
+
if (receipt.type === import_transactions15.ReceiptType.Mint) {
|
3099
3100
|
mintedAssets.push({
|
3100
3101
|
subId: receipt.subId,
|
3101
3102
|
contractId: receipt.contractId,
|
@@ -3109,7 +3110,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
|
|
3109
3110
|
var extractBurnedAssetsFromReceipts = (receipts) => {
|
3110
3111
|
const burnedAssets = [];
|
3111
3112
|
receipts.forEach((receipt) => {
|
3112
|
-
if (receipt.type ===
|
3113
|
+
if (receipt.type === import_transactions15.ReceiptType.Burn) {
|
3113
3114
|
burnedAssets.push({
|
3114
3115
|
subId: receipt.subId,
|
3115
3116
|
contractId: receipt.contractId,
|
@@ -3248,12 +3249,12 @@ function assembleTransactionSummary(params) {
|
|
3248
3249
|
|
3249
3250
|
// src/providers/transaction-response/getDecodedLogs.ts
|
3250
3251
|
var import_abi_coder5 = require("@fuel-ts/abi-coder");
|
3251
|
-
var
|
3252
|
+
var import_transactions16 = require("@fuel-ts/transactions");
|
3252
3253
|
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3253
3254
|
return receipts.reduce((logs, receipt) => {
|
3254
|
-
if (receipt.type ===
|
3255
|
+
if (receipt.type === import_transactions16.ReceiptType.LogData || receipt.type === import_transactions16.ReceiptType.Log) {
|
3255
3256
|
const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
|
3256
|
-
const data = receipt.type ===
|
3257
|
+
const data = receipt.type === import_transactions16.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3257
3258
|
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3258
3259
|
logs.push(decodedLog);
|
3259
3260
|
}
|
@@ -3326,7 +3327,7 @@ var TransactionResponse = class {
|
|
3326
3327
|
* @returns The decoded transaction.
|
3327
3328
|
*/
|
3328
3329
|
decodeTransaction(transactionWithReceipts) {
|
3329
|
-
return new
|
3330
|
+
return new import_transactions17.TransactionCoder().decode(
|
3330
3331
|
(0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
|
3331
3332
|
0
|
3332
3333
|
)?.[0];
|
@@ -3503,6 +3504,7 @@ var processGqlChain = (chain) => {
|
|
3503
3504
|
gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
|
3504
3505
|
maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
|
3505
3506
|
chainId: (0, import_math15.bn)(consensusParameters.chainId),
|
3507
|
+
baseAssetId: consensusParameters.baseAssetId,
|
3506
3508
|
gasCosts
|
3507
3509
|
},
|
3508
3510
|
gasCosts,
|
@@ -3745,6 +3747,17 @@ var _Provider = class {
|
|
3745
3747
|
} = this.getChain();
|
3746
3748
|
return chainId.toNumber();
|
3747
3749
|
}
|
3750
|
+
/**
|
3751
|
+
* Returns the base asset ID
|
3752
|
+
*
|
3753
|
+
* @returns A promise that resolves to the base asset ID
|
3754
|
+
*/
|
3755
|
+
getBaseAssetId() {
|
3756
|
+
const {
|
3757
|
+
consensusParameters: { baseAssetId }
|
3758
|
+
} = this.getChain();
|
3759
|
+
return baseAssetId;
|
3760
|
+
}
|
3748
3761
|
/**
|
3749
3762
|
* Submits a transaction to the chain to be executed.
|
3750
3763
|
*
|
@@ -3763,7 +3776,7 @@ var _Provider = class {
|
|
3763
3776
|
}
|
3764
3777
|
const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
|
3765
3778
|
let abis;
|
3766
|
-
if (transactionRequest.type ===
|
3779
|
+
if (transactionRequest.type === import_transactions18.TransactionType.Script) {
|
3767
3780
|
abis = transactionRequest.abis;
|
3768
3781
|
}
|
3769
3782
|
if (awaitExecution) {
|
@@ -3859,7 +3872,7 @@ var _Provider = class {
|
|
3859
3872
|
* @returns A promise.
|
3860
3873
|
*/
|
3861
3874
|
async estimateTxDependencies(transactionRequest) {
|
3862
|
-
if (transactionRequest.type ===
|
3875
|
+
if (transactionRequest.type === import_transactions18.TransactionType.Create) {
|
3863
3876
|
return {
|
3864
3877
|
receipts: [],
|
3865
3878
|
outputVariables: 0,
|
@@ -3908,7 +3921,7 @@ var _Provider = class {
|
|
3908
3921
|
transactionRequest.gasPrice = gasPrice;
|
3909
3922
|
const minGas = transactionRequest.calculateMinGas(chainInfo);
|
3910
3923
|
const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
|
3911
|
-
if (transactionRequest.type ===
|
3924
|
+
if (transactionRequest.type === import_transactions18.TransactionType.Script) {
|
3912
3925
|
if (transactionRequest.gasLimit.eq(0)) {
|
3913
3926
|
transactionRequest.gasLimit = minGas;
|
3914
3927
|
transactionRequest.gasLimit = maxGasPerTx.sub(
|
@@ -3974,7 +3987,7 @@ var _Provider = class {
|
|
3974
3987
|
const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
|
3975
3988
|
const { minGasPrice } = this.getGasConfig();
|
3976
3989
|
const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
|
3977
|
-
const isScriptTransaction = txRequestClone.type ===
|
3990
|
+
const isScriptTransaction = txRequestClone.type === import_transactions18.TransactionType.Script;
|
3978
3991
|
const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
|
3979
3992
|
const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
|
3980
3993
|
txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
|
@@ -4190,7 +4203,7 @@ var _Provider = class {
|
|
4190
4203
|
time: block.header.time,
|
4191
4204
|
transactionIds: block.transactions.map((tx) => tx.id),
|
4192
4205
|
transactions: block.transactions.map(
|
4193
|
-
(tx) => new
|
4206
|
+
(tx) => new import_transactions18.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
|
4194
4207
|
)
|
4195
4208
|
};
|
4196
4209
|
}
|
@@ -4205,7 +4218,7 @@ var _Provider = class {
|
|
4205
4218
|
if (!transaction) {
|
4206
4219
|
return null;
|
4207
4220
|
}
|
4208
|
-
return new
|
4221
|
+
return new import_transactions18.TransactionCoder().decode(
|
4209
4222
|
(0, import_utils23.arrayify)(transaction.rawPayload),
|
4210
4223
|
0
|
4211
4224
|
)?.[0];
|
@@ -4285,7 +4298,7 @@ var _Provider = class {
|
|
4285
4298
|
});
|
4286
4299
|
const messages = result.messages.edges.map((edge) => edge.node);
|
4287
4300
|
return messages.map((message) => ({
|
4288
|
-
messageId:
|
4301
|
+
messageId: import_transactions18.InputMessageCoder.getMessageId({
|
4289
4302
|
sender: message.sender,
|
4290
4303
|
recipient: message.recipient,
|
4291
4304
|
nonce: message.nonce,
|
@@ -4296,7 +4309,7 @@ var _Provider = class {
|
|
4296
4309
|
recipient: import_address3.Address.fromAddressOrString(message.recipient),
|
4297
4310
|
nonce: message.nonce,
|
4298
4311
|
amount: (0, import_math15.bn)(message.amount),
|
4299
|
-
data:
|
4312
|
+
data: import_transactions18.InputMessageCoder.decodeData(message.data),
|
4300
4313
|
daHeight: (0, import_math15.bn)(message.daHeight)
|
4301
4314
|
}));
|
4302
4315
|
}
|
@@ -4424,7 +4437,7 @@ cacheInputs_fn = function(inputs) {
|
|
4424
4437
|
return;
|
4425
4438
|
}
|
4426
4439
|
inputs.forEach((input) => {
|
4427
|
-
if (input.type ===
|
4440
|
+
if (input.type === import_transactions18.InputType.Coin) {
|
4428
4441
|
this.cache?.set(input.id);
|
4429
4442
|
}
|
4430
4443
|
});
|
@@ -4435,7 +4448,7 @@ __publicField(Provider, "nodeInfoCache", {});
|
|
4435
4448
|
// src/providers/transaction-summary/get-transaction-summary.ts
|
4436
4449
|
var import_errors15 = require("@fuel-ts/errors");
|
4437
4450
|
var import_math16 = require("@fuel-ts/math");
|
4438
|
-
var
|
4451
|
+
var import_transactions19 = require("@fuel-ts/transactions");
|
4439
4452
|
var import_utils26 = require("@fuel-ts/utils");
|
4440
4453
|
|
4441
4454
|
// src/providers/chains.ts
|
@@ -4642,8 +4655,9 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4642
4655
|
* @param assetId - The asset ID to check the balance for.
|
4643
4656
|
* @returns A promise that resolves to the balance amount.
|
4644
4657
|
*/
|
4645
|
-
async getBalance(assetId
|
4646
|
-
const
|
4658
|
+
async getBalance(assetId) {
|
4659
|
+
const assetIdToFetch = assetId ?? this.provider.getBaseAssetId();
|
4660
|
+
const amount = await this.provider.getBalance(this.address, assetIdToFetch);
|
4647
4661
|
return amount;
|
4648
4662
|
}
|
4649
4663
|
/**
|
@@ -4681,9 +4695,10 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4681
4695
|
* @returns A promise that resolves when the resources are added to the transaction.
|
4682
4696
|
*/
|
4683
4697
|
async fund(request, coinQuantities, fee) {
|
4698
|
+
const baseAssetId = this.provider.getBaseAssetId();
|
4684
4699
|
const updatedQuantities = addAmountToAsset({
|
4685
4700
|
amount: (0, import_math18.bn)(fee),
|
4686
|
-
assetId:
|
4701
|
+
assetId: baseAssetId,
|
4687
4702
|
coinQuantities
|
4688
4703
|
});
|
4689
4704
|
const quantitiesDict = {};
|
@@ -4707,8 +4722,8 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4707
4722
|
quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
|
4708
4723
|
cachedUtxos.push(input.id);
|
4709
4724
|
}
|
4710
|
-
} else if (input.recipient === owner && input.amount && quantitiesDict[
|
4711
|
-
quantitiesDict[
|
4725
|
+
} else if (input.recipient === owner && input.amount && quantitiesDict[baseAssetId]) {
|
4726
|
+
quantitiesDict[baseAssetId].owned = quantitiesDict[baseAssetId].owned.add(input.amount);
|
4712
4727
|
cachedMessages.push(input.nonce);
|
4713
4728
|
}
|
4714
4729
|
}
|
@@ -4740,11 +4755,13 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4740
4755
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
4741
4756
|
* @returns A promise that resolves to the prepared transaction request.
|
4742
4757
|
*/
|
4743
|
-
async createTransfer(destination, amount, assetId
|
4758
|
+
async createTransfer(destination, amount, assetId, txParams = {}) {
|
4744
4759
|
const { minGasPrice } = this.provider.getGasConfig();
|
4745
|
-
const
|
4760
|
+
const baseAssetId = this.provider.getBaseAssetId();
|
4761
|
+
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
4762
|
+
const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
|
4746
4763
|
const request = new ScriptTransactionRequest(params);
|
4747
|
-
request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount,
|
4764
|
+
request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetIdToTransfer);
|
4748
4765
|
const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
|
4749
4766
|
estimateTxDependencies: true,
|
4750
4767
|
resourcesOwner: this
|
@@ -4770,14 +4787,15 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4770
4787
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
4771
4788
|
* @returns A promise that resolves to the transaction response.
|
4772
4789
|
*/
|
4773
|
-
async transfer(destination, amount, assetId
|
4790
|
+
async transfer(destination, amount, assetId, txParams = {}) {
|
4774
4791
|
if ((0, import_math18.bn)(amount).lte(0)) {
|
4775
4792
|
throw new import_errors16.FuelError(
|
4776
4793
|
import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
|
4777
4794
|
"Transfer amount must be a positive number."
|
4778
4795
|
);
|
4779
4796
|
}
|
4780
|
-
const
|
4797
|
+
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
4798
|
+
const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
|
4781
4799
|
return this.sendTransaction(request, { estimateTxDependencies: false });
|
4782
4800
|
}
|
4783
4801
|
/**
|
@@ -4789,7 +4807,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4789
4807
|
* @param txParams - The optional transaction parameters.
|
4790
4808
|
* @returns A promise that resolves to the transaction response.
|
4791
4809
|
*/
|
4792
|
-
async transferToContract(contractId, amount, assetId
|
4810
|
+
async transferToContract(contractId, amount, assetId, txParams = {}) {
|
4793
4811
|
if ((0, import_math18.bn)(amount).lte(0)) {
|
4794
4812
|
throw new import_errors16.FuelError(
|
4795
4813
|
import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
|
@@ -4798,11 +4816,13 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4798
4816
|
}
|
4799
4817
|
const contractAddress = import_address4.Address.fromAddressOrString(contractId);
|
4800
4818
|
const { minGasPrice } = this.provider.getGasConfig();
|
4801
|
-
const
|
4819
|
+
const baseAssetId = this.provider.getBaseAssetId();
|
4820
|
+
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
4821
|
+
const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
|
4802
4822
|
const { script, scriptData } = await assembleTransferToContractScript({
|
4803
4823
|
hexlifiedContractId: contractAddress.toB256(),
|
4804
4824
|
amountToTransfer: (0, import_math18.bn)(amount),
|
4805
|
-
assetId
|
4825
|
+
assetId: assetIdToTransfer
|
4806
4826
|
});
|
4807
4827
|
const request = new ScriptTransactionRequest({
|
4808
4828
|
...params,
|
@@ -4812,7 +4832,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4812
4832
|
request.addContractInputAndOutput(contractAddress);
|
4813
4833
|
const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
|
4814
4834
|
request,
|
4815
|
-
[{ amount: (0, import_math18.bn)(amount), assetId: String(
|
4835
|
+
[{ amount: (0, import_math18.bn)(amount), assetId: String(assetIdToTransfer) }]
|
4816
4836
|
);
|
4817
4837
|
request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
|
4818
4838
|
this.validateGas({
|
@@ -4834,6 +4854,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4834
4854
|
*/
|
4835
4855
|
async withdrawToBaseLayer(recipient, amount, txParams = {}) {
|
4836
4856
|
const { minGasPrice } = this.provider.getGasConfig();
|
4857
|
+
const baseAssetId = this.provider.getBaseAssetId();
|
4837
4858
|
const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
|
4838
4859
|
const recipientDataArray = (0, import_utils28.arrayify)(
|
4839
4860
|
"0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
|
@@ -4846,9 +4867,14 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
4846
4867
|
...recipientDataArray,
|
4847
4868
|
...amountDataArray
|
4848
4869
|
]);
|
4849
|
-
const params = {
|
4870
|
+
const params = {
|
4871
|
+
script,
|
4872
|
+
gasPrice: minGasPrice,
|
4873
|
+
baseAssetId,
|
4874
|
+
...txParams
|
4875
|
+
};
|
4850
4876
|
const request = new ScriptTransactionRequest(params);
|
4851
|
-
const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId:
|
4877
|
+
const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: baseAssetId }];
|
4852
4878
|
const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
|
4853
4879
|
request,
|
4854
4880
|
forwardingQuantities
|
@@ -7986,26 +8012,21 @@ __publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
|
|
7986
8012
|
|
7987
8013
|
// src/test-utils/seedTestWallet.ts
|
7988
8014
|
var import_crypto5 = require("@fuel-ts/crypto");
|
7989
|
-
var seedTestWallet = async (wallet, quantities
|
7990
|
-
const toFundAccounts = Array.isArray(wallet) ? wallet : [wallet];
|
8015
|
+
var seedTestWallet = async (wallet, quantities) => {
|
7991
8016
|
const genesisWallet = new WalletUnlocked(
|
7992
8017
|
process.env.GENESIS_SECRET || (0, import_crypto5.randomBytes)(32),
|
7993
|
-
|
8018
|
+
wallet.provider
|
7994
8019
|
);
|
7995
8020
|
const resources = await genesisWallet.getResourcesToSpend(quantities);
|
7996
8021
|
const { minGasPrice } = genesisWallet.provider.getGasConfig();
|
8022
|
+
const baseAssetId = genesisWallet.provider.getBaseAssetId();
|
7997
8023
|
const request = new ScriptTransactionRequest({
|
8024
|
+
baseAssetId,
|
7998
8025
|
gasLimit: 1e4,
|
7999
8026
|
gasPrice: minGasPrice
|
8000
8027
|
});
|
8001
8028
|
request.addResources(resources);
|
8002
|
-
quantities.map(coinQuantityfy).forEach(
|
8003
|
-
({ amount, assetId }) => toFundAccounts.forEach(({ address }) => {
|
8004
|
-
for (let i = 0; i < utxosAmount; i++) {
|
8005
|
-
request.addCoinOutput(address, amount.div(utxosAmount), assetId);
|
8006
|
-
}
|
8007
|
-
})
|
8008
|
-
);
|
8029
|
+
quantities.map(coinQuantityfy).forEach(({ amount, assetId }) => request.addCoinOutput(wallet.address, amount, assetId));
|
8009
8030
|
await genesisWallet.sendTransaction(request, { awaitExecution: true });
|
8010
8031
|
};
|
8011
8032
|
|
@@ -8019,7 +8040,7 @@ var generateTestWallet = async (provider, quantities) => {
|
|
8019
8040
|
};
|
8020
8041
|
|
8021
8042
|
// src/test-utils/launchNode.ts
|
8022
|
-
var
|
8043
|
+
var import_configs11 = require("@fuel-ts/address/configs");
|
8023
8044
|
var import_math21 = require("@fuel-ts/math");
|
8024
8045
|
var import_utils36 = require("@fuel-ts/utils");
|
8025
8046
|
var import_cli_utils = require("@fuel-ts/utils/cli-utils");
|
@@ -8119,7 +8140,7 @@ var launchNode = async ({
|
|
8119
8140
|
{
|
8120
8141
|
owner: signer.address.toHexString(),
|
8121
8142
|
amount: (0, import_math21.toHex)(1e9),
|
8122
|
-
asset_id:
|
8143
|
+
asset_id: import_utils36.defaultChainConfig?.consensus_parameters?.base_asset_id ?? import_configs11.ZeroBytes32
|
8123
8144
|
}
|
8124
8145
|
]
|
8125
8146
|
}
|
@@ -8185,9 +8206,10 @@ var launchNode = async ({
|
|
8185
8206
|
})
|
8186
8207
|
);
|
8187
8208
|
var generateWallets = async (count, provider) => {
|
8209
|
+
const baseAssetId = provider.getBaseAssetId();
|
8188
8210
|
const wallets = [];
|
8189
8211
|
for (let i = 0; i < count; i += 1) {
|
8190
|
-
const wallet = await generateTestWallet(provider, [[1e3,
|
8212
|
+
const wallet = await generateTestWallet(provider, [[1e3, baseAssetId]]);
|
8191
8213
|
wallets.push(wallet);
|
8192
8214
|
}
|
8193
8215
|
return wallets;
|
@@ -8204,45 +8226,8 @@ var launchNodeAndGetWallets = async ({
|
|
8204
8226
|
};
|
8205
8227
|
return { wallets, stop: cleanup, provider };
|
8206
8228
|
};
|
8207
|
-
|
8208
|
-
// src/test-utils/transactionRequest.ts
|
8209
|
-
var import_abi_coder7 = require("@fuel-ts/abi-coder");
|
8210
|
-
var import_address7 = require("@fuel-ts/address");
|
8211
|
-
var import_configs14 = require("@fuel-ts/address/configs");
|
8212
|
-
var import_crypto7 = require("@fuel-ts/crypto");
|
8213
|
-
var import_math22 = require("@fuel-ts/math");
|
8214
|
-
var import_transactions21 = require("@fuel-ts/transactions");
|
8215
|
-
var import_utils37 = require("@fuel-ts/utils");
|
8216
|
-
var generateFakeRequestInputCoin = (partial = {}) => ({
|
8217
|
-
id: (0, import_utils37.hexlify)((0, import_crypto7.randomBytes)(import_abi_coder7.UTXO_ID_LEN)),
|
8218
|
-
type: import_transactions21.InputType.Coin,
|
8219
|
-
owner: (0, import_address7.getRandomB256)(),
|
8220
|
-
amount: (0, import_math22.bn)(100),
|
8221
|
-
assetId: import_configs14.ZeroBytes32,
|
8222
|
-
txPointer: "0x00000000000000000000000000000000",
|
8223
|
-
witnessIndex: 0,
|
8224
|
-
...partial
|
8225
|
-
});
|
8226
|
-
var generateFakeRequestInputMessage = (partial = {}) => ({
|
8227
|
-
nonce: (0, import_address7.getRandomB256)(),
|
8228
|
-
type: import_transactions21.InputType.Message,
|
8229
|
-
sender: (0, import_address7.getRandomB256)(),
|
8230
|
-
recipient: (0, import_address7.getRandomB256)(),
|
8231
|
-
amount: (0, import_math22.bn)(100),
|
8232
|
-
witnessIndex: 0,
|
8233
|
-
...partial
|
8234
|
-
});
|
8235
|
-
var generateFakeRequestInputContract = (partial = {}) => ({
|
8236
|
-
contractId: (0, import_address7.getRandomB256)(),
|
8237
|
-
type: import_transactions21.InputType.Contract,
|
8238
|
-
txPointer: "0x00000000000000000000000000000000",
|
8239
|
-
...partial
|
8240
|
-
});
|
8241
8229
|
// Annotate the CommonJS export names for ESM import in node:
|
8242
8230
|
0 && (module.exports = {
|
8243
|
-
generateFakeRequestInputCoin,
|
8244
|
-
generateFakeRequestInputContract,
|
8245
|
-
generateFakeRequestInputMessage,
|
8246
8231
|
generateTestWallet,
|
8247
8232
|
killNode,
|
8248
8233
|
launchNode,
|