Я прошёл по ссылке.
Открылся PDF-файл.
В нём на первой странице была ссылка на страницу эскроу на сайте zen.land.
Я прошёл и по этой ссылке тоже.
Там была кнопка подключения кошелька.
Я подключил кошелёк nyknyc.
На странице эскроу появилась возможность принять контракт.
Я нажал на кнопку accept, и меня перенесло в кошелёк nyknyc.
В кошельке nyknyc потребовалось дважды что-то подписать (сначала EIP712 Approval, потом User Operation), затем там же появилась возможность опубликовать транзакцию.
Я опубликовал и вернулся на страницу эскроу на сайте zen.land
Какое-то время там ничего не происходило, поэтому я решил обновить страницу, а затем попробовал ещё раз нажать на кнопку accept.
И увидел сообщение об ошибке. Вот такое:
Я ещё раз нажал Accept - та же история. Потом ещё и ещё, но ничего не изменилось.
Что я делаю не так?
Спасибо за такой подробный отчёт - это очень ценно для нас.
Вы всё сделали правильно - транзакция прошла успешно, просто индексатор не успел обновить данные. Индексатор пока наше слабое место, но каждая такая ошибка помогает нам делать его стабильнее. Как только он проработает без сбоев хотя бы месяц, мы выложим его в open source.
Я не стал ждать fulfill и сразу отпустил средства. Но в обычных сделках через Zenland нужно будет нажимать «Fulfilled» - это подтверждение того, что условия контракта выполнены.
Спасибо большое за тест и за ваше время! Деньги уже у вас в кошельке - нужно только добавить custom token, чтобы их увидеть, а дальше можете отправить куда угодно.
USDT Address on Ethereum
0xdac17f958d2ee523a2206206994597c13d831ec7
Ещё актуально?
В NYKNYC зарегистрировался, добавил двух подписантов, он выдал такой адрес кошелька: 0x7312162923fA1d95f5e06cdF73444aecaa1fCE51
А можете попутно объяснить, зачем мультисиг нужен с двумя подписантами? Вся схема с обменом выглядит, мягко говоря, сложновато.
Для вас, Xandry, всегда актуально

Контракт создан, вот файл:
Открыть контрактПроверить подлинность можно здесь:
zen.land/verifyЭтим тестом мы решили убить двух зайцев: заодно протестировать и наш новый кошелёк, и сам Zenland.
Но вообще Zenland работает абсолютно с любым Web3-кошельком - MetaMask, Rabby, и так далее.
Насчёт сложности - согласны, со стороны это выглядит сложнее, чем хотелось бы. Мы над этим работаем. Но логика за двумя подписантами довольно простая:
Первый - passkey. Ваш публичный ключ хранится прямо внутри смарт-контракта кошелька. В обычном сценарии вы подписываете транзакцию за секунду - отпечатком или PIN-кодом.
Второй - резервный ключ. Он нужен, чтобы кошелёк оставался некастодиальным: даже если сайт NYKNYC упадёт, вы сможете подписывать транзакции. А если потеряете доступ к устройству с passkey - резервный ключ поможет восстановить контроль.
По сути, задача была сделать кошелёк удобнее, чем браузерные расширения, но без компромиссов в безопасности.
Будем рады вашему отзыву!