Вопрос в том, как хранить эфир в смарт-контракте.
На первом этапе я пытаюсь передать значение транзакции на адрес смарт-контракта, делая что-то вроде этого:
function storeETH() payable public {
address(this).transfer(msg.value);
}
У меня есть адрес, но я думаю, что это не кошелек... Я не знаю, как хранить ETH в моем смарт-контракте или есть ли возможность сделать что-то подобное.
Пожалуйста, помогите мне :D
Ваш transfer
перевод с контракта на контракт. Это не нужно, и вы можете просто удалить его:
function storeETH() payable public {
// nothing to do here
}
https://programtheblockchain.com/posts/2017/12/15/writing-a-contract-that-handles-ether/ может помочь.
Все, что вам нужно, это оплачиваемая функция в вашем смарт-контракте. Смарт-контракты могут выступать в качестве кошельков и хранить ETH. Вы захотите создать функцию для отправки ETH из вашего кошелька в свой собственный кошелек, чтобы получить его!
Я бы предложил это сделать. Таким образом, вы можете просто отправить эфир на адрес смарт-контракта, и этот эфир будет сохранен в смарт-контракте, а также вы можете вызвать функцию storeETH. Включите обе функции.
function storeETH() payable public {
// nothing to do here
}
function() payable public {}