মূল কন্টেন্টে যান
Change page

EVM-এর জন্য অপকোড

পেজ সর্বশেষ আপডেট: 11 সেপ্টেম্বর, 2025

ওভারভিউ

এটি wolflo/evm-opcodes (opens in a new tab)-এ থাকা EVM রেফারেন্স পেজের একটি আপডেট করা সংস্করণ। এছাড়াও এটি Yellow Paper (opens in a new tab), Jello Paper (opens in a new tab), এবং geth (opens in a new tab) ইমপ্লিমেন্টেশন থেকে নেওয়া হয়েছে। এটি একটি সহজলভ্য রেফারেন্স হিসেবে তৈরি করা হয়েছে, তবে এটি খুব বেশি কঠোর বা বিস্তারিত নয়। আপনি যদি সঠিকতা সম্পর্কে নিশ্চিত হতে চান এবং প্রতিটি এজ কেস সম্পর্কে সচেতন থাকতে চান, তবে Jello Paper বা একটি ক্লায়েন্ট ইমপ্লিমেন্টেশন ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

একটি ইন্টারেক্টিভ রেফারেন্স খুঁজছেন? evm.codes (opens in a new tab) দেখুন।

ডাইনামিক গ্যাস খরচের অপারেশনগুলোর জন্য, gas.md (opens in a new tab) দেখুন।

💡 কুইক টিপ: সম্পূর্ণ লাইন দেখতে, ডেস্কটপে অনুভূমিকভাবে স্ক্রোল করতে [shift] + scroll ব্যবহার করুন।

