UNPKG

@bit-gpt/h402

Version:

BitGPT's 402 open protocol for blockchain-native payments

46 lines 2.13 kB
import { verify as verifyExact, settle as settleExact, } from "../../schemes/exact/evm/index.js"; import { isSupportedEVMNetworkId, } from "../../types/index.js"; /** * Verifies a payment payload against the required payment details regardless of the scheme * this function wraps all verify functions for each specific scheme * * @param client - The public client used for blockchain interactions * @param payload - The signed payment payload containing transfer parameters and signature * @param paymentRequirements - The payment requirements that the payload must satisfy * @returns A ValidPaymentRequest indicating if the payment is valid and any invalidation reason */ export async function verify(client, payload, paymentRequirements) { if (paymentRequirements.scheme == "exact" && isSupportedEVMNetworkId(paymentRequirements.networkId)) { const valid = await verifyExact(client, payload, paymentRequirements); return valid; } return { isValid: false, invalidReason: "invalid_scheme", // payer: payload.payload.authorization.from, }; } /** * Settles a payment payload against the required payment details regardless of the scheme * this function wraps all settle functions for each specific scheme * * @param client - The signer wallet used for blockchain interactions * @param payload - The signed payment payload containing transfer parameters and signature * @param paymentRequirements - The payment requirements that the payload must satisfy * @returns A SettleResponse indicating if the payment is settled and any settlement reason */ export async function settle(client, payload, paymentRequirements) { if (paymentRequirements.scheme == "exact" && isSupportedEVMNetworkId(paymentRequirements.networkId)) { return settleExact(client, payload, paymentRequirements); } return { success: false, errorReason: "invalid_scheme", transaction: "", namespace: paymentRequirements.namespace, // payer: payload.payload.authorization.from, }; } //# sourceMappingURL=facilitator.js.map