Pull to refresh

Comments 13

Спасибо. Как раз следующая статья интересно, так как вы заявили, что инициировать транзакции с контракта нельзя, а ведь суть производных как раз в потоке операций (ну как я это вижу). Интересно, как решается эта задача у вас.
В ближайшем релизе, который уже в марте будет на Тестнете, такая возможность появиться.
Контракт на самом деле является гарантией правильных операций (на самом деле правильных переходов между состояниями). С текущим функционалом (без возможности инициирования транзакций) тоже можно валидировать правильность перехода между состояниями.
Да, транзакции надо будет генерировать офчейн и отправлять в сеть, а контракт уже будет валидировать их.
Добрый день.
Я совсем запутался с примерами(((
«Английский аукцион»: Участник может сделать ставку, отправив DataTransaction с ключом «price» и значением своей ставки. Кому отправить, на аккаунт аукциона?

Обработка транзакций match tx {} — это ведь обработка только исходящих транзакций или можно входящие проверять?

Заранее спасибо.
1) Поставив адрес аукциона как 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, таким образом ставка попадет в стейт аукциона

Рассмотрим транзакцию
{
	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 победит с таким подходом? Я не уверен…
Спасибо, что нашли ошибку и разобрались, прошу прощения за задержку с ответом, честно говоря, пропустила уведомления от хабра на почте и узнала о ваших комментариях совершенно случайно. Больше готовых примеров на RIDE можно найти вот здесь: github.com/wavesplatform/ride-examples
Антонита добрый день. Спасибо за ответ.
Извините за небольшую резкость с моей стороны. Я не только к вам обращался за поддержкой, но и на других ресурсах, где есть специалисты WavesPlatform и практически везде молчат. Мне показалось что в компании Waves «так принято» и я отложил попытку понять RIDE и Waves до лучших времен)))

По вашим примерам. Конечно вместе с кодом хотелось бы видеть действующую модель на тестнете, т.к. элемент игры привлекает и помогает в обучении (в любом возрасте). Если у меня появится свободное время я сам постараюсь сделать действующую модель, но чуть позже…
Sign up to leave a comment.