Add doc comments to AbiDecoder
This commit is contained in:
@@ -15,12 +15,25 @@ import * as _ from 'lodash';
|
|||||||
import { addressUtils } from './address_utils';
|
import { addressUtils } from './address_utils';
|
||||||
import { BigNumber } from './configured_bignumber';
|
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 {
|
export class AbiDecoder {
|
||||||
private readonly _methodIds: { [signatureHash: string]: EventAbi } = {};
|
private readonly _methodIds: { [signatureHash: string]: EventAbi } = {};
|
||||||
|
/**
|
||||||
|
* Instantiate an AbiDecoder
|
||||||
|
* @param abiArrays An array of contract ABI's
|
||||||
|
* @return AbiDecoder instance
|
||||||
|
*/
|
||||||
constructor(abiArrays: AbiDefinition[][]) {
|
constructor(abiArrays: AbiDefinition[][]) {
|
||||||
_.forEach(abiArrays, this.addABI.bind(this));
|
_.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 {
|
public tryToDecodeLogOrNoop<ArgsType extends DecodedLogArgs>(log: LogEntry): LogWithDecodedArgs<ArgsType> | RawLog {
|
||||||
const methodId = log.topics[0];
|
const methodId = log.topics[0];
|
||||||
const event = this._methodIds[methodId];
|
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 {
|
public addABI(abiArray: AbiDefinition[]): void {
|
||||||
if (_.isUndefined(abiArray)) {
|
if (_.isUndefined(abiArray)) {
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user