@acurast/cli
Version:
A cli to interact with the Acurast Cloud.
69 lines • 3.07 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { BigNumber } from 'bignumber.js';
export const jobAssignments = (api, keys) => __awaiter(void 0, void 0, void 0, function* () {
const assignments = yield api.query['acurastMarketplace']['storedMatches'].multi(keys);
const values = api.registry.createType('Vec<Option<PalletAcurastMarketplaceAssignment>>', assignments);
const result = values
.map((value, index) => {
if (value.isSome) {
const assignment = value.unwrap();
return {
id: keys[index][1],
processor: keys[index][0],
assignment: codecToJobAssignment(assignment),
};
}
return undefined;
})
.filter((value) => value !== undefined);
return result;
});
const codecToJobAssignment = (codec) => {
const json = codec.toJSON();
return {
slot: json.slot,
startDelay: json.startDelay,
feePerExecution: new BigNumber(json.feePerExecution),
acknowledged: json.acknowledged,
sla: {
total: new BigNumber(json.sla.total),
met: new BigNumber(json.sla.met),
},
pubKeys: json.pubKeys.map((value) => ({
SECP256r1: value.secp256r1,
SECP256k1: value.secp256k1,
ED25519: value.ed25519,
SECP256r1Encryption: value.secp256r1Encryption,
SECP256k1Encryption: value.secp256k1Encryption,
})),
execution: {
All: json.execution.all,
Index: json.execution.index,
},
};
};
export const getAcknowledgedProcessors = (api, jobId) => __awaiter(void 0, void 0, void 0, function* () {
// First get all assigned processors
const assignedProcessors = yield api.query['acurastMarketplace']['assignedProcessors'].entries(jobId);
// Create keys array for jobAssignments
const keys = assignedProcessors.map(([key, _]) => {
const processor = api.createType('AccountId', key.args[1]);
return [processor.toString(), jobId];
});
// Get detailed assignment info
const assignments = yield jobAssignments(api, keys);
return assignments;
// // Filter for acknowledged assignments and return processor addresses
// return assignments
// .filter((info) => info.assignment.acknowledged)
// .map((info) => info.processor)
});
//# sourceMappingURL=jobAssignments.js.map