Add doc comments to AbiDecoder
This commit is contained in:
parent
cc90c806b0
commit
c00c477307
@ -15,12 +15,25 @@ import * as _ from 'lodash';
|
||||
import { addressUtils } from './address_utils';
|
||||
import { BigNumber } from './configured_bignumber';
|
||||
|
||||
/**
|
||||
* AbiDecoder allows you to decode event logs given a set of supplied contract ABI's. It takes the contract's event
|
||||
* signature from the ABI and attempts to decode the logs using it.
|
||||
*/
|
||||
export class AbiDecoder {
|
||||
private readonly _methodIds: { [signatureHash: string]: EventAbi } = {};
|
||||
/**
|
||||
* Instantiate an AbiDecoder
|
||||
* @param abiArrays An array of contract ABI's
|
||||
* @return AbiDecoder instance
|
||||
*/
|
||||
constructor(abiArrays: AbiDefinition[][]) {
|
||||
_.forEach(abiArrays, this.addABI.bind(this));
|
||||
}
|
||||
// This method can only decode logs from the 0x & ERC20 smart contracts
|
||||
/**
|
||||
* Attempt to decode a log given the ABI's the AbiDecoder knows about.
|
||||
* @param log The log to attempt to decode
|
||||
* @return The decoded log if the requisite ABI was available. Otherwise the log unaltered.
|
||||
*/
|
||||
public tryToDecodeLogOrNoop<ArgsType extends DecodedLogArgs>(log: LogEntry): LogWithDecodedArgs<ArgsType> | RawLog {
|
||||
const methodId = log.topics[0];
|
||||
const event = this._methodIds[methodId];
|
||||
@ -75,6 +88,10 @@ export class AbiDecoder {
|
||||
};
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Add additional ABI definitions to the AbiDecoder
|
||||
* @param abiArray An array of ABI definitions to add to the AbiDecoder
|
||||
*/
|
||||
public addABI(abiArray: AbiDefinition[]): void {
|
||||
if (_.isUndefined(abiArray)) {
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user