Создание смарт-контрактов с помощью JS Contract SDK¶
В этом разделе описан JS Сontract SDK Toolkit – инструментарий для разработки, тестирования и развертывания смарт-контрактов в публичных блокчейн сетях Waves Enterprise. Этот инструментарий позволяет быстро освоить экосистему Waves Enterprise, используя такие языки программирования, как JavaScript или TypeScript, поскольку смарт-контракт разворачивается в Docker-контейнере.
Контракт можно развернуть в различных средах и сетях. Например, для локальной разработки смарт-контрактов и их тестирования вы можете локально развернуть свою сеть (создать локальную среду) на основе ноды в ознакомительном режиме (Sandbox) и развернуть контракты в этой сети.
Для развёртывания контракта в различных средах используйте инструмент WE Contract Command line interface (CLI).
Системные требования¶
Перед началом работы убедитесь, что на вашей машине установлено следующее ПО:
Быстрый старт¶
Для создания вашего нового проекта выполните в командной строке следующую команду:
npx create-we-contract YourContractName -t path-to-contract -n package-name
npm create we-contract YourContractName -t path-to-contract -n package-name
yarn create we-contract YourContractName -t path-to-contract -n package-name
Таким образом будет создан ваш первый смарт-контракт, готовый к разработке и внедрению в блокчейн Waves Enterprise. Затем выполните следующую команду для инициализации зависимостей и начала разработки проекта:
npm i // or yarn
Конфигурация¶
Файл конфигурации используется для того, чтобы задать имя образа и имя контракта, которые будут отображаться в проводнике. Также в файле конфигурации можно задать тег образа (свойство name ), который будет использоваться для отправки контракта в реестр.
Добавьте конфигурационный файл contract.config.js в корневую директорию вашего проекта для инициализации конфигурации контракта.
Если вы создали проект с помощью команды create-we-contract (как описано выше в разделе Быстрый старт ), то конфигурация настраивается по умолчанию.
Конфигурация по умолчанию¶
Ниже приведён пример конфигурации по умолчанию:
module.exports = image: "my-contract", name: 'My Contract Name', version: '1.0.1', networks: /// . > >
Конфигурация сети¶
В разделе networks задайте конфигурацию для вашей сети:
module.exports = networks: "sandbox": seed: "#your secret seed phrase" // or get it from env process.env.MY_SECRET_SEED // also you can provide registry: 'localhost:5000', nodeAddress: 'http://localhost:6862', params: init: () => ( paramName: 'paramValue' >) > > > >
- seed – если вы хотите развернуть контракт в сети в ознакомительном режиме (Sandbox), укажите seed-фразу инициатора контракта;
- registry – если вы использовали определенный реестр Docker, укажите имя этого реестра;
- nodeAddress – укажите конкретный адрес ноды для развертывания.
- params.init – чтобы задать параметры инициализации, задайте функцию.
Не публикуйте свои секретные фразы в открытых хранилищах.
Развертывание контракта¶
Смарт-контракты выполняются, как только они развёрнуты в блокчейне. Для развертывания контракта используйте команду deploy в WE Contract CLI:
we-toolkit deploy -n testnet
где testnet – название сети, указанное в конфигурационном файле. Например, для развертывания контракта в сети в ознакомительном режиме (Sandbox), выполните следующую команду:
we-toolkit deploy -n sandbox
Набор инструментов для разработки смарт контрактов Contract SDK Toolkit¶
Основные понятия¶
Для создания класса контракта в Contract SDK Toolkit необходимо указать аннотации к методам. Следующие аннотации являются наиболее важными:
- Contract – регистрация класса как контракта;
- Action – регистрация обработчика действия контракта;
- State – декоратор свойства класса для доступа к состоянию контракта;
- Param – декоратор, который отображает параметры транзакции на параметры действия класса контракта.
SDK предоставляет шаблоны контрактов, в которые вы можете добавить свою бизнес-логику:
@Contract export class ExampleContract < @State state: ContractState; @Action greeting(@Param('name') name: string) < this.state.set('Greeting', `Hello, $`); > >
Методы¶
Методы управления состоянием смарт контракта¶
Класс ContractState предоставляет методы для записи в состояние контракта. В документации ноды описаны доступные на данный момент типы данных в состоянии контракта. Contract SDK поддерживает все доступные на данный момент типы данных в состоянии контракта.
Запись¶
Самый простой способ записать состояние – использовать метод set . Этот метод автоматически приводит тип данных.
this.state.set('key', 'value')
Для явного приведения типов используйте методы, указанные ниже:
// for binary this.state.setBinary('binary', Buffer.from('example', 'base64')); // for boolean this.state.setBool('boolean', true); // for integer this.state.setInt('integer', 102); // for string this.state.setString('string', 'example');
Считывание¶
Чтение состояния в настоящее время является асинхронным и зависит от конфигурации контракта.
@Contract export class ExampleContract @State state: ContractState; @Action async exampleAction(@Param('name') name: string) const stateValue: string = await this.state.get('value', 'default-value'); > >
У метода state.get нет информации о типе внутреннего состояния во время выполнения. Для явного приведения типов используйте методы getBinary , getString , getBool , getNum .
Write Actions¶
Ключевыми декораторами являются Action и Param .
Init Actions¶
Для описания действия создания контракта задайте параметру onInit декоратора действия значение true .
@Contract export class ExampleContract @State state: ContractState; @Action(onInit: true>) exampleAction(@Param('name') name: string) this.state.set('state-initial-value', 'initialized') > >
По умолчанию используется имя метода контракта action . Для того, чтобы задать другое имя действия, присвойте его параметру name декоратору.
@Contract export class ExampleContract @State state: ContractState; @Action(name: 'specificActionName'>) exampleAction() // Your code > >
Обновление версии контракта¶
Для обновления версии контракта используйте метод update . Метод обновляет последний развернутый контракт. Если ни один контракт не был развёрнут, метод ничего не обновляет.
we-cli update -n, --network char>
Создание смарт-контракта на Ethereum
С появлением цифровых валют, таких как Bitcoin, Ethereum, Verge, Litecoin и т.п., возникла необходимость создания криптоплатформ, на которых можно было бы этими криптовалютами торговать.
При создании криптоплатформ одну из главных ролей играют «умные» контракты. Ведь именно с помощью них происходит торговля цифровой валютой. Smart-контракты необходимы для того, чтобы стороны договора – подписанты – добросовестно выполняли свои обязательства.
Для того чтобы smart-контракт нормально функционировал, ему требуется определенная среда. Кроме того, необходимо выполнение нескольких условий:
- достоверность источников цифровых данных;
- применение распространенных методов электронных подписей;
- существование децентрализованных и открытых баз данных без участия людей (действие «умных» контрактов полностью автоматизированно);
- децентрализованная среда исполнения smart-контрактов.
Кстати, можно подкрепить smart-контракт его бумажным эквивалентом. Однако если smart-контракты будут и дальше развиваться в таком темпе, то необходимость в бумажных договорах отпадет полностью.
На данный момент главное преимущество «умных» контрактов заключается в том, что любое невыполнение обязательств одной из сторон ведет к разрыву контракта.
Создание smart-контрактов Ethereum
Обычно smart-контракты создаются на базе Ethereum, т.к. это одна из самых надежных криптоплатформ. Особенность smart-контракта на платформе Ethereum в том, что тут есть уже готовые шаблоны. Прописывать программный код целиком не нужно. Следует лишь ввести параметры сделки в специально отведенные поля и подтвердить ее исполнение. Smart-контракт является обязательной составляющей при организации ICO. Smart-контракты пишутся специально обученными людьми – своими силами тут явно не обойтись. «Умный» контракт пишется на основе программного кода solidy.
Отличительными особенностями «умных» контрактов являются:
- независимость: нет необходимости в поиске специалиста по заключению сделки;
- точность: риск допустить ошибку в заполнении формы контракта полностью исключен;
- экономия: заключение сделки без посредников;
- безопасность: все данные контракта хранятся в зашифрованном виде в распределенном реестре;
- надежность: вся документация многократно продублирована в blockchain.
Очень немногие компании имеют в своем пользовании собственную команду разработчиков ICO. Большинство фирм обращается в аутсорсинговые компании, предоставляющие услуги по разработке ICO и, в частности – smart-контрактов.
Услуги нашей компании.
Наша команда состоит только из высококлассных специалистов, профессионалов своего дела. Мы предоставляем услуги создания как всей ICO-кампании, так и создание smart-контрактов лишь на выпуск цифровой валюты.
Если вы не знаете, как правильно составить техническое задание на создание «умного» контракта, то обратитесь к нашим разработчикам. Они проконсультируют вас по этому, а также и по другим возникшим вопросам.
Разработка смарт контракта — это достаточно сложный процесс, который Вы можете заказать у нас «под ключ» для любых целей: на всю ICO-кампанию, на эмиссию токена, для бизнеса, логистики и т.д.
Создание смарт-контрактов под ключ
На ETH, MARS, BNB, ADA, TRON, XRP, WAVES, ERC20, EOS, NCAT, HECO, POLYGON, DeFi NMX и др.
хочу узнать больше!
смотреть отзывы клиентов
CYBERPUNK DESIGN
LP ICO DESIGN
CRYPTO ACCOUNT
CRYPTO LISTING
LP CRYPTO FUND
LP ICO APP ESTATE
LP ICO MINING
LP OLIVE ICO
Вам требуется специализированный сайт для продвижения услуг в сфере блокчейна? Наша команда программистов специализируется на разработке ресурсов для криптовалютной торговли и бизнеса. Оптимизация сайта на заказ, внедрение современных технологий и настройка максимально удобной для пользователей системы торговли – наша работа!
Разработчик смарт-контрактов – ваш помощник в мире криптовалют!
Наши эксперты по созданию смарт-контрактов на ETH, MARS, BNB, ADA, TRON, XRP, WAVES, ERC20, EOS, NCAT, HECO, POLYGON, DeFi NMX и др. создадут для вашей фирмы самую эффективную комплексную программу по реализации целей и задач компании.
Проектирование среды для бизнеса.
На предварительном этапе выполнения заказа прорабатывается логика бизнес-процессов, анализируется рабочая среда и подготавливается пакет регулирующих документов. Готовится профильный набор сведений для инвесторов, анализируются исходные данные. На основе имеющейся и структурированной информации выводится коммуникационная стратегия и финансовая модель компании.
Затем мы готовим прототип сайта и его интерфейса, наполняем страницы уникальным контентом и тщательно шлифуем дизайн, корпоративный стиль. В соответствии с разработанной дорожной картой реализуются дальнейшие шаги – мы сформируем весь набор клиентских инструментов для вашей успешной работы в мире блокчейн-операций.
Разработка эффективной площадки.
В нашей фирме вы можете выгодно приобрести пакет профессиональных услуг по рекламе и продвижению вашего информационного ресурса. Современный уровень конкуренции настолько высок, что не предполагает пассивную позицию торговцев на рынке криптовалют.
Мы предлагаем следующий набор полезных функций для вашего успешного продвижения на рынке:
- личные кабинеты пользователей и администраторов;
- смарт-контракты (ETHERIUM) – умные рабочие алогритмы, которые оперативно справятся с управлением счетами в криптовалютной сети;
- управление токенами, размещение их в блокчейне;
- полный набор инструментов для кибербезопасности;
- проработка структуры кошельков для криптовалют (ETHERIUM);
- внедрение всех необходимых инструментов для онлайн-платежей;
- совершенствование всех технических процессов, их логики и алгоритмики;
- тестирование всех систем, процессинга финансовых транзакций, платежных инстурментов и многое другое.
Также наши специалисты грамотно и оперативно проработают маркетинговую стратегию фирмы, а дизайнеры подготовят великолепный уникальный вариант стиля и оформления. Пакет пресс-релизов, новости и таргетированная реклама, обзоры событий в мире криптовалют – все это наполнит ваш сайт самым эффективным и полезным контентом.
Для создания смарт-контракта — обратитесь к нашим разработчикам для реализации этой задачи, которые выполнят вас весь цикл операций в формате frontend / backend. Ваша целевая аудитория получит самый лучший ресурс для работы с криптовалютой, что принесет вам настоящий успех на финансовом рынке.
Смарт-контракты: что это, как работает, как создать, применение сегодня
Смарт-контракты: что это, как работает, как создать, применение сегодня. — Текст : непосредственный // Молодой ученый. — 2017. — № 41 (175). — URL: https://moluch.ru/archive/175/52303/ (дата обращения: 30.10.2023).
Криптовалюты – это не просто заработок, а отличная платформа для реализации новых программных решений, используя возможности смарт контрактов. О том, что это такое, как работают смарт-контракты, где применяются и как их разрабатывают, расскажут специалисты информпортала Promdevelop.
Все о смарт-контрактах
Использование смарт контрактов сегодня практикуется для обмена денежных средств, имущества или акций на криптовалюту, предотвращая при этом необходимость использования посреднических услуг. На данный момент правовое регулирование смарт контрактов вызывает массу вопросов, поскольку сами криптовалюты признаны не везде, а в некоторых странах и вовсе находятся под государственным запретом. Сейчас в России правовое регулирование смарт контрактов не предусматривается.
Создание смарт контракта возможно только на специальных криптовалютных платформах, поддерживающих возможность его применения на программном уровне. Наиболее часто разработка смарт контрактов ведется для криптовалюты Ethereum, разработанной отечественным специалистом Виталиком Бутериным. С одной стороны, программирование смарт контрактов возможно с применением любой блокчейн-платформы, но именно платформа Ethereum пользуется наибольшей популярностью, так как на ее базе можно создать смарт контракт практически любого типа. Внутри нее создается так называемый оракул – смарт контракт, позволяющий осуществлять транзакции.
Многие интересуются вопросом касательно того, как написать смарт контракт. Для этого можно пользоваться как популярными языками программирования, так и разрабатывать собственные. Наиболее популярными сегодня являются Python и JavaScript.
В некоторых случаях компании разрабатывают смарт контракт для ico. Благодаря smart contract проведение ico становится более безопасным, так как руководство проекта знает, что все средства, собранные в рамках краудфандинга, гарантированно поступят на счет для решения поставленных целей. При этом все транзакции регистрируются, тем самым давая инвесторам гарантию получения привилегий, предусмотренных кампанией.
Если рассматривать преимущества смарт контрактов, в двух словах можно отметить, что они позволяют осуществлять транзакции по надежно зашифрованной сети. Отправителю не нужно беспокоиться о том, что средства не поступят на счет получателя – это исключено. Перед вводом в эксплуатацию, разработчики тщательно ищут уязвимости смарт контрактов, устраняя их еще на этапе тестирования.
Promdevelop – информационный портал для публикации актуальных новостей и полезных материалов из мира науки, экономики, бизнеса, промышленности. Новые материалы появляются ежедневно.