Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As discussed in #13 (comment) we should be referring to predecessor account id here instead of signer account. I thought about it a bit more and it seemed as if using predecessor account id could also result in undesired behaviour. Instead I went with maximal security decision to ensure this method can only be called by account holder directly.
Using SignerAccountId: could result in accountA signing a contract execution on accountB which internally makes a cross-contract call to
set_key
and thus overwriting accountA's key.Using PredecessorAccountId: Means that the same a user would not necessarily be able to use a contract to set their own key, since they are transacting through an intermediary contract with a different ID.
predecessor_account_id
here is in case walletA has multiple signers and one of those signers would like to set the key for walletA, then signer_i would want to execute set_key via walletA contract. I guess I will have to change this.