@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
JavaScript
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