@graphprotocol/graph-ts
Version:
TypeScript/AssemblyScript library for writing subgraph mappings for The Graph
426 lines (371 loc) • 8.99 kB
text/typescript
import { Bytes } from '../common/collections';
export namespace cosmos {
export class Block {
constructor(
public header: Header,
public evidence: EvidenceList,
public lastCommit: Commit,
public resultBeginBlock: ResponseBeginBlock,
public resultEndBlock: ResponseEndBlock,
public transactions: Array<TxResult>,
public validatorUpdates: Array<Validator>,
) {}
}
export class HeaderOnlyBlock {
constructor(public header: Header) {}
}
export class EventData {
constructor(
public event: Event,
public block: HeaderOnlyBlock,
public tx: TransactionContext,
) {}
}
export class TransactionData {
constructor(
public tx: TxResult,
public block: HeaderOnlyBlock,
) {}
}
export class MessageData {
constructor(
public message: Any,
public block: HeaderOnlyBlock,
public tx: TransactionContext,
) {}
}
export class TransactionContext {
constructor(
public hash: Bytes,
public index: u32,
public code: u32,
public gasWanted: i64,
public gasUsed: i64,
) {}
}
export class Header {
constructor(
public version: Consensus,
public chainId: string,
public height: u64,
public time: Timestamp,
public lastBlockId: BlockID,
public lastCommitHash: Bytes,
public dataHash: Bytes,
public validatorsHash: Bytes,
public nextValidatorsHash: Bytes,
public consensusHash: Bytes,
public appHash: Bytes,
public lastResultsHash: Bytes,
public evidenceHash: Bytes,
public proposerAddress: Bytes,
public hash: Bytes,
) {}
}
export class Consensus {
constructor(
public block: u64,
public app: u64,
) {}
}
export class Timestamp {
constructor(
public seconds: i64,
public nanos: i32,
) {}
}
export class BlockID {
constructor(
public hash: Bytes,
public partSetHeader: PartSetHeader,
) {}
}
export class PartSetHeader {
constructor(
public total: u32,
public hash: Bytes,
) {}
}
export class EvidenceList {
constructor(public evidence: Array<Evidence>) {}
}
export class Evidence {
constructor(
public duplicateVoteEvidence: DuplicateVoteEvidence,
public lightClientAttackEvidence: LightClientAttackEvidence,
) {}
}
export class DuplicateVoteEvidence {
constructor(
public voteA: EventVote,
public voteB: EventVote,
public totalVotingPower: i64,
public validatorPower: i64,
public timestamp: Timestamp,
) {}
}
export class EventVote {
constructor(
public eventVoteType: SignedMsgType,
public height: u64,
public round: i32,
public blockId: BlockID,
public timestamp: Timestamp,
public validatorAddress: Bytes,
public validatorIndex: i32,
public signature: Bytes,
) {}
}
export enum SignedMsgType {
SIGNED_MSG_TYPE_UNKNOWN = 0,
SIGNED_MSG_TYPE_PREVOTE = 1,
SIGNED_MSG_TYPE_PRECOMMIT = 2,
SIGNED_MSG_TYPE_PROPOSAL = 32,
}
export class LightClientAttackEvidence {
constructor(
public conflictingBlock: LightBlock,
public commonHeight: i64,
public byzantineValidators: Array<Validator>,
public totalVotingPower: i64,
public timestamp: Timestamp,
) {}
}
export class LightBlock {
constructor(
public signedHeader: SignedHeader,
public validatorSet: ValidatorSet,
) {}
}
export class SignedHeader {
constructor(
public header: Header,
public commit: Commit,
) {}
}
export class Commit {
constructor(
public height: i64,
public round: i32,
public blockId: BlockID,
public signatures: Array<CommitSig>,
) {}
}
export class CommitSig {
constructor(
public blockIdFlag: BlockIDFlag,
public validatorAddress: Bytes,
public timestamp: Timestamp,
public signature: Bytes,
) {}
}
export enum BlockIDFlag {
BLOCK_ID_FLAG_UNKNOWN = 0,
BLOCK_ID_FLAG_ABSENT = 1,
BLOCK_ID_FLAG_COMMIT = 2,
BLOCK_ID_FLAG_NIL = 3,
}
export class ValidatorSet {
constructor(
public validators: Array<Validator>,
public proposer: Validator,
public totalVotingPower: i64,
) {}
}
export class Validator {
constructor(
public address: Bytes,
public pubKey: PublicKey,
public votingPower: i64,
public proposerPriority: i64,
) {}
}
export class PublicKey {
constructor(
public ed25519: Bytes,
public secp256k1: Bytes,
) {}
}
export class ResponseBeginBlock {
constructor(public events: Array<Event>) {}
}
export class Event {
constructor(
public eventType: string,
public attributes: Array<EventAttribute>,
) {}
getAttribute(key: string): EventAttribute | null {
for (let i = 0; i < this.attributes.length; i++) {
if (this.attributes[i].key == key) {
return this.attributes[i];
}
}
return null;
}
getAttributeValue(key: string): string {
const attribute = this.getAttribute(key);
return attribute ? attribute.value : '';
}
}
export class EventAttribute {
constructor(
public key: string,
public value: string,
public index: bool,
) {}
}
export class ResponseEndBlock {
constructor(
public validatorUpdates: Array<ValidatorUpdate>,
public consensusParamUpdates: ConsensusParams,
public events: Array<Event>,
) {}
}
export class ValidatorUpdate {
constructor(
public address: Bytes,
public pubKey: PublicKey,
public power: i64,
) {}
}
export class ConsensusParams {
constructor(
public block: BlockParams,
public evidence: EvidenceParams,
public validator: ValidatorParams,
public version: VersionParams,
) {}
}
export class BlockParams {
constructor(
public maxBytes: i64,
public maxGas: i64,
) {}
}
export class EvidenceParams {
constructor(
public maxAgeNumBlocks: i64,
public maxAgeDuration: Duration,
public maxBytes: i64,
) {}
}
export class Duration {
constructor(
public seconds: i64,
public nanos: i32,
) {}
}
export class ValidatorParams {
constructor(public pubKeyTypes: Array<string>) {}
}
export class VersionParams {
constructor(public appVersion: u64) {}
}
export class TxResult {
constructor(
public height: u64,
public index: u32,
public tx: Tx,
public result: ResponseDeliverTx,
public hash: Bytes,
) {}
}
export class Tx {
constructor(
public body: TxBody,
public authInfo: AuthInfo,
public signatures: Array<Bytes>,
) {}
}
export class TxBody {
constructor(
public messages: Array<Any>,
public memo: string,
public timeoutHeight: u64,
public extensionOptions: Array<Any>,
public nonCriticalExtensionOptions: Array<Any>,
) {}
}
export class Any {
constructor(
public typeUrl: string,
public value: Bytes,
) {}
}
export class AuthInfo {
constructor(
public signerInfos: Array<SignerInfo>,
public fee: Fee,
public tip: Tip,
) {}
}
export class SignerInfo {
constructor(
public publicKey: Any,
public modeInfo: ModeInfo,
public sequence: u64,
) {}
}
export class ModeInfo {
constructor(
public single: ModeInfoSingle,
public multi: ModeInfoMulti,
) {}
}
export class ModeInfoSingle {
constructor(public mode: SignMode) {}
}
export enum SignMode {
SIGN_MODE_UNSPECIFIED = 0,
SIGN_MODE_DIRECT = 1,
SIGN_MODE_TEXTUAL = 2,
SIGN_MODE_LEGACY_AMINO_JSON = 127,
}
export class ModeInfoMulti {
constructor(
public bitarray: CompactBitArray,
public modeInfos: Array<ModeInfo>,
) {}
}
export class CompactBitArray {
constructor(
public extraBitsStored: u32,
public elems: Bytes,
) {}
}
export class Fee {
constructor(
public amount: Array<Coin>,
public gasLimit: u64,
public payer: string,
public granter: string,
) {}
}
export class Coin {
constructor(
public denom: string,
public amount: string,
) {}
}
export class Tip {
constructor(
public amount: Array<Coin>,
public tipper: string,
) {}
}
export class ResponseDeliverTx {
constructor(
public code: u32,
public data: Bytes,
public log: string,
public info: string,
public gasWanted: i64,
public gasUsed: i64,
public events: Array<Event>,
public codespace: string,
) {}
}
export class ValidatorSetUpdates {
constructor(public validatorUpdates: Array<Validator>) {}
}
}