diff --git a/src/Transactions/types.ts b/src/Transactions/types.ts index 45478a2f..06602abd 100644 --- a/src/Transactions/types.ts +++ b/src/Transactions/types.ts @@ -14,6 +14,7 @@ export interface TransactionFrag { outputs: TransOutputFrag[]; // technically a TransactionOutput fragment txIndex: number; withdrawals: TransOutputFrag[]; + certificates: Certificate[]; } export interface BlockFrag { number: number; @@ -32,3 +33,59 @@ export interface TransOutputFrag { address: string; amount: string; } + +export type Certificate = StakeRegistration | StakeDeregistration | StakeDelegation | PoolRegistration | PoolRetirement | MoveInstantaneousRewardsCert; + +export interface StakeRegistration { + kind: "StakeRegistration"; + stakeCredential: string; +} +export interface StakeDeregistration{ + kind: "StakeDeregistration"; + stakeCredential: string; +} +export interface StakeDelegation{ + kind: "StakeDelegation"; + stakeCredential: string; + poolKeyHash: string; +} +export interface PoolRegistration{ + kind: "PoolRegistration"; + poolParams: PoolParams; +} +export interface PoolRetirement{ + kind: "PoolRetirement"; + poolKeyHash: string; + epoch: number; + +} +export interface MoveInstantaneousRewardsCert{ + kind: "MoveInstantaneousRewardsCert"; + pot: "Reserve" | "Treasury"; + rewards: string[]; +} + +export interface PoolParams { + operator: string; + vrfKeyHash: string + pledge: string; + cost: string; + margin: number; + rewardAccount: string; + poolOwners: string[]; + relays: PoolRelay[]; + poolMetadata: null | PoolMetadata; +} + +export interface PoolMetadata { + url: string; + metadataHash: string; +} + +export interface PoolRelay { + ipv4: string; + ipv6: string; + dnsName: string; + dnsSrvName: string + port: string; +}