Комментарии 13
Спасибо. Как раз следующая статья интересно, так как вы заявили, что инициировать транзакции с контракта нельзя, а ведь суть производных как раз в потоке операций (ну как я это вижу). Интересно, как решается эта задача у вас.
В ближайшем релизе, который уже в марте будет на Тестнете, такая возможность появиться.
Контракт на самом деле является гарантией правильных операций (на самом деле правильных переходов между состояниями). С текущим функционалом (без возможности инициирования транзакций) тоже можно валидировать правильность перехода между состояниями.
Да, транзакции надо будет генерировать офчейн и отправлять в сеть, а контракт уже будет валидировать их.
Да, транзакции надо будет генерировать офчейн и отправлять в сеть, а контракт уже будет валидировать их.
Добрый день.
Я совсем запутался с примерами(((
«Английский аукцион»: Участник может сделать ставку, отправив DataTransaction с ключом «price» и значением своей ставки. Кому отправить, на аккаунт аукциона?
Обработка транзакций match tx {} — это ведь обработка только исходящих транзакций или можно входящие проверять?
Заранее спасибо.
Я совсем запутался с примерами(((
«Английский аукцион»: Участник может сделать ставку, отправив DataTransaction с ключом «price» и значением своей ставки. Кому отправить, на аккаунт аукциона?
Обработка транзакций match tx {} — это ведь обработка только исходящих транзакций или можно входящие проверять?
Заранее спасибо.
1) Поставив адрес аукциона как sender, таким образом ставка попадет в стейт аукциона.
2) Обработка исходящих транзакций, так как «входящих» транзакций в общем-то нет как факта, исходящая транзакция трансфера так и остается исходящим трансфером средств, у которых есть получатель. Никто не получает транзакции, все их могут только посылать. Таким образом да, скрипт в паттерн матчинге обрабатывает только исходящие транзакции, то есть транзакции, в поле sender у которого указан владелец смарт-аккаунта с данным скриптом.
2) Обработка исходящих транзакций, так как «входящих» транзакций в общем-то нет как факта, исходящая транзакция трансфера так и остается исходящим трансфером средств, у которых есть получатель. Никто не получает транзакции, все их могут только посылать. Таким образом да, скрипт в паттерн матчинге обрабатывает только исходящие транзакции, то есть транзакции, в поле sender у которого указан владелец смарт-аккаунта с данным скриптом.
Антонина большое спасибо ))) Если еще возникнут «глупые» вопросы можно обращаться?
Антонина добрый день. Получается что запрос должен выглядеть таким образом?
{
"version": 1,
"senderPublicKey": "Публичный ключ участника",
"data": [
{
"key": "price",
"type": "integer",
"value": 100001
},
{
"key": "sender",
"type": "string",
"value": "Адрес укциона"
}
],
"fee": 100000,
"type": 12,
"timestamp": 1553851367512,
"proofs": [
"Подпись участника"
]
}
1. Из описания: Адрес участника должен быть записан в поле «sender» в DataTransaction
2. Из комментария: Поставив адрес аукциона как sender, таким образом ставка попадет в стейт аукциона
Рассмотрим транзакцию
В смарт контракте:
По условию смарт контракта адреса должны совпадать и это будет адрес аукциона, а не адрес участника.
Чтобы зафиксировать адрес участника, транзакция должна быть от имени участника… (!) (?)
Как можно создать транзакцию от имени участника, чтобы она смогла внести изменения в стейт аукциона?
Может я что то не понял, но понять не могу «что я не понял» (((
Подскажите пожалуйста.
2. Из комментария: Поставив адрес аукциона как sender, таким образом ставка попадет в стейт аукциона
Рассмотрим транзакцию
{
data:
(2)[{
key: 'price'
type: 'integer'
value: 65
}{
key: 'sender'
type: 'string'
value: 'UserAddress'
}
]
fee: 500000
feeAssetId: null
id: 'BjemVnQ31yYKFFmHN.......VtwXcme8EFeUxUxq9Ci'
proofs:
(0)[
]
sender: 'AuctionAddress'
senderPublicKey: 'AuctionPK'
timestamp: 15539...28172
type: 12
version: 1
}
В смарт контракте:
... && d.sender == addressFromString(extract(getString(d.data,"sender")))
По условию смарт контракта адреса должны совпадать и это будет адрес аукциона, а не адрес участника.
Чтобы зафиксировать адрес участника, транзакция должна быть от имени участника… (!) (?)
Как можно создать транзакцию от имени участника, чтобы она смогла внести изменения в стейт аукциона?
Может я что то не понял, но понять не могу «что я не понял» (((
Подскажите пожалуйста.
Кажется, что эта проверка про отправителя и правда просто лишняя. Как я и писала выше, участник может послать транзакцию только если от имени аккаунта аукциона, но указать там свой адрес как поле дата транзакции ему никто не мешает.
Поправила в тексте оба контракта на их корректные версии, с проверкой подписи и публичного ключа того, кто транзакцию отправляет, а не того, от чьего имени она попадает в блокчейн
Игнорирование?
Очень жаль что компания WAVES так, не корректно себя ведет. Александр (Иванов) не упускаем возможности рассказать о платформе о разработках о перспективах, а поддержку обеспечить некому. Вы надеетесь что WAVES победит с таким подходом? Я не уверен…
Очень жаль что компания WAVES так, не корректно себя ведет. Александр (Иванов) не упускаем возможности рассказать о платформе о разработках о перспективах, а поддержку обеспечить некому. Вы надеетесь что WAVES победит с таким подходом? Я не уверен…
Спасибо, что нашли ошибку и разобрались, прошу прощения за задержку с ответом, честно говоря, пропустила уведомления от хабра на почте и узнала о ваших комментариях совершенно случайно. Больше готовых примеров на RIDE можно найти вот здесь: github.com/wavesplatform/ride-examples
Антонита добрый день. Спасибо за ответ.
Извините за небольшую резкость с моей стороны. Я не только к вам обращался за поддержкой, но и на других ресурсах, где есть специалисты WavesPlatform и практически везде молчат. Мне показалось что в компании Waves «так принято» и я отложил попытку понять RIDE и Waves до лучших времен)))
По вашим примерам. Конечно вместе с кодом хотелось бы видеть действующую модель на тестнете, т.к. элемент игры привлекает и помогает в обучении (в любом возрасте). Если у меня появится свободное время я сам постараюсь сделать действующую модель, но чуть позже…
Извините за небольшую резкость с моей стороны. Я не только к вам обращался за поддержкой, но и на других ресурсах, где есть специалисты WavesPlatform и практически везде молчат. Мне показалось что в компании Waves «так принято» и я отложил попытку понять RIDE и Waves до лучших времен)))
По вашим примерам. Конечно вместе с кодом хотелось бы видеть действующую модель на тестнете, т.к. элемент игры привлекает и помогает в обучении (в любом возрасте). Если у меня появится свободное время я сам постараюсь сделать действующую модель, но чуть позже…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Применение смарт-аккаунтов Waves: от аукционов до бонусных программ