ٹرانزیکشنز
ٹرانزیکشنز اکاؤنٹس کی جانب سے کرپٹوگرافک طور پر دستخط شدہ ہدایات ہیں۔ ایک اکاؤنٹ ایتھیریم نیٹ ورک کی حالت کو اپ ڈیٹ کرنے کے لیے ایک ٹرانزیکشن شروع کرے گا۔ سب سے سادہ ٹرانزیکشن ایک اکاؤنٹ سے دوسرے اکاؤنٹ میں ETH کی منتقلی ہے۔
شرائط
اس صفحے کو بہتر طور پر سمجھنے میں آپ کی مدد کے لیے، ہم تجویز کرتے ہیں کہ آپ پہلے اکاؤنٹس اور ہمارا ایتھیریم کا تعارف پڑھیں۔
ٹرانزیکشن کیا ہے؟
ایک ایتھیریم ٹرانزیکشن سے مراد بیرونی ملکیت والے اکاؤنٹ (externally-owned account) کی جانب سے شروع کی گئی کارروائی ہے، دوسرے الفاظ میں ایک ایسا اکاؤنٹ جسے کوئی انسان چلاتا ہو، نہ کہ کوئی کنٹریکٹ۔ مثال کے طور پر، اگر باب ایلس کو 1 ETH بھیجتا ہے، تو باب کے اکاؤنٹ سے رقم کٹنی چاہیے اور ایلس کے اکاؤنٹ میں جمع ہونی چاہیے۔ حالت بدلنے والی یہ کارروائی ایک ٹرانزیکشن کے اندر ہوتی ہے۔
خاکہ Ethereum EVM illustrated (opens in a new tab) سے ماخوذ ہے
ٹرانزیکشنز، جو EVM کی حالت کو تبدیل کرتی ہیں، انہیں پورے نیٹ ورک پر نشر کرنے کی ضرورت ہوتی ہے۔ کوئی بھی نوڈ EVM پر ٹرانزیکشن کے نفاذ کی درخواست نشر کر سکتا ہے؛ ایسا ہونے کے بعد، ایک توثیق کار ٹرانزیکشن کو نافذ کرے گا اور اس کے نتیجے میں ہونے والی حالت کی تبدیلی کو باقی نیٹ ورک تک پہنچائے گا۔
ٹرانزیکشنز کے لیے فیس درکار ہوتی ہے اور انہیں ایک توثیق شدہ بلاک میں شامل ہونا چاہیے۔ اس جائزے کو آسان بنانے کے لیے ہم گیس فیس اور توثیق کا احاطہ کہیں اور کریں گے۔
جمع کرائی گئی ٹرانزیکشن میں درج ذیل معلومات شامل ہوتی ہیں:
from– بھیجنے والے کا پتہ، جو ٹرانزیکشن پر دستخط کرے گا۔ یہ ایک بیرونی ملکیت والا اکاؤنٹ ہوگا کیونکہ کنٹریکٹ اکاؤنٹس ٹرانزیکشنز نہیں بھیج سکتےto– وصول کرنے والے کا پتہ (اگر یہ بیرونی ملکیت والا اکاؤنٹ ہے، تو ٹرانزیکشن قدر منتقل کرے گی۔ اگر یہ کنٹریکٹ اکاؤنٹ ہے، تو ٹرانزیکشن کنٹریکٹ کوڈ کو نافذ کرے گی)signature– بھیجنے والے کی شناخت۔ یہ اس وقت تیار ہوتی ہے جب بھیجنے والے کی نجی کلید ٹرانزیکشن پر دستخط کرتی ہے اور تصدیق کرتی ہے کہ بھیجنے والے نے اس ٹرانزیکشن کی اجازت دی ہےnonce- ایک ترتیب وار بڑھنے والا کاؤنٹر جو اکاؤنٹ سے ٹرانزیکشن نمبر کی نشاندہی کرتا ہےvalue– بھیجنے والے سے وصول کنندہ کو منتقل کی جانے والی ETH کی رقم (Wei میں ظاہر کی گئی، جہاں 1ETH برابر ہے 1e+18wei کے)input data– صوابدیدی ڈیٹا شامل کرنے کے لیے اختیاری فیلڈgasLimit– گیس یونٹس کی زیادہ سے زیادہ مقدار جو ٹرانزیکشن کے ذریعے استعمال کی جا سکتی ہے۔ EVM ہر کمپیوٹیشنل قدم کے لیے درکار گیس کے یونٹس کی وضاحت کرتا ہےmaxPriorityFeePerGas- استعمال شدہ گیس کی زیادہ سے زیادہ قیمت جسے توثیق کار کے لیے ٹپ کے طور پر شامل کیا جائے گاmaxFeePerGas- ٹرانزیکشن کے لیے ادا کی جانے والی گیس کے فی یونٹ کی زیادہ سے زیادہ فیس (جس میںbaseFeePerGasاورmaxPriorityFeePerGasشامل ہیں)
گیس سے مراد وہ کمپیوٹیشن ہے جو توثیق کار کے ذریعے ٹرانزیکشن پر کارروائی کرنے کے لیے درکار ہوتی ہے۔ صارفین کو اس کمپیوٹیشن کے لیے فیس ادا کرنی پڑتی ہے۔ gasLimit، اور maxPriorityFeePerGas توثیق کار کو ادا کی جانے والی زیادہ سے زیادہ لین دین کی فیس کا تعین کرتے ہیں۔ گیس کے بارے میں مزید۔
ٹرانزیکشن آبجیکٹ کچھ اس طرح نظر آئے گا:
{
from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",
gasLimit: "21000",
maxFeePerGas: "300",
maxPriorityFeePerGas: "10",
nonce: "0",
value: "10000000000"
}
لیکن ایک ٹرانزیکشن آبجیکٹ پر بھیجنے والے کی نجی کلید کا استعمال کرتے ہوئے دستخط کرنا ضروری ہے۔ یہ ثابت کرتا ہے کہ ٹرانزیکشن صرف بھیجنے والے کی طرف سے آ سکتی تھی اور اسے دھوکہ دہی سے نہیں بھیجا گیا تھا۔
Geth جیسا ایتھیریم کلائنٹ دستخط کرنے کے اس عمل کو سنبھالے گا۔
مثال کے طور پر جے سن آر پی سی کال:
{
"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"
}
]
}
مثال کے طور پر جواب:
{
"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"
}
}
}
rawRecursive Length Prefix (RLP) انکوڈ شدہ شکل میں دستخط شدہ ٹرانزیکشن ہےtxJSON شکل میں دستخط شدہ ٹرانزیکشن ہے
دستخطی ہیش کے ساتھ، ٹرانزیکشن کو کرپٹوگرافک طور پر ثابت کیا جا سکتا ہے کہ یہ بھیجنے والے کی طرف سے آئی ہے اور نیٹ ورک پر جمع کرائی گئی ہے۔
ڈیٹا فیلڈ
ٹرانزیکشنز کی اکثریت ایک بیرونی ملکیت والے اکاؤنٹ سے کنٹریکٹ تک رسائی حاصل کرتی ہے۔ زیادہ تر کنٹریکٹس Solidity میں لکھے جاتے ہیں اور اپنے ڈیٹا فیلڈ کی تشریح کے مطابق کرتے ہیں۔
پہلے چار بائٹس فنکشن کے نام اور دلائل (arguments) کے ہیش کا استعمال کرتے ہوئے یہ بتاتے ہیں کہ کون سا فنکشن کال کرنا ہے۔ آپ بعض اوقات اس ڈیٹا بیس (opens in a new tab) کا استعمال کرتے ہوئے سلیکٹر سے فنکشن کی شناخت کر سکتے ہیں۔
باقی کال ڈیٹا دلائل ہیں، جو ABI تصریحات میں بتائے گئے طریقے کے مطابق انکوڈ کیے گئے ہیں (opens in a new tab)۔
مثال کے طور پر، آئیے اس ٹرانزیکشن (opens in a new tab) کو دیکھتے ہیں۔ کال ڈیٹا دیکھنے کے لیے Click to see More کا استعمال کریں۔
فنکشن سلیکٹر 0xa9059cbb ہے۔ اس دستخط کے ساتھ کئی معروف فنکشنز (opens in a new tab) موجود ہیں۔
اس صورت میں کنٹریکٹ کا سورس کوڈ (opens in a new tab) Etherscan پر اپ لوڈ کر دیا گیا ہے، اس لیے ہم جانتے ہیں کہ فنکشن transfer(address,uint256) ہے۔
باقی ڈیٹا یہ ہے:
0000000000000000000000004f6742badb049791cd9a37ea913f2bac38d01279
000000000000000000000000000000000000000000000000000000003b0559f4
ABI تصریحات کے مطابق، انٹیجر ویلیوز (جیسے پتے، جو 20-byte انٹیجرز ہوتے ہیں) ABI میں 32-byte الفاظ کے طور پر ظاہر ہوتے ہیں، جن کے شروع میں صفر لگائے جاتے ہیں۔
لہذا ہم جانتے ہیں کہ to پتہ 4f6742badb049791cd9a37ea913f2bac38d01279 (opens in a new tab) ہے۔
value 0x3b0559f4 = 990206452 ہے۔
ٹرانزیکشن ڈسکرپٹرز
چونکہ ڈیٹا فیلڈ میں غیر واضح ہیکسا ڈیسیمل بائٹس ہوتے ہیں، اس لیے یہ تصدیق کرنا انتہائی مشکل ہو سکتا ہے کہ ٹرانزیکشن دراصل کیا کارروائی کرے گی۔ اس "بلائنڈ سائننگ" (اندھا دھند دستخط کرنے) کے خطرے کو ٹرانزیکشن ڈسکرپٹرز (opens in a new tab) (جو ERC-7730 کے ذریعے بیان کیے گئے ہیں) کے استعمال کے ذریعے کلیئر سائننگ (opens in a new tab) سے حل کیا جاتا ہے۔
ERC-7730 تصریح ٹرانزیکشن ڈسکرپٹرز (جو اکثر JSON فائلوں کے طور پر تشکیل دیے جاتے ہیں) کا استعمال کرتی ہے تاکہ ABIs اور سٹرکچرڈ پیغامات، جیسے EVM ٹرانزیکشن کال ڈیٹا، EIP-712 پیغامات، اور EIP-4337 یوزر آپریشنز میں پائے جانے والے ڈیٹا کو مزید بہتر بنایا جا سکے۔ ڈیولپرز ان ڈسکرپٹرز کا استعمال مخصوص ٹرانزیکشن ویری ایبلز کو براہ راست فارمیٹنگ ٹیمپلیٹس میں میپ کرنے کے لیے کرتے ہیں، جس سے یہ یقینی بنتا ہے کہ بنیادی ڈیٹا ایپلیکیشنز کے لیے مشین کے پڑھنے کے قابل رہے۔
فرنٹ اینڈ پر، والٹس اس فارمیٹنگ سیاق و سباق کا استعمال غیر واضح بائٹ کوڈ کو واضح، انسان کے پڑھنے کے قابل معلومات میں ترجمہ کرنے کے لیے کرتے ہیں۔ ٹوکن کے پتوں جیسی قدروں کو خود بخود تسلیم شدہ ٹکرز میں، یا رقوم کو اعشاریہ میں حل کر کے، صارفین کو دستخط کرنے سے پہلے ٹرانزیکشن کے درست ارادے کا سادہ زبان میں خلاصہ پیش کیا جاتا ہے (مثلاً، '1000 USDC کا کم از کم 0.25 WETH کے لیے تبادلہ کریں')
ٹرانزیکشنز کی اقسام
ایتھیریم پر ٹرانزیکشنز کی چند مختلف اقسام ہیں:
- باقاعدہ ٹرانزیکشنز: ایک اکاؤنٹ سے دوسرے اکاؤنٹ میں ٹرانزیکشن۔
- کنٹریکٹ کی تعیناتی کی ٹرانزیکشنز: 'to' (وصول کنندہ) کے پتے کے بغیر ایک ٹرانزیکشن، جہاں ڈیٹا فیلڈ کو کنٹریکٹ کوڈ کے لیے استعمال کیا جاتا ہے۔
- کنٹریکٹ کا نفاذ: ایک ٹرانزیکشن جو تعینات شدہ سمارٹ کنٹریکٹ کے ساتھ تعامل کرتی ہے۔ اس صورت میں، 'to' پتہ سمارٹ کنٹریکٹ کا پتہ ہوتا ہے۔
گیس پر
جیسا کہ ذکر کیا گیا ہے، ٹرانزیکشنز کو نافذ کرنے کے لیے گیس خرچ ہوتی ہے۔ سادہ منتقلی کی ٹرانزیکشنز کے لیے گیس کے 21,000 یونٹس درکار ہوتے ہیں۔
لہذا باب کو ایلس کو 190 gwei کی baseFeePerGas اور 10 gwei کی maxPriorityFeePerGas پر 1 ETH بھیجنے کے لیے، باب کو درج ذیل فیس ادا کرنی ہوگی:
(190 + 10) * 21000 = 4,200,000 gwei
--یا--
0.0042 ETH
باب کے اکاؤنٹ سے -1.0042 ETH کاٹے جائیں گے (ایلس کے لیے 1 ETH + گیس فیس میں 0.0042 ETH)
ایلس کے اکاؤنٹ میں +1.0 ETH جمع کیے جائیں گے
بنیادی فیس جلا دی جائے گی -0.00399 ETH
توثیق کار ٹپ رکھ لے گا +0.000210 ETH
خاکہ Ethereum EVM illustrated (opens in a new tab) سے ماخوذ ہے
ٹرانزیکشن میں استعمال نہ ہونے والی کوئی بھی گیس صارف کے اکاؤنٹ میں واپس کر دی جاتی ہے۔
سمارٹ کنٹریکٹ کے تعاملات
کسی بھی ایسی ٹرانزیکشن کے لیے گیس درکار ہوتی ہے جس میں سمارٹ کنٹریکٹ شامل ہو۔
سمارٹ کنٹریکٹس میں ایسے فنکشنز بھی ہو سکتے ہیں جنہیں view (opens in a new tab) یا pure (opens in a new tab) فنکشنز کہا جاتا ہے، جو کنٹریکٹ کی حالت کو تبدیل نہیں کرتے۔ اس طرح، کسی EOA سے ان فنکشنز کو کال کرنے کے لیے کسی گیس کی ضرورت نہیں ہوگی۔ اس صورتحال کے لیے بنیادی RPC کال eth_call ہے۔
eth_call کا استعمال کرتے ہوئے رسائی کے برعکس، ان view یا pure فنکشنز کو عام طور پر اندرونی طور پر بھی کال کیا جاتا ہے (یعنی، خود کنٹریکٹ سے یا کسی دوسرے کنٹریکٹ سے) جس پر گیس خرچ ہوتی ہے۔
ٹرانزیکشن کا لائف سائیکل
ایک بار ٹرانزیکشن جمع کرانے کے بعد درج ذیل ہوتا ہے:
- ایک ٹرانزیکشن ہیش کرپٹوگرافک طور پر تیار کیا جاتا ہے:
0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017 - پھر ٹرانزیکشن کو نیٹ ورک پر نشر کیا جاتا ہے اور ایک ٹرانزیکشن پول میں شامل کیا جاتا ہے جو دیگر تمام زیر التواء نیٹ ورک ٹرانزیکشنز پر مشتمل ہوتا ہے۔
- ٹرانزیکشن کی تصدیق کرنے اور اسے "کامیاب" سمجھنے کے لیے ایک توثیق کار کو آپ کی ٹرانزیکشن کا انتخاب کرنا چاہیے اور اسے ایک بلاک میں شامل کرنا چاہیے۔
- جیسے جیسے وقت گزرتا ہے آپ کی ٹرانزیکشن پر مشتمل بلاک کو "جواز یافتہ" اور پھر "حتمی" میں اپ گریڈ کر دیا جائے گا۔ یہ اپ گریڈز اس بات کو بہت زیادہ یقینی بناتے ہیں کہ آپ کی ٹرانزیکشن کامیاب رہی اور اسے کبھی تبدیل نہیں کیا جائے گا۔ ایک بار جب کوئی بلاک "حتمی" ہو جاتا ہے تو اسے صرف نیٹ ورک کی سطح کے حملے سے ہی تبدیل کیا جا سکتا ہے جس پر کئی اربوں ڈالر لاگت آئے گی۔
ایک بصری ڈیمو
آسٹن کو ٹرانزیکشنز، گیس، اور کان کنی کے بارے میں بتاتے ہوئے دیکھیں۔
ٹائپڈ ٹرانزیکشن انویلپ
ایتھیریم میں اصل میں ٹرانزیکشنز کے لیے ایک ہی فارمیٹ تھا۔ ہر ٹرانزیکشن میں ایک نانس، گیس کی قیمت، گیس کی حد، وصول کنندہ کا پتہ، قدر، ڈیٹا، v، r، اور s شامل تھے۔ یہ فیلڈز RLP-انکوڈ شدہ ہیں، جو کچھ اس طرح نظر آتے ہیں:
RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])
ایتھیریم نے ٹرانزیکشنز کی متعدد اقسام کو سپورٹ کرنے کے لیے ترقی کی ہے تاکہ نئی خصوصیات جیسے کہ رسائی کی فہرستوں اور EIP-1559 (opens in a new tab) کو پرانے ٹرانزیکشن فارمیٹس کو متاثر کیے بغیر لاگو کیا جا سکے۔
EIP-2718 (opens in a new tab) وہ ہے جو اس رویے کی اجازت دیتا ہے۔ ٹرانزیکشنز کی تشریح اس طرح کی جاتی ہے:
TransactionType || TransactionPayload
جہاں فیلڈز کی تعریف اس طرح کی گئی ہے:
TransactionType- 0 اور 0x7f کے درمیان ایک عدد، کل 128 ممکنہ ٹرانزیکشن اقسام کے لیے۔TransactionPayload- ٹرانزیکشن کی قسم کے ذریعے بیان کردہ ایک صوابدیدی بائٹ سرنی (byte array)۔
TransactionType قدر کی بنیاد پر، ایک ٹرانزیکشن کو اس طرح درجہ بند کیا جا سکتا ہے:
-
ٹائپ 0 (لیگیسی) ٹرانزیکشنز: ایتھیریم کے آغاز سے استعمال ہونے والا اصل ٹرانزیکشن فارمیٹ۔ ان میں EIP-1559 (opens in a new tab) کی خصوصیات شامل نہیں ہیں جیسے کہ متحرک گیس فیس کا حساب کتاب یا سمارٹ کنٹریکٹس کے لیے رسائی کی فہرستیں۔ لیگیسی ٹرانزیکشنز میں ان کی سیریلائزڈ شکل میں ان کی قسم کی نشاندہی کرنے والے مخصوص سابقے (prefix) کی کمی ہوتی ہے، جو Recursive Length Prefix (RLP) انکوڈنگ کا استعمال کرتے وقت بائٹ
0xf8سے شروع ہوتی ہیں۔ ان ٹرانزیکشنز کے لیے TransactionType کی قدر0x0ہے۔ -
ٹائپ 1 ٹرانزیکشنز: ایتھیریم کے برلن اپ گریڈ کے حصے کے طور پر EIP-2930 (opens in a new tab) میں متعارف کرائی گئی، ان ٹرانزیکشنز میں ایک
accessListپیرامیٹر شامل ہوتا ہے۔ یہ فہرست ان پتوں اور سٹوریج کیز کی وضاحت کرتی ہے جن تک ٹرانزیکشن رسائی کی توقع رکھتی ہے، جس سے سمارٹ کنٹریکٹس پر مشتمل پیچیدہ ٹرانزیکشنز کے لیے ممکنہ طور پر گیس کے اخراجات کو کم کرنے میں مدد ملتی ہے۔ EIP-1559 فیس مارکیٹ کی تبدیلیاں ٹائپ 1 ٹرانزیکشنز میں شامل نہیں ہیں۔ ٹائپ 1 ٹرانزیکشنز میں ایکyParityپیرامیٹر بھی شامل ہوتا ہے، جو یا تو0x0یا0x1ہو سکتا ہے، جو secp256k1 دستخط کی y-ویلیو کی برابری (parity) کی نشاندہی کرتا ہے۔ ان کی شناخت بائٹ0x01سے شروع ہونے سے ہوتی ہے، اور ان کی TransactionType قدر0x1ہے۔ -
ٹائپ 2 ٹرانزیکشنز، جنہیں عام طور پر EIP-1559 ٹرانزیکشنز کہا جاتا ہے، وہ ٹرانزیکشنز ہیں جو ایتھیریم کے لندن اپ گریڈ میں EIP-1559 (opens in a new tab) میں متعارف کرائی گئی تھیں۔ یہ ایتھیریم نیٹ ورک پر معیاری ٹرانزیکشن کی قسم بن گئی ہیں۔ یہ ٹرانزیکشنز ایک نیا فیس مارکیٹ میکانزم متعارف کراتی ہیں جو لین دین کی فیس کو بنیادی فیس اور ترجیحی فیس میں الگ کر کے پیشین گوئی کو بہتر بناتا ہے۔ یہ بائٹ
0x02سے شروع ہوتی ہیں اور ان میںmaxPriorityFeePerGasاورmaxFeePerGasجیسی فیلڈز شامل ہوتی ہیں۔ ٹائپ 2 ٹرانزیکشنز اب اپنی لچک اور کارکردگی کی وجہ سے ڈیفالٹ ہیں، خاص طور پر نیٹ ورک کے زیادہ ہجوم کے ادوار میں ان کی اس صلاحیت کی وجہ سے پسند کی جاتی ہیں کہ یہ صارفین کو لین دین کی فیس کو زیادہ پیشین گوئی کے ساتھ منظم کرنے میں مدد کرتی ہیں۔ ان ٹرانزیکشنز کے لیے TransactionType کی قدر0x2ہے۔ -
ٹائپ 3 (بلاب) ٹرانزیکشنز کو ایتھیریم کے ڈینکون اپ گریڈ کے حصے کے طور پر EIP-4844 (opens in a new tab) میں متعارف کرایا گیا تھا۔ یہ ٹرانزیکشنز "بلاب" ڈیٹا (Binary Large Objects) کو زیادہ مؤثر طریقے سے سنبھالنے کے لیے بنائی گئی ہیں، خاص طور پر ایتھیریم نیٹ ورک پر کم قیمت پر ڈیٹا پوسٹ کرنے کا طریقہ فراہم کر کے لیئر ۲ (l2) رول اپس کو فائدہ پہنچاتی ہیں۔ بلاب ٹرانزیکشنز میں اضافی فیلڈز شامل ہوتی ہیں جیسے
blobVersionedHashes،maxFeePerBlobGas، اورblobGasPrice۔ یہ بائٹ0x03سے شروع ہوتی ہیں، اور ان کی TransactionType قدر0x3ہے۔ بلاب ٹرانزیکشنز ایتھیریم کی ڈیٹا کی دستیابی اور اسکیلنگ کی صلاحیتوں میں نمایاں بہتری کی نمائندگی کرتی ہیں۔ -
ٹائپ 4 ٹرانزیکشنز کو ایتھیریم کے پیکٹرا اپ گریڈ کے حصے کے طور پر EIP-7702 (opens in a new tab) میں متعارف کرایا گیا تھا۔ یہ ٹرانزیکشنز اکاؤنٹ کی تجرید کے ساتھ آگے کی طرف مطابقت رکھنے (forward-compatible) کے لیے بنائی گئی ہیں۔ یہ EOAs کو اپنی اصل فعالیت سے سمجھوتہ کیے بغیر عارضی طور پر سمارٹ کنٹریکٹ اکاؤنٹس کی طرح برتاؤ کرنے کی اجازت دیتی ہیں۔ ان میں ایک
authorization_listپیرامیٹر شامل ہوتا ہے، جو اس سمارٹ کنٹریکٹ کی وضاحت کرتا ہے جسے EOA اپنا اختیار سونپتا ہے۔ ٹرانزیکشن کے بعد، EOA کے کوڈ فیلڈ میں تفویض کردہ سمارٹ کنٹریکٹ کا پتہ ہوگا۔
مزید مطالعہ
کسی ایسے کمیونٹی وسیلے کے بارے میں جانتے ہیں جس نے آپ کی مدد کی ہو؟ اس صفحے میں ترمیم کریں اور اسے شامل کریں!