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)
27 lines • 1.23 kB
JavaScript
import { Field, MerkleMap } from 'o1js';
import { PStateManager } from './PStateManager.js';
import { PLottery } from '../PLottery.js';
import { RandomManagerManager } from './RandomManagerManager.js';
import RandomManager from '../Random/RandomManager.js';
export class FactoryManager {
constructor(isMock = true, shouldUpdateState = false) {
this.roundsMap = new MerkleMap();
this.deploys = {};
this.plotteryManagers = {};
this.randomManagers = {};
this.isMock = isMock;
this.shouldUpdateState = shouldUpdateState;
}
addDeploy(round, randomManager, plottery) {
if (this.deploys[round]) {
throw Error(`Round ${round} already deployed`);
}
this.deploys[round] = { round, randomManager, plottery };
this.roundsMap.set(Field(round), Field(1));
const plotteryContract = new PLottery(plottery);
const randomManagerContract = new RandomManager(randomManager);
this.plotteryManagers[round] = new PStateManager(plotteryContract, this.isMock, this.shouldUpdateState);
this.randomManagers[round] = new RandomManagerManager(randomManagerContract);
}
}
//# sourceMappingURL=FactoryStateManager.js.map