# LW3 Freshman. [6] Solidity {ru}

By [oxcryptos | web3topia](https://paragraph.com/@oxcryptos) · 2023-04-01

---

Чуть-чуть про солидити. #pilot

![](https://storage.googleapis.com/papyrus_images/0794506c4dc8cacf50128740d90dc8f7e019baf3097762ce59bcb3f7dff301d5.png)

Совместим приятное с полезным, во первых пройдем квест или может , посмотрим как пойдет и сколько чел заколлектят это. А во вторых немножко покурим солидити ибо знание есть что? - сила, и бабки все это хуйня, - знание есть знание. И само по себе обладание им - уже благо.  
_Тут конечно база и если вы кодер - то просто прокликайте тест._

То что и так понятно ( да я в курсе о [проклятии знающего](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D1%8F%D1%82%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D1%8F) и тем не менее, нужно быть деградантом чтобы не собрать Ethereum Virtual Machine в аббревиатуру EVM не так ли?) будет просто скрином с ответом, то что не совсем (мне ;\] )- будет с пояснением. Сначала английским, потом русским (заодно мы поучим специфический инглиш, кторый нам стозасто пригодиться)

**LFG;**

![](https://storage.googleapis.com/papyrus_images/66d35cf2b2bf571c6bf8d7c4fa06e5d258fd3892c4e737121e40bcbc4fcc591a.png)

* * *

![](https://storage.googleapis.com/papyrus_images/a04cb5545af6fe88533236ea1a70abbb9e4419f5d7bb0aaf7ff9cff4c31ce75f.png)

* * *

![](https://storage.googleapis.com/papyrus_images/d64b8dd869966cd276e800ac84a1bdf9d75696ea82daf232706ca7aa90822ffb.png)

![](https://storage.googleapis.com/papyrus_images/fe0b141c35b73e9b03c669aac49bb3ae1500c0b7d5587db9b46583ab5575d33e.png)

* * *

Functions, Loops and if/Else . Отсюда престали быть очевидными ответы и пришлось немного включать голова ;\]

![](https://storage.googleapis.com/papyrus_images/4efba8f8108377974e3a721f72d226623203dd4daa12190627fa7289b162b48d.png)

![](https://storage.googleapis.com/papyrus_images/9cf06be7eb2369aa39fe392466733e9f03f837a2c0608f5db4fa33a733359e7b.png)

**◯** In Solidity, the `public` keyword is a visibility modifier that can be used in function definitions to specify who can call the function.

When a function is declared as `public`, it means that it can be called both internally by other functions within the same contract, as well as externally by other contracts or accounts.

**◯** _Ключевое слово_ `public` _в определении функции в языке Solidity является модификатором видимости и позволяет указать, кто может вызывать эту функцию._

_Когда функция объявляется как_ `public`_, это означает, что ее можно вызвать как внутри того же контракта (из других функций), так и снаружи контракта, из других контрактов или аккаунтов._

* * *

![](https://storage.googleapis.com/papyrus_images/5eaf1cd495fcf85e29ffbdd0af23424df7e583f91db6e56b19a6ccedfe2ba4c4.png)

![](https://storage.googleapis.com/papyrus_images/68da47e831b69e3ea63e20072f56b7eb2e13ce8bd5949ef209d3180b5016ef25.png)

**◯** Here, `getArr` is the name of the function that takes a dynamic array of unsigned integers as a parameter and returns a dynamic array of unsigned integers as output.

The keyword `memory` indicates that the array is located in memory and not in storage. The `view` keyword is used to specify that the function does not modify the state of the contract.

The function returns a dynamic array of unsigned integers, and the `memory` keyword is used to indicate that the returned array is located in memory.

**◯** _Здесь_ `getArr` _\- это имя функции, которая принимает динамический массив беззнаковых целых чисел в качестве параметра и возвращает динамический массив беззнаковых целых чисел в качестве выходных данных._

_Ключевое слово_ `memory` _указывает, что массив находится в памяти, а не в хранилище. Ключевое слово_ `view` _используется для указания того, что функция не изменяет состояние контракта._

_Функция возвращает динамический массив беззнаковых целых чисел, и ключевое слово_ `memory` _используется для указания того, что возвращаемый массив находится в памяти._

* * *

![](https://storage.googleapis.com/papyrus_images/89ae319da779284e1a70366b0714a774dde373fd2a157cf1fc09914a6c72281b.png)

* * *

![](https://storage.googleapis.com/papyrus_images/f9698a89e16ff66756edf82f6aa492453b73d9d41e8c85cb4968355305b31ac3.png)

**◯** In Solidity, `msg.sender` is a pre-defined global variable that represents the address of the account or contract that is calling a function on the current contract.

`msg.sender` can be used to verify the identity of the caller and to implement access control mechanisms in the smart contract. The variable `msg.sender` is of type `address payable` and can be cast to other address types if needed.

**◯** _В Solidity_ `msg.sender` _\- это заранее определенная глобальная переменная, которая представляет адрес учетной записи или контракта, который вызывает функцию на текущем контракте._

`msg.sender` _может использоваться для проверки идентичности вызывающего и для реализации механизмов контроля доступа в смарт-контрактах. Переменная_ `msg.sender` _имеет тип_ `address payable` _и может быть приведена к другим типам адреса при необходимости._

![](https://storage.googleapis.com/papyrus_images/933a047a48d057beaf0b8adeef66ef6a6520a0c242eacca70b865085c20da80b.png)

**◯** In Solidity, `block.coinbase` is a pre-defined global variable that represents the address of the miner who mined the current block.

`block.coinbase` can be used in Solidity to implement certain reward mechanisms for miners or to verify the identity of the miner who mined a particular block.

`block.coinbase` is of type `address payable` and can be used in Solidity to perform various operations on the Ethereum network, such as transferring Ether or invoking smart contract functions.

Note that `block.coinbase` is different from `msg.sender`, which represents the address of the account or contract that is calling a function on the current contract.

**◯** _В Solidity_ `block.coinbase` _\- это заранее определенная глобальная переменная, которая представляет адрес майнера, который сгенерировал текущий блок._

`block.coinbase` _может использоваться в Solidity для реализации определенных механизмов вознаграждения для майнеров или для проверки идентичности майнера, который сгенерировал определенный блок._

`block.coinbase` _имеет тип_ `address payable` _и может использоваться в Solidity для выполнения различных операций на сети Ethereum, таких как передача Ether или вызов функций смарт-контрактов._

_Обратите внимание, что_ `block.coinbase` _отличается от_ `msg.sender`_, который представляет адрес учетной записи или контракта, который вызывает функцию на текущем контракте._

Если тебе зашло нажми Collect Entry Это <1$

---

*Originally published on [oxcryptos | web3topia](https://paragraph.com/@oxcryptos/lw3-freshman-6-solidity-ru)*
