EOSIO / eosio.contracts

Smart contracts that provide some of the basic functions of the EOSIO blockchain
https://eosio.github.io/eosio.contracts/latest
MIT License
326 stars 500 forks source link

eosio newaccount ACTION might has an issue. #565

Closed cs2world closed 3 years ago

cs2world commented 3 years ago

TRY this on Jungle3 testnet cleos $T push action eosio newaccount '{"creator" : "1test2tester", "name" : "test11test22", "owner" : {"threshold": 1, "keys": [{"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "weight": 1}], "accounts": [], "waits": []}, "active" : {"threshold": 1, "keys": [{"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "weight": 1}], "accounts": [], "waits": []}}' -p 1test2tester@active Error 3080001: Account using more than allotted RAM usage Error Details: account test11test22 has insufficient ram; needs 2996 bytes has 0 bytes It responded with an error, the creator should pay the RAM for the new user, right? Is this an issue, or the system, designed like this? If yes, this action is no use for other accounts except eosio. Thanks for your answer.

deckb commented 3 years ago

The newaccount action name is a bit of a misnomer as it by itself cannot create an account. If you look at the output from the call cleos system newaccount you can see two actions are called:

cleos system newaccount eosio test EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV --stake-cpu "0.000 EOS" --stake-net "0.0000 EOS" --buy-ram-bytes 3000 -j -d -s | grep name
      "name": "newaccount",
      "name": "buyrambytes",

Note if I were to give non-zero values to --stake-net and --stake-cpu there would be a third action delegatebw

You should use the cleos system newaccount command to create new accounts or generate a transaction with newaccount and buyrambytes.