UNPKG

565 BJavaScriptView Raw
1class ContractABICoder {
2 constructor(contract) {
3 this.contract = contract;
4 }
5
6 decodeData(data) {
7 const method = this.contract[data.slice(0, 10)];
8 if (method) {
9 return method.decodeData(data);
10 } else if (data.startsWith(this.contract.constructor.bytecode)) {
11 return this.contract.constructor.decodeData(data);
12 }
13 return undefined;
14 }
15
16 decodeLog(log) {
17 const event = this.contract[log.topics[0]];
18 if (event) {
19 return event.decodeLog(log);
20 }
21 return undefined;
22 }
23}
24
25module.exports = ContractABICoder;