முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
Change page

EVM-க்கான செயல்பாட்டுக் குறியீடுகள்

மேலோட்டம்

இது wolflo/evm-opcodes (புதிய தாவலில் திறக்கப்படும்) இல் உள்ள EVM குறிப்புப் பக்கத்தின் புதுப்பிக்கப்பட்ட பதிப்பாகும். மேலும் இது மஞ்சள் அறிக்கை (புதிய தாவலில் திறக்கப்படும்), Jello Paper (புதிய தாவலில் திறக்கப்படும்) மற்றும் geth (புதிய தாவலில் திறக்கப்படும்) செயலாக்கம் ஆகியவற்றிலிருந்தும் எடுக்கப்பட்டது. இது எளிதில் அணுகக்கூடிய ஒரு குறிப்புக்காக வடிவமைக்கப்பட்டுள்ளது, ஆனால் இது மிகவும் துல்லியமானது அல்ல. நீங்கள் சரியான தன்மையை உறுதிப்படுத்தவும், ஒவ்வொரு விளிம்பு நிலையையும் (edge case) அறிந்திருக்கவும் விரும்பினால், Jello Paper அல்லது ஒரு கிளையண்ட் செயலாக்கத்தைப் பயன்படுத்துவது நல்லது.

ஊடாடும் குறிப்பைத் தேடுகிறீர்களா? evm.codes (புதிய தாவலில் திறக்கப்படும்) ஐப் பார்க்கவும்.

மாறும் எரிவாயு செலவுகளைக் கொண்ட செயல்பாடுகளுக்கு, gas.md (புதிய தாவலில் திறக்கப்படும்) ஐப் பார்க்கவும்.

