Skip to content
This repository has been archived by the owner on Feb 23, 2023. It is now read-only.

Rename Tendermint to Cosmos #273

Merged
merged 56 commits into from
May 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
7d46415
Generate tendermint types
Oct 26, 2021
b622ab9
Update tendermint types
Dec 17, 2021
c4a8cca
Apply changes from review
Jan 7, 2022
b353f4f
Merge master and resolve conflicts
Jan 7, 2022
2fc21ba
Fix formatting
Jan 10, 2022
f61e3ee
Merge pull request #1 from figment-networks/fix/tendermint-types
patiee Jan 10, 2022
add7bcd
Update Tendermint typescript definitions
Jan 14, 2022
78fd869
Update Tendermint ids
Jan 18, 2022
20aba73
Update tendermint
Jan 19, 2022
753ba7d
Move responses to the top
Jan 20, 2022
305fc93
Merge pull request #2 from figment-networks/fix/tendermint-types
patiee Jan 20, 2022
9cec0f7
Use camel case in Tendermint definitions
pienkowb Jan 25, 2022
519d88d
Merge pull request #3 from figment-networks/camel-case-field-names
pienkowb Jan 25, 2022
f6bec1b
Update the `EventData` type
pienkowb Jan 28, 2022
3d75a28
Merge pull request #4 from figment-networks/update-event-data
pienkowb Jan 28, 2022
e22f9f9
fixes linting errors
lavabyrd Feb 2, 2022
651ef47
Merge pull request #7 from figment-networks/linting_fix
lavabyrd Feb 2, 2022
56d24ad
fixes broken tendermint tests
lavabyrd Feb 2, 2022
588d3a4
Merge pull request #8 from figment-networks/test-fix
lavabyrd Feb 2, 2022
63a4a55
Merge branch 'master' of github.com:figment-networks/graph-ts into co…
Mar 24, 2022
d268f79
Cosmos definitions with decoding and encoing functions
Mar 24, 2022
5661fa2
Clean up yarn.lock
Mar 25, 2022
1967f5a
Add Cosmos transaction definitions
patiee Mar 25, 2022
5614e4c
Add liquidity
Mar 25, 2022
7812394
Add new line
Mar 28, 2022
3fd3914
Add Tendermint liquidity
patiee Mar 28, 2022
63ef7c8
Add TxData definition
kruspy Mar 30, 2022
f3b2d9c
Add typescript defitions generator with encoding and decoding functions
Apr 1, 2022
6bb7adc
Update TxData with TransactionData
kruspy Apr 4, 2022
672614e
Merge pull request #10 from figment-networks/GRAPH-256
kruspy Apr 5, 2022
37b0c1f
Merge branch 'master' into tendermint
kruspy Apr 6, 2022
824b5ae
Merge branch 'tendermint' into cosmos
kruspy Apr 6, 2022
83e9b26
Add Transaction Hash
Apr 6, 2022
6a1a4e2
Add hash at the end of TxResult
Apr 6, 2022
29d9ba6
Remove Data from Block
Apr 7, 2022
c86c83a
Remove Data from Block
Apr 7, 2022
6f06043
Update proto definitions
Apr 7, 2022
40d5e48
Regenerate Cosmos definitions
Apr 7, 2022
79628b6
Prettier for generated code
Apr 7, 2022
ad69fc6
Add typescript defitions generator with encoding and decoding functio…
patiee Apr 7, 2022
d3ac0be
Add Transaction Hash
patiee Apr 7, 2022
7db68e7
Export t from wasm definitions
Apr 7, 2022
0fd7c7c
update tendermint.ts class (#13)
Seb-figment Apr 27, 2022
7349893
remove cosmoshub-4 proto binding
Seb-figment Apr 28, 2022
91aa745
Merge pull request #15 from figment-networks/feature/GRAPH-305
pienkowb May 1, 2022
fc55d60
Merge branch 'master' into cosmos
pienkowb May 1, 2022
eb7ca5e
Rename Tendermint to Cosmos
pienkowb May 2, 2022
89217fe
Remove `as-proto` from the dependencies
pienkowb May 2, 2022
99f26e4
Merge pull request #16 from figment-networks/renaming
pienkowb May 2, 2022
2e71209
Merge branch 'master' into cosmos
pienkowb May 6, 2022
fdbbf50
Remove an unused method
pienkowb May 9, 2022
9a79478
Add helper methods for extracting event attributes
pienkowb May 11, 2022
8e1ec44
Use parameter properties in constructors
pienkowb May 12, 2022
641641a
Remove the `package-lock.json` file
pienkowb May 12, 2022
0f727c2
Merge pull request #18 from figment-networks/event-helpers
pienkowb May 12, 2022
17681bf
Use single quotes
pienkowb May 9, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
341 changes: 341 additions & 0 deletions chain/cosmos.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,341 @@
import '../common/eager_offset'
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) {}
}

export class TransactionData {
constructor(public tx: TxResult, public block: HeaderOnlyBlock) {}
}

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>) {}
}
}
Loading