@@ -14,6 +14,7 @@ let BN = require('bn.js')
1414@injectable ( )
1515export class EVMDisassembler implements Disassembler {
1616 static readonly metadataPrefix = 'a165627a7a72305820'
17+ static readonly metadataPrefixV2 = 'a265627a7a72305820'
1718
1819 constructor (
1920 @inject ( TYPES . ContractService ) private contractService : ContractService ,
@@ -52,6 +53,9 @@ export class EVMDisassembler implements Disassembler {
5253 if ( code . includes ( EVMDisassembler . metadataPrefix ) ) {
5354 code = code . split ( EVMDisassembler . metadataPrefix ) [ 0 ]
5455 }
56+ if ( code . includes ( EVMDisassembler . metadataPrefixV2 ) ) {
57+ code = code . split ( EVMDisassembler . metadataPrefixV2 ) [ 0 ]
58+ }
5559
5660 code = code . length % 2 !== 0 ? code . substr ( 0 , code . length - 1 ) : code
5761 if ( code . length % 2 !== 0 ) {
@@ -89,6 +93,9 @@ export class EVMDisassembler implements Disassembler {
8993 if ( code . includes ( EVMDisassembler . metadataPrefix ) ) {
9094 code = code . split ( EVMDisassembler . metadataPrefix ) [ 0 ]
9195 }
96+ if ( code . includes ( EVMDisassembler . metadataPrefixV2 ) ) {
97+ code = code . split ( EVMDisassembler . metadataPrefixV2 ) [ 0 ]
98+ }
9299 code = code . length % 2 !== 0 ? code . substr ( 0 , code . length - 1 ) : code
93100 if ( code . length % 2 !== 0 ) {
94101 throw new Error ( `disassembleBytecode - Bad input, bytecode length not even: ${ code } , length: ${ code . length } ` )
@@ -121,6 +128,12 @@ export class EVMDisassembler implements Disassembler {
121128 if ( splittedBytecode . length < 2 ) {
122129 splittedBytecode = bytecode . split ( EVMDisassembler . metadataPrefix . toUpperCase ( ) )
123130 }
131+ if ( splittedBytecode . length < 2 ) {
132+ splittedBytecode = bytecode . split ( EVMDisassembler . metadataPrefixV2 )
133+ }
134+ if ( splittedBytecode . length < 2 ) {
135+ splittedBytecode = bytecode . split ( EVMDisassembler . metadataPrefixV2 . toLocaleUpperCase ( ) )
136+ }
124137 if ( splittedBytecode . length < 2 ) {
125138 return bytecode
126139 }
0 commit comments