import { Compare, Eq, Option, Range } from './core.js'; import { StatePreconditions, StateDefinition, StateLayout } from './state.js'; import { Bool } from '../../provable/bool.js'; import { Field } from '../../provable/field.js'; import { UInt32 } from '../../provable/int.js'; import { PublicKey } from '../../provable/crypto/signature.js'; import { HashInput } from '../../provable/types/provable-derivers.js'; import * as BindingsLayout from '../../../bindings/mina-transaction/gen/v2/js-layout.js'; import { MinaAmount } from './currency.js'; export { Preconditions, Precondition, PreconditionsDescription, EpochDataPreconditions, EpochLedgerPreconditions, }; declare namespace Precondition { class Equals> { isEnabled: Bool; value: T; constructor(isEnabled: Bool, value: T); toStringHuman(): string; toValue(defaultValue: D): T | D; mapToValue(defaultValue: D, f: (t: T) => R): R | D; toOption(): Option; isSatisfied(x: T): Bool; static disabled>(defaultValue: T): Equals; static equals>(value: T): Equals; static fromOption>(option: Option): Equals; static from>(value: Equals | T | undefined, defaultValue: T): Equals; } class InRange> { isEnabled: Bool; lower: T; upper: T; constructor(isEnabled: Bool, lower: T, upper: T); toStringHuman(): string; toValue(defaultValue: D): { lower: T; upper: T; } | D; mapToValue(defaultValue: D, f: (t: T) => R): { lower: R; upper: R; } | D; toOption(): Option>; isSatisfied(x: T): Bool; static disabled>(defaultValue: T | { lower: T; upper: T; }): InRange; static equals>(value: T): InRange; static betweenInclusive>(lower: T, upper: T): InRange; static fromOption>(option: Option>): InRange; static from>(value: InRange | T | undefined, defaultValue: T | { lower: T; upper: T; }): InRange; } } type PreconditionsDescription = { network?: NetworkPreconditionsDescription | NetworkPreconditions; account?: AccountPreconditionsDescription | AccountPreconditions; validWhile?: UInt32 | Precondition.InRange; }; declare class Preconditions { readonly network: NetworkPreconditions; readonly account: AccountPreconditions; readonly validWhile: Precondition.InRange; constructor(State: StateDefinition, descr?: PreconditionsDescription); toGeneric(): Preconditions; static fromGeneric(x: Preconditions, State: StateDefinition): Preconditions; toInternalRepr(): BindingsLayout.Preconditions; static fromInternalRepr(x: BindingsLayout.Preconditions): Preconditions; toJSON(): any; toInput(): HashInput; toFields(): Field[]; static sizeInFields(): number; static emptyPoly(State: StateDefinition): Preconditions; static empty(): Preconditions; static check(_x: Preconditions): void; static toJSON(x: Preconditions): any; static toInput(x: Preconditions): HashInput; static toFields(x: Preconditions): Field[]; static fromFields(fields: Field[], aux: any[]): Preconditions; static toAuxiliary(x?: Preconditions): any[]; static toValue(x: Preconditions): Preconditions; static fromValue(x: Preconditions): Preconditions; static from(State: StateDefinition, value: Preconditions | PreconditionsDescription | undefined): Preconditions; } type EpochLedgerPreconditionsDescription = { hash?: Field | Precondition.Equals; totalCurrency?: MinaAmount | Precondition.InRange; }; declare class EpochLedgerPreconditions { readonly hash: Precondition.Equals; readonly totalCurrency: Precondition.InRange; constructor(descr?: EpochLedgerPreconditionsDescription); toInternalRepr(): BindingsLayout.EpochLedgerPrecondition; static fromInternalRepr(x: BindingsLayout.EpochLedgerPrecondition): EpochLedgerPreconditions; toJSON(): any; toInput(): HashInput; toFields(): Field[]; static sizeInFields(): number; static empty(): EpochLedgerPreconditions; static check(_x: EpochLedgerPreconditions): void; static toJSON(x: EpochLedgerPreconditions): any; static toInput(x: EpochLedgerPreconditions): HashInput; static toFields(x: EpochLedgerPreconditions): Field[]; static fromFields(fields: Field[], aux: any[]): EpochLedgerPreconditions; static toAuxiliary(x?: EpochLedgerPreconditions): any[]; static toValue(x: EpochLedgerPreconditions): EpochLedgerPreconditions; static fromValue(x: EpochLedgerPreconditions): EpochLedgerPreconditions; static from(value: EpochLedgerPreconditions | EpochLedgerPreconditionsDescription | undefined): EpochLedgerPreconditions; } type EpochDataPreconditionsDescription = { ledger?: EpochLedgerPreconditions | EpochLedgerPreconditionsDescription; seed?: Field | Precondition.Equals; startCheckpoint?: Field | Precondition.Equals; lockCheckpoint?: Field | Precondition.Equals; epochLength?: UInt32 | Precondition.InRange; }; declare class EpochDataPreconditions { readonly ledger: EpochLedgerPreconditions; readonly seed: Precondition.Equals; readonly startCheckpoint: Precondition.Equals; readonly lockCheckpoint: Precondition.Equals; readonly epochLength: Precondition.InRange; constructor(descr?: EpochDataPreconditionsDescription); toInternalRepr(): BindingsLayout.EpochDataPrecondition; static fromInternalRepr(x: BindingsLayout.EpochDataPrecondition): EpochDataPreconditions; toJSON(): any; toInput(): HashInput; toFields(): Field[]; static sizeInFields(): number; static empty(): EpochDataPreconditions; static check(_x: EpochDataPreconditions): void; static toJSON(x: EpochDataPreconditions): any; static toInput(x: EpochDataPreconditions): HashInput; static toFields(x: EpochDataPreconditions): Field[]; static fromFields(fields: Field[], aux: any[]): EpochDataPreconditions; static toAuxiliary(x?: EpochDataPreconditions): any[]; static toValue(x: EpochDataPreconditions): EpochDataPreconditions; static fromValue(x: EpochDataPreconditions): EpochDataPreconditions; static from(value: EpochDataPreconditions | EpochDataPreconditionsDescription | undefined): EpochDataPreconditions; } type NetworkPreconditionsDescription = { snarkedLedgerHash?: Field | Precondition.Equals; blockchainLength?: UInt32 | Precondition.InRange; minWindowDensity?: UInt32 | Precondition.InRange; totalCurrency?: MinaAmount | Precondition.InRange; globalSlotSinceGenesis?: UInt32 | Precondition.InRange; stakingEpochData?: EpochDataPreconditions | EpochDataPreconditionsDescription; nextEpochData?: EpochDataPreconditions | EpochDataPreconditionsDescription; }; declare class NetworkPreconditions { readonly snarkedLedgerHash: Precondition.Equals; readonly blockchainLength: Precondition.InRange; readonly minWindowDensity: Precondition.InRange; readonly totalCurrency: Precondition.InRange; readonly globalSlotSinceGenesis: Precondition.InRange; readonly stakingEpochData: EpochDataPreconditions; readonly nextEpochData: EpochDataPreconditions; constructor(descr?: NetworkPreconditionsDescription); toInternalRepr(): BindingsLayout.NetworkPrecondition; static fromInternalRepr(x: BindingsLayout.NetworkPrecondition): NetworkPreconditions; static empty(): NetworkPreconditions; toJSON(): any; toInput(): HashInput; toFields(): Field[]; static sizeInFields(): number; static check(_x: NetworkPreconditions): void; static toJSON(x: NetworkPreconditions): any; static toInput(x: NetworkPreconditions): HashInput; static toFields(x: NetworkPreconditions): Field[]; static fromFields(fields: Field[], aux: any[]): NetworkPreconditions; static toAuxiliary(x?: NetworkPreconditions): any[]; static toValue(x: NetworkPreconditions): NetworkPreconditions; static fromValue(x: NetworkPreconditions): NetworkPreconditions; static from(value: NetworkPreconditions | NetworkPreconditionsDescription | undefined): NetworkPreconditions; } type AccountPreconditionsDescription = { balance?: MinaAmount | Precondition.InRange; nonce?: UInt32 | Precondition.InRange; receiptChainHash?: Field | Precondition.Equals; delegate?: PublicKey | Precondition.Equals; state?: StatePreconditions; actionState?: Field | Precondition.Equals; isProven?: Bool | Precondition.Equals; isNew?: Bool | Precondition.Equals; }; declare class AccountPreconditions { readonly State: StateDefinition; readonly balance: Precondition.InRange; readonly nonce: Precondition.InRange; readonly receiptChainHash: Precondition.Equals; readonly delegate: Precondition.Equals; readonly state: StatePreconditions; readonly actionState: Precondition.Equals; readonly isProven: Precondition.Equals; readonly isNew: Precondition.Equals; constructor(State: StateDefinition, descr?: AccountPreconditionsDescription); toGeneric(): AccountPreconditions; static fromGeneric(x: AccountPreconditions, State: StateDefinition): AccountPreconditions; toInternalRepr(): BindingsLayout.AccountPrecondition; static fromInternalRepr(x: BindingsLayout.AccountPrecondition): AccountPreconditions; toJSON(): any; toInput(): HashInput; toFields(): Field[]; static generic(descr?: AccountPreconditionsDescription<'GenericState'>): AccountPreconditions; static sizeInFields(): number; static emptyPoly(State: StateDefinition): AccountPreconditions; static empty(): AccountPreconditions; static check(_x: AccountPreconditions): void; static toJSON(x: AccountPreconditions): any; static toInput(x: AccountPreconditions): HashInput; static toFields(x: AccountPreconditions): Field[]; static fromFields(fields: Field[], aux: any[]): AccountPreconditions; static toAuxiliary(x?: AccountPreconditions): any[]; static toValue(x: AccountPreconditions): AccountPreconditions; static fromValue(x: AccountPreconditions): AccountPreconditions; static from(State: StateDefinition, value: AccountPreconditions | AccountPreconditionsDescription | undefined): AccountPreconditions; }