---
title: "⁦ٹرانزیکشنز⁩"
description: "⁦ایتھیریم ٹرانزیکشنز کا ایک جائزہ – یہ کیسے کام کرتی ہیں، ان کا ڈیٹا سٹرکچر، اور انہیں کسی ایپلیکیشن کے ذریعے کیسے بھیجا جائے۔⁩"
lang: ur
---

ٹرانزیکشنز اکاؤنٹس کی جانب سے کرپٹوگرافک طور پر دستخط شدہ ہدایات ہیں۔ ایک اکاؤنٹ [ایتھیریم](/) نیٹ ورک کی حالت کو اپ ڈیٹ کرنے کے لیے ایک ٹرانزیکشن شروع کرے گا۔ سب سے سادہ ٹرانزیکشن ایک اکاؤنٹ سے دوسرے اکاؤنٹ میں <span dir="ltr">ETH</span> کی منتقلی ہے۔

## شرائط {#prerequisites}

اس صفحے کو بہتر طور پر سمجھنے میں آپ کی مدد کے لیے، ہم تجویز کرتے ہیں کہ آپ پہلے [اکاؤنٹس](/developers/docs/accounts/) اور ہمارا [ایتھیریم کا تعارف](/developers/docs/intro-to-ethereum/) پڑھیں۔

## ٹرانزیکشن کیا ہے؟ {#whats-a-transaction}

ایک ایتھیریم ٹرانزیکشن سے مراد بیرونی ملکیت والے اکاؤنٹ (externally-owned account) کی جانب سے شروع کی گئی کارروائی ہے، دوسرے الفاظ میں ایک ایسا اکاؤنٹ جسے کوئی انسان چلاتا ہو، نہ کہ کوئی کنٹریکٹ۔ مثال کے طور پر، اگر باب ایلس کو <span dir="ltr">1 ETH</span> بھیجتا ہے، تو باب کے اکاؤنٹ سے رقم کٹنی چاہیے اور ایلس کے اکاؤنٹ میں جمع ہونی چاہیے۔ حالت بدلنے والی یہ کارروائی ایک ٹرانزیکشن کے اندر ہوتی ہے۔

![Diagram showing a transaction cause state change](./tx.png)
_خاکہ [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) سے ماخوذ ہے_

ٹرانزیکشنز، جو EVM کی حالت کو تبدیل کرتی ہیں، انہیں پورے نیٹ ورک پر نشر کرنے کی ضرورت ہوتی ہے۔ کوئی بھی نوڈ EVM پر ٹرانزیکشن کے نفاذ کی درخواست نشر کر سکتا ہے؛ ایسا ہونے کے بعد، ایک توثیق کار ٹرانزیکشن کو نافذ کرے گا اور اس کے نتیجے میں ہونے والی حالت کی تبدیلی کو باقی نیٹ ورک تک پہنچائے گا۔

ٹرانزیکشنز کے لیے فیس درکار ہوتی ہے اور انہیں ایک توثیق شدہ بلاک میں شامل ہونا چاہیے۔ اس جائزے کو آسان بنانے کے لیے ہم گیس فیس اور توثیق کا احاطہ کہیں اور کریں گے۔

جمع کرائی گئی ٹرانزیکشن میں درج ذیل معلومات شامل ہوتی ہیں:

