@@IlyaBodrovKrukowski А если реализуется наследование между кастомными контрактами? например есть контракты X и Y. X is Y. Нужно же прописать везде инициализатор (наследование от Initializer)?
Илья, а подскажи пожалуйста на 26:07 упоминаешь что token == token2, но при попытке вызвать функцию demo, с token пишет что такой функции не существует, или я не правильно понял ?
Крутое видео! Я как понял были примеры как деплоить контракты для тестов, но хотелось увидеть пример как деплоить в тестовую сеть. И вообще будет круто если ты сделаешь видио про деплой. Какие инструменты лучше использовать.
Про это были видео, да и в целом деплой в любую сеть будет совершенно одинаковый - теми же самыми строками кода, что и в тестах, просто при вызове команды HH будет указываться --network и название сети
@@IlyaBodrovKrukowski было бы круто про hardhad-deploy посмотреть. У вас лучшие видеоуроки по солидите. Если они сейчас не набирают много просмотров, то со временем количество просмотров будет расти. Спасибо вам!
Такой вопрос: как сделать модульный обновляемый смарт контракт. Нормальной информации нет, но у меня конкретно проблема, что размер превышается и как нормально реализовать не понятно(имею ввиду дробление)
@@IlyaBodrovKrukowski я почему и интересуюсь. Про даймонд я читал и не особо разобрался. Вроде и не сложно когда читаешь, а на деле шляпа. Ну ладно, вопрос собственно по UUPS. Если открыть документацию unstoppabledomains - то у них огромный Смарт контракт с ролями, контролями версий и всего чего только можно. Но вот сделан он именно на UUPS. Как у них это получается а я даже 10% подобного функционала не могу реализовать так как упираюсь в 24кб?
@@MucTePKoHb Ну это сложный паттерн. Впрочем, есть плагины (hardhat-deploy), которые его в какой-то мере реализуют. Как сделано - понятия не имею, вероятно они как раз тоже делают хитрый деплой и дробят контракт
@@IlyaBodrovKrukowski понятно) а по Даймонду планируется тутор какой? В сети вообще ничего более-менее подробного не нашел, а в русскоязычном сегменте вообще только одно видео и то, особо без объяснений…человек просто взял с гита готовый паттерн и просто говорит: эта вот функция делает это, это вот другое…а что, почему и откуда - фиг его знает)
Для деплоя прокси теперь, пожалуй, лучше использовать github.com/OpenZeppelin/openzeppelin-upgrades Это простое и удобное решение. Кроме того, учтите, что недавно вышли новые версии контрактов OpenZeppelin, где есть некоторые отличия. В частности, теперь пишем function initialize(address initialOwner) initializer public { // ... остальной код __Ownable_init(initialOwner); } Можно использовать мастер для создания контрактов docs.openzeppelin.com/contracts/5.x/wizard Если вы хотите узнать, как прокси устроены, то смотреть следует этот урок ua-cam.com/video/WON6VttFTe0/v-deo.html Там именно техническая информация и принцип их работы
Увидел у вас рубрику по руби, уточните, руби используете для смартконтрактов? Если да, то чем он лучше раста? Кстати не могли бы сделать курс по космос?
Сразу 2 вопроса: 1) Я правильно понимаю, что если я сделал смарт контракт и им пользуются, то мне надо либо постоянно подкидывать эфир на адрес контракта либо брать плату с пользователей за трату газа при прогоне кода? Т.е. задеплоил и забыл - не пройдет, надо постоянно подливать бабло? 2) Если я сделал свой токен и хочу выйти на ICO для этого мне надо иметь много денег или же в отличае от IPO это бесплатно или почти бесплатно? - уточните пжл этот момент, я его не понял.
Нет, не надо ничего подкидывать - за транзакцию платит тот, кто её вызывает, то есть юзер. Сам контракт не может платить комиссию тк он не может иниицировать транзакцию. По второму вопросу не уверен, но видимо никак особенных денег не нужно
Илья, смотрю твои уроки и рассказываю о них своему шефу австралийцу. Он теперь мечтает выучить русский язык, чтобы стать причастным к тайному знанию. Ты добавляешь английские субтитры к своим видео?
Ну, если честно, то нет, это отдельная и не очень простая работа. У меня есть английские курсы и статьи, но не по solidity. Впрочем, насколько мне известно, mcs планирует создавать и англоязычные материалы (хотя это в стадии планирования)
И сразу в мусорку чуть ли не единственное достоинство смарт-контрактов - гарантии. А иначе чем оно лучше условного банка, где можно заключать сделки с гарантиями, но... банку KYC не понравился, государству твоя фотка в ВК не зашла, конкурент заплатил больше или банально санкции и всё, "гарантии" в топку. Надеяться что к авторам контракта не придут с предложением от которого нельзя отказаться при популярности и, тем более, если они замахнулись отобрать у государства поводок в виде экономики - глупо, привет от Дурова с SEC. Те же USDT или подобный койн имеет функционал заморозить твои ассеты. Сегодня придёт запрос забанить педофила, завтра просто неугодного сенатору, послезавтра - всех русских/китайцев/иранцев/вставь_своё, ведь они - зло. Да, баги и фичи - крайне важно, но не ценой неизменности, иначе проще пойти в тот же банк или распиской на песке.
Конечно, раз контракты существуют в реальном мире, а не в каком-то параллельном измерении, и их создают люди, на которые всё ещё распространяются привычные законы. Поэтому я бы не стал надеяться, что крипто-валюта как-то радикально изменит жизнь. У этой реальности много достоинств и недостатков, но никакого другого мира у нас пока нет, увы.
@@IlyaBodrovKrukowski У них (некоторых) есть то, чего ни у кого никогда не было - невозможность никакому диктатору и/или другому органу и/или другой/зависимой стороне запретить/отобрать/саботировать условия/ассеты. Если такой гарантии нет - какой вообще в них смысл? Расписка в выполнении условий? Тогда цифровой рубль/юань и куча сервисов депонирования на эскроу. Раздача токенов и их процессинг а-ля деньги? Классические приложения много эффективнее (k8s развернёт тысячи подов без проблем, в блокчейне работаем с... ну, меньшими возможностями), да и при достижении хотя бы небольшого успеха, придут SEC и сказочке конец, мы даже версию компилятора иногда обновить не можем без разрешения, все прелести гос. регулирования туда же. Как dApps? Классические технологии дают намного больше инструментов для создания таких приложений, некоторые из них мы называем сайтами, sarcasm-off.
@@zxc3387 ты возможно не разобрался. Менять реализацию может админ. А админом может быть multisig аккаунт, которым руководит группа людей. И вот уже децентрализованное решениe для апгрейда контрактов
@@timon59388 Ну а разница в чём; надо надавить не на одного, а на 10, это проблема для... определённых лиц? Поставить условия для работы компании в виде раскрытия всех участников с паспортом и регистрацией. Отказаться - запрет на работу/обвинения/тюрьма. И возвращаемся обратно: "... согласно постановлению NNN, ваша компания обязана изъять USDT у обвиняемого в пользу государственного кошелька XXX, выполнить в течении 2 дней" и в копию всем на почту для подписания. Или ещё лучше: по Патриотическому акту, можно требовать встроить бэкдор в продукт без уведомления. И требуют же, черти.
delegatecall, созданный вообще-то для подключения библиотек, погубит блокчейн, т.к. вы совершенно правы, концепция неизменности кода - архинаиважнейшее преимущество блокчейна, которое идеей прокси просто полностью дискредитировано. На прокси построено огромное количество скам-проектов, где сама схема проксирования максимально обфусцируется. Тот же транспарент-прокси изначально был гораздо проще - обычный ownable-контракт. Но коллизии функций стали использовать для скам-реализаций, что привело к новой версии прокси, где каждый вызов любой функции должен проверяться, не вызов ли это от админа?.. А это удорожание работы любого контракта (т.к. чтение из блокчейна недешевая операция), что породило уже UUPS-модель. Ну и т.д. В общем, обратно к истокам, блокчейн в труху.
у меня проблема в вс коде, import "@openzeppelin/contracts-upgradeable@4.9.2/token/ERC721/ERC721Upgradeable.sol"; все строки с импортом на находят путь и выдаёт ошибку
Одна из самых необходимых функций! Спасибо за ваш труд
@@IlyaBodrovKrukowski А если реализуется наследование между кастомными контрактами? например есть контракты X и Y. X is Y. Нужно же прописать везде инициализатор (наследование от Initializer)?
@@Unknown-pg4ss Не пробовал, но думаю, что так сделать можно, просто в дочернем сделать super? Но надо проверять, конечно
Вы просто лучший)
Спасибо за урок !
Просто супер. Спасибо вам большое!
10:20
Объяснено просто шикарно! +Подписка
Благодарю
спасибо!!
Спасибо Илья за твои уроки :)
Илья, а подскажи пожалуйста на 26:07 упоминаешь что token == token2, но при попытке вызвать функцию demo, с token пишет что такой функции не существует, или я не правильно понял ?
Там видимо старая привязка хранится, но адрес там тот же - попробуйте выдать в консоль адреса token и token2
Крутое видео! Я как понял были примеры как деплоить контракты для тестов, но хотелось увидеть пример как деплоить в тестовую сеть. И вообще будет круто если ты сделаешь видио про деплой. Какие инструменты лучше использовать.
Про это были видео, да и в целом деплой в любую сеть будет совершенно одинаковый - теми же самыми строками кода, что и в тестах, просто при вызове команды HH будет указываться --network и название сети
Может быть, ещё будет про hardhat-deploy отдельно
@@IlyaBodrovKrukowski было бы круто про hardhad-deploy посмотреть. У вас лучшие видеоуроки по солидите. Если они сейчас не набирают много просмотров, то со временем количество просмотров будет расти. Спасибо вам!
Спасибо за урок! Будет ли когда-нибудь обсуждение темы оракулов?
Будет и эта тема со временем, надеюсь :)
Такой вопрос: как сделать модульный обновляемый смарт контракт. Нормальной информации нет, но у меня конкретно проблема, что размер превышается и как нормально реализовать не понятно(имею ввиду дробление)
Можно поискать про паттерн diamond. Он сложнее, но может помочь в таком случае
@@IlyaBodrovKrukowski я почему и интересуюсь. Про даймонд я читал и не особо разобрался. Вроде и не сложно когда читаешь, а на деле шляпа. Ну ладно, вопрос собственно по UUPS. Если открыть документацию unstoppabledomains - то у них огромный Смарт контракт с ролями, контролями версий и всего чего только можно. Но вот сделан он именно на UUPS. Как у них это получается а я даже 10% подобного функционала не могу реализовать так как упираюсь в 24кб?
@@MucTePKoHb Ну это сложный паттерн. Впрочем, есть плагины (hardhat-deploy), которые его в какой-то мере реализуют. Как сделано - понятия не имею, вероятно они как раз тоже делают хитрый деплой и дробят контракт
@@IlyaBodrovKrukowski понятно) а по Даймонду планируется тутор какой? В сети вообще ничего более-менее подробного не нашел, а в русскоязычном сегменте вообще только одно видео и то, особо без объяснений…человек просто взял с гита готовый паттерн и просто говорит: эта вот функция делает это, это вот другое…а что, почему и откуда - фиг его знает)
@@MucTePKoHb Да хотелось бы сделать по возможности, постараюсь
Для деплоя прокси теперь, пожалуй, лучше использовать github.com/OpenZeppelin/openzeppelin-upgrades Это простое и удобное решение.
Кроме того, учтите, что недавно вышли новые версии контрактов OpenZeppelin, где есть некоторые отличия. В частности, теперь пишем
function initialize(address initialOwner) initializer public {
// ... остальной код
__Ownable_init(initialOwner);
}
Можно использовать мастер для создания контрактов docs.openzeppelin.com/contracts/5.x/wizard
Если вы хотите узнать, как прокси устроены, то смотреть следует этот урок ua-cam.com/video/WON6VttFTe0/v-deo.html Там именно техническая информация и принцип их работы
спасибо за обновление !
в видео ведь практически то же самое)
Увидел у вас рубрику по руби, уточните, руби используете для смартконтрактов? Если да, то чем он лучше раста? Кстати не могли бы сделать курс по космос?
Нет, Ruby - это совсем про другое. Терминальные приложения, веб-сервисы - в таком духе
Сразу 2 вопроса: 1) Я правильно понимаю, что если я сделал смарт контракт и им пользуются, то мне надо либо постоянно подкидывать эфир на адрес контракта либо брать плату с пользователей за трату газа при прогоне кода? Т.е. задеплоил и забыл - не пройдет, надо постоянно подливать бабло? 2) Если я сделал свой токен и хочу выйти на ICO для этого мне надо иметь много денег или же в отличае от IPO это бесплатно или почти бесплатно? - уточните пжл этот момент, я его не понял.
Нет, не надо ничего подкидывать - за транзакцию платит тот, кто её вызывает, то есть юзер. Сам контракт не может платить комиссию тк он не может иниицировать транзакцию. По второму вопросу не уверен, но видимо никак особенных денег не нужно
@@IlyaBodrovKrukowski спасибо. А не могли бы вы сделать видео по процедуре ico чтобы более детально объяснить это всем?
@@satoshimumoto4665 Посмотрим, пока не обещаю
Илья, смотрю твои уроки и рассказываю о них своему шефу австралийцу. Он теперь мечтает выучить русский язык, чтобы стать причастным к тайному знанию. Ты добавляешь английские субтитры к своим видео?
Ну, если честно, то нет, это отдельная и не очень простая работа. У меня есть английские курсы и статьи, но не по solidity. Впрочем, насколько мне известно, mcs планирует создавать и англоязычные материалы (хотя это в стадии планирования)
Patrick Collins с freeCodeCamp сняли отличный курс
@@timon59388 ух ты, спасибо, посмотрю!
@@timon59388 я что-то не могу найти на их канале. Можешь ссылочку прислать?
И сразу в мусорку чуть ли не единственное достоинство смарт-контрактов - гарантии.
А иначе чем оно лучше условного банка, где можно заключать сделки с гарантиями, но... банку KYC не понравился, государству твоя фотка в ВК не зашла, конкурент заплатил больше или банально санкции и всё, "гарантии" в топку.
Надеяться что к авторам контракта не придут с предложением от которого нельзя отказаться при популярности и, тем более, если они замахнулись отобрать у государства поводок в виде экономики - глупо, привет от Дурова с SEC.
Те же USDT или подобный койн имеет функционал заморозить твои ассеты.
Сегодня придёт запрос забанить педофила, завтра просто неугодного сенатору, послезавтра - всех русских/китайцев/иранцев/вставь_своё, ведь они - зло.
Да, баги и фичи - крайне важно, но не ценой неизменности, иначе проще пойти в тот же банк или распиской на песке.
Конечно, раз контракты существуют в реальном мире, а не в каком-то параллельном измерении, и их создают люди, на которые всё ещё распространяются привычные законы. Поэтому я бы не стал надеяться, что крипто-валюта как-то радикально изменит жизнь. У этой реальности много достоинств и недостатков, но никакого другого мира у нас пока нет, увы.
@@IlyaBodrovKrukowski У них (некоторых) есть то, чего ни у кого никогда не было - невозможность никакому диктатору и/или другому органу и/или другой/зависимой стороне запретить/отобрать/саботировать условия/ассеты.
Если такой гарантии нет - какой вообще в них смысл?
Расписка в выполнении условий?
Тогда цифровой рубль/юань и куча сервисов депонирования на эскроу.
Раздача токенов и их процессинг а-ля деньги?
Классические приложения много эффективнее (k8s развернёт тысячи подов без проблем, в блокчейне работаем с... ну, меньшими возможностями), да и при достижении хотя бы небольшого успеха, придут SEC и сказочке конец, мы даже версию компилятора иногда обновить не можем без разрешения, все прелести гос. регулирования туда же.
Как dApps?
Классические технологии дают намного больше инструментов для создания таких приложений, некоторые из них мы называем сайтами, sarcasm-off.
@@zxc3387 ты возможно не разобрался. Менять реализацию может админ. А админом может быть multisig аккаунт, которым руководит группа людей. И вот уже децентрализованное решениe для апгрейда контрактов
@@timon59388 Ну а разница в чём; надо надавить не на одного, а на 10, это проблема для... определённых лиц?
Поставить условия для работы компании в виде раскрытия всех участников с паспортом и регистрацией.
Отказаться - запрет на работу/обвинения/тюрьма.
И возвращаемся обратно: "... согласно постановлению NNN, ваша компания обязана изъять USDT у обвиняемого в пользу государственного кошелька XXX, выполнить в течении 2 дней" и в копию всем на почту для подписания.
Или ещё лучше: по Патриотическому акту, можно требовать встроить бэкдор в продукт без уведомления. И требуют же, черти.
delegatecall, созданный вообще-то для подключения библиотек, погубит блокчейн, т.к. вы совершенно правы, концепция неизменности кода - архинаиважнейшее преимущество блокчейна, которое идеей прокси просто полностью дискредитировано. На прокси построено огромное количество скам-проектов, где сама схема проксирования максимально обфусцируется. Тот же транспарент-прокси изначально был гораздо проще - обычный ownable-контракт. Но коллизии функций стали использовать для скам-реализаций, что привело к новой версии прокси, где каждый вызов любой функции должен проверяться, не вызов ли это от админа?.. А это удорожание работы любого контракта (т.к. чтение из блокчейна недешевая операция), что породило уже UUPS-модель. Ну и т.д. В общем, обратно к истокам, блокчейн в труху.
у меня проблема в вс коде, import "@openzeppelin/contracts-upgradeable@4.9.2/token/ERC721/ERC721Upgradeable.sol"; все строки с импортом на находят путь и выдаёт ошибку
Напишите нам в чат, попробуем разобраться