mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Allow an account to be exclusively multisigned (RIPD-182):
An account can be made signable with only its regular key by disabling the master key. Now an account can also be made exclusively multisigned by both disabling the master key and having no regular key. In order to prevent an account from becoming unsignable the network uses these rules: o An account can always add or replace a regular key or a SignerList as long as the fee and reserve can be met by the account. o The master key on an account can be disabled if either a regular key or a SignerList (or both) is present on the account. Either the regular key or the SignerList can be used to re-enable the master key later if that is desired. o The regular key on an account may only be removed if either the master key is enabled or the account has a SignerList (or both). o The SignerList on an account may only be removed if either the master key is enabled or a regular key is present (or both). As a consequence of this change, the tecMASTER_DISABLED error code is renamed to tecNO_ALTERNATIVE_KEY. The error code number (130 decimal) is unchanged.
This commit is contained in:
@@ -76,12 +76,14 @@ private:
|
||||
AccountID const& account,
|
||||
beast::Journal j);
|
||||
|
||||
TER replaceSignerList (uint256 const& index);
|
||||
TER destroySignerList (uint256 const& index);
|
||||
TER replaceSignerList ();
|
||||
TER destroySignerList ();
|
||||
|
||||
void writeSignersToLedger (SLE::pointer ledgerEntry);
|
||||
TER removeSignersFromLedger (Keylet const& accountKeylet,
|
||||
Keylet const& ownerDirKeylet, Keylet const& signerListKeylet);
|
||||
void writeSignersToSLE (SLE::pointer const& ledgerEntry) const;
|
||||
|
||||
static std::size_t ownerCountDelta (std::size_t entryCount);
|
||||
static int ownerCountDelta (std::size_t entryCount);
|
||||
};
|
||||
|
||||
} // ripple
|
||||
|
||||
Reference in New Issue
Block a user