本文整理汇总了C++中LedgerManager::getCurrentLedgerVersion方法的典型用法代码示例。如果您正苦于以下问题:C++ LedgerManager::getCurrentLedgerVersion方法的具体用法?C++ LedgerManager::getCurrentLedgerVersion怎么用?C++ LedgerManager::getCurrentLedgerVersion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LedgerManager
的用法示例。
在下文中一共展示了LedgerManager::getCurrentLedgerVersion方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
bool
AllowTrustOpFrame::doApply(Application& app, LedgerDelta& delta,
LedgerManager& ledgerManager)
{
if (ledgerManager.getCurrentLedgerVersion() > 2)
{
if (mAllowTrust.trustor == getSourceID())
{ // since version 3 it is not
// allowed to use ALLOW_TRUST on
// self
app.getMetrics()
.NewMeter({"op-allow-trust", "failure", "trust-self"},
"operation")
.Mark();
innerResult().code(ALLOW_TRUST_SELF_NOT_ALLOWED);
return false;
}
}
if (!(mSourceAccount->getAccount().flags & AUTH_REQUIRED_FLAG))
{ // this account doesn't require authorization to
// hold credit
app.getMetrics()
.NewMeter({"op-allow-trust", "failure", "not-required"},
"operation")
.Mark();
innerResult().code(ALLOW_TRUST_TRUST_NOT_REQUIRED);
return false;
}
if (!(mSourceAccount->getAccount().flags & AUTH_REVOCABLE_FLAG) &&
!mAllowTrust.authorize)
{
app.getMetrics()
.NewMeter({"op-allow-trust", "failure", "cant-revoke"}, "operation")
.Mark();
innerResult().code(ALLOW_TRUST_CANT_REVOKE);
return false;
}
Asset ci;
ci.type(mAllowTrust.asset.type());
if (mAllowTrust.asset.type() == ASSET_TYPE_CREDIT_ALPHANUM4)
{
ci.alphaNum4().assetCode = mAllowTrust.asset.assetCode4();
ci.alphaNum4().issuer = getSourceID();
}
else if (mAllowTrust.asset.type() == ASSET_TYPE_CREDIT_ALPHANUM12)
{
ci.alphaNum12().assetCode = mAllowTrust.asset.assetCode12();
ci.alphaNum12().issuer = getSourceID();
}
Database& db = ledgerManager.getDatabase();
TrustFrame::pointer trustLine;
trustLine = TrustFrame::loadTrustLine(mAllowTrust.trustor, ci, db, &delta);
if (!trustLine)
{
app.getMetrics()
.NewMeter({"op-allow-trust", "failure", "no-trust-line"},
"operation")
.Mark();
innerResult().code(ALLOW_TRUST_NO_TRUST_LINE);
return false;
}
app.getMetrics()
.NewMeter({"op-allow-trust", "success", "apply"}, "operation")
.Mark();
innerResult().code(ALLOW_TRUST_SUCCESS);
trustLine->setAuthorized(mAllowTrust.authorize);
trustLine->storeChange(delta, db);
return true;
}