UNPKG

evm

Version:

An ethereum virtual machine (EVM) bytecode decompiler

38 lines (33 loc) 1.08 kB
import EVM from '../classes/evm.class'; import Opcode from '../interfaces/opcode.interface'; import stringify from '../utils/stringify'; export class CODECOPY { readonly name: string; readonly type?: string; readonly wrapped: boolean; readonly startLocation: any; readonly copyLength: any; constructor(startLocation: any, copyLength: any) { this.name = 'CODECOPY'; this.wrapped = true; this.startLocation = startLocation; this.copyLength = copyLength; } toString() { return ( 'this.code[' + stringify(this.startLocation) + ':(' + stringify(this.startLocation) + '+' + stringify(this.copyLength) + ')]' ); } } export default (opcode: Opcode, state: EVM): void => { const memoryLocation = state.stack.pop(); const startLocation = state.stack.pop(); const copyLength = state.stack.pop(); state.memory[memoryLocation] = new CODECOPY(startLocation, copyLength); };