@fuel-ts/account 0.85.0 → 0.86.0
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/hdwallet/hdwallet.d.ts.map +1 -1
- package/dist/index.global.js +1694 -2854
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +304 -298
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +194 -201
- package/dist/index.mjs.map +1 -1
- package/dist/mnemonic/mnemonic.d.ts.map +1 -1
- package/dist/mnemonic/utils.d.ts +0 -1
- package/dist/mnemonic/utils.d.ts.map +1 -1
- package/dist/predicate/predicate.d.ts +9 -2
- package/dist/predicate/predicate.d.ts.map +1 -1
- package/dist/providers/coin.d.ts +0 -1
- 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 +1 -1
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/transaction-request/helpers.d.ts +4 -0
- package/dist/providers/transaction-request/helpers.d.ts.map +1 -1
- 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/input.d.ts +0 -2
- package/dist/providers/transaction-request/input.d.ts.map +1 -1
- package/dist/providers/transaction-request/transaction-request.d.ts +2 -1
- package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
- package/dist/providers/transaction-request/utils.d.ts +0 -4
- package/dist/providers/transaction-request/utils.d.ts.map +1 -1
- package/dist/providers/transaction-summary/call.d.ts +1 -1
- package/dist/providers/transaction-summary/call.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 +1422 -2616
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +247 -288
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +147 -188
- 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 -16
package/dist/test-utils.js
CHANGED
@@ -64,7 +64,7 @@ var import_utils31 = require("@fuel-ts/utils");
|
|
64
64
|
var import_address4 = require("@fuel-ts/address");
|
65
65
|
var import_errors16 = require("@fuel-ts/errors");
|
66
66
|
var import_interfaces = require("@fuel-ts/interfaces");
|
67
|
-
var
|
67
|
+
var import_math20 = require("@fuel-ts/math");
|
68
68
|
var import_utils28 = require("@fuel-ts/utils");
|
69
69
|
var import_ramda4 = require("ramda");
|
70
70
|
|
@@ -107,7 +107,7 @@ var addAmountToCoinQuantities = (params) => {
|
|
107
107
|
var import_address3 = require("@fuel-ts/address");
|
108
108
|
var import_errors14 = require("@fuel-ts/errors");
|
109
109
|
var import_math17 = require("@fuel-ts/math");
|
110
|
-
var
|
110
|
+
var import_transactions20 = require("@fuel-ts/transactions");
|
111
111
|
var import_utils22 = require("@fuel-ts/utils");
|
112
112
|
var import_versions = require("@fuel-ts/versions");
|
113
113
|
var import_utils23 = require("@noble/curves/abstract/utils");
|
@@ -1324,8 +1324,8 @@ var import_abi_coder2 = require("@fuel-ts/abi-coder");
|
|
1324
1324
|
var import_address = require("@fuel-ts/address");
|
1325
1325
|
var import_configs6 = require("@fuel-ts/address/configs");
|
1326
1326
|
var import_crypto = require("@fuel-ts/crypto");
|
1327
|
-
var
|
1328
|
-
var
|
1327
|
+
var import_math8 = require("@fuel-ts/math");
|
1328
|
+
var import_transactions7 = require("@fuel-ts/transactions");
|
1329
1329
|
var import_utils9 = require("@fuel-ts/utils");
|
1330
1330
|
|
1331
1331
|
// src/providers/resource.ts
|
@@ -1758,6 +1758,36 @@ var NoWitnessAtIndexError = class extends Error {
|
|
1758
1758
|
name = "NoWitnessAtIndexError";
|
1759
1759
|
};
|
1760
1760
|
|
1761
|
+
// src/providers/transaction-request/helpers.ts
|
1762
|
+
var import_math7 = require("@fuel-ts/math");
|
1763
|
+
var import_transactions6 = require("@fuel-ts/transactions");
|
1764
|
+
var isRequestInputCoin = (input) => input.type === import_transactions6.InputType.Coin;
|
1765
|
+
var isRequestInputMessage = (input) => input.type === import_transactions6.InputType.Message;
|
1766
|
+
var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
|
1767
|
+
var getAssetAmountInRequestInputs = (inputs, assetId, baseAsset) => inputs.filter(isRequestInputResource).reduce((acc, input) => {
|
1768
|
+
if (isRequestInputCoin(input) && input.assetId === assetId) {
|
1769
|
+
return acc.add(input.amount);
|
1770
|
+
}
|
1771
|
+
if (isRequestInputMessage(input) && assetId === baseAsset) {
|
1772
|
+
return acc.add(input.amount);
|
1773
|
+
}
|
1774
|
+
return acc;
|
1775
|
+
}, (0, import_math7.bn)(0));
|
1776
|
+
var cacheRequestInputsResourcesFromOwner = (inputs, owner) => inputs.reduce(
|
1777
|
+
(acc, input) => {
|
1778
|
+
if (isRequestInputCoin(input) && input.owner === owner.toB256()) {
|
1779
|
+
acc.utxos.push(input.id);
|
1780
|
+
} else if (isRequestInputMessage(input) && input.recipient === owner.toB256()) {
|
1781
|
+
acc.messages.push(input.nonce);
|
1782
|
+
}
|
1783
|
+
return acc;
|
1784
|
+
},
|
1785
|
+
{
|
1786
|
+
utxos: [],
|
1787
|
+
messages: []
|
1788
|
+
}
|
1789
|
+
);
|
1790
|
+
|
1761
1791
|
// src/providers/transaction-request/witness.ts
|
1762
1792
|
var import_utils8 = require("@fuel-ts/utils");
|
1763
1793
|
var witnessify = (value) => {
|
@@ -1798,10 +1828,10 @@ var BaseTransactionRequest = class {
|
|
1798
1828
|
outputs,
|
1799
1829
|
witnesses
|
1800
1830
|
} = {}) {
|
1801
|
-
this.tip = tip ? (0,
|
1831
|
+
this.tip = tip ? (0, import_math8.bn)(tip) : void 0;
|
1802
1832
|
this.maturity = maturity && maturity > 0 ? maturity : void 0;
|
1803
|
-
this.witnessLimit = (0, import_utils9.isDefined)(witnessLimit) ? (0,
|
1804
|
-
this.maxFee = (0,
|
1833
|
+
this.witnessLimit = (0, import_utils9.isDefined)(witnessLimit) ? (0, import_math8.bn)(witnessLimit) : void 0;
|
1834
|
+
this.maxFee = (0, import_math8.bn)(maxFee);
|
1805
1835
|
this.inputs = inputs ?? [];
|
1806
1836
|
this.outputs = outputs ?? [];
|
1807
1837
|
this.witnesses = witnesses ?? [];
|
@@ -1810,20 +1840,20 @@ var BaseTransactionRequest = class {
|
|
1810
1840
|
let policyTypes = 0;
|
1811
1841
|
const policies = [];
|
1812
1842
|
const { tip, witnessLimit, maturity } = req;
|
1813
|
-
if ((0,
|
1814
|
-
policyTypes +=
|
1815
|
-
policies.push({ data: (0,
|
1843
|
+
if ((0, import_math8.bn)(tip).gt(0)) {
|
1844
|
+
policyTypes += import_transactions7.PolicyType.Tip;
|
1845
|
+
policies.push({ data: (0, import_math8.bn)(tip), type: import_transactions7.PolicyType.Tip });
|
1816
1846
|
}
|
1817
|
-
if ((0, import_utils9.isDefined)(witnessLimit) && (0,
|
1818
|
-
policyTypes +=
|
1819
|
-
policies.push({ data: (0,
|
1847
|
+
if ((0, import_utils9.isDefined)(witnessLimit) && (0, import_math8.bn)(witnessLimit).gte(0)) {
|
1848
|
+
policyTypes += import_transactions7.PolicyType.WitnessLimit;
|
1849
|
+
policies.push({ data: (0, import_math8.bn)(witnessLimit), type: import_transactions7.PolicyType.WitnessLimit });
|
1820
1850
|
}
|
1821
1851
|
if (maturity && maturity > 0) {
|
1822
|
-
policyTypes +=
|
1823
|
-
policies.push({ data: maturity, type:
|
1852
|
+
policyTypes += import_transactions7.PolicyType.Maturity;
|
1853
|
+
policies.push({ data: maturity, type: import_transactions7.PolicyType.Maturity });
|
1824
1854
|
}
|
1825
|
-
policyTypes +=
|
1826
|
-
policies.push({ data: req.maxFee, type:
|
1855
|
+
policyTypes += import_transactions7.PolicyType.MaxFee;
|
1856
|
+
policies.push({ data: req.maxFee, type: import_transactions7.PolicyType.MaxFee });
|
1827
1857
|
return {
|
1828
1858
|
policyTypes,
|
1829
1859
|
policies
|
@@ -1856,7 +1886,7 @@ var BaseTransactionRequest = class {
|
|
1856
1886
|
* @returns The transaction bytes.
|
1857
1887
|
*/
|
1858
1888
|
toTransactionBytes() {
|
1859
|
-
return new
|
1889
|
+
return new import_transactions7.TransactionCoder().encode(this.toTransaction());
|
1860
1890
|
}
|
1861
1891
|
/**
|
1862
1892
|
* @hidden
|
@@ -1947,7 +1977,7 @@ var BaseTransactionRequest = class {
|
|
1947
1977
|
*/
|
1948
1978
|
getCoinInputs() {
|
1949
1979
|
return this.inputs.filter(
|
1950
|
-
(input) => input.type ===
|
1980
|
+
(input) => input.type === import_transactions7.InputType.Coin
|
1951
1981
|
);
|
1952
1982
|
}
|
1953
1983
|
/**
|
@@ -1957,7 +1987,7 @@ var BaseTransactionRequest = class {
|
|
1957
1987
|
*/
|
1958
1988
|
getCoinOutputs() {
|
1959
1989
|
return this.outputs.filter(
|
1960
|
-
(output) => output.type ===
|
1990
|
+
(output) => output.type === import_transactions7.OutputType.Coin
|
1961
1991
|
);
|
1962
1992
|
}
|
1963
1993
|
/**
|
@@ -1967,7 +1997,7 @@ var BaseTransactionRequest = class {
|
|
1967
1997
|
*/
|
1968
1998
|
getChangeOutputs() {
|
1969
1999
|
return this.outputs.filter(
|
1970
|
-
(output) => output.type ===
|
2000
|
+
(output) => output.type === import_transactions7.OutputType.Change
|
1971
2001
|
);
|
1972
2002
|
}
|
1973
2003
|
/**
|
@@ -1979,9 +2009,9 @@ var BaseTransactionRequest = class {
|
|
1979
2009
|
const ownerAddress = (0, import_address.addressify)(owner);
|
1980
2010
|
const found = this.inputs.find((input) => {
|
1981
2011
|
switch (input.type) {
|
1982
|
-
case
|
2012
|
+
case import_transactions7.InputType.Coin:
|
1983
2013
|
return (0, import_utils9.hexlify)(input.owner) === ownerAddress.toB256();
|
1984
|
-
case
|
2014
|
+
case import_transactions7.InputType.Message:
|
1985
2015
|
return (0, import_utils9.hexlify)(input.recipient) === ownerAddress.toB256();
|
1986
2016
|
default:
|
1987
2017
|
return false;
|
@@ -1996,7 +2026,7 @@ var BaseTransactionRequest = class {
|
|
1996
2026
|
* @param coin - Coin resource.
|
1997
2027
|
*/
|
1998
2028
|
addCoinInput(coin) {
|
1999
|
-
const { assetId, owner, amount } = coin;
|
2029
|
+
const { assetId, owner, amount, id, predicate } = coin;
|
2000
2030
|
let witnessIndex;
|
2001
2031
|
if (coin.predicate) {
|
2002
2032
|
witnessIndex = 0;
|
@@ -2007,13 +2037,14 @@ var BaseTransactionRequest = class {
|
|
2007
2037
|
}
|
2008
2038
|
}
|
2009
2039
|
const input = {
|
2010
|
-
|
2011
|
-
type:
|
2040
|
+
id,
|
2041
|
+
type: import_transactions7.InputType.Coin,
|
2012
2042
|
owner: owner.toB256(),
|
2013
2043
|
amount,
|
2014
2044
|
assetId,
|
2015
2045
|
txPointer: "0x00000000000000000000000000000000",
|
2016
|
-
witnessIndex
|
2046
|
+
witnessIndex,
|
2047
|
+
predicate
|
2017
2048
|
};
|
2018
2049
|
this.pushInput(input);
|
2019
2050
|
this.addChangeOutput(owner, assetId);
|
@@ -2025,7 +2056,7 @@ var BaseTransactionRequest = class {
|
|
2025
2056
|
* @param message - Message resource.
|
2026
2057
|
*/
|
2027
2058
|
addMessageInput(message) {
|
2028
|
-
const { recipient, sender, amount, assetId } = message;
|
2059
|
+
const { recipient, sender, amount, predicate, nonce, assetId } = message;
|
2029
2060
|
let witnessIndex;
|
2030
2061
|
if (message.predicate) {
|
2031
2062
|
witnessIndex = 0;
|
@@ -2036,12 +2067,13 @@ var BaseTransactionRequest = class {
|
|
2036
2067
|
}
|
2037
2068
|
}
|
2038
2069
|
const input = {
|
2039
|
-
|
2040
|
-
type:
|
2070
|
+
nonce,
|
2071
|
+
type: import_transactions7.InputType.Message,
|
2041
2072
|
sender: sender.toB256(),
|
2042
2073
|
recipient: recipient.toB256(),
|
2043
2074
|
amount,
|
2044
|
-
witnessIndex
|
2075
|
+
witnessIndex,
|
2076
|
+
predicate
|
2045
2077
|
};
|
2046
2078
|
this.pushInput(input);
|
2047
2079
|
this.addChangeOutput(recipient, assetId);
|
@@ -2081,7 +2113,7 @@ var BaseTransactionRequest = class {
|
|
2081
2113
|
*/
|
2082
2114
|
addCoinOutput(to, amount, assetId) {
|
2083
2115
|
this.pushOutput({
|
2084
|
-
type:
|
2116
|
+
type: import_transactions7.OutputType.Coin,
|
2085
2117
|
to: (0, import_address.addressify)(to).toB256(),
|
2086
2118
|
amount,
|
2087
2119
|
assetId
|
@@ -2097,7 +2129,7 @@ var BaseTransactionRequest = class {
|
|
2097
2129
|
addCoinOutputs(to, quantities) {
|
2098
2130
|
quantities.map(coinQuantityfy).forEach((quantity) => {
|
2099
2131
|
this.pushOutput({
|
2100
|
-
type:
|
2132
|
+
type: import_transactions7.OutputType.Coin,
|
2101
2133
|
to: (0, import_address.addressify)(to).toB256(),
|
2102
2134
|
amount: quantity.amount,
|
2103
2135
|
assetId: quantity.assetId
|
@@ -2117,7 +2149,7 @@ var BaseTransactionRequest = class {
|
|
2117
2149
|
);
|
2118
2150
|
if (!changeOutput) {
|
2119
2151
|
this.pushOutput({
|
2120
|
-
type:
|
2152
|
+
type: import_transactions7.OutputType.Change,
|
2121
2153
|
to: (0, import_address.addressify)(to).toB256(),
|
2122
2154
|
assetId
|
2123
2155
|
});
|
@@ -2188,7 +2220,7 @@ var BaseTransactionRequest = class {
|
|
2188
2220
|
const assetInput = findAssetInput(assetId);
|
2189
2221
|
let usedQuantity = quantity;
|
2190
2222
|
if (assetId === baseAssetId) {
|
2191
|
-
usedQuantity = (0,
|
2223
|
+
usedQuantity = (0, import_math8.bn)("1000000000000000000");
|
2192
2224
|
}
|
2193
2225
|
if (assetInput && "assetId" in assetInput) {
|
2194
2226
|
assetInput.id = (0, import_utils9.hexlify)((0, import_crypto.randomBytes)(import_abi_coder2.UTXO_ID_LEN));
|
@@ -2200,13 +2232,13 @@ var BaseTransactionRequest = class {
|
|
2200
2232
|
amount: usedQuantity,
|
2201
2233
|
assetId,
|
2202
2234
|
owner: resourcesOwner || import_address.Address.fromRandom(),
|
2203
|
-
blockCreated: (0,
|
2204
|
-
txCreatedIdx: (0,
|
2235
|
+
blockCreated: (0, import_math8.bn)(1),
|
2236
|
+
txCreatedIdx: (0, import_math8.bn)(1)
|
2205
2237
|
}
|
2206
2238
|
]);
|
2207
2239
|
}
|
2208
2240
|
};
|
2209
|
-
updateAssetInput(baseAssetId, (0,
|
2241
|
+
updateAssetInput(baseAssetId, (0, import_math8.bn)(1e11));
|
2210
2242
|
quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
|
2211
2243
|
}
|
2212
2244
|
/**
|
@@ -2217,7 +2249,7 @@ var BaseTransactionRequest = class {
|
|
2217
2249
|
*/
|
2218
2250
|
getCoinOutputsQuantities() {
|
2219
2251
|
const coinsQuantities = this.getCoinOutputs().map(({ amount, assetId }) => ({
|
2220
|
-
amount: (0,
|
2252
|
+
amount: (0, import_math8.bn)(amount),
|
2221
2253
|
assetId: assetId.toString()
|
2222
2254
|
}));
|
2223
2255
|
return coinsQuantities;
|
@@ -2231,73 +2263,75 @@ var BaseTransactionRequest = class {
|
|
2231
2263
|
toJSON() {
|
2232
2264
|
return normalizeJSON(this);
|
2233
2265
|
}
|
2266
|
+
removeWitness(index) {
|
2267
|
+
this.witnesses.splice(index, 1);
|
2268
|
+
this.adjustWitnessIndexes(index);
|
2269
|
+
}
|
2270
|
+
adjustWitnessIndexes(removedIndex) {
|
2271
|
+
this.inputs.filter(isRequestInputResource).forEach((input) => {
|
2272
|
+
if (input.witnessIndex > removedIndex) {
|
2273
|
+
input.witnessIndex -= 1;
|
2274
|
+
}
|
2275
|
+
});
|
2276
|
+
}
|
2234
2277
|
updatePredicateGasUsed(inputs) {
|
2235
2278
|
this.inputs.forEach((i) => {
|
2236
2279
|
let correspondingInput;
|
2237
2280
|
switch (i.type) {
|
2238
|
-
case
|
2239
|
-
correspondingInput = inputs.find((x) => x.type ===
|
2281
|
+
case import_transactions7.InputType.Coin:
|
2282
|
+
correspondingInput = inputs.find((x) => x.type === import_transactions7.InputType.Coin && x.owner === i.owner);
|
2240
2283
|
break;
|
2241
|
-
case
|
2284
|
+
case import_transactions7.InputType.Message:
|
2242
2285
|
correspondingInput = inputs.find(
|
2243
|
-
(x) => x.type ===
|
2286
|
+
(x) => x.type === import_transactions7.InputType.Message && x.sender === i.sender
|
2244
2287
|
);
|
2245
2288
|
break;
|
2246
2289
|
default:
|
2247
2290
|
return;
|
2248
2291
|
}
|
2249
|
-
if (correspondingInput && "predicateGasUsed" in correspondingInput && (0,
|
2292
|
+
if (correspondingInput && "predicateGasUsed" in correspondingInput && (0, import_math8.bn)(correspondingInput.predicateGasUsed).gt(0)) {
|
2250
2293
|
i.predicate = correspondingInput.predicate;
|
2251
2294
|
i.predicateData = correspondingInput.predicateData;
|
2252
2295
|
i.predicateGasUsed = correspondingInput.predicateGasUsed;
|
2253
2296
|
}
|
2254
2297
|
});
|
2255
2298
|
}
|
2256
|
-
shiftPredicateData() {
|
2257
|
-
this.inputs.forEach((input) => {
|
2258
|
-
if ("predicateData" in input && "padPredicateData" in input && typeof input.padPredicateData === "function") {
|
2259
|
-
input.predicateData = input.padPredicateData(
|
2260
|
-
BaseTransactionRequest.getPolicyMeta(this).policies.length
|
2261
|
-
);
|
2262
|
-
}
|
2263
|
-
});
|
2264
|
-
}
|
2265
2299
|
};
|
2266
2300
|
|
2267
2301
|
// src/providers/transaction-request/create-transaction-request.ts
|
2268
2302
|
var import_configs8 = require("@fuel-ts/address/configs");
|
2269
|
-
var
|
2270
|
-
var
|
2303
|
+
var import_math10 = require("@fuel-ts/math");
|
2304
|
+
var import_transactions9 = require("@fuel-ts/transactions");
|
2271
2305
|
var import_utils13 = require("@fuel-ts/utils");
|
2272
2306
|
|
2273
2307
|
// src/providers/transaction-request/hash-transaction.ts
|
2274
2308
|
var import_configs7 = require("@fuel-ts/address/configs");
|
2275
2309
|
var import_hasher = require("@fuel-ts/hasher");
|
2276
|
-
var
|
2277
|
-
var
|
2310
|
+
var import_math9 = require("@fuel-ts/math");
|
2311
|
+
var import_transactions8 = require("@fuel-ts/transactions");
|
2278
2312
|
var import_utils11 = require("@fuel-ts/utils");
|
2279
2313
|
var import_ramda2 = require("ramda");
|
2280
2314
|
function hashTransaction(transactionRequest, chainId) {
|
2281
2315
|
const transaction = transactionRequest.toTransaction();
|
2282
|
-
if (transaction.type ===
|
2316
|
+
if (transaction.type === import_transactions8.TransactionType.Script) {
|
2283
2317
|
transaction.receiptsRoot = import_configs7.ZeroBytes32;
|
2284
2318
|
}
|
2285
2319
|
transaction.inputs = transaction.inputs.map((input) => {
|
2286
2320
|
const inputClone = (0, import_ramda2.clone)(input);
|
2287
2321
|
switch (inputClone.type) {
|
2288
|
-
case
|
2322
|
+
case import_transactions8.InputType.Coin: {
|
2289
2323
|
inputClone.txPointer = {
|
2290
2324
|
blockHeight: 0,
|
2291
2325
|
txIndex: 0
|
2292
2326
|
};
|
2293
|
-
inputClone.predicateGasUsed = (0,
|
2327
|
+
inputClone.predicateGasUsed = (0, import_math9.bn)(0);
|
2294
2328
|
return inputClone;
|
2295
2329
|
}
|
2296
|
-
case
|
2297
|
-
inputClone.predicateGasUsed = (0,
|
2330
|
+
case import_transactions8.InputType.Message: {
|
2331
|
+
inputClone.predicateGasUsed = (0, import_math9.bn)(0);
|
2298
2332
|
return inputClone;
|
2299
2333
|
}
|
2300
|
-
case
|
2334
|
+
case import_transactions8.InputType.Contract: {
|
2301
2335
|
inputClone.txPointer = {
|
2302
2336
|
blockHeight: 0,
|
2303
2337
|
txIndex: 0
|
@@ -2315,18 +2349,18 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2315
2349
|
transaction.outputs = transaction.outputs.map((output) => {
|
2316
2350
|
const outputClone = (0, import_ramda2.clone)(output);
|
2317
2351
|
switch (outputClone.type) {
|
2318
|
-
case
|
2352
|
+
case import_transactions8.OutputType.Contract: {
|
2319
2353
|
outputClone.balanceRoot = import_configs7.ZeroBytes32;
|
2320
2354
|
outputClone.stateRoot = import_configs7.ZeroBytes32;
|
2321
2355
|
return outputClone;
|
2322
2356
|
}
|
2323
|
-
case
|
2324
|
-
outputClone.amount = (0,
|
2357
|
+
case import_transactions8.OutputType.Change: {
|
2358
|
+
outputClone.amount = (0, import_math9.bn)(0);
|
2325
2359
|
return outputClone;
|
2326
2360
|
}
|
2327
|
-
case
|
2361
|
+
case import_transactions8.OutputType.Variable: {
|
2328
2362
|
outputClone.to = import_configs7.ZeroBytes32;
|
2329
|
-
outputClone.amount = (0,
|
2363
|
+
outputClone.amount = (0, import_math9.bn)(0);
|
2330
2364
|
outputClone.assetId = import_configs7.ZeroBytes32;
|
2331
2365
|
return outputClone;
|
2332
2366
|
}
|
@@ -2337,7 +2371,7 @@ function hashTransaction(transactionRequest, chainId) {
|
|
2337
2371
|
transaction.witnessesCount = 0;
|
2338
2372
|
transaction.witnesses = [];
|
2339
2373
|
const chainIdBytes = (0, import_hasher.uint64ToBytesBE)(chainId);
|
2340
|
-
const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new
|
2374
|
+
const concatenatedData = (0, import_utils11.concat)([chainIdBytes, new import_transactions8.TransactionCoder().encode(transaction)]);
|
2341
2375
|
return (0, import_hasher.sha256)(concatenatedData);
|
2342
2376
|
}
|
2343
2377
|
|
@@ -2373,7 +2407,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2373
2407
|
return new this(obj);
|
2374
2408
|
}
|
2375
2409
|
/** Type of the transaction */
|
2376
|
-
type =
|
2410
|
+
type = import_transactions9.TransactionType.Create;
|
2377
2411
|
/** Witness index of contract bytecode to create */
|
2378
2412
|
bytecodeWitnessIndex;
|
2379
2413
|
/** Salt */
|
@@ -2401,10 +2435,10 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2401
2435
|
const bytecodeWitnessIndex = this.bytecodeWitnessIndex;
|
2402
2436
|
const storageSlots = this.storageSlots?.map(storageSlotify) ?? [];
|
2403
2437
|
return {
|
2404
|
-
type:
|
2438
|
+
type: import_transactions9.TransactionType.Create,
|
2405
2439
|
...baseTransaction,
|
2406
2440
|
bytecodeWitnessIndex,
|
2407
|
-
storageSlotsCount: (0,
|
2441
|
+
storageSlotsCount: (0, import_math10.bn)(storageSlots.length),
|
2408
2442
|
salt: this.salt ? (0, import_utils13.hexlify)(this.salt) : import_configs8.ZeroBytes32,
|
2409
2443
|
storageSlots
|
2410
2444
|
};
|
@@ -2416,7 +2450,7 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2416
2450
|
*/
|
2417
2451
|
getContractCreatedOutputs() {
|
2418
2452
|
return this.outputs.filter(
|
2419
|
-
(output) => output.type ===
|
2453
|
+
(output) => output.type === import_transactions9.OutputType.ContractCreated
|
2420
2454
|
);
|
2421
2455
|
}
|
2422
2456
|
/**
|
@@ -2437,14 +2471,14 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2437
2471
|
*/
|
2438
2472
|
addContractCreatedOutput(contractId, stateRoot) {
|
2439
2473
|
this.pushOutput({
|
2440
|
-
type:
|
2474
|
+
type: import_transactions9.OutputType.ContractCreated,
|
2441
2475
|
contractId,
|
2442
2476
|
stateRoot
|
2443
2477
|
});
|
2444
2478
|
}
|
2445
2479
|
metadataGas(gasCosts) {
|
2446
2480
|
return calculateMetadataGasForTxCreate({
|
2447
|
-
contractBytesSize: (0,
|
2481
|
+
contractBytesSize: (0, import_math10.bn)((0, import_utils13.arrayify)(this.witnesses[this.bytecodeWitnessIndex] || "0x").length),
|
2448
2482
|
gasCosts,
|
2449
2483
|
stateRootSize: this.storageSlots.length,
|
2450
2484
|
txBytesSize: this.byteSize()
|
@@ -2456,8 +2490,8 @@ var CreateTransactionRequest = class extends BaseTransactionRequest {
|
|
2456
2490
|
var import_abi_coder3 = require("@fuel-ts/abi-coder");
|
2457
2491
|
var import_address2 = require("@fuel-ts/address");
|
2458
2492
|
var import_configs9 = require("@fuel-ts/address/configs");
|
2459
|
-
var
|
2460
|
-
var
|
2493
|
+
var import_math11 = require("@fuel-ts/math");
|
2494
|
+
var import_transactions10 = require("@fuel-ts/transactions");
|
2461
2495
|
var import_utils15 = require("@fuel-ts/utils");
|
2462
2496
|
|
2463
2497
|
// src/providers/transaction-request/scripts.ts
|
@@ -2495,7 +2529,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2495
2529
|
return new this(obj);
|
2496
2530
|
}
|
2497
2531
|
/** Type of the transaction */
|
2498
|
-
type =
|
2532
|
+
type = import_transactions10.TransactionType.Script;
|
2499
2533
|
/** Gas limit for transaction */
|
2500
2534
|
gasLimit;
|
2501
2535
|
/** Script to execute */
|
@@ -2510,7 +2544,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2510
2544
|
*/
|
2511
2545
|
constructor({ script, scriptData, gasLimit, ...rest } = {}) {
|
2512
2546
|
super(rest);
|
2513
|
-
this.gasLimit = (0,
|
2547
|
+
this.gasLimit = (0, import_math11.bn)(gasLimit);
|
2514
2548
|
this.script = (0, import_utils15.arrayify)(script ?? returnZeroScript.bytes);
|
2515
2549
|
this.scriptData = (0, import_utils15.arrayify)(scriptData ?? returnZeroScript.encodeScriptData());
|
2516
2550
|
this.abis = rest.abis;
|
@@ -2524,11 +2558,11 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2524
2558
|
const script = (0, import_utils15.arrayify)(this.script ?? "0x");
|
2525
2559
|
const scriptData = (0, import_utils15.arrayify)(this.scriptData ?? "0x");
|
2526
2560
|
return {
|
2527
|
-
type:
|
2561
|
+
type: import_transactions10.TransactionType.Script,
|
2528
2562
|
scriptGasLimit: this.gasLimit,
|
2529
2563
|
...super.getBaseTransaction(),
|
2530
|
-
scriptLength: (0,
|
2531
|
-
scriptDataLength: (0,
|
2564
|
+
scriptLength: (0, import_math11.bn)(script.length),
|
2565
|
+
scriptDataLength: (0, import_math11.bn)(scriptData.length),
|
2532
2566
|
receiptsRoot: import_configs9.ZeroBytes32,
|
2533
2567
|
script: (0, import_utils15.hexlify)(script),
|
2534
2568
|
scriptData: (0, import_utils15.hexlify)(scriptData)
|
@@ -2541,7 +2575,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2541
2575
|
*/
|
2542
2576
|
getContractInputs() {
|
2543
2577
|
return this.inputs.filter(
|
2544
|
-
(input) => input.type ===
|
2578
|
+
(input) => input.type === import_transactions10.InputType.Contract
|
2545
2579
|
);
|
2546
2580
|
}
|
2547
2581
|
/**
|
@@ -2551,7 +2585,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2551
2585
|
*/
|
2552
2586
|
getContractOutputs() {
|
2553
2587
|
return this.outputs.filter(
|
2554
|
-
(output) => output.type ===
|
2588
|
+
(output) => output.type === import_transactions10.OutputType.Contract
|
2555
2589
|
);
|
2556
2590
|
}
|
2557
2591
|
/**
|
@@ -2561,7 +2595,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2561
2595
|
*/
|
2562
2596
|
getVariableOutputs() {
|
2563
2597
|
return this.outputs.filter(
|
2564
|
-
(output) => output.type ===
|
2598
|
+
(output) => output.type === import_transactions10.OutputType.Variable
|
2565
2599
|
);
|
2566
2600
|
}
|
2567
2601
|
/**
|
@@ -2584,7 +2618,7 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2584
2618
|
let outputsNumber = numberOfVariables;
|
2585
2619
|
while (outputsNumber) {
|
2586
2620
|
this.pushOutput({
|
2587
|
-
type:
|
2621
|
+
type: import_transactions10.OutputType.Variable
|
2588
2622
|
});
|
2589
2623
|
outputsNumber -= 1;
|
2590
2624
|
}
|
@@ -2621,12 +2655,12 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2621
2655
|
return this;
|
2622
2656
|
}
|
2623
2657
|
const inputIndex = super.pushInput({
|
2624
|
-
type:
|
2658
|
+
type: import_transactions10.InputType.Contract,
|
2625
2659
|
contractId: contractAddress.toB256(),
|
2626
2660
|
txPointer: "0x00000000000000000000000000000000"
|
2627
2661
|
});
|
2628
2662
|
this.pushOutput({
|
2629
|
-
type:
|
2663
|
+
type: import_transactions10.OutputType.Contract,
|
2630
2664
|
inputIndex
|
2631
2665
|
});
|
2632
2666
|
return this;
|
@@ -2663,17 +2697,17 @@ var ScriptTransactionRequest = class extends BaseTransactionRequest {
|
|
2663
2697
|
|
2664
2698
|
// src/providers/transaction-request/utils.ts
|
2665
2699
|
var import_errors9 = require("@fuel-ts/errors");
|
2666
|
-
var
|
2700
|
+
var import_transactions11 = require("@fuel-ts/transactions");
|
2667
2701
|
var transactionRequestify = (obj) => {
|
2668
2702
|
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
|
2669
2703
|
return obj;
|
2670
2704
|
}
|
2671
2705
|
const { type } = obj;
|
2672
2706
|
switch (obj.type) {
|
2673
|
-
case
|
2707
|
+
case import_transactions11.TransactionType.Script: {
|
2674
2708
|
return ScriptTransactionRequest.from(obj);
|
2675
2709
|
}
|
2676
|
-
case
|
2710
|
+
case import_transactions11.TransactionType.Create: {
|
2677
2711
|
return CreateTransactionRequest.from(obj);
|
2678
2712
|
}
|
2679
2713
|
default: {
|
@@ -2681,36 +2715,21 @@ var transactionRequestify = (obj) => {
|
|
2681
2715
|
}
|
2682
2716
|
}
|
2683
2717
|
};
|
2684
|
-
var cacheTxInputsFromOwner = (inputs, owner) => inputs.reduce(
|
2685
|
-
(acc, input) => {
|
2686
|
-
if (input.type === import_transactions10.InputType.Coin && input.owner === owner.toB256()) {
|
2687
|
-
acc.utxos.push(input.id);
|
2688
|
-
}
|
2689
|
-
if (input.type === import_transactions10.InputType.Message && input.recipient === owner.toB256()) {
|
2690
|
-
acc.messages.push(input.nonce);
|
2691
|
-
}
|
2692
|
-
return acc;
|
2693
|
-
},
|
2694
|
-
{
|
2695
|
-
utxos: [],
|
2696
|
-
messages: []
|
2697
|
-
}
|
2698
|
-
);
|
2699
2718
|
|
2700
2719
|
// src/providers/transaction-response/transaction-response.ts
|
2701
2720
|
var import_errors13 = require("@fuel-ts/errors");
|
2702
2721
|
var import_math16 = require("@fuel-ts/math");
|
2703
|
-
var
|
2722
|
+
var import_transactions19 = require("@fuel-ts/transactions");
|
2704
2723
|
var import_utils20 = require("@fuel-ts/utils");
|
2705
2724
|
|
2706
2725
|
// src/providers/transaction-summary/assemble-transaction-summary.ts
|
2707
2726
|
var import_math15 = require("@fuel-ts/math");
|
2708
|
-
var
|
2727
|
+
var import_transactions17 = require("@fuel-ts/transactions");
|
2709
2728
|
var import_utils18 = require("@fuel-ts/utils");
|
2710
2729
|
|
2711
2730
|
// src/providers/transaction-summary/calculate-tx-fee-for-summary.ts
|
2712
|
-
var
|
2713
|
-
var
|
2731
|
+
var import_math12 = require("@fuel-ts/math");
|
2732
|
+
var import_transactions12 = require("@fuel-ts/transactions");
|
2714
2733
|
var import_utils16 = require("@fuel-ts/utils");
|
2715
2734
|
var calculateTXFeeForSummary = (params) => {
|
2716
2735
|
const {
|
@@ -2723,19 +2742,19 @@ var calculateTXFeeForSummary = (params) => {
|
|
2723
2742
|
if (totalFee) {
|
2724
2743
|
return totalFee;
|
2725
2744
|
}
|
2726
|
-
const gasPerByte = (0,
|
2727
|
-
const gasPriceFactor = (0,
|
2745
|
+
const gasPerByte = (0, import_math12.bn)(feeParams.gasPerByte);
|
2746
|
+
const gasPriceFactor = (0, import_math12.bn)(feeParams.gasPriceFactor);
|
2728
2747
|
const transactionBytes = (0, import_utils16.arrayify)(rawPayload);
|
2729
|
-
const [transaction] = new
|
2748
|
+
const [transaction] = new import_transactions12.TransactionCoder().decode(transactionBytes, 0);
|
2730
2749
|
const { type, witnesses, inputs, policies } = transaction;
|
2731
|
-
let metadataGas = (0,
|
2732
|
-
let gasLimit = (0,
|
2733
|
-
if (type !==
|
2734
|
-
return (0,
|
2750
|
+
let metadataGas = (0, import_math12.bn)(0);
|
2751
|
+
let gasLimit = (0, import_math12.bn)(0);
|
2752
|
+
if (type !== import_transactions12.TransactionType.Create && type !== import_transactions12.TransactionType.Script) {
|
2753
|
+
return (0, import_math12.bn)(0);
|
2735
2754
|
}
|
2736
|
-
if (type ===
|
2755
|
+
if (type === import_transactions12.TransactionType.Create) {
|
2737
2756
|
const { bytecodeWitnessIndex, storageSlots } = transaction;
|
2738
|
-
const contractBytesSize = (0,
|
2757
|
+
const contractBytesSize = (0, import_math12.bn)((0, import_utils16.arrayify)(witnesses[bytecodeWitnessIndex].data).length);
|
2739
2758
|
metadataGas = calculateMetadataGasForTxCreate({
|
2740
2759
|
contractBytesSize,
|
2741
2760
|
gasCosts,
|
@@ -2754,12 +2773,12 @@ var calculateTXFeeForSummary = (params) => {
|
|
2754
2773
|
}
|
2755
2774
|
const minGas = getMinGas({
|
2756
2775
|
gasCosts,
|
2757
|
-
gasPerByte: (0,
|
2776
|
+
gasPerByte: (0, import_math12.bn)(gasPerByte),
|
2758
2777
|
inputs,
|
2759
2778
|
metadataGas,
|
2760
2779
|
txBytesSize: transactionBytes.length
|
2761
2780
|
});
|
2762
|
-
const witnessLimit = policies.find((policy) => policy.type ===
|
2781
|
+
const witnessLimit = policies.find((policy) => policy.type === import_transactions12.PolicyType.WitnessLimit)?.data;
|
2763
2782
|
const witnessesLength = witnesses.reduce((acc, wit) => acc + wit.dataLength, 0);
|
2764
2783
|
const maxGas = getMaxGas({
|
2765
2784
|
gasPerByte,
|
@@ -2782,42 +2801,31 @@ var calculateTXFeeForSummary = (params) => {
|
|
2782
2801
|
var import_configs10 = require("@fuel-ts/address/configs");
|
2783
2802
|
var import_errors11 = require("@fuel-ts/errors");
|
2784
2803
|
var import_math13 = require("@fuel-ts/math");
|
2785
|
-
var
|
2804
|
+
var import_transactions15 = require("@fuel-ts/transactions");
|
2786
2805
|
|
2787
2806
|
// src/providers/transaction-summary/call.ts
|
2788
2807
|
var import_abi_coder4 = require("@fuel-ts/abi-coder");
|
2789
|
-
var
|
2790
|
-
var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
2808
|
+
var getFunctionCall = ({ abi, receipt }) => {
|
2791
2809
|
const abiInterface = new import_abi_coder4.Interface(abi);
|
2792
2810
|
const callFunctionSelector = receipt.param1.toHex(8);
|
2793
2811
|
const functionFragment = abiInterface.getFunction(callFunctionSelector);
|
2794
2812
|
const inputs = functionFragment.jsonFn.inputs;
|
2795
|
-
|
2796
|
-
if (functionFragment.isInputDataPointer) {
|
2797
|
-
if (rawPayload) {
|
2798
|
-
const argsOffset = (0, import_math12.bn)(receipt.param2).sub((0, import_abi_coder4.calculateVmTxMemory)({ maxInputs: maxInputs.toNumber() })).toNumber();
|
2799
|
-
encodedArgs = `0x${rawPayload.slice(2).slice(argsOffset * 2)}`;
|
2800
|
-
}
|
2801
|
-
} else {
|
2802
|
-
encodedArgs = receipt.param2.toHex();
|
2803
|
-
}
|
2813
|
+
const encodedArgs = receipt.param2.toHex();
|
2804
2814
|
let argumentsProvided;
|
2805
|
-
|
2806
|
-
|
2807
|
-
|
2808
|
-
|
2809
|
-
|
2810
|
-
|
2811
|
-
|
2812
|
-
|
2813
|
-
|
2814
|
-
|
2815
|
-
|
2816
|
-
|
2817
|
-
|
2818
|
-
|
2819
|
-
}, {});
|
2820
|
-
}
|
2815
|
+
const data = functionFragment.decodeArguments(encodedArgs);
|
2816
|
+
if (data) {
|
2817
|
+
argumentsProvided = inputs.reduce((prev, input, index) => {
|
2818
|
+
const value = data[index];
|
2819
|
+
const name = input.name;
|
2820
|
+
if (name) {
|
2821
|
+
return {
|
2822
|
+
...prev,
|
2823
|
+
// reparse to remove bn
|
2824
|
+
[name]: JSON.parse(JSON.stringify(value))
|
2825
|
+
};
|
2826
|
+
}
|
2827
|
+
return prev;
|
2828
|
+
}, {});
|
2821
2829
|
}
|
2822
2830
|
const call = {
|
2823
2831
|
functionSignature: functionFragment.signature,
|
@@ -2830,7 +2838,7 @@ var getFunctionCall = ({ abi, receipt, rawPayload, maxInputs }) => {
|
|
2830
2838
|
|
2831
2839
|
// src/providers/transaction-summary/input.ts
|
2832
2840
|
var import_errors10 = require("@fuel-ts/errors");
|
2833
|
-
var
|
2841
|
+
var import_transactions13 = require("@fuel-ts/transactions");
|
2834
2842
|
function getInputsByTypes(inputs, types) {
|
2835
2843
|
return inputs.filter((i) => types.includes(i.type));
|
2836
2844
|
}
|
@@ -2838,16 +2846,16 @@ function getInputsByType(inputs, type) {
|
|
2838
2846
|
return inputs.filter((i) => i.type === type);
|
2839
2847
|
}
|
2840
2848
|
function getInputsCoin(inputs) {
|
2841
|
-
return getInputsByType(inputs,
|
2849
|
+
return getInputsByType(inputs, import_transactions13.InputType.Coin);
|
2842
2850
|
}
|
2843
2851
|
function getInputsMessage(inputs) {
|
2844
|
-
return getInputsByType(inputs,
|
2852
|
+
return getInputsByType(inputs, import_transactions13.InputType.Message);
|
2845
2853
|
}
|
2846
2854
|
function getInputsCoinAndMessage(inputs) {
|
2847
|
-
return getInputsByTypes(inputs, [
|
2855
|
+
return getInputsByTypes(inputs, [import_transactions13.InputType.Coin, import_transactions13.InputType.Message]);
|
2848
2856
|
}
|
2849
2857
|
function getInputsContract(inputs) {
|
2850
|
-
return getInputsByType(inputs,
|
2858
|
+
return getInputsByType(inputs, import_transactions13.InputType.Contract);
|
2851
2859
|
}
|
2852
2860
|
function getInputFromAssetId(inputs, assetId) {
|
2853
2861
|
const coinInputs = getInputsCoin(inputs);
|
@@ -2866,7 +2874,7 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2866
2874
|
if (!contractInput) {
|
2867
2875
|
return void 0;
|
2868
2876
|
}
|
2869
|
-
if (contractInput.type !==
|
2877
|
+
if (contractInput.type !== import_transactions13.InputType.Contract) {
|
2870
2878
|
throw new import_errors10.FuelError(
|
2871
2879
|
import_errors10.ErrorCode.INVALID_TRANSACTION_INPUT,
|
2872
2880
|
`Contract input should be of type 'contract'.`
|
@@ -2875,31 +2883,31 @@ function getInputContractFromIndex(inputs, inputIndex) {
|
|
2875
2883
|
return contractInput;
|
2876
2884
|
}
|
2877
2885
|
function getInputAccountAddress(input) {
|
2878
|
-
if (input.type ===
|
2886
|
+
if (input.type === import_transactions13.InputType.Coin) {
|
2879
2887
|
return input.owner.toString();
|
2880
2888
|
}
|
2881
|
-
if (input.type ===
|
2889
|
+
if (input.type === import_transactions13.InputType.Message) {
|
2882
2890
|
return input.recipient.toString();
|
2883
2891
|
}
|
2884
2892
|
return "";
|
2885
2893
|
}
|
2886
2894
|
|
2887
2895
|
// src/providers/transaction-summary/output.ts
|
2888
|
-
var
|
2896
|
+
var import_transactions14 = require("@fuel-ts/transactions");
|
2889
2897
|
function getOutputsByType(outputs, type) {
|
2890
2898
|
return outputs.filter((o) => o.type === type);
|
2891
2899
|
}
|
2892
2900
|
function getOutputsContractCreated(outputs) {
|
2893
|
-
return getOutputsByType(outputs,
|
2901
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.ContractCreated);
|
2894
2902
|
}
|
2895
2903
|
function getOutputsCoin(outputs) {
|
2896
|
-
return getOutputsByType(outputs,
|
2904
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.Coin);
|
2897
2905
|
}
|
2898
2906
|
function getOutputsChange(outputs) {
|
2899
|
-
return getOutputsByType(outputs,
|
2907
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.Change);
|
2900
2908
|
}
|
2901
2909
|
function getOutputsContract(outputs) {
|
2902
|
-
return getOutputsByType(outputs,
|
2910
|
+
return getOutputsByType(outputs, import_transactions14.OutputType.Contract);
|
2903
2911
|
}
|
2904
2912
|
|
2905
2913
|
// src/providers/transaction-summary/operations.ts
|
@@ -2908,11 +2916,11 @@ function getReceiptsByType(receipts, type) {
|
|
2908
2916
|
}
|
2909
2917
|
function getTransactionTypeName(transactionType) {
|
2910
2918
|
switch (transactionType) {
|
2911
|
-
case
|
2919
|
+
case import_transactions15.TransactionType.Mint:
|
2912
2920
|
return "Mint" /* Mint */;
|
2913
|
-
case
|
2921
|
+
case import_transactions15.TransactionType.Create:
|
2914
2922
|
return "Create" /* Create */;
|
2915
|
-
case
|
2923
|
+
case import_transactions15.TransactionType.Script:
|
2916
2924
|
return "Script" /* Script */;
|
2917
2925
|
default:
|
2918
2926
|
throw new import_errors11.FuelError(
|
@@ -2941,10 +2949,10 @@ function isTypeUpload(transactionType) {
|
|
2941
2949
|
return isType(transactionType, "Upload" /* Upload */);
|
2942
2950
|
}
|
2943
2951
|
function getReceiptsCall(receipts) {
|
2944
|
-
return getReceiptsByType(receipts,
|
2952
|
+
return getReceiptsByType(receipts, import_transactions15.ReceiptType.Call);
|
2945
2953
|
}
|
2946
2954
|
function getReceiptsMessageOut(receipts) {
|
2947
|
-
return getReceiptsByType(receipts,
|
2955
|
+
return getReceiptsByType(receipts, import_transactions15.ReceiptType.MessageOut);
|
2948
2956
|
}
|
2949
2957
|
var mergeAssets = (op1, op2) => {
|
2950
2958
|
const assets1 = op1.assetsSent || [];
|
@@ -3140,11 +3148,11 @@ function getTransferOperations({
|
|
3140
3148
|
});
|
3141
3149
|
const transferReceipts = getReceiptsByType(
|
3142
3150
|
receipts,
|
3143
|
-
|
3151
|
+
import_transactions15.ReceiptType.Transfer
|
3144
3152
|
);
|
3145
3153
|
const transferOutReceipts = getReceiptsByType(
|
3146
3154
|
receipts,
|
3147
|
-
|
3155
|
+
import_transactions15.ReceiptType.TransferOut
|
3148
3156
|
);
|
3149
3157
|
[...transferReceipts, ...transferOutReceipts].forEach((receipt) => {
|
3150
3158
|
const operation = extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs);
|
@@ -3229,17 +3237,17 @@ function getOperations({
|
|
3229
3237
|
}
|
3230
3238
|
|
3231
3239
|
// src/providers/transaction-summary/receipt.ts
|
3232
|
-
var
|
3240
|
+
var import_transactions16 = require("@fuel-ts/transactions");
|
3233
3241
|
var processGqlReceipt = (gqlReceipt) => {
|
3234
3242
|
const receipt = assembleReceiptByType(gqlReceipt);
|
3235
3243
|
switch (receipt.type) {
|
3236
|
-
case
|
3244
|
+
case import_transactions16.ReceiptType.ReturnData: {
|
3237
3245
|
return {
|
3238
3246
|
...receipt,
|
3239
3247
|
data: gqlReceipt.data || "0x"
|
3240
3248
|
};
|
3241
3249
|
}
|
3242
|
-
case
|
3250
|
+
case import_transactions16.ReceiptType.LogData: {
|
3243
3251
|
return {
|
3244
3252
|
...receipt,
|
3245
3253
|
data: gqlReceipt.data || "0x"
|
@@ -3252,7 +3260,7 @@ var processGqlReceipt = (gqlReceipt) => {
|
|
3252
3260
|
var extractMintedAssetsFromReceipts = (receipts) => {
|
3253
3261
|
const mintedAssets = [];
|
3254
3262
|
receipts.forEach((receipt) => {
|
3255
|
-
if (receipt.type ===
|
3263
|
+
if (receipt.type === import_transactions16.ReceiptType.Mint) {
|
3256
3264
|
mintedAssets.push({
|
3257
3265
|
subId: receipt.subId,
|
3258
3266
|
contractId: receipt.contractId,
|
@@ -3266,7 +3274,7 @@ var extractMintedAssetsFromReceipts = (receipts) => {
|
|
3266
3274
|
var extractBurnedAssetsFromReceipts = (receipts) => {
|
3267
3275
|
const burnedAssets = [];
|
3268
3276
|
receipts.forEach((receipt) => {
|
3269
|
-
if (receipt.type ===
|
3277
|
+
if (receipt.type === import_transactions16.ReceiptType.Burn) {
|
3270
3278
|
burnedAssets.push({
|
3271
3279
|
subId: receipt.subId,
|
3272
3280
|
contractId: receipt.contractId,
|
@@ -3372,7 +3380,7 @@ function assembleTransactionSummary(params) {
|
|
3372
3380
|
maxInputs
|
3373
3381
|
});
|
3374
3382
|
const typeName = getTransactionTypeName(transaction.type);
|
3375
|
-
const tip = (0, import_math15.bn)(transaction.policies?.find((policy) => policy.type ===
|
3383
|
+
const tip = (0, import_math15.bn)(transaction.policies?.find((policy) => policy.type === import_transactions17.PolicyType.Tip)?.data);
|
3376
3384
|
const { isStatusFailure, isStatusPending, isStatusSuccess, blockId, status, time, totalFee } = processGraphqlStatus(gqlTransactionStatus);
|
3377
3385
|
const fee = calculateTXFeeForSummary({
|
3378
3386
|
totalFee,
|
@@ -3423,12 +3431,12 @@ function assembleTransactionSummary(params) {
|
|
3423
3431
|
|
3424
3432
|
// src/providers/transaction-response/getDecodedLogs.ts
|
3425
3433
|
var import_abi_coder5 = require("@fuel-ts/abi-coder");
|
3426
|
-
var
|
3434
|
+
var import_transactions18 = require("@fuel-ts/transactions");
|
3427
3435
|
function getDecodedLogs(receipts, mainAbi, externalAbis = {}) {
|
3428
3436
|
return receipts.reduce((logs, receipt) => {
|
3429
|
-
if (receipt.type ===
|
3437
|
+
if (receipt.type === import_transactions18.ReceiptType.LogData || receipt.type === import_transactions18.ReceiptType.Log) {
|
3430
3438
|
const interfaceToUse = new import_abi_coder5.Interface(externalAbis[receipt.id] || mainAbi);
|
3431
|
-
const data = receipt.type ===
|
3439
|
+
const data = receipt.type === import_transactions18.ReceiptType.Log ? new import_abi_coder5.BigNumberCoder("u64").encode(receipt.val0) : receipt.data;
|
3432
3440
|
const [decodedLog] = interfaceToUse.decodeLog(data, receipt.val1.toNumber());
|
3433
3441
|
logs.push(decodedLog);
|
3434
3442
|
}
|
@@ -3501,7 +3509,7 @@ var TransactionResponse = class {
|
|
3501
3509
|
* @returns The decoded transaction.
|
3502
3510
|
*/
|
3503
3511
|
decodeTransaction(transactionWithReceipts) {
|
3504
|
-
return new
|
3512
|
+
return new import_transactions19.TransactionCoder().decode(
|
3505
3513
|
(0, import_utils20.arrayify)(transactionWithReceipts.rawPayload),
|
3506
3514
|
0
|
3507
3515
|
)?.[0];
|
@@ -3982,7 +3990,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
3982
3990
|
}
|
3983
3991
|
const encodedTransaction = (0, import_utils22.hexlify)(transactionRequest.toTransactionBytes());
|
3984
3992
|
let abis;
|
3985
|
-
if (transactionRequest.type ===
|
3993
|
+
if (transactionRequest.type === import_transactions20.TransactionType.Script) {
|
3986
3994
|
abis = transactionRequest.abis;
|
3987
3995
|
}
|
3988
3996
|
if (awaitExecution) {
|
@@ -4074,7 +4082,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4074
4082
|
* @returns A promise.
|
4075
4083
|
*/
|
4076
4084
|
async estimateTxDependencies(transactionRequest) {
|
4077
|
-
if (transactionRequest.type ===
|
4085
|
+
if (transactionRequest.type === import_transactions20.TransactionType.Create) {
|
4078
4086
|
return {
|
4079
4087
|
receipts: [],
|
4080
4088
|
outputVariables: 0,
|
@@ -4138,7 +4146,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4138
4146
|
const allRequests = (0, import_ramda3.clone)(transactionRequests);
|
4139
4147
|
const serializedTransactionsMap = /* @__PURE__ */ new Map();
|
4140
4148
|
allRequests.forEach((req, index) => {
|
4141
|
-
if (req.type ===
|
4149
|
+
if (req.type === import_transactions20.TransactionType.Script) {
|
4142
4150
|
serializedTransactionsMap.set(index, (0, import_utils22.hexlify)(req.toTransactionBytes()));
|
4143
4151
|
}
|
4144
4152
|
});
|
@@ -4164,7 +4172,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4164
4172
|
);
|
4165
4173
|
const hasMissingOutputs = missingOutputVariables.length > 0 || missingOutputContractIds.length > 0;
|
4166
4174
|
const request = allRequests[requestIdx];
|
4167
|
-
if (hasMissingOutputs && request?.type ===
|
4175
|
+
if (hasMissingOutputs && request?.type === import_transactions20.TransactionType.Script) {
|
4168
4176
|
result.outputVariables += missingOutputVariables.length;
|
4169
4177
|
request.addVariableOutputs(missingOutputVariables.length);
|
4170
4178
|
missingOutputContractIds.forEach(({ contractId }) => {
|
@@ -4220,7 +4228,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4220
4228
|
tip: transactionRequest.tip
|
4221
4229
|
}).add(1);
|
4222
4230
|
let gasLimit = (0, import_math17.bn)(0);
|
4223
|
-
if (transactionRequest.type ===
|
4231
|
+
if (transactionRequest.type === import_transactions20.TransactionType.Script) {
|
4224
4232
|
gasLimit = transactionRequest.gasLimit;
|
4225
4233
|
if (transactionRequest.gasLimit.eq(0)) {
|
4226
4234
|
transactionRequest.gasLimit = minGas;
|
@@ -4290,7 +4298,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4290
4298
|
*/
|
4291
4299
|
async getTransactionCost(transactionRequestLike, { resourcesOwner, signatureCallback, quantitiesToContract = [] } = {}) {
|
4292
4300
|
const txRequestClone = (0, import_ramda3.clone)(transactionRequestify(transactionRequestLike));
|
4293
|
-
const isScriptTransaction = txRequestClone.type ===
|
4301
|
+
const isScriptTransaction = txRequestClone.type === import_transactions20.TransactionType.Script;
|
4294
4302
|
const baseAssetId = this.getBaseAssetId();
|
4295
4303
|
const updateMaxFee = txRequestClone.maxFee.eq(0);
|
4296
4304
|
const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
|
@@ -4514,7 +4522,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4514
4522
|
time: block.header.time,
|
4515
4523
|
transactionIds: block.transactions.map((tx) => tx.id),
|
4516
4524
|
transactions: block.transactions.map(
|
4517
|
-
(tx) => new
|
4525
|
+
(tx) => new import_transactions20.TransactionCoder().decode((0, import_utils22.arrayify)(tx.rawPayload), 0)?.[0]
|
4518
4526
|
)
|
4519
4527
|
};
|
4520
4528
|
}
|
@@ -4529,7 +4537,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4529
4537
|
if (!transaction) {
|
4530
4538
|
return null;
|
4531
4539
|
}
|
4532
|
-
return new
|
4540
|
+
return new import_transactions20.TransactionCoder().decode(
|
4533
4541
|
(0, import_utils22.arrayify)(transaction.rawPayload),
|
4534
4542
|
0
|
4535
4543
|
)?.[0];
|
@@ -4609,7 +4617,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4609
4617
|
});
|
4610
4618
|
const messages = result.messages.edges.map((edge) => edge.node);
|
4611
4619
|
return messages.map((message) => ({
|
4612
|
-
messageId:
|
4620
|
+
messageId: import_transactions20.InputMessageCoder.getMessageId({
|
4613
4621
|
sender: message.sender,
|
4614
4622
|
recipient: message.recipient,
|
4615
4623
|
nonce: message.nonce,
|
@@ -4620,7 +4628,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
4620
4628
|
recipient: import_address3.Address.fromAddressOrString(message.recipient),
|
4621
4629
|
nonce: message.nonce,
|
4622
4630
|
amount: (0, import_math17.bn)(message.amount),
|
4623
|
-
data:
|
4631
|
+
data: import_transactions20.InputMessageCoder.decodeData(message.data),
|
4624
4632
|
daHeight: (0, import_math17.bn)(message.daHeight)
|
4625
4633
|
}));
|
4626
4634
|
}
|
@@ -4786,7 +4794,7 @@ cacheInputs_fn = function(inputs) {
|
|
4786
4794
|
return;
|
4787
4795
|
}
|
4788
4796
|
inputs.forEach((input) => {
|
4789
|
-
if (input.type ===
|
4797
|
+
if (input.type === import_transactions20.InputType.Coin) {
|
4790
4798
|
this.cache?.set(input.id);
|
4791
4799
|
}
|
4792
4800
|
});
|
@@ -4797,7 +4805,7 @@ __publicField(Provider, "nodeInfoCache", {});
|
|
4797
4805
|
// src/providers/transaction-summary/get-transaction-summary.ts
|
4798
4806
|
var import_errors15 = require("@fuel-ts/errors");
|
4799
4807
|
var import_math18 = require("@fuel-ts/math");
|
4800
|
-
var
|
4808
|
+
var import_transactions21 = require("@fuel-ts/transactions");
|
4801
4809
|
var import_utils25 = require("@fuel-ts/utils");
|
4802
4810
|
|
4803
4811
|
// src/providers/chains.ts
|
@@ -4871,31 +4879,15 @@ var rawAssets = [
|
|
4871
4879
|
];
|
4872
4880
|
var assets = resolveIconPaths(rawAssets, fuelAssetsBaseUrl);
|
4873
4881
|
|
4874
|
-
// src/providers/transaction-request/helpers.ts
|
4875
|
-
var import_math19 = require("@fuel-ts/math");
|
4876
|
-
var import_transactions21 = require("@fuel-ts/transactions");
|
4877
|
-
var isRequestInputCoin = (input) => input.type === import_transactions21.InputType.Coin;
|
4878
|
-
var isRequestInputMessage = (input) => input.type === import_transactions21.InputType.Message;
|
4879
|
-
var isRequestInputResource = (input) => isRequestInputCoin(input) || isRequestInputMessage(input);
|
4880
|
-
var getAssetAmountInRequestInputs = (inputs, assetId, baseAsset) => inputs.filter(isRequestInputResource).reduce((acc, input) => {
|
4881
|
-
if (isRequestInputCoin(input) && input.assetId === assetId) {
|
4882
|
-
return acc.add(input.amount);
|
4883
|
-
}
|
4884
|
-
if (isRequestInputMessage(input) && assetId === baseAsset) {
|
4885
|
-
return acc.add(input.amount);
|
4886
|
-
}
|
4887
|
-
return acc;
|
4888
|
-
}, (0, import_math19.bn)(0));
|
4889
|
-
|
4890
4882
|
// src/utils/formatTransferToContractScriptData.ts
|
4891
4883
|
var import_abi_coder6 = require("@fuel-ts/abi-coder");
|
4892
|
-
var
|
4884
|
+
var import_math19 = require("@fuel-ts/math");
|
4893
4885
|
var import_utils27 = require("@fuel-ts/utils");
|
4894
4886
|
var asm = __toESM(require("@fuels/vm-asm"));
|
4895
4887
|
var formatTransferToContractScriptData = (params) => {
|
4896
4888
|
const { assetId, amountToTransfer, hexlifiedContractId } = params;
|
4897
4889
|
const numberCoder = new import_abi_coder6.BigNumberCoder("u64");
|
4898
|
-
const encoded = numberCoder.encode(new
|
4890
|
+
const encoded = numberCoder.encode(new import_math19.BN(amountToTransfer).toNumber());
|
4899
4891
|
const scriptData = Uint8Array.from([
|
4900
4892
|
...(0, import_utils27.arrayify)(hexlifiedContractId),
|
4901
4893
|
...encoded,
|
@@ -5090,9 +5082,9 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5090
5082
|
const { addedSignatures, estimatedPredicates, requiredQuantities, updateMaxFee } = params;
|
5091
5083
|
const fee = request.maxFee;
|
5092
5084
|
const baseAssetId = this.provider.getBaseAssetId();
|
5093
|
-
const requiredInBaseAsset = requiredQuantities.find((quantity) => quantity.assetId === baseAssetId)?.amount || (0,
|
5085
|
+
const requiredInBaseAsset = requiredQuantities.find((quantity) => quantity.assetId === baseAssetId)?.amount || (0, import_math20.bn)(0);
|
5094
5086
|
const requiredQuantitiesWithFee = addAmountToCoinQuantities({
|
5095
|
-
amount: (0,
|
5087
|
+
amount: (0, import_math20.bn)(fee),
|
5096
5088
|
assetId: baseAssetId,
|
5097
5089
|
coinQuantities: requiredQuantities
|
5098
5090
|
});
|
@@ -5100,7 +5092,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5100
5092
|
requiredQuantitiesWithFee.forEach(({ amount, assetId }) => {
|
5101
5093
|
quantitiesDict[assetId] = {
|
5102
5094
|
required: amount,
|
5103
|
-
owned: (0,
|
5095
|
+
owned: (0, import_math20.bn)(0)
|
5104
5096
|
};
|
5105
5097
|
});
|
5106
5098
|
request.inputs.filter(isRequestInputResource).forEach((input) => {
|
@@ -5124,10 +5116,9 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5124
5116
|
while (needsToBeFunded && fundingAttempts < MAX_FUNDING_ATTEMPTS) {
|
5125
5117
|
const resources = await this.getResourcesToSpend(
|
5126
5118
|
missingQuantities,
|
5127
|
-
|
5119
|
+
cacheRequestInputsResourcesFromOwner(request.inputs, this.address)
|
5128
5120
|
);
|
5129
5121
|
request.addResources(resources);
|
5130
|
-
request.shiftPredicateData();
|
5131
5122
|
request.updatePredicateGasUsed(estimatedPredicates);
|
5132
5123
|
const requestToReestimate2 = (0, import_ramda4.clone)(request);
|
5133
5124
|
if (addedSignatures) {
|
@@ -5159,7 +5150,6 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5159
5150
|
}
|
5160
5151
|
fundingAttempts += 1;
|
5161
5152
|
}
|
5162
|
-
request.shiftPredicateData();
|
5163
5153
|
request.updatePredicateGasUsed(estimatedPredicates);
|
5164
5154
|
const requestToReestimate = (0, import_ramda4.clone)(request);
|
5165
5155
|
if (addedSignatures) {
|
@@ -5210,7 +5200,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5210
5200
|
* @returns A promise that resolves to the transaction response.
|
5211
5201
|
*/
|
5212
5202
|
async transfer(destination, amount, assetId, txParams = {}) {
|
5213
|
-
if ((0,
|
5203
|
+
if ((0, import_math20.bn)(amount).lte(0)) {
|
5214
5204
|
throw new import_errors16.FuelError(
|
5215
5205
|
import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
|
5216
5206
|
"Transfer amount must be a positive number."
|
@@ -5230,7 +5220,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5230
5220
|
* @returns A promise that resolves to the transaction response.
|
5231
5221
|
*/
|
5232
5222
|
async transferToContract(contractId, amount, assetId, txParams = {}) {
|
5233
|
-
if ((0,
|
5223
|
+
if ((0, import_math20.bn)(amount).lte(0)) {
|
5234
5224
|
throw new import_errors16.FuelError(
|
5235
5225
|
import_errors16.ErrorCode.INVALID_TRANSFER_AMOUNT,
|
5236
5226
|
"Transfer amount must be a positive number."
|
@@ -5240,7 +5230,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5240
5230
|
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
5241
5231
|
const { script, scriptData } = await assembleTransferToContractScript({
|
5242
5232
|
hexlifiedContractId: contractAddress.toB256(),
|
5243
|
-
amountToTransfer: (0,
|
5233
|
+
amountToTransfer: (0, import_math20.bn)(amount),
|
5244
5234
|
assetId: assetIdToTransfer
|
5245
5235
|
});
|
5246
5236
|
let request = new ScriptTransactionRequest({
|
@@ -5251,7 +5241,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5251
5241
|
request.addContractInputAndOutput(contractAddress);
|
5252
5242
|
const txCost = await this.provider.getTransactionCost(request, {
|
5253
5243
|
resourcesOwner: this,
|
5254
|
-
quantitiesToContract: [{ amount: (0,
|
5244
|
+
quantitiesToContract: [{ amount: (0, import_math20.bn)(amount), assetId: String(assetIdToTransfer) }]
|
5255
5245
|
});
|
5256
5246
|
request = this.validateGasLimitAndMaxFee({
|
5257
5247
|
transactionRequest: request,
|
@@ -5276,7 +5266,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5276
5266
|
"0x".concat(recipientAddress.toHexString().substring(2).padStart(64, "0"))
|
5277
5267
|
);
|
5278
5268
|
const amountDataArray = (0, import_utils28.arrayify)(
|
5279
|
-
"0x".concat((0,
|
5269
|
+
"0x".concat((0, import_math20.bn)(amount).toHex().substring(2).padStart(16, "0"))
|
5280
5270
|
);
|
5281
5271
|
const script = new Uint8Array([
|
5282
5272
|
...(0, import_utils28.arrayify)(withdrawScript.bytes),
|
@@ -5286,7 +5276,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5286
5276
|
const params = { script, ...txParams };
|
5287
5277
|
const baseAssetId = this.provider.getBaseAssetId();
|
5288
5278
|
let request = new ScriptTransactionRequest(params);
|
5289
|
-
const quantitiesToContract = [{ amount: (0,
|
5279
|
+
const quantitiesToContract = [{ amount: (0, import_math20.bn)(amount), assetId: baseAssetId }];
|
5290
5280
|
const txCost = await this.provider.getTransactionCost(request, { quantitiesToContract });
|
5291
5281
|
request = this.validateGasLimitAndMaxFee({
|
5292
5282
|
transactionRequest: request,
|
@@ -5383,7 +5373,7 @@ var Account = class extends import_interfaces.AbstractAccount {
|
|
5383
5373
|
var import_address5 = require("@fuel-ts/address");
|
5384
5374
|
var import_crypto2 = require("@fuel-ts/crypto");
|
5385
5375
|
var import_hasher2 = require("@fuel-ts/hasher");
|
5386
|
-
var
|
5376
|
+
var import_math21 = require("@fuel-ts/math");
|
5387
5377
|
var import_utils29 = require("@fuel-ts/utils");
|
5388
5378
|
var import_secp256k1 = require("@noble/curves/secp256k1");
|
5389
5379
|
var Signer = class {
|
@@ -5403,7 +5393,7 @@ var Signer = class {
|
|
5403
5393
|
privateKey = `0x${privateKey}`;
|
5404
5394
|
}
|
5405
5395
|
}
|
5406
|
-
const privateKeyBytes = (0,
|
5396
|
+
const privateKeyBytes = (0, import_math21.toBytes)(privateKey, 32);
|
5407
5397
|
this.privateKey = (0, import_utils29.hexlify)(privateKeyBytes);
|
5408
5398
|
this.publicKey = (0, import_utils29.hexlify)(import_secp256k1.secp256k1.getPublicKey(privateKeyBytes, false).slice(1));
|
5409
5399
|
this.compressedPublicKey = (0, import_utils29.hexlify)(import_secp256k1.secp256k1.getPublicKey(privateKeyBytes, true));
|
@@ -5421,8 +5411,8 @@ var Signer = class {
|
|
5421
5411
|
*/
|
5422
5412
|
sign(data) {
|
5423
5413
|
const signature = import_secp256k1.secp256k1.sign((0, import_utils29.arrayify)(data), (0, import_utils29.arrayify)(this.privateKey));
|
5424
|
-
const r = (0,
|
5425
|
-
const s = (0,
|
5414
|
+
const r = (0, import_math21.toBytes)(`0x${signature.r.toString(16)}`, 32);
|
5415
|
+
const s = (0, import_math21.toBytes)(`0x${signature.s.toString(16)}`, 32);
|
5426
5416
|
s[0] |= (signature.recovery || 0) << 7;
|
5427
5417
|
return (0, import_utils29.hexlify)((0, import_utils29.concat)([r, s]));
|
5428
5418
|
}
|
@@ -5692,18 +5682,17 @@ var BaseWalletUnlocked = class extends Account {
|
|
5692
5682
|
__publicField(BaseWalletUnlocked, "defaultPath", "m/44'/1179993420'/0'/0/0");
|
5693
5683
|
|
5694
5684
|
// src/hdwallet/hdwallet.ts
|
5685
|
+
var import_crypto5 = require("@fuel-ts/crypto");
|
5695
5686
|
var import_errors20 = require("@fuel-ts/errors");
|
5696
5687
|
var import_hasher6 = require("@fuel-ts/hasher");
|
5697
|
-
var
|
5688
|
+
var import_math22 = require("@fuel-ts/math");
|
5698
5689
|
var import_utils35 = require("@fuel-ts/utils");
|
5699
|
-
var import_ethers2 = require("ethers");
|
5700
5690
|
|
5701
5691
|
// src/mnemonic/mnemonic.ts
|
5702
5692
|
var import_crypto4 = require("@fuel-ts/crypto");
|
5703
5693
|
var import_errors19 = require("@fuel-ts/errors");
|
5704
5694
|
var import_hasher5 = require("@fuel-ts/hasher");
|
5705
5695
|
var import_utils33 = require("@fuel-ts/utils");
|
5706
|
-
var import_ethers = require("ethers");
|
5707
5696
|
|
5708
5697
|
// src/wordlists/words/english.ts
|
5709
5698
|
var english = [
|
@@ -7761,38 +7750,6 @@ var english = [
|
|
7761
7750
|
var import_errors18 = require("@fuel-ts/errors");
|
7762
7751
|
var import_hasher4 = require("@fuel-ts/hasher");
|
7763
7752
|
var import_utils32 = require("@fuel-ts/utils");
|
7764
|
-
function toUtf8Bytes(stri) {
|
7765
|
-
const str = stri.normalize("NFKD");
|
7766
|
-
const result = [];
|
7767
|
-
for (let i = 0; i < str.length; i += 1) {
|
7768
|
-
const c = str.charCodeAt(i);
|
7769
|
-
if (c < 128) {
|
7770
|
-
result.push(c);
|
7771
|
-
} else if (c < 2048) {
|
7772
|
-
result.push(c >> 6 | 192);
|
7773
|
-
result.push(c & 63 | 128);
|
7774
|
-
} else if ((c & 64512) === 55296) {
|
7775
|
-
i += 1;
|
7776
|
-
const c2 = str.charCodeAt(i);
|
7777
|
-
if (i >= str.length || (c2 & 64512) !== 56320) {
|
7778
|
-
throw new import_errors18.FuelError(
|
7779
|
-
import_errors18.ErrorCode.INVALID_INPUT_PARAMETERS,
|
7780
|
-
"Invalid UTF-8 in the input string."
|
7781
|
-
);
|
7782
|
-
}
|
7783
|
-
const pair = 65536 + ((c & 1023) << 10) + (c2 & 1023);
|
7784
|
-
result.push(pair >> 18 | 240);
|
7785
|
-
result.push(pair >> 12 & 63 | 128);
|
7786
|
-
result.push(pair >> 6 & 63 | 128);
|
7787
|
-
result.push(pair & 63 | 128);
|
7788
|
-
} else {
|
7789
|
-
result.push(c >> 12 | 224);
|
7790
|
-
result.push(c >> 6 & 63 | 128);
|
7791
|
-
result.push(c & 63 | 128);
|
7792
|
-
}
|
7793
|
-
}
|
7794
|
-
return Uint8Array.from(result);
|
7795
|
-
}
|
7796
7753
|
function getLowerMask(bits) {
|
7797
7754
|
return (1 << bits) - 1;
|
7798
7755
|
}
|
@@ -7865,7 +7822,7 @@ function mnemonicWordsToEntropy(words, wordlist) {
|
|
7865
7822
|
}
|
7866
7823
|
|
7867
7824
|
// src/mnemonic/mnemonic.ts
|
7868
|
-
var MasterSecret = toUtf8Bytes("Bitcoin seed");
|
7825
|
+
var MasterSecret = (0, import_utils33.toUtf8Bytes)("Bitcoin seed");
|
7869
7826
|
var MainnetPRV = "0x0488ade4";
|
7870
7827
|
var TestnetPRV = "0x04358394";
|
7871
7828
|
var MNEMONIC_SIZES = [12, 15, 18, 21, 24];
|
@@ -7949,9 +7906,9 @@ var Mnemonic = class {
|
|
7949
7906
|
*/
|
7950
7907
|
static mnemonicToSeed(phrase, passphrase = "") {
|
7951
7908
|
assertMnemonic(getWords(phrase));
|
7952
|
-
const phraseBytes = toUtf8Bytes(getPhrase(phrase));
|
7953
|
-
const salt = toUtf8Bytes(`mnemonic${passphrase}`);
|
7954
|
-
return (0,
|
7909
|
+
const phraseBytes = (0, import_utils33.toUtf8Bytes)(getPhrase(phrase));
|
7910
|
+
const salt = (0, import_utils33.toUtf8Bytes)(`mnemonic${passphrase}`);
|
7911
|
+
return (0, import_crypto4.pbkdf2)(phraseBytes, salt, 2048, 64, "sha512");
|
7955
7912
|
}
|
7956
7913
|
/**
|
7957
7914
|
* @param phrase - Mnemonic phrase composed by words from the provided wordlist
|
@@ -8013,7 +7970,7 @@ var Mnemonic = class {
|
|
8013
7970
|
`Seed length should be between 16 and 64 bytes, but received ${seedArray.length} bytes.`
|
8014
7971
|
);
|
8015
7972
|
}
|
8016
|
-
return (0, import_utils33.arrayify)((0,
|
7973
|
+
return (0, import_utils33.arrayify)((0, import_crypto4.computeHmac)("sha512", MasterSecret, seedArray));
|
8017
7974
|
}
|
8018
7975
|
/**
|
8019
7976
|
* Get the extendKey as defined on BIP-32 from the provided seed
|
@@ -8038,8 +7995,8 @@ var Mnemonic = class {
|
|
8038
7995
|
chainCode,
|
8039
7996
|
(0, import_utils33.concat)(["0x00", privateKey])
|
8040
7997
|
]);
|
8041
|
-
const checksum = (0,
|
8042
|
-
return (0,
|
7998
|
+
const checksum = (0, import_utils33.dataSlice)((0, import_hasher5.sha256)((0, import_hasher5.sha256)(extendedKey)), 0, 4);
|
7999
|
+
return (0, import_utils33.encodeBase58)((0, import_utils33.concat)([extendedKey, checksum]));
|
8043
8000
|
}
|
8044
8001
|
/**
|
8045
8002
|
* Create a new mnemonic using a randomly generated number as entropy.
|
@@ -8067,7 +8024,7 @@ var MainnetPUB = (0, import_utils35.hexlify)("0x0488b21e");
|
|
8067
8024
|
var TestnetPRV2 = (0, import_utils35.hexlify)("0x04358394");
|
8068
8025
|
var TestnetPUB = (0, import_utils35.hexlify)("0x043587cf");
|
8069
8026
|
function base58check(data) {
|
8070
|
-
return (0,
|
8027
|
+
return (0, import_utils35.encodeBase58)((0, import_utils35.concat)([data, (0, import_utils35.dataSlice)((0, import_hasher6.sha256)((0, import_hasher6.sha256)(data)), 0, 4)]));
|
8071
8028
|
}
|
8072
8029
|
function getExtendedKeyPrefix(isPublic = false, testnet = false) {
|
8073
8030
|
if (isPublic) {
|
@@ -8123,7 +8080,7 @@ var HDWallet = class {
|
|
8123
8080
|
this.publicKey = (0, import_utils35.hexlify)(config.publicKey);
|
8124
8081
|
}
|
8125
8082
|
this.parentFingerprint = config.parentFingerprint || this.parentFingerprint;
|
8126
|
-
this.fingerprint = (0,
|
8083
|
+
this.fingerprint = (0, import_utils35.dataSlice)((0, import_crypto5.ripemd160)((0, import_hasher6.sha256)(this.publicKey)), 0, 4);
|
8127
8084
|
this.depth = config.depth || this.depth;
|
8128
8085
|
this.index = config.index || this.index;
|
8129
8086
|
this.chainCode = config.chainCode;
|
@@ -8154,13 +8111,13 @@ var HDWallet = class {
|
|
8154
8111
|
} else {
|
8155
8112
|
data.set((0, import_utils35.arrayify)(this.publicKey));
|
8156
8113
|
}
|
8157
|
-
data.set((0,
|
8158
|
-
const bytes = (0, import_utils35.arrayify)((0,
|
8114
|
+
data.set((0, import_math22.toBytes)(index, 4), 33);
|
8115
|
+
const bytes = (0, import_utils35.arrayify)((0, import_crypto5.computeHmac)("sha512", chainCode, data));
|
8159
8116
|
const IL = bytes.slice(0, 32);
|
8160
8117
|
const IR = bytes.slice(32);
|
8161
8118
|
if (privateKey) {
|
8162
8119
|
const N = "0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141";
|
8163
|
-
const ki = (0,
|
8120
|
+
const ki = (0, import_math22.bn)(IL).add(privateKey).mod(N).toBytes(32);
|
8164
8121
|
return new HDWallet({
|
8165
8122
|
privateKey: ki,
|
8166
8123
|
chainCode: IR,
|
@@ -8206,7 +8163,7 @@ var HDWallet = class {
|
|
8206
8163
|
const prefix = getExtendedKeyPrefix(this.privateKey == null || isPublic, testnet);
|
8207
8164
|
const depth = (0, import_utils35.hexlify)(Uint8Array.from([this.depth]));
|
8208
8165
|
const parentFingerprint = this.parentFingerprint;
|
8209
|
-
const index = (0,
|
8166
|
+
const index = (0, import_math22.toHex)(this.index, 4);
|
8210
8167
|
const chainCode = this.chainCode;
|
8211
8168
|
const key = this.privateKey != null && !isPublic ? (0, import_utils35.concat)(["0x00", this.privateKey]) : this.publicKey;
|
8212
8169
|
const extendedKey = (0, import_utils35.arrayify)((0, import_utils35.concat)([prefix, depth, parentFingerprint, index, chainCode, key]));
|
@@ -8226,7 +8183,7 @@ var HDWallet = class {
|
|
8226
8183
|
});
|
8227
8184
|
}
|
8228
8185
|
static fromExtendedKey(extendedKey) {
|
8229
|
-
const decoded = (0,
|
8186
|
+
const decoded = (0, import_utils35.hexlify)((0, import_math22.toBytes)((0, import_utils35.decodeBase58)(extendedKey)));
|
8230
8187
|
const bytes = (0, import_utils35.arrayify)(decoded);
|
8231
8188
|
const validChecksum = base58check(bytes.slice(0, 78)) === extendedKey;
|
8232
8189
|
if (bytes.length !== 82 || !isValidExtendedKey(bytes)) {
|
@@ -8425,17 +8382,19 @@ __publicField(Wallet, "fromExtendedKey", WalletUnlocked.fromExtendedKey);
|
|
8425
8382
|
__publicField(Wallet, "fromEncryptedJson", WalletUnlocked.fromEncryptedJson);
|
8426
8383
|
|
8427
8384
|
// src/test-utils/seedTestWallet.ts
|
8428
|
-
var
|
8429
|
-
var seedTestWallet = async (wallet, quantities) => {
|
8430
|
-
const
|
8431
|
-
|
8432
|
-
|
8433
|
-
);
|
8385
|
+
var import_crypto6 = require("@fuel-ts/crypto");
|
8386
|
+
var seedTestWallet = async (wallet, quantities, utxosAmount = 1) => {
|
8387
|
+
const accountsToBeFunded = Array.isArray(wallet) ? wallet : [wallet];
|
8388
|
+
const [{ provider }] = accountsToBeFunded;
|
8389
|
+
const genesisWallet = new WalletUnlocked(process.env.GENESIS_SECRET || (0, import_crypto6.randomBytes)(32), provider);
|
8434
8390
|
const request = new ScriptTransactionRequest();
|
8435
|
-
quantities.forEach(
|
8436
|
-
|
8437
|
-
|
8438
|
-
|
8391
|
+
quantities.map(coinQuantityfy).forEach(
|
8392
|
+
({ amount, assetId }) => accountsToBeFunded.forEach(({ address }) => {
|
8393
|
+
for (let i = 0; i < utxosAmount; i++) {
|
8394
|
+
request.addCoinOutput(address, amount.div(utxosAmount), assetId);
|
8395
|
+
}
|
8396
|
+
})
|
8397
|
+
);
|
8439
8398
|
const txCost = await genesisWallet.provider.getTransactionCost(request);
|
8440
8399
|
request.gasLimit = txCost.gasUsed;
|
8441
8400
|
request.maxFee = txCost.maxFee;
|
@@ -8454,11 +8413,11 @@ var generateTestWallet = async (provider, quantities) => {
|
|
8454
8413
|
|
8455
8414
|
// src/test-utils/launchNode.ts
|
8456
8415
|
var import_abi_coder7 = require("@fuel-ts/abi-coder");
|
8457
|
-
var
|
8416
|
+
var import_crypto7 = require("@fuel-ts/crypto");
|
8458
8417
|
var import_utils36 = require("@fuel-ts/utils");
|
8459
8418
|
var import_cli_utils = require("@fuel-ts/utils/cli-utils");
|
8460
8419
|
var import_child_process = require("child_process");
|
8461
|
-
var
|
8420
|
+
var import_crypto8 = require("crypto");
|
8462
8421
|
var import_fs = require("fs");
|
8463
8422
|
var import_os = __toESM(require("os"));
|
8464
8423
|
var import_path = __toESM(require("path"));
|
@@ -8530,7 +8489,7 @@ var launchNode = async ({
|
|
8530
8489
|
})).toString();
|
8531
8490
|
let snapshotDirToUse;
|
8532
8491
|
const prefix = basePath || import_os.default.tmpdir();
|
8533
|
-
const suffix = basePath ? "" : (0,
|
8492
|
+
const suffix = basePath ? "" : (0, import_crypto8.randomUUID)();
|
8534
8493
|
const tempDirPath = import_path.default.join(prefix, ".fuels", suffix, "snapshotDir");
|
8535
8494
|
if (snapshotDir) {
|
8536
8495
|
snapshotDirToUse = snapshotDir;
|
@@ -8559,7 +8518,7 @@ var launchNode = async ({
|
|
8559
8518
|
const signer = new Signer(pk);
|
8560
8519
|
process.env.GENESIS_SECRET = (0, import_utils36.hexlify)(pk);
|
8561
8520
|
stateConfigJson.coins.push({
|
8562
|
-
tx_id: (0, import_utils36.hexlify)((0,
|
8521
|
+
tx_id: (0, import_utils36.hexlify)((0, import_crypto7.randomBytes)(import_abi_coder7.UTXO_ID_LEN)),
|
8563
8522
|
owner: signer.address.toHexString(),
|
8564
8523
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
8565
8524
|
amount: "18446744073709551615",
|