@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
1,260 lines (1,242 loc) • 208 kB
TypeScript
import * as _lucid_evolution_lucid from '@lucid-evolution/lucid';
import { Data, UTxO, Credential, OutRef, LucidEvolution, TxBuilder, Network, WithdrawalValidator, SpendingValidator, Assets, MintingPolicy, Address, PolicyId, ScriptHash, ProtocolParameters, OutputDatum, Script, Datum } from '@lucid-evolution/lucid';
import { AssetClass } from '@3rd-eye-labs/cardano-offchain-common';
import * as Core from '@evolution-sdk/evolution';
import { TSchema, Schema, Data as Data$1 } from '@evolution-sdk/evolution';
import { option, ord } from 'fp-ts';
import * as effect_Schema from 'effect/Schema';
import { Schema as Schema$1 } from 'effect';
import { Predicate } from 'fp-ts/lib/Predicate';
import Decimal from 'decimal.js';
import { ParsedPayload } from '@pythnetwork/pyth-lazer-sdk';
declare const AssetClassSchema: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
/** Use the HEX encoding */
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
type AssetClassD = Data.Static<typeof AssetClassSchema>;
declare function toAssetClassFromLucid(asset: AssetClassD): AssetClass;
declare function getAssetClassComparisonStr(asset: AssetClass): string;
declare const VerificationKeyHashSchema: _lucid_evolution_lucid.TUnsafe<string>;
declare const CredentialSchema: _lucid_evolution_lucid.TUnion<(_lucid_evolution_lucid.TObject<{
PublicKeyCredential: _lucid_evolution_lucid.TTuple<[_lucid_evolution_lucid.TUnsafe<string>]>;
}> | _lucid_evolution_lucid.TObject<{
ScriptCredential: _lucid_evolution_lucid.TTuple<[_lucid_evolution_lucid.TUnsafe<string>]>;
}>)[]>;
type CredentialD = Data.Static<typeof CredentialSchema>;
declare const CredentialD: CredentialD;
declare const StakeCredentialSchema: _lucid_evolution_lucid.TUnion<(_lucid_evolution_lucid.TObject<{
Inline: _lucid_evolution_lucid.TTuple<[_lucid_evolution_lucid.TUnion<(_lucid_evolution_lucid.TObject<{
PublicKeyCredential: _lucid_evolution_lucid.TTuple<[_lucid_evolution_lucid.TUnsafe<string>]>;
}> | _lucid_evolution_lucid.TObject<{
ScriptCredential: _lucid_evolution_lucid.TTuple<[_lucid_evolution_lucid.TUnsafe<string>]>;
}>)[]>]>;
}> | _lucid_evolution_lucid.TObject<{
Pointer: _lucid_evolution_lucid.TTuple<[_lucid_evolution_lucid.TObject<{
slotNumber: _lucid_evolution_lucid.TUnsafe<bigint>;
transactionIndex: _lucid_evolution_lucid.TUnsafe<bigint>;
certificateIndex: _lucid_evolution_lucid.TUnsafe<bigint>;
}>]>;
}>)[]>;
type StakeCredential = Data.Static<typeof StakeCredentialSchema>;
declare const StakeCredential: StakeCredential;
type ParsedOutput<T> = {
utxo: UTxO;
datum: T;
};
declare const PythConfigurationSchema: TSchema.Struct<{
priceFeedId: TSchema.Integer;
}>;
type PythConfiguration = typeof PythConfigurationSchema.Type;
declare const DerivedPythPriceSchema: TSchema.Union<[TSchema.Struct<{
Value: TSchema.Struct<{
configuration: TSchema.Struct<{
priceFeedId: TSchema.Integer;
}>;
}>;
}>, TSchema.Struct<{
Inverse: TSchema.Struct<{
value: Schema.SchemaClass<Data$1.Data, Data$1.Data, never>;
}>;
}>, TSchema.Struct<{
Divide: TSchema.Struct<{
x: Schema.SchemaClass<Data$1.Data, Data$1.Data, never>;
y: Schema.SchemaClass<Data$1.Data, Data$1.Data, never>;
}>;
}>]>;
type DerivedPythPrice = typeof DerivedPythPriceSchema.Type;
declare function fromDataDerivedPythPrice(data: Data$1.Data): DerivedPythPrice;
declare function toDataDerivedPythPrice(derivedPythPrice: DerivedPythPrice): Data$1.Data;
declare const PythFeedParamsSchema: TSchema.Struct<{
config: TSchema.Union<[TSchema.Struct<{
Value: TSchema.Struct<{
configuration: TSchema.Struct<{
priceFeedId: TSchema.Integer;
}>;
}>;
}>, TSchema.Struct<{
Inverse: TSchema.Struct<{
value: Schema.SchemaClass<Data$1.Data, Data$1.Data, never>;
}>;
}>, TSchema.Struct<{
Divide: TSchema.Struct<{
x: Schema.SchemaClass<Data$1.Data, Data$1.Data, never>;
y: Schema.SchemaClass<Data$1.Data, Data$1.Data, never>;
}>;
}>]>;
pythStatePolicyId: TSchema.ByteArray;
}>;
type PythFeedParams = typeof PythFeedParamsSchema.Type;
declare function serialisePythFeedParams(params: PythFeedParams): Data$1.Data;
declare const PythFeedRedeemerSchema: TSchema.Struct<{
price: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
auxiliaryData: Schema.SchemaClass<Data$1.Data, Data$1.Data, never>;
}>;
type PythFeedRedeemer = typeof PythFeedRedeemerSchema.Type;
declare function serialisePythFeedRedeemer(r: PythFeedRedeemer): string;
/**
* IntervalBoundType
* A type of interval bound. The value for the `Finite` case typically
represents a number of seconds or milliseconds.
*/
declare const AikenIntervalIntervalBoundType: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
/**
* IntervalBound
* An interval bound, either inclusive or exclusive.
*/
declare const AikenIntervalIntervalBound: TSchema.Struct<{
bound_type: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
is_inclusive: TSchema.Boolean;
}>;
/**
* ValidityRange
* A type to represent intervals of values. Interval are inhabited by an
integer value representing have a finite lower-bound and/or upper-bound.
This allows to represent all kind of mathematical intervals:
```aiken
// [1; 10]
let i0: Interval = Interval
{ lower_bound:
IntervalBound { bound_type: Finite(1), is_inclusive: True }
, upper_bound:
IntervalBound { bound_type: Finite(10), is_inclusive: True }
}
```
```aiken
// (20; infinity)
let i1: Interval = Interval
{ lower_bound:
IntervalBound { bound_type: Finite(20), is_inclusive: False }
, upper_bound:
IntervalBound { bound_type: PositiveInfinity, is_inclusive: False }
}
```
*/
declare const CardanoTransactionValidityRange: TSchema.Struct<{
lower_bound: TSchema.Struct<{
bound_type: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
is_inclusive: TSchema.Boolean;
}>;
upper_bound: TSchema.Struct<{
bound_type: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
is_inclusive: TSchema.Boolean;
}>;
}>;
declare const PythStateDatumSchema: TSchema.Struct<{
governance: TSchema.Struct<{
wormhole: TSchema.ByteArray;
emitterChain: TSchema.Integer;
emitterAddress: TSchema.ByteArray;
seenSequence: TSchema.Integer;
}>;
trustedSigners: TSchema.Map<TSchema.ByteArray, TSchema.Struct<{
lower_bound: TSchema.Struct<{
bound_type: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
is_inclusive: TSchema.Boolean;
}>;
upper_bound: TSchema.Struct<{
bound_type: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
is_inclusive: TSchema.Boolean;
}>;
}>>;
deprecatedWithdrawScripts: TSchema.Map<TSchema.Struct<{
lower_bound: TSchema.Struct<{
bound_type: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
is_inclusive: TSchema.Boolean;
}>;
upper_bound: TSchema.Struct<{
bound_type: TSchema.Union<[TSchema.Struct<{
_tag: TSchema.Literal<["NegativeInfinity"]>;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["Finite"]>;
} & {
finite: TSchema.Integer;
}>, TSchema.Struct<{
_tag: TSchema.Literal<["PositiveInfinity"]>;
}>]>;
is_inclusive: TSchema.Boolean;
}>;
}>, TSchema.ByteArray>;
withdraw_script: TSchema.ByteArray;
}>;
type PythStateDatum = typeof PythStateDatumSchema.Type;
declare function serialisePythStateDatum(r: PythStateDatum): string;
declare function parsePythStateDatum(datum: string): PythStateDatum;
declare const PythUpdatesRedeemerSchema: TSchema.Array<TSchema.ByteArray>;
type PythUpdatesRedeemer = typeof PythUpdatesRedeemerSchema.Type;
declare function serialisePythUpdatesRedeemer(r: PythUpdatesRedeemer): string;
interface CurrencySymbolSP {
unCurrencySymbol: string;
}
interface TokenNameSP {
unTokenName: string;
}
/**
* AssetClassSP used in System Params
*/
type AssetClassSP = [CurrencySymbolSP, TokenNameSP];
type PythPriceConfigurationSP = {
priceFeedId: number;
};
type DerivedPythPriceSP = {
tag: 'value';
val: PythPriceConfigurationSP;
} | {
tag: 'inverse';
val: DerivedPythPriceSP;
} | {
tag: 'divide';
val: [DerivedPythPriceSP, DerivedPythPriceSP];
};
type PythFeedParamsSP = {
config: DerivedPythPriceSP;
pythStatePolicyId: CurrencySymbolSP;
};
declare function fromSysParamsDerivedPythPrice(cfg: DerivedPythPriceSP): DerivedPythPrice;
declare function fromSysParamsPythFeedParams(params: PythFeedParamsSP): PythFeedParams;
type PythFeedConfig = {
params: PythFeedParamsSP;
pythFeedValHash: string;
pythFeedValScriptRef: ScriptReference;
};
type PythConfig = {
pythStateAssetClass: AssetClassSP;
/**
* Key is in the format: "iAsset.ascii/Collateral.currency.hex.Collateral.tokenName.hex".
* Use the `getPythFeedConfig` helper to querying.
*/
pythFeeds: {
[key: string]: PythFeedConfig;
};
};
declare function getPythFeedConfig(cfg: PythConfig, iasset: Uint8Array<ArrayBufferLike>, collateralAsset: AssetClass): PythFeedConfig;
interface SystemParams {
versionRecordParams: VersionRecordParams;
validatorHashes: ValidatorHashes;
treasuryParams: TreasuryParamsSP;
startTime: StartTime;
stakingParams: StakingParamsSP;
stabilityPoolParams: StabilityPoolParamsSP;
stableswapParams: StableswapParamsSP;
scriptReferences: ScriptReferences;
pollShardParams: PollShardParamsSP;
pollManagerParams: PollManagerParamsSP;
robParams: RobParamsSP;
interestCollectionParams: InterestCollectionParamsSP;
indyToken: AssetClassSP;
govParams: GovParamsSP;
executeParams: ExecuteParamsSP;
collectorParams: CollectorParamsSP;
cdpParams: CdpParamsSP;
cdpCreatorParams: CDPCreatorParamsSP;
cdpRedeemParams: CdpRedeemParamsSP;
iassetParams: IAssetParamsSP;
pythConfig: PythConfig;
}
type ValidatorHashes = {
versionRegistryHash: string;
treasuryHash: string;
stableswapHash: string;
stakingHash: string;
stabilityPoolHash: string;
pollShardHash: string;
pollManagerHash: string;
robHash: string;
interestCollectionHash: string;
govHash: string;
executeHash: string;
collectorHash: string;
cdpHash: string;
cdpCreatorHash: string;
iassetHash: string;
};
interface AddressCredential {
tag: string;
contents: PubKeyHash;
}
interface ScriptCredential {
tag: string;
contents: {
tag: string;
contents: string;
};
}
interface PubKeyHash {
getPubKeyHash: string;
}
interface VersionRecordParams {
upgradeToken: AssetClassSP;
}
interface TreasuryParamsSP {
upgradeToken: AssetClassSP;
versionRecordToken: AssetClassSP;
treasuryUtxosStakeCredential: ScriptCredential | undefined;
}
interface StartTime {
slot: number;
blockHeader: string;
}
interface StakingParamsSP {
versionRecordToken: AssetClassSP;
stakingToken: AssetClassSP;
stakingManagerNFT: AssetClassSP;
pollToken: AssetClassSP;
indyToken: AssetClassSP;
collectorValHash: string;
}
interface StabilityPoolParamsSP {
versionRecordToken: AssetClassSP;
stabilityPoolToken: AssetClassSP;
snapshotEpochToScaleToSumToken: AssetClassSP;
iAssetAuthToken: AssetClassSP;
iassetValHash: string;
cdpToken: AssetClassSP;
assetSymbol: CurrencySymbolSP;
accountToken: AssetClassSP;
accountCreateFeeLovelaces: number;
accountProcessingCooldownMs: number;
accountProcessingBiasMs: number;
stakeCredential: ScriptCredential | undefined;
}
interface StableswapParamsSP {
iassetSymbol: CurrencySymbolSP;
cdpToken: AssetClassSP;
versionRecordToken: AssetClassSP;
cdpValHash: string;
treasuryValHash: string;
}
interface ScriptReferences {
versionRegistryValidatorRef: ScriptReference;
treasuryValidatorRef: ScriptReference;
stakingValidatorRef: ScriptReference;
stabilityPoolValidatorRef: ScriptReference;
stableswapValidatorRef: ScriptReference;
pollShardValidatorRef: ScriptReference;
pollManagerValidatorRef: ScriptReference;
robValidatorRef: ScriptReference;
interestCollectionValidatorRef: ScriptReference;
iAssetTokenPolicyRef: ScriptReference;
governanceValidatorRef: ScriptReference;
executeValidatorRef: ScriptReference;
collectorValidatorRef: ScriptReference;
cdpValidatorRef: ScriptReference;
cdpCreatorValidatorRef: ScriptReference;
cdpRedeemValidatorRef: ScriptReference;
iassetValidatorRef: ScriptReference;
authTokenPolicies: AuthTokenPolicies;
}
interface Output {
scriptRef: ScriptRef;
output: ScriptOutput;
}
interface ScriptRef {
tag: string;
contents?: string[] | null;
}
interface ScriptOutput {
referenceScript: string;
datum: AddressCredentialOrDatum;
amount: Amount;
address: AddressSP;
}
interface AddressCredentialOrDatum {
tag: string;
contents: string;
}
interface Amount {
getValue?: ((CurrencySymbolSP | (number[] | null)[] | null)[] | null)[] | null;
}
interface AddressSP {
addressStakingCredential?: null;
addressCredential: AddressCredentialOrDatum;
}
interface Input {
transactionId: string;
index: number;
}
interface ScriptReference {
output?: Output;
input: Input;
}
interface AuthTokenPolicies {
upgradeTokenRef: ScriptReference;
stakingTokenRef: ScriptReference;
stabilityPoolTokenRef: ScriptReference;
stabilityPoolAuthTokenRef: ScriptReference;
snapshotEpochToScaleToSumTokenRef: ScriptReference;
pollManagerTokenRef: ScriptReference;
iAssetAuthTokenRef: ScriptReference;
iAssetTokenRef: ScriptReference;
collateralAssetTokenRef: ScriptReference;
cdpAuthTokenRef: ScriptReference;
accountTokenRef: ScriptReference;
versionRecordTokenPolicyRef: ScriptReference;
}
interface RobParamsSP {
versionRecordToken: AssetClassSP;
iassetAuthToken: AssetClassSP;
collateralAssetAuthToken: AssetClassSP;
iassetValHash: string;
iassetPolicyId: CurrencySymbolSP;
}
interface InterestCollectionParamsSP {
versionRecordNft: AssetClassSP;
multisigUtxoNft: AssetClassSP;
cdpAuthTk: AssetClassSP;
collateralAssetAuthTk: AssetClassSP;
govAuthTk: AssetClassSP;
cdpAssetSymbol: CurrencySymbolSP;
cdpBiasTime: bigint;
interestSettlementCooldown: bigint;
}
interface PollShardParamsSP {
stakingValHash: string;
stakingToken: AssetClassSP;
pollToken: AssetClassSP;
indyAsset: AssetClassSP;
}
interface PollManagerParamsSP {
upgradeToken: AssetClassSP;
treasuryValHash: string;
shardsValHash: string;
pollToken: AssetClassSP;
pBiasTime: bigint;
indyAsset: AssetClassSP;
govNFT: AssetClassSP;
govExecuteValHash: string;
}
interface GovParamsSP {
versionRecordToken: AssetClassSP;
upgradeToken: AssetClassSP;
pollToken: AssetClassSP;
pollManagerValHash: string;
iassetValHash: string;
indyAsset: AssetClassSP;
iAssetAuthToken: AssetClassSP;
govNFT: AssetClassSP;
gBiasTime: bigint;
daoIdentityToken: AssetClassSP;
iassetSymbol: CurrencySymbolSP;
}
interface ExecuteParamsSP {
govNFT: AssetClassSP;
upgradeToken: AssetClassSP;
iAssetToken: AssetClassSP;
collateralAssetToken: AssetClassSP;
stabilityPoolToken: AssetClassSP;
cdpCreatorToken: AssetClassSP;
cdpToken: AssetClassSP;
versionRecordToken: AssetClassSP;
iassetValHash: string;
cdpValHash: string;
sPoolValHash: string;
versionRegistryValHash: string;
treasuryValHash: string;
}
interface CollectorParamsSP {
versionRecordToken: AssetClassSP;
stakingToken: AssetClassSP;
stakingManagerNFT: AssetClassSP;
}
interface CdpRedeemParamsSP {
treasuryValHash: string;
iassetValHash: string;
partialRedemptionExtraFeeLovelace: number;
iAssetAuthToken: AssetClassSP;
collateralAssetAuthToken: AssetClassSP;
govNFT: AssetClassSP;
interestCollectorValHash: string;
cdpAuthToken: AssetClassSP;
cdpAssetSymbol: CurrencySymbolSP;
biasTime: bigint;
}
interface CdpParamsSP {
upgradeToken: AssetClassSP;
versionRecordToken: AssetClassSP;
treasuryValHash: string;
stabilityPoolAuthToken: AssetClassSP;
spValHash: string;
iassetValHash: string;
iAssetAuthToken: AssetClassSP;
collateralAssetAuthToken: AssetClassSP;
interestCollectorValHash: string;
cdpRedeemValHash: string;
cdpAuthToken: AssetClassSP;
cdpAssetSymbol: CurrencySymbolSP;
biasTime: bigint;
}
interface IAssetParamsSP {
upgradeToken: AssetClassSP;
versionRecordToken: AssetClassSP;
}
interface CDPCreatorParamsSP {
versionRecordToken: AssetClassSP;
upgradeToken: AssetClassSP;
iAssetAuthTk: AssetClassSP;
collateralAssetAuthTk: AssetClassSP;
treasuryValHash: string;
cdpScriptHash: string;
iassetValHash: string;
cdpCreatorNft: AssetClassSP;
cdpAuthTk: AssetClassSP;
cdpAssetCs: CurrencySymbolSP;
biasTime: bigint;
}
declare function toSystemParamsAsset(asset: AssetClass): AssetClassSP;
declare function fromSystemParamsAsset(asset: AssetClassSP): AssetClass;
declare function fromSystemParamsAssetLucid(asset: AssetClassSP): AssetClassD;
declare function fromSystemParamsScriptRef(ref: ScriptReference): OutRef;
declare function fromSysParamsCredential(cred: ScriptCredential): Credential;
declare function fromSysParamsStakeCredential(cred: ScriptCredential): StakeCredential;
declare function openCdp(collateralAmount: bigint, mintedAmount: bigint, sysParams: SystemParams, cdpCreatorOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, priceOracleOref: OutRef | undefined, interestOracleOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, lucid: LucidEvolution, currentSlot: number, pythMessage?: string | undefined, pythStateOref?: OutRef | undefined): Promise<TxBuilder>;
declare function adjustCdp(collateralAdjustment: bigint, debtAdjustment: bigint, cdpOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, priceOracleOref: OutRef | undefined, interestOracleOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, interestCollectorOref: OutRef, sysParams: SystemParams, lucid: LucidEvolution, currentSlot: number, pythMessage?: string | undefined, pythStateOref?: OutRef | undefined): Promise<TxBuilder>;
declare function depositCdp(amount: bigint, cdpOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, interestOracleOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, interestCollectorOref: OutRef, params: SystemParams, lucid: LucidEvolution, currentSlot: number): Promise<TxBuilder>;
declare function withdrawCdp(amount: bigint, cdpOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, priceOracleOref: OutRef | undefined, interestOracleOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, interestCollectorOref: OutRef, params: SystemParams, lucid: LucidEvolution, currentSlot: number, pythMessage?: string | undefined, pythStateOref?: OutRef | undefined): Promise<TxBuilder>;
declare function mintCdp(amount: bigint, cdpOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, priceOracleOref: OutRef | undefined, interestOracleOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, interestCollectorOref: OutRef, params: SystemParams, lucid: LucidEvolution, currentSlot: number, pythMessage?: string | undefined, pythStateOref?: OutRef | undefined): Promise<TxBuilder>;
declare function burnCdp(amount: bigint, cdpOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, interestOracleOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, interestCollectorOref: OutRef, params: SystemParams, lucid: LucidEvolution, currentSlot: number): Promise<TxBuilder>;
declare function closeCdp(cdpOref: OutRef, collateralAssetOref: OutRef, interestOracleOref: OutRef, interestCollectorOref: OutRef, sysParams: SystemParams, lucid: LucidEvolution, currentSlot: number): Promise<TxBuilder>;
declare function redeemCdp(
/**
* When the goal is to redeem the maximum possible, just pass in the total minted amount of the CDP.
* The logic will automatically cap the amount to the max.
*/
attemptedRedemptionIAssetAmt: bigint, cdpOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, priceOracleOref: OutRef | undefined, interestOracleOref: OutRef, interestCollectorOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, govOref: OutRef, sysParams: SystemParams, lucid: LucidEvolution, currentSlot: number, pythMessage?: string | undefined, _pythStateOref?: OutRef | undefined): Promise<TxBuilder>;
declare function freezeCdp(cdpOref: OutRef, iassetOref: OutRef, collateralAssetOref: OutRef, priceOracleOref: OutRef | undefined, interestOracleOref: OutRef, sysParams: SystemParams, lucid: LucidEvolution, currentSlot: number, pythMessage?: string | undefined, pythStateOref?: OutRef | undefined): Promise<TxBuilder>;
declare function liquidateCdp(cdpOref: OutRef, stabilityPoolOref: OutRef, interestCollectorOref: OutRef,
/**
* `undefined` in case using direct treasury payment.
*/
treasuryOref: OutRef | undefined, sysParams: SystemParams, lucid: LucidEvolution): Promise<TxBuilder>;
declare function mergeCdps(cdpsToMergeUtxos: OutRef[], sysParams: SystemParams, lucid: LucidEvolution): Promise<TxBuilder>;
declare const InterestOracleDatumSchema: TSchema.Struct<{
unitaryInterest: TSchema.Integer;
interestRate: TSchema.Struct<{
getOnChainInt: TSchema.Integer;
}>;
lastUpdated: TSchema.Integer;
}>;
type InterestOracleDatum = typeof InterestOracleDatumSchema.Type;
declare const InterestOracleRedeemerSchema: TSchema.Struct<{
newInterestRate: TSchema.Struct<{
getOnChainInt: TSchema.Integer;
}>;
currentTime: TSchema.Integer;
}>;
type InterestOracleRedeemer = typeof InterestOracleRedeemerSchema.Type;
declare function serialiseFeedInterestOracleRedeemer(redeemer: InterestOracleRedeemer): string;
declare function parseInterestOracleDatum(datum: string): InterestOracleDatum;
declare function serialiseInterestOracleDatum(datum: InterestOracleDatum): string;
declare const CdpRedeemerSchema: TSchema.Union<[TSchema.Struct<{
AdjustCdp: TSchema.Struct<{
currentTime: TSchema.Integer;
debtAdjustment: TSchema.Integer;
collateralAdjustment: TSchema.Integer;
priceOracleIdx: TSchema.Union<[TSchema.Struct<{
OracleRefInputIdx: TSchema.Integer;
}>, TSchema.Struct<{
OracleOutputIdx: TSchema.Integer;
}>, TSchema.Literal<["OracleVoid"]>]>;
}>;
}>, TSchema.Struct<{
CloseCdp: TSchema.Struct<{
currentTime: TSchema.Integer;
}>;
}>, TSchema.Literal<["RedeemCdp"]>, TSchema.Struct<{
FreezeCdp: TSchema.Struct<{
currentTime: TSchema.Integer;
priceOracleIdx: TSchema.Union<[TSchema.Struct<{
OracleRefInputIdx: TSchema.Integer;
}>, TSchema.Struct<{
OracleOutputIdx: TSchema.Integer;
}>, TSchema.Literal<["OracleVoid"]>]>;
}>;
}>, TSchema.Literal<["MergeCdps"]>, TSchema.Struct<{
MergeAuxiliary: TSchema.Struct<{
mainMergeUtxo: TSchema.Struct<{
txHash: TSchema.ByteArray;
outputIndex: TSchema.Integer;
}>;
}>;
}>, TSchema.Literal<["Liquidate"]>, TSchema.Struct<{
SettleInterest: TSchema.Struct<{
interestCollectorInputIndex: TSchema.Integer;
}>;
}>, TSchema.Struct<{
Stableswap: TSchema.Struct<{
forwardingInputIndex: TSchema.Integer;
}>;
}>, TSchema.Literal<["UpgradeVersion"]>]>;
type CdpRedeemer = typeof CdpRedeemerSchema.Type;
declare const RedeemCdpWithdrawalRedeemerSchema: TSchema.Struct<{
cdpOutReference: TSchema.Struct<{
txHash: TSchema.ByteArray;
outputIndex: TSchema.Integer;
}>;
currentTime: TSchema.Integer;
priceOracleIdx: TSchema.Union<[TSchema.Struct<{
OracleRefInputIdx: TSchema.Integer;
}>, TSchema.Struct<{
OracleOutputIdx: TSchema.Integer;
}>, TSchema.Literal<["OracleVoid"]>]>;
}>;
type RedeemCdpWithdrawalRedeemer = typeof RedeemCdpWithdrawalRedeemerSchema.Type;
declare const CDPContentSchema: TSchema.Struct<{
cdpOwner: TSchema.NullOr<TSchema.ByteArray>;
iasset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
mintedAmt: TSchema.Integer;
cdpFees: TSchema.Union<[TSchema.Struct<{
ActiveCDPInterestTracking: TSchema.Struct<{
lastSettled: TSchema.Integer;
unitaryInterestSnapshot: TSchema.Integer;
}>;
}>, TSchema.Struct<{
FrozenCDPAccumulatedFees: TSchema.Struct<{
iassetInterest: TSchema.Integer;
collateralTreasury: TSchema.Integer;
}>;
}>]>;
}>;
type CDPContent = typeof CDPContentSchema.Type;
declare const StableswapPoolContentSchema: TSchema.Struct<{
/** Use the HEX encoding */
iasset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
collateralToIassetRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
mintingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
redemptionFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
mintingEnabled: TSchema.Boolean;
redemptionEnabled: TSchema.Boolean;
feeManager: TSchema.NullOr<TSchema.ByteArray>;
minMintOrderAmount: TSchema.Integer;
minRedemptionOrderAmount: TSchema.Integer;
stableswapValHash: TSchema.ByteArray;
}>;
type StableswapPoolContent = typeof StableswapPoolContentSchema.Type;
declare const CDPDatumSchema: TSchema.Union<[TSchema.Struct<{
CDP: TSchema.Struct<{
cdpOwner: TSchema.NullOr<TSchema.ByteArray>;
iasset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
mintedAmt: TSchema.Integer;
cdpFees: TSchema.Union<[TSchema.Struct<{
ActiveCDPInterestTracking: TSchema.Struct<{
lastSettled: TSchema.Integer;
unitaryInterestSnapshot: TSchema.Integer;
}>;
}>, TSchema.Struct<{
FrozenCDPAccumulatedFees: TSchema.Struct<{
iassetInterest: TSchema.Integer;
collateralTreasury: TSchema.Integer;
}>;
}>]>;
}>;
}>, TSchema.Struct<{
StableswapPool: TSchema.Struct<{
/** Use the HEX encoding */
iasset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
collateralToIassetRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
mintingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
redemptionFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
mintingEnabled: TSchema.Boolean;
redemptionEnabled: TSchema.Boolean;
feeManager: TSchema.NullOr<TSchema.ByteArray>;
minMintOrderAmount: TSchema.Integer;
minRedemptionOrderAmount: TSchema.Integer;
stableswapValHash: TSchema.ByteArray;
}>;
}>]>;
type CDPDatum = typeof CDPDatumSchema.Type;
declare function serialiseCdpRedeemer(r: CdpRedeemer): string;
declare function parseCdpRedeemer(datum: string): option.Option<CdpRedeemer>;
declare function parseCdpRedeemerOrThrow(datum: string): CdpRedeemer;
declare function serialiseRedeemCdpWithdrawalRedeemer(r: RedeemCdpWithdrawalRedeemer): string;
declare function serialiseCdpDatum(d: CDPContent): string;
declare function serialiseStableswapPoolDatum(d: StableswapPoolContent): string;
declare function parseCdpDatum(datum: string): option.Option<CDPContent>;
declare function parseCdpDatumOrThrow(datum: string): CDPContent;
declare function parseStableswapPoolDatum(datum: string): option.Option<StableswapPoolContent>;
declare function parseStableswapPoolDatumOrThrow(datum: string): StableswapPoolContent;
declare const RationalSchema: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
type Rational = typeof RationalSchema.Type;
declare const rationalZero: Rational;
declare function rationalFromInt(a: bigint): Rational;
declare function rationalFloor(a: Rational): bigint;
declare function rationalCeil(a: Rational): bigint;
declare function rationalNegate(a: Rational): Rational;
declare function rationalAdd(a: Rational, b: Rational): Rational;
declare function rationalSub(a: Rational, b: Rational): Rational;
declare function rationalMul(a: Rational, b: Rational): Rational;
declare function rationalDiv(a: Rational, b: Rational): Rational;
declare function rationalToFloat(a: Rational): number;
/**
* Amount of iasset equal in value to the given number of collateral amount.
*/
declare function iassetValueOfCollateral(collateralAmt: bigint, oraclePrice: Rational): bigint;
/**
* This is mostly for debugging purposes.
*/
declare function cdpCollateralRatioPercentage(currentSlot: number, iassetPrice: Rational, cdpUtxo: UTxO, cdpContent: CDPContent, interestOracleDatum: InterestOracleDatum, network: Network): number;
/**
* The amount of iassets to redeem to reach the RMR.
*/
declare function calculateIAssetRedemptionAmt(collateralAmt: bigint, mintedAmt: bigint, price: Rational, rmr: Rational): bigint;
/**
* Calculates the allowable redemption amount so the min collateral constraint still holds.
* It caps the redemption amount to still satisfy the min collateral.
*
* Returns uncapped max iassets /\ capped max iassets
*
* The derived calculation comes from the following equation where:
* c - collateral
* m - min collateral
* r - reimburstment ratio
* x - redemption amount
*
* `c - x + r * x = m`
* `-x + r * x = m - c`
* `x * (r - 1) = m - c`
* `x = (m - c) / r - 1`
*/
declare function calculateMinCollateralCappedIAssetRedemptionAmt(collateralAmt: bigint, mintedAmt: bigint, price: Rational, rmr: Rational, reimbursementRatio: Rational, minCollateral: bigint): {
uncappedIAssetRedemptionAmt: bigint;
cappedIAssetRedemptionAmt: bigint;
};
declare function adjustPriceToDecimals(extraDecimals: bigint, price: Rational): Rational;
declare const CdpParamsSchema: _lucid_evolution_lucid.TObject<{
cdp_auth_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
cdp_asset_symbol: _lucid_evolution_lucid.TUnsafe<string>;
iasset_auth_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
collateral_asset_auth_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
stability_pool_auth_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
upgrade_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
version_record_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
interest_collector_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
sp_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
iasset_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
treasury_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
cdp_redeem_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
bias_time: _lucid_evolution_lucid.TUnsafe<bigint>;
}>;
type CdpParams = Data.Static<typeof CdpParamsSchema>;
declare function castCdpParams(params: CdpParams): Data;
declare const CdpRedeemParamsSchema: _lucid_evolution_lucid.TObject<{
cdp_auth_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
cdp_asset_symbol: _lucid_evolution_lucid.TUnsafe<string>;
iasset_auth_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
collateral_asset_auth_token: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
interest_collector_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
iasset_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
treasury_val_hash: _lucid_evolution_lucid.TUnsafe<string>;
gov_nft: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
partial_redemption_extra_fee_lovelace: _lucid_evolution_lucid.TUnsafe<bigint>;
bias_time: _lucid_evolution_lucid.TUnsafe<bigint>;
}>;
type CdpRedeemParams = Data.Static<typeof CdpRedeemParamsSchema>;
declare function castCdpRedeemParams(params: CdpRedeemParams): Data;
declare const mkCdpValidatorFromSP: (params: CdpParamsSP) => SpendingValidator;
declare const mkCdpRedeemValidatorFromSP: (params: CdpRedeemParamsSP) => WithdrawalValidator;
declare const CDPCreatorParamsSchema: _lucid_evolution_lucid.TObject<{
cdpCreatorNft: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
cdpAssetCs: _lucid_evolution_lucid.TUnsafe<string>;
cdpAuthTk: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
iAssetAuthTk: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
collateralAssetAuthTk: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
upgradeToken: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
versionRecordToken: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
cdpScriptHash: _lucid_evolution_lucid.TUnsafe<string>;
treasuryValHash: _lucid_evolution_lucid.TUnsafe<string>;
iassetValHash: _lucid_evolution_lucid.TUnsafe<string>;
biasTime: _lucid_evolution_lucid.TUnsafe<bigint>;
}>;
type CDPCreatorParams = Data.Static<typeof CDPCreatorParamsSchema>;
declare const CDPCreatorParams: CDPCreatorParams;
declare function castCDPCreatorParams(params: CDPCreatorParams): Data;
declare const mkCDPCreatorValidator: (params: CDPCreatorParams) => SpendingValidator;
declare const mkCDPCreatorValidatorFromSP: (params: CDPCreatorParamsSP) => SpendingValidator;
declare const PollManagerParamsSchema: _lucid_evolution_lucid.TObject<{
govNFT: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
pollToken: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
upgradeToken: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
indyAsset: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
govExecuteValHash: _lucid_evolution_lucid.TUnsafe<string>;
pBiasTime: _lucid_evolution_lucid.TUnsafe<bigint>;
shardValHash: _lucid_evolution_lucid.TUnsafe<string>;
treasuryValHash: _lucid_evolution_lucid.TUnsafe<string>;
}>;
type PollManagerParams = Data.Static<typeof PollManagerParamsSchema>;
declare const PollManagerParams: PollManagerParams;
declare function castPollManagerParams(params: PollManagerParams): Data;
declare const PollShardParamsSchema: _lucid_evolution_lucid.TObject<{
pollToken: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
stakingToken: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
indyAsset: _lucid_evolution_lucid.TObject<{
currencySymbol: _lucid_evolution_lucid.TUnsafe<string>;
tokenName: _lucid_evolution_lucid.TUnsafe<string>;
}>;
stakingValHash: _lucid_evolution_lucid.TUnsafe<string>;
}>;
type PollShardParams = Data.Static<typeof PollShardParamsSchema>;
declare const PollShardParams: PollShardParams;
declare function castPollShardParams(params: PollShardParams): Data;
declare const mkPollManagerValidator: (params: PollManagerParams) => SpendingValidator;
declare const mkPollManagerValidatorFromSP: (params: PollManagerParamsSP) => SpendingValidator;
declare const mkPollShardValidator: (params: PollShardParams) => SpendingValidator;
declare const mkPollShardValidatorFromSP: (params: PollShardParamsSP) => SpendingValidator;
/**
* Returns the collector ref script UTXO that was added to ref inputs.
*
* No need to return the TxBuilder since it's stateful object.
*/
declare function collectorFeeTx(fee: bigint, lucid: LucidEvolution, params: SystemParams, tx: TxBuilder, collectorOref: OutRef): Promise<UTxO>;
declare const CollectorRedeemerSchema: TSchema.Union<[TSchema.Literal<["Collect"]>, TSchema.Literal<["DistributeToStakers"]>, TSchema.Literal<["UpgradeVersion"]>]>;
type CollectorRedeemer = typeof CollectorRedeemerSchema.Type;
declare function serialiseCollectorRedeemer(r: CollectorRedeemer): string;
declare const ProtocolParamsSchema: TSchema.Struct<{
proposalDeposit: TSchema.Integer;
votingPeriod: TSchema.Integer;
effectiveDelay: TSchema.Integer;
expirationPeriod: TSchema.Integer;
proposingPeriod: TSchema.Integer;
totalShards: TSchema.Integer;
minimumQuorum: TSchema.Integer;
maxTreasuryLovelaceSpend: TSchema.Integer;
maxTreasuryIndySpend: TSchema.Integer;
cdpRedemptionRequiredSignature: TSchema.NullOr<TSchema.ByteArray>;
electorate: TSchema.Integer;
foundationMultisig: TSchema.Union<[TSchema.Struct<{
Signature: TSchema.Struct<{
keyHash: TSchema.ByteArray;
}>;
}>, TSchema.Struct<{
AtLeast: TSchema.Struct<{
required: TSchema.Integer;
authSignatories: TSchema.Array<effect_Schema.SchemaClass<Data$1.Data, Data$1.Data, never>>;
}>;
}>]>;
}>;
type ProtocolParams = typeof ProtocolParamsSchema.Type;
declare const UpgradePathsSchema: TSchema.Struct<{
upgradeId: TSchema.Integer;
upgradePaths: TSchema.Array<TSchema.Tuple<[TSchema.ByteArray, TSchema.Struct<{
upgradeSymbol: TSchema.ByteArray;
}>]>>;
}>;
type UpgradePaths = typeof UpgradePathsSchema.Type;
declare const ProposeIAssetContentSchema: TSchema.Struct<{
asset: TSchema.ByteArray;
debtMintingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
liquidationProcessingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
stabilityPoolWithdrawalFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
redemptionReimbursementRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
redemptionProcessingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
}>;
type ProposeAssetContent = typeof ProposeIAssetContentSchema.Type;
declare const AddCollateralAssetContentSchema: TSchema.Struct<{
correspondingIAsset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
assetExtraDecimals: TSchema.Integer;
assetPriceInfo: TSchema.Union<[TSchema.Struct<{
Delisted: TSchema.Struct<{
price: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
}>;
}>, TSchema.Struct<{
OracleNft: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
}>, TSchema.Struct<{
DeferredValidation: TSchema.Struct<{
feedValHash: TSchema.ByteArray;
}>;
}>]>;
interestOracleNft: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
redemptionRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
maintenanceRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
liquidationRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
minCollateralAmt: TSchema.Integer;
}>;
type AddCollateralAsssetContent = typeof AddCollateralAssetContentSchema.Type;
declare const ProposeStableswapPoolContentSchema: TSchema.Struct<{
iasset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
collateralToIassetRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
mintingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
redemptionFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
feeManager: TSchema.NullOr<TSchema.ByteArray>;
minMintingAmount: TSchema.Integer;
minRedemptionAmount: TSchema.Integer;
stableswapValHash: TSchema.ByteArray;
}>;
type ProposeStableswapPoolContent = typeof ProposeStableswapPoolContentSchema.Type;
declare const ModifyStableswapPoolContentSchema: TSchema.Struct<{
iasset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
newCollateralToIassetRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
newMintingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
newRedemptionFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
newMintingEnabled: TSchema.Boolean;
newRedemptionEnabled: TSchema.Boolean;
newFeeManager: TSchema.NullOr<TSchema.ByteArray>;
newMinMintingAmount: TSchema.Integer;
newMinRedemptionAmount: TSchema.Integer;
newStableswapValHash: TSchema.ByteArray;
}>;
type ModifyStableswapPoolContent = typeof ModifyStableswapPoolContentSchema.Type;
declare const ProposalContentSchema: TSchema.Union<[TSchema.Struct<{
ProposeIAsset: TSchema.Struct<{
asset: TSchema.ByteArray;
debtMintingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
liquidationProcessingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
stabilityPoolWithdrawalFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
redemptionReimbursementRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
redemptionProcessingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
}>;
}>, TSchema.Struct<{
ModifyIAsset: TSchema.Struct<{
asset: TSchema.ByteArray;
newDebtMintingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
newLiquidationProcessingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
newStabilityPoolWithdrawalFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
newRedemptionReimbursementRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
newRedemptionProcessingFeeRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
}>;
}>, TSchema.Struct<{
AddCollateralAsset: TSchema.Struct<{
correspondingIAsset: TSchema.ByteArray;
collateralAsset: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
assetExtraDecimals: TSchema.Integer;
assetPriceInfo: TSchema.Union<[TSchema.Struct<{
Delisted: TSchema.Struct<{
price: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
}>;
}>, TSchema.Struct<{
OracleNft: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
}>, TSchema.Struct<{
DeferredValidation: TSchema.Struct<{
feedValHash: TSchema.ByteArray;
}>;
}>]>;
interestOracleNft: TSchema.Struct<{
currencySymbol: TSchema.ByteArray;
tokenName: TSchema.ByteArray;
}>;
redemptionRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
maintenanceRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
liquidationRatio: TSchema.Struct<{
numerator: TSchema.Integer;
denominator: TSchema.Integer;
}>;
minCollateralAmt: TSchema.Integer;
}>;
}>, TSchema.Struct<{
UpdateCollateralAsset: T