import { NexaIDNetwork } from "@nexaid/network-js-sdk";
async function main() {
const provider = window.ethereum;
const nexaIDNetwork = new NexaIDNetwork();
console.log(nexaIDNetwork.supportedChainIds); // [133]
try {
// 1. Initialize
await nexaIDNetwork.init(provider, 133); // HashKey Chain Testnet
console.log("SDK initialized");
// 2. Submit task, set TemplateID and user address
const submitTaskParams = {
templateId: "YOUR_TEMPLATEID",
address: "YOUR_USER_ADDRESS",
};
const submitTaskResult = await nexaIDNetwork.submitTask(submitTaskParams);
console.log("Task submitted:", submitTaskResult);
// 3. Perform attestation
const attestParams = {
...submitTaskParams,
...submitTaskResult,
// extendedParams: JSON.stringify({ attUrlOptimization: true }),
// Optional: optimize the URL of attestation.
};
const attestResult = await nexaIDNetwork.attest(attestParams);
console.log("Attestation completed:", attestResult);
// 4. Verify and poll task result
const verifyAndPollTaskResultParams = {
taskId: attestResult[0].taskId,
reportTxHash: attestResult[0].reportTxHash,
};
const taskResult = await nexaIDNetwork.verifyAndPollTaskResult(
verifyAndPollTaskResultParams
);
console.log("Final result:", taskResult);
// Optional withdrawal
// const settledTaskIds = await nexaIDNetwork.withdrawBalance();
// console.log("Withdrawn:", settledTaskIds);
} catch (error) {
console.error("Main flow error:", error);
}
}
main();