Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternative conflict resolutions after repository conversion for the translation bot #33

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 11 additions & 12 deletions docs/contracts/visibility-and-getters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ In the following example, ``D``, can call ``c.getData()`` to retrieve the value
.. index:: ! getter;function, ! function;getter
.. _getter-functions:

Getter Functions
توابع گیرنده (Getter Functions)
================

The compiler automatically creates getter functions for
Expand Down Expand Up @@ -156,12 +156,11 @@ it evaluates to a state variable. If it is accessed externally
}
}

If you have a ``public`` state variable of array type, then you can only retrieve
single elements of the array via the generated getter function. This mechanism
exists to avoid high gas costs when returning an entire array. You can use
arguments to specify which individual element to return, for example
``myArray(0)``. If you want to return an entire array in one call, then you need
to write a function, for example:
اگر شما آرایه ای از متغیر های وضعیت از نوع ``public`` دارید، شما قادر خواهید بود که فقط یک
عنصر از آرایه را توسط تابع گیرنده تولید شده بر گردانید. این مکانیزم(سازوکار) بوجود آمده تا
از هزینه بالای گاز هنگام برگرداندن کل آرایه جلوگیری کند. شما می توانید با مشخص کردن
ورودی عنصر مورد نیاز خود از آرایه بازگردانید، برای مثال ``myArray(0)`` . اگر شما می خواهید کل
آرایه را در یک فراخوانی بازگردانید نیاز مند نوشتن یک تابع هستید به عنوان مثال:


.. code-block:: solidity
Expand All @@ -186,8 +185,8 @@ to write a function, for example:
}
}

Now you can use ``getArray()`` to retrieve the entire array, instead of
``myArray(i)``, which returns a single element per call.
حالا شما می توانید از ``()getArray`` جهت گرفتن کل آرایه، بجای استفاده از ``myArray(i)`` که یک
عنصر به ازای هر فراخوانی باز می گرداند ، استفاده کنید.

The next example is more complex:

Expand All @@ -208,9 +207,9 @@ The next example is more complex:
mapping (uint => mapping(bool => Data[])) public data;
}

It generates a function of the following form. The mapping and arrays (with the
exception of byte arrays) in the struct are omitted because there is no good way
to select individual struct members or provide a key for the mapping:
این تابعی به شکل زیر ایجاد می کند.
نگاشت و آرایه‌ها (به استثنای آرایه‌های بایت) در struct حذف می‌شوند
، زیرا هیچ راه مناسبی برای انتخاب اعضای struct به صورت جداگانه یا ارائه کلیدی برای نگاشت وجود ندارد:

.. code-block:: solidity

Expand Down
2 changes: 1 addition & 1 deletion docs/layout-of-source-files.rst
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,6 @@ compiler see :ref:`Path Resolution <path-resolution>`.
یک کامنت تک خطی توسط هر پایان دهنده خط unicode (LF ، VF ، FF ، CR ، NEL ، LS یا PS) در رمزگذاری UTF-8 خاتمه می‌یابد. ترمیناتور بعد از کامنت هنوز بخشی از کد منبع است، بنابراین اگر یک نماد ASCII نباشد (اینها NEL ، LS و PS هستند)، منجر به خطای تجزیه می‌شود.