💡 விரைவான குறிப்பு: முழு வரிகளையும் காண, டெஸ்க்டாப்பில் கிடைமட்டமாக ஸ்க்ரோல் செய்ய [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 (புதிய தாவலில் திறக்கப்படும்)a, ba ** buint256 அடுக்கு மாடுலோ 2**256
0BSIGNEXTEND5b, xSIGNEXTEND(x, b)(b+1) பைட்டுகளிலிருந்து 32 பைட்டுகளுக்கு xsign extend (புதிய தாவலில் திறக்கப்படும்) செய்
0C-0Fதவறானது
10LT3a, ba < buint256 விடக் குறைவானது
11GT3a, ba > buint256 விடப் பெரியது
12SLT3a, ba < bint256 விடக் குறைவானது
13SGT3a, ba > bint256 விடப் பெரியது
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 (புதிய தாவலில் திறக்கப்படும்)ost, lenkeccak256(mem[ost:ost+len-1])keccak256
21-2Fதவறானது
30ADDRESS2.address(this)செயல்படுத்தப்படும் ஒப்பந்தத்தின் முகவரி
31BALANCEA5 (புதிய தாவலில் திறக்கப்படும்)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 (புதிய தாவலில் திறக்கப்படும்)dstOst, ost, len.mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1]msg தரவை நகலெடு
38CODESIZE2.len(this.code)செயல்படுத்தப்படும் ஒப்பந்தத்தின் குறியீட்டின் நீளம், பைட்டுகளில்
39CODECOPYA3 (புதிய தாவலில் திறக்கப்படும்)dstOst, ost, len.mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1]
3AGASPRICE2.tx.gaspriceபரிவர்த்தனையின் எரிவாயு விலை, ஒரு யூனிட் எரிவாயுவிற்கு Wei இல் ** (புதிய தாவலில் திறக்கப்படும்)
3BEXTCODESIZEA5 (புதிய தாவலில் திறக்கப்படும்)addrlen(addr.code)addr இல் உள்ள குறியீட்டின் அளவு, பைட்டுகளில்
3CEXTCODECOPYA4 (புதிய தாவலில் திறக்கப்படும்)addr, dstOst, ost, len.mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1]addr இலிருந்து குறியீட்டை நகலெடு
3DRETURNDATASIZE2.sizeகடைசி வெளிப்புற அழைப்பிலிருந்து திரும்பிய தரவின் அளவு, பைட்டுகளில்
3ERETURNDATACOPYA3 (புதிய தாவலில் திறக்கப்படும்)dstOst, ost, len.mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1]கடைசி வெளிப்புற அழைப்பிலிருந்து திரும்பிய தரவை நகலெடு
3FEXTCODEHASHA5 (புதிய தாவலில் திறக்கப்படும்)addrhashhash = addr.exists ? keccak256(addr.code) : 0
40BLOCKHASH20blockNumblockHash(blockNum)
41COINBASE2.block.coinbaseதற்போதைய தொகுதியின் முன்மொழிபவர் முகவரி
42TIMESTAMP2.block.timestampதற்போதைய தொகுதியின் நேரமுத்திரை
43NUMBER2.block.numberதற்போதைய தொகுதியின் எண்
44PREVRANDAO2.சீரற்றதன்மை பீக்கான்சீரற்றதன்மை பீக்கான்
45GASLIMIT2.block.gaslimitதற்போதைய தொகுதியின் எரிவாயு வரம்பு
46CHAINID2.chain_idதற்போதைய சங்கிலி ஐடியை (புதிய தாவலில் திறக்கப்படும்) அடுக்கில் தள்ளு
47SELFBALANCE5.address(this).balanceசெயல்படுத்தப்படும் ஒப்பந்தத்தின் இருப்பு, Wei இல்
48BASEFEE2.block.basefeeதற்போதைய தொகுதியின் அடிப்படை கட்டணம்
49BLOBHASH3idxtx.blob_versioned_hashes[idx]EIP-4844 (புதிய தாவலில் திறக்கப்படும்)
4ABLOBBASEFEE2.block.blobbasefeeதற்போதைய தொகுதியின் தரவுத் திரளை அடிப்படை கட்டணம் (EIP-7516 (புதிய தாவலில் திறக்கப்படும்))
4B-4Fதவறானது
50POP2_anon.அடுக்கின் மேலிருந்து உருப்படியை அகற்றி அதை நிராகரி
51MLOAD3* (புதிய தாவலில் திறக்கப்படும்)ostmem[ost:ost+32]ost ஆஃப்செட்டில் உள்ள நினைவகத்திலிருந்து சொல்லைப் படி
52MSTORE3* (புதிய தாவலில் திறக்கப்படும்)ost, val.mem[ost:ost+32] := valநினைவகத்தில் ஒரு சொல்லை எழுது
53MSTORE83* (புதிய தாவலில் திறக்கப்படும்)ost, val.mem[ost] := val && 0xFFநினைவகத்தில் ஒரு பைட்டை எழுது
54SLOADA6 (புதிய தாவலில் திறக்கப்படும்)keystorage[key]சேமிப்பகத்திலிருந்து சொல்லைப் படி
55SSTOREA7 (புதிய தாவலில் திறக்கப்படும்)key, val.storage[key] := valசேமிப்பகத்தில் சொல்லை எழுது
56JUMP8dst.$pc := dst dst ஒரு செல்லுபடியாகும் jumpdest ஆக இருந்தால் மட்டுமே pc ஒதுக்கப்படும் என்பதைக் குறிக்கவும்
57JUMPI10dst, condition.$pc := condition ? dst : $pc + 1
58PC2.$pcநிரல் கவுண்டர்
59MSIZE2.len(mem)தற்போதைய செயலாக்க சூழலில் நினைவகத்தின் அளவு, பைட்டுகளில்
5AGAS2.gasRemaining
5BJUMPDEST1செல்லுபடியாகும் ஜம்ப் இலக்கைக் குறிக்கவும்ஒரு செல்லுபடியாகும் ஜம்ப் இலக்கு, எடுத்துக்காட்டாக புஷ் தரவுக்குள் இல்லாத ஜம்ப் இலக்கு
5CTLOAD100keytstorage[key]மாறுநிலை சேமிப்பகத்திலிருந்து சொல்லைப் படி (EIP-1153 (புதிய தாவலில் திறக்கப்படும்))
5DTSTORE100key, val.tstorage[key] := valமாறுநிலை சேமிப்பகத்தில் சொல்லை எழுது (EIP-1153 (புதிய தாவலில் திறக்கப்படும்))
5EMCOPY3+3*words+A0 (புதிய தாவலில் திறக்கப்படும்)dstOst, ost, len.mem[dstOst] := mem[ost:ost+len]நினைவகத்தை ஒரு பகுதியிலிருந்து மற்றொரு பகுதிக்கு நகலெடு (EIP-5656 (புதிய தாவலில் திறக்கப்படும்))
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அடுக்கில் உள்ள 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 (புதிய தாவலில் திறக்கப்படும்)ost, len.LOG0(memory[ost:ost+len-1])
A1LOG1A8 (புதிய தாவலில் திறக்கப்படும்)ost, len, topic0.LOG1(memory[ost:ost+len-1], topic0)
A2LOG2A8 (புதிய தாவலில் திறக்கப்படும்)ost, len, topic0, topic1.LOG2(memory[ost:ost+len-1], topic0, topic1)
A3LOG3A8 (புதிய தாவலில் திறக்கப்படும்)ost, len, topic0, topic1, topic2.LOG3(memory[ost:ost+len-1], topic0, topic1, topic2)
A4LOG4A8 (புதிய தாவலில் திறக்கப்படும்)ost, len, topic0, topic1, topic2, topic3.LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3)
A5-EFதவறானது
F0CREATEA9 (புதிய தாவலில் திறக்கப்படும்)val, ost, lenaddraddr = keccak256(rlp([address(this), this.nonce]))
F1CALLAA (புதிய தாவலில் திறக்கப்படும்)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F2CALLCODEAA (புதிய தாவலில் திறக்கப்படும்)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] = returndataDELEGATECALL ஐப் போலவே, ஆனால் அசல் msg.sender மற்றும் msg.value ஐப் பரப்பாது
F3RETURN0* (புதிய தாவலில் திறக்கப்படும்)ost, len.return mem[ost:ost+len-1]
F4DELEGATECALLAA (புதிய தாவலில் திறக்கப்படும்)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F5CREATE2A9 (புதிய தாவலில் திறக்கப்படும்)val, ost, len, saltaddraddr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:]
F6-F9தவறானது
FASTATICCALLAA (புதிய தாவலில் திறக்கப்படும்)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
FB-FCதவறானது
FDREVERT0* (புதிய தாவலில் திறக்கப்படும்)ost, len.revert(mem[ost:ost+len-1])
FEINVALIDAF (புதிய தாவலில் திறக்கப்படும்)நியமிக்கப்பட்ட தவறான செயல்பாட்டுக் குறியீடு - EIP-141 (புதிய தாவலில் திறக்கப்படும்)
FFSELFDESTRUCTAB (புதிய தாவலில் திறக்கப்படும்)addr.அனைத்து ETH ஐயும் addr க்கு அனுப்புகிறது; ஒரு ஒப்பந்தம் உருவாக்கப்பட்ட அதே பரிவர்த்தனையில் செயல்படுத்தப்பட்டால் அது ஒப்பந்தத்தை அழிக்கிறது