@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
229 lines (219 loc) • 5.93 kB
text/typescript
import { AssetClass, CurrencySymbol } from "./generic";
export interface SystemParams {
versionRecordParams: VersionRecordParams;
validatorHashes: ValidatorHashes;
treasuryParams: TreasuryParams;
startTime: StartTime;
stakingParams: StakingParams;
stabilityPoolParams: StabilityPoolParams;
scriptReferences: ScriptReferences;
pollShardParams: PollShardParams;
pollManagerParams: PollManagerParams;
indyToken: AssetClass;
govParams: GovParams;
executeParams: ExecuteParams;
distributionParams: DistributionParams;
collectorParams: CollectorParams;
cdpParams: CdpParams;
cdpCreatorParams: CdpCreatorParams;
}
export type ValidatorHashes = {
versionRegistryHash: string;
treasuryHash: string;
stakingHash: string;
stabilityPoolHash: string;
pollShardHash: string;
pollManagerHash: string;
govHash: string;
executeHash: string;
collectorHash: string;
cdpHash: string;
cdpCreatorHash: string;
};
export interface AddressCredential {
tag: string;
contents: PubKeyHash;
}
export interface ScriptCredential {
tag: string;
contents: {
tag:string;
contents:string;
};
}
export interface PubKeyHash {
getPubKeyHash: string;
}
export interface VersionRecordParams {
upgradeToken: AssetClass;
}
export interface TreasuryParams {
upgradeToken: AssetClass;
versionRecordToken: AssetClass;
treasuryUtxosStakeCredential?: ScriptCredential;
}
export interface StartTime {
slot: number;
blockHeader: string;
}
export interface StakingParams {
versionRecordToken: AssetClass;
stakingToken: AssetClass;
stakingManagerNFT: AssetClass;
pollToken: AssetClass;
indyToken: AssetClass;
collectorValHash: string;
}
export interface StabilityPoolParams {
versionRecordToken: AssetClass;
stabilityPoolToken: AssetClass;
snapshotEpochToScaleToSumToken: AssetClass;
requestCollateralLovelaces: number;
iAssetAuthToken: AssetClass;
govNFT: AssetClass;
collectorValHash: string;
cdpToken: AssetClass;
assetSymbol: CurrencySymbol;
accountToken: AssetClass;
accountCreateFeeLovelaces: number;
accountAdjustmentFeeLovelaces: number;
}
export interface ScriptReferences {
vestingValidatorRef: ScriptReference;
versionRegistryValidatorRef: ScriptReference;
versionRecordTokenPolicyRef: ScriptReference;
treasuryValidatorRef: ScriptReference;
stakingValidatorRef: ScriptReference;
stabilityPoolValidatorRef: ScriptReference;
pollShardValidatorRef: ScriptReference;
pollManagerValidatorRef: ScriptReference;
liquidityValidatorRef: ScriptReference;
iAssetTokenPolicyRef: ScriptReference;
governanceValidatorRef: ScriptReference;
executeValidatorRef: ScriptReference;
collectorValidatorRef: ScriptReference;
cdpValidatorRef: ScriptReference;
cdpCreatorValidatorRef: ScriptReference;
authTokenPolicies: AuthTokenPolicies;
}
export interface Output {
scriptRef: ScriptRef;
output: ScriptOutput;
}
export interface ScriptRef {
tag: string;
contents?: string[] | null;
}
export interface ScriptOutput {
referenceScript: string;
datum: AddressCredentialOrDatum;
amount: Amount;
address: Address;
}
export interface AddressCredentialOrDatum {
tag: string;
contents: string;
}
export interface Amount {
getValue?:
| ((CurrencySymbol | ((number)[] | null)[] | null)[] | null)[]
| null;
}
export interface Address {
addressStakingCredential?: null;
addressCredential: AddressCredentialOrDatum;
}
export interface Input {
transactionId: string;
index: number;
}
export interface ScriptReference {
output: Output;
input: Input;
}
export interface AuthTokenPolicies {
upgradeTokenRef: ScriptReference;
stakingTokenRef: ScriptReference;
stabilityPoolTokenRef: ScriptReference;
snapshotEpochToScaleToSumTokenRef: ScriptReference;
pollManagerTokenRef: ScriptReference;
iAssetTokenRef: ScriptReference;
cdpAuthTokenRef: ScriptReference;
accountTokenRef: ScriptReference;
}
export interface PollShardParams {
stakingValHash: string;
stakingToken: AssetClass;
pollToken: AssetClass;
indyAsset: AssetClass;
}
export interface PollManagerParams {
upgradeToken: AssetClass;
treasuryValHash: string;
shardsValHash: string;
pollToken: AssetClass;
pBiasTime: number;
initialIndyDistribution: number;
indyAsset: AssetClass;
govNFT: AssetClass;
govExecuteValHash: string;
}
export interface GovParams {
versionRecordToken: AssetClass;
upgradeToken: AssetClass;
pollToken: AssetClass;
pollManagerValHash: string;
indyAsset: AssetClass;
iAssetAuthToken: AssetClass;
govNFT: AssetClass;
gBiasTime: number;
daoIdentityToken: AssetClass;
}
export interface ExecuteParams {
versionRegistryValHash: string;
versionRecordToken: AssetClass;
upgradeToken: AssetClass;
treasuryValHash: string;
stabilityPoolToken: AssetClass;
sPoolValHash: string;
maxInterestPeriods: number;
iAssetToken: AssetClass;
govNFT: AssetClass;
cdpValHash: string;
}
export interface DistributionParams {
treasuryIndyAmount: number;
totalINDYSupply: number;
initialIndyDistribution: number;
}
export interface CollectorParams {
versionRecordToken: AssetClass;
stakingToken: AssetClass;
stakingManagerNFT: AssetClass;
}
export interface CdpParams {
versionRecordToken: AssetClass;
upgradeToken: AssetClass;
treasuryValHash: string;
stabilityPoolAuthToken: AssetClass;
spValHash: string;
partialRedemptionExtraFeeLovelace: number;
minCollateralInLovelace: number;
iAssetAuthToken: AssetClass;
govNFT: AssetClass;
collectorValHash: string;
cdpAuthToken: AssetClass;
cdpAssetSymbol: CurrencySymbol;
biasTime: number;
}
export interface CdpCreatorParams {
versionRecordToken: AssetClass;
minCollateralInLovelace: number;
iAssetAuthTk: AssetClass;
collectorValHash: string;
cdpScriptHash: string;
cdpCreatorNft: AssetClass;
cdpAuthTk: AssetClass;
cdpAssetCs: CurrencySymbol;
biasTime: number;
}