UNPKG

l1-lottery-contracts

Version:

This repo contains smart contracts and related scripts for ZkNoid L1 Lottery proposed [here](https://forums.minaprotocol.com/t/zknoid-l1-lottery/6269)

36 lines (35 loc) 1.46 kB
import { Field, JsonProof } from 'o1js'; import { Ticket } from '../Structs/Ticket.js'; import { DistributionProof } from '../Proofs/DistributionProof.js'; import { MerkleMap20, MerkleMap20Witness } from '../Structs/CustomMerkleMap.js'; import { PLottery } from '../PLottery.js'; export declare function mockProof<I, O, P>(publicOutput: O, ProofType: new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: I; publicOutput: any; maxProofsVerified: 0 | 2 | 1; }) => P, publicInput: I): Promise<P>; export declare class BaseStateManager { contract: PLottery; ticketMap: MerkleMap20; roundTickets: (Ticket | undefined)[]; lastTicketInRound: number; ticketNullifierMap: MerkleMap20; startSlot: Field; isMock: boolean; shouldUpdateState: boolean; dpProof: DistributionProof | undefined; constructor(contract: PLottery, isMock?: boolean, shouldUpdateState?: boolean); addTicket(ticket: Ticket): void; getReward(round: number, ticket: Ticket, roundDP?: JsonProof | undefined, ticketIndex?: number): Promise<{ ticketWitness: MerkleMap20Witness; nullifierWitness: MerkleMap20Witness; }>; getRewardByTicketId(ticketId: number): Promise<{ ticketWitness: MerkleMap20Witness; nullifierWitness: MerkleMap20Witness; }>; getRefund(round: number, ticket: Ticket): Promise<{ ticketWitness: MerkleMap20Witness; }>; }