Merge branch 'ximinez/lending-refactoring-4' into ximinez/lending-XLS-66

This commit is contained in:
Ed Hennis
2025-09-04 16:44:10 -04:00
committed by GitHub
6 changed files with 36 additions and 93 deletions

View File

@@ -76,6 +76,8 @@ enum Privilege {
// object (except by issuer)
mayAuthorizeMPT = 0x0200, // The transaction MAY create or delete an MPT
// object (except by issuer)
mayDeleteMPT =
0x0400, // The transaction MAY delete an MPT object. May not create.
};
constexpr Privilege
operator|(Privilege lhs, Privilege rhs)
@@ -1587,10 +1589,9 @@ ValidMPTIssuance::finalize(
return true;
}
if ((tx.getTxnType() == ttVAULT_CLAWBACK ||
tx.getTxnType() == ttVAULT_WITHDRAW) &&
mptokensDeleted_ == 1 && mptokensCreated_ == 0 &&
mptIssuancesCreated_ == 0 && mptIssuancesDeleted_ == 0)
if (hasPrivilege(tx, mayDeleteMPT) && mptokensDeleted_ == 1 &&
mptokensCreated_ == 0 && mptIssuancesCreated_ == 0 &&
mptIssuancesDeleted_ == 0)
return true;
}

View File

@@ -700,15 +700,12 @@ Transactor::checkSign(
}
// Check Single Sign
// This ternary is only needed to handle `simulate`
XRPL_ASSERT(
!pkSigner.empty(),
"ripple::Transactor::checkSingleSign : non-empty signer or simulation");
!pkSigner.empty(), "ripple::Transactor::checkSign : non-empty signer");
if (!publicKeyType(makeSlice(pkSigner)))
{
JLOG(ctx.j.trace())
<< "checkSingleSign: signing public key type is unknown";
JLOG(ctx.j.trace()) << "checkSign: signing public key type is unknown";
return tefBAD_AUTH; // FIXME: should be better error!
}
@@ -838,7 +835,6 @@ Transactor::checkSingleSign(
return tesSUCCESS;
}
// TODO generalize
NotTEC
Transactor::checkMultiSign(
PreclaimContext const& ctx,