UNPKG

wido

Version:

JavaScript library for interacting with the Wido protocol which allows you to seamlessly move liquidity across vaults and chains.

45 lines (39 loc) 1.44 kB
import { PaymasterApiRequest, PaymasterApiResponse } from "../../types" import { CONFIG } from "../../config" import { WidoError } from "../../WidoError" import { UserOperation } from "@biconomy/core-types" export async function getPaymasterAndData( chainId: number, userOp: UserOperation ): Promise<PaymasterApiResponse> { const endpoint = "paymaster" const request: PaymasterApiRequest = { chainId: chainId, sender: userOp.sender, // address nonce: userOp.nonce.toString(), // uint256 initCode: userOp.initCode, // bytes callData: userOp.callData, // bytes callGasLimit: userOp.callGasLimit.toString(), // uint256 verificationGasLimit: userOp.verificationGasLimit.toString(), // uint256 preVerificationGas: userOp.preVerificationGas.toString(), // uint256 maxFeePerGas: userOp.maxFeePerGas.toString(), // uint256 maxPriorityFeePerGas: userOp.maxPriorityFeePerGas.toString(), // uint256 paymasterAndData: userOp.paymasterAndData, // bytes signature: userOp.signature, } const url = `${CONFIG.WIDO_API_URL}/${endpoint}` const res = await fetch(url, { method: "POST", mode: "cors", headers: { Accept: "*/*", "Content-Type": "application/json", }, body: JSON.stringify(request), }) if (!res.ok) { throw WidoError.from_api_response(await res.json()) } const { paymasterAndData } = await res.json() return { paymasterAndData } }