@moonsong-labs/moonwall-util
Version:
Testing framework for the Moon family of projects
49 lines (46 loc) • 1.27 kB
JavaScript
import {
ALITH_PRIVATE_KEY
} from "./chunk-EG7W3V7T.js";
// src/functions/contextHelpers.ts
import "@moonbeam-network/api-augment";
import { ethers } from "ethers";
function filterAndApply(events, section, methods, onFound) {
return events.filter(({ event }) => section === event.section && methods.includes(event.method)).map((record) => onFound(record));
}
function getDispatchError({
event: {
data: [dispatchError]
}
}) {
return dispatchError;
}
function getDispatchInfo({ event: { data, method } }) {
return method === "ExtrinsicSuccess" ? data[0] : data[1];
}
function extractError(events = []) {
return filterAndApply(events, "system", ["ExtrinsicFailed"], getDispatchError)[0];
}
function isExtrinsicSuccessful(events = []) {
return filterAndApply(events, "system", ["ExtrinsicSuccess"], () => true).length > 0;
}
function extractInfo(events = []) {
return filterAndApply(
events,
"system",
["ExtrinsicFailed", "ExtrinsicSuccess"],
getDispatchInfo
)[0];
}
var alithSigner = (context) => {
const signer = new ethers.Wallet(ALITH_PRIVATE_KEY, context);
signer.connect(context);
return signer;
};
export {
filterAndApply,
getDispatchError,
extractError,
isExtrinsicSuccessful,
extractInfo,
alithSigner
};