UNPKG

@nori-zk/mina-token-bridge

Version:

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

78 lines (70 loc) 3.83 kB
var _E2eWorker_noriTokenControllerSubmitterInst; import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib"; import { ProvableEcdsaSigPresentation, } from '../../credentialAttestation.js'; import { NoriTokenControllerSubmitter, } from '../../NoriControllerSubmitter.js'; import { EthDepositProgramProofType, } from '../../e2ePrerequisites.js'; import { PrivateKey, PublicKey } from 'o1js'; import { Presentation } from 'mina-attestations'; export class E2eWorker { constructor() { _E2eWorker_noriTokenControllerSubmitterInst.set(this, void 0); } async ready(config) { __classPrivateFieldSet(this, _E2eWorker_noriTokenControllerSubmitterInst, new NoriTokenControllerSubmitter(config), "f"); await __classPrivateFieldGet(this, _E2eWorker_noriTokenControllerSubmitterInst, "f").compileContracts(); await __classPrivateFieldGet(this, _E2eWorker_noriTokenControllerSubmitterInst, "f").networkSetUp(); } async setupStorage(userPublicKeyBase58) { const userPublicKey = PublicKey.fromBase58(userPublicKeyBase58); return __classPrivateFieldGet(this, _E2eWorker_noriTokenControllerSubmitterInst, "f").setupStorage(userPublicKey); } async mint(userPublicKeyBase58, proofData, userPrivateKeyBase58, fundNewAccount = true) { const userPublicKey = PublicKey.fromBase58(userPublicKeyBase58); const { ethDepositProofJson, presentationProofStr } = proofData; const ethDepositProof = await EthDepositProgramProofType.fromJSON(ethDepositProofJson); const presentationProof = ProvableEcdsaSigPresentation.from(Presentation.fromJSON(presentationProofStr)); const proofDataReInflated = { ethDepositProof, presentationProof, }; const userPrivateKey = PrivateKey.fromBase58(userPrivateKeyBase58); return __classPrivateFieldGet(this, _E2eWorker_noriTokenControllerSubmitterInst, "f").mint(userPublicKey, proofDataReInflated, userPrivateKey, fundNewAccount); } } _E2eWorker_noriTokenControllerSubmitterInst = new WeakMap(); /* // Compile programs / contracts console.time('compileEcdsaEthereum'); await compileEcdsaEthereum(); console.timeEnd('compileEcdsaEthereum'); // 1:20.330 (m:ss.mmm) console.time('compilePresentationVerifier'); await compileEcdsaSigPresentationVerifier(); console.timeEnd('compilePresentationVerifier'); // 11.507s console.time('ContractDepositAttestor compile'); const { verificationKey: contractDepositAttestorVerificationKey } = await ContractDepositAttestor.compile({ forceRecompile: true }); console.timeEnd('ContractDepositAttestor compile'); console.log( `ContractDepositAttestor contract compiled vk: '${contractDepositAttestorVerificationKey.hash}'.` ); console.time('EthVerifier compile'); const { verificationKey: ethVerifierVerificationKey } = await EthVerifier.compile({ forceRecompile: true }); console.timeEnd('EthVerifier compile'); console.log( `EthVerifier compiled vk: '${ethVerifierVerificationKey.hash}'.` ); console.time('E2EPrerequisitesProgram compile'); const { verificationKey: mockE2EPrerequisitesProgram } = await EthDepositProgram.compile({ forceRecompile: true }); console.timeEnd('E2EPrerequisitesProgram compile'); console.log( `E2EPrerequisitesProgram compiled vk: '${mockE2EPrerequisitesProgram.hash}'.` ); console.time('MockCredVerifier compile'); console.timeEnd('MockCredVerifier compile'); console.log( `MockCredVerifier compiled vk: '${mockCredVerifierVerificationKey.hash}'.` ); */ //# sourceMappingURL=worker.js.map