import { TaskContext } from "compose";
export async function main(
{ evm, logEvent }: TaskContext,
params: { payouts: bigint[]; resultId: string }
) {
try {
const { payouts, resultId } = params;
console.log("Reporting payouts", payouts, resultId);
const wallet = await evm.wallet();
const { hash } = await wallet.writeContract(
evm.chains.polygon,
"0x1234567890abcdef1234567890abcdef12345678" as `0x${string}`,
"reportPayouts(bytes32,uint256[])",
[resultId, payouts]
);
return { hash };
} catch (error) {
if (error instanceof Error && error.message.includes("payout denominator already set")) {
await logEvent({
code: "PAYOUT_DENOMINATOR_ALREADY_SET",
message: `Payout denominator already set, marking as resolved`,
data: JSON.stringify(error),
});
} else {
console.error("Error reporting payout", error);
throw error;
}
}
}