Я хочу написать код, который принимает транзакцию, а затем «возвращает» некоторую сумму источнику транзакции.
Предположим, что пользователи будут использовать стандартный клиент. Будут ли транзакции иметь один вход или я должен обрабатывать ситуацию, когда транзакция имеет несколько входов?
Могу ли я просто выбрать один из этих входов и расплатиться с ним? Я хочу избежать необходимости просить пользователей вводить биткойн-адрес для выплаты — гораздо удобнее просто возвращать деньги на тот же адрес, который они использовали.
Предположение, что пользователь использует стандартный клиент или фактически любой клиент, является очень сильным предположением. Если пользователь использует услугу электронного кошелька, такую как Instawallet, по всей вероятности, пользователь не вернет средства, они будут удерживаться оператором и, возможно, будут зачислены одному из его других клиентов.
Даже если входные адреса каким-то образом контролируются пользователем, возврат на один из них может вызвать путаницу в отношении источника платежа — это будет выглядеть так, как будто платеж был за то, с чем изначально был связан адрес. Если есть адрес изменения, контролируемый пользователем, он однозначно связан с платежом вам, поэтому существует информация для его идентификации, хотя клиент может не отображать ее должным образом.
Поскольку любой пользователь может легко получать биткойны с несколькими адресами, транзакции, которые они отправляют, могут иметь несколько входов. Есть несколько случаев, которые вы должны рассмотреть:
В общем, вы должны предоставить пользователям разные функции, возможно, каждый из них будет использовать разные адреса для своих транзакций, и посмотреть, какие из них используются чаще.
потрошитель234
Мени Розенфельд