@owlprotocol/contracts-account-abstraction
Version:
ERC4337 Account Abstraction support for deploying relevant smart contracts and interacting with UserOps.
35 lines (32 loc) • 1.42 kB
text/typescript
import { Transport, Client, Address, Chain, LocalAccount } from "viem";
import {
getPaymasterData,
GetPaymasterDataParameters07,
GetPaymasterDataReturnType07,
} from "../../actions/paymaster/getPaymasterData.js";
import {
getPaymasterStubData,
GetPaymasterStubDataParameters07,
GetPaymasterStubDataReturnType07,
} from "../../actions/paymaster/getPaymasterStubData.js";
import { getUserOperationGasPrice, GetUserOperationGasPriceReturnType } from "../../actions/index.js";
export type BackendPaymasterActions = {
getPaymasterData: (parameters: GetPaymasterDataParameters07) => Promise<GetPaymasterDataReturnType07>;
getPaymasterStubData: (parameters: GetPaymasterStubDataParameters07) => Promise<GetPaymasterStubDataReturnType07>;
getUserOperationGasPrice: () => Promise<GetUserOperationGasPriceReturnType>;
};
export function backendPaymasterActions<
transport extends Transport = Transport,
chain extends Chain | undefined = Chain | undefined,
account extends LocalAccount = LocalAccount,
>(
client: Client<transport, chain, account> & {
paymaster: Address;
},
): BackendPaymasterActions {
return {
getPaymasterData: (parameters) => getPaymasterData(client, parameters),
getPaymasterStubData: (parameters) => getPaymasterStubData(client, parameters),
getUserOperationGasPrice: () => getUserOperationGasPrice(client),
};
}