startale-aa-sdk
Version:
SDK for startale account integration with support for account abstraction, ERC-7579, ERC-4337.
26 lines • 1.45 kB
JavaScript
import { getAction, parseAccount } from "viem/utils";
import { AccountNotFoundError } from "../../../account/utils/AccountNotFound.js";
import { getUserOperationStatus } from "./getUserOperationStatus.js";
export async function waitForConfirmedUserOperationReceipt(client, parameters) {
const account_ = parseAccount(parameters?.account ?? client.account);
if (!account_)
throw new AccountNotFoundError({
docsPath: "/docs/actions/wallet/waitForConfirmedUserOperationReceipt"
});
const userOperationStatus = await getAction(client, getUserOperationStatus, "getUserOperationStatus")(parameters);
// Recursively loop until the status is CONFIRMED with the pollingInterval
if (userOperationStatus.state === "CONFIRMED") {
userOperationStatus.userOperationReceipt.receipt;
return {
...userOperationStatus.userOperationReceipt,
// Overwrite the receipt type from the confirmed status
receipt: userOperationStatus.userOperationReceipt.receipt
};
}
if (userOperationStatus.state === "REJECTED") {
throw new Error(userOperationStatus.message);
}
await new Promise((resolve) => setTimeout(resolve, client.pollingInterval ?? 1000));
return await getAction(client, waitForConfirmedUserOperationReceipt, "waitForConfirmedUserOperationReceipt")(parameters);
}
//# sourceMappingURL=waitForConfirmedUserOperationReceipt.js.map