You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.
If a transaction references a system account that doesn't yet exist, the runtime creates one automatically. The "feature" introduces two problems:
A transfer to a public key with a typo will succeed, effectively burning all tokens by accident.
It's not available to arbitrary programs, which require a space parameter. Consequently, we see CreateAccount being used with an unused from key and zero lamports, suggesting CreateAccount is doing too much. It's an Allocate and a Transfer, when only an Allocate is needed.
Proposed Solution
Remove the automatic account creation feature.
Add new instruction Allocate, which should be the same as CreateAccount, but with no from or lamports parameters. Consider removing CreateAccount.
This issue has been automatically locked since there has not been any activity in past 7 days after it was closed. Please open a new issue for related bugs.
Problem
If a transaction references a system account that doesn't yet exist, the runtime creates one automatically. The "feature" introduces two problems:
space
parameter. Consequently, we seeCreateAccount
being used with an unusedfrom
key and zerolamports
, suggestingCreateAccount
is doing too much. It's anAllocate
and aTransfer
, when only anAllocate
is needed.Proposed Solution
Allocate
, which should be the same asCreateAccount
, but with nofrom
orlamports
parameters. Consider removingCreateAccount
.cc: @rob-solana @aeyakovenko
The text was updated successfully, but these errors were encountered: