UNPKG

@zkp2p/reclaim-witness-sdk

Version:

<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>

52 lines 5.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createTaskOnMechain = void 0; const ethers_1 = require("ethers"); const governanceABI_1 = require("../../mechain/abis/governanceABI"); const taskABI_1 = require("../../mechain/abis/taskABI"); const constants_1 = require("../../mechain/constants"); const env_1 = require("../../utils/env"); const createTaskOnMechain = async ({ timestamp }) => { const { taskContract } = await getContracts(); const seed = ethers_1.utils.randomBytes(32); // Perform a static call to fetch taskId and attestors for the next task const result = await taskContract.callStatic.createNewTaskRequest(seed, timestamp); const taskId = result[0]; // Fetch requiredAttestors to determine how many proofs to request const requiredAttestors = await taskContract.requiredAttestors(); const hosts = []; // Fetch attestors's WebSocket URI, e.g. wss://attestor.reclaimprotocol.org/ws for (let i = 0; i < requiredAttestors; i++) { hosts.push(result[1][i].host); } // Perform the call that was statically-called previously const tx = await taskContract.createNewTaskRequest(seed, timestamp); await tx.wait(); return { taskId: taskId, requiredAttestors: requiredAttestors, hosts: hosts }; }; exports.createTaskOnMechain = createTaskOnMechain; async function getContracts() { const privateKey = (0, env_1.getEnvVariable)('MECHAIN_PRIVATE_KEY'); const taskContractAddress = (0, env_1.getEnvVariable)('TASK_CONTRACT_ADDRESS') || constants_1.TASK_CONTRACT_ADDRESS; const governanceContractAddress = (0, env_1.getEnvVariable)('GOVERNANCE_CONTRACT_ADDRESS') || constants_1.GOVERNANCE_CONTRACT_ADDRESS; if (!privateKey) { throw new Error('MECHAIN_PRIVATE_KEY environment variable is not set'); } try { const provider = new ethers_1.providers.JsonRpcProvider(constants_1.RPC_URL); // Validate connection to provider await provider.getNetwork(); const signer = new ethers_1.Wallet(privateKey, provider); const taskContract = new ethers_1.Contract(taskContractAddress, taskABI_1.taskABI, signer); const governanceContract = new ethers_1.Contract(governanceContractAddress, governanceABI_1.governanceABI, signer); return { taskContract, governanceContract }; } catch (error) { throw new Error(`Failed to initialize contracts: ${error.message || error}`); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVGFza09uTWVjaGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvaGFuZGxlcnMvY3JlYXRlVGFza09uTWVjaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBMkQ7QUFDM0Qsa0VBQThEO0FBQzlELHNEQUFrRDtBQUNsRCxxREFBbUc7QUFFbkcsdUNBQThDO0FBR3ZDLE1BQU0sbUJBQW1CLEdBQXNDLEtBQUssRUFBQyxFQUMzRSxTQUFTLEVBQ1QsRUFBRSxFQUFFO0lBRUosTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sWUFBWSxFQUFFLENBQUE7SUFFN0MsTUFBTSxJQUFJLEdBQUcsY0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVsQyx3RUFBd0U7SUFDeEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUNoRSxJQUFJLEVBQ0osU0FBUyxDQUNULENBQUE7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFXLENBQUE7SUFFbEMsa0VBQWtFO0lBQ2xFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxZQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtJQUVoRSxNQUFNLEtBQUssR0FBYyxFQUFFLENBQUE7SUFFM0IsOEVBQThFO0lBQzlFLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsTUFBTSxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ25FLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO0lBRWYsT0FBTztRQUNOLE1BQU0sRUFBRSxNQUFNO1FBQ2QsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLEtBQUssRUFBRSxLQUFLO0tBQ1osQ0FBQTtBQUNGLENBQUMsQ0FBQTtBQW5DWSxRQUFBLG1CQUFtQix1QkFtQy9CO0FBRUQsS0FBSyxVQUFVLFlBQVk7SUFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBQSxvQkFBYyxFQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDeEQsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLG9CQUFjLEVBQUMsdUJBQXVCLENBQUMsSUFBSSxpQ0FBcUIsQ0FBQTtJQUM1RixNQUFNLHlCQUF5QixHQUFHLElBQUEsb0JBQWMsRUFBQyw2QkFBNkIsQ0FBQyxJQUFJLHVDQUEyQixDQUFBO0lBRTlHLElBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVELElBQUksQ0FBQztRQUNKLE1BQU0sUUFBUSxHQUFHLElBQUksa0JBQVMsQ0FBQyxlQUFlLENBQUMsbUJBQU8sQ0FBQyxDQUFBO1FBQ3ZELGtDQUFrQztRQUNsQyxNQUFNLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUUzQixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFFL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxpQkFBUSxDQUNoQyxtQkFBbUIsRUFDbkIsaUJBQU8sRUFDUCxNQUFNLENBQ04sQ0FBQTtRQUVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxpQkFBUSxDQUN0Qyx5QkFBeUIsRUFDekIsNkJBQWEsRUFDYixNQUFNLENBQ04sQ0FBQTtRQUVELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtJQUM1QyxDQUFDO0lBQUMsT0FBTSxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0FBRUYsQ0FBQyJ9