Skip to content

Commit 9b39db3

Browse files
committed
Supports abiEncoderV2
1 parent cb1bea5 commit 9b39db3

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

cfg

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/api/bytecode/EVMDisassembler.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ let BN = require('bn.js')
1414
@injectable()
1515
export 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
}

src/api/service/service/TransactionServiceImpl.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ export class TransactionServiceImpl implements TransactionService {
8383
let cleanBytecode = EVMDisassembler.removeMetadata(bytecode)
8484
let cleanDeployedBytecode = EVMDisassembler.removeMetadata(deployedBytecode)
8585

86-
8786
if (cleanBytecode.length % 2 !== 0) {
8887
cleanBytecode = cleanBytecode.substr(0, cleanBytecode.length-1)
8988
}

0 commit comments

Comments
 (0)