Перевести сумму между двумя учетными записями ethereum с помощью json-rpc

Я пытаюсь перевести некоторые средства между двумя собственными счетами ethereum. У меня есть узел, и я общаюсь с ним по протоколу json-rpc. Я думаю, мне нужно использовать eth_sendTransactionметод, но я нахожу его довольно запутанным, потому что поле данных должно быть заполнено смарт-контрактом, но я не хочу использовать какой-либо смарт-контракт прямо сейчас, просто простая транзакция заданной суммы между мои эфириум аккаунты.

Должен ли я вызывать eth_sendTransactionметод? Как заполнить поле данных? Для чего используется поле nonce?

Ответы (2)

eth_sendTransactionможет использоваться для отправки эфира, для создания контрактов и вызова функции контракта. Все зависит от параметров.

  1. Чтобы просто отправить эфир, вам нужно заполнить поля value, toи .from

  2. Для создания контрактов вы оставьте поле toпустым, но заполните data.

  3. Для вызова функции контракта вы должны заполнить как toи data, так и опционально, valueесли вы также хотите передать эфир в контракт.

Ссылаться наeth_sendTransaction

Создает новую транзакцию вызова сообщения или создание контракта, если поле данных содержит код.

  1. Object- Объект транзакции
    • from: DATA, 20 байт — адрес, с которого отправляется транзакция.
    • to: DATA, 20 байт - (необязательно при создании нового контракта) Адрес, на который направлена ​​транзакция.
    • gas: QUANTITY- (необязательно, по умолчанию: 90000) Целое число газа, предоставленного для выполнения транзакции. Он вернет неиспользованный газ.
    • gasPrice: QUANTITY- (необязательно, по умолчанию: To-Be-Determine) Целое число gasPrice, используемого для каждого оплаченного газа
    • value: QUANTITY- (необязательно) Целое значение, отправляемое с этой транзакцией
    • data: DATA- Скомпилированный код контракта ИЛИ хеш сигнатуры вызванного метода и закодированных параметров. Подробнее см. ABI контракта Ethereum .
    • nonce: QUANTITY- (необязательно) Целое число одноразового номера. Это позволяет перезаписывать ваши собственные ожидающие транзакции, которые используют тот же одноразовый номер.

Пример

params: [{
  "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
  "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
  "gas": "0x76c0", // 30400,
  "gasPrice": "0x9184e72a000", // 10000000000000
  "value": "0x9184e72a", // 2441406250
  "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
}]