zkapp-cli
Version:
CLI to create zkApps (zero-knowledge apps) for Mina Protocol
124 lines (123 loc) • 4.62 kB
TypeScript
/**
* This file defines the `TicTacToe` smart contract and the helpers it needs.
*/
import { Field, State, PublicKey, SmartContract, Bool, Signature } from 'o1js';
export { Board, TicTacToe };
declare const OptionalBool_base: {
new (isSome: boolean | Bool, value: import("o1js/dist/node/lib/provable/bool").Bool): {
toFields(): import("o1js/dist/node/lib/provable/field").Field[];
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
};
_isStruct: true;
toFields: (value: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) => import("o1js/dist/node/lib/provable/field").Field[];
toAuxiliary: (value?: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
} | undefined) => any[];
fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[], aux: any[]) => {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
};
sizeInFields(): number;
check: (value: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) => void;
toValue: (x: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) => {
isSome: boolean;
value: any;
};
fromValue: ((x: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
} | {
isSome: boolean;
value: any;
}) => {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) & ((value: {
isSome: boolean | import("o1js/dist/node/lib/provable/bool").Bool;
value: any;
}) => {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
});
toCanonical?: ((x: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) => {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) | undefined;
toInput: (x: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) => {
fields?: Field[] | undefined;
packed?: [Field, number][] | undefined;
};
toJSON: (x: {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
}) => {
isSome: boolean;
value: {
toFields: {};
toAuxiliary: {};
fromFields: {};
sizeInFields: {};
check: {};
toValue: {};
fromValue: {};
toCanonical?: {} | null | undefined;
};
};
fromJSON: (x: {
isSome: boolean;
value: {
toFields: {};
toAuxiliary: {};
fromFields: {};
sizeInFields: {};
check: {};
toValue: {};
fromValue: {};
toCanonical?: {} | null | undefined;
};
}) => {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
};
empty: () => {
isSome: import("o1js/dist/node/lib/provable/bool").Bool;
value: import("o1js/dist/node/lib/provable/bool").Bool;
};
};
declare class OptionalBool extends OptionalBool_base {
}
declare class Board {
board: OptionalBool[][];
constructor(serializedBoard: Field);
serialize(): Field;
update(x: Field, y: Field, playerToken: Bool): void;
printState(): void;
checkWinner(): Bool;
}
declare class TicTacToe extends SmartContract {
board: State<import("o1js/dist/node/lib/provable/field").Field>;
nextIsPlayer2: State<import("o1js/dist/node/lib/provable/bool").Bool>;
gameDone: State<import("o1js/dist/node/lib/provable/bool").Bool>;
player1: State<PublicKey>;
player2: State<PublicKey>;
init(): void;
startGame(player1: PublicKey, player2: PublicKey): Promise<void>;
play(pubkey: PublicKey, signature: Signature, x: Field, y: Field): Promise<void>;
}