Разница между этими 2 значениями? - PullRequest
1 голос
/ 01 апреля 2019

В моем js-файле я называю транзакцию отправки смарт-контрактом, в чем разница между значениями:

instance.multiply.sendTransaction(val,{ from: accounts[0], gas : 300000} и instance.multiply.sendTransaction({ from: accounts[0], gas : 30000, value : val},

Я передаю первуюдля функции в качестве аргумента, а второй доступен в функции только msg.value?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

В вашем первом фрагменте кода вы передаете val в качестве аргумента функции.

Во втором фрагменте кода вы не передаете никаких аргументов, но отправляете val Вэй в сделке.Да, по контракту можно посмотреть, сколько было отправлено вей, посмотрев на msg.value, но, что немаловажно, была и передача эфира.(10 ** 18 wei == 1 эфир.)

Итак, ключевые различия между ними следующие:

  1. Один передает значение в качестве аргумента, а другой - нет.
  2. Один отправляет эфир с транзакцией, а другой нет.
0 голосов
/ 01 апреля 2019

Правильный синтаксис для web3.eth.sendTransaction

 web3.eth.sendTransaction(transactionObject [, callback])

Второй работает нормально instance.multiply.sendTransaction({ from: accounts[0], gas : 30000, value : val}, и должен.

Формат sendTransaction - sendTransaction({from: eth.accounts[0], data: code, gas: 100000}).

  1. from: String - Адрес отправляющей учетной записи.Используется свойство web3.eth.defaultAccount, если оно не указано.
  2. to: String - ( необязательно ) Адрес назначения сообщения, оставленный неопределенным для транзакции создания договора.
  3. value: Number | String | BigNumber - ( необязательно ) Значение, переданное для транзакции в Wei, а также эндаумент, если это транзакция создания контракта.

  4. gas: Number | String | BigNumber - ( необязательно , по умолчанию: для определения) Количество газа, используемого для транзакции ( неиспользованный газ равенrefunded ).

  5. data: String - ( необязательный ) Либо строка байтов, содержащая связанные данные сообщения, либо в случае контрактатранзакция создания, код инициализации.

Подробнее см .: https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethsendtransaction

...