UNPKG

@nori-zk/mina-token-bridge

Version:

A Mina zk-program contract allowing users to mint tokens on Nori Bridge.

33 lines (32 loc) 1.77 kB
import { AccountUpdate, AccountUpdateForest, Bool, JsonProof, PublicKey, State, TokenContract, VerificationKey } from 'o1js'; import { FungibleTokenAdminBase, NoriTokenControllerDeployProps } from './types.js'; import { EthDepositProgramProofType } from './e2ePrerequisites.js'; import { ProvableEcdsaSigPresentation } from './credentialAttestation.js'; export interface MintProofData { ethDepositProof: EthDepositProgramProofType; presentationProof: ProvableEcdsaSigPresentation; } export interface MintProofDataJson { ethDepositProofJson: JsonProof; presentationProofStr: string; } export declare class NoriTokenController extends TokenContract implements FungibleTokenAdminBase { adminPublicKey: State<PublicKey>; tokenBaseAddress: State<PublicKey>; ethProcessorAddress: State<PublicKey>; storageVKHash: State<import("o1js/dist/node/lib/provable/field.js").Field>; mintLock: State<import("o1js/dist/node/lib/provable/bool.js").Bool>; deploy(props: NoriTokenControllerDeployProps): Promise<void>; approveBase(forest: AccountUpdateForest): Promise<void>; setUpStorage(user: PublicKey, vk: VerificationKey): Promise<void>; /** Update the verification key. */ updateVerificationKey(vk: VerificationKey): Promise<void>; private ensureAdminSignature; noriMint(ethDepositProof: EthDepositProgramProofType, presentationProof: ProvableEcdsaSigPresentation): Promise<void>; canMint(_accountUpdate: AccountUpdate): Promise<import("o1js/dist/node/lib/provable/bool.js").Bool>; canChangeAdmin(_admin: PublicKey): Promise<import("o1js/dist/node/lib/provable/bool.js").Bool>; canPause(): Promise<Bool>; canResume(): Promise<Bool>; canChangeVerificationKey(_vk: VerificationKey): Promise<Bool>; }