Содержание
Получить информацию об организациях и предпринимателях
27.08.2021
На сайте Федеральной налоговой службы www.nalog.ru имеется ряд сервисов, позволяющих бесплатно в режиме «онлайн» получить различную информацию об организациях и индивидуальных предпринимателях.
Прежде всего, это сведения из Единого государственного реестра юридических лиц (ЕГРЮЛ) и Единого государственного реестра индивидуальных предпринимателей (ЕГРИП): https://egrul.nalog.ru/index.html. Выписка, сформированная в указанных сервисах, содержит основную актуальную информацию о лице и является юридически значимым документом, подписанным электронной подписью, сведения о сертификате которой приводится в самой выписке. Начиная с 30.03.2015 г., в соответствии с пунктом 1 статьи 7 Федерального закона от 8 августа 2001 г. № 129-ФЗ «О государственной регистрации юридических лиц и индивидуальных предпринимателей» официальные выписки из ЕГРЮЛ и ЕГРИП могут быть получены только из указанных сервисов.
На сайте ФНС России также размещен сервис «Единый реестр субъектов малого предпринимательства» (РСМП) – официальный ресурс, содержащий информацию о юридических лицах и индивидуальных предпринимателях, имеющих статус малого (среднего) предприятия. Из этого сервиса можно сформировать выписку, заверенную электронной подписью, которая является юридически значимым документом, подтверждающим статус субъекта малого предпринимательства. Наличие в РСМП сведений об организации или индивидуальном предпринимателе является одним из условий, например, для получения субсидий и других преференций, установленных действующим законодательством для субъектов предпринимательской деятельности.
Комплексную информацию о конкретном налогоплательщике, в которой отражены сведения ЕГРЮЛ, Реестра дисквалифицированных лиц, Единого РСМП, Государственного реестра аккредитованных филиалов, представительств иностранных юридических лиц, можно также получить при помощи сервиса «Прозрачный бизнес» https://pb.nalog.ru.
Много полезной информации можно найти в разделе «Открытые данные» https://www.nalog.gov.ru/opendata, где размещены, например, сведения о среднесписочной численности работников, задолженности налогоплательщиков, о суммах доходов и расходов организаций по данным бухгалтерской (финансовой) отчетности, о налоговых правонарушениях и мерах ответственности и много другого. Всего раздел «Открытые данные» по состоянию на август 2021 года содержит 87 видов общедоступных сведений.
Полный перечень электронных сервисов, размещенных на сайте ФНС России приведен по ссылке: https://www.nalog.gov.ru/rn51/about_fts/el_usl.
Информация, размещаемая на сайте ФНС России, является верифицированной, постоянно актуализируется, позволяет решать множество вопросов без необходимости личного обращения в налоговые и иные государственные органы.
Справки по телефону: 8(815-55) 6-44-00.
- 30.06.2023
Внимание! 5 региональный класс пожарной опасности! - 30.06.2023
Отделение Социального фонда РФ по Мурманской области информирует - 30.06.2023
Отделение Социального фонда РФ по Мурманской области информирует - 29.06.2023
Информационная справка о деятельности Общероссийской молодёжной общественной организации «Российский союз сельской молодёжи» - 27. 06.2023
На сайте Правительства Мурманской области проходит опрос общественного мнения по оценке удовлетворенности населения предоставлением услуг в сфере ЖКХ и содержанием автомобильных дорог - 26.06.2023
Село на взлёт: стартовала регистрация на трек «Карьера на селе», программы РССМ и Росмолодёжи «Кадры для села»
Все новости
Название | Выпуск | Загрузка | CA SOLVE FTS, версия 12 1-ENU | , версия 12.1 | BOOKSHELF |
Руководство администратора | 12.0 | |
Глоссарий 90 008 | 12,0 | PDF-файл |
Руководство по установке | ||
Руководство программиста и администратора Managed Object Development Services | 12. 0 | |
Справочное руководство по сообщениям | 12.0 | |
Язык управления сетью Руководство программиста | 12.0 | |
Справочное руководство по языку сетевого управления | 12. 0 | |
Справочное руководство | 12.0 | PDF 9000 7 |
Примечания к выпуску | 12.0 | |
9000 6 Руководство по безопасности | 12.0 | |
Руководство пользователя | 12.0 9 0007 | |
Все руководства с возможностью поиска в форматах HTML и PDF | 12.0 | ZIP |
Руководство администратора | 11. 7 | 900 08 |
Глоссарий | 11,7 | |
Руководство по установке | 11,7 9 0007 | |
Руководство программиста и администратора служб разработки управляемых объектов | 11.7 | |
Справочное руководство по сообщениям | 11.7 | |
Язык управления сетью Руководство программиста Справочное руководство | 11.7 | |
Справочное руководство | 11.7 | |
Примечания к выпуску | 11.7 | |
Руководство по безопасности | 11.7 | Руководство пользователя | 11. 7 |
Все руководства с поисковым указателем | 11.7 | ZIP |
Руководство администратора | 11.6 | СП1 | |
Глоссарий | 11.6 | SP1 | |
Руководство по установке | 11.6 | SP1 | |
Руководство программиста и администратора служб разработки управляемых объектов | 11.6 | SP1 | |
Справочное руководство по сообщениям | 11,6 | SP1 | |
Руководство программиста NCL | 11.6 | SP1 | |
Справочное руководство NCL | 11.6 | SP1 | |
Справочное руководство | 11. 6 | SP1 | |
Примечания к выпуску | 11,6 | SP1 | |
Руководство по безопасности | 11.6 | SP1 | |
Руководство пользователя | 11.6 | SP1 | |
Все руководства с индексом для поиска | 11.6 | SP1 | Почтовый индекс |
Руководство администратора | 11.6 | |
Глоссарий | 90 Руководство по установке 6 ПДФ | |
Руководство программиста и администратора Managed Object Development Services | 11.6 | |
Справочное руководство по сообщениям | 11.6 | |
11. 6 | ||
Справочное руководство NCL | ||
NetMaster REXX Guide | 11.6 | |
Справочное руководство | 11.6 | |
Примечания к выпуску | 11.6 | |
Руководство по безопасности 90 008 | 11,6 | |
Руководство пользователя | 11.6 | 9000 8 |
All Guides with Searchable Index | 11.6 | ZIP |
Administrator Guide | 11.5 | |
Getting Started | 11.5 | |
Глоссарий | 11. 5 | 900 08 |
Руководство программиста и администратора Managed Object Development Services | 11.5 | |
Руководство по сообщениям | 11.5 | |
Руководство программиста языка управления сетью | 11.5 | |
Справочник по языку управления сетью | 11,5 | |
Справочное руководство | 11,5 | |
Обзор выпуска | 11.5 | Руководство по безопасности | 11.5 |
Руководство пользователя | 11. 5 | |
Все руководства с индексом для поиска | 11. 5 | ZIP |
Справочник команд (11 SP1) | 11.0 | 507.0 | |
Общее руководство администратора (11 SP1) | 11.0 | 507.0 | |
Общее руководство пользователя (11 SP1) | 11,0 | 507.0 | |
Начало работы | 11.0 | 507.0 | |
Службы разработки управляемых объектов Руководство программиста и администратора | 11.0 | 507.0 | |
Руководство программиста языка управления сетью (11 SP1) | 11.0 | 507,0 | |
Справочник по языку управления сетью (11 SP1) | 11.0 | 507.0 | |
Обзор выпуска | 11. 0 | 507.0 | |
Руководство пользователя ReportWriter | 11.0 | 507.0 | |
Руководство по безопасности (11 SP1) | 11,0 | 507.0 | |
Руководство пользователя | 11.0 | 507.0 | |
Все руководства с поисковым указателем в формате PDF (11 SP1) | 11.0 | 507.0 | ZIP |
Справочник команд | 11.0 | 9000 6 PDF |
Общее руководство администратора | 11.0 | |
Общее руководство пользователя 90 008 | 11.0 | |
Начало работы | 11.0 900 08 | |
Руководство программиста и администратора Managed Object Development Services | 11. 0 | |
Язык управления сетью Руководство программиста | 11.0 | 9 0008 |
Справочник по языку управления сетью | 11.0 | |
Обзор выпуска | 11.0 | |
Руководство пользователя ReportWriter | 11.0 | |
Руководство по безопасности | 11.0 9 0008 | |
Руководство пользователя | 11.0 | |
Все руководства с индексом для поиска в формате PDF | 11.0 | ZIP |
Перенос взаимозаменяемых токенов | Документация NEAR
В этом руководстве вы узнаете, как внедрить основные стандарты в свой смарт-контракт. Вы реализуете логику, позволяющую передавать и получать токены. Если вы присоединяетесь к нам впервые, клонируйте этот репозиторий и следуйте инструкциям в папке 4.storage
.
Если вы хотите увидеть готовый код для этого руководства по Core , вы можете найти его в папке 5.transfers
.
Введение
До этого момента вы создали простой смарт-контракт FT, который позволяет владельцу чеканить общее количество токенов и просматривать информацию о самом взаимозаменяемом токене. Кроме того, вы добавили функциональность для регистрации учетных записей и генерации событий. Сегодня вы расширите свой смарт-контракт, чтобы пользователи могли передавать и получать взаимозаменяемые токены.
Логику простой передачи легко понять. Допустим, Бенджи хочет передать Майку 100 своих взаимозаменяемых токенов. Контракт должен делать несколько вещей:
- Проверить, владеет ли Бенджи хотя бы 100 токенами.
- Убедитесь, что Бенджи вызывает функцию.
- Убедитесь, что Майк зарегистрирован в контракте.
- Снять 100 жетонов со счета Бенджи.
- Положите 100 жетонов на счет Майка.
Теперь вы готовы двигаться дальше и внести необходимые изменения в свой смарт-контракт.
Модификации контракта
Начнем наше путешествие с файла src/ft_core.rs
.
Передаточная функция
Вы начнете с реализации логики ft_transfer
, которая находится в файле src/ft_core.rs
. Эта функция перенесет указанную сумму
на Receiver_id
с необязательным меморандумом
, таким как "С Днем Рождения, Майк!"
.
5.transfers/src/ft_core.rs
loading...
См. полный пример на GitHub
Здесь следует отметить несколько моментов.
Мы представили новый метод
assert_one_yocto()
. Этот метод гарантирует, что пользователь подписывает транзакцию ключом полного доступа, требуя депозит ровно в 1 yoctoNEAR, наименьшую возможную сумму NEAR, которая может быть переведена. Поскольку функция передачи потенциально передает очень ценные активы, вы должны убедиться, что тот, кто вызывает функцию, имеет ключ полного доступа.Мы ввели метод
internal_transfer
. Это выполнит всю логику, необходимую для внутренней передачи токенов.
Внутренние вспомогательные функции
Давайте быстро перейдем к файлу ft-contract/src/internal.rs , чтобы вы могли реализовать метод internal_transfer
, который является ядром этого руководства. Эта функция будет принимать следующие параметры:
- sender_id : учетная запись, которая пытается передать токены.
- Receiver_id : учетная запись, которая получает токены.
- сумма : сумма переводимых FT.
- памятка : необязательная памятка для включения.
Первое, что вам нужно сделать, это убедиться, что отправитель не отправляет токены самому себе и что он отправляет положительное число. После этого вы захотите снять токены с баланса отправителя и внести их на баланс получателя. Вы уже написали логику для внесения FT с помощью internal_deposit
функция.
Используем аналогичную логику для реализации internal_withdraw
:
5.transfers/src/internal.rs
loading...
См. полный пример на GitHub
В данном случае контракт получит баланс счета и убедитесь, что они зарегистрированы, вызвав функцию internal_unwrap_balance_of
. Затем он вычтет сумму из баланса пользователя и повторно вставит его на карту.
Используя функции internal_deposit
и internal_withdraw
вместе, ядро функции internal_transfer
завершено.
Вам нужно сделать еще одну вещь. При передаче токенов вам нужно не забыть создать журнал в соответствии со стандартом событий:
5.transfers/src/internal.rs
loading...
См. полный пример на GitHub
Теперь, когда это готово, простая раздаточная коробка готова! Теперь вы можете передавать FT между зарегистрированными пользователями!
Функция перевода вызова
В этом разделе вы узнаете о новой функции ft_transfer_call
. Это передаст FT получателю, а также вызовет метод контракта получателя в одной и той же транзакции.
Рассмотрим следующий сценарий. Учетная запись хочет перевести FT на смарт-контракт для выполнения услуги. Традиционный подход заключается в том, чтобы выполнить услугу, а затем запросить токены в двух отдельных транзакциях. Если мы введем рабочий процесс «перевод и звонок», объединенный в одну транзакцию, процесс можно значительно улучшить:
5.transfers/src/ft_core.rs
loading...
См. полный пример на GitHub
Эта функция делает несколько вещей:
- Гарантирует, что вызывающая сторона прикрепила ровно 1 yocto в целях безопасности.
- Перенесите токены с помощью
internal_transfer
, который вы только что написали. - Создает обещание вызвать метод
ft_on_transfer
в контрактеReceiver_id
. - После завершения выполнения промиса функция
ft_resolve_transfer
вызывается.
При вызове ft_on_transfer
возвращается количество токенов, которое контракт должен вернуть первоначальному отправителю.
Это важно по нескольким причинам:
- Если вы отправляете получателю слишком много FT, а его контракт хочет возместить излишки.
- Если какая-либо логика выходит из строя, все токены должны быть возвращены отправителю.
Вся эта логика будет происходить в ft_resolve_transfer
function:
5.transfers/src/ft_core.rs
loading...
См. полный пример на GitHub
Первое, что вы должны сделать, это проверить статус промиса. Если что-то пошло не так, вы вернете отправителю полную сумму токенов. Если обещание выполнено успешно, вы извлечете количество токенов для возврата отправителю на основе значения, возвращенного из ft_on_transfer
. Как только у вас будет сумма, необходимая для возврата, вы выполните фактическую логику возврата, используя internal_transfer
функция, которую вы написали ранее.
Затем вы вернете чистую сумму токенов, которые были переданы получателю. Если отправитель перевел 100 токенов, но 20 были возвращены, эта функция должна вернуть 80.
Теперь вы успешно добавили необходимую логику, позволяющую пользователям передавать FT. Пришло время развернуть и провести некоторое тестирование.
Развертывание контракта
Давайте создадим новый субсчет для развертывания контракта. Поскольку эти изменения являются только аддитивными и не нарушают состояния, вы могли бы также развернуть исправление для контракта, который вы развернули в разделе хранилища. Чтобы узнать больше об обновлении контрактов, см. раздел «Обновление контракта» в руководстве NFT Zero to Hero.
Создание субсчета
Выполните следующую команду, чтобы создать субсчет перенос
вашей основной учетной записи с начальным балансом 25 NEAR, который будет переведен из исходной в вашу новую учетную запись.
рядом с передачей создания учетной записи. $FT_CONTRACT_ID --masterAccount $FT_CONTRACT_ID --initialBalance 25
Далее вам нужно экспортировать переменную среды для простоты разработки:
export TRANSFER_FT_CONTRACT_ID=transfer.$FT_CONTRACT_ID
Используя сценарий сборки, создайте развертывание контракта, как вы делали это в предыдущих руководствах:
cd 1.skeleton && ./build.sh && cd .. && near deploy --wasmFile out/contract.wasm -- accountId $TRANSFER_FT_CONTRACT_ID
Если вы не прошли предыдущие руководства и просто следуете этому, просто создайте учетную запись и войдите в свой интерфейс командной строки, используя рядом с логином
. Затем вы можете экспортировать переменную среды экспортировать TRANSFER_FT_CONTRACT_ID=ВАШ_АККАУНТ_ID_ЗДЕСЬ
. Кроме того, вы можете найти код контракта, зайдя в папку 5.transfers
. Вместо сборки с использованием 1.skeleton
вы можете выполнить сборку, перейдя в папку 5.transfers
и запустив . /build.sh
.
Инициализация
Теперь, когда контракт развернут, пришло время его инициализировать и отчеканить весь запас. Давайте еще раз создадим начальный запас 1000 gtNEAR
.
рядом с вызовом $TRANSFER_FT_CONTRACT_ID new_default_meta '{"owner_id": "'$TRANSFER_FT_CONTRACT_ID'", "total_supply": "10000000000000000000000000000"}' --accountId $TRANSFER_FT_CONTRACT_ID
9 1282Вы можете проверить, владеете ли вы FT, выполнив следующую команду :
вид вблизи $TRANSFER_FT_CONTRACT_ID ft_balance_of '{"account_id": "'$TRANSFER_FT_CONTRACT_ID'"}'
Тестирование передаточной функции
Давайте проверим передаточную функцию, передав 1
gtNEAR
с учетной записи владельца на учетную записьbenjiman.testnet
FT нельзя будет восстановить, если учетная запись
benjiman.testnet
не передаст их вам обратно. Если вы не хотите, чтобы ваши FT были потеряны, создайте новую учетную запись и вместо этого перенесите токен на эту учетную запись.Сначала вам необходимо зарегистрировать учетную запись
benjiman.testnet
, выполнив следующую команду.возле вызова $TRANSFER_FT_CONTRACT_ID storage_deposit '{"account_id": "benjiman.testnet"}' --accountId $TRANSFER_FT_CONTRACT_ID --amount 0,01
После регистрации учетной записи вы можете перенести FT, выполнив следующую команду. Обратите внимание, что вы также присоединяете ровно 1 yoctoNEAR, используя флаг
--depositYocto
.рядом с вызовом $TRANSFER_FT_CONTRACT_ID ft_transfer '{"receiver_id": "benjiman.testnet", "amount": "10000000000000000000000000", "memo": "Go Team :)"}' --accountId $TRANSFER_FT_CONTRACT_ID --depositYocto 1 9128 1В консоли должно появиться сообщение
FtTransferEvent
. В этот момент, если вы проверите общий запас, он все еще должен быть 1000gtNEAR
но если проверить и баланс бенджи и баланс владельца они должны отразить перевод.ближний вид $TRANSFER_FT_CONTRACT_ID ft_balance_of '{"account_id": "'$TRANSFER_FT_CONTRACT_ID'"}'
ближний вид $TRANSFER_FT_CONTRACT_ID ft_balance_of '{"account_id": "benjiman. testnet"}' 912 81вид вблизи $TRANSFER_FT_CONTRACT_ID ft_total_supply
Тестирование функции перевода вызова
Теперь, когда вы протестировали
ft_transfer
, пришло время протестировать функциюft_transfer_call
. Если вы попытаетесь передать токены получателю, который , а не , реализует функциюft_on_transfer
, в контракте произойдет паника, и FT будут возвращены . Давайте протестируем эту функциональность ниже.Вы можете попробовать перевести FT на счет
no-contract.testnet
который, как следует из названия, не имеет контракта. Это означает, что получатель не реализуетft_on_transfer
, и FT должны оставаться вашими после завершения транзакции. Однако сначала вам нужно будет зарегистрировать учетную запись.ближний вызов $TRANSFER_FT_CONTRACT_ID storage_deposit '{"account_id": "no-contract.testnet"}' --accountId $TRANSFER_FT_CONTRACT_ID --amount 0. 01
ближний вызов $TRANSFER_FT_CONTRACT_ID ft_transfer_call '{"получить r_id": "без контракта. testnet", "amount": "1000000000000000000000000", "msg": "foo"}' --accountId $TRANSFER_FT_CONTRACT_ID --depositYocto 1 --gas 200000000000000
Выходной ответ должен быть следующим.
Планирование звонка: transfer.dev-1660680326316-402417293.ft_transfer_call({"receiver_id": "no-contract.testnet", "amount": "100000000000000000000000000", "msg": "foo"}) с прикрепленным 0. 000000000000000000000001 РЯДОМ
Выполнение account.functionCall()
Квитанции: AJ3yWv7tSiZRLtoTkyTgfdzmQP1dpjX9DxJDiD33uwTZ, EKtpDFoJWNnbyxJ7SriAFQYX8XV9ZTzwmCF2qhSaYMAc, 21UzDZ791pWZRKAHv8WaRK N8mqDVrz8zewLWGTNZTckh
Журнал [transfer.dev-1660680326316-402417293]: EVENT_JSON: {"стандарт":"nep141","версия":"1.0.0","событие":"ft_transfer","данные":[{"old_owner_id":"transfer.dev-1660680326316-402417293 ","new_owner_id":"no-contract.testnet","amount":"10000000000000000000000000"}]}
Квитанция: 5N2WV8picxwUNC5TYa3A3v4qGquQAhkU6P81tgRt1UFN
Ошибка [transfer. dev-166068 0326316-402417293]: Ошибка: не удается найти код контракта для учетной записи № Contract.testnet
Получение: AdT1bSZNCu9ACq7m6ynb12GgSb3zBenfzvvzRwfYPBmg
Журнал [transfer.dev-1660680326316-402417293]: EVENT_JSON: {"стандарт":"nep141","версия":"1.0.0","событие":"ft_transfer","данные":[{"old_owner_id":"no-contract.testnet", "new_owner_id":"transfer.dev-1660680326316-402417293","amount":"10000000000000000000000000","memo":"Возврат"}]}
Идентификатор транзакции 2XVy8MZU8TWreW8C9zK6HSyBsxE5hy TbyUyxNdncxL8g
Чтобы просмотреть транзакцию в проводнике транзакций, откройте этот URL-адрес в вашем браузере
https://explorer.testnet.near.org/transactions/2XVy8MZU8TWreW8C9zK6HSyBsxE5hyTbyUyxNdncxL8g
'0'
Должно быть событие передачи для начальной передачи токенов, а затем также для возврата. Кроме того, функция должна была вернуть
0
, потому что отправитель в конечном итоге передал получателю токены net 0, поскольку все токены были возвращены.