@bit-gpt/h402
Version:
BitGPT's 402 open protocol for blockchain-native payments
42 lines • 1.84 kB
JavaScript
import { verify as verifyExact, settle as settleExact, } from "../../schemes/exact/solana/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 payload - The signed payment payload containing transfer parameters and signature
* @param paymentRequirements - The payment requirements that the payload must satisfy
* @returns A VerifyResponse indicating if the payment is valid and any invalidation reason
*/
export async function verify(payload, paymentRequirements) {
if (paymentRequirements.scheme === "exact" &&
paymentRequirements.namespace === "solana") {
const valid = await verifyExact(payload, paymentRequirements);
return valid;
}
return {
isValid: false,
invalidReason: "invalid_scheme",
};
}
/**
* 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 Solana 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 SettleResponse indicating if the payment is settled and any settlement reason
*/
export async function settle(client, payload, paymentRequirements) {
if (paymentRequirements.scheme === "exact" &&
paymentRequirements.namespace === "solana") {
return settleExact(payload, paymentRequirements);
}
return {
success: false,
errorReason: "invalid_scheme",
transaction: "",
namespace: paymentRequirements.namespace,
};
}
//# sourceMappingURL=facilitator.js.map