<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Олександр Рогожкін</title><subtitle>Майбутнє поряд з Aleo</subtitle><author><name>Олександр Рогожкін</name></author><id>https://teletype.in/atom/rogozkin371</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/rogozkin371?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@rogozkin371?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=rogozkin371"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/rogozkin371?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-30T18:18:11.850Z</updated><entry><id>rogozkin371:iufJiLHCUS7</id><link rel="alternate" type="text/html" href="https://teletype.in/@rogozkin371/iufJiLHCUS7?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=rogozkin371"></link><title>Leo Playground</title><published>2024-03-08T14:54:07.451Z</published><updated>2024-03-08T14:54:07.451Z</updated><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/d4/6a/d46aeeb5-caf1-40f9-8657-3da01da9f435.png&quot;&gt;Використання Leo Playground досить зрозуміле. Ви можете переглядати надані приклади, як базові, так і складні, щоб краще зрозуміти функції інструкцій Leo та Aleo.</summary><content type="html">
  &lt;p id=&quot;HAHB&quot;&gt;Використання Leo Playground досить зрозуміле. Ви можете переглядати надані приклади, як базові, так і складні, щоб краще зрозуміти функції інструкцій Leo та Aleo.&lt;/p&gt;
  &lt;p id=&quot;ZHDX&quot;&gt;Деякі розробники вирішують писати цілі програми в Leo playground — це ідеальне місце для перевірки компіляції та запуску ваших програм без необхідності завантажувати сам Leo (хоча ми настійно рекомендуємо це, і якщо ви хочете виконувати локально на своїй машині, ви знадобиться).&lt;/p&gt;
  &lt;p id=&quot;A1dV&quot;&gt;Ви можете завантажити будь-які приклади чи програми, які ви написали самостійно на Playground, і розгорнути їх у розробницькій мережі. Підручник, як це зробити, надається нижче, коли ви досягнете цього кроку!&lt;/p&gt;
  &lt;p id=&quot;7XdS&quot;&gt;1. Інструменти для розгортання&lt;/p&gt;
  &lt;ul id=&quot;Ybhq&quot;&gt;
    &lt;li id=&quot;iFjr&quot;&gt;Встановити &lt;a href=&quot;https://developer.aleo.org/leo/installation&quot; target=&quot;_blank&quot;&gt;Leo&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;UYjx&quot;&gt;Встановіть &lt;a href=&quot;https://github.com/AleoHQ/tx-cannon&quot; target=&quot;_blank&quot;&gt;Aleo&amp;#x27;s transaction cannon&lt;/a&gt;, яка допоможе вам розгортати, виконувати та стрес-тестувати ваші програми Leo.&lt;/li&gt;
    &lt;li id=&quot;mo4B&quot;&gt;Встановіть  &lt;a href=&quot;https://github.com/AleoHQ/snarkOS&quot; target=&quot;_blank&quot;&gt;snarkOS&lt;/a&gt;, яка допоможе запустити живу мережу локально або на AWS.&lt;/li&gt;
    &lt;li id=&quot;TibA&quot;&gt;Встановіть &lt;a href=&quot;https://formulae.brew.sh/formula/tmux&quot; target=&quot;_blank&quot;&gt;tmux&lt;/a&gt;, оскільки його використовує інформаційна панель.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;2-start-a-local-aleo-devnet&quot;&gt;2. Створіть місцевий Aleo Devnet&lt;a href=&quot;https://developer.aleo.org/leo/playground#2-start-a-local-aleo-devnet&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;pre id=&quot;hMgS&quot;&gt;cd snarkOS./devnet.shEnter the total number of validators (default: 4): 4Do you want to run &amp;#x27;cargo install --path .&amp;#x27; to build the binary? (y/n, default: y): nDo you want to clear the existing ledger logs? (y/n, default: n): n&lt;/pre&gt;
  &lt;p id=&quot;HH5l&quot;&gt;Відразу під час запуску вузла ви побачите інформацію для вузла 0, скопіюйте це!&lt;/p&gt;
  &lt;pre id=&quot;7Yx3&quot;&gt;- 👋 Welcome to Aleo! We thank you for running a node and supporting privacy.- 🔑 Your development private key for node 0 is &amp;lt;private key&amp;gt;- 🪪 Your Aleo address is &amp;lt;address&amp;gt;- 🧭 Starting a validator node on Aleo Testnet 3 Phase 3 at 0.0.0.0:4130- 🌐 Starting the REST server at 0.0.0.0:3030- 🔑 Your one-time JWT token is &amp;lt;jwt-token&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;RXAm&quot;&gt;Якщо ви пропустили його, тому що він прокручувався надто швидко, використовуйте ці команди tmux, щоб прокрутити вгору:&lt;/p&gt;
  &lt;pre id=&quot;qLNv&quot;&gt;ctrl+b+[  # enter scroll mode to scroll upctrl+b+w  # see all 4 validator nodesctrl+b+:kill-session  # kills the sessionq  # exit ctrl+b mode&lt;/pre&gt;
  &lt;p id=&quot;akbZ&quot;&gt;Перевірте, чи ваша мережа працює, використовуючи &lt;a href=&quot;http://localhost:3030/testnet3/latest/height&quot; target=&quot;_blank&quot;&gt;http://localhost:3030/testnet3/latest/height&lt;/a&gt; in your browser. Висота повинна збільшуватися як знак того, що ваша мережа жива.&lt;/p&gt;
  &lt;h2 id=&quot;3-execute-your-playground-project-locally&quot;&gt;3. Реалізуйте свій проект дитячого майданчика на місці&lt;a href=&quot;https://developer.aleo.org/leo/playground#3-execute-your-playground-project-locally&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;uxHF&quot;&gt;Поверніться до свого проекту Playground і запустіть одну зі своїх функцій переходу &lt;code&gt;leo run &amp;lt;function&amp;gt;&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;0gbs&quot;&gt;По суті, програма &lt;code&gt;&amp;lt;program&amp;gt;.leo&lt;/code&gt; (у папці program) компілюється в &lt;code&gt;&amp;lt;program&amp;gt;.aleo&lt;/code&gt; і виконується локально.&lt;/p&gt;
  &lt;h2 id=&quot;4-deploying-your-program-on-devnet&quot;&gt;4. Розгортання вашої програми на Devnet​&lt;a href=&quot;https://developer.aleo.org/leo/playground#4-deploying-your-program-on-devnet&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;gWfn&quot;&gt;Давайте розгорнемо вашу програму в локальній мережі, яку ви щойно створили.&lt;/p&gt;
  &lt;p id=&quot;k8jj&quot;&gt;Пам’ятайте, що ви запустили чисту розробну мережу за адресою http://localhost:3030. Зараз ми хочемо розгорнути вашу програму в цій мережі.&lt;/p&gt;
  &lt;p id=&quot;4J0z&quot;&gt;Ще раз переконайтеся, що він працює: http://localhost:3030/testnet3/latest/height&lt;/p&gt;
  &lt;p id=&quot;Uzl2&quot;&gt;Число висоти має рухатися вгору.&lt;/p&gt;
  &lt;h3 id=&quot;transaction-cannon-deployment&quot;&gt;Transaction Cannon Deployment&lt;a href=&quot;https://developer.aleo.org/leo/playground#transaction-cannon-deployment&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;0hcT&quot;&gt;Використовуйте гармату транзакцій, щоб розгорнути свою програму.&lt;/p&gt;
  &lt;pre id=&quot;S3qI&quot;&gt;cd &amp;lt;your-project&amp;gt;tx-cannon deploy &amp;lt;project&amp;gt;/build/&amp;lt;project&amp;gt;.aleo -k &amp;lt;node-private-key-you-jotted-down-earlier&amp;gt; --fee 3 -e http://localhost:3030&lt;/pre&gt;
  &lt;p id=&quot;acL9&quot;&gt;Ви можете перевірити, чи ваше розгортання було успішним у вашій мережі, використовуючи: &lt;a href=&quot;http://localhost:3030/testnet3/transaction/&quot; target=&quot;_blank&quot;&gt;http://localhost:3030/testnet3/transaction/&lt;/a&gt;&amp;lt;your-txn-id&amp;gt;.&lt;/p&gt;
  &lt;h2 id=&quot;6-execution-on-chain-using-the-transaction-cannon&quot;&gt;6. Виконання On-Chain за допомогою Transaction Cannon​&lt;a href=&quot;https://developer.aleo.org/leo/playground#6-execution-on-chain-using-the-transaction-cannon&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;0CAI&quot;&gt;Після того, як ваша програма була розгорнута в devnet, її легко виконати в мережі. Створіть файл &lt;code&gt;.toml&lt;/code&gt; із цими параметрами. Ви можете знайти різні приклади в репозиторії з різними вхідними даними. Наведений нижче приклад стосується &lt;code&gt;helloworld.aleo&lt;/code&gt;.&lt;/p&gt;
  &lt;pre id=&quot;g1yg&quot;&gt;# helloworld.aleo[[step]]private_keys = [&amp;quot;your-node-private-key&amp;quot;]order = 0program_id = &amp;quot;helloworld.aleo&amp;quot;function = &amp;quot;main&amp;quot;inputs = [ &amp;quot;5u32&amp;quot;, &amp;quot;5u32&amp;quot; ]fee = 3&lt;/pre&gt;
  &lt;p id=&quot;TIK0&quot;&gt;Файл&lt;code&gt; .toml&lt;/code&gt; в основному наказує виконувати транзакції. Коли ми викликаємо команду  &lt;code&gt;tx-cannon execute&lt;/code&gt; ми просимо її знайти програму, яку ми розгорнули в нашій локальній мережі, і виконати її, використовуючи надані вхідні дані та відповідний закритий ключ.&lt;/p&gt;
  &lt;pre id=&quot;RRDb&quot;&gt;tx-cannon batch-execute --test helloworld.toml -e http://localhost:3030&lt;/pre&gt;
  &lt;p id=&quot;QdjL&quot;&gt;Ще раз переконайтеся, що програма виконалася: &lt;a href=&quot;http://localhost:3030/testnet3/transaction/&quot; target=&quot;_blank&quot;&gt;http://localhost:3030/testnet3/transaction/&lt;/a&gt;&lt;code&gt;&amp;lt;your-txn-id&amp;gt;&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;7y2D&quot;&gt;У репозиторії tx-cannon є набагато більше функцій, які можна дослідити. Ви можете пакетно розгортати, виконувати та передавати, тож скористайтеся перевагами цього інструменту, щоб запустити тести розробки на своїй програмі!&lt;/p&gt;
  &lt;p id=&quot;Pn44&quot;&gt;Вітаємо, ви забрали проект із Playground і успішно розгорнули його в мережі Aleo!&lt;/p&gt;
  &lt;h2 id=&quot;7-claim-your-leo-contributor-badge&quot;&gt;7. Отримайте значок Leo Contributor!​&lt;/h2&gt;
  &lt;p id=&quot;WfTA&quot;&gt;Пройти цей підручник було непростим завданням, тому, оскільки ви це зробили, ми хотіли б відзначити вас значком співавтора Лева на Github!&lt;/p&gt;
  &lt;h3 id=&quot;pushing-your-leo-application-to-github&quot;&gt;Розмістіть свою програму Leo на Github&lt;a href=&quot;https://developer.aleo.org/leo/playground#pushing-your-leo-application-to-github&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;ol id=&quot;wat7&quot;&gt;
    &lt;li id=&quot;clw7&quot;&gt;Давайте перейдемо до каталогу вашого проекту, ініціалізуємо та зафіксуємо вашу програму.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;NkVg&quot;&gt;cd aleo-projectgit init -b maingit add .git commit -m &amp;quot;first commit, new aleo app&amp;quot;&lt;/pre&gt;
  &lt;ol id=&quot;HYq2&quot;&gt;
    &lt;li id=&quot;cOuv&quot;&gt;Cтворіть нове сховище у своєму обліковому записі github.com, натиснувши «новий репозиторій» у верхньому правому куті. Налаштуйте репозиторій як загальнодоступний і не турбуйтеся про додавання файлів README, ліцензії або .gitignore. Ви можете додати ці файли після того, як ваш проект буде передано на GitHub&lt;/li&gt;
    &lt;li id=&quot;kOAS&quot;&gt;У верхній частині сторінки вашого нового сховища натисніть, щоб скопіювати URL-адресу віддаленого сховища, і поверніться до свого терміналу, щоб зв’язати свій локальний проект із цим сховищем.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;Ezgz&quot;&gt;git remote add origin &amp;lt;REMOTE_URL&amp;gt;git remote -vgit push -u origin main&lt;/pre&gt;
  &lt;h3 id=&quot;claim-your-leo-badge&quot;&gt;Claim your Leo badge&lt;a href=&quot;https://developer.aleo.org/leo/playground#claim-your-leo-badge&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;ol id=&quot;hZqj&quot;&gt;
    &lt;li id=&quot;zLOm&quot;&gt;Отримайте значок Лева &lt;a href=&quot;https://github.com/AleoHQ/leo/issues/new/choose&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;he41&quot;&gt;Перейдіть🥇 &amp;quot;Badge&amp;quot; і натисніть &amp;quot;Get Started&amp;quot;.&lt;/li&gt;
    &lt;li id=&quot;5Saf&quot;&gt;Дотримуйтесь коротких інструкцій і надішліть.&lt;/li&gt;
    &lt;li id=&quot;vxAt&quot;&gt;Після схвалення вашої проблеми ми додамо вас до розділу &lt;a href=&quot;https://github.com/AleoHQ/leo#%EF%B8%8F-contributors&quot; target=&quot;_blank&quot;&gt;contributors section&lt;/a&gt; у файлі Leo README.md.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;2V7J&quot;&gt;Вітаємо з тим, що ви стали співавтором Leo! 🎉&lt;/p&gt;
  &lt;h2 id=&quot;8-recap--additional-resources&quot;&gt;8. Підсумок і додаткові ресурси​&lt;a href=&quot;https://developer.aleo.org/leo/playground#8-recap--additional-resources&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;ol id=&quot;di1Q&quot;&gt;
    &lt;li id=&quot;qObD&quot;&gt;Ви завантажили проект із &lt;a href=&quot;https://play.leo-lang.org/&quot; target=&quot;_blank&quot;&gt;Leo Playground&lt;/a&gt;.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;ol id=&quot;mm1u&quot;&gt;
    &lt;li id=&quot;HYLr&quot;&gt;Ви встановили &lt;a href=&quot;https://developer.aleo.org/leo/&quot; target=&quot;_blank&quot;&gt;Leo&lt;/a&gt;, нашу статично типізовану мову програмування, створену для написання приватних програм, нашу &lt;a href=&quot;https://github.com/AleoHQ/tx-cannon&quot; target=&quot;_blank&quot;&gt;transaction cannon&lt;/a&gt; для легкого розгортання та виконання, а також &lt;a href=&quot;https://github.com/AleoHQ/snarkOS&quot; target=&quot;_blank&quot;&gt;snarkOS&lt;/a&gt;, рівень доступності даних.&lt;/li&gt;
    &lt;li id=&quot;jair&quot;&gt;Ви запустили локальну розробну мережу за допомогою репозиторію snarkOS.&lt;/li&gt;
    &lt;li id=&quot;HIUm&quot;&gt;Використовуючи Leo, ви скомпілювали та локально виконували свою програму Leo.&lt;/li&gt;
    &lt;li id=&quot;MRiG&quot;&gt;Використовуючи гармату транзакцій, ви розгорнули та виконали свою програму в ланцюжку в локальній розробній мережі.&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>rogozkin371:TJNk3qevrbv</id><link rel="alternate" type="text/html" href="https://teletype.in/@rogozkin371/TJNk3qevrbv?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=rogozkin371"></link><title>Інтерфейс командного рядка Leo</title><published>2024-03-08T14:36:25.982Z</published><updated>2024-03-08T14:36:25.982Z</updated><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/d4/6a/d46aeeb5-caf1-40f9-8657-3da01da9f435.png&quot;&gt;Leo CLI — це інструмент інтерфейсу командного рядка, який оснащений компілятором Leo.</summary><content type="html">
  &lt;p id=&quot;mpxK&quot;&gt;Leo CLI — це інструмент інтерфейсу командного рядка, який оснащений компілятором Leo.&lt;/p&gt;
  &lt;h2 id=&quot;installation&quot;&gt;Installation&lt;a href=&quot;https://developer.aleo.org/leo/commands#installation&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;LuS2&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/installation&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Install Leo&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;h2 id=&quot;global-flags&quot;&gt;Global Flags&lt;a href=&quot;https://developer.aleo.org/leo/commands#global-flags&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;ul id=&quot;2Arv&quot;&gt;
    &lt;li id=&quot;axD5&quot;&gt;&lt;code&gt;-d&lt;/code&gt;, &lt;code&gt;--debug&lt;/code&gt; - вмикає режим налагодження&lt;/li&gt;
    &lt;li id=&quot;jWYw&quot;&gt;&lt;code&gt;-h&lt;/code&gt;, &lt;code&gt;--help&lt;/code&gt; - друкує довідкову інформацію&lt;/li&gt;
    &lt;li id=&quot;DXm0&quot;&gt;&lt;code&gt;-V&lt;/code&gt;, &lt;code&gt;--version&lt;/code&gt; - Виводить інформацію про версію&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;list-of-commands&quot;&gt;Список команд:&lt;a href=&quot;https://developer.aleo.org/leo/commands#list-of-commands&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;qJhV&quot;&gt;TIP&lt;/p&gt;
  &lt;p id=&quot;ceCM&quot;&gt;Ви можете надрукувати список команд, запустивши &lt;code&gt;leo --help&lt;/code&gt;&lt;/p&gt;
  &lt;ul id=&quot;3gPP&quot;&gt;
    &lt;li id=&quot;s95y&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-example&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;example&lt;/code&gt;&lt;/a&gt; - створіть новий пакет Leo із прикладу програми.&lt;/li&gt;
    &lt;li id=&quot;JgD1&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-new&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;new&lt;/code&gt;&lt;/a&gt; - створити новий пакет Leo у новому каталозі.&lt;/li&gt;
    &lt;li id=&quot;OIez&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-build&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;build&lt;/code&gt;&lt;/a&gt; - скомпілювати поточний пакет як програму.&lt;/li&gt;
    &lt;li id=&quot;NSVJ&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-run&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;run&lt;/code&gt;&lt;/a&gt; - запуск програми з вхідними змінними.&lt;/li&gt;
    &lt;li id=&quot;ndLN&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-execute&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;execute&lt;/code&gt;&lt;/a&gt; - Виконати програму з вхідними змінними.&lt;/li&gt;
    &lt;li id=&quot;di55&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-clean&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;clean&lt;/code&gt;&lt;/a&gt; - Очистити вихідний каталог.&lt;/li&gt;
    &lt;li id=&quot;rZnu&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-update&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;update&lt;/code&gt;&lt;/a&gt; - оновлення до останньої версії Leo.&lt;/li&gt;
    &lt;li id=&quot;alb1&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-account&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;account&lt;/code&gt;&lt;/a&gt; - Створіть новий обліковий запис Aleo.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;leo-example&quot;&gt;&lt;code&gt;leo example&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-example&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;VbVx&quot;&gt;Щоб отримати список усіх доступних прикладів програм, виконайте:&lt;/p&gt;
  &lt;pre id=&quot;4Ht9&quot;&gt;leo example# Output:Create a new Leo example package in a new directoryUsage: leo example [OPTIONS] &amp;lt;COMMAND&amp;gt;Commands:  lottery    A public lottery program  tictactoe  A standard tic-tac-toe game program  token      A transparent &amp;amp; shielded custom token program  help       Print this message or the help of the given subcommand(s)Options:  -d                 Print additional information for debugging  -q                 Suppress CLI output      --path &amp;lt;PATH&amp;gt;  Optional path to Leo program root folder  -h, --help         Print help&lt;/pre&gt;
  &lt;p id=&quot;5aZ0&quot;&gt;Щоб створити новий пакет Leo із прикладу програми, виконайте:&lt;/p&gt;
  &lt;pre id=&quot;l4ls&quot;&gt;leo example {$NAME}&lt;/pre&gt;
  &lt;h2 id=&quot;leo-new&quot;&gt;&lt;code&gt;leo new&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-new&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;6YxQ&quot;&gt;Щоб створити новий пакет, виконайте:&lt;/p&gt;
  &lt;pre id=&quot;zyll&quot;&gt;leo new {$NAME}&lt;/pre&gt;
  &lt;p id=&quot;wzaA&quot;&gt;Дійсні назви пакунків: snake_case: малі літери та цифри, розділені підкресленням. Ця команда створить новий каталог із вказаною назвою пакета. Новий пакет матиме таку структуру каталогів:&lt;/p&gt;
  &lt;pre id=&quot;9KMR&quot;&gt;package/├── .env # Your program environment├── program.json # Your program manifest├── README.md # Your program description├── build/├── inputs/│ ├── hello.in # Your program inputs└── src/  └── main.leo # Your program file&lt;/pre&gt;
  &lt;h2 id=&quot;leo-build&quot;&gt;&lt;code&gt;leo build&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-build&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;iVs6&quot;&gt;INFO&lt;/p&gt;
  &lt;p id=&quot;A2mT&quot;&gt;T&lt;/p&gt;
  &lt;p id=&quot;ewzY&quot;&gt;Ця команда застаріла з Leo v1.9.0. Його буде видалено в майбутньому випуску.&lt;/p&gt;
  &lt;p id=&quot;NCeI&quot;&gt;Щоб скомпілювати свою програму в Aleo Instructions і переконатися, що вона правильно збирається, запустіть:&lt;/p&gt;
  &lt;pre id=&quot;hIx9&quot;&gt;leo build&lt;/pre&gt;
  &lt;p id=&quot;fV8Q&quot;&gt;Це заповнить каталог build/ (його створить, якщо він не існує) файлом інструкцій Aleo .aleo.&lt;/p&gt;
  &lt;p id=&quot;7nCP&quot;&gt;вихід на консоль:&lt;/p&gt;
  &lt;pre id=&quot;rdhm&quot;&gt;     Leo ✅ Compiled &amp;#x27;main.leo&amp;#x27; into Aleo instructions&lt;/pre&gt;
  &lt;h2 id=&quot;leo-run&quot;&gt;&lt;code&gt;leo run&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-run&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;BgGU&quot;&gt;TIP&lt;/p&gt;
  &lt;p id=&quot;39vy&quot;&gt;Використовуйте цю команду, щоб запустити програму перед її виконанням&lt;/p&gt;
  &lt;p id=&quot;ITdG&quot;&gt;Використовуйте цю команду, щоб запустити програму перед її виконанням&lt;/p&gt;
  &lt;p id=&quot;cxdI&quot;&gt; &lt;code&gt;.in&lt;/code&gt; .&lt;/p&gt;
  &lt;pre id=&quot;cpPY&quot;&gt;leo run {$TRANSITION}&lt;/pre&gt;
  &lt;p id=&quot;rxqa&quot;&gt;Щоб запустити функцію переходу Leo за допомогою введення з командного рядка. {$INPUTS} має бути списком вхідних даних програми, розділених пробілами.&lt;/p&gt;
  &lt;pre id=&quot;7Gs8&quot;&gt;leo run {$TRANSITION} {$INPUTS}&lt;/pre&gt;
  &lt;p id=&quot;rpWs&quot;&gt;Ця команда не синтезує схему програми та не генерує ключі перевірки та перевірки.&lt;/p&gt;
  &lt;p id=&quot;05vN&quot;&gt;вихід на консоль:&lt;/p&gt;
  &lt;pre id=&quot;O3bT&quot;&gt; Leo ✅ Compiled &amp;#x27;main.leo&amp;#x27; into Aleo instructions⛓  Constraints • &amp;#x27;hello.aleo/main&amp;#x27; - 35 constraints (called 1 time)➡️  Output • 3u32  Leo ✅ Finished &amp;#x27;hello.aleo/main&amp;#x27; (in &amp;quot;/hello/build&amp;quot;)&lt;/pre&gt;
  &lt;h2 id=&quot;leo-execute&quot;&gt;&lt;code&gt;leo execute&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-execute&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;dID5&quot;&gt;TIP&lt;/p&gt;
  &lt;p id=&quot;dMMv&quot;&gt;Використовуйте цю команду, щоб виконати програму та створити об’єкт транзакції.&lt;/p&gt;
  &lt;p id=&quot;7B2O&quot;&gt;Щоб виконати функцію переходу Leo, використовуючи вхідні дані з файлу&lt;/p&gt;
  &lt;p id=&quot;dRQm&quot;&gt; &lt;code&gt;.in&lt;/code&gt; програми.&lt;/p&gt;
  &lt;pre id=&quot;abbe&quot;&gt;leo execute {$TRANSITION}&lt;/pre&gt;
  &lt;p id=&quot;yPNt&quot;&gt;Щоб виконати функцію переходу Leo за допомогою введення з командного рядка.&lt;/p&gt;
  &lt;p id=&quot;KEVq&quot;&gt; &lt;code&gt;{$INPUTS}&lt;/code&gt; має бути списком вхідних даних програми, розділених пробілами.&lt;/p&gt;
  &lt;pre id=&quot;niax&quot;&gt;leo execute {$TRANSITION} {$INPUTS}&lt;/pre&gt;
  &lt;p id=&quot;eYUq&quot;&gt;має бути списком вхідних даних програми, розділених пробілами.&lt;/p&gt;
  &lt;p id=&quot;R5vB&quot;&gt;вихід на консоль:&lt;/p&gt;
  &lt;pre id=&quot;gUpD&quot;&gt; Leo ✅ Compiled &amp;#x27;main.leo&amp;#x27; into Aleo instructions⛓  Constraints • &amp;#x27;hello.aleo/main&amp;#x27; - 35 constraints (called 1 time)➡️  Output • 3u32  {&amp;quot;type&amp;quot;:&amp;quot;execute&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;at1 ... (transaction object truncated for brevity)  Leo ✅ Executed &amp;#x27;hello.aleo/main&amp;#x27; (in &amp;quot;/hello/build&amp;quot;)&lt;/pre&gt;
  &lt;h2 id=&quot;leo-clean&quot;&gt;&lt;code&gt;leo clean&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-clean&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;PKK3&quot;&gt;Щоб очистити каталог збірки, запустіть:&lt;/p&gt;
  &lt;pre id=&quot;HCMx&quot;&gt;leo clean&lt;/pre&gt;
  &lt;p id=&quot;B8Zk&quot;&gt;вихід на консоль:&lt;/p&gt;
  &lt;pre id=&quot;vfcQ&quot;&gt;  Leo cleaned the build directory (in &amp;quot;/build/&amp;quot;)&lt;/pre&gt;
  &lt;h2 id=&quot;leo-update&quot;&gt;&lt;code&gt;leo update&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-update&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;dmDJ&quot;&gt;Щоб завантажити та встановити останню версію Leo, виконайте:&lt;/p&gt;
  &lt;pre id=&quot;QKUE&quot;&gt;leo update&lt;/pre&gt;
  &lt;p id=&quot;vbdN&quot;&gt;вихід на консоль:&lt;/p&gt;
  &lt;pre id=&quot;51q2&quot;&gt;Checking target-arch... x86_64-apple-darwinChecking current version... v1.8.3Checking latest released version... v1.8.3  Updating Leo is on the latest version 1.9.0&lt;/pre&gt;
  &lt;h2 id=&quot;leo-account&quot;&gt;&lt;code&gt;leo account&lt;/code&gt;&lt;a href=&quot;https://developer.aleo.org/leo/commands#leo-account&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;8qvA&quot;&gt;Щоб створити новий обліковий запис Aleo, виконайте:&lt;/p&gt;
  &lt;pre id=&quot;aVat&quot;&gt;leo account new# Output:  Private Key  APrivateKey1zkp...     View Key  AViewKey1...      Address  aleo1...&lt;/pre&gt;
  &lt;p id=&quot;l11c&quot;&gt;Щоб імпортувати наявний обліковий запис Aleo, виконайте:&lt;/p&gt;
  &lt;pre id=&quot;f3Qt&quot;&gt;leo account import {$PRIVATE_KEY}&lt;/pre&gt;
  &lt;p id=&quot;5DoT&quot;&gt;Щоб створити новий обліковий запис і зберегти його у файлі .env file, виконайте:&lt;/p&gt;
  &lt;pre id=&quot;dXf1&quot;&gt;leo account new --write&lt;/pre&gt;
  &lt;p id=&quot;CYIs&quot;&gt;Щоб перерахувати всі варіанти&lt;/p&gt;
  &lt;pre id=&quot;Eb3B&quot;&gt;leo account --help# Output:Create a new Aleo accountUsage: leo account [OPTIONS] &amp;lt;COMMAND&amp;gt;Commands:  new     Generates a new Aleo account  import  Derive an Aleo account from a private key  help    Print this message or the help of the given subcommand(s)Options:  -d                 Print additional information for debugging  -q                 Suppress CLI output      --path &amp;lt;PATH&amp;gt;  Optional path to Leo program root folder  -h, --help         Print help&lt;/pre&gt;

</content></entry><entry><id>rogozkin371:3T1KloRMJlR</id><link rel="alternate" type="text/html" href="https://teletype.in/@rogozkin371/3T1KloRMJlR?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=rogozkin371"></link><title>Починаємо кодити з Aleo (Мова)</title><published>2024-03-08T14:24:53.142Z</published><updated>2024-03-08T14:24:53.142Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/e5/bc/e5bc6117-cfde-4791-a5d6-a7ffc7691343.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/d4/6a/d46aeeb5-caf1-40f9-8657-3da01da9f435.png&quot;&gt;Leo є статично типізованою мовою, що означає, що ми повинні знати тип кожної змінної перед виконанням схеми.</summary><content type="html">
  &lt;figure id=&quot;ZEnS&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d4/6a/d46aeeb5-caf1-40f9-8657-3da01da9f435.png&quot; width=&quot;1912&quot; /&gt;
  &lt;/figure&gt;
  &lt;h1 id=&quot;jSQ2&quot;&gt;Leo Мовний посібник&lt;/h1&gt;
  &lt;h3 id=&quot;statically-typed&quot;&gt;Statically Typed&lt;a href=&quot;https://developer.aleo.org/leo/language#statically-typed&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;PhNz&quot;&gt;Leo є статично типізованою мовою, що означає, що ми повинні знати тип кожної змінної перед виконанням схеми.&lt;/p&gt;
  &lt;h3 id=&quot;explicit-types-required&quot;&gt;Explicit Types Required&lt;a href=&quot;https://developer.aleo.org/leo/language#explicit-types-required&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;r61n&quot;&gt;У Leo немає значення undefined або null. При призначенні нової змінної тип значення має бути вказано явно.&lt;/p&gt;
  &lt;h3 id=&quot;pass-by-value&quot;&gt;Pass by Value&lt;a href=&quot;https://developer.aleo.org/leo/language#pass-by-value&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;btdV&quot;&gt;Вирази в Leo завжди &lt;strong&gt;передаються за значенням&lt;/strong&gt;, що означає, що їхні значення завжди копіюються, коли вони використовуються як вхідні дані функції або в правих частинах призначень.&lt;/p&gt;
  &lt;h2 id=&quot;data-types-and-values&quot;&gt;Data Types and Values&lt;a href=&quot;https://developer.aleo.org/leo/language#data-types-and-values&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;h3 id=&quot;booleans&quot;&gt;Booleans&lt;a href=&quot;https://developer.aleo.org/leo/language#booleans&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;vku1&quot;&gt;Leo підтримує традиційні булеві значення &lt;em&gt;true &lt;/em&gt;або &lt;em&gt;false&lt;/em&gt;. Потрібен явний тип bool для логічних значень у операторах.&lt;/p&gt;
  &lt;pre id=&quot;pCRi&quot;&gt;let b: bool = false;&lt;/pre&gt;
  &lt;h3 id=&quot;integers&quot;&gt;Integers&lt;a href=&quot;https://developer.aleo.org/leo/language#integers&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;4n9d&quot;&gt;Leo підтримує знакові цілі типи i8, i16, i32, i64, i128 і беззнакові цілі типи u8, u16, u32, u64, u128.&lt;/p&gt;
  &lt;pre id=&quot;kOQ5&quot;&gt;let b: u8 = 1u8;&lt;/pre&gt;
  &lt;p id=&quot;HfzZ&quot;&gt;Підкреслення _ можна використовувати для розділення цифр у цілих літералах.&lt;/p&gt;
  &lt;pre id=&quot;U054&quot;&gt;let b: u8 = 1_000_000u64;&lt;/pre&gt;
  &lt;p id=&quot;kKNi&quot;&gt;INFO&lt;/p&gt;
  &lt;p id=&quot;CnYc&quot;&gt;Цілі числа з більшою довжиною біта створюють більше обмежень у схемі, що може сповільнити час обчислення.&lt;/p&gt;
  &lt;h4 id=&quot;a-note-on-leo-integers&quot;&gt;A Note on Leo Integers&lt;a href=&quot;https://developer.aleo.org/leo/language#a-note-on-leo-integers&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;Zqlf&quot;&gt;Leo за замовчуванням не використовуватиме цілочисельний тип. Визначення цілого числа має містити явний тип.&lt;br /&gt;&lt;strong&gt;Type casting is supported as of Leo v1.8.2&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;0V2A&quot;&gt;let a: u8 = 2u8; // explicit typelet b: u16 = a as u16; // type castinglet b: u8 = 2; // implicit type -- not supported&lt;/pre&gt;
  &lt;h3 id=&quot;field-elements&quot;&gt;Field Elements&lt;a href=&quot;https://developer.aleo.org/leo/language#field-elements&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;AURc&quot;&gt;Leo підтримує &lt;code&gt;field&lt;/code&gt; тип для елементів базового поля еліптичної кривої. Це цілі числа без знаку, менші за модуль основного поля. Нижче наведені найменший і найбільший елементи поля.&lt;/p&gt;
  &lt;pre id=&quot;WgoC&quot;&gt;let a: field = 0field;let b: field = 8444461749428370424248824938781546531375899335154063827935233455917409239040field;&lt;/pre&gt;
  &lt;h3 id=&quot;group-elements&quot;&gt;Group Elements&lt;a href=&quot;https://developer.aleo.org/leo/language#group-elements&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;DYev&quot;&gt;Множина афінних точок на еліптичній кривій утворює групу. Крива є скрученою кривою Едвардса з a = -1 і d = 3021. Leo підтримує підгрупу групи, створену генераторною точкою, як примітивний тип даних. Елемент групи позначається х-координатою його точки; наприклад, 2group означає точку&lt;code&gt;(2,5553594316923449299484601589326170487897520766531075014687114064346375156608)&lt;/code&gt;.&lt;/p&gt;
  &lt;pre id=&quot;WAm8&quot;&gt;let a: group = 0group; // the point with 0 x-coordinate, (0, 1)let b: group = 1540945439182663264862696551825005342995406165131907382295858612069623286213group;  // the generator point&lt;/pre&gt;
  &lt;p id=&quot;Ao4r&quot;&gt;Вищезазначену генераторну точку можна отримати через константу, пов’язану з типом &lt;code&gt;group&lt;/code&gt; .&lt;/p&gt;
  &lt;pre id=&quot;Jg2q&quot;&gt;let g: group = group::GEN; // the group generator&lt;/pre&gt;
  &lt;h3 id=&quot;scalar-elements&quot;&gt;Scalar Elements&lt;a href=&quot;https://developer.aleo.org/leo/language#scalar-elements&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;BGAn&quot;&gt;Leo підтримує &lt;code&gt;scalar&lt;/code&gt;  тип для елементів скалярного поля, визначеного підгрупою еліптичної кривої. Це цілі числа без знака, менші за модуль скалярного поля. Показ найменшого та найбільшого скалярів.&lt;/p&gt;
  &lt;pre id=&quot;aGri&quot;&gt;let a: scalar = 0scalar;let b: scalar = 2111115437357092606062206234695386632838870926408408195193685246394721360382scalar;&lt;/pre&gt;
  &lt;h3 id=&quot;addresses&quot;&gt;Addresses&lt;a href=&quot;https://developer.aleo.org/leo/language#addresses&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;qzri&quot;&gt;Адреси визначаються, щоб увімкнути оптимізовані компілятором підпрограми для аналізу та роботи над адресами. Ця семантика буде супроводжуватися стандартною бібліотекою в майбутньому спринті.&lt;/p&gt;
  &lt;pre id=&quot;oAw2&quot;&gt;let receiver: address = aleo1ezamst4pjgj9zfxqq0fwfj8a4cjuqndmasgata3hggzqygggnyfq6kmyd4;&lt;/pre&gt;
  &lt;h3 id=&quot;signatures&quot;&gt;Signatures&lt;a href=&quot;https://developer.aleo.org/leo/language#signatures&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;5333&quot;&gt;Aleo використовує схему підписів Schnorr для підпису повідомлень закритим ключем Aleo. Підписи в Leo мають власний підпис типу та можуть бути оголошені як літерали &lt;code&gt;sign069ju4e8s66unu25celqycvsv3k9chdyz4n4sy62tx6wxj0u25vqp58hgu9hwyqc63qzxvjwesf2wz0krcvvw9kd9x0rsk4lwqn2acqhp9v0pdkhx6gvkanuuwratqmxa3du7l43c05253hhed9eg6ppzzfnjt06fpzp6msekdjxd36smjltndmxjndvv9x2uecsgngcwsc2qkns4afd&lt;/code&gt;.&lt;br /&gt;Підписи можна перевірити в Leo за допомогою операторів &lt;a href=&quot;https://developer.aleo.org/leo/operators#signatureverify&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;signature::verify&lt;/code&gt; or &lt;code&gt;s.verify&lt;/code&gt;&lt;/a&gt; .&lt;/p&gt;
  &lt;pre id=&quot;hvMF&quot;&gt;program test.aleo {    struct foo {        a: u8,        b: scalar    }    transition verify_field(s: signature, a: address, v: field) {        let first: bool = signature::verify(s, a, v);        let second: bool = s.verify(a, v);        assert_eq(first, second);    }    transition verify_foo(s: signature, a: address, v: foo) {        let first: bool = signature::verify(s, a, v);        let second: bool = s.verify(a, v);        assert_eq(first, second);    }}&lt;/pre&gt;
  &lt;h2 id=&quot;layout-of-a-leo-program&quot;&gt;Layout of a Leo Program&lt;a href=&quot;https://developer.aleo.org/leo/language#layout-of-a-leo-program&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;eZrA&quot;&gt;Програма Leo містить &lt;a href=&quot;https://developer.aleo.org/leo/language#program-scope&quot; target=&quot;_blank&quot;&gt;Program Scope&lt;/a&gt;, &lt;a href=&quot;https://developer.aleo.org/leo/language#constant&quot; target=&quot;_blank&quot;&gt;Constants&lt;/a&gt;, &lt;a href=&quot;https://developer.aleo.org/leo/language#import&quot; target=&quot;_blank&quot;&gt;Imports&lt;/a&gt; , &lt;a href=&quot;https://developer.aleo.org/leo/language#transition-function&quot; target=&quot;_blank&quot;&gt;Transition Functions&lt;/a&gt;, &lt;a href=&quot;https://developer.aleo.org/leo/language#helper-function&quot; target=&quot;_blank&quot;&gt;Helper Functions&lt;/a&gt;, &lt;a href=&quot;https://developer.aleo.org/leo/language#struct&quot; target=&quot;_blank&quot;&gt;Structs&lt;/a&gt; , &lt;a href=&quot;https://developer.aleo.org/leo/language#record&quot; target=&quot;_blank&quot;&gt;Records&lt;/a&gt;, &lt;a href=&quot;https://developer.aleo.org/leo/language#mapping&quot; target=&quot;_blank&quot;&gt;Mappings&lt;/a&gt;, та &lt;a href=&quot;https://developer.aleo.org/leo/language#finalize-function&quot; target=&quot;_blank&quot;&gt;Finalize Functions&lt;/a&gt;.Оголошення доступні локально в програмному файлі. Якщо вам потрібна декларація з іншого файлу Leo, ви повинні її імпортувати.&lt;/p&gt;
  &lt;h3 id=&quot;program-scope&quot;&gt;Program Scope&lt;a href=&quot;https://developer.aleo.org/leo/language#program-scope&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;FYbB&quot;&gt;Область дії програми в сенсі Leo — це набір коду (його функцій) і даних (його типів), які знаходяться в &lt;a href=&quot;https://developer.aleo.org/leo/language#program-id&quot; target=&quot;_blank&quot;&gt;program ID&lt;/a&gt; в Aleo blockchain.&lt;/p&gt;
  &lt;pre id=&quot;6QDF&quot;&gt;import foo.leo;program hello.aleo {    mapping balances: address =&amp;gt; u64;    record token {        owner: address,        amount: u64,    }    struct message {        sender: address,        object: u64,    }    transition mint_public(        public receiver: address,        public amount: u64,    ) -&amp;gt; token {        return token {            owner: receiver,            amount,        } then finalize(receiver, amount);    }    finalize mint_public(        public receiver: address,        public amount: u64,    ) {        let current_amount: u64 = Mapping::get_or_use(account, receiver, 0u64);        Mapping::set(account, receiver, current_amount + amount);   }    function compute(a: u64, b: u64) -&amp;gt; u64 {        return a + b;    }}&lt;/pre&gt;
  &lt;p id=&quot;p8Jq&quot;&gt;У межах програми у файлі Leo має бути оголошено наступне:&lt;/p&gt;
  &lt;ul id=&quot;8kDw&quot;&gt;
    &lt;li id=&quot;sdgV&quot;&gt;constants&lt;/li&gt;
    &lt;li id=&quot;7qTc&quot;&gt;mappings&lt;/li&gt;
    &lt;li id=&quot;JEjf&quot;&gt;record types&lt;/li&gt;
    &lt;li id=&quot;bmJu&quot;&gt;struct types&lt;/li&gt;
    &lt;li id=&quot;N8ih&quot;&gt;transition functions&lt;/li&gt;
    &lt;li id=&quot;hNl9&quot;&gt;helper functions&lt;/li&gt;
    &lt;li id=&quot;0tN7&quot;&gt;finalize functions&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;JVxO&quot;&gt;Наступне має бути оголошено за межами області дії програми у файлі Leo:&lt;/p&gt;
  &lt;ul id=&quot;nv3p&quot;&gt;
    &lt;li id=&quot;5pzP&quot;&gt;imports&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;program-id&quot;&gt;Program ID&lt;a href=&quot;https://developer.aleo.org/leo/language#program-id&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;gJgz&quot;&gt;ID програми оголошено як &lt;code&gt;{name}.{network}&lt;/code&gt;. Перший символ &lt;code&gt;name&lt;/code&gt; має бути малим. &lt;code&gt;name&lt;/code&gt; може містити малі літери, цифри та підкреслення. Наразі aleo є єдиним підтримуваним доменом мережі.&lt;/p&gt;
  &lt;pre id=&quot;pKnh&quot;&gt;program hello.aleo; // validprogram Foo.aleo;   // invalidprogram baR.aleo;   // invalidprogram 0foo.aleo;  // invalidprogram 0_foo.aleo; // invalidprogram _foo.aleo;  // invalid&lt;/pre&gt;
  &lt;h3 id=&quot;constant&quot;&gt;Constant&lt;a href=&quot;https://developer.aleo.org/leo/language#constant&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;NeyH&quot;&gt;Константа оголошується як &lt;code&gt;const {name}: {type} = {expression};&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;AEYg&quot;&gt;Константи є незмінними і їм потрібно присвоїти значення під час оголошення. Константи можуть бути оголошені в глобальній області програми або в локальній області видимості функції.&lt;/p&gt;
  &lt;pre id=&quot;xg3B&quot;&gt;program foo.aleo {    const FOO: u8 = 1u8;        function bar() -&amp;gt; u8 {        const BAR: u8 = 2u8;        return FOO + BAR;    }}&lt;/pre&gt;
  &lt;h3 id=&quot;import&quot;&gt;Import&lt;a href=&quot;https://developer.aleo.org/leo/language#import&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;iT1S&quot;&gt;Ви можете імпортувати залежності, завантажені до каталогу&lt;code&gt;imports&lt;/code&gt;.Імпорт оголошується як &lt;code&gt;import {filename}.leo;&lt;/code&gt; Цу буде виглядати як &lt;code&gt;mports/{filename}.leo&lt;/code&gt; та перенесено всі оголошення в поточну область файлу. Якщо є повторювані імена для декларацій, Leo не вдасться скомпілювати. Порядок застосовується для імпорту, який має бути у верхній частині файлу.&lt;br /&gt;CAUTION&lt;/p&gt;
  &lt;p id=&quot;R64r&quot;&gt;Імпорт Leo нестабільний і наразі забезпечує лише мінімальну функціональність. Очікується, що їхній синтаксис зміниться.&lt;/p&gt;
  &lt;pre id=&quot;3YVx&quot;&gt;import foo.leo; // Import all &amp;#x60;foo.leo&amp;#x60; declarations into the &amp;#x60;hello.aleo&amp;#x60; program.program hello.aleo { }&lt;/pre&gt;
  &lt;h3 id=&quot;struct&quot;&gt;Struct&lt;a href=&quot;https://developer.aleo.org/leo/language#struct&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;kzY3&quot;&gt;Тип даних struct оголошується як  &lt;code&gt;struct {name} {}&lt;/code&gt;. Тип даних struct оголошується як &lt;code&gt;{name}: {type},&lt;/code&gt;.&lt;/p&gt;
  &lt;pre id=&quot;qFDq&quot;&gt;struct array3 {    a0: u32,    a1: u32,    a2: u32,}&lt;/pre&gt;
  &lt;h3 id=&quot;record&quot;&gt;Record&lt;a href=&quot;https://developer.aleo.org/leo/language#record&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;qQzA&quot;&gt;Тип даних запису оголошено як запис&lt;code&gt; {name} {}&lt;/code&gt;. Записи містять оголошення компонентів &lt;code&gt;{visibility} {name}: {type},&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;4sYH&quot;&gt;Видимість може бути &lt;code&gt;constant&lt;/code&gt;, &lt;code&gt;public&lt;/code&gt;, or &lt;code&gt;private&lt;/code&gt;. Користувачі також можуть опускати видимість, і в цьому випадку Leo за умовчанням буде &lt;code&gt;private&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;xfGu&quot;&gt;Структури даних запису повинні містити компонент&lt;code&gt;owner&lt;/code&gt; як показано нижче. При передачі запису як вхідних даних у програмну функцію також потрібен компонент  &lt;code&gt;_nonce: group&lt;/code&gt; (але його не потрібно оголошувати в програмі Leo).&lt;/p&gt;
  &lt;pre id=&quot;FSNy&quot;&gt;record token {    // The token owner.    owner: address,    // The token amount.    amount: u64,}&lt;/pre&gt;
  &lt;h3 id=&quot;array&quot;&gt;Array&lt;a href=&quot;https://developer.aleo.org/leo/language#array&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;OJcE&quot;&gt;Leo підтримує статичні масиви. Масиви оголошуються як &lt;code&gt;[type; length]&lt;/code&gt; і може бути вкладеним. Масиви не можуть бути порожніми або зміненими.&lt;/p&gt;
  &lt;p id=&quot;gvyP&quot;&gt;Масиви підтримують лише постійні доступи (індекс має бути постійним значенням). Значення засобу доступу має бути постійним цілим числом.&lt;/p&gt;
  &lt;p id=&quot;pX6k&quot;&gt;Масиви можуть містити примітивні типи даних, структури або масиви. Структури та записи також можуть містити масиви.&lt;br /&gt;Масиви можна повторювати за допомогою циклу for.&lt;/p&gt;
  &lt;pre id=&quot;8Owl&quot;&gt;// Initalize a boolean array of length 4let arr: [bool; 4] = [true, false, true, false];// Nested Arraylet nested: [[bool; 2]; 2] = [[true, false], [true, false]];// Array of Structsstruct bar {    data: u8,}let arr_of_structs: [bar; 2] = [bar { data: 1u8 }, bar { data: 2u8 }];// Access the field of a struct within an arraytransition foo(a: [bar; 8]) -&amp;gt; u8 {    return a[0u8].data;}// Struct that contains an arraystruct bat {    data: [u8; 8],}// Record that contains an arrayrecord floo {    owner: address,    data: [u8; 8],}// Declare a mapping that contains an array valuemapping data: address =&amp;gt; [bool; 8];// Iterate over an array using a for loop and sum the values withintransition sum_with_loop(a: [u64; 4]) -&amp;gt; u64 {    let sum: u64 = 0u64;    for i: u8 in 0u8..4u8 {        sum += a[i];    }    return sum;}&lt;/pre&gt;
  &lt;h3 id=&quot;tuple&quot;&gt;Tuple&lt;a href=&quot;https://developer.aleo.org/leo/language#tuple&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;dcET&quot;&gt;Лев підтримує кортежі. Кортежі оголошуються як &lt;code&gt;(type1, type2, ...)&lt;/code&gt; і можуть бути вкладеними. Кортежі не можуть бути порожніми або зміненими.&lt;/p&gt;
  &lt;p id=&quot;0E8l&quot;&gt;Кортежі підтримують лише постійний доступ із крапкою . і постійне ціле число.&lt;/p&gt;
  &lt;p id=&quot;jHFT&quot;&gt;Кортежі можуть містити примітивні типи даних, структури або масиви. Структури та записи також можуть містити кортежі.&lt;/p&gt;
  &lt;pre id=&quot;OBMI&quot;&gt;program test.aleo {    transition baz(foo: u8, bar: u8) -&amp;gt; u8 {        let a: (u8, u8) = (foo, bar);        let result: u8 = a.0 + a.1;        return result;    }}&lt;/pre&gt;
  &lt;h3 id=&quot;transition-function&quot;&gt;Transition Function&lt;a href=&quot;https://developer.aleo.org/leo/language#transition-function&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;bCt0&quot;&gt;Функції переходу в Leo оголошуються як &lt;code&gt;transition {name}() {}&lt;/code&gt;. Функції переходу можна викликати безпосередньо під час виконання програми Leo (через &lt;code&gt;leo run&lt;/code&gt;). Функції переходу містять вирази та оператори, які можуть обчислювати значення. Для виклику функції переходу мають бути в поточній області програми.&lt;/p&gt;
  &lt;pre id=&quot;eLG0&quot;&gt;program hello.aleo {    transition foo(        public a: field,        b: field,    ) -&amp;gt; field {        return a + b;    }}&lt;/pre&gt;
  &lt;h4 id=&quot;function-inputs&quot;&gt;Function Inputs&lt;a href=&quot;https://developer.aleo.org/leo/language#function-inputs&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;2UCU&quot;&gt;Вхідні дані функції оголошуються як  &lt;code&gt;{visibility} {name}: {type},&lt;/code&gt; Вхідні дані функції мають бути оголошені відразу після оголошення назви функції в дужках.&lt;/p&gt;
  &lt;pre id=&quot;N1Lp&quot;&gt;// The transition function &amp;#x60;foo&amp;#x60; takes a single input &amp;#x60;a&amp;#x60; with type &amp;#x60;field&amp;#x60; and visibility &amp;#x60;public&amp;#x60;.transition foo(public a: field) { }&lt;/pre&gt;
  &lt;h4 id=&quot;function-outputs&quot;&gt;Function Outputs&lt;a href=&quot;https://developer.aleo.org/leo/language#function-outputs&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;It3G&quot;&gt;Вихід функції обчислюється як  &lt;code&gt;return {expression};&lt;/code&gt;. Повернення виведення завершує виконання функції. Тип повернення оголошення функції має відповідати типу повернутого &lt;code&gt;{expression}&lt;/code&gt;.&lt;/p&gt;
  &lt;pre id=&quot;hyqx&quot;&gt;transition foo(public a: field) -&amp;gt; field {    // Returns the addition of the public input a and the value &amp;#x60;1field&amp;#x60;.    return a + 1field;}&lt;/pre&gt;
  &lt;h3 id=&quot;helper-function&quot;&gt;Helper Function&lt;a href=&quot;https://developer.aleo.org/leo/language#helper-function&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;eR8W&quot;&gt;Допоміжна функція оголошується як &lt;code&gt;function {name}() {}&lt;/code&gt;. Допоміжні функції містять вирази та оператори, які можуть обчислювати значення, однак допоміжні функції не можуть створювати&lt;code&gt;records&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;blZ1&quot;&gt;Допоміжні функції не можна викликати безпосередньо ззовні. Замість цього вони повинні викликатися іншими функціями. Вхідні дані допоміжних функцій не можуть мати модифікатори &lt;code&gt;{visibility}&lt;/code&gt; Допоміжні функції не можна викликати безпосередньо ззовні. Замість цього вони повинні викликатися іншими функціями. Вхідні дані допоміжних функцій не можуть мати модифікатори.&lt;/p&gt;
  &lt;pre id=&quot;enIm&quot;&gt;function foo(    a: field,    b: field,) -&amp;gt; field {    return a + b;}&lt;/pre&gt;
  &lt;h3 id=&quot;inline-function&quot;&gt;Inline Function&lt;a href=&quot;https://developer.aleo.org/leo/language#inline-function&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;ChhC&quot;&gt;Вбудована функція оголошується як &lt;code&gt;inline {name}() {}&lt;/code&gt;. Вбудовані функції містять вирази та оператори, які можуть обчислювати значення. Вбудовані функції не можуть бути виконані безпосередньо ззовні, натомість компілятор Leo вбудовує тіло функції в кожне місце виклику.&lt;/p&gt;
  &lt;p id=&quot;pJOX&quot;&gt;Вхідні дані вбудованих функцій не можуть мати модифікатори &lt;code&gt;{visibility}&lt;/code&gt; як функції переходу, оскільки вони використовуються лише внутрішньо, а не як частина зовнішнього інтерфейсу програми.&lt;/p&gt;
  &lt;pre id=&quot;eHj7&quot;&gt;inline foo(    a: field,    b: field,) -&amp;gt; field {    return a + b;}&lt;/pre&gt;
  &lt;p id=&quot;rb3b&quot;&gt;Правила для функцій (у традиційному розумінні) такі:&lt;/p&gt;
  &lt;ul id=&quot;ok5R&quot;&gt;
    &lt;li id=&quot;8OR1&quot;&gt;Є три варіанти функцій: перехідна, функціональна, вбудована.&lt;/li&gt;
    &lt;li id=&quot;X3Ui&quot;&gt;переходи можуть викликати лише функції та вбудовані рядки.&lt;/li&gt;
    &lt;li id=&quot;WxZT&quot;&gt;функції можуть викликати лише inlines.&lt;/li&gt;
    &lt;li id=&quot;0xw7&quot;&gt;функції можуть викликати лише inlines.&lt;/li&gt;
    &lt;li id=&quot;5OXu&quot;&gt;Прямі/непрямі рекурсивні виклики заборонені&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;finalize-function&quot;&gt;Finalize Function&lt;a href=&quot;https://developer.aleo.org/leo/language#finalize-function&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;NDF8&quot;&gt;Функція finalize оголошується як &lt;code&gt;finalize {name}:&lt;/code&gt; і використовується для виконання обчислень у ланцюжку. Однією з його основних цілей є ініціювання або зміна публічного стану в ланцюжку в межах зіставлення. Функція завершення повинна слідувати безпосередньо за функцією переходу та мати таке саме ім’я; він пов’язаний із функцією переходу та виконується в ланцюжку після перевірки підтвердження виконання пов’язаного переходу з нульовими знаннями; функція finalize завершує функцію переходу в ланцюжку. Після успішного завершення функції завершується логіка програми. У разі збою функції фіналізації логіка програми повертається назад.&lt;/p&gt;
  &lt;p id=&quot;xUyf&quot;&gt;Отже, вузли в мережі Aleo виконують код функції finalize. Лише код у блоках фіналізації, який виконується вузлами в мережі Aleo, оновлює відображення програм. Лише програма може писати у власне відображення, але всі вузли в мережі Aleo можуть читати публічний стан.&lt;/p&gt;
  &lt;p id=&quot;lBid&quot;&gt;Прикладом мутації стану в ланцюжку є перехід transfer_public_to_private у прикладі finalize, який оновлює відображення публічного облікового запису (і, отже, баланс користувача) під час виклику.&lt;/p&gt;
  &lt;pre id=&quot;OYUc&quot;&gt;program transfer.aleo {    // The function &amp;#x60;transfer_public_to_private&amp;#x60; turns a specified token amount    // from &amp;#x60;account&amp;#x60; into a token record for the specified receiver.    //    // This function preserves privacy for the receiver&amp;#x27;s record, however    // it publicly reveals the caller and the specified token amount.    transition transfer_public_to_private(        public receiver: address,        public amount: u64    ) -&amp;gt; token {        // Produce a token record for the token receiver.        let new: token = token {            owner: receiver,            amount,        };        // Return the receiver&amp;#x27;s record, then decrement the token amount of the caller publicly.        return new then finalize(self.caller, amount);    }    finalize transfer_public_to_private(        public sender: address,        public amount: u64    ) {        // Decrements &amp;#x60;account[sender]&amp;#x60; by &amp;#x60;amount&amp;#x60;.        // If &amp;#x60;account[sender]&amp;#x60; does not exist, it will be created.        // If &amp;#x60;account[sender] - amount&amp;#x60; underflows, &amp;#x60;transfer_public_to_private&amp;#x60; is reverted.        let current_amount: u64 = Mapping::get_or_use(account, sender, 0u64);        Mapping::set(account, sender, current_amount - amount);    }}&lt;/pre&gt;
  &lt;p id=&quot;jZdn&quot;&gt;Якщо немає потреби створювати або змінювати загальнодоступний стан у ланцюжку, завершальні функції не потрібні.&lt;/p&gt;
  &lt;h3 id=&quot;mapping&quot;&gt;Mapping&lt;a href=&quot;https://developer.aleo.org/leo/language#mapping&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;AqDY&quot;&gt;Відображення оголошується як &lt;code&gt;mapping {name}: {key-type} =&amp;gt; {value-type}&lt;/code&gt;. Відображення містять пари ключ-значення. Відображення зберігаються в ланцюжку.&lt;/p&gt;
  &lt;pre id=&quot;CARq&quot;&gt;// On-chain storage of an &amp;#x60;account&amp;#x60; mapping,// with &amp;#x60;address&amp;#x60; as the type of keys,// and &amp;#x60;u64&amp;#x60; as the type of values.mapping account: address =&amp;gt; u64;&lt;/pre&gt;
  &lt;h4 id=&quot;mapping-operations&quot;&gt;Mapping Operations&lt;a href=&quot;https://developer.aleo.org/leo/language#mapping-operations&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;HpAs&quot;&gt;Структура відображення дозволяє програмісту застосовувати оновлення до структури даних відображення програми, викликаючи одну з наведених нижче функцій.&lt;/p&gt;
  &lt;p id=&quot;dLor&quot;&gt;INFO&lt;/p&gt;
  &lt;p id=&quot;DGje&quot;&gt;Операції зіставлення дозволені лише у функції фіналізації.&lt;/p&gt;
  &lt;pre id=&quot;GZd4&quot;&gt;program test.aleo {    mapping counter: address =&amp;gt; u64;    transition dubble() {        return then finalize(self.caller);    }    finalize dubble(addr: address) {        let current_value: u64 = Mapping::get_or_use(counter, addr, 0u64);        Mapping::set(counter, addr, current_value + 1u64);        current_value = Mapping::get(counter, addr);        Mapping::set(counter, addr, current_value + 1u64);    }}&lt;/pre&gt;
  &lt;h4 id=&quot;get&quot;&gt;get&lt;a href=&quot;https://developer.aleo.org/leo/language#get&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;dHP5&quot;&gt;Команда &lt;code&gt;current_value = Mapping::get(counter, addr);&lt;/code&gt; Отримує значення, збережене в &lt;code&gt;addr&lt;/code&gt; і &lt;code&gt;counter&lt;/code&gt; і зберігає результат у &lt;code&gt;current_value&lt;/code&gt; Якщо значення в &lt;code&gt;addr&lt;/code&gt; не існує, програма не зможе виконатися.&lt;/p&gt;
  &lt;h4 id=&quot;get_or_use&quot;&gt;get_or_use&lt;a href=&quot;https://developer.aleo.org/leo/language#get_or_use&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;TQWj&quot;&gt;Команда get, яка використовує надане значення за замовчуванням у разі помилки, напр &lt;code&gt;let current_value: u64 = Mapping::get_or_use(counter, addr, 0u64);&lt;/code&gt;&lt;br /&gt;Отримує значення, збережене в &lt;code&gt;addr&lt;/code&gt; в &lt;code&gt;counter&lt;/code&gt; і зберігає результат у&lt;code&gt;current_value&lt;/code&gt;. Якщо ключ відсутній, &lt;code&gt;0u64&lt;/code&gt; зберігається в &lt;code&gt;counter&lt;/code&gt; зберігається в &lt;code&gt;current_value&lt;/code&gt;.&lt;/p&gt;
  &lt;h4 id=&quot;set&quot;&gt;set&lt;a href=&quot;https://developer.aleo.org/leo/language#set&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;HsS6&quot;&gt;Встановлена команда, напр. &lt;code&gt;Mapping::set(counter, addr, current_value + 1u64);&lt;/code&gt; Встановлює &lt;code&gt;addr&lt;/code&gt; як &lt;code&gt;current_value + 1u64&lt;/code&gt; в&lt;code&gt;counter&lt;/code&gt;.&lt;/p&gt;
  &lt;h4 id=&quot;contains&quot;&gt;contains&lt;a href=&quot;https://developer.aleo.org/leo/language#contains&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;GEJx&quot;&gt;A містить команду, напр. &lt;code&gt;let contains: bool = Mapping::contains(counter, addr);&lt;/code&gt; Повертає&lt;code&gt;true&lt;/code&gt; якщо &lt;code&gt;addr&lt;/code&gt; присутній у лічильнику &lt;code&gt;counter&lt;/code&gt;, &lt;code&gt;false&lt;/code&gt; в іншому випадку.&lt;/p&gt;
  &lt;h4 id=&quot;remove&quot;&gt;remove&lt;a href=&quot;https://developer.aleo.org/leo/language#remove&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;3GNK&quot;&gt;Команда видалення, напр. &lt;code&gt;Mapping::remove(counter, addr);&lt;/code&gt; Команда видалення, напр. &lt;code&gt;addr&lt;/code&gt; в &lt;code&gt;counter&lt;/code&gt;.&lt;/p&gt;
  &lt;h2 id=&quot;for-loops&quot;&gt;For Loops&lt;a href=&quot;https://developer.aleo.org/leo/language#for-loops&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;QY9D&quot;&gt;Цикли For оголошуються як  &lt;code&gt;for {variable: type} in {lower bound}..{upper bound}&lt;/code&gt;. Беззнакові цілі типи &lt;code&gt;u8&lt;/code&gt;, &lt;code&gt;u16&lt;/code&gt;, and &lt;code&gt;u32&lt;/code&gt; рекомендуються для типів змінних циклу. Нижня межа має бути меншою за верхню. Підтримуються вкладені цикли.&lt;/p&gt;
  &lt;h3 id=&quot;example&quot;&gt;Example&lt;a href=&quot;https://developer.aleo.org/leo/language#example&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;pre id=&quot;XLd3&quot;&gt;  let count: u32 = 0u32;  for i: u32 in 0u32..5u32 {    count += 1u32;  }  return count; // returns 5u32&lt;/pre&gt;
  &lt;h2 id=&quot;operators&quot;&gt;Operators&lt;a href=&quot;https://developer.aleo.org/leo/language#operators&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;Ri4W&quot;&gt;Оператори в Leo обчислюють значення на основі одного або кількох виразів. Лео намагатиметься якнайшвидше виявити помилки арифметичних операцій. Якщо під час компіляції можна визначити цілочисельне переповнення або ділення на нуль, Лео швидко повідомить програмісту. В іншому випадку помилка буде виявлена під час перевірки, коли обробляються вхідні дані функції переходу.&lt;/p&gt;
  &lt;p id=&quot;Xs7f&quot;&gt;Наприклад, додавання додає &lt;code&gt;first&lt;/code&gt; з &lt;code&gt;second&lt;/code&gt;, зберігаючи результат у &lt;code&gt;destination&lt;/code&gt;.Для цілочисельних типів додається обмеження для перевірки переповнення. Інформацію про випадки, коли для цілочисельних типів потрібна семантика обгортання, див. оператор&lt;code&gt;Add Wrapped&lt;/code&gt;.&lt;/p&gt;
  &lt;pre id=&quot;rpuZ&quot;&gt;let a: u8 = 1u8 + 1u8;// a is equal to 2a += 1u8;// a is now equal to 3a = a.add(1u8);// a is now equal to 4&lt;/pre&gt;
  &lt;h3 id=&quot;arithmetic-operators&quot;&gt;Arithmetic Operators&lt;a href=&quot;https://developer.aleo.org/leo/language#arithmetic-operators&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;J5Yb&quot;&gt;Операція&lt;/p&gt;
  &lt;p id=&quot;das8&quot;&gt;Операнди&lt;/p&gt;
  &lt;p id=&quot;plyj&quot;&gt;Підтримувані типи&lt;/p&gt;
  &lt;p id=&quot;JUJj&quot;&gt;додаток&lt;/p&gt;
  &lt;p id=&quot;Nros&quot;&gt;&lt;code&gt;+&lt;/code&gt; &lt;code&gt;+=&lt;/code&gt; &lt;code&gt;.add()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;0W3d&quot;&gt;&lt;code&gt;field&lt;/code&gt; &lt;code&gt;group&lt;/code&gt; &lt;code&gt;scalar&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;U7C2&quot;&gt;додавання обгортки&lt;/p&gt;
  &lt;p id=&quot;OMpC&quot;&gt;&lt;code&gt;.add_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;fJyN&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JEQD&quot;&gt;заперечення (унарний)&lt;/p&gt;
  &lt;p id=&quot;Z1qj&quot;&gt;&lt;code&gt;-&lt;/code&gt; &lt;code&gt;.neg()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;O7hd&quot;&gt;&lt;code&gt;field&lt;/code&gt; &lt;code&gt;group&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;87vi&quot;&gt;віднімання (двійковий)&lt;/p&gt;
  &lt;p id=&quot;JTrs&quot;&gt;&lt;code&gt;-&lt;/code&gt; &lt;code&gt;-=&lt;/code&gt; &lt;code&gt;.sub()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;PEh9&quot;&gt;&lt;code&gt;field&lt;/code&gt; &lt;code&gt;group&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5HcX&quot;&gt;обтікання віднімання (двійковий)&lt;/p&gt;
  &lt;p id=&quot;Oer7&quot;&gt;&lt;code&gt;.sub_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZARt&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;hHds&quot;&gt;множення&lt;/p&gt;
  &lt;p id=&quot;K9bn&quot;&gt;&lt;code&gt;*&lt;/code&gt; &lt;code&gt;*=&lt;/code&gt; &lt;code&gt;.mul()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;3naQ&quot;&gt;&lt;code&gt;field&lt;/code&gt; &lt;code&gt;group&lt;/code&gt; &lt;code&gt;scalar&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;rdPf&quot;&gt;обгортання множення&lt;/p&gt;
  &lt;p id=&quot;luna&quot;&gt;&lt;code&gt;.mul_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8H5p&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;AMzV&quot;&gt;поділ&lt;/p&gt;
  &lt;p id=&quot;WMsN&quot;&gt;&lt;code&gt;/&lt;/code&gt; &lt;code&gt;/=&lt;/code&gt; &lt;code&gt;.div()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6cpR&quot;&gt;&lt;code&gt;field&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JUYd&quot;&gt;поділ обгортки&lt;/p&gt;
  &lt;p id=&quot;YbHn&quot;&gt;&lt;code&gt;.div_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6yMj&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;bBgq&quot;&gt;залишок&lt;/p&gt;
  &lt;p id=&quot;M1Pm&quot;&gt;&lt;code&gt;%&lt;/code&gt; &lt;code&gt;%=&lt;/code&gt; &lt;code&gt;.rem()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;QwH6&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;3bwc&quot;&gt;обгортання залишку&lt;/p&gt;
  &lt;p id=&quot;6jWr&quot;&gt;&lt;code&gt;.rem_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;9olW&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;lsMa&quot;&gt;піднесення до степеня&lt;/p&gt;
  &lt;p id=&quot;yt9r&quot;&gt;&lt;code&gt;**&lt;/code&gt; &lt;code&gt;**=&lt;/code&gt; &lt;code&gt;.pow()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;BW38&quot;&gt;&lt;code&gt;field&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;efTb&quot;&gt;згортання піднесення до степеня&lt;/p&gt;
  &lt;p id=&quot;5Oma&quot;&gt;&lt;code&gt;.pow_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;BVfF&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xa03&quot;&gt;зрушення вліво&lt;/p&gt;
  &lt;p id=&quot;O7Ov&quot;&gt;&lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;lt;&amp;lt;=&lt;/code&gt; &lt;code&gt;.shl()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;9zME&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;31ol&quot;&gt;обгортання лівого зсуву&lt;/p&gt;
  &lt;p id=&quot;V38G&quot;&gt;&lt;code&gt;.shl_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NnBf&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;eYdi&quot;&gt;правий зсув&lt;/p&gt;
  &lt;p id=&quot;P3JI&quot;&gt;&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt; &lt;code&gt;&amp;gt;&amp;gt;=&lt;/code&gt; &lt;code&gt;.shr()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;3ev6&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;pKug&quot;&gt;обтікання правою зміною&lt;/p&gt;
  &lt;p id=&quot;CrwV&quot;&gt;&lt;code&gt;.shr_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;s2il&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;tC5k&quot;&gt;абсолютне значення&lt;/p&gt;
  &lt;p id=&quot;J9lV&quot;&gt;&lt;code&gt;.abs()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;I1MI&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NGNA&quot;&gt;обертання абсолютного значення&lt;/p&gt;
  &lt;p id=&quot;lDoH&quot;&gt;&lt;code&gt;.abs_wrapped()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;odpt&quot;&gt;&lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;9LU8&quot;&gt;подвоєння&lt;/p&gt;
  &lt;p id=&quot;WLRm&quot;&gt;&lt;code&gt;.double()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;LVSc&quot;&gt;&lt;code&gt;field&lt;/code&gt; &lt;code&gt;group&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;WIXQ&quot;&gt;квадратура&lt;/p&gt;
  &lt;p id=&quot;pgDi&quot;&gt;&lt;code&gt;.square()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;hxDm&quot;&gt;&lt;code&gt;field&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;E6Xu&quot;&gt;квадратний корінь&lt;/p&gt;
  &lt;p id=&quot;nvzu&quot;&gt;&lt;code&gt;.square_root()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qIgf&quot;&gt;&lt;code&gt;field&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;QAZH&quot;&gt;зворотний&lt;/p&gt;
  &lt;p id=&quot;21eR&quot;&gt;&lt;code&gt;.square_root()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NZzZ&quot;&gt;&lt;code&gt;field&lt;/code&gt;&lt;/p&gt;
  &lt;h3 id=&quot;logical-operators&quot;&gt;Logical Operators&lt;a href=&quot;https://developer.aleo.org/leo/language#logical-operators&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;glrx&quot;&gt;Операція&lt;/p&gt;
  &lt;p id=&quot;XmcP&quot;&gt;Операнди&lt;/p&gt;
  &lt;p id=&quot;A8wn&quot;&gt;Підтримувані типи&lt;/p&gt;
  &lt;p id=&quot;mtFv&quot;&gt;NOT&lt;/p&gt;
  &lt;p id=&quot;NPlr&quot;&gt;&lt;code&gt;!&lt;/code&gt; &lt;code&gt;.not()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;9Xyf&quot;&gt;&lt;code&gt;bool&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Ria0&quot;&gt;AND&lt;/p&gt;
  &lt;p id=&quot;i8rt&quot;&gt;&lt;code&gt;&amp;amp;&lt;/code&gt; &lt;code&gt;&amp;amp;=&lt;/code&gt; &lt;code&gt;.and()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;WqaK&quot;&gt;&lt;code&gt;bool&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ehV1&quot;&gt;OR&lt;/p&gt;
  &lt;p id=&quot;OEQt&quot;&gt;&lt;code&gt;|&lt;/code&gt; &lt;code&gt;|=&lt;/code&gt; &lt;code&gt;.or()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5hMO&quot;&gt;&lt;code&gt;bool&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7Lt8&quot;&gt;XOR&lt;/p&gt;
  &lt;p id=&quot;GXxz&quot;&gt;&lt;code&gt;^&lt;/code&gt; &lt;code&gt;^=&lt;/code&gt; &lt;code&gt;.xor()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;XbhG&quot;&gt;&lt;code&gt;bool&lt;/code&gt; &lt;code&gt;i8&lt;/code&gt; &lt;code&gt;i16&lt;/code&gt; &lt;code&gt;i32&lt;/code&gt; &lt;code&gt;i64&lt;/code&gt; &lt;code&gt;i128&lt;/code&gt; &lt;code&gt;u8&lt;/code&gt; &lt;code&gt;u16&lt;/code&gt; &lt;code&gt;u32&lt;/code&gt; &lt;code&gt;u64&lt;/code&gt; &lt;code&gt;u128&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;eSfo&quot;&gt;NAND&lt;/p&gt;
  &lt;p id=&quot;fstS&quot;&gt;&lt;code&gt;.nand()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;B8f9&quot;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;bKb3&quot;&gt;NOR&lt;/p&gt;
  &lt;p id=&quot;7jp6&quot;&gt;&lt;code&gt;.nor()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;AuFA&quot;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Mb8Z&quot;&gt;умовне AND&lt;/p&gt;
  &lt;p id=&quot;Vl43&quot;&gt;&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;LHdK&quot;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5xn3&quot;&gt;умовне OR&lt;/p&gt;
  &lt;p id=&quot;EhC1&quot;&gt;&lt;code&gt;||&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;elG9&quot;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/p&gt;
  &lt;h3 id=&quot;relational-operators&quot;&gt;Relational Operators&lt;a href=&quot;https://developer.aleo.org/leo/language#relational-operators&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;Jg6G&quot;&gt;Оператори відношення завжди перетворюватимуться на логічне &lt;code&gt;bool&lt;/code&gt; значення.&lt;/p&gt;
  &lt;p id=&quot;ifxr&quot;&gt;Операція&lt;/p&gt;
  &lt;p id=&quot;98KM&quot;&gt;Операнди&lt;/p&gt;
  &lt;p id=&quot;DXBJ&quot;&gt;Підтримувані типи&lt;/p&gt;
  &lt;p id=&quot;PkbD&quot;&gt;рівні&lt;/p&gt;
  &lt;p id=&quot;rfXD&quot;&gt;&lt;code&gt;==&lt;/code&gt; &lt;code&gt;.eq()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;REOW&quot;&gt;&lt;code&gt;bool&lt;/code&gt;, &lt;code&gt;group&lt;/code&gt;, &lt;code&gt;field&lt;/code&gt;, integers, addresses, structs, records&lt;/p&gt;
  &lt;p id=&quot;Eo78&quot;&gt;не-рівно&lt;/p&gt;
  &lt;p id=&quot;EEsl&quot;&gt;&lt;code&gt;!=&lt;/code&gt; &lt;code&gt;.neq()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NffF&quot;&gt;&lt;code&gt;bool&lt;/code&gt;, &lt;code&gt;group&lt;/code&gt;, &lt;code&gt;field&lt;/code&gt;, integers, addresses, structs, records&lt;/p&gt;
  &lt;p id=&quot;Jri0&quot;&gt;менше ніж&lt;/p&gt;
  &lt;p id=&quot;X45Y&quot;&gt;&lt;code&gt;&amp;lt;&lt;/code&gt; &lt;code&gt;.lt()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;rvfe&quot;&gt;&lt;code&gt;field&lt;/code&gt;, &lt;code&gt;scalar&lt;/code&gt;, integers&lt;/p&gt;
  &lt;p id=&quot;hvv0&quot;&gt;менше або дорівнює&lt;/p&gt;
  &lt;p id=&quot;47gH&quot;&gt;&lt;code&gt;&amp;lt;=&lt;/code&gt; &lt;code&gt;.lte()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Ef8U&quot;&gt;&lt;code&gt;field&lt;/code&gt;, &lt;code&gt;scalar&lt;/code&gt;, integers&lt;/p&gt;
  &lt;p id=&quot;pB2i&quot;&gt;більш чим&lt;/p&gt;
  &lt;p id=&quot;j8A2&quot;&gt;&lt;code&gt;&amp;gt;&lt;/code&gt; &lt;code&gt;.gt()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;yKxa&quot;&gt;&lt;code&gt;field&lt;/code&gt;, &lt;code&gt;scalar&lt;/code&gt;, integers&lt;/p&gt;
  &lt;p id=&quot;5eUf&quot;&gt;більше або дорівнює&lt;/p&gt;
  &lt;p id=&quot;w0uv&quot;&gt;&lt;code&gt;&amp;gt;=&lt;/code&gt; &lt;code&gt;.gte()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;TXOb&quot;&gt;&lt;code&gt;field&lt;/code&gt;, &lt;code&gt;scalar&lt;/code&gt;, integers&lt;/p&gt;
  &lt;h3 id=&quot;operator-precedence&quot;&gt;Operator Precedence&lt;a href=&quot;https://developer.aleo.org/leo/language#operator-precedence&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;8mZ2&quot;&gt;Оператори визначать пріоритетність оцінювання відповідно до:&lt;/p&gt;
  &lt;p id=&quot;0Hi4&quot;&gt;Оператор&lt;/p&gt;
  &lt;p id=&quot;JaU3&quot;&gt;Асоціативність&lt;/p&gt;
  &lt;p id=&quot;sGUV&quot;&gt;&lt;code&gt;!&lt;/code&gt; &lt;code&gt;-&lt;/code&gt;(унарний)&lt;/p&gt;
  &lt;p id=&quot;cV22&quot;&gt;&lt;code&gt;**&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4jC9&quot;&gt;справа наліво&lt;/p&gt;
  &lt;p id=&quot;Qfz5&quot;&gt;&lt;code&gt;*&lt;/code&gt; &lt;code&gt;/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZPA3&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;e8va&quot;&gt;&lt;code&gt;+&lt;/code&gt; &lt;code&gt;-&lt;/code&gt;(двійковий)&lt;/p&gt;
  &lt;p id=&quot;ccrJ&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;LEV4&quot;&gt;&lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jBBh&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;x0wF&quot;&gt;&lt;code&gt;&amp;amp;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;oul8&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;7Wim&quot;&gt;&lt;code&gt;|&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;UM7p&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;bqPE&quot;&gt;&lt;code&gt;^&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jlIy&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;Jl6k&quot;&gt;&lt;code&gt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;gt;&lt;/code&gt; &lt;code&gt;&amp;lt;=&lt;/code&gt; &lt;code&gt;&amp;gt;=&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;u0rW&quot;&gt;&lt;code&gt;==&lt;/code&gt; &lt;code&gt;!=&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2CoU&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;8SZj&quot;&gt;&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;PswR&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;1cSH&quot;&gt;&lt;code&gt;||&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;C52q&quot;&gt;зліва направо&lt;/p&gt;
  &lt;p id=&quot;abrz&quot;&gt;&lt;code&gt;=&lt;/code&gt; &lt;code&gt;+=&lt;/code&gt; &lt;code&gt;-=&lt;/code&gt; &lt;code&gt;*=&lt;/code&gt; &lt;code&gt;/=&lt;/code&gt; &lt;code&gt;%=&lt;/code&gt; &lt;code&gt;**=&lt;/code&gt; &lt;code&gt;&amp;lt;&amp;lt;=&lt;/code&gt; &lt;code&gt;&amp;gt;&amp;gt;=&lt;/code&gt; &lt;code&gt;&amp;amp;=&lt;/code&gt; &lt;code&gt;|=&lt;/code&gt; &lt;code&gt;^=&lt;/code&gt;&lt;/p&gt;
  &lt;h3 id=&quot;parentheses&quot;&gt;Parentheses&lt;a href=&quot;https://developer.aleo.org/leo/language#parentheses&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;7PKq&quot;&gt;Щоб визначити пріоритет іншого обчислення, використовуйте дужки &lt;code&gt;()&lt;/code&gt; навколо виразу.&lt;/p&gt;
  &lt;pre id=&quot;TcuV&quot;&gt;let result = (a + 1u8) * 2u8;&lt;/pre&gt;
  &lt;p id=&quot;i965&quot;&gt;&lt;code&gt;(a + 1u8)&lt;/code&gt; буде обчислено перед множенням на два &lt;code&gt;* 2u8&lt;/code&gt;.&lt;/p&gt;
  &lt;h2 id=&quot;commands&quot;&gt;Commands&lt;a href=&quot;https://developer.aleo.org/leo/language#commands&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;l6Mf&quot;&gt;Leo підтримує кілька команд, які можна використовувати для отримання інформації про блокчейн Aleo та поточну транзакцію.&lt;/p&gt;
  &lt;h3 id=&quot;selfcaller&quot;&gt;self.caller&lt;a href=&quot;https://developer.aleo.org/leo/language#selfcaller&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;0o2I&quot;&gt;NOTE&lt;/p&gt;
  &lt;p id=&quot;1SNQ&quot;&gt;&lt;code&gt;self.caller&lt;/code&gt; наразі реалізовано як&lt;code&gt;self.signer&lt;/code&gt; в інструкціях Aleo. T. Це буде виправлено в наступному випуску.&lt;/p&gt;
  &lt;p id=&quot;nbSs&quot;&gt;Повертає адресу облікового запису, який викликає функцію програми.&lt;/p&gt;
  &lt;pre id=&quot;PthW&quot;&gt;program test.aleo {    transition matches(addr: address) -&amp;gt; bool {        return self.caller == addr;    }}&lt;/pre&gt;
  &lt;h3 id=&quot;blockheight&quot;&gt;block.height&lt;a href=&quot;https://developer.aleo.org/leo/language#blockheight&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;la0V&quot;&gt;Повертає висоту поточного блоку.&lt;/p&gt;
  &lt;p id=&quot;eiWR&quot;&gt;INFO&lt;/p&gt;
  &lt;p id=&quot;Ssvp&quot;&gt;&lt;code&gt;block.height&lt;/code&gt; дозволений лише у функції &lt;a href=&quot;https://developer.aleo.org/leo/language#finalize-function&quot; target=&quot;_blank&quot;&gt;finalize function&lt;/a&gt;.&lt;/p&gt;
  &lt;pre id=&quot;GKDU&quot;&gt;program test.aleo {    transition matches(height: u32) {        return then finalize(height);    } finalize matches(height: u32) {        assert_eq(height, block.height);    }}&lt;/pre&gt;
  &lt;h2 id=&quot;core-functions&quot;&gt;Core Functions&lt;a href=&quot;https://developer.aleo.org/leo/language#core-functions&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;p id=&quot;KFvq&quot;&gt;Основні функції — це функції, вбудовані в мову Leo. Вони використовуються для виконання криптографічних операцій, таких як хешування, зобов’язання та генерація випадкових чисел.&lt;/p&gt;
  &lt;h3 id=&quot;assert-and-asserteq&quot;&gt;Assert and AssertEq&lt;a href=&quot;https://developer.aleo.org/leo/language#assert-and-asserteq&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;xbLn&quot;&gt;&lt;code&gt;assert&lt;/code&gt; і &lt;code&gt;assert_eq&lt;/code&gt; використовуються для перевірки істинності умови. Якщо умова хибна, програма не працюватиме.&lt;/p&gt;
  &lt;pre id=&quot;hOJV&quot;&gt;program test.aleo {    transition matches() {        assert(true);        assert_eq(1u8, 1u8);    }}&lt;/pre&gt;
  &lt;h3 id=&quot;hash&quot;&gt;Hash&lt;a href=&quot;https://developer.aleo.org/leo/language#hash&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;Vgp5&quot;&gt;Leo підтримує наступні алгоритми хешування:&lt;code&gt;BHP256&lt;/code&gt;, &lt;code&gt;BHP512&lt;/code&gt;, &lt;code&gt;BHP768&lt;/code&gt;, &lt;code&gt;BHP1024&lt;/code&gt;, &lt;code&gt;Pedersen64&lt;/code&gt;, &lt;code&gt;Pedersen128&lt;/code&gt;, &lt;code&gt;Poseidon2&lt;/code&gt;, &lt;code&gt;Poseidon4&lt;/code&gt;, &lt;code&gt;Poseidon8&lt;/code&gt;, &lt;code&gt;Keccak256&lt;/code&gt;, &lt;code&gt;Keccak384&lt;/code&gt;, &lt;code&gt;Keccak512&lt;/code&gt;, &lt;code&gt;SHA3_256&lt;/code&gt;, &lt;code&gt;SHA3_384&lt;/code&gt;, &lt;code&gt;SHA3_512&lt;/code&gt;.&lt;br /&gt;Тип виведення функції зобов’язання вказується в назві функції. напр.&lt;code&gt;hash_to_group&lt;/code&gt; поверне тип &lt;code&gt;group&lt;/code&gt; . Хеш-функції приймають будь-який тип як аргумент.&lt;/p&gt;
  &lt;pre id=&quot;JnFT&quot;&gt;let a: scalar = BHP256::hash_to_scalar(1u8);let b: address = Pedersen64::hash_to_address(1u128);let c: group = Poseidon2::hash_to_group(1field);&lt;/pre&gt;
  &lt;p id=&quot;7s6F&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/operators#table-of-cryptographic-operators&quot; target=&quot;_blank&quot;&gt;See all hash functions&lt;/a&gt;&lt;/p&gt;
  &lt;h3 id=&quot;commit&quot;&gt;Commit&lt;a href=&quot;https://developer.aleo.org/leo/language#commit&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;QzVO&quot;&gt;Leo підтримує наступні алгоритми зобов&amp;#x27;язань:&lt;code&gt;BHP256&lt;/code&gt;, &lt;code&gt;BHP512&lt;/code&gt;, &lt;code&gt;BHP768&lt;/code&gt;, &lt;code&gt;BHP1024&lt;/code&gt;, &lt;code&gt;Pedersen64&lt;/code&gt;, &lt;code&gt;Pedersen128&lt;/code&gt;&lt;br /&gt;Тип виведення функції зобов’язання вказується в назві функції. напр. &lt;code&gt;commit_to_group&lt;/code&gt; поверне тип&lt;code&gt;group&lt;/code&gt; .&lt;br /&gt;Перший аргумент може мати будь-який тип. Другий аргумент має бути типом поля та використовується як фактор засліплення.&lt;/p&gt;
  &lt;pre id=&quot;Ieb8&quot;&gt;let a: group = BHP256::commit_to_group(1u8, 2field);let b: address = Pedersen64::commit_to_address(1u128, 2field);&lt;/pre&gt;
  &lt;p id=&quot;ov3H&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/operators#table-of-cryptographic-operators&quot; target=&quot;_blank&quot;&gt;See all commitment functions&lt;/a&gt;&lt;/p&gt;
  &lt;h3 id=&quot;random&quot;&gt;Random&lt;a href=&quot;https://developer.aleo.org/leo/language#random&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;FZXJ&quot;&gt;Leo підтримує алгоритм генерації випадкових чисел&lt;code&gt;ChaCha&lt;/code&gt;.&lt;br /&gt;Тип виведення випадкової функції вказується в назві функції. напр. &lt;code&gt;rand_group&lt;/code&gt; поверне тип &lt;code&gt;group&lt;/code&gt; .&lt;/p&gt;
  &lt;p id=&quot;t4q4&quot;&gt;INFO&lt;/p&gt;
  &lt;p id=&quot;c8UW&quot;&gt;Випадкові функції дозволені лише у функції фіналізації.&lt;/p&gt;
  &lt;pre id=&quot;B3AG&quot;&gt;let a: group = ChaCha::rand_group();let b: u32 = ChaCha::rand_u32();&lt;/pre&gt;
  &lt;p id=&quot;yo04&quot;&gt;&lt;a href=&quot;https://developer.aleo.org/leo/operators#table-of-cryptographic-operators&quot; target=&quot;_blank&quot;&gt;See all random functions&lt;/a&gt;&lt;/p&gt;
  &lt;h2 id=&quot;deprecated-syntax&quot;&gt;Deprecated Syntax&lt;a href=&quot;https://developer.aleo.org/leo/language#deprecated-syntax&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h2&gt;
  &lt;h4 id=&quot;increment-and-decrement&quot;&gt;Increment and Decrement&lt;a href=&quot;https://developer.aleo.org/leo/language#increment-and-decrement&quot; target=&quot;_blank&quot;&gt;​&lt;/a&gt;&lt;/h4&gt;
  &lt;p id=&quot;NCxM&quot;&gt;&lt;code&gt;increment()&lt;/code&gt; і&lt;code&gt;decrement()&lt;/code&gt; застаріли з Leo v1.7.0. Натомість використовуйте функцію &lt;a href=&quot;https://developer.aleo.org/leo/language#set&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;Mapping::set()&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
  &lt;pre id=&quot;3EOP&quot;&gt;program transfer.aleo {    // On-chain storage of an &amp;#x60;account&amp;#x60; map,    // with &amp;#x60;address&amp;#x60; as the key,    // and &amp;#x60;u64&amp;#x60; as the value.    mapping account: address =&amp;gt; u64;    transition transfer_public(...) {...}    finalize transfer_public(        public sender: address,        public receiver: address,        public amount: u64    ) {        // Decrements &amp;#x60;account[sender]&amp;#x60; by &amp;#x60;amount&amp;#x60;.        // If &amp;#x60;account[sender]&amp;#x60; does not exist, it will be created.        // If &amp;#x60;account[sender] - amount&amp;#x60; underflows, &amp;#x60;transfer_public&amp;#x60; is reverted.        let sender_amount: u64 = Mapping::get_or_use(account, sender, 0u64);        Mapping::set(account, sender, sender_amount - amount);        // Increments &amp;#x60;account[receiver]&amp;#x60; by &amp;#x60;amount&amp;#x60;.        // If &amp;#x60;account[receiver]&amp;#x60; does not exist, it will be created.        // If &amp;#x60;account[receiver] + amount&amp;#x60; overflows, &amp;#x60;transfer_public&amp;#x60; is reverted.        let receiver_amount: u64 = Mapping::get_or_use(account, receiver, 0u64);        Mapping::set(account, receiver, receiver_amount + amount);    }}&lt;/pre&gt;

</content></entry><entry><id>rogozkin371:ACq573E2ONr</id><link rel="alternate" type="text/html" href="https://teletype.in/@rogozkin371/ACq573E2ONr?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=rogozkin371"></link><title>Aleo введення! </title><published>2024-03-08T13:19:02.296Z</published><updated>2024-03-08T13:19:02.296Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/19/dd/19dd805b-59b1-4437-b6cb-bbd099e6938f.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/d4/6b/d46b78b5-1809-4482-a434-e5f631e7586c.png&quot;&gt;Aleo представляє собою новаторську платформу, яка відкриває нові горизонти у світі блокчейн-технологій та конфіденційності. Завдяки використанню децентралізованих систем і криптографії з нульовим розголошенням, Aleo ставить приватність користувачів на перше місце, забезпечуючи захист особистих даних в інтернеті.</summary><content type="html">
  &lt;p id=&quot;PEbM&quot;&gt;Aleo представляє собою новаторську платформу, яка відкриває нові горизонти у світі блокчейн-технологій та конфіденційності. Завдяки використанню децентралізованих систем і криптографії з нульовим розголошенням, Aleo ставить приватність користувачів на перше місце, забезпечуючи захист особистих даних в інтернеті.&lt;/p&gt;
  &lt;figure id=&quot;VXtJ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d4/6b/d46b78b5-1809-4482-a434-e5f631e7586c.png&quot; width=&quot;628&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;flel&quot;&gt;&lt;strong&gt;Основні характеристики Aleo:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;EzMb&quot;&gt;
    &lt;li id=&quot;2QdF&quot;&gt;&lt;strong&gt;Приватність за замовчуванням:&lt;/strong&gt; Aleo розроблений таким чином, що всі транзакції та взаємодії є приватними, не розкриваючи жодної інформації про користувачів без їх згоди.&lt;/li&gt;
    &lt;li id=&quot;vMB0&quot;&gt;&lt;strong&gt;Децентралізація:&lt;/strong&gt; Використовуючи блокчейн, Aleo забезпечує високий рівень безпеки та надійності, уникаючи централізованих точок відмови.&lt;/li&gt;
    &lt;li id=&quot;KspQ&quot;&gt;&lt;strong&gt;Криптографія з нульовим розголошенням:&lt;/strong&gt; Ця технологія дозволяє Aleo підтверджувати транзакції без необхідності розкривати саму інформацію, що робить платформу ідеальною для забезпечення конфіденційності.&lt;/li&gt;
    &lt;li id=&quot;BJnm&quot;&gt;&lt;strong&gt;Необмежені вичислювальні ресурси:&lt;/strong&gt; Aleo надає розробникам можливість створювати додатки з високим рівнем обчислювальної потужності, не жертвуючи приватністю користувачів.&lt;/li&gt;
    &lt;li id=&quot;Vl4c&quot;&gt;&lt;strong&gt;Відкритий код:&lt;/strong&gt; Aleo підтримує спільноту розробників, надаючи доступ до свого коду, що сприяє прозорості та інноваціям.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;2SY4&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3c/17/3c17e510-6502-489a-af93-acf692fa80d1.png&quot; width=&quot;680&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;OiZY&quot;&gt;&lt;strong&gt;Переваги для користувачів:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;zHAU&quot;&gt;
    &lt;li id=&quot;GeVT&quot;&gt;&lt;strong&gt;Контроль над особистими даними:&lt;/strong&gt; Користувачі Aleo можуть насолоджуватися персоналізованими веб-сервісами, не відмовляючись від контролю над своїми даними.&lt;/li&gt;
    &lt;li id=&quot;8fhs&quot;&gt;&lt;strong&gt;Безпека:&lt;/strong&gt; Завдяки криптографії з нульовим розголошенням, користувачі можуть бути впевнені в тому, що їх транзакції та взаємодії залишаються конфіденційними.&lt;/li&gt;
    &lt;li id=&quot;UjHx&quot;&gt;&lt;strong&gt;Доступність:&lt;/strong&gt; Aleo забезпечує легкий доступ до високоякісних приватних додатків, розширюючи можливості користувачів в інтернеті.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;nRIn&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f8/eb/f8eb9f2f-6273-4d1f-a795-a7beb9a006b3.png&quot; width=&quot;680&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;NHkp&quot;&gt;&lt;strong&gt;Майбутнє Aleo:&lt;/strong&gt; Зі своїми унікальними можливостями та підходом до приватності, Aleo має потенціал стати ключовим гравцем у світі блокчейн. Розробники вірять, що Aleo може усунути багато недоліків, які стримують ширше впровадження блокчейн-технологій, пропонуючи рішення, яке є одночасно масштабованим, безпечним та користувацьким.&lt;/p&gt;
  &lt;p id=&quot;0X8c&quot;&gt;Aleo відкриває двері до нової ери інтернету, де приватність та безпека не є компромісом, а основою для розвитку технологій та створення довіри між користувачами та сервісами. З такими інноваціями, Aleo має всі шанси змінити спосіб, яким ми думаємо про цифрову приватність та взаємодію в інтернеті.&lt;/p&gt;

</content></entry></feed>