مرکزی مواد پر جائیں
Change page

⁦EVM⁩ کے لیے آپ کوڈز

جائزہ

یہ wolflo/evm-opcodes (opens in a new tab) پر موجود EVM حوالہ جاتی صفحہ کا اپ ڈیٹ شدہ ورژن ہے۔ اسے یلو پیپر (opens in a new tab)، جیلو پیپر (opens in a new tab)، اور geth (opens in a new tab) کی عمل درآمد سے بھی اخذ کیا گیا ہے۔ اس کا مقصد ایک قابل رسائی حوالہ فراہم کرنا ہے، لیکن یہ کوئی حتمی یا انتہائی تفصیلی دستاویز نہیں ہے۔ اگر آپ درستگی کا یقین کرنا چاہتے ہیں اور ہر ایک ایج کیس سے باخبر رہنا چاہتے ہیں، تو جیلو پیپر یا کسی کلائنٹ کی عمل درآمد کا استعمال کرنا مناسب ہے۔

کیا آپ ایک انٹرایکٹو حوالہ تلاش کر رہے ہیں؟ evm.codes (opens in a new tab) دیکھیں۔

متحرک گیس کی لاگت والے آپریشنز کے لیے، gas.md (opens in a new tab) دیکھیں۔

💡 فوری مشورہ: پوری لائنیں دیکھنے کے لیے، ڈیسک ٹاپ پر افقی طور پر اسکرول کرنے کے لیے [shift] + scroll کا استعمال کریں۔

