@thorium-dev-group/x402-mcp-extension
Version:
X402-MCP Protocol Extension
41 lines • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CoinbaseFacilitatorService = void 0;
exports.createCoinbaseFacilitator = createCoinbaseFacilitator;
const verify_1 = require("x402/verify");
const base_facilitator_1 = require("./base-facilitator");
const { createFacilitatorConfig } = require('@coinbase/x402');
class CoinbaseFacilitatorService extends base_facilitator_1.BaseFacilitatorService {
verify;
settle;
constructor(apiKeyId, apiKeySecret) {
super();
const facilitatorConfig = createFacilitatorConfig(apiKeyId, apiKeySecret);
const { verify, settle } = (0, verify_1.useFacilitator)(facilitatorConfig);
this.verify = verify;
this.settle = settle;
}
async performValidation(payload, paymentRequirements) {
const result = await this.verify(payload, paymentRequirements);
return {
isValid: result.isValid,
invalidReason: result.invalidReason,
payer: result.payer,
};
}
async performExecution(payload, paymentRequirements) {
return await this.settle(payload, paymentRequirements);
}
}
exports.CoinbaseFacilitatorService = CoinbaseFacilitatorService;
function createCoinbaseFacilitator(apiKeyId, apiKeySecret) {
if (!apiKeyId || !apiKeySecret) {
apiKeyId = process.env.CDP_API_KEY_ID;
apiKeySecret = process.env.CDP_API_KEY_SECRET;
if (!apiKeyId || !apiKeySecret) {
throw new Error('CDP_API_KEY_ID and/or CDP_API_KEY_SECRET not found in environment variables. Some tests may be skipped.');
}
}
return new CoinbaseFacilitatorService(apiKeyId, apiKeySecret);
}
//# sourceMappingURL=coinbaseFacilitator.js.map