علاوه بر این، نوع دیگری از کامنت به نام کامنت NatSpec وجود دارد که در :ref:`راهنمای استایل<style_guide_natspec>` به تفصیل آورده شده است. آنها با یک اسلش سه گانه (``///``) یا یک بلوک ستاره دوتایی (``/** ... */``) نوشته می‌شوند و باید مستقیماً بالاتر از دستورات یا دستورات تابع استفاده شوند.
علاوه بر این، نوع دیگری از کامنت به نام کامنت NatSpec وجود دارد که در :ref:`راهنمای استایل<style_guide_natspec>` به تفصیل آورده شده است. آنها با یک اسلش سه گانه (``///``) یا یک بلاک ستاره دوتایی (``/** ... */``) نوشته می‌شوند و باید مستقیماً بالاتر از دستورات یا دستورات تابع استفاده شوند.


2 changes: 1 addition & 1 deletion docs/types/reference-types.rst
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ length or index access.

.. note::

افزایش طول یک آرایه storage با فراخوانی ``()push`` هزینه گاز ثابت را دارد زیرا مقداردهی اولیه
افزایش طول یک آرایه storage با فراخوانی ``()push`` هزینه گَس ثابت را دارد زیرا مقداردهی اولیه
storage صفر می‌باشد، در حالی که کاهش طول با فراخوانی ``()pop`` هزینه‌ای دارد که به "اندازه" عنصر
حذف شده بستگی دارد. اگر آن عنصر آرایه‌ای باشد، می‌تواند بسیار پرهزینه باشد، زیرا شامل پاک کردن صریح عناصر حذف شده مشابه با فراخوانی :ref:`delete<delete>` روی آنها است.

Expand Down
26 changes: 6 additions & 20 deletions docs/types/value-types.rst
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ to the type of the left operand is always performed at the end, but not mentione
.. note::

در حالت بررسی شده ، توان فقط از آپکد ``exp`` نسبتاً ارزان برای پایه‌های کوچک استفاده می‎کند. برای
موارد ``x**3`` ، ممکن است عبارت ``x*x*x`` ارزان تر باشد. در هر صورت، تست هزینه گاز و استفاده از
موارد ``x**3`` ، ممکن است عبارت ``x*x*x`` ارزان تر باشد. در هر صورت، تست هزینه گَس و استفاده از
بهینه ساز توصیه می‌شود.


Expand Down Expand Up @@ -288,7 +288,7 @@ to the type of the left operand is always performed at the end, but not mentione

اگر ``x`` یک آدرس قرارداد باشد، کد آن (به طور خاص تر: تابع :ref:`Receive Ether<receive-ether-function>` در صورت وجود، یا در غیر
این صورت :ref:`تابع Fallback<fallback-function>` در صورت وجود) همراه با فراخوانی ``transfer`` اجرا می‌شود (این ویژگی
EVM است و نمی‌توان جلوی آن را گرفت ) اگر گاز آن اجرا تمام شود یا به هر صورتی از کار بیفتد، انتقال اتر
EVM است و نمی‌توان جلوی آن را گرفت ) اگر گَس آن اجرا تمام شود یا به هر صورتی از کار بیفتد، انتقال اتر
برگردانده می‌شود و قرارداد جاری با استثنا متوقف می‌شود.


Expand All @@ -298,7 +298,7 @@ Send نقطه مقابل سطح پایین ``transfer`` است. در صورت
.. warning::

ستفاده از ``send`` خطرات زیادی دارد: اگر فراخوانی پشته عمق 1024 باشد (که همیشه می‌تواند توسط
فراخوانی کننده مجبور شود) انتقال شکست میخورد و اگر گاز گیرنده شما تمام شود نیز از کار می‌افتد. بنابراین
فراخوانی کننده مجبور شود) انتقال شکست میخورد و اگر گَس گیرنده شما تمام شود نیز از کار می‌افتد. بنابراین
برای انجام مطمئن انتقال اتر، همیشه مقدار برگشتی ``send`` ، را با استفاده از ``transfer`` کنید
یا حتی بهتراست که: از الگویی استفاده کنید که گیرنده پول را برداشت کند.

Expand Down Expand Up @@ -330,7 +330,7 @@ Send نقطه مقابل سطح پایین ``transfer`` است. در صورت

ورژن های قبلی سالیدیتی به این توابع اجازه می‌دهد آرگومان‌های دلخواه را دریافت کنند و همچنین اولین آرگومان از نوع ``bytes4`` را به گونه دیگری مدیریت کنند. این موارد در نسخه 0.5.0 حذف شده‌اند.

تنظیم گاز تامین شده با اصلاح کننده ``gas`` امکان پذیر است:
تنظیم گَس تامین شده با اصلاح کننده ``gas`` امکان پذیر است:


.. code-block:: solidity
Expand Down Expand Up @@ -368,7 +368,7 @@ Send نقطه مقابل سطح پایین ``transfer`` است. در صورت


.. note::
بهتر است بدون توجه به اینکه آیا حالت از آن خوانده می شود یا روی آن نوشته شده است، از تکیه بر مقادیر گاز سخت رمزگذاری شده در کد قرارداد هوشمند خود جلوگیری کنید، زیرا این امر می تواند مشکلات زیادی را به همراه داشته باشد. همچنین، دسترسی به گاز ممکن است در آینده تغییر کند.
بهتر است بدون توجه به اینکه آیا حالت از آن خوانده می شود یا روی آن نوشته شده است، از تکیه بر مقادیر گَس سخت رمزگذاری شده در کد قرارداد هوشمند خود جلوگیری کنید، زیرا این امر می تواند مشکلات زیادی را به همراه داشته باشد. همچنین، دسترسی به گَس ممکن است در آینده تغییر کند.


.. note::
Expand All @@ -383,7 +383,6 @@ Send نقطه مقابل سطح پایین ``transfer`` است. در صورت
--------------


انواع قرارداد
هر :ref:`قراردادی<contracts>` نوع خاص خود را مشخص می‌کند. به طور ضمنی می‌توانید قراردادها را به قراردادهایی که از آنها به ارث می‌برند تبدیل کنید. قراردادها را می‌توان به طور صریح به نوع ``address`` تبدیل و از آنها تغییر داد.

تبدیل صریح به نوع ``address payable`` فقط از آنجا امکان پذیر است که نوع قرارداد تابع برگشتی قابل دریافت یا پرداخت داشته باشد. تبدیل هنوز با استفاده از ``address(x)`` انجام می‌شود. اگر نوع قرارداد تابع برگشت پذیر یا قابل پرداخت نباشد، تبدیل به ``address payable`` را می‌توان با استفاده از ``payable(address(x))`` انجام داد. در بخش مربوط به نوع :ref:`آدرس<address>` می‌توانید اطلاعات بیشتری کسب کنید.
Expand Down Expand Up @@ -417,19 +416,6 @@ Send نقطه مقابل سطح پایین ``transfer`` است. در صورت
مقدارهای مختلف ``bytes32`` ، ... ، ``bytes3`` ، ``bytes2`` ، ``bytes1`` توالی بایت را از یک تا 32 نگه می‌دارد.


عملگرها:
• مقایسه ها: <=، <، ==، !=، >=، > (ارزیابی به bool)
• عملگرهای بیت: &، |، ^ (bitwise exclusive یا) ، ~ (bitwise negation)
• عملگرهای شیفت : << (شیفت چپ) ، >> (شیفت راست)

* مقایسه ها: ``=>`` ، ``>`` ، ``==`` ، ``=!`` ، ``=<`` ، ``<`` (ارزیابی به ``bool``)
* عملگرهای بیت: ``&`` ، ``|`` ، ``^`` (bitwise exclusive یا) ، ``~`` (bitwise negation)
* عملگرهای شیفت : ``>>`` (شیفت چپ) ، ``<<`` (شیفت راست)
* دسترسی به Index: اگر ``x`` از نوع ``bytesI`` باشد، سپس ``x[k]`` برای ``0 <= k < I`` بایت ``k`` را برمی‌گردانم (فقط برای خواندن).
* Shift operators: ``<<`` (left shift), ``>>`` (right shift)
* Index access: If ``x`` is of type ``bytesI``, then ``x[k]`` for ``0 =< k < I`` returns the ``k`` th byte (read-only).


عملگرها:

* Comparisons: ``<=``, ``<``, ``==``, ``!=``, ``>=``, ``>`` (evaluate to ``bool``)
Expand Down Expand Up @@ -874,7 +860,7 @@ Function types are notated as follows:

توابع خارجی (یا عمومی) برای داشتن اعضای اضافی ``gas(uint).`` و ``value(uint).`` استفاده
می‌شود. اینها در سالیدیتی نسخه 0.6.2 منسوخ شده و در سالیدیتی نسخه 0.7.0 حذف شدند. در عوض
از ``{...:gas }`` و ``{...:value}`` برای تعیین مقدار گاز یا مقدار wei ارسال شده به یک
از ``{...:gas }`` و ``{...:value}`` برای تعیین مقدار گَس یا مقدار wei ارسال شده به یک
تابع استفاده کنید. برای اطلاعات بیشتر به قسمت :ref:`فراخوانی تابع خارجی<external-function-calls>` مراجعه کنید.


Expand Down