@0xsequence/connect
Version:
Connect package for Sequence Web SDK
69 lines • 2.58 kB
JavaScript
;
'use client';
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCheckWaasFeeOptions = useCheckWaasFeeOptions;
const wagmi_1 = require("wagmi");
/**
* Hook for checking transaction fee options in Sequence WaaS (Wallet as a Service)
*
* This hook provides functionality to:
* - Check if a transaction will be sponsored
* - Get available fee options for unsponsored transactions
* - Retrieve fee quotes for transactions
*
* The hook is commonly used in conjunction with `useWaasFeeOptions` to handle fee payments
* for unsponsored transactions. It's particularly useful in
* wallet interfaces and transaction confirmation flows.
*
* @see {@link https://docs.sequence.xyz/sdk/web/hooks/useCheckWaasFeeOptions} for more detailed documentation.
*
* @returns A function that accepts transaction details and returns fee information
* @returns.feeQuote - The fee quote for the transaction if available
* @returns.feeOptions - Available fee payment options if the transaction is not sponsored
* @returns.isSponsored - Whether the transaction is sponsored (true) or requires fee payment (false)
*
* @example
* ```tsx
* import { useCheckWaasFeeOptions } from '@0xsequence/connect'
*
* const YourComponent = () => {
* const checkFeeOptions = useCheckWaasFeeOptions()
*
* const handleTransaction = async () => {
* const { isSponsored, feeOptions, feeQuote } = await checkFeeOptions({
* transactions: [transaction],
* chainId: 1 // Ethereum Mainnet
* })
*
* if (!isSponsored && feeOptions) {
* // Handle fee options for unsponsored transaction
* console.log('Available fee options:', feeOptions)
* console.log('Fee quote:', feeQuote)
* }
* }
* }
* ```
*/
function useCheckWaasFeeOptions() {
const connections = (0, wagmi_1.useConnections)();
const waasConnector = connections.find(c => c.connector.id.includes('waas'))?.connector;
return async ({ transactions, chainId }) => {
if (!waasConnector) {
return {
feeQuote: undefined,
feeOptions: undefined,
isSponsored: true
};
}
const waasProvider = waasConnector.sequenceWaasProvider;
if (!waasProvider) {
return {
feeQuote: undefined,
feeOptions: undefined,
isSponsored: true
};
}
return waasProvider.checkTransactionFeeOptions({ transactions, chainId });
};
}
//# sourceMappingURL=useCheckWaasFeeOptions.js.map