UNPKG

pulsar-contracts

Version:

114 lines (113 loc) 5.74 kB
import { SmartContract, State, Field, UInt64, Provable, Bool } from 'o1js'; import { SettlementProof } from './SettlementProof.js'; import { ValidateReduceProof } from './ValidateReduce.js'; import { Batch, PulsarAction, PulsarAuth } from './types/PulsarAction.js'; import { ReduceMask } from './types/common.js'; import { ActionStackProof } from './ActionStack.js'; export { SettlementContract, SettlementEvent }; declare const SettlementEvent_base: (new (value: { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }) => { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }) & { _isStruct: true; } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{ fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }, { fromActionState: bigint; endActionState: bigint; mask: bigint; }>, "fromFields"> & { fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[]) => { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }; } & { fromValue: (value: { fromActionState: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; endActionState: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; mask: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; }) => { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }; toInput: (x: { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }) => { fromActionState: string; endActionState: string; mask: string; }; fromJSON: (x: { fromActionState: string; endActionState: string; mask: string; }) => { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { fromActionState: import("o1js/dist/node/lib/provable/field.js").Field; endActionState: import("o1js/dist/node/lib/provable/field.js").Field; mask: import("o1js/dist/node/lib/provable/field.js").Field; }; }; declare class SettlementEvent extends SettlementEvent_base { } declare class SettlementContract extends SmartContract { actionState: State<import("o1js/dist/node/lib/provable/field.js").Field>; merkleListRoot: State<import("o1js/dist/node/lib/provable/field.js").Field>; stateRoot: State<import("o1js/dist/node/lib/provable/field.js").Field>; blockHeight: State<import("o1js/dist/node/lib/provable/field.js").Field>; depositListHash: State<import("o1js/dist/node/lib/provable/field.js").Field>; withdrawalListHash: State<import("o1js/dist/node/lib/provable/field.js").Field>; reducer: { dispatch(action: PulsarAction): void; reduce<State>(actions: import("o1js").MerkleList<import("o1js").MerkleList<PulsarAction>>, stateType: Provable<State>, reduce: (state: State, action: PulsarAction) => State, initial: State, options?: { maxUpdatesWithActions?: number; maxActionsPerUpdate?: number; skipActionStatePrecondition?: boolean; }): State; forEach(actions: import("o1js").MerkleList<import("o1js").MerkleList<PulsarAction>>, reduce: (action: PulsarAction) => void, options?: { maxUpdatesWithActions?: number; maxActionsPerUpdate?: number; skipActionStatePrecondition?: boolean; }): void; getActions({ fromActionState, endActionState, }?: { fromActionState?: Field; endActionState?: Field; }): import("o1js").MerkleList<import("o1js").MerkleList<PulsarAction>>; fetchActions({ fromActionState, endActionState, }?: { fromActionState?: Field; endActionState?: Field; }): Promise<PulsarAction[][]>; }; readonly events: { Settlement: typeof SettlementEvent; }; deploy(): Promise<void>; initialize(merkleListRoot: Field): Promise<void>; settle(settlementProof: SettlementProof): Promise<void>; deposit(amount: UInt64, pulsarAuth: PulsarAuth): Promise<void>; withdraw(amount: UInt64): Promise<void>; reduce(batch: Batch, useActionStack: Bool, actionStackProof: ActionStackProof, mask: ReduceMask, validateReduceProof: ValidateReduceProof): Promise<void>; }