Разница между eth.newAccount и personel.newAccount

Может ли кто-нибудь объяснить разницу между

`eth.accounts.create()` and `eth.personal.newAccount()`

и какой из них мы должны использовать и почему? Поскольку я новичок в Эфириуме, это меня очень сбивает с толку. Спасибо

Ответы (2)

Из документации определение для обоих немного отличается


эт.аккаунты

Web3.eth.accounts содержит функции для создания учетных записей Ethereum и подписи транзакций и данных.

Есть только один параметр, который

  • entropy — строка (необязательно): случайное сильное значение для увеличения энтропии. Если он задан, он должен содержать не менее 32 символов. Если ничего не указано, будет сгенерирована случайная строка с использованием randomhex.

Также eth.accounts.create()вернет объект, содержащий

  • address - string: Адрес учетной записи.
  • privateKey — строка: закрытый ключ аккаунта.
  • signTransaction(tx [, callback]) — функция: функция для подписи транзакций.
  • sign(data) - Функция: Функция для подписи транзакций

эт.персонал

Пакет web3.eth.personal позволяет вам взаимодействовать с учетными записями узла Ethereum.

Там тоже всего один параметр, но он позволяет установить пароль

  • password — строка: пароль для шифрования этой учетной записи.

И вы получаете только строку в качестве возврата, которая

  • Обещание возвращает строку: адрес только что созданной учетной записи.

Информации об этом не так много, но я думаю, вы бы использовали ту, которая больше всего соответствует вашим потребностям. В большинстве случаев вы, вероятно, должны использовать, eth.accountsпотому что это дает вам гораздо больше информации.

Источник: web3.js — API JavaScript для Ethereum .

учетная запись, созданная с помощью eth.accounts.create(), не отображается в списке eth.accounts. Также есть ли необходимость разблокировать эту вновь созданную учетную запись (используя eth.accounts.create())
@AmitSharma getAccountsМетод возвращает обещание, вы уверены, что ждете его?

Как правило, personalмодуль позволяет вам взаимодействовать с «заблокированными» учетными записями, которым требуется пароль для выполнения действия. Модуль eth.accountsпозволяет вам взаимодействовать с уже разблокированными учетными записями, которые не требуют пароля для выполнения действия.