Create a wrapper message to create new vesting accounts
Describe the Issue
MsgCreateVestingAccount from auth module is currently disabled in the ante handler for the following reason:
- The message can be used to block new evm account from being created. For contract with deterministic address using
CREATE2, this causes issues because a user can front-run and prevent developer from deploying their contract by creating a vesting account
We can consider an approach where the signer must provide a signer message of the new vesting account to prove it is an externally owner account (not yet initialized)
Expected Solution
We create a wrapper message in one of our module MsgCreateVestingAccount .
We add to the message the public key associated with the to address and the signature of the message to sign.
For the message to sign I think we can keep it simple and use vesting account deployment, here replay attack is not a concern, we use this signature to prove this is an externally owned account.
For the module to implement the wrapper, even though we don't have a module related to this functionality, I don't think this makes sense to create a new module just for this message. I think we can implement it in fungible module as the module is already used to manipulate tokens