pulsar-contracts
Version:
114 lines (113 loc) • 5.74 kB
TypeScript
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>;
}