Контрактная транзакция была отправлена ​​на «нулевой» адрес

Я попытался развернуть контракт через geth, насколько я понимаю, при создании транзакции для развертывания контракта может быть задано нулевое значение.

После анализа транзакции я попытался найти транзакцию с помощью хэша, возвращенного вызовом rcp, и получил следующий ответ в geth:

{
  blockHash: "0x06fe2ca8aae95b44057dbb663bed0faf9e8cc4d33418b21067d64de0eaa02f51",
  blockNumber: 37,
  from: "0x3440825288a9de705e2dbc26e4f6494b4d1f6426",
  gas: 90000,
  gasPrice: 20000000000,
  hash: "0x5e4c06e62aa70544f3349f51521e19454d4b43a224a402492cc256b115208391",
  input: "0x",
  nonce: 2,
  r: "0x3397da9897ee38d81511288de20e19d9b83ec98c056dc28604726749f350fd97",
  s: "0x44e3a8ef63f6e39118287b74deed6aa5b53f4234ad7f0669680bf9f2a4f7e030",
  to: null,
  transactionIndex: 0,
  v: "0x1c",
  value: 0
}

Правильно ли я понимаю, как работает развертывание контракта? Почему адрес нулевой в блокчейне? Как я могу вызвать контракт или связанные с ним методы/функции?

Я был бы очень признателен за любую помощь, которая может быть предоставлена, спасибо.

Это должно помочь? эфириум.stackexchange.com/questions/1871/…
Я понимаю, что если развернуть контракт в консоли geth, вы можете вернуть адрес контракта, но как я могу получить адрес контракта из вызова rpc, который возвращает только хэш транзакции?
Конечно, в блокчейне должно быть место, где транзакция была отправлена ​​куда-то, но это не так, если искать транзакцию по ее хэшу (см. выше). Любые идеи, как я должен это делать в отношении вызовов rpc? Конечно, мне не придется генерировать свой собственный адрес контракта перед вызовом rpc?

Ответы (2)

Вы не забыли добыть его?

Примерно на полпути вниз по этой странице: «Если транзакция создает контракт, она также будет содержать адрес контракта». https://github.com/ethereum/homestead-guide/blob/master/source/contracts-and-transactions/accessing-contracts-and-transactions.rst

Надеюсь, что-то на этой странице поможет.

Вызов, который я искал, был eth_getTransactionReceipt, учитывая хэш транзакции, который предоставил в результате адрес контракта.
По какой-то причине я вспомнил, что нужно выполнить транзакцию в консоли geth, если вы получите детали транзакции, она вернет объект в моем первоначальном вопросе. По какой-то причине вам нужно вызвать eth_getTransactionReceipt через rpc, чтобы увидеть адрес, на который развернут контракт.

обычно установлено значение null (еще не добыто), после создания (добычи) ваш контракт получит адрес.

проверить: https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethgettransaction

to: String, 20 Bytes - address of the receiver.
     null when its a contract creation transaction.