@fuel-ts/account 0.0.0-rc-1976-20240417161625 → 0.0.0-rc-2037-20240417202046
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 +124 -100
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +280 -241
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +159 -126
- package/dist/index.mjs.map +1 -1
- package/dist/predicate/predicate.d.ts +11 -2
- 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 +2 -1
- package/dist/providers/coin.d.ts.map +1 -1
- package/dist/providers/message.d.ts +1 -0
- package/dist/providers/message.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/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/helpers.d.ts +10 -0
- package/dist/providers/transaction-request/helpers.d.ts.map +1 -0
- package/dist/providers/transaction-request/index.d.ts +1 -0
- 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 +6 -25
- package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
- package/dist/test-utils/index.d.ts +1 -0
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/launchNode.d.ts.map +1 -1
- package/dist/test-utils/resources.d.ts +4 -0
- package/dist/test-utils/resources.d.ts.map +1 -0
- package/dist/test-utils/seedTestWallet.d.ts +1 -1
- package/dist/test-utils/seedTestWallet.d.ts.map +1 -1
- package/dist/test-utils/transactionRequest.d.ts +5 -0
- package/dist/test-utils/transactionRequest.d.ts.map +1 -0
- package/dist/test-utils.global.js +104 -105
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +253 -238
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +141 -129
- 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/index.js
CHANGED
@@ -88,7 +88,7 @@ __export(src_exports, {
|
|
88
88
|
StorageAbstract: () => StorageAbstract,
|
89
89
|
TransactionResponse: () => TransactionResponse,
|
90
90
|
TransactionStatus: () => TransactionStatus,
|
91
|
-
TransactionType: () =>
|
91
|
+
TransactionType: () => import_transactions7.TransactionType,
|
92
92
|
TransactionTypeName: () => TransactionTypeName,
|
93
93
|
Vault: () => Vault,
|
94
94
|
Wallet: () => Wallet,
|
@@ -104,6 +104,7 @@ __export(src_exports, {
|
|
104
104
|
assets: () => assets,
|
105
105
|
buildBlockExplorerUrl: () => buildBlockExplorerUrl,
|
106
106
|
cacheFor: () => cacheFor,
|
107
|
+
cacheResources: () => cacheResources,
|
107
108
|
calculateMetadataGasForTxCreate: () => calculateMetadataGasForTxCreate,
|
108
109
|
calculateMetadataGasForTxScript: () => calculateMetadataGasForTxScript,
|
109
110
|
calculatePriceWithFactor: () => calculatePriceWithFactor,
|
@@ -150,6 +151,7 @@ __export(src_exports, {
|
|
150
151
|
getReceiptsMessageOut: () => getReceiptsMessageOut,
|
151
152
|
getReceiptsTransferOut: () => getReceiptsTransferOut,
|
152
153
|
getReceiptsWithMissingData: () => getReceiptsWithMissingData,
|
154
|
+
getRequestInputResourceOwner: () => getRequestInputResourceOwner,
|
153
155
|
getTransactionStatusName: () => getTransactionStatusName,
|
154
156
|
getTransactionSummary: () => getTransactionSummary,
|
155
157
|
getTransactionSummaryFromRequest: () => getTransactionSummaryFromRequest,
|
@@ -163,6 +165,10 @@ __export(src_exports, {
|
|
163
165
|
isMessage: () => isMessage,
|
164
166
|
isRawCoin: () => isRawCoin,
|
165
167
|
isRawMessage: () => isRawMessage,
|
168
|
+
isRequestInputCoin: () => isRequestInputCoin,
|
169
|
+
isRequestInputMessage: () => isRequestInputMessage,
|
170
|
+
isRequestInputResource: () => isRequestInputResource,
|
171
|
+
isRequestInputResourceFromOwner: () => isRequestInputResourceFromOwner,
|
166
172
|
isType: () => isType,
|
167
173
|
isTypeCreate: () => isTypeCreate,
|
168
174
|
isTypeMint: () => isTypeMint,
|
@@ -184,12 +190,14 @@ module.exports = __toCommonJS(src_exports);
|
|
184
190
|
|
185
191
|
// src/account.ts
|
186
192
|
var import_address4 = require("@fuel-ts/address");
|
193
|
+
var import_configs12 = require("@fuel-ts/address/configs");
|
187
194
|
var import_errors16 = require("@fuel-ts/errors");
|
188
195
|
var import_interfaces = require("@fuel-ts/interfaces");
|
189
196
|
var import_math18 = require("@fuel-ts/math");
|
190
197
|
var import_utils28 = require("@fuel-ts/utils");
|
191
198
|
|
192
199
|
// src/providers/coin-quantity.ts
|
200
|
+
var import_configs = require("@fuel-ts/address/configs");
|
193
201
|
var import_math = require("@fuel-ts/math");
|
194
202
|
var import_utils = require("@fuel-ts/utils");
|
195
203
|
var coinQuantityfy = (coinQuantityLike) => {
|
@@ -198,11 +206,11 @@ var coinQuantityfy = (coinQuantityLike) => {
|
|
198
206
|
let max2;
|
199
207
|
if (Array.isArray(coinQuantityLike)) {
|
200
208
|
amount = coinQuantityLike[0];
|
201
|
-
assetId = coinQuantityLike[1];
|
202
|
-
max2 = coinQuantityLike[2];
|
209
|
+
assetId = coinQuantityLike[1] ?? import_configs.BaseAssetId;
|
210
|
+
max2 = coinQuantityLike[2] ?? void 0;
|
203
211
|
} else {
|
204
212
|
amount = coinQuantityLike.amount;
|
205
|
-
assetId = coinQuantityLike.assetId;
|
213
|
+
assetId = coinQuantityLike.assetId ?? import_configs.BaseAssetId;
|
206
214
|
max2 = coinQuantityLike.max ?? void 0;
|
207
215
|
}
|
208
216
|
const bnAmount = (0, import_math.bn)(amount);
|
@@ -228,7 +236,7 @@ var addAmountToAsset = (params) => {
|
|
228
236
|
var import_address3 = require("@fuel-ts/address");
|
229
237
|
var import_errors14 = require("@fuel-ts/errors");
|
230
238
|
var import_math15 = require("@fuel-ts/math");
|
231
|
-
var
|
239
|
+
var import_transactions19 = require("@fuel-ts/transactions");
|
232
240
|
var import_utils23 = require("@fuel-ts/utils");
|
233
241
|
var import_versions = require("@fuel-ts/versions");
|
234
242
|
var import_utils24 = require("@noble/curves/abstract/utils");
|
@@ -1181,7 +1189,7 @@ var MemoryCache = class {
|
|
1181
1189
|
|
1182
1190
|
// src/providers/transaction-request/input.ts
|
1183
1191
|
var import_abi_coder = require("@fuel-ts/abi-coder");
|
1184
|
-
var
|
1192
|
+
var import_configs2 = require("@fuel-ts/address/configs");
|
1185
1193
|
var import_errors3 = require("@fuel-ts/errors");
|
1186
1194
|
var import_math2 = require("@fuel-ts/math");
|
1187
1195
|
var import_transactions = require("@fuel-ts/transactions");
|
@@ -1215,10 +1223,10 @@ var inputify = (value) => {
|
|
1215
1223
|
case import_transactions.InputType.Contract: {
|
1216
1224
|
return {
|
1217
1225
|
type: import_transactions.InputType.Contract,
|
1218
|
-
txID:
|
1226
|
+
txID: import_configs2.ZeroBytes32,
|
1219
1227
|
outputIndex: 0,
|
1220
|
-
balanceRoot:
|
1221
|
-
stateRoot:
|
1228
|
+
balanceRoot: import_configs2.ZeroBytes32,
|
1229
|
+
stateRoot: import_configs2.ZeroBytes32,
|
1222
1230
|
txPointer: {
|
1223
1231
|
blockHeight: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(0, 8)),
|
1224
1232
|
txIndex: (0, import_math2.toNumber)((0, import_utils3.arrayify)(value.txPointer).slice(8, 16))
|
@@ -1256,7 +1264,7 @@ var inputify = (value) => {
|
|
1256
1264
|
};
|
1257
1265
|
|
1258
1266
|
// src/providers/transaction-request/output.ts
|
1259
|
-
var
|
1267
|
+
var import_configs3 = require("@fuel-ts/address/configs");
|
1260
1268
|
var import_errors4 = require("@fuel-ts/errors");
|
1261
1269
|
var import_math3 = require("@fuel-ts/math");
|
1262
1270
|
var import_transactions2 = require("@fuel-ts/transactions");
|
@@ -1276,8 +1284,8 @@ var outputify = (value) => {
|
|
1276
1284
|
return {
|
1277
1285
|
type: import_transactions2.OutputType.Contract,
|
1278
1286
|
inputIndex: value.inputIndex,
|
1279
|
-
balanceRoot:
|
1280
|
-
stateRoot:
|
1287
|
+
balanceRoot: import_configs3.ZeroBytes32,
|
1288
|
+
stateRoot: import_configs3.ZeroBytes32
|
1281
1289
|
};
|
1282
1290
|
}
|
1283
1291
|
case import_transactions2.OutputType.Change: {
|
@@ -1291,9 +1299,9 @@ var outputify = (value) => {
|
|
1291
1299
|
case import_transactions2.OutputType.Variable: {
|
1292
1300
|
return {
|
1293
1301
|
type: import_transactions2.OutputType.Variable,
|
1294
|
-
to:
|
1302
|
+
to: import_configs3.ZeroBytes32,
|
1295
1303
|
amount: (0, import_math3.bn)(0),
|
1296
|
-
assetId:
|
1304
|
+
assetId: import_configs3.ZeroBytes32
|
1297
1305
|
};
|
1298
1306
|
}
|
1299
1307
|
case import_transactions2.OutputType.ContractCreated: {
|
@@ -1315,10 +1323,10 @@ var outputify = (value) => {
|
|
1315
1323
|
// src/providers/transaction-request/transaction-request.ts
|
1316
1324
|
var import_abi_coder2 = require("@fuel-ts/abi-coder");
|
1317
1325
|
var import_address = require("@fuel-ts/address");
|
1318
|
-
var
|
1326
|
+
var import_configs7 = require("@fuel-ts/address/configs");
|
1319
1327
|
var import_crypto = require("@fuel-ts/crypto");
|
1320
1328
|
var import_math7 = require("@fuel-ts/math");
|
1321
|
-
var
|
1329
|
+
var import_transactions7 = require("@fuel-ts/transactions");
|
1322
1330
|
var import_utils9 = require("@fuel-ts/utils");
|
1323
1331
|
|
1324
1332
|
// src/providers/resource.ts
|
@@ -1328,13 +1336,13 @@ var isCoin = (resource) => "id" in resource;
|
|
1328
1336
|
var isMessage = (resource) => "recipient" in resource;
|
1329
1337
|
|
1330
1338
|
// src/providers/utils/receipts.ts
|
1331
|
-
var
|
1339
|
+
var import_configs4 = require("@fuel-ts/address/configs");
|
1332
1340
|
var import_errors5 = require("@fuel-ts/errors");
|
1333
1341
|
var import_math4 = require("@fuel-ts/math");
|
1334
1342
|
var import_transactions3 = require("@fuel-ts/transactions");
|
1335
|
-
var
|
1343
|
+
var import_configs5 = require("@fuel-ts/transactions/configs");
|
1336
1344
|
var import_utils5 = require("@fuel-ts/utils");
|
1337
|
-
var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") ===
|
1345
|
+
var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === import_transactions3.ReceiptType.Revert && receipt.val.toString("hex") === import_configs5.FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
|
1338
1346
|
var doesReceiptHaveMissingContractId = (receipt) => receipt.type === import_transactions3.ReceiptType.Panic && receipt.contractId !== "0x0000000000000000000000000000000000000000000000000000000000000000";
|
1339
1347
|
var getReceiptsWithMissingData = (receipts) => receipts.reduce(
|
1340
1348
|
(memo, receipt) => {
|
@@ -1351,7 +1359,7 @@ var getReceiptsWithMissingData = (receipts) => receipts.reduce(
|
|
1351
1359
|
missingOutputContractIds: []
|
1352
1360
|
}
|
1353
1361
|
);
|
1354
|
-
var hexOrZero = (hex) => hex ||
|
1362
|
+
var hexOrZero = (hex) => hex || import_configs4.ZeroBytes32;
|
1355
1363
|
function assembleReceiptByType(receipt) {
|
1356
1364
|
const { receiptType } = receipt;
|
1357
1365
|
switch (receiptType) {
|
@@ -1715,16 +1723,16 @@ function sleep(time) {
|
|
1715
1723
|
var import_errors7 = require("@fuel-ts/errors");
|
1716
1724
|
var import_math6 = require("@fuel-ts/math");
|
1717
1725
|
var import_transactions5 = require("@fuel-ts/transactions");
|
1718
|
-
var
|
1726
|
+
var import_configs6 = require("@fuel-ts/transactions/configs");
|
1719
1727
|
var assemblePanicError = (status) => {
|
1720
1728
|
let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
|
1721
1729
|
const reason = status.reason;
|
1722
|
-
if (
|
1730
|
+
if (import_configs6.PANIC_REASONS.includes(status.reason)) {
|
1723
1731
|
errorMessage = `${errorMessage}
|
1724
1732
|
|
1725
1733
|
You can read more about this error at:
|
1726
1734
|
|
1727
|
-
${
|
1735
|
+
${import_configs6.PANIC_DOC_URL}#variant.${status.reason}`;
|
1728
1736
|
}
|
1729
1737
|
return { errorMessage, reason };
|
1730
1738
|
};
|
@@ -1736,28 +1744,28 @@ var assembleRevertError = (receipts, logs) => {
|
|
1736
1744
|
if (revertReceipt) {
|
1737
1745
|
const reasonHex = (0, import_math6.bn)(revertReceipt.val).toHex();
|
1738
1746
|
switch (reasonHex) {
|
1739
|
-
case
|
1747
|
+
case import_configs6.FAILED_REQUIRE_SIGNAL: {
|
1740
1748
|
reason = "require";
|
1741
1749
|
errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify(logs[0]) : "an error."}.`;
|
1742
1750
|
break;
|
1743
1751
|
}
|
1744
|
-
case
|
1752
|
+
case import_configs6.FAILED_ASSERT_EQ_SIGNAL: {
|
1745
1753
|
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1746
1754
|
reason = "assert_eq";
|
1747
1755
|
errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
|
1748
1756
|
break;
|
1749
1757
|
}
|
1750
|
-
case
|
1758
|
+
case import_configs6.FAILED_ASSERT_NE_SIGNAL: {
|
1751
1759
|
const sufix = logs.length >= 2 ? ` comparing ${stringify(logs[1])} and ${stringify(logs[0])}.` : ".";
|
1752
1760
|
reason = "assert_ne";
|
1753
1761
|
errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
|
1754
1762
|
break;
|
1755
1763
|
}
|
1756
|
-
case
|
1764
|
+
case import_configs6.FAILED_ASSERT_SIGNAL:
|
1757
1765
|
reason = "assert";
|
1758
1766
|
errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
|
1759
1767
|
break;
|
1760
|
-
case
|
1768
|
+
case import_configs6.FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
|
1761
1769
|
reason = "MissingOutputChange";
|
1762
1770
|
errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
|
1763
1771
|
break;
|
@@ -1805,6 +1813,33 @@ var NoWitnessByOwnerError = class extends Error {
|
|
1805
1813
|
name = "NoWitnessByOwnerError";
|
1806
1814
|
};
|
1807
1815
|
|
1816
|
+
// src/providers/transaction-request/helpers.ts
|
1817
|
+
var import_transactions6 = require("@fuel-ts/transactions");
|
1818
|
+
var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
|
1819
|
+
var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
|
1820
|
+
var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
|
1821
|
+
var getRequestInputResourceOwner = (input) => {
|
1822
|
+
if (isRequestInputCoin(input)) {
|
1823
|
+
return input.owner;
|
1824
|
+
}
|
1825
|
+
return input.recipient;
|
1826
|
+
};
|
1827
|
+
var isRequestInputResourceFromOwner = (input, owner) => getRequestInputResourceOwner(input) === owner.toB256();
|
1828
|
+
var cacheResources = (resources) => resources.reduce(
|
1829
|
+
(cache2, resource) => {
|
1830
|
+
if (isCoin(resource)) {
|
1831
|
+
cache2.utxos.push(resource.id);
|
1832
|
+
} else {
|
1833
|
+
cache2.messages.push(resource.nonce);
|
1834
|
+
}
|
1835
|
+
return cache2;
|
1836
|
+
},
|
1837
|
+
{
|
1838
|
+
utxos: [],
|
1839
|
+
messages: []
|
1840
|
+
}
|
1841
|
+
);
|
1842
|
+
|
1808
1843
|
// src/providers/transaction-request/witness.ts
|
1809
1844
|
var import_utils8 = require("@fuel-ts/utils");
|
1810
1845
|
var witnessify = (value) => {
|
@@ -1831,8 +1866,6 @@ var BaseTransactionRequest = class {
|
|
1831
1866
|
outputs = [];
|
1832
1867
|
/** List of witnesses */
|
1833
1868
|
witnesses = [];
|
1834
|
-
/** Base asset ID - should be fetched from the chain */
|
1835
|
-
baseAssetId;
|
1836
1869
|
/**
|
1837
1870
|
* Constructor for initializing a base transaction request.
|
1838
1871
|
*
|
@@ -1845,9 +1878,8 @@ var BaseTransactionRequest = class {
|
|
1845
1878
|
witnessLimit,
|
1846
1879
|
inputs,
|
1847
1880
|
outputs,
|
1848
|
-
witnesses
|
1849
|
-
|
1850
|
-
}) {
|
1881
|
+
witnesses
|
1882
|
+
} = {}) {
|
1851
1883
|
this.gasPrice = (0, import_math7.bn)(gasPrice);
|
1852
1884
|
this.maturity = maturity ?? 0;
|
1853
1885
|
this.witnessLimit = witnessLimit ? (0, import_math7.bn)(witnessLimit) : void 0;
|
@@ -1855,26 +1887,25 @@ var BaseTransactionRequest = class {
|
|
1855
1887
|
this.inputs = inputs ?? [];
|
1856
1888
|
this.outputs = outputs ?? [];
|
1857
1889
|
this.witnesses = witnesses ?? [];
|
1858
|
-
this.baseAssetId = baseAssetId;
|
1859
1890
|
}
|
1860
1891
|
static getPolicyMeta(req) {
|
1861
1892
|
let policyTypes = 0;
|
1862
1893
|
const policies = [];
|
1863
1894
|
if (req.gasPrice) {
|
1864
|
-
policyTypes +=
|
1865
|
-
policies.push({ data: req.gasPrice, type:
|
1895
|
+
policyTypes += import_transactions7.PolicyType.GasPrice;
|
1896
|
+
policies.push({ data: req.gasPrice, type: import_transactions7.PolicyType.GasPrice });
|
1866
1897
|
}
|
1867
1898
|
if (req.witnessLimit) {
|
1868
|
-
policyTypes +=
|
1869
|
-
policies.push({ data: req.witnessLimit, type:
|
1899
|
+
policyTypes += import_transactions7.PolicyType.WitnessLimit;
|
1900
|
+
policies.push({ data: req.witnessLimit, type: import_transactions7.PolicyType.WitnessLimit });
|
1870
1901
|
}
|
1871
1902
|
if (req.maturity > 0) {
|
1872
|
-
policyTypes +=
|
1873
|
-
policies.push({ data: req.maturity, type:
|
1903
|
+
policyTypes += import_transactions7.PolicyType.Maturity;
|
1904
|
+
policies.push({ data: req.maturity, type: import_transactions7.PolicyType.Maturity });
|
1874
1905
|
}
|
1875
1906
|
if (req.maxFee) {
|
1876
|
-
policyTypes +=
|
1877
|
-
policies.push({ data: req.maxFee, type:
|
1907
|
+
policyTypes += import_transactions7.PolicyType.MaxFee;
|
1908
|
+
policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
|
1878
1909
|
}
|
1879
1910
|
return {
|
1880
1911
|
policyTypes,
|
@@ -1908,7 +1939,7 @@ var BaseTransactionRequest = class {
|
|
1908
1939
|
* @returns The transaction bytes.
|
1909
1940
|
*/
|
1910
1941
|
toTransactionBytes() {
|
1911
|
-
return new
|
1942
|
+
return new import_transactions7.TransactionCoder().encode(this.toTransaction());
|
1912
1943
|
}
|
1913
1944
|
/**
|
1914
1945
|
* @hidden
|
@@ -1948,7 +1979,7 @@ var BaseTransactionRequest = class {
|
|
1948
1979
|
* @returns The index of the created witness.
|
1949
1980
|
*/
|
1950
1981
|
addEmptyWitness() {
|
1951
|
-
this.addWitness((0, import_utils9.concat)([
|
1982
|
+
this.addWitness((0, import_utils9.concat)([import_configs7.ZeroBytes32, import_configs7.ZeroBytes32]));
|
1952
1983
|
return this.witnesses.length - 1;
|
1953
1984
|
}
|
1954
1985
|
/**
|
@@ -1999,7 +2030,7 @@ var BaseTransactionRequest = class {
|
|
1999
2030
|
*/
|
2000
2031
|
getCoinInputs() {
|
2001
2032
|
return this.inputs.filter(
|
2002
|
-
(input) => input.type ===
|
2033
|
+
(input) => input.type === import_transactions7.InputType.Coin
|
2003
2034
|
);
|
2004
2035
|
}
|
2005
2036
|
/**
|
@@ -2009,7 +2040,7 @@ var BaseTransactionRequest = class {
|
|
2009
2040
|
*/
|
2010
2041
|
getCoinOutputs() {
|
2011
2042
|
return this.outputs.filter(
|
2012
|
-
(output) => output.type ===
|
2043
|
+
(output) => output.type === import_transactions7.OutputType.Coin
|
2013
2044
|
);
|
2014
2045
|
}
|
2015
2046
|
/**
|
@@ -2019,7 +2050,7 @@ var BaseTransactionRequest = class {
|
|
2019
2050
|
*/
|
2020
2051
|
getChangeOutputs() {
|
2021
2052
|
return this.outputs.filter(
|
2022
|
-
(output) => output.type ===
|
2053
|
+
(output) => output.type === import_transactions7.OutputType.Change
|
2023
2054
|
);
|
2024
2055
|
}
|
2025
2056
|
/**
|
@@ -2031,9 +2062,9 @@ var BaseTransactionRequest = class {
|
|
2031
2062
|
const ownerAddress = (0, import_address.addressify)(owner);
|
2032
2063
|
const found = this.inputs.find((input) => {
|
2033
2064
|
switch (input.type) {
|
2034
|
-
case
|
2065
|
+
case import_transactions7.InputType.Coin:
|
2035
2066
|
return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
|
2036
|
-
case
|
2067
|
+
case import_transactions7.InputType.Message:
|
2037
2068
|
return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
|
2038
2069
|
default:
|
2039
2070
|
return false;
|
@@ -2049,8 +2080,8 @@ var BaseTransactionRequest = class {
|
|
2049
2080
|
* @param predicate - Predicate bytes.
|
2050
2081
|
* @param predicateData - Predicate data bytes.
|
2051
2082
|
*/
|
2052
|
-
addCoinInput(coin
|
2053
|
-
const { assetId, owner, amount } = coin;
|
2083
|
+
addCoinInput(coin) {
|
2084
|
+
const { assetId, owner, amount, id, predicate } = coin;
|
2054
2085
|
let witnessIndex;
|
2055
2086
|
if (predicate) {
|
2056
2087
|
witnessIndex = 0;
|
@@ -2061,14 +2092,14 @@ var BaseTransactionRequest = class {
|
|
2061
2092
|
}
|
2062
2093
|
}
|
2063
2094
|
const input = {
|
2064
|
-
|
2065
|
-
type:
|
2095
|
+
id,
|
2096
|
+
type: import_transactions7.InputType.Coin,
|
2066
2097
|
owner: owner.toB256(),
|
2067
2098
|
amount,
|
2068
2099
|
assetId,
|
2069
2100
|
txPointer: "0x00000000000000000000000000000000",
|
2070
2101
|
witnessIndex,
|
2071
|
-
predicate
|
2102
|
+
predicate
|
2072
2103
|
};
|
2073
2104
|
this.pushInput(input);
|
2074
2105
|
this.addChangeOutput(owner, assetId);
|
@@ -2079,9 +2110,11 @@ var BaseTransactionRequest = class {
|
|
2079
2110
|
*
|
2080
2111
|
* @param message - Message resource.
|
2081
2112
|
* @param predicate - Predicate bytes.
|
2113
|
+
* @param predicateData - Predicate data bytes.
|
2082
2114
|
*/
|
2083
|
-
addMessageInput(message
|
2084
|
-
const { recipient, sender, amount } = message;
|
2115
|
+
addMessageInput(message) {
|
2116
|
+
const { recipient, sender, amount, predicate, nonce } = message;
|
2117
|
+
const assetId = import_configs7.BaseAssetId;
|
2085
2118
|
let witnessIndex;
|
2086
2119
|
if (predicate) {
|
2087
2120
|
witnessIndex = 0;
|
@@ -2092,16 +2125,16 @@ var BaseTransactionRequest = class {
|
|
2092
2125
|
}
|
2093
2126
|
}
|
2094
2127
|
const input = {
|
2095
|
-
|
2096
|
-
type:
|
2128
|
+
nonce,
|
2129
|
+
type: import_transactions7.InputType.Message,
|
2097
2130
|
sender: sender.toB256(),
|
2098
2131
|
recipient: recipient.toB256(),
|
2099
2132
|
amount,
|
2100
2133
|
witnessIndex,
|
2101
|
-
predicate
|
2134
|
+
predicate
|
2102
2135
|
};
|
2103
2136
|
this.pushInput(input);
|
2104
|
-
this.addChangeOutput(recipient,
|
2137
|
+
this.addChangeOutput(recipient, assetId);
|
2105
2138
|
}
|
2106
2139
|
/**
|
2107
2140
|
* Adds a single resource to the transaction by adding a coin/message input and a
|
@@ -2129,32 +2162,6 @@ var BaseTransactionRequest = class {
|
|
2129
2162
|
resources.forEach((resource) => this.addResource(resource));
|
2130
2163
|
return this;
|
2131
2164
|
}
|
2132
|
-
/**
|
2133
|
-
* Adds multiple resources to the transaction by adding coin/message inputs and change
|
2134
|
-
* outputs from the related assetIds.
|
2135
|
-
*
|
2136
|
-
* @param resources - The resources to add.
|
2137
|
-
* @returns This transaction.
|
2138
|
-
*/
|
2139
|
-
addPredicateResource(resource, predicate) {
|
2140
|
-
if (isCoin(resource)) {
|
2141
|
-
this.addCoinInput(resource, predicate);
|
2142
|
-
} else {
|
2143
|
-
this.addMessageInput(resource, predicate);
|
2144
|
-
}
|
2145
|
-
return this;
|
2146
|
-
}
|
2147
|
-
/**
|
2148
|
-
* Adds multiple predicate coin/message inputs to the transaction and change outputs
|
2149
|
-
* from the related assetIds.
|
2150
|
-
*
|
2151
|
-
* @param resources - The resources to add.
|
2152
|
-
* @returns This transaction.
|
2153
|
-
*/
|
2154
|
-
addPredicateResources(resources, predicate) {
|
2155
|
-
resources.forEach((resource) => this.addPredicateResource(resource, predicate));
|
2156
|
-
return this;
|
2157
|
-
}
|
2158
2165
|
/**
|
2159
2166
|
* Adds a coin output to the transaction.
|
2160
2167
|
*
|
@@ -2162,12 +2169,12 @@ var BaseTransactionRequest = class {
|
|
2162
2169
|
* @param amount - Amount of coin.
|
2163
2170
|
* @param assetId - Asset ID of coin.
|
2164
2171
|
*/
|
2165
|
-
addCoinOutput(to, amount, assetId) {
|
2172
|
+
addCoinOutput(to, amount, assetId = import_configs7.BaseAssetId) {
|
2166
2173
|
this.pushOutput({
|
2167
|
-
type:
|
2174
|
+
type: import_transactions7.OutputType.Coin,
|
2168
2175
|
to: (0, import_address.addressify)(to).toB256(),
|
2169
2176
|
amount,
|
2170
|
-
assetId
|
2177
|
+
assetId
|
2171
2178
|
});
|
2172
2179
|
return this;
|
2173
2180
|
}
|
@@ -2180,7 +2187,7 @@ var BaseTransactionRequest = class {
|
|
2180
2187
|
addCoinOutputs(to, quantities) {
|
2181
2188
|
quantities.map(coinQuantityfy).forEach((quantity) => {
|
2182
2189
|
this.pushOutput({
|
2183
|
-
type:
|
2190
|
+
type: import_transactions7.OutputType.Coin,
|
2184
2191
|
to: (0, import_address.addressify)(to).toB256(),
|
2185
2192
|
amount: quantity.amount,
|
2186
2193
|
assetId: quantity.assetId
|
@@ -2194,15 +2201,15 @@ var BaseTransactionRequest = class {
|
|
2194
2201
|
* @param to - Address of the owner.
|
2195
2202
|
* @param assetId - Asset ID of coin.
|
2196
2203
|
*/
|
2197
|
-
addChangeOutput(to, assetId) {
|
2204
|
+
addChangeOutput(to, assetId = import_configs7.BaseAssetId) {
|
2198
2205
|
const changeOutput = this.getChangeOutputs().find(
|
2199
2206
|
(output) => (0, import_utils9.hexlify)(output.assetId) === assetId
|
2200
2207
|
);
|
2201
2208
|
if (!changeOutput) {
|
2202
2209
|
this.pushOutput({
|
2203
|
-
type:
|
2210
|
+
type: import_transactions7.OutputType.Change,
|
2204
2211
|
to: (0, import_address.addressify)(to).toB256(),
|
2205
|
-
assetId
|
2212
|
+
assetId
|
2206
2213
|
});
|
2207
2214
|
}
|
2208
2215
|
}
|
@@ -2278,7 +2285,7 @@ var BaseTransactionRequest = class {
|
|
2278
2285
|
]);
|
2279
2286
|
}
|
2280
2287
|
};
|
2281
|
-
updateAssetInput(
|
2288
|
+
updateAssetInput(import_configs7.BaseAssetId, (0, import_math7.bn)(1e11));
|
2282
2289
|
quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
|
2283
2290
|
}
|
2284
2291
|
/**
|
@@ -2303,16 +2310,20 @@ var BaseTransactionRequest = class {
|
|
2303
2310
|
toJSON() {
|
2304
2311
|
return normalizeJSON(this);
|
2305
2312
|
}
|
2313
|
+
removeWitness(index) {
|
2314
|
+
this.witnesses.splice(index, 1);
|
2315
|
+
this.adjustWitnessIndexes(index);
|
2316
|
+
}
|
2306
2317
|
updatePredicateInputs(inputs) {
|
2307
2318
|
this.inputs.forEach((i) => {
|
2308
2319
|
let correspondingInput;
|
2309
2320
|
switch (i.type) {
|
2310
|
-
case
|
2311
|
-
correspondingInput = inputs.find((x) => x.type ===
|
2321
|
+
case import_transactions7.InputType.Coin:
|
2322
|
+
correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
|
2312
2323
|
break;
|
2313
|
-
case
|
2324
|
+
case import_transactions7.InputType.Message:
|
2314
2325
|
correspondingInput = inputs.find(
|
2315
|
-
(x) => x.type ===
|
2326
|
+
(x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
|
2316
2327
|
);
|
2317
2328
|
break;
|
2318
2329
|
default:
|
@@ -2325,30 +2336,37 @@ var BaseTransactionRequest = class {
|
|
2325
2336
|
}
|
2326
2337
|
});
|
2327
2338
|
}
|
2339
|
+
adjustWitnessIndexes(removedIndex) {
|
2340
|
+
this.inputs.filter(isRequestInputResource).forEach((input) => {
|
2341
|
+
if (input.witnessIndex > removedIndex) {
|
2342
|
+
input.witnessIndex -= 1;
|
2343
|
+
}
|
2344
|
+
});
|
2345
|
+
}
|
2328
2346
|
};
|
2329
2347
|
|
2330
2348
|
// src/providers/transaction-request/create-transaction-request.ts
|
2331
|
-
var
|
2349
|
+
var import_configs9 = require("@fuel-ts/address/configs");
|
2332
2350
|
var import_math9 = require("@fuel-ts/math");
|
2333
|
-
var
|
2351
|
+
var import_transactions9 = require("@fuel-ts/transactions");
|
2334
2352
|
var import_utils13 = require("@fuel-ts/utils");
|
2335
2353
|
|
2336
2354
|
// src/providers/transaction-request/hash-transaction.ts
|
2337
|
-
var
|
2355
|
+
var import_configs8 = require("@fuel-ts/address/configs");
|
2338
2356
|
var import_hasher = require("@fuel-ts/hasher");
|
2339
2357
|
var import_math8 = require("@fuel-ts/math");
|
2340
|
-
var
|
2358
|
+
var import_transactions8 = require("@fuel-ts/transactions");
|
2341
2359
|
var import_utils11 = require("@fuel-ts/utils");
|
2342
2360
|
var import_ramda2 = require("ramda");
|
2343
2361
|
function hashTransaction(transactionRequest, chainId) {
|
2344
2362
|
const transaction = transactionRequest.toTransaction();
|
2345
|
-
if (transaction.type ===
|
2346
|
-
transaction.receiptsRoot =
|
2363
|
+
if (transaction.type === import_transactions8.TransactionType.Script) {
|
2364
|
+
transaction.receiptsRoot = import_configs8.ZeroBytes32;
|
2347
2365
|
}
|
2348
2366
|
transaction.inputs = transaction.inputs.map((input) => {
|
2349
2367
|
const inputClone = (0, import_ramda2.clone)(input);
|
2350
2368
|
switch (inputClone.type) {
|
2351
|
-
case
|
2369
|
+
case import_transactions8.InputType.Coin: {
|
2352
2370
|
inputClone.txPointer = {
|
2353
2371
|
blockHeight: 0,
|
2354
2372
|
txIndex: 0
|
@@ -2356,19 +2374,19 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2356
2374
|
inputClone.predicateGasUsed = (0, import_math8.bn)(0);
|
2357
2375
|
return inputClone;
|
2358
2376
|
}
|
2359
|
-
case
|
2377
|
+
case import_transactions8.InputType.Message: {
|
2360
2378
|
inputClone.predicateGasUsed = (0, import_math8.bn)(0);
|
2361
2379
|
return inputClone;
|
2362
2380
|
}
|
2363
|
-
case
|
2381
|
+
case import_transactions8.InputType.Contract: {
|
2364
2382
|
inputClone.txPointer = {
|
2365
2383
|
blockHeight: 0,
|
2366
2384
|
txIndex: 0
|
2367
2385
|
};
|
2368
|
-
inputClone.txID =
|
2386
|
+
inputClone.txID = import_configs8.ZeroBytes32;
|
2369
2387
|
inputClone.outputIndex = 0;
|
2370
|
-
inputClone.balanceRoot =
|
2371
|
-
inputClone.stateRoot =
|
2388
|
+
inputClone.balanceRoot = import_configs8.ZeroBytes32;
|
2389
|
+
inputClone.stateRoot = import_configs8.ZeroBytes32;
|
2372
2390
|
return inputClone;
|
2373
2391
|
}
|
2374
2392
|
default:
|
@@ -2378,19 +2396,19 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2378
2396
|
transaction.outputs = transaction.outputs.map((output) => {
|
2379
2397
|
const outputClone = (0, import_ramda2.clone)(output);
|
2380
2398
|
switch (outputClone.type) {
|
2381
|
-
case
|
2382
|
-
outputClone.balanceRoot =
|
2383
|
-
outputClone.stateRoot =
|
2399
|
+
case import_transactions8.OutputType.Contract: {
|
2400
|
+
outputClone.balanceRoot = import_configs8.ZeroBytes32;
|
2401
|
+
outputClone.stateRoot = import_configs8.ZeroBytes32;
|
2384
2402
|
return outputClone;
|
2385
2403
|
}
|
2386
|
-
case
|
2404
|
+
case import_transactions8.OutputType.Change: {
|
2387
2405
|
outputClone.amount = (0, import_math8.bn)(0);
|
2388
2406
|
return outputClone;
|
2389
2407
|
}
|
2390
|
-
case
|
2391
|
-
outputClone.to =
|
2408
|
+
case import_transactions8.OutputType.Variable: {
|
2409
|
+
outputClone.to = import_configs8.ZeroBytes32;
|
2392
2410
|
outputClone.amount = (0, import_math8.bn)(0);
|
2393
|
-
outputClone.assetId =
|
2411
|
+
outputClone.assetId = import_configs8.ZeroBytes32;
|
2394
2412
|
return outputClone;
|
2395
2413
|
}
|
2396
2414
|
default:
|
@@ -2400,7 +2418,7 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2400
2418
|
transaction.witnessesCount = 0;
|
2401
2419
|
transaction.witnesses = [];
|
2402
2420
|
const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
|
2403
|
-
const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new
|
2421
|
+
const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
|
2404
2422
|
return (0, import_hasher.sha256)(concatenatedData);
|
2405
2423
|
}
|
2406
2424
|
|
@@ -2436,7 +2454,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2436
2454
|
return new this(obj);
|
2437
2455
|
}
|
2438
2456
|
/** Type of the transaction */
|
2439
|
-
type =
|
2457
|
+
type = import_transactions9.TransactionType.Create;
|
2440
2458
|
/** Witness index of contract bytecode to create */
|
2441
2459
|
bytecodeWitnessIndex;
|
2442
2460
|
/** Salt */
|
@@ -2448,10 +2466,15 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2448
2466
|
*
|
2449
2467
|
* @param createTransactionRequestLike - The initial values for the instance
|
2450
2468
|
*/
|
2451
|
-
constructor({
|
2469
|
+
constructor({
|
2470
|
+
bytecodeWitnessIndex,
|
2471
|
+
salt,
|
2472
|
+
storageSlots,
|
2473
|
+
...rest
|
2474
|
+
} = {}) {
|
2452
2475
|
super(rest);
|
2453
2476
|
this.bytecodeWitnessIndex = bytecodeWitnessIndex ?? 0;
|
2454
|
-
this.salt = (0, import_utils13.hexlify)(salt ??
|
2477
|
+
this.salt = (0, import_utils13.hexlify)(salt ?? import_configs9.ZeroBytes32);
|
2455
2478
|
this.storageSlots = [...storageSlots ?? []];
|
2456
2479
|
}
|
2457
2480
|
/**
|
@@ -2464,12 +2487,12 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2464
2487
|
const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
|
2465
2488
|
const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
|
2466
2489
|
return {
|
2467
|
-
type:
|
2490
|
+
type: import_transactions9.TransactionType.Create,
|
2468
2491
|
...baseTransaction,
|
2469
2492
|
bytecodeLength: baseTransaction.witnesses[bytecodeWitnessIndex].dataLength / 4,
|
2470
2493
|
bytecodeWitnessIndex,
|
2471
2494
|
storageSlotsCount: storageSlots.length,
|
2472
|
-
salt: this.salt ? (0, import_utils13.hexlify)(this.salt) :
|
2495
|
+
salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs9.ZeroBytes32,
|
2473
2496
|
storageSlots
|
2474
2497
|
};
|
2475
2498
|
}
|
@@ -2480,7 +2503,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2480
2503
|
*/
|
2481
2504
|
getContractCreatedOutputs() {
|
2482
2505
|
return this.outputs.filter(
|
2483
|
-
(output) => output.type ===
|
2506
|
+
(output) => output.type === import_transactions9.OutputType.ContractCreated
|
2484
2507
|
);
|
2485
2508
|
}
|
2486
2509
|
/**
|
@@ -2501,7 +2524,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2501
2524
|
*/
|
2502
2525
|
addContractCreatedOutput(contractId, stateRoot) {
|
2503
2526
|
this.pushOutput({
|
2504
|
-
type:
|
2527
|
+
type: import_transactions9.OutputType.ContractCreated,
|
2505
2528
|
contractId,
|
2506
2529
|
stateRoot
|
2507
2530
|
});
|
@@ -2519,9 +2542,9 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2519
2542
|
// src/providers/transaction-request/script-transaction-request.ts
|
2520
2543
|
var import_abi_coder3 = require("@fuel-ts/abi-coder");
|
2521
2544
|
var import_address2 = require("@fuel-ts/address");
|
2522
|
-
var
|
2545
|
+
var import_configs10 = require("@fuel-ts/address/configs");
|
2523
2546
|
var import_math10 = require("@fuel-ts/math");
|
2524
|
-
var
|
2547
|
+
var import_transactions10 = require("@fuel-ts/transactions");
|
2525
2548
|
var import_utils15 = require("@fuel-ts/utils");
|
2526
2549
|
|
2527
2550
|
// src/providers/transaction-request/scripts.ts
|
@@ -2559,7 +2582,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2559
2582
|
return new this(obj);
|
2560
2583
|
}
|
2561
2584
|
/** Type of the transaction */
|
2562
|
-
type =
|
2585
|
+
type = import_transactions10.TransactionType.Script;
|
2563
2586
|
/** Gas limit for transaction */
|
2564
2587
|
gasLimit;
|
2565
2588
|
/** Script to execute */
|
@@ -2572,7 +2595,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2572
2595
|
*
|
2573
2596
|
* @param scriptTransactionRequestLike - The initial values for the instance.
|
2574
2597
|
*/
|
2575
|
-
constructor({ script, scriptData, gasLimit, ...rest }) {
|
2598
|
+
constructor({ script, scriptData, gasLimit, ...rest } = {}) {
|
2576
2599
|
super(rest);
|
2577
2600
|
this.gasLimit = (0, import_math10.bn)(gasLimit);
|
2578
2601
|
this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
|
@@ -2588,12 +2611,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2588
2611
|
const script = (0, import_utils15.arrayify)(this.script ?? "0x");
|
2589
2612
|
const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
|
2590
2613
|
return {
|
2591
|
-
type:
|
2614
|
+
type: import_transactions10.TransactionType.Script,
|
2592
2615
|
scriptGasLimit: this.gasLimit,
|
2593
2616
|
...super.getBaseTransaction(),
|
2594
2617
|
scriptLength: script.length,
|
2595
2618
|
scriptDataLength: scriptData.length,
|
2596
|
-
receiptsRoot:
|
2619
|
+
receiptsRoot: import_configs10.ZeroBytes32,
|
2597
2620
|
script: (0, import_utils15.hexlify)(script),
|
2598
2621
|
scriptData: (0, import_utils15.hexlify)(scriptData)
|
2599
2622
|
};
|
@@ -2605,7 +2628,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2605
2628
|
*/
|
2606
2629
|
getContractInputs() {
|
2607
2630
|
return this.inputs.filter(
|
2608
|
-
(input) => input.type ===
|
2631
|
+
(input) => input.type === import_transactions10.InputType.Contract
|
2609
2632
|
);
|
2610
2633
|
}
|
2611
2634
|
/**
|
@@ -2615,7 +2638,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2615
2638
|
*/
|
2616
2639
|
getContractOutputs() {
|
2617
2640
|
return this.outputs.filter(
|
2618
|
-
(output) => output.type ===
|
2641
|
+
(output) => output.type === import_transactions10.OutputType.Contract
|
2619
2642
|
);
|
2620
2643
|
}
|
2621
2644
|
/**
|
@@ -2625,7 +2648,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2625
2648
|
*/
|
2626
2649
|
getVariableOutputs() {
|
2627
2650
|
return this.outputs.filter(
|
2628
|
-
(output) => output.type ===
|
2651
|
+
(output) => output.type === import_transactions10.OutputType.Variable
|
2629
2652
|
);
|
2630
2653
|
}
|
2631
2654
|
/**
|
@@ -2648,7 +2671,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2648
2671
|
let outputsNumber = numberOfVariables;
|
2649
2672
|
while (outputsNumber) {
|
2650
2673
|
this.pushOutput({
|
2651
|
-
type:
|
2674
|
+
type: import_transactions10.OutputType.Variable
|
2652
2675
|
});
|
2653
2676
|
outputsNumber -= 1;
|
2654
2677
|
}
|
@@ -2681,12 +2704,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2681
2704
|
return this;
|
2682
2705
|
}
|
2683
2706
|
const inputIndex = super.pushInput({
|
2684
|
-
type:
|
2707
|
+
type: import_transactions10.InputType.Contract,
|
2685
2708
|
contractId: contractAddress.toB256(),
|
2686
2709
|
txPointer: "0x00000000000000000000000000000000"
|
2687
2710
|
});
|
2688
2711
|
this.pushOutput({
|
2689
|
-
type:
|
2712
|
+
type: import_transactions10.OutputType.Contract,
|
2690
2713
|
inputIndex
|
2691
2714
|
});
|
2692
2715
|
return this;
|
@@ -2723,17 +2746,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2723
2746
|
|
2724
2747
|
// src/providers/transaction-request/utils.ts
|
2725
2748
|
var import_errors9 = require("@fuel-ts/errors");
|
2726
|
-
var
|
2749
|
+
var import_transactions11 = require("@fuel-ts/transactions");
|
2727
2750
|
var transactionRequestify = (obj) => {
|
2728
2751
|
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
|
2729
2752
|
return obj;
|
2730
2753
|
}
|
2731
2754
|
const { type } = obj;
|
2732
2755
|
switch (obj.type) {
|
2733
|
-
case
|
2756
|
+
case import_transactions11.TransactionType.Script: {
|
2734
2757
|
return ScriptTransactionRequest.from(obj);
|
2735
2758
|
}
|
2736
|
-
case
|
2759
|
+
case import_transactions11.TransactionType.Create: {
|
2737
2760
|
return CreateTransactionRequest.from(obj);
|
2738
2761
|
}
|
2739
2762
|
default: {
|
@@ -2745,7 +2768,7 @@ var transactionRequestify = (obj) => {
|
|
2745
2768
|
// src/providers/transaction-response/transaction-response.ts
|
2746
2769
|
var import_errors13 = require("@fuel-ts/errors");
|
2747
2770
|
var import_math14 = require("@fuel-ts/math");
|
2748
|
-
var
|
2771
|
+
var import_transactions18 = require("@fuel-ts/transactions");
|
2749
2772
|
var import_utils21 = require("@fuel-ts/utils");
|
2750
2773
|
|
2751
2774
|
// src/providers/transaction-summary/assemble-transaction-summary.ts
|
@@ -2753,7 +2776,7 @@ var import_utils19 = require("@fuel-ts/utils");
|
|
2753
2776
|
|
2754
2777
|
// src/providers/transaction-summary/calculate-transaction-fee.ts
|
2755
2778
|
var import_math11 = require("@fuel-ts/math");
|
2756
|
-
var
|
2779
|
+
var import_transactions12 = require("@fuel-ts/transactions");
|
2757
2780
|
var import_utils16 = require("@fuel-ts/utils");
|
2758
2781
|
var calculateTransactionFee = (params) => {
|
2759
2782
|
const {
|
@@ -2764,8 +2787,8 @@ var calculateTransactionFee = (params) => {
|
|
2764
2787
|
const gasPerByte = (0, import_math11.bn)(feeParams.gasPerByte);
|
2765
2788
|
const gasPriceFactor = (0, import_math11.bn)(feeParams.gasPriceFactor);
|
2766
2789
|
const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
|
2767
|
-
const [transaction] = new
|
2768
|
-
if (transaction.type ===
|
2790
|
+
const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
|
2791
|
+
if (transaction.type === import_transactions12.TransactionType.Mint) {
|
2769
2792
|
return {
|
2770
2793
|
fee: (0, import_math11.bn)(0),
|
2771
2794
|
minFee: (0, import_math11.bn)(0),
|
@@ -2776,7 +2799,7 @@ var calculateTransactionFee = (params) => {
|
|
2776
2799
|
const { type, witnesses, inputs, policies } = transaction;
|
2777
2800
|
let metadataGas = (0, import_math11.bn)(0);
|
2778
2801
|
let gasLimit = (0, import_math11.bn)(0);
|
2779
|
-
if (type ===
|
2802
|
+
if (type === import_transactions12.TransactionType.Create) {
|
2780
2803
|
const { bytecodeWitnessIndex, storageSlots } = transaction;
|
2781
2804
|
const contractBytesSize = (0, import_math11.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
|
2782
2805
|
metadataGas = calculateMetadataGasForTxCreate({
|
@@ -2802,8 +2825,8 @@ var calculateTransactionFee = (params) => {
|
|
2802
2825
|
metadataGas,
|
2803
2826
|
txBytesSize: transactionBytes.length
|
2804
2827
|
});
|
2805
|
-
const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type ===
|
2806
|
-
const witnessLimit = policies.find((policy) => policy.type ===
|
2828
|
+
const gasPrice = (0, import_math11.bn)(policies.find((policy) => policy.type === import_transactions12.PolicyType.GasPrice)?.data);
|
2829
|
+
const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
|
2807
2830
|
const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
|
2808
2831
|
const maxGas = getMaxGas({
|
2809
2832
|
gasPerByte,
|
@@ -2825,10 +2848,10 @@ var calculateTransactionFee = (params) => {
|
|
2825
2848
|
};
|
2826
2849
|
|
2827
2850
|
// src/providers/transaction-summary/operations.ts
|
2828
|
-
var
|
2851
|
+
var import_configs11 = require("@fuel-ts/address/configs");
|
2829
2852
|
var import_errors11 = require("@fuel-ts/errors");
|
2830
2853
|
var import_math13 = require("@fuel-ts/math");
|
2831
|
-
var
|
2854
|
+
var import_transactions15 = require("@fuel-ts/transactions");
|
2832
2855
|
|
2833
2856
|
// src/providers/transaction-summary/call.ts
|
2834
2857
|
var import_abi_coder4 = require("@fuel-ts/abi-coder");
|
@@ -2876,7 +2899,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2876
2899
|
|
2877
2900
|
// src/providers/transaction-summary/input.ts
|
2878
2901
|
var import_errors10 = require("@fuel-ts/errors");
|
2879
|
-
var
|
2902
|
+
var import_transactions13 = require("@fuel-ts/transactions");
|
2880
2903
|
function getInputsByTypes(inputs, types) {
|
2881
2904
|
return inputs.filter((i) => types.includes(i.type));
|
2882
2905
|
}
|
@@ -2884,16 +2907,16 @@ function getInputsByType(inputs, type) {
|
|
2884
2907
|
return inputs.filter((i) => i.type === type);
|
2885
2908
|
}
|
2886
2909
|
function getInputsCoin(inputs) {
|
2887
|
-
return getInputsByType(inputs,
|
2910
|
+
return getInputsByType(inputs, import_transactions13.InputType.Coin);
|
2888
2911
|
}
|
2889
2912
|
function getInputsMessage(inputs) {
|
2890
|
-
return getInputsByType(inputs,
|
2913
|
+
return getInputsByType(inputs, import_transactions13.InputType.Message);
|
2891
2914
|
}
|
2892
2915
|
function getInputsCoinAndMessage(inputs) {
|
2893
|
-
return getInputsByTypes(inputs, [
|
2916
|
+
return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
|
2894
2917
|
}
|
2895
2918
|
function getInputsContract(inputs) {
|
2896
|
-
return getInputsByType(inputs,
|
2919
|
+
return getInputsByType(inputs, import_transactions13.InputType.Contract);
|
2897
2920
|
}
|
2898
2921
|
function getInputFromAssetId(inputs, assetId) {
|
2899
2922
|
const coinInputs = getInputsCoin(inputs);
|
@@ -2912,7 +2935,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2912
2935
|
if (!contractInput) {
|
2913
2936
|
return void 0;
|
2914
2937
|
}
|
2915
|
-
if (contractInput.type !==
|
2938
|
+
if (contractInput.type !== import_transactions13.InputType.Contract) {
|
2916
2939
|
throw new import_errors10.FuelError(
|
2917
2940
|
import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
|
2918
2941
|
`Contract input should be of type 'contract'.`
|
@@ -2921,34 +2944,34 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2921
2944
|
return contractInput;
|
2922
2945
|
}
|
2923
2946
|
function getInputAccountAddress(input) {
|
2924
|
-
if (input.type ===
|
2947
|
+
if (input.type === import_transactions13.InputType.Coin) {
|
2925
2948
|
return input.owner.toString();
|
2926
2949
|
}
|
2927
|
-
if (input.type ===
|
2950
|
+
if (input.type === import_transactions13.InputType.Message) {
|
2928
2951
|
return input.recipient.toString();
|
2929
2952
|
}
|
2930
2953
|
return "";
|
2931
2954
|
}
|
2932
2955
|
|
2933
2956
|
// src/providers/transaction-summary/output.ts
|
2934
|
-
var
|
2957
|
+
var import_transactions14 = require("@fuel-ts/transactions");
|
2935
2958
|
function getOutputsByType(outputs, type) {
|
2936
2959
|
return outputs.filter((o) => o.type === type);
|
2937
2960
|
}
|
2938
2961
|
function getOutputsContractCreated(outputs) {
|
2939
|
-
return getOutputsByType(outputs,
|
2962
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
|
2940
2963
|
}
|
2941
2964
|
function getOutputsCoin(outputs) {
|
2942
|
-
return getOutputsByType(outputs,
|
2965
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
|
2943
2966
|
}
|
2944
2967
|
function getOutputsChange(outputs) {
|
2945
|
-
return getOutputsByType(outputs,
|
2968
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.Change);
|
2946
2969
|
}
|
2947
2970
|
function getOutputsContract(outputs) {
|
2948
|
-
return getOutputsByType(outputs,
|
2971
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
|
2949
2972
|
}
|
2950
2973
|
function getOutputsVariable(outputs) {
|
2951
|
-
return getOutputsByType(outputs,
|
2974
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.Variable);
|
2952
2975
|
}
|
2953
2976
|
|
2954
2977
|
// src/providers/transaction-summary/types.ts
|
@@ -2995,11 +3018,11 @@ function getReceiptsByType(receipts, type) {
|
|
2995
3018
|
}
|
2996
3019
|
function getTransactionTypeName(transactionType) {
|
2997
3020
|
switch (transactionType) {
|
2998
|
-
case
|
3021
|
+
case import_transactions15.TransactionType.Mint:
|
2999
3022
|
return "Mint" /* Mint */;
|
3000
|
-
case
|
3023
|
+
case import_transactions15.TransactionType.Create:
|
3001
3024
|
return "Create" /* Create */;
|
3002
|
-
case
|
3025
|
+
case import_transactions15.TransactionType.Script:
|
3003
3026
|
return "Script" /* Script */;
|
3004
3027
|
default:
|
3005
3028
|
throw new import_errors11.FuelError(
|
@@ -3025,10 +3048,10 @@ function hasSameAssetId(a) {
|
|
3025
3048
|
return (b) => a.assetId === b.assetId;
|
3026
3049
|
}
|
3027
3050
|
function getReceiptsCall(receipts) {
|
3028
|
-
return getReceiptsByType(receipts,
|
3051
|
+
return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
|
3029
3052
|
}
|
3030
3053
|
function getReceiptsMessageOut(receipts) {
|
3031
|
-
return getReceiptsByType(receipts,
|
3054
|
+
return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
|
3032
3055
|
}
|
3033
3056
|
var mergeAssets = (op1, op2) => {
|
3034
3057
|
const assets1 = op1.assetsSent || [];
|
@@ -3067,7 +3090,7 @@ function addOperation(operations, toAdd) {
|
|
3067
3090
|
return allOperations;
|
3068
3091
|
}
|
3069
3092
|
function getReceiptsTransferOut(receipts) {
|
3070
|
-
return getReceiptsByType(receipts,
|
3093
|
+
return getReceiptsByType(receipts, import_transactions15.ReceiptType.TransferOut);
|
3071
3094
|
}
|
3072
3095
|
function getWithdrawFromFuelOperations({
|
3073
3096
|
inputs,
|
@@ -3170,7 +3193,7 @@ function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutp
|
|
3170
3193
|
const { to: toAddress, assetId, amount } = receipt;
|
3171
3194
|
let { from: fromAddress } = receipt;
|
3172
3195
|
const toType = contractInputs.some((input) => input.contractID === toAddress) ? 0 /* contract */ : 1 /* account */;
|
3173
|
-
if (
|
3196
|
+
if (import_configs11.ZeroBytes32 === fromAddress) {
|
3174
3197
|
const change = changeOutputs.find((output) => output.assetId === assetId);
|
3175
3198
|
fromAddress = change?.to || fromAddress;
|
3176
3199
|
}
|
@@ -3227,11 +3250,11 @@ function getTransferOperations({
|
|
3227
3250
|
});
|
3228
3251
|
const transferReceipts = getReceiptsByType(
|
3229
3252
|
receipts,
|
3230
|
-
|
3253
|
+
import_transactions15.ReceiptType.Transfer
|
3231
3254
|
);
|
3232
3255
|
const transferOutReceipts = getReceiptsByType(
|
3233
3256
|
receipts,
|
3234
|
-
|
3257
|
+
import_transactions15.ReceiptType.TransferOut
|
3235
3258
|
);
|
3236
3259
|
[...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
|
3237
3260
|
const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
|
@@ -3316,17 +3339,17 @@ function getOperations({
|
|
3316
3339
|
}
|
3317
3340
|
|
3318
3341
|
// src/providers/transaction-summary/receipt.ts
|
3319
|
-
var
|
3342
|
+
var import_transactions16 = require("@fuel-ts/transactions");
|
3320
3343
|
var processGqlReceipt = (gqlReceipt) => {
|
3321
3344
|
const receipt = assembleReceiptByType(gqlReceipt);
|
3322
3345
|
switch (receipt.type) {
|
3323
|
-
case
|
3346
|
+
case import_transactions16.ReceiptType.ReturnData: {
|
3324
3347
|
return {
|
3325
3348
|
...receipt,
|
3326
3349
|
data: gqlReceipt.data || "0x"
|
3327
3350
|
};
|
3328
3351
|
}
|
3329
|
-
case
|
3352
|
+
case import_transactions16.ReceiptType.LogData: {
|
3330
3353
|
return {
|
3331
3354
|
...receipt,
|
3332
3355
|
data: gqlReceipt.data || "0x"
|
@@ -3339,7 +3362,7 @@ var processGqlReceipt = (gqlReceipt) => {
|
|
3339
3362
|
var extractMintedAssetsFromReceipts = (receipts) => {
|
3340
3363
|
const mintedAssets = [];
|
3341
3364
|
receipts.forEach((receipt) => {
|
3342
|
-
if (receipt.type ===
|
3365
|
+
if (receipt.type === import_transactions16.ReceiptType.Mint) {
|
3343
3366
|
mintedAssets.push({
|
3344
3367
|
subId: receipt.subId,
|
3345
3368
|
contractId: receipt.contractId,
|
@@ -3353,7 +3376,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
|
|
3353
3376
|
var extractBurnedAssetsFromReceipts = (receipts) => {
|
3354
3377
|
const burnedAssets = [];
|
3355
3378
|
receipts.forEach((receipt) => {
|
3356
|
-
if (receipt.type ===
|
3379
|
+
if (receipt.type === import_transactions16.ReceiptType.Burn) {
|
3357
3380
|
burnedAssets.push({
|
3358
3381
|
subId: receipt.subId,
|
3359
3382
|
contractId: receipt.contractId,
|
@@ -3492,12 +3515,12 @@ function assembleTransactionSummary(params) {
|
|
3492
3515
|
|
3493
3516
|
// src/providers/transaction-response/getDecodedLogs.ts
|
3494
3517
|
var import_abi_coder5 = require("@fuel-ts/abi-coder");
|
3495
|
-
var
|
3518
|
+
var import_transactions17 = require("@fuel-ts/transactions");
|
3496
3519
|
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3497
3520
|
return receipts.reduce((logs, receipt) => {
|
3498
|
-
if (receipt.type ===
|
3521
|
+
if (receipt.type === import_transactions17.ReceiptType.LogData || receipt.type === import_transactions17.ReceiptType.Log) {
|
3499
3522
|
const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
|
3500
|
-
const data = receipt.type ===
|
3523
|
+
const data = receipt.type === import_transactions17.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3501
3524
|
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3502
3525
|
logs.push(decodedLog);
|
3503
3526
|
}
|
@@ -3570,7 +3593,7 @@ var TransactionResponse = class {
|
|
3570
3593
|
* @returns The decoded transaction.
|
3571
3594
|
*/
|
3572
3595
|
decodeTransaction(transactionWithReceipts) {
|
3573
|
-
return new
|
3596
|
+
return new import_transactions18.TransactionCoder().decode(
|
3574
3597
|
(0, import_utils21.arrayify)(transactionWithReceipts.rawPayload),
|
3575
3598
|
0
|
3576
3599
|
)?.[0];
|
@@ -3747,7 +3770,6 @@ var processGqlChain = (chain) => {
|
|
3747
3770
|
gasPerByte: (0, import_math15.bn)(feeParams.gasPerByte),
|
3748
3771
|
maxMessageDataLength: (0, import_math15.bn)(predicateParams.maxMessageDataLength),
|
3749
3772
|
chainId: (0, import_math15.bn)(consensusParameters.chainId),
|
3750
|
-
baseAssetId: consensusParameters.baseAssetId,
|
3751
3773
|
gasCosts
|
3752
3774
|
},
|
3753
3775
|
gasCosts,
|
@@ -3990,17 +4012,6 @@ var _Provider = class {
|
|
3990
4012
|
} = this.getChain();
|
3991
4013
|
return chainId.toNumber();
|
3992
4014
|
}
|
3993
|
-
/**
|
3994
|
-
* Returns the base asset ID
|
3995
|
-
*
|
3996
|
-
* @returns A promise that resolves to the base asset ID
|
3997
|
-
*/
|
3998
|
-
getBaseAssetId() {
|
3999
|
-
const {
|
4000
|
-
consensusParameters: { baseAssetId }
|
4001
|
-
} = this.getChain();
|
4002
|
-
return baseAssetId;
|
4003
|
-
}
|
4004
4015
|
/**
|
4005
4016
|
* Submits a transaction to the chain to be executed.
|
4006
4017
|
*
|
@@ -4019,7 +4030,7 @@ var _Provider = class {
|
|
4019
4030
|
}
|
4020
4031
|
const encodedTransaction = (0, import_utils23.hexlify)(transactionRequest.toTransactionBytes());
|
4021
4032
|
let abis;
|
4022
|
-
if (transactionRequest.type ===
|
4033
|
+
if (transactionRequest.type === import_transactions19.TransactionType.Script) {
|
4023
4034
|
abis = transactionRequest.abis;
|
4024
4035
|
}
|
4025
4036
|
if (awaitExecution) {
|
@@ -4115,7 +4126,7 @@ var _Provider = class {
|
|
4115
4126
|
* @returns A promise.
|
4116
4127
|
*/
|
4117
4128
|
async estimateTxDependencies(transactionRequest) {
|
4118
|
-
if (transactionRequest.type ===
|
4129
|
+
if (transactionRequest.type === import_transactions19.TransactionType.Create) {
|
4119
4130
|
return {
|
4120
4131
|
receipts: [],
|
4121
4132
|
outputVariables: 0,
|
@@ -4164,7 +4175,7 @@ var _Provider = class {
|
|
4164
4175
|
transactionRequest.gasPrice = gasPrice;
|
4165
4176
|
const minGas = transactionRequest.calculateMinGas(chainInfo);
|
4166
4177
|
const minFee = calculatePriceWithFactor(minGas, gasPrice, gasPriceFactor).normalizeZeroToOne();
|
4167
|
-
if (transactionRequest.type ===
|
4178
|
+
if (transactionRequest.type === import_transactions19.TransactionType.Script) {
|
4168
4179
|
if (transactionRequest.gasLimit.eq(0)) {
|
4169
4180
|
transactionRequest.gasLimit = minGas;
|
4170
4181
|
transactionRequest.gasLimit = maxGasPerTx.sub(
|
@@ -4230,7 +4241,7 @@ var _Provider = class {
|
|
4230
4241
|
const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
|
4231
4242
|
const { minGasPrice } = this.getGasConfig();
|
4232
4243
|
const setGasPrice = (0, import_math15.max)(txRequestClone.gasPrice, minGasPrice);
|
4233
|
-
const isScriptTransaction = txRequestClone.type ===
|
4244
|
+
const isScriptTransaction = txRequestClone.type === import_transactions19.TransactionType.Script;
|
4234
4245
|
const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
|
4235
4246
|
const allQuantities = mergeQuantities(coinOutputsQuantities, forwardingQuantities);
|
4236
4247
|
txRequestClone.fundWithFakeUtxos(allQuantities, resourcesOwner?.address);
|
@@ -4446,7 +4457,7 @@ var _Provider = class {
|
|
4446
4457
|
time: block.header.time,
|
4447
4458
|
transactionIds: block.transactions.map((tx) => tx.id),
|
4448
4459
|
transactions: block.transactions.map(
|
4449
|
-
(tx) => new
|
4460
|
+
(tx) => new import_transactions19.TransactionCoder().decode((0, import_utils23.arrayify)(tx.rawPayload), 0)?.[0]
|
4450
4461
|
)
|
4451
4462
|
};
|
4452
4463
|
}
|
@@ -4461,7 +4472,7 @@ var _Provider = class {
|
|
4461
4472
|
if (!transaction) {
|
4462
4473
|
return null;
|
4463
4474
|
}
|
4464
|
-
return new
|
4475
|
+
return new import_transactions19.TransactionCoder().decode(
|
4465
4476
|
(0, import_utils23.arrayify)(transaction.rawPayload),
|
4466
4477
|
0
|
4467
4478
|
)?.[0];
|
@@ -4541,7 +4552,7 @@ var _Provider = class {
|
|
4541
4552
|
});
|
4542
4553
|
const messages = result.messages.edges.map((edge) => edge.node);
|
4543
4554
|
return messages.map((message) => ({
|
4544
|
-
messageId:
|
4555
|
+
messageId: import_transactions19.InputMessageCoder.getMessageId({
|
4545
4556
|
sender: message.sender,
|
4546
4557
|
recipient: message.recipient,
|
4547
4558
|
nonce: message.nonce,
|
@@ -4552,7 +4563,7 @@ var _Provider = class {
|
|
4552
4563
|
recipient: import_address3.Address.fromAddressOrString(message.recipient),
|
4553
4564
|
nonce: message.nonce,
|
4554
4565
|
amount: (0, import_math15.bn)(message.amount),
|
4555
|
-
data:
|
4566
|
+
data: import_transactions19.InputMessageCoder.decodeData(message.data),
|
4556
4567
|
daHeight: (0, import_math15.bn)(message.daHeight)
|
4557
4568
|
}));
|
4558
4569
|
}
|
@@ -4680,7 +4691,7 @@ cacheInputs_fn = function(inputs) {
|
|
4680
4691
|
return;
|
4681
4692
|
}
|
4682
4693
|
inputs.forEach((input) => {
|
4683
|
-
if (input.type ===
|
4694
|
+
if (input.type === import_transactions19.InputType.Coin) {
|
4684
4695
|
this.cache?.set(input.id);
|
4685
4696
|
}
|
4686
4697
|
});
|
@@ -4691,7 +4702,7 @@ __publicField(Provider, "nodeInfoCache", {});
|
|
4691
4702
|
// src/providers/transaction-summary/get-transaction-summary.ts
|
4692
4703
|
var import_errors15 = require("@fuel-ts/errors");
|
4693
4704
|
var import_math16 = require("@fuel-ts/math");
|
4694
|
-
var
|
4705
|
+
var import_transactions20 = require("@fuel-ts/transactions");
|
4695
4706
|
var import_utils26 = require("@fuel-ts/utils");
|
4696
4707
|
async function getTransactionSummary(params) {
|
4697
4708
|
const { id, provider, abiMap } = params;
|
@@ -4704,7 +4715,7 @@ async function getTransactionSummary(params) {
|
|
4704
4715
|
`Transaction not found for given id: ${id}.`
|
4705
4716
|
);
|
4706
4717
|
}
|
4707
|
-
const [decodedTransaction] = new
|
4718
|
+
const [decodedTransaction] = new import_transactions20.TransactionCoder().decode(
|
4708
4719
|
(0, import_utils26.arrayify)(gqlTransaction.rawPayload),
|
4709
4720
|
0
|
4710
4721
|
);
|
@@ -4758,7 +4769,7 @@ async function getTransactionsSummaries(params) {
|
|
4758
4769
|
const transactions = edges.map((edge) => {
|
4759
4770
|
const { node: gqlTransaction } = edge;
|
4760
4771
|
const { id, rawPayload, receipts: gqlReceipts, status } = gqlTransaction;
|
4761
|
-
const [decodedTransaction] = new
|
4772
|
+
const [decodedTransaction] = new import_transactions20.TransactionCoder().decode((0, import_utils26.arrayify)(rawPayload), 0);
|
4762
4773
|
const receipts = gqlReceipts?.map(processGqlReceipt) || [];
|
4763
4774
|
const transactionSummary = assembleTransactionSummary({
|
4764
4775
|
id,
|
@@ -5064,9 +5075,8 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5064
5075
|
* @param assetId - The asset ID to check the balance for.
|
5065
5076
|
* @returns A promise that resolves to the balance amount.
|
5066
5077
|
*/
|
5067
|
-
async getBalance(assetId) {
|
5068
|
-
const
|
5069
|
-
const amount = await this.provider.getBalance(this.address, assetIdToFetch);
|
5078
|
+
async getBalance(assetId = import_configs12.BaseAssetId) {
|
5079
|
+
const amount = await this.provider.getBalance(this.address, assetId);
|
5070
5080
|
return amount;
|
5071
5081
|
}
|
5072
5082
|
/**
|
@@ -5104,10 +5114,9 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5104
5114
|
* @returns A promise that resolves when the resources are added to the transaction.
|
5105
5115
|
*/
|
5106
5116
|
async fund(request, coinQuantities, fee) {
|
5107
|
-
const baseAssetId = this.provider.getBaseAssetId();
|
5108
5117
|
const updatedQuantities = addAmountToAsset({
|
5109
5118
|
amount: (0, import_math18.bn)(fee),
|
5110
|
-
assetId:
|
5119
|
+
assetId: import_configs12.BaseAssetId,
|
5111
5120
|
coinQuantities
|
5112
5121
|
});
|
5113
5122
|
const quantitiesDict = {};
|
@@ -5131,8 +5140,8 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5131
5140
|
quantitiesDict[assetId].owned = quantitiesDict[assetId].owned.add(amount);
|
5132
5141
|
cachedUtxos.push(input.id);
|
5133
5142
|
}
|
5134
|
-
} else if (input.recipient === owner && input.amount && quantitiesDict[
|
5135
|
-
quantitiesDict[
|
5143
|
+
} else if (input.recipient === owner && input.amount && quantitiesDict[import_configs12.BaseAssetId]) {
|
5144
|
+
quantitiesDict[import_configs12.BaseAssetId].owned = quantitiesDict[import_configs12.BaseAssetId].owned.add(input.amount);
|
5136
5145
|
cachedMessages.push(input.nonce);
|
5137
5146
|
}
|
5138
5147
|
}
|
@@ -5164,13 +5173,11 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5164
5173
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
5165
5174
|
* @returns A promise that resolves to the prepared transaction request.
|
5166
5175
|
*/
|
5167
|
-
async createTransfer(destination, amount, assetId, txParams = {}) {
|
5176
|
+
async createTransfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
|
5168
5177
|
const { minGasPrice } = this.provider.getGasConfig();
|
5169
|
-
const
|
5170
|
-
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
5171
|
-
const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
|
5178
|
+
const params = { gasPrice: minGasPrice, ...txParams };
|
5172
5179
|
const request = new ScriptTransactionRequest(params);
|
5173
|
-
request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount,
|
5180
|
+
request.addCoinOutput(import_address4.Address.fromAddressOrString(destination), amount, assetId);
|
5174
5181
|
const { maxFee, requiredQuantities, gasUsed, estimatedInputs } = await this.provider.getTransactionCost(request, [], {
|
5175
5182
|
estimateTxDependencies: true,
|
5176
5183
|
resourcesOwner: this
|
@@ -5196,15 +5203,14 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5196
5203
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
5197
5204
|
* @returns A promise that resolves to the transaction response.
|
5198
5205
|
*/
|
5199
|
-
async transfer(destination, amount, assetId, txParams = {}) {
|
5206
|
+
async transfer(destination, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
|
5200
5207
|
if ((0, import_math18.bn)(amount).lte(0)) {
|
5201
5208
|
throw new import_errors16.FuelError(
|
5202
5209
|
import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
|
5203
5210
|
"Transfer amount must be a positive number."
|
5204
5211
|
);
|
5205
5212
|
}
|
5206
|
-
const
|
5207
|
-
const request = await this.createTransfer(destination, amount, assetIdToTransfer, txParams);
|
5213
|
+
const request = await this.createTransfer(destination, amount, assetId, txParams);
|
5208
5214
|
return this.sendTransaction(request, { estimateTxDependencies: false });
|
5209
5215
|
}
|
5210
5216
|
/**
|
@@ -5216,7 +5222,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5216
5222
|
* @param txParams - The optional transaction parameters.
|
5217
5223
|
* @returns A promise that resolves to the transaction response.
|
5218
5224
|
*/
|
5219
|
-
async transferToContract(contractId, amount, assetId, txParams = {}) {
|
5225
|
+
async transferToContract(contractId, amount, assetId = import_configs12.BaseAssetId, txParams = {}) {
|
5220
5226
|
if ((0, import_math18.bn)(amount).lte(0)) {
|
5221
5227
|
throw new import_errors16.FuelError(
|
5222
5228
|
import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
|
@@ -5225,13 +5231,11 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5225
5231
|
}
|
5226
5232
|
const contractAddress = import_address4.Address.fromAddressOrString(contractId);
|
5227
5233
|
const { minGasPrice } = this.provider.getGasConfig();
|
5228
|
-
const
|
5229
|
-
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
5230
|
-
const params = { gasPrice: minGasPrice, baseAssetId, ...txParams };
|
5234
|
+
const params = { gasPrice: minGasPrice, ...txParams };
|
5231
5235
|
const { script, scriptData } = await assembleTransferToContractScript({
|
5232
5236
|
hexlifiedContractId: contractAddress.toB256(),
|
5233
5237
|
amountToTransfer: (0, import_math18.bn)(amount),
|
5234
|
-
assetId
|
5238
|
+
assetId
|
5235
5239
|
});
|
5236
5240
|
const request = new ScriptTransactionRequest({
|
5237
5241
|
...params,
|
@@ -5241,7 +5245,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5241
5245
|
request.addContractInputAndOutput(contractAddress);
|
5242
5246
|
const { maxFee, requiredQuantities, gasUsed } = await this.provider.getTransactionCost(
|
5243
5247
|
request,
|
5244
|
-
[{ amount: (0, import_math18.bn)(amount), assetId: String(
|
5248
|
+
[{ amount: (0, import_math18.bn)(amount), assetId: String(assetId) }]
|
5245
5249
|
);
|
5246
5250
|
request.gasLimit = (0, import_math18.bn)(params.gasLimit ?? gasUsed);
|
5247
5251
|
this.validateGas({
|
@@ -5263,7 +5267,6 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5263
5267
|
*/
|
5264
5268
|
async withdrawToBaseLayer(recipient, amount, txParams = {}) {
|
5265
5269
|
const { minGasPrice } = this.provider.getGasConfig();
|
5266
|
-
const baseAssetId = this.provider.getBaseAssetId();
|
5267
5270
|
const recipientAddress = import_address4.Address.fromAddressOrString(recipient);
|
5268
5271
|
const recipientDataArray = (0, import_utils28.arrayify)(
|
5269
5272
|
"0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
|
@@ -5276,14 +5279,9 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5276
5279
|
...recipientDataArray,
|
5277
5280
|
...amountDataArray
|
5278
5281
|
]);
|
5279
|
-
const params = {
|
5280
|
-
script,
|
5281
|
-
gasPrice: minGasPrice,
|
5282
|
-
baseAssetId,
|
5283
|
-
...txParams
|
5284
|
-
};
|
5282
|
+
const params = { script, gasPrice: minGasPrice, ...txParams };
|
5285
5283
|
const request = new ScriptTransactionRequest(params);
|
5286
|
-
const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId:
|
5284
|
+
const forwardingQuantities = [{ amount: (0, import_math18.bn)(amount), assetId: import_configs12.BaseAssetId }];
|
5287
5285
|
const { requiredQuantities, maxFee, gasUsed } = await this.provider.getTransactionCost(
|
5288
5286
|
request,
|
5289
5287
|
forwardingQuantities
|
@@ -8846,8 +8844,9 @@ var StorageAbstract = class {
|
|
8846
8844
|
// src/predicate/predicate.ts
|
8847
8845
|
var import_abi_coder7 = require("@fuel-ts/abi-coder");
|
8848
8846
|
var import_address10 = require("@fuel-ts/address");
|
8847
|
+
var import_configs13 = require("@fuel-ts/address/configs");
|
8849
8848
|
var import_errors25 = require("@fuel-ts/errors");
|
8850
|
-
var
|
8849
|
+
var import_transactions21 = require("@fuel-ts/transactions");
|
8851
8850
|
var import_utils37 = require("@fuel-ts/utils");
|
8852
8851
|
|
8853
8852
|
// src/predicate/utils/getPredicateRoot.ts
|
@@ -8906,10 +8905,15 @@ var Predicate = class extends Account {
|
|
8906
8905
|
populateTransactionPredicateData(transactionRequestLike) {
|
8907
8906
|
const request = transactionRequestify(transactionRequestLike);
|
8908
8907
|
const { policies } = BaseTransactionRequest.getPolicyMeta(request);
|
8909
|
-
|
8910
|
-
|
8908
|
+
const placeholderIndex = this.getIndexFromPlaceholderWitness(request);
|
8909
|
+
if (placeholderIndex !== -1) {
|
8910
|
+
request.removeWitness(placeholderIndex);
|
8911
|
+
}
|
8912
|
+
request.inputs.filter(isRequestInputResource).forEach((input) => {
|
8913
|
+
if (isRequestInputResourceFromOwner(input, this.address)) {
|
8911
8914
|
input.predicate = this.bytes;
|
8912
8915
|
input.predicateData = this.getPredicateData(policies.length);
|
8916
|
+
input.witnessIndex = 0;
|
8913
8917
|
}
|
8914
8918
|
});
|
8915
8919
|
return request;
|
@@ -8923,9 +8927,8 @@ var Predicate = class extends Account {
|
|
8923
8927
|
* @param txParams - The transaction parameters (gasLimit, gasPrice, maturity).
|
8924
8928
|
* @returns A promise that resolves to the prepared transaction request.
|
8925
8929
|
*/
|
8926
|
-
async createTransfer(destination, amount, assetId, txParams = {}) {
|
8927
|
-
const
|
8928
|
-
const request = await super.createTransfer(destination, amount, assetIdToTransfer, txParams);
|
8930
|
+
async createTransfer(destination, amount, assetId = import_configs13.BaseAssetId, txParams = {}) {
|
8931
|
+
const request = await super.createTransfer(destination, amount, assetId, txParams);
|
8929
8932
|
return this.populateTransactionPredicateData(request);
|
8930
8933
|
}
|
8931
8934
|
/**
|
@@ -8948,12 +8951,26 @@ var Predicate = class extends Account {
|
|
8948
8951
|
const transactionRequest = this.populateTransactionPredicateData(transactionRequestLike);
|
8949
8952
|
return super.simulateTransaction(transactionRequest);
|
8950
8953
|
}
|
8954
|
+
/**
|
8955
|
+
* Retrieves resources satisfying the spend query for the account.
|
8956
|
+
*
|
8957
|
+
* @param quantities - IDs of coins to exclude.
|
8958
|
+
* @param excludedIds - IDs of resources to be excluded from the query.
|
8959
|
+
* @returns A promise that resolves to an array of Resources.
|
8960
|
+
*/
|
8961
|
+
async getResourcesToSpend(quantities, excludedIds) {
|
8962
|
+
const resources = await super.getResourcesToSpend(quantities, excludedIds);
|
8963
|
+
return resources.map((resource) => ({
|
8964
|
+
...resource,
|
8965
|
+
predicate: (0, import_utils37.hexlify)(this.bytes)
|
8966
|
+
}));
|
8967
|
+
}
|
8951
8968
|
getPredicateData(policiesLength) {
|
8952
8969
|
if (!this.predicateData.length) {
|
8953
8970
|
return new Uint8Array();
|
8954
8971
|
}
|
8955
8972
|
const mainFn = this.interface?.functions.main;
|
8956
|
-
const paddedCode = new
|
8973
|
+
const paddedCode = new import_transactions21.ByteArrayCoder(this.bytes.length).encode(this.bytes);
|
8957
8974
|
const VM_TX_MEMORY = (0, import_abi_coder7.calculateVmTxMemory)({
|
8958
8975
|
maxInputs: this.provider.getChain().consensusParameters.maxInputs.toNumber()
|
8959
8976
|
});
|
@@ -9027,6 +9044,22 @@ var Predicate = class extends Account {
|
|
9027
9044
|
}
|
9028
9045
|
return mutatedBytes;
|
9029
9046
|
}
|
9047
|
+
getIndexFromPlaceholderWitness(request) {
|
9048
|
+
const predicateInputs = request.inputs.filter(isRequestInputResource).filter((input) => isRequestInputResourceFromOwner(input, this.address));
|
9049
|
+
let index = -1;
|
9050
|
+
const hasEmptyPredicateInputs = predicateInputs.find((input) => !input.predicate);
|
9051
|
+
if (hasEmptyPredicateInputs) {
|
9052
|
+
index = hasEmptyPredicateInputs.witnessIndex;
|
9053
|
+
const allInputsAreEmpty = predicateInputs.every((input) => !input.predicate);
|
9054
|
+
if (!allInputsAreEmpty) {
|
9055
|
+
const wasFilledInputAddedFirst = !!predicateInputs[0]?.predicate;
|
9056
|
+
if (wasFilledInputAddedFirst) {
|
9057
|
+
index = -1;
|
9058
|
+
}
|
9059
|
+
}
|
9060
|
+
}
|
9061
|
+
return index;
|
9062
|
+
}
|
9030
9063
|
};
|
9031
9064
|
|
9032
9065
|
// src/connectors/fuel.ts
|
@@ -9750,6 +9783,7 @@ __publicField(Fuel, "defaultConfig", {});
|
|
9750
9783
|
assets,
|
9751
9784
|
buildBlockExplorerUrl,
|
9752
9785
|
cacheFor,
|
9786
|
+
cacheResources,
|
9753
9787
|
calculateMetadataGasForTxCreate,
|
9754
9788
|
calculateMetadataGasForTxScript,
|
9755
9789
|
calculatePriceWithFactor,
|
@@ -9796,6 +9830,7 @@ __publicField(Fuel, "defaultConfig", {});
|
|
9796
9830
|
getReceiptsMessageOut,
|
9797
9831
|
getReceiptsTransferOut,
|
9798
9832
|
getReceiptsWithMissingData,
|
9833
|
+
getRequestInputResourceOwner,
|
9799
9834
|
getTransactionStatusName,
|
9800
9835
|
getTransactionSummary,
|
9801
9836
|
getTransactionSummaryFromRequest,
|
@@ -9809,6 +9844,10 @@ __publicField(Fuel, "defaultConfig", {});
|
|
9809
9844
|
isMessage,
|
9810
9845
|
isRawCoin,
|
9811
9846
|
isRawMessage,
|
9847
|
+
isRequestInputCoin,
|
9848
|
+
isRequestInputMessage,
|
9849
|
+
isRequestInputResource,
|
9850
|
+
isRequestInputResourceFromOwner,
|
9812
9851
|
isType,
|
9813
9852
|
isTypeCreate,
|
9814
9853
|
isTypeMint,
|