@fuel-ts/account 0.0.0-rc-1962-20240328175938 → 0.0.0-rc-1895-20240328175953
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @fuel-ts/account might be problematic. Click here for more details.
- package/dist/index.global.js +128 -12
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +541 -468
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +318 -240
- package/dist/index.mjs.map +1 -1
- package/dist/providers/transaction-response/transaction-response.d.ts.map +1 -1
- package/dist/providers/utils/extract-tx-error.d.ts +30 -0
- package/dist/providers/utils/extract-tx-error.d.ts.map +1 -0
- package/dist/providers/utils/index.d.ts +1 -0
- package/dist/providers/utils/index.d.ts.map +1 -1
- package/dist/test-utils.global.js +128 -12
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +501 -434
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +288 -213
- package/dist/test-utils.mjs.map +1 -1
- package/package.json +16 -16
package/dist/index.global.js
CHANGED
@@ -33960,7 +33960,7 @@ This unreleased fuel-core build may include features and updates not yet support
|
|
33960
33960
|
return [receiptMessageOut, o];
|
33961
33961
|
}
|
33962
33962
|
};
|
33963
|
-
var
|
33963
|
+
var getAssetId = (contractId, subId) => {
|
33964
33964
|
const contractIdBytes = arrayify(contractId);
|
33965
33965
|
const subIdBytes = arrayify(subId);
|
33966
33966
|
return sha2563(concat([contractIdBytes, subIdBytes]));
|
@@ -33970,7 +33970,7 @@ This unreleased fuel-core build may include features and updates not yet support
|
|
33970
33970
|
super("ReceiptMint", "struct ReceiptMint", 0);
|
33971
33971
|
}
|
33972
33972
|
static getAssetId(contractId, subId) {
|
33973
|
-
return
|
33973
|
+
return getAssetId(contractId, subId);
|
33974
33974
|
}
|
33975
33975
|
encode(value) {
|
33976
33976
|
const parts = [];
|
@@ -34012,7 +34012,7 @@ This unreleased fuel-core build may include features and updates not yet support
|
|
34012
34012
|
super("ReceiptBurn", "struct ReceiptBurn", 0);
|
34013
34013
|
}
|
34014
34014
|
static getAssetId(contractId, subId) {
|
34015
|
-
return
|
34015
|
+
return getAssetId(contractId, subId);
|
34016
34016
|
}
|
34017
34017
|
encode(value) {
|
34018
34018
|
const parts = [];
|
@@ -38962,7 +38962,60 @@ ${MessageCoinFragmentFragmentDoc}`;
|
|
38962
38962
|
var MAX_SCRIPT_DATA_LENGTH = 1024 * 1024 * 1024;
|
38963
38963
|
var MAX_PREDICATE_LENGTH = 1024 * 1024;
|
38964
38964
|
var MAX_PREDICATE_DATA_LENGTH = 1024 * 1024;
|
38965
|
+
var FAILED_REQUIRE_SIGNAL = "0xffffffffffff0000";
|
38965
38966
|
var FAILED_TRANSFER_TO_ADDRESS_SIGNAL = "0xffffffffffff0001";
|
38967
|
+
var FAILED_ASSERT_EQ_SIGNAL = "0xffffffffffff0003";
|
38968
|
+
var FAILED_ASSERT_SIGNAL = "0xffffffffffff0004";
|
38969
|
+
var FAILED_ASSERT_NE_SIGNAL = "0xffffffffffff0005";
|
38970
|
+
var PANIC_REASONS = [
|
38971
|
+
"UnknownPanicReason",
|
38972
|
+
"Revert",
|
38973
|
+
"OutOfGas",
|
38974
|
+
"TransactionValidity",
|
38975
|
+
"MemoryOverflow",
|
38976
|
+
"ArithmeticOverflow",
|
38977
|
+
"ContractNotFound",
|
38978
|
+
"MemoryOwnership",
|
38979
|
+
"NotEnoughBalance",
|
38980
|
+
"ExpectedInternalContext",
|
38981
|
+
"AssetIdNotFound",
|
38982
|
+
"InputNotFound",
|
38983
|
+
"OutputNotFound",
|
38984
|
+
"WitnessNotFound",
|
38985
|
+
"TransactionMaturity",
|
38986
|
+
"InvalidMetadataIdentifier",
|
38987
|
+
"MalformedCallStructure",
|
38988
|
+
"ReservedRegisterNotWritable",
|
38989
|
+
"InvalidFlags",
|
38990
|
+
"InvalidImmediateValue",
|
38991
|
+
"ExpectedCoinInput",
|
38992
|
+
"EcalError",
|
38993
|
+
"MemoryWriteOverlap",
|
38994
|
+
"ContractNotInInputs",
|
38995
|
+
"InternalBalanceOverflow",
|
38996
|
+
"ContractMaxSize",
|
38997
|
+
"ExpectedUnallocatedStack",
|
38998
|
+
"MaxStaticContractsReached",
|
38999
|
+
"TransferAmountCannotBeZero",
|
39000
|
+
"ExpectedOutputVariable",
|
39001
|
+
"ExpectedParentInternalContext",
|
39002
|
+
"PredicateReturnedNonOne",
|
39003
|
+
"ContractIdAlreadyDeployed",
|
39004
|
+
"ContractMismatch",
|
39005
|
+
"MessageDataTooLong",
|
39006
|
+
"ArithmeticError",
|
39007
|
+
"ContractInstructionNotAllowed",
|
39008
|
+
"TransferZeroCoins",
|
39009
|
+
"InvalidInstruction",
|
39010
|
+
"MemoryNotExecutable",
|
39011
|
+
"PolicyIsNotSet",
|
39012
|
+
"PolicyNotFound",
|
39013
|
+
"TooManyReceipts",
|
39014
|
+
"BalanceOverflow",
|
39015
|
+
"InvalidBlockHeight",
|
39016
|
+
"TooManySlots"
|
39017
|
+
];
|
39018
|
+
var PANIC_DOC_URL = "https://docs.rs/fuel-asm/latest/fuel_asm/enum.PanicReason.html";
|
38966
39019
|
|
38967
39020
|
// src/providers/utils/receipts.ts
|
38968
39021
|
var doesReceiptHaveMissingOutputVariables = (receipt) => receipt.type === ReceiptType.Revert && receipt.val.toString("hex") === FAILED_TRANSFER_TO_ADDRESS_SIGNAL;
|
@@ -39336,6 +39389,64 @@ ${MessageCoinFragmentFragmentDoc}`;
|
|
39336
39389
|
});
|
39337
39390
|
}
|
39338
39391
|
|
39392
|
+
// src/providers/utils/extract-tx-error.ts
|
39393
|
+
var assemblePanicError = (status) => {
|
39394
|
+
let errorMessage = `The transaction reverted with reason: "${status.reason}".`;
|
39395
|
+
if (PANIC_REASONS.includes(status.reason)) {
|
39396
|
+
errorMessage = `${errorMessage}
|
39397
|
+
|
39398
|
+
You can read more about this error at:
|
39399
|
+
|
39400
|
+
${PANIC_DOC_URL}#variant.${status.reason}`;
|
39401
|
+
}
|
39402
|
+
return errorMessage;
|
39403
|
+
};
|
39404
|
+
var stringify2 = (obj) => JSON.stringify(obj, null, 2);
|
39405
|
+
var assembleRevertError = (receipts, logs) => {
|
39406
|
+
let errorMessage = "The transaction reverted with an unknown reason.";
|
39407
|
+
const revertReceipt = receipts.find(({ type: type3 }) => type3 === ReceiptType.Revert);
|
39408
|
+
if (revertReceipt) {
|
39409
|
+
const reasonHex = bn(revertReceipt.val).toHex();
|
39410
|
+
switch (reasonHex) {
|
39411
|
+
case FAILED_REQUIRE_SIGNAL: {
|
39412
|
+
errorMessage = `The transaction reverted because a "require" statement has thrown ${logs.length ? stringify2(logs[0]) : "an error."}.`;
|
39413
|
+
break;
|
39414
|
+
}
|
39415
|
+
case FAILED_ASSERT_EQ_SIGNAL: {
|
39416
|
+
const sufix = logs.length >= 2 ? ` comparing ${stringify2(logs[1])} and ${stringify2(logs[0])}.` : ".";
|
39417
|
+
errorMessage = `The transaction reverted because of an "assert_eq" statement${sufix}`;
|
39418
|
+
break;
|
39419
|
+
}
|
39420
|
+
case FAILED_ASSERT_NE_SIGNAL: {
|
39421
|
+
const sufix = logs.length >= 2 ? ` comparing ${stringify2(logs[1])} and ${stringify2(logs[0])}.` : ".";
|
39422
|
+
errorMessage = `The transaction reverted because of an "assert_ne" statement${sufix}`;
|
39423
|
+
break;
|
39424
|
+
}
|
39425
|
+
case FAILED_ASSERT_SIGNAL:
|
39426
|
+
errorMessage = `The transaction reverted because an "assert" statement failed to evaluate to true.`;
|
39427
|
+
break;
|
39428
|
+
case FAILED_TRANSFER_TO_ADDRESS_SIGNAL:
|
39429
|
+
errorMessage = `The transaction reverted because it's missing an "OutputChange".`;
|
39430
|
+
break;
|
39431
|
+
default:
|
39432
|
+
errorMessage = `The transaction reverted with an unknown reason: ${revertReceipt.val}`;
|
39433
|
+
}
|
39434
|
+
}
|
39435
|
+
return errorMessage;
|
39436
|
+
};
|
39437
|
+
var extractTxError = (params) => {
|
39438
|
+
const { receipts, status, logs } = params;
|
39439
|
+
const isPanic = receipts.some(({ type: type3 }) => type3 === ReceiptType.Panic);
|
39440
|
+
let err = status?.type === "FailureStatus" && isPanic ? assemblePanicError(status) : assembleRevertError(receipts, logs);
|
39441
|
+
err += `
|
39442
|
+
|
39443
|
+
logs: ${JSON.stringify(logs, null, 2)}`;
|
39444
|
+
err += `
|
39445
|
+
|
39446
|
+
receipts: ${JSON.stringify(receipts, null, 2)}`;
|
39447
|
+
return new FuelError(ErrorCode.SCRIPT_REVERTED, err);
|
39448
|
+
};
|
39449
|
+
|
39339
39450
|
// src/providers/transaction-request/errors.ts
|
39340
39451
|
var ChangeOutputCollisionError = class extends Error {
|
39341
39452
|
name = "ChangeOutputCollisionError";
|
@@ -41152,14 +41263,26 @@ ${MessageCoinFragmentFragmentDoc}`;
|
|
41152
41263
|
gqlTransaction: this.gqlTransaction,
|
41153
41264
|
...transactionSummary
|
41154
41265
|
};
|
41266
|
+
let logs = [];
|
41155
41267
|
if (this.abis) {
|
41156
|
-
|
41268
|
+
logs = getDecodedLogs(
|
41157
41269
|
transactionSummary.receipts,
|
41158
41270
|
this.abis.main,
|
41159
41271
|
this.abis.otherContractsAbis
|
41160
41272
|
);
|
41161
41273
|
transactionResult.logs = logs;
|
41162
41274
|
}
|
41275
|
+
if (transactionResult.isStatusFailure) {
|
41276
|
+
const {
|
41277
|
+
receipts,
|
41278
|
+
gqlTransaction: { status }
|
41279
|
+
} = transactionResult;
|
41280
|
+
throw extractTxError({
|
41281
|
+
receipts,
|
41282
|
+
status,
|
41283
|
+
logs
|
41284
|
+
});
|
41285
|
+
}
|
41163
41286
|
return transactionResult;
|
41164
41287
|
}
|
41165
41288
|
/**
|
@@ -41168,14 +41291,7 @@ ${MessageCoinFragmentFragmentDoc}`;
|
|
41168
41291
|
* @param contractsAbiMap - The contracts ABI map.
|
41169
41292
|
*/
|
41170
41293
|
async wait(contractsAbiMap) {
|
41171
|
-
|
41172
|
-
if (result.isStatusFailure) {
|
41173
|
-
throw new FuelError(
|
41174
|
-
ErrorCode.TRANSACTION_FAILED,
|
41175
|
-
`Transaction failed: ${result.gqlTransaction.status.reason}`
|
41176
|
-
);
|
41177
|
-
}
|
41178
|
-
return result;
|
41294
|
+
return this.waitForResult(contractsAbiMap);
|
41179
41295
|
}
|
41180
41296
|
};
|
41181
41297
|
|