اسٹیکنامگیسابتدائی اسٹیکنتیجتاً اسٹیکمیموری / اسٹوریجنوٹس
00STOP0عمل درآمد روکیں
01ADD3a, ba + b(u)int256 جمع موڈیولو 2**256
02MUL5a, ba * b(u)int256 ضرب موڈیولو 2**256
03SUB3a, ba - b(u)int256 تفریق موڈیولو 2**256
04DIV5a, ba // buint256 تقسیم
05SDIV5a, ba // bint256 تقسیم
06MOD5a, ba % buint256 موڈیولس
07SMOD5a, ba % bint256 موڈیولس
08ADDMOD8a, b, N(a + b) % N(u)int256 جمع موڈیولو N
09MULMOD8a, b, N(a * b) % N(u)int256 ضرب موڈیولو N
0AEXPA1 (opens in a new tab)a, ba ** buint256 ایکسپونینشی ایشن موڈیولو 2**256
0BSIGNEXTEND5b, xSIGNEXTEND(x, b)سائن ایکسٹینڈ (opens in a new tab) کریں x کو (b+1) بائٹس سے 32 بائٹس تک
0C-0Fغیر معتبر
10LT3a, ba < buint256 کم ہے (less-than)
11GT3a, ba > buint256 زیادہ ہے (greater-than)
12SLT3a, ba < bint256 کم ہے (less-than)
13SGT3a, ba > bint256 زیادہ ہے (greater-than)
14EQ3a, ba == b(u)int256 برابری
15ISZERO3aa == 0(u)int256 صفر ہے (iszero)
16AND3a, ba && bبٹ وائز AND
17OR3a, ba || bبٹ وائز OR
18XOR3a, ba ^ bبٹ وائز XOR
19NOT3a~aبٹ وائز NOT
1ABYTE3i, x(x >> (248 - i * 8)) && 0xFF(u)int256 x کا iواں بائٹ، بائیں طرف سے
1BSHL3shift, valval << shiftبائیں شفٹ کریں
1CSHR3shift, valval >> shiftمنطقی دائیں شفٹ
1DSAR3shift, valval >> shiftریاضیاتی دائیں شفٹ
1E-1Fغیر معتبر
20KECCAK256A2 (opens in a new tab)ost, lenkeccak256(mem[ost:ost+len-1])keccak256
21-2Fغیر معتبر
30ADDRESS2.address(this)عمل درآمد کرنے والے کنٹریکٹ کا پتہ
31BALANCEA5 (opens in a new tab)addraddr.balanceبیلنس، Wei میں
32ORIGIN2.tx.originوہ پتہ جس نے ٹرانزیکشن شروع کی
33CALLER2.msg.sendermsg بھیجنے والے کا پتہ
34CALLVALUE2.msg.valuemsg کی قدر، Wei میں
35CALLDATALOAD3idxmsg.data[idx:idx+32]اشاریہ idx پر msg ڈیٹا سے لفظ پڑھیں
36CALLDATASIZE2.len(msg.data)msg ڈیٹا کی لمبائی، بائٹس میں
37CALLDATACOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1]msg ڈیٹا کاپی کریں
38CODESIZE2.len(this.code)عمل درآمد کرنے والے کنٹریکٹ کے کوڈ کی لمبائی، بائٹس میں
39CODECOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1]عمل درآمد کرنے والے کنٹریکٹ کا بائٹ کوڈ کاپی کریں
3AGASPRICE2.tx.gaspriceٹرانزیکشن کی گیس کی قیمت، Wei فی یونٹ گیس میں ** (opens in a new tab)
3BEXTCODESIZEA5 (opens in a new tab)addrlen(addr.code)پتہ پر کوڈ کا سائز، بائٹس میں
3CEXTCODECOPYA4 (opens in a new tab)addr, dstOst, ost, len.mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1]addr سے کوڈ کاپی کریں
3DRETURNDATASIZE2.sizeآخری بیرونی کال سے واپس کیے گئے ڈیٹا کا سائز، بائٹس میں
3ERETURNDATACOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1]آخری بیرونی کال سے واپس کیا گیا ڈیٹا کاپی کریں
3FEXTCODEHASHA5 (opens in a new tab)addrhashhash = addr.exists ? keccak256(addr.code) : 0
40BLOCKHASH20blockNumblockHash(blockNum)
41COINBASE2.block.coinbaseموجودہ بلاک کے تجویز کنندہ کا پتہ
42TIMESTAMP2.block.timestampموجودہ بلاک کا ٹائم اسٹیمپ
43NUMBER2.block.numberموجودہ بلاک کا نمبر
44PREVRANDAO2.randomness beaconبے ترتیبی بیکن
45GASLIMIT2.block.gaslimitموجودہ بلاک کی گیس کی حد
46CHAINID2.chain_idموجودہ چین کی شناخت (chain id) (opens in a new tab) کو اسٹیک پر پش کریں
47SELFBALANCE5.address(this).balanceعمل درآمد کرنے والے کنٹریکٹ کا بیلنس، Wei میں
48BASEFEE2.block.basefeeموجودہ بلاک کی بنیادی فیس
49BLOBHASH3idxtx.blob_versioned_hashes[idx]EIP-4844 (opens in a new tab)
4ABLOBBASEFEE2.block.blobbasefeeموجودہ بلاک کی بلاب بنیادی فیس (EIP-7516 (opens in a new tab))
4B-4Fغیر معتبر
50POP2_anon.اسٹیک کے اوپری حصے سے آئٹم ہٹائیں اور اسے ضائع کریں
51MLOAD3* (opens in a new tab)ostmem[ost:ost+32]آفسیٹ ost پر میموری سے لفظ پڑھیں
52MSTORE3* (opens in a new tab)ost, val.mem[ost:ost+32] := valمیموری میں ایک لفظ لکھیں
53MSTORE83* (opens in a new tab)ost, val.mem[ost] := val && 0xFFمیموری میں ایک بائٹ لکھیں
54SLOADA6 (opens in a new tab)keystorage[key]اسٹوریج سے لفظ پڑھیں
55SSTOREA7 (opens in a new tab)key, val.storage[key] := valاسٹوریج میں لفظ لکھیں
56JUMP8dst.$pc := dst نشان زد کرتا ہے کہ pc صرف تبھی تفویض کیا جاتا ہے اگر dst ایک درست jumpdest ہو
57JUMPI10dst, condition.$pc := condition ? dst : $pc + 1
58PC2.$pcپروگرام کاؤنٹر
59MSIZE2.len(mem)موجودہ عمل درآمد کے سیاق و سباق میں میموری کا سائز، بائٹس میں
5AGAS2.gasRemaining
5BJUMPDEST1ایک درست جمپ کی منزل، مثال کے طور پر ایک جمپ کی منزل جو پش ڈیٹا کے اندر نہ ہو
5CTLOAD100keytstorage[key]عارضی اسٹوریج سے لفظ پڑھیں (EIP-1153 (opens in a new tab))
5DTSTORE100key, val.tstorage[key] := valعارضی اسٹوریج میں لفظ لکھیں (EIP-1153 (opens in a new tab))
5EMCOPY3+3*words+A0 (opens in a new tab)dstOst, ost, len.mem[dstOst] := mem[ost:ost+len]میموری کو ایک جگہ سے دوسری جگہ کاپی کریں (EIP-5656 (opens in a new tab))
5FPUSH02.uint8مستقل قدر 0 کو اسٹیک پر پش کریں
60PUSH13.uint81-بائٹ کی قدر کو اسٹیک پر پش کریں
61PUSH23.uint162-بائٹ کی قدر کو اسٹیک پر پش کریں
62PUSH33.uint243-بائٹ کی قدر کو اسٹیک پر پش کریں
63PUSH43.uint324-بائٹ کی قدر کو اسٹیک پر پش کریں
64PUSH53.uint405-بائٹ کی قدر کو اسٹیک پر پش کریں
65PUSH63.uint486-بائٹ کی قدر کو اسٹیک پر پش کریں
66PUSH73.uint567-بائٹ کی قدر کو اسٹیک پر پش کریں
67PUSH83.uint648-بائٹ کی قدر کو اسٹیک پر پش کریں
68PUSH93.uint729-بائٹ کی قدر کو اسٹیک پر پش کریں
69PUSH103.uint8010-بائٹ کی قدر کو اسٹیک پر پش کریں
6APUSH113.uint8811-بائٹ کی قدر کو اسٹیک پر پش کریں
6BPUSH123.uint9612-بائٹ کی قدر کو اسٹیک پر پش کریں
6CPUSH133.uint10413-بائٹ کی قدر کو اسٹیک پر پش کریں
6DPUSH143.uint11214-بائٹ کی قدر کو اسٹیک پر پش کریں
6EPUSH153.uint12015-بائٹ کی قدر کو اسٹیک پر پش کریں
6FPUSH163.uint12816-بائٹ کی قدر کو اسٹیک پر پش کریں
70PUSH173.uint13617-بائٹ کی قدر کو اسٹیک پر پش کریں
71PUSH183.uint14418-بائٹ کی قدر کو اسٹیک پر پش کریں
72PUSH193.uint15219-بائٹ کی قدر کو اسٹیک پر پش کریں
73PUSH203.uint16020-بائٹ کی قدر کو اسٹیک پر پش کریں
74PUSH213.uint16821-بائٹ کی قدر کو اسٹیک پر پش کریں
75PUSH223.uint17622-بائٹ کی قدر کو اسٹیک پر پش کریں
76PUSH233.uint18423-بائٹ کی قدر کو اسٹیک پر پش کریں
77PUSH243.uint19224-بائٹ کی قدر کو اسٹیک پر پش کریں
78PUSH253.uint20025-بائٹ کی قدر کو اسٹیک پر پش کریں
79PUSH263.uint20826-بائٹ کی قدر کو اسٹیک پر پش کریں
7APUSH273.uint21627-بائٹ کی قدر کو اسٹیک پر پش کریں
7BPUSH283.uint22428-بائٹ کی قدر کو اسٹیک پر پش کریں
7CPUSH293.uint23229-بائٹ کی قدر کو اسٹیک پر پش کریں
7DPUSH303.uint24030-بائٹ کی قدر کو اسٹیک پر پش کریں
7EPUSH313.uint24831-بائٹ کی قدر کو اسٹیک پر پش کریں
7FPUSH323.uint25632-بائٹ کی قدر کو اسٹیک پر پش کریں
80DUP13aa, aاسٹیک پر پہلی قدر کا کلون بنائیں
81DUP23_, aa, _, aاسٹیک پر دوسری قدر کا کلون بنائیں
82DUP33_, _, aa, _, _, aاسٹیک پر تیسری قدر کا کلون بنائیں
83DUP43_, _, _, aa, _, _, _, aاسٹیک پر چوتھی قدر کا کلون بنائیں
84DUP53..., aa, ..., aاسٹیک پر پانچویں قدر کا کلون بنائیں
85DUP63..., aa, ..., aاسٹیک پر چھٹی قدر کا کلون بنائیں
86DUP73..., aa, ..., aاسٹیک پر ساتویں قدر کا کلون بنائیں
87DUP83..., aa, ..., aاسٹیک پر آٹھویں قدر کا کلون بنائیں
88DUP93..., aa, ..., aاسٹیک پر نویں قدر کا کلون بنائیں
89DUP103..., aa, ..., aاسٹیک پر دسویں قدر کا کلون بنائیں
8ADUP113..., aa, ..., aاسٹیک پر گیارہویں قدر کا کلون بنائیں
8BDUP123..., aa, ..., aاسٹیک پر بارہویں قدر کا کلون بنائیں
8CDUP133..., aa, ..., aاسٹیک پر تیرہویں قدر کا کلون بنائیں
8DDUP143..., aa, ..., aاسٹیک پر چودہویں قدر کا کلون بنائیں
8EDUP153..., aa, ..., aاسٹیک پر پندرہویں قدر کا کلون بنائیں
8FDUP163..., aa, ..., aاسٹیک پر 16ویں قدر کا کلون بنائیں
90SWAP13a, bb, a
91SWAP23a, _, bb, _, a
92SWAP33a, _, _, bb, _, _, a
93SWAP43a, _, _, _, bb, _, _, _, a
94SWAP53a, ..., bb, ..., a
95SWAP63a, ..., bb, ..., a
96SWAP73a, ..., bb, ..., a
97SWAP83a, ..., bb, ..., a
98SWAP93a, ..., bb, ..., a
99SWAP103a, ..., bb, ..., a
9ASWAP113a, ..., bb, ..., a
9BSWAP123a, ..., bb, ..., a
9CSWAP133a, ..., bb, ..., a
9DSWAP143a, ..., bb, ..., a
9ESWAP153a, ..., bb, ..., a
9FSWAP163a, ..., bb, ..., a
A0LOG0A8 (opens in a new tab)ost, len.LOG0(memory[ost:ost+len-1])
A1LOG1A8 (opens in a new tab)ost, len, topic0.LOG1(memory[ost:ost+len-1], topic0)
A2LOG2A8 (opens in a new tab)ost, len, topic0, topic1.LOG2(memory[ost:ost+len-1], topic0, topic1)
A3LOG3A8 (opens in a new tab)ost, len, topic0, topic1, topic2.LOG3(memory[ost:ost+len-1], topic0, topic1, topic2)
A4LOG4A8 (opens in a new tab)ost, len, topic0, topic1, topic2, topic3.LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3)
A5-EFغیر معتبر
F0CREATEA9 (opens in a new tab)val, ost, lenaddraddr = keccak256(rlp([address(this), this.nonce]))
F1CALLAA (opens in a new tab)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F2CALLCODEAA (opens in a new tab)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] = returndataDELEGATECALL کی طرح، لیکن اصل msg.sender اور msg.value کو آگے نہیں بڑھاتا
F3RETURN0* (opens in a new tab)ost, len.return mem[ost:ost+len-1]
F4DELEGATECALLAA (opens in a new tab)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F5CREATE2A9 (opens in a new tab)val, ost, len, saltaddraddr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:]
F6-F9غیر معتبر
FASTATICCALLAA (opens in a new tab)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
FB-FCغیر معتبر
FDREVERT0* (opens in a new tab)ost, len.revert(mem[ost:ost+len-1])
FEINVALIDAF (opens in a new tab)نامزد کردہ غیر معتبر آپ کوڈ - EIP-141 (opens in a new tab)
FFSELFDESTRUCTAB (opens in a new tab)addr.تمام ETH کو addr پر بھیجتا ہے؛ اگر اسی ٹرانزیکشن میں عمل درآمد کیا جائے جس میں کنٹریکٹ بنایا گیا تھا تو یہ کنٹریکٹ کو تباہ کر دیتا ہے