StackNameGasInitial StackResulting StackMem / StorageNotes
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 লেস-দ্যান (ছোট)
11GT3a, ba > buint256 গ্রেটার-দ্যান (বড়)
12SLT3a, ba < bint256 লেস-দ্যান (ছোট)
13SGT3a, ba > bint256 গ্রেটার-দ্যান (বড়)
14EQ3a, ba == b(u)int256 সমতা
15ISZERO3aa == 0(u)int256 ইজ-জিরো (শূন্য কিনা)
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যে এডড্রেস থেকে লেনদেনটি (tx) শুরু হয়েছে
33CALLER2.msg.sendermsg প্রেরকের এডড্রেস
34CALLVALUE2.msg.valuemsg ভ্যালু, wei তে
35CALLDATALOAD3idxmsg.data[idx:idx+32]msg ডাটার ইনডেক্স idx থেকে শব্দ (word) পড়া
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)addr এ থাকা কোডের আকার, বাইটে
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বর্তমান চেইন আইডি (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 এ মেমরি থেকে শব্দ (word) পড়া
52MSTORE3* (opens in a new tab)ost, val.mem[ost:ost+32] := valমেমরিতে একটি শব্দ (word) লেখা
53MSTORE83* (opens in a new tab)ost, val.mem[ost] := val && 0xFFমেমরিতে একটি একক বাইট লেখা
54SLOADA6 (opens in a new tab)keystorage[key]স্টোরেজ থেকে শব্দ (word) পড়া
55SSTOREA7 (opens in a new tab)key, val.storage[key] := valস্টোরেজে শব্দ (word) লেখা
56JUMP8dst.$pc := dst চিহ্নিত করে যে pc শুধুমাত্র তখনই অ্যাসাইন করা হয় যদি dst একটি বৈধ jumpdest হয়
57JUMPI10dst, condition.$pc := condition ? dst : $pc + 1
58PC2.$pcপ্রোগ্রাম কাউন্টার
59MSIZE2.len(mem)বর্তমান এক্সিকিউশন কনটেক্সটে মেমরির আকার, বাইটে
5AGAS2.gasRemaining
5BJUMPDEST1বৈধ জাম্প গন্তব্য চিহ্নিত করাএকটি বৈধ জাম্প গন্তব্য, উদাহরণস্বরূপ এমন একটি জাম্প গন্তব্য যা পুশ ডাটার ভিতরে নেই
5CTLOAD100keytstorage[key]ট্রানজিয়েন্ট স্টোরেজ থেকে শব্দ (word) পড়া (EIP-1153 (opens in a new tab))
5DTSTORE100key, val.tstorage[key] := valট্রানজিয়েন্ট স্টোরেজে শব্দ (word) লেখা (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.uint8স্ট্যাকে 1-বাইট মান পুশ করা
61PUSH23.uint16স্ট্যাকে 2-বাইট মান পুশ করা
62PUSH33.uint24স্ট্যাকে 3-বাইট মান পুশ করা
63PUSH43.uint32স্ট্যাকে 4-বাইট মান পুশ করা
64PUSH53.uint40স্ট্যাকে 5-বাইট মান পুশ করা
65PUSH63.uint48স্ট্যাকে 6-বাইট মান পুশ করা
66PUSH73.uint56স্ট্যাকে 7-বাইট মান পুশ করা
67PUSH83.uint64স্ট্যাকে 8-বাইট মান পুশ করা
68PUSH93.uint72স্ট্যাকে 9-বাইট মান পুশ করা
69PUSH103.uint80স্ট্যাকে 10-বাইট মান পুশ করা
6APUSH113.uint88স্ট্যাকে 11-বাইট মান পুশ করা
6BPUSH123.uint96স্ট্যাকে 12-বাইট মান পুশ করা
6CPUSH133.uint104স্ট্যাকে 13-বাইট মান পুশ করা
6DPUSH143.uint112স্ট্যাকে 14-বাইট মান পুশ করা
6EPUSH153.uint120স্ট্যাকে 15-বাইট মান পুশ করা
6FPUSH163.uint128স্ট্যাকে 16-বাইট মান পুশ করা
70PUSH173.uint136স্ট্যাকে 17-বাইট মান পুশ করা
71PUSH183.uint144স্ট্যাকে 18-বাইট মান পুশ করা
72PUSH193.uint152স্ট্যাকে 19-বাইট মান পুশ করা
73PUSH203.uint160স্ট্যাকে 20-বাইট মান পুশ করা
74PUSH213.uint168স্ট্যাকে 21-বাইট মান পুশ করা
75PUSH223.uint176স্ট্যাকে 22-বাইট মান পুশ করা
76PUSH233.uint184স্ট্যাকে 23-বাইট মান পুশ করা
77PUSH243.uint192স্ট্যাকে 24-বাইট মান পুশ করা
78PUSH253.uint200স্ট্যাকে 25-বাইট মান পুশ করা
79PUSH263.uint208স্ট্যাকে 26-বাইট মান পুশ করা
7APUSH273.uint216স্ট্যাকে 27-বাইট মান পুশ করা
7BPUSH283.uint224স্ট্যাকে 28-বাইট মান পুশ করা
7CPUSH293.uint232স্ট্যাকে 29-বাইট মান পুশ করা
7DPUSH303.uint240স্ট্যাকে 30-বাইট মান পুশ করা
7EPUSH313.uint248স্ট্যাকে 31-বাইট মান পুশ করা
7FPUSH323.uint256স্ট্যাকে 32-বাইট মান পুশ করা
80DUP13aa, aস্ট্যাকের 1ম মান ক্লোন করা
81DUP23_, aa, _, aস্ট্যাকের 2য় মান ক্লোন করা
82DUP33_, _, aa, _, _, aস্ট্যাকের 3য় মান ক্লোন করা
83DUP43_, _, _, aa, _, _, _, aস্ট্যাকের 4র্থ মান ক্লোন করা
84DUP53..., aa, ..., aস্ট্যাকের 5ম মান ক্লোন করা
85DUP63..., aa, ..., aস্ট্যাকের 6ষ্ঠ মান ক্লোন করা
86DUP73..., aa, ..., aস্ট্যাকের 7ম মান ক্লোন করা
87DUP83..., aa, ..., aস্ট্যাকের 8ম মান ক্লোন করা
88DUP93..., aa, ..., aস্ট্যাকের 9ম মান ক্লোন করা
89DUP103..., aa, ..., aস্ট্যাকের 10ম মান ক্লোন করা
8ADUP113..., aa, ..., aস্ট্যাকের 11তম মান ক্লোন করা
8BDUP123..., aa, ..., aস্ট্যাকের 12তম মান ক্লোন করা
8CDUP133..., aa, ..., aস্ট্যাকের 13তম মান ক্লোন করা
8DDUP143..., aa, ..., aস্ট্যাকের 14তম মান ক্লোন করা
8EDUP153..., aa, ..., aস্ট্যাকের 15তম মান ক্লোন করা
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.addr এ সমস্ত ETH পাঠায়; যদি একটি কন্ট্রাক্ট তৈরি হওয়ার একই লেনদেনে এক্সিকিউট করা হয় তবে এটি কন্ট্রাক্টটি ধ্বংস করে দেয়

এই আর্টিকেলটি কি সহায়ক ছিল?