ABI 및 Bytecode 추출
컴파일한 결과에서 ABI 및 Bytecode를 추출합니다.
사전 조건
Smart Contract의 작성 및 컴파일이 필요합니다.
ABI 및 Bytecode 추출
ABI 추출
1. 컴파일 결과의 CONTRACT 정보 중 ABI 아이콘을 클릭합니다.

2. 복사한 ABI 내용을 별도의 텍스트 에디터에 붙여 놓습니다.
[
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "num",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
Bytecode 추출
1. 다시 Remix로 돌아가서, Bytecode 아이콘을 클릭합니다.

2. 복사한 Bytecode 내용 중 "object" 내용만 별도의 텍스트 에디터에 붙여 놓습니다.
# API 이 중에서 "object"내용만 가져옵니다.
{
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506101df806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100f0565b60405180910390f35b610073600480360381019061006e91906100b4565b61007e565b005b60008054905090565b8060008190555060008081548092919061009790610115565b919050555050565b6000813590506100ae81610192565b92915050565b6000602082840312156100ca576100c961018d565b5b60006100d88482850161009f565b91505092915050565b6100ea8161010b565b82525050565b600060208201905061010560008301846100e1565b92915050565b6000819050919050565b60006101208261010b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156101535761015261015e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61019b8161010b565b81146101a657600080fd5b5056fea2646970667358221220caa09f9c7fefbcfc22c2f478cf3546394bf3465feb2d8164887e9e53e3ccb35c64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xB4 JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x97 SWAP1 PUSH2 0x115 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE DUP2 PUSH2 0x192 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCA JUMPI PUSH2 0xC9 PUSH2 0x18D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD8 DUP5 DUP3 DUP6 ADD PUSH2 0x9F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEA DUP2 PUSH2 0x10B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x105 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 PUSH2 0x10B JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x153 JUMPI PUSH2 0x152 PUSH2 0x15E JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19B DUP2 PUSH2 0x10B JUMP JUMPDEST DUP2 EQ PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA LOG0 SWAP16 SWAP13 PUSH32 0xEFBCFC22C2F478CF3546394BF3465FEB2D8164887E9E53E3CCB35C64736F6C63 NUMBER STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "141:374:0:-:0;;;;;;;;;;;;;;;;;;;"
}
3. 다음은 텍스트 에디터에 복사한 ABI 및 Bytecode(object) 내용입니다.
# ABI
[
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "num",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
# Bytecode(object)
"object": "608060405234801561001057600080fd5b506101df806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100f0565b60405180910390f35b610073600480360381019061006e91906100b4565b61007e565b005b60008054905090565b8060008190555060008081548092919061009790610115565b919050555050565b6000813590506100ae81610192565b92915050565b6000602082840312156100ca576100c961018d565b5b60006100d88482850161009f565b91505092915050565b6100ea8161010b565b82525050565b600060208201905061010560008301846100e1565b92915050565b6000819050919050565b60006101208261010b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156101535761015261015e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b61019b8161010b565b81146101a657600080fd5b5056fea2646970667358221220caa09f9c7fefbcfc22c2f478cf3546394bf3465feb2d8164887e9e53e3ccb35c64736f6c63430008070033",
Last updated
Was this helpful?