import { Engine, PCluster, Helper, HANDLER_CMD, loadEngine } from "@ruleos/core-engine-sdk";
import { ethers } from "ethers";
let [signer] = await ethers.getSigners();
// initialize the SDK
let contracts = await loadEngine();
const engine = await Engine.create(signer, contracts);
// create cluster from protocolJson
let protocolJson = { /*...*/ };
let pCluster = PCluster.load(protocolJson);
let cluster = pCluster.toCluster();
// register cluster
let eventCluster = await engine.regRule(cluster);
// input for rule
let inTokenList: Token[] = [
Token.newERC20("erc20.address", "5000000000000000000")
];
let eventTask = await engine.input(eventCluster.clusterId, 0, 1, 1, 0, 10000, inTokenList, []);
// execute
eventTask = await engine.execute(eventTask.taskId, Helper.rlp([HANDLER_CMD.EXECUTE]), [0]);