- `from` – بھیجنے والے کا پتہ، جو ٹرانزیکشن پر دستخط کرے گا۔ یہ ایک بیرونی ملکیت والا اکاؤنٹ ہوگا کیونکہ کنٹریکٹ اکاؤنٹس ٹرانزیکشنز نہیں بھیج سکتے
- `to` – وصول کرنے والے کا پتہ (اگر یہ بیرونی ملکیت والا اکاؤنٹ ہے، تو ٹرانزیکشن قدر منتقل کرے گی۔ اگر یہ کنٹریکٹ اکاؤنٹ ہے، تو ٹرانزیکشن کنٹریکٹ کوڈ کو نافذ کرے گی)
- `signature` – بھیجنے والے کی شناخت۔ یہ اس وقت تیار ہوتی ہے جب بھیجنے والے کی نجی کلید ٹرانزیکشن پر دستخط کرتی ہے اور تصدیق کرتی ہے کہ بھیجنے والے نے اس ٹرانزیکشن کی اجازت دی ہے
- `nonce` - ایک ترتیب وار بڑھنے والا کاؤنٹر جو اکاؤنٹ سے ٹرانزیکشن نمبر کی نشاندہی کرتا ہے
- `value` – بھیجنے والے سے وصول کنندہ کو منتقل کی جانے والی <span dir="ltr">ETH</span> کی رقم (Wei میں ظاہر کی گئی، جہاں <span dir="ltr">1ETH</span> برابر ہے <span dir="ltr">1e+18wei</span> کے)
- `input data` – صوابدیدی ڈیٹا شامل کرنے کے لیے اختیاری فیلڈ
- `gasLimit` – گیس یونٹس کی زیادہ سے زیادہ مقدار جو ٹرانزیکشن کے ذریعے استعمال کی جا سکتی ہے۔ [EVM](/developers/docs/evm/opcodes) ہر کمپیوٹیشنل قدم کے لیے درکار گیس کے یونٹس کی وضاحت کرتا ہے
- `maxPriorityFeePerGas` - استعمال شدہ گیس کی زیادہ سے زیادہ قیمت جسے توثیق کار کے لیے ٹپ کے طور پر شامل کیا جائے گا
- `maxFeePerGas` - ٹرانزیکشن کے لیے ادا کی جانے والی گیس کے فی یونٹ کی زیادہ سے زیادہ فیس (جس میں `baseFeePerGas` اور `maxPriorityFeePerGas` شامل ہیں)

گیس سے مراد وہ کمپیوٹیشن ہے جو توثیق کار کے ذریعے ٹرانزیکشن پر کارروائی کرنے کے لیے درکار ہوتی ہے۔ صارفین کو اس کمپیوٹیشن کے لیے فیس ادا کرنی پڑتی ہے۔ `gasLimit`، اور `maxPriorityFeePerGas` توثیق کار کو ادا کی جانے والی زیادہ سے زیادہ لین دین کی فیس کا تعین کرتے ہیں۔ [گیس کے بارے میں مزید](/developers/docs/gas/)۔

ٹرانزیکشن آبجیکٹ کچھ اس طرح نظر آئے گا:

```js
{
  from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
  to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",
  gasLimit: "21000",
  maxFeePerGas: "300",
  maxPriorityFeePerGas: "10",
  nonce: "0",
  value: "10000000000"
}
```

لیکن ایک ٹرانزیکشن آبجیکٹ پر بھیجنے والے کی نجی کلید کا استعمال کرتے ہوئے دستخط کرنا ضروری ہے۔ یہ ثابت کرتا ہے کہ ٹرانزیکشن صرف بھیجنے والے کی طرف سے آ سکتی تھی اور اسے دھوکہ دہی سے نہیں بھیجا گیا تھا۔

Geth جیسا ایتھیریم کلائنٹ دستخط کرنے کے اس عمل کو سنبھالے گا۔

مثال کے طور پر [جے سن آر پی سی](/developers/docs/apis/json-rpc) کال:

```json
{
  "id": 2,
  "jsonrpc": "2.0",
  "method": "account_signTransaction",
  "params": [
    {
      "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db",
      "gas": "0x55555",
      "maxFeePerGas": "0x1234",
      "maxPriorityFeePerGas": "0x1234",
      "input": "0xabcd",
      "nonce": "0x0",
      "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
      "value": "0x1234"
    }
  ]
}
```

مثال کے طور پر جواب:

```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
    "tx": {
      "nonce": "0x0",
      "maxFeePerGas": "0x1234",
      "maxPriorityFeePerGas": "0x1234",
      "gas": "0x55555",
      "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
      "value": "0x1234",
      "input": "0xabcd",
      "v": "0x26",
      "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e",
      "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
      "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e"
    }
  }
}
```

- `raw` [Recursive Length Prefix (RLP)](/developers/docs/data-structures-and-encoding/rlp) انکوڈ شدہ شکل میں دستخط شدہ ٹرانزیکشن ہے
- `tx` JSON شکل میں دستخط شدہ ٹرانزیکشن ہے

دستخطی ہیش کے ساتھ، ٹرانزیکشن کو کرپٹوگرافک طور پر ثابت کیا جا سکتا ہے کہ یہ بھیجنے والے کی طرف سے آئی ہے اور نیٹ ورک پر جمع کرائی گئی ہے۔

### ڈیٹا فیلڈ {#the-data-field}

ٹرانزیکشنز کی اکثریت ایک بیرونی ملکیت والے اکاؤنٹ سے کنٹریکٹ تک رسائی حاصل کرتی ہے۔
زیادہ تر کنٹریکٹس Solidity میں لکھے جاتے ہیں اور اپنے ڈیٹا فیلڈ کی تشریح [ایپلیکیشن بائنری انٹرفیس (ABI)](/glossary/#abi) کے مطابق کرتے ہیں۔

پہلے چار بائٹس فنکشن کے نام اور دلائل (arguments) کے ہیش کا استعمال کرتے ہوئے یہ بتاتے ہیں کہ کون سا فنکشن کال کرنا ہے۔
آپ بعض اوقات [اس ڈیٹا بیس](https://www.4byte.directory/signatures/) کا استعمال کرتے ہوئے سلیکٹر سے فنکشن کی شناخت کر سکتے ہیں۔

باقی کال ڈیٹا دلائل ہیں، جو [ABI تصریحات میں بتائے گئے طریقے کے مطابق انکوڈ کیے گئے ہیں](https://docs.soliditylang.org/en/latest/abi-spec.html#formal-specification-of-the-encoding)۔

مثال کے طور پر، آئیے [اس ٹرانزیکشن](https://etherscan.io/tx/0xd0dcbe007569fcfa1902dae0ab8b4e078efe42e231786312289b1eee5590f6a1) کو دیکھتے ہیں۔
کال ڈیٹا دیکھنے کے لیے **Click to see More** کا استعمال کریں۔

فنکشن سلیکٹر `0xa9059cbb` ہے۔ [اس دستخط کے ساتھ کئی معروف فنکشنز](https://www.4byte.directory/signatures/?bytes4_signature=0xa9059cbb) موجود ہیں۔
اس صورت میں [کنٹریکٹ کا سورس کوڈ](https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#code) Etherscan پر اپ لوڈ کر دیا گیا ہے، اس لیے ہم جانتے ہیں کہ فنکشن `transfer(address,uint256)` ہے۔

باقی ڈیٹا یہ ہے:

```
0000000000000000000000004f6742badb049791cd9a37ea913f2bac38d01279
000000000000000000000000000000000000000000000000000000003b0559f4
```

ABI تصریحات کے مطابق، انٹیجر ویلیوز (جیسے پتے، جو <span dir="ltr">20-byte</span> انٹیجرز ہوتے ہیں) ABI میں <span dir="ltr">32-byte</span> الفاظ کے طور پر ظاہر ہوتے ہیں، جن کے شروع میں صفر لگائے جاتے ہیں۔
لہذا ہم جانتے ہیں کہ `to` پتہ [`4f6742badb049791cd9a37ea913f2bac38d01279`](https://etherscan.io/address/0x4f6742badb049791cd9a37ea913f2bac38d01279) ہے۔
`value` <span dir="ltr">0x3b0559f4 = 990206452</span> ہے۔

### ٹرانزیکشن ڈسکرپٹرز {#transaction-descriptors}

چونکہ ڈیٹا فیلڈ میں غیر واضح ہیکسا ڈیسیمل بائٹس ہوتے ہیں، اس لیے یہ تصدیق کرنا انتہائی مشکل ہو سکتا ہے کہ ٹرانزیکشن دراصل کیا کارروائی کرے گی۔ اس "بلائنڈ سائننگ" (اندھا دھند دستخط کرنے) کے خطرے کو [ٹرانزیکشن ڈسکرپٹرز](https://eips.ethereum.org/EIPS/eip-7730) (جو <span dir="ltr">ERC-7730</span> کے ذریعے بیان کیے گئے ہیں) کے استعمال کے ذریعے **[کلیئر سائننگ](https://clearsigning.org/)** سے حل کیا جاتا ہے۔  

<span dir="ltr">ERC-7730</span> تصریح ٹرانزیکشن ڈسکرپٹرز (جو اکثر JSON فائلوں کے طور پر تشکیل دیے جاتے ہیں) کا استعمال کرتی ہے تاکہ ABIs اور سٹرکچرڈ پیغامات، جیسے EVM ٹرانزیکشن کال ڈیٹا، <span dir="ltr">EIP-712</span> پیغامات، اور <span dir="ltr">EIP-4337</span> یوزر آپریشنز میں پائے جانے والے ڈیٹا کو مزید بہتر بنایا جا سکے۔ ڈیولپرز ان ڈسکرپٹرز کا استعمال مخصوص ٹرانزیکشن ویری ایبلز کو براہ راست فارمیٹنگ ٹیمپلیٹس میں میپ کرنے کے لیے کرتے ہیں، جس سے یہ یقینی بنتا ہے کہ بنیادی ڈیٹا ایپلیکیشنز کے لیے مشین کے پڑھنے کے قابل رہے۔

فرنٹ اینڈ پر، والٹس اس فارمیٹنگ سیاق و سباق کا استعمال غیر واضح بائٹ کوڈ کو واضح، انسان کے پڑھنے کے قابل معلومات میں ترجمہ کرنے کے لیے کرتے ہیں۔ ٹوکن کے پتوں جیسی قدروں کو خود بخود تسلیم شدہ ٹکرز میں، یا رقوم کو اعشاریہ میں حل کر کے، صارفین کو دستخط کرنے سے پہلے ٹرانزیکشن کے درست ارادے کا سادہ زبان میں خلاصہ پیش کیا جاتا ہے (مثلاً، '<span dir="ltr">1000 USDC</span> کا کم از کم <span dir="ltr">0.25 WETH</span> کے لیے تبادلہ کریں')

## ٹرانزیکشنز کی اقسام {#types-of-transactions}

ایتھیریم پر ٹرانزیکشنز کی چند مختلف اقسام ہیں:

- باقاعدہ ٹرانزیکشنز: ایک اکاؤنٹ سے دوسرے اکاؤنٹ میں ٹرانزیکشن۔
- کنٹریکٹ کی تعیناتی کی ٹرانزیکشنز: 'to' (وصول کنندہ) کے پتے کے بغیر ایک ٹرانزیکشن، جہاں ڈیٹا فیلڈ کو کنٹریکٹ کوڈ کے لیے استعمال کیا جاتا ہے۔
- کنٹریکٹ کا نفاذ: ایک ٹرانزیکشن جو تعینات شدہ سمارٹ کنٹریکٹ کے ساتھ تعامل کرتی ہے۔ اس صورت میں، 'to' پتہ سمارٹ کنٹریکٹ کا پتہ ہوتا ہے۔

### گیس پر {#on-gas}

جیسا کہ ذکر کیا گیا ہے، ٹرانزیکشنز کو نافذ کرنے کے لیے [گیس](/developers/docs/gas/) خرچ ہوتی ہے۔ سادہ منتقلی کی ٹرانزیکشنز کے لیے گیس کے <span dir="ltr">21,000</span> یونٹس درکار ہوتے ہیں۔

لہذا باب کو ایلس کو <span dir="ltr">190 gwei</span> کی `baseFeePerGas` اور <span dir="ltr">10 gwei</span> کی `maxPriorityFeePerGas` پر <span dir="ltr">1 ETH</span> بھیجنے کے لیے، باب کو درج ذیل فیس ادا کرنی ہوگی:

```
(190 + 10) * 21000 = 4,200,000 gwei
--یا--
0.0042 ETH
```

باب کے اکاؤنٹ سے **<span dir="ltr">-1.0042 ETH</span>** کاٹے جائیں گے (ایلس کے لیے <span dir="ltr">1 ETH</span> + گیس فیس میں <span dir="ltr">0.0042 ETH</span>)

ایلس کے اکاؤنٹ میں **<span dir="ltr">+1.0 ETH</span>** جمع کیے جائیں گے

بنیادی فیس جلا دی جائے گی **<span dir="ltr">-0.00399 ETH</span>**

توثیق کار ٹپ رکھ لے گا **<span dir="ltr">+0.000210 ETH</span>**


![Diagram showing how unused gas is refunded](./gas-tx.png)
_خاکہ [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf) سے ماخوذ ہے_

ٹرانزیکشن میں استعمال نہ ہونے والی کوئی بھی گیس صارف کے اکاؤنٹ میں واپس کر دی جاتی ہے۔

### سمارٹ کنٹریکٹ کے تعاملات {#smart-contract-interactions}

کسی بھی ایسی ٹرانزیکشن کے لیے گیس درکار ہوتی ہے جس میں سمارٹ کنٹریکٹ شامل ہو۔

سمارٹ کنٹریکٹس میں ایسے فنکشنز بھی ہو سکتے ہیں جنہیں [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) یا [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions) فنکشنز کہا جاتا ہے، جو کنٹریکٹ کی حالت کو تبدیل نہیں کرتے۔ اس طرح، کسی EOA سے ان فنکشنز کو کال کرنے کے لیے کسی گیس کی ضرورت نہیں ہوگی۔ اس صورتحال کے لیے بنیادی RPC کال [`eth_call`](/developers/docs/apis/json-rpc#eth_call) ہے۔

`eth_call` کا استعمال کرتے ہوئے رسائی کے برعکس، ان `view` یا `pure` فنکشنز کو عام طور پر اندرونی طور پر بھی کال کیا جاتا ہے (یعنی، خود کنٹریکٹ سے یا کسی دوسرے کنٹریکٹ سے) جس پر گیس خرچ ہوتی ہے۔

## ٹرانزیکشن کا لائف سائیکل {#transaction-lifecycle}

ایک بار ٹرانزیکشن جمع کرانے کے بعد درج ذیل ہوتا ہے:

1. ایک ٹرانزیکشن ہیش کرپٹوگرافک طور پر تیار کیا جاتا ہے:
   `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017`
2. پھر ٹرانزیکشن کو نیٹ ورک پر نشر کیا جاتا ہے اور ایک ٹرانزیکشن پول میں شامل کیا جاتا ہے جو دیگر تمام زیر التواء نیٹ ورک ٹرانزیکشنز پر مشتمل ہوتا ہے۔
3. ٹرانزیکشن کی تصدیق کرنے اور اسے "کامیاب" سمجھنے کے لیے ایک توثیق کار کو آپ کی ٹرانزیکشن کا انتخاب کرنا چاہیے اور اسے ایک بلاک میں شامل کرنا چاہیے۔
4. جیسے جیسے وقت گزرتا ہے آپ کی ٹرانزیکشن پر مشتمل بلاک کو "جواز یافتہ" اور پھر "حتمی" میں اپ گریڈ کر دیا جائے گا۔ یہ اپ گریڈز اس بات کو بہت زیادہ یقینی بناتے ہیں کہ آپ کی ٹرانزیکشن کامیاب رہی اور اسے کبھی تبدیل نہیں کیا جائے گا۔ ایک بار جب کوئی بلاک "حتمی" ہو جاتا ہے تو اسے صرف نیٹ ورک کی سطح کے حملے سے ہی تبدیل کیا جا سکتا ہے جس پر کئی اربوں ڈالر لاگت آئے گی۔

## ایک بصری ڈیمو {#a-visual-demo}

آسٹن کو ٹرانزیکشنز، گیس، اور کان کنی کے بارے میں بتاتے ہوئے دیکھیں۔

<VideoWatch slug="transactions-eth-build" />

## ٹائپڈ ٹرانزیکشن انویلپ {#typed-transaction-envelope}

ایتھیریم میں اصل میں ٹرانزیکشنز کے لیے ایک ہی فارمیٹ تھا۔ ہر ٹرانزیکشن میں ایک نانس، گیس کی قیمت، گیس کی حد، وصول کنندہ کا پتہ، قدر، ڈیٹا، v، r، اور s شامل تھے۔ یہ فیلڈز [RLP-انکوڈ شدہ](/developers/docs/data-structures-and-encoding/rlp/) ہیں، جو کچھ اس طرح نظر آتے ہیں:

`RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])`

ایتھیریم نے ٹرانزیکشنز کی متعدد اقسام کو سپورٹ کرنے کے لیے ترقی کی ہے تاکہ نئی خصوصیات جیسے کہ رسائی کی فہرستوں اور [<span dir="ltr">EIP-1559</span>](https://eips.ethereum.org/EIPS/eip-1559) کو پرانے ٹرانزیکشن فارمیٹس کو متاثر کیے بغیر لاگو کیا جا سکے۔

[<span dir="ltr">EIP-2718</span>](https://eips.ethereum.org/EIPS/eip-2718) وہ ہے جو اس رویے کی اجازت دیتا ہے۔ ٹرانزیکشنز کی تشریح اس طرح کی جاتی ہے:

`TransactionType || TransactionPayload`

جہاں فیلڈز کی تعریف اس طرح کی گئی ہے:

- `TransactionType` - 0 اور <span dir="ltr">0x7f</span> کے درمیان ایک عدد، کل 128 ممکنہ ٹرانزیکشن اقسام کے لیے۔
- `TransactionPayload` - ٹرانزیکشن کی قسم کے ذریعے بیان کردہ ایک صوابدیدی بائٹ سرنی (byte array)۔

`TransactionType` قدر کی بنیاد پر، ایک ٹرانزیکشن کو اس طرح درجہ بند کیا جا سکتا ہے:

1. **ٹائپ 0 (لیگیسی) ٹرانزیکشنز:** ایتھیریم کے آغاز سے استعمال ہونے والا اصل ٹرانزیکشن فارمیٹ۔ ان میں [<span dir="ltr">EIP-1559</span>](https://eips.ethereum.org/EIPS/eip-1559) کی خصوصیات شامل نہیں ہیں جیسے کہ متحرک گیس فیس کا حساب کتاب یا سمارٹ کنٹریکٹس کے لیے رسائی کی فہرستیں۔ لیگیسی ٹرانزیکشنز میں ان کی سیریلائزڈ شکل میں ان کی قسم کی نشاندہی کرنے والے مخصوص سابقے (prefix) کی کمی ہوتی ہے، جو [Recursive Length Prefix (RLP)](/developers/docs/data-structures-and-encoding/rlp) انکوڈنگ کا استعمال کرتے وقت بائٹ `0xf8` سے شروع ہوتی ہیں۔ ان ٹرانزیکشنز کے لیے TransactionType کی قدر `0x0` ہے۔

2. **ٹائپ 1 ٹرانزیکشنز:** ایتھیریم کے [برلن اپ گریڈ](/ethereum-forks/#berlin) کے حصے کے طور پر [<span dir="ltr">EIP-2930</span>](https://eips.ethereum.org/EIPS/eip-2930) میں متعارف کرائی گئی، ان ٹرانزیکشنز میں ایک `accessList` پیرامیٹر شامل ہوتا ہے۔ یہ فہرست ان پتوں اور سٹوریج کیز کی وضاحت کرتی ہے جن تک ٹرانزیکشن رسائی کی توقع رکھتی ہے، جس سے سمارٹ کنٹریکٹس پر مشتمل پیچیدہ ٹرانزیکشنز کے لیے ممکنہ طور پر [گیس](/developers/docs/gas/) کے اخراجات کو کم کرنے میں مدد ملتی ہے۔ <span dir="ltr">EIP-1559</span> فیس مارکیٹ کی تبدیلیاں ٹائپ 1 ٹرانزیکشنز میں شامل نہیں ہیں۔ ٹائپ 1 ٹرانزیکشنز میں ایک `yParity` پیرامیٹر بھی شامل ہوتا ہے، جو یا تو `0x0` یا `0x1` ہو سکتا ہے، جو secp256k1 دستخط کی y-ویلیو کی برابری (parity) کی نشاندہی کرتا ہے۔ ان کی شناخت بائٹ `0x01` سے شروع ہونے سے ہوتی ہے، اور ان کی TransactionType قدر `0x1` ہے۔

3. **ٹائپ 2 ٹرانزیکشنز**، جنہیں عام طور پر <span dir="ltr">EIP-1559</span> ٹرانزیکشنز کہا جاتا ہے، وہ ٹرانزیکشنز ہیں جو ایتھیریم کے [لندن اپ گریڈ](/ethereum-forks/#london) میں [<span dir="ltr">EIP-1559</span>](https://eips.ethereum.org/EIPS/eip-1559) میں متعارف کرائی گئی تھیں۔ یہ ایتھیریم نیٹ ورک پر معیاری ٹرانزیکشن کی قسم بن گئی ہیں۔ یہ ٹرانزیکشنز ایک نیا فیس مارکیٹ میکانزم متعارف کراتی ہیں جو لین دین کی فیس کو بنیادی فیس اور ترجیحی فیس میں الگ کر کے پیشین گوئی کو بہتر بناتا ہے۔ یہ بائٹ `0x02` سے شروع ہوتی ہیں اور ان میں `maxPriorityFeePerGas` اور `maxFeePerGas` جیسی فیلڈز شامل ہوتی ہیں۔ ٹائپ 2 ٹرانزیکشنز اب اپنی لچک اور کارکردگی کی وجہ سے ڈیفالٹ ہیں، خاص طور پر نیٹ ورک کے زیادہ ہجوم کے ادوار میں ان کی اس صلاحیت کی وجہ سے پسند کی جاتی ہیں کہ یہ صارفین کو لین دین کی فیس کو زیادہ پیشین گوئی کے ساتھ منظم کرنے میں مدد کرتی ہیں۔ ان ٹرانزیکشنز کے لیے TransactionType کی قدر `0x2` ہے۔

4. **ٹائپ 3 (بلاب) ٹرانزیکشنز** کو ایتھیریم کے [ڈینکون اپ گریڈ](/ethereum-forks/#dencun) کے حصے کے طور پر [<span dir="ltr">EIP-4844</span>](https://eips.ethereum.org/EIPS/eip-4844) میں متعارف کرایا گیا تھا۔ یہ ٹرانزیکشنز "بلاب" ڈیٹا (Binary Large Objects) کو زیادہ مؤثر طریقے سے سنبھالنے کے لیے بنائی گئی ہیں، خاص طور پر ایتھیریم نیٹ ورک پر کم قیمت پر ڈیٹا پوسٹ کرنے کا طریقہ فراہم کر کے لیئر ۲ (l2) رول اپس کو فائدہ پہنچاتی ہیں۔ بلاب ٹرانزیکشنز میں اضافی فیلڈز شامل ہوتی ہیں جیسے `blobVersionedHashes`، `maxFeePerBlobGas`، اور `blobGasPrice`۔ یہ بائٹ `0x03` سے شروع ہوتی ہیں، اور ان کی TransactionType قدر `0x3` ہے۔ بلاب ٹرانزیکشنز ایتھیریم کی ڈیٹا کی دستیابی اور اسکیلنگ کی صلاحیتوں میں نمایاں بہتری کی نمائندگی کرتی ہیں۔

5. **ٹائپ 4 ٹرانزیکشنز** کو ایتھیریم کے [پیکٹرا اپ گریڈ](/roadmap/pectra/) کے حصے کے طور پر [<span dir="ltr">EIP-7702</span>](https://eips.ethereum.org/EIPS/eip-7702) میں متعارف کرایا گیا تھا۔ یہ ٹرانزیکشنز اکاؤنٹ کی تجرید کے ساتھ آگے کی طرف مطابقت رکھنے (forward-compatible) کے لیے بنائی گئی ہیں۔ یہ EOAs کو اپنی اصل فعالیت سے سمجھوتہ کیے بغیر عارضی طور پر سمارٹ کنٹریکٹ اکاؤنٹس کی طرح برتاؤ کرنے کی اجازت دیتی ہیں۔ ان میں ایک `authorization_list` پیرامیٹر شامل ہوتا ہے، جو اس سمارٹ کنٹریکٹ کی وضاحت کرتا ہے جسے EOA اپنا اختیار سونپتا ہے۔ ٹرانزیکشن کے بعد، EOA کے کوڈ فیلڈ میں تفویض کردہ سمارٹ کنٹریکٹ کا پتہ ہوگا۔

## مزید مطالعہ {#further-reading}

- [<span dir="ltr">EIP-2718</span>: ٹائپڈ ٹرانزیکشن انویلپ](https://eips.ethereum.org/EIPS/eip-2718)

_کسی ایسے کمیونٹی وسیلے کے بارے میں جانتے ہیں جس نے آپ کی مدد کی ہو؟ اس صفحے میں ترمیم کریں اور اسے شامل کریں!_

## متعلقہ موضوعات {#related-topics}

- [اکاؤنٹس](/developers/docs/accounts/)
- [ایتھیریم ورچوئل مشین (EVM)](/developers/docs/evm/)
- [گیس](/developers/docs/gas/)

<Divider />

<QuizWidget quizKey="transactions" />
