@bit-gpt/h402
Version:
BitGPT's 402 open protocol for blockchain-native payments
541 lines • 23.7 kB
TypeScript
import { z } from "zod";
export declare const schemes: readonly ["exact"];
export declare const h402Versions: readonly [1];
export declare const ErrorReasons: readonly ["insufficient_funds", "invalid_exact_evm_payload_authorization_valid_after", "invalid_exact_evm_payload_authorization_valid_before", "invalid_exact_evm_payload_authorization_value", "invalid_exact_evm_payload_signature", "invalid_exact_evm_payload_recipient_mismatch", "invalid_exact_solana_payload_authorization_valid_after", "invalid_exact_solana_payload_authorization_valid_before", "invalid_exact_solana_payload_authorization_value", "invalid_exact_solana_payload_signature", "invalid_exact_solana_payload_recipient_mismatch", "invalid_network", "invalid_payload", "invalid_payment_requirements", "invalid_scheme", "unsupported_scheme", "invalid_h402_version", "invalid_transaction_state", "unexpected_verify_error", "unexpected_settle_error"];
declare const NamespaceSchema: z.ZodEnum<["evm", "solana"]>;
declare const AmountFormatSchema: z.ZodEnum<["humanReadable", "smallestUnit"]>;
export declare const BasePaymentRequirementsSchema: z.ZodObject<{
namespace: z.ZodEnum<["evm", "solana"]>;
tokenAddress: z.ZodString;
tokenDecimals: z.ZodOptional<z.ZodNumber>;
tokenSymbol: z.ZodOptional<z.ZodString>;
amountRequired: z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>;
amountRequiredFormat: z.ZodEnum<["humanReadable", "smallestUnit"]>;
payToAddress: z.ZodString;
networkId: z.ZodString;
description: z.ZodOptional<z.ZodString>;
resource: z.ZodOptional<z.ZodString>;
scheme: z.ZodEnum<["exact"]>;
mimeType: z.ZodOptional<z.ZodString>;
outputSchema: z.ZodOptional<z.ZodAny>;
estimatedProcessingTime: z.ZodOptional<z.ZodNumber>;
extra: z.ZodOptional<z.ZodAny>;
maxAmountRequired: z.ZodOptional<z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>>;
requiredDeadlineSeconds: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
scheme: "exact";
namespace: "solana" | "evm";
tokenAddress: string;
amountRequired: number | bigint;
amountRequiredFormat: "humanReadable" | "smallestUnit";
payToAddress: string;
networkId: string;
description?: string | undefined;
tokenSymbol?: string | undefined;
tokenDecimals?: number | undefined;
resource?: string | undefined;
mimeType?: string | undefined;
outputSchema?: any;
estimatedProcessingTime?: number | undefined;
extra?: any;
maxAmountRequired?: number | bigint | undefined;
requiredDeadlineSeconds?: number | undefined;
}, {
scheme: "exact";
namespace: "solana" | "evm";
tokenAddress: string;
amountRequired: number | bigint;
amountRequiredFormat: "humanReadable" | "smallestUnit";
payToAddress: string;
networkId: string;
description?: string | undefined;
tokenSymbol?: string | undefined;
tokenDecimals?: number | undefined;
resource?: string | undefined;
mimeType?: string | undefined;
outputSchema?: any;
estimatedProcessingTime?: number | undefined;
extra?: any;
maxAmountRequired?: number | bigint | undefined;
requiredDeadlineSeconds?: number | undefined;
}>;
export declare const EnrichedPaymentRequirementsSchema: z.ZodObject<{
namespace: z.ZodEnum<["evm", "solana"]>;
tokenAddress: z.ZodString;
amountRequired: z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>;
amountRequiredFormat: z.ZodEnum<["humanReadable", "smallestUnit"]>;
payToAddress: z.ZodString;
networkId: z.ZodString;
description: z.ZodOptional<z.ZodString>;
resource: z.ZodOptional<z.ZodString>;
scheme: z.ZodEnum<["exact"]>;
mimeType: z.ZodOptional<z.ZodString>;
outputSchema: z.ZodOptional<z.ZodAny>;
estimatedProcessingTime: z.ZodOptional<z.ZodNumber>;
extra: z.ZodOptional<z.ZodAny>;
maxAmountRequired: z.ZodOptional<z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>>;
requiredDeadlineSeconds: z.ZodOptional<z.ZodNumber>;
} & {
tokenDecimals: z.ZodNumber;
tokenSymbol: z.ZodString;
}, "strip", z.ZodTypeAny, {
tokenSymbol: string;
tokenDecimals: number;
scheme: "exact";
namespace: "solana" | "evm";
tokenAddress: string;
amountRequired: number | bigint;
amountRequiredFormat: "humanReadable" | "smallestUnit";
payToAddress: string;
networkId: string;
description?: string | undefined;
resource?: string | undefined;
mimeType?: string | undefined;
outputSchema?: any;
estimatedProcessingTime?: number | undefined;
extra?: any;
maxAmountRequired?: number | bigint | undefined;
requiredDeadlineSeconds?: number | undefined;
}, {
tokenSymbol: string;
tokenDecimals: number;
scheme: "exact";
namespace: "solana" | "evm";
tokenAddress: string;
amountRequired: number | bigint;
amountRequiredFormat: "humanReadable" | "smallestUnit";
payToAddress: string;
networkId: string;
description?: string | undefined;
resource?: string | undefined;
mimeType?: string | undefined;
outputSchema?: any;
estimatedProcessingTime?: number | undefined;
extra?: any;
maxAmountRequired?: number | bigint | undefined;
requiredDeadlineSeconds?: number | undefined;
}>;
export declare const PaymentRequirementsSchema: z.ZodObject<{
namespace: z.ZodEnum<["evm", "solana"]>;
tokenAddress: z.ZodString;
tokenDecimals: z.ZodOptional<z.ZodNumber>;
tokenSymbol: z.ZodOptional<z.ZodString>;
amountRequired: z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>;
amountRequiredFormat: z.ZodEnum<["humanReadable", "smallestUnit"]>;
payToAddress: z.ZodString;
networkId: z.ZodString;
description: z.ZodOptional<z.ZodString>;
resource: z.ZodOptional<z.ZodString>;
scheme: z.ZodEnum<["exact"]>;
mimeType: z.ZodOptional<z.ZodString>;
outputSchema: z.ZodOptional<z.ZodAny>;
estimatedProcessingTime: z.ZodOptional<z.ZodNumber>;
extra: z.ZodOptional<z.ZodAny>;
maxAmountRequired: z.ZodOptional<z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>>;
requiredDeadlineSeconds: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
scheme: "exact";
namespace: "solana" | "evm";
tokenAddress: string;
amountRequired: number | bigint;
amountRequiredFormat: "humanReadable" | "smallestUnit";
payToAddress: string;
networkId: string;
description?: string | undefined;
tokenSymbol?: string | undefined;
tokenDecimals?: number | undefined;
resource?: string | undefined;
mimeType?: string | undefined;
outputSchema?: any;
estimatedProcessingTime?: number | undefined;
extra?: any;
maxAmountRequired?: number | bigint | undefined;
requiredDeadlineSeconds?: number | undefined;
}, {
scheme: "exact";
namespace: "solana" | "evm";
tokenAddress: string;
amountRequired: number | bigint;
amountRequiredFormat: "humanReadable" | "smallestUnit";
payToAddress: string;
networkId: string;
description?: string | undefined;
tokenSymbol?: string | undefined;
tokenDecimals?: number | undefined;
resource?: string | undefined;
mimeType?: string | undefined;
outputSchema?: any;
estimatedProcessingTime?: number | undefined;
extra?: any;
maxAmountRequired?: number | bigint | undefined;
requiredDeadlineSeconds?: number | undefined;
}>;
export type BasePaymentRequirements = z.infer<typeof BasePaymentRequirementsSchema>;
export type EnrichedPaymentRequirements = z.infer<typeof EnrichedPaymentRequirementsSchema>;
export type PaymentRequirements = z.infer<typeof PaymentRequirementsSchema>;
export type Namespace = z.infer<typeof NamespaceSchema>;
export type AmountFormat = z.infer<typeof AmountFormatSchema>;
export declare function createPaymentPayloadSchema<T extends z.ZodType>(payloadSchema: T): z.ZodObject<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
payload: T;
namespace: z.ZodEnum<["evm", "solana"]>;
networkId: z.ZodString;
resource: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
payload: T;
namespace: z.ZodEnum<["evm", "solana"]>;
networkId: z.ZodString;
resource: z.ZodOptional<z.ZodString>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
payload: T;
namespace: z.ZodEnum<["evm", "solana"]>;
networkId: z.ZodString;
resource: z.ZodOptional<z.ZodString>;
}>, any>[k]; } : never, z.baseObjectInputType<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
payload: T;
namespace: z.ZodEnum<["evm", "solana"]>;
networkId: z.ZodString;
resource: z.ZodOptional<z.ZodString>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
payload: T;
namespace: z.ZodEnum<["evm", "solana"]>;
networkId: z.ZodString;
resource: z.ZodOptional<z.ZodString>;
}>[k_1]; } : never>;
export declare const EvmPaymentPayloadSchema: z.ZodObject<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
payload: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"authorization">;
signature: z.ZodString;
authorization: z.ZodObject<{
from: z.ZodString;
to: z.ZodString;
value: z.ZodBigInt;
validAfter: z.ZodBigInt;
validBefore: z.ZodBigInt;
nonce: z.ZodString;
version: z.ZodString;
}, "strip", z.ZodTypeAny, {
value: bigint;
from: string;
to: string;
validAfter: bigint;
validBefore: bigint;
nonce: string;
version: string;
}, {
value: bigint;
from: string;
to: string;
validAfter: bigint;
validBefore: bigint;
nonce: string;
version: string;
}>;
}, "strip", z.ZodTypeAny, {
type: "authorization";
signature: string;
authorization: {
value: bigint;
from: string;
to: string;
validAfter: bigint;
validBefore: bigint;
nonce: string;
version: string;
};
}, {
type: "authorization";
signature: string;
authorization: {
value: bigint;
from: string;
to: string;
validAfter: bigint;
validBefore: bigint;
nonce: string;
version: string;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"signAndSendTransaction">;
signedMessage: z.ZodString;
transactionHash: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "signAndSendTransaction";
transactionHash: string;
signedMessage: string;
}, {
type: "signAndSendTransaction";
transactionHash: string;
signedMessage: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"signedTransaction">;
signedTransaction: z.ZodString;
signedMessage: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "signedTransaction";
signedTransaction: string;
signedMessage?: string | undefined;
}, {
type: "signedTransaction";
signedTransaction: string;
signedMessage?: string | undefined;
}>]>;
namespace: z.ZodEnum<["evm", "solana"]>;
networkId: z.ZodString;
resource: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
scheme: "exact";
namespace: "solana" | "evm";
networkId: string;
h402Version: number;
payload: {
type: "authorization";
signature: string;
authorization: {
value: bigint;
from: string;
to: string;
validAfter: bigint;
validBefore: bigint;
nonce: string;
version: string;
};
} | {
type: "signAndSendTransaction";
transactionHash: string;
signedMessage: string;
} | {
type: "signedTransaction";
signedTransaction: string;
signedMessage?: string | undefined;
};
resource?: string | undefined;
}, {
scheme: "exact";
namespace: "solana" | "evm";
networkId: string;
h402Version: number;
payload: {
type: "authorization";
signature: string;
authorization: {
value: bigint;
from: string;
to: string;
validAfter: bigint;
validBefore: bigint;
nonce: string;
version: string;
};
} | {
type: "signAndSendTransaction";
transactionHash: string;
signedMessage: string;
} | {
type: "signedTransaction";
signedTransaction: string;
signedMessage?: string | undefined;
};
resource?: string | undefined;
}>;
export declare const SolanaPaymentPayloadSchema: z.ZodObject<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
payload: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"signAndSendTransaction">;
signature: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "signAndSendTransaction";
signature: string;
}, {
type: "signAndSendTransaction";
signature: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"signTransaction">;
signature: z.ZodString;
transaction: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: "signTransaction";
signature: string;
transaction: string;
}, {
type: "signTransaction";
signature: string;
transaction: string;
}>, z.ZodObject<{
type: z.ZodLiteral<"signMessage">;
signature: z.ZodString;
message: z.ZodObject<{
message: z.ZodString;
signature: z.ZodString;
}, "strip", z.ZodTypeAny, {
message: string;
signature: string;
}, {
message: string;
signature: string;
}>;
}, "strip", z.ZodTypeAny, {
message: {
message: string;
signature: string;
};
type: "signMessage";
signature: string;
}, {
message: {
message: string;
signature: string;
};
type: "signMessage";
signature: string;
}>]>;
namespace: z.ZodEnum<["evm", "solana"]>;
networkId: z.ZodString;
resource: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
scheme: "exact";
namespace: "solana" | "evm";
networkId: string;
h402Version: number;
payload: {
type: "signAndSendTransaction";
signature: string;
} | {
type: "signTransaction";
signature: string;
transaction: string;
} | {
message: {
message: string;
signature: string;
};
type: "signMessage";
signature: string;
};
resource?: string | undefined;
}, {
scheme: "exact";
namespace: "solana" | "evm";
networkId: string;
h402Version: number;
payload: {
type: "signAndSendTransaction";
signature: string;
} | {
type: "signTransaction";
signature: string;
transaction: string;
} | {
message: {
message: string;
signature: string;
};
type: "signMessage";
signature: string;
};
resource?: string | undefined;
}>;
export type EvmPaymentPayload = z.infer<typeof EvmPaymentPayloadSchema>;
export type SolanaPaymentPayload = z.infer<typeof SolanaPaymentPayloadSchema>;
export declare const VerifyResponseSchema: z.ZodObject<{
isValid: z.ZodBoolean;
invalidReason: z.ZodOptional<z.ZodEnum<["insufficient_funds", "invalid_exact_evm_payload_authorization_valid_after", "invalid_exact_evm_payload_authorization_valid_before", "invalid_exact_evm_payload_authorization_value", "invalid_exact_evm_payload_signature", "invalid_exact_evm_payload_recipient_mismatch", "invalid_exact_solana_payload_authorization_valid_after", "invalid_exact_solana_payload_authorization_valid_before", "invalid_exact_solana_payload_authorization_value", "invalid_exact_solana_payload_signature", "invalid_exact_solana_payload_recipient_mismatch", "invalid_network", "invalid_payload", "invalid_payment_requirements", "invalid_scheme", "unsupported_scheme", "invalid_h402_version", "invalid_transaction_state", "unexpected_verify_error", "unexpected_settle_error"]>>;
payer: z.ZodOptional<z.ZodString>;
errorMessage: z.ZodOptional<z.ZodString>;
txHash: z.ZodOptional<z.ZodString>;
type: z.ZodOptional<z.ZodEnum<["payload", "transaction"]>>;
}, "strip", z.ZodTypeAny, {
isValid: boolean;
type?: "transaction" | "payload" | undefined;
invalidReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_exact_solana_payload_authorization_valid_after" | "invalid_exact_solana_payload_authorization_valid_before" | "invalid_exact_solana_payload_authorization_value" | "invalid_exact_solana_payload_signature" | "invalid_exact_solana_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_h402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
payer?: string | undefined;
errorMessage?: string | undefined;
txHash?: string | undefined;
}, {
isValid: boolean;
type?: "transaction" | "payload" | undefined;
invalidReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_exact_solana_payload_authorization_valid_after" | "invalid_exact_solana_payload_authorization_valid_before" | "invalid_exact_solana_payload_authorization_value" | "invalid_exact_solana_payload_signature" | "invalid_exact_solana_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_h402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
payer?: string | undefined;
errorMessage?: string | undefined;
txHash?: string | undefined;
}>;
export type VerifyResponse = z.infer<typeof VerifyResponseSchema>;
export declare const SettleResponseSchema: z.ZodObject<{
success: z.ZodBoolean;
transaction: z.ZodString;
namespace: z.ZodOptional<z.ZodEnum<["evm", "solana"]>>;
errorReason: z.ZodOptional<z.ZodEnum<["insufficient_funds", "invalid_exact_evm_payload_authorization_valid_after", "invalid_exact_evm_payload_authorization_valid_before", "invalid_exact_evm_payload_authorization_value", "invalid_exact_evm_payload_signature", "invalid_exact_evm_payload_recipient_mismatch", "invalid_exact_solana_payload_authorization_valid_after", "invalid_exact_solana_payload_authorization_valid_before", "invalid_exact_solana_payload_authorization_value", "invalid_exact_solana_payload_signature", "invalid_exact_solana_payload_recipient_mismatch", "invalid_network", "invalid_payload", "invalid_payment_requirements", "invalid_scheme", "unsupported_scheme", "invalid_h402_version", "invalid_transaction_state", "unexpected_verify_error", "unexpected_settle_error"]>>;
payer: z.ZodOptional<z.ZodString>;
error: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
transaction: string;
success: boolean;
error?: string | undefined;
namespace?: "solana" | "evm" | undefined;
payer?: string | undefined;
errorReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_exact_solana_payload_authorization_valid_after" | "invalid_exact_solana_payload_authorization_valid_before" | "invalid_exact_solana_payload_authorization_value" | "invalid_exact_solana_payload_signature" | "invalid_exact_solana_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_h402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
}, {
transaction: string;
success: boolean;
error?: string | undefined;
namespace?: "solana" | "evm" | undefined;
payer?: string | undefined;
errorReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_exact_solana_payload_authorization_valid_after" | "invalid_exact_solana_payload_authorization_valid_before" | "invalid_exact_solana_payload_authorization_value" | "invalid_exact_solana_payload_signature" | "invalid_exact_solana_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_h402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
}>;
export type SettleResponse = z.infer<typeof SettleResponseSchema>;
export declare const SupportedPaymentKindSchema: z.ZodObject<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
network: z.ZodUnion<[z.ZodEnum<["bsc"]>, z.ZodEnum<["solana"]>]>;
}, "strip", z.ZodTypeAny, {
scheme: "exact";
h402Version: number;
network: "bsc" | "solana";
}, {
scheme: "exact";
h402Version: number;
network: "bsc" | "solana";
}>;
export type SupportedPaymentKind = z.infer<typeof SupportedPaymentKindSchema>;
export declare const SupportedPaymentKindsResponseSchema: z.ZodObject<{
kinds: z.ZodArray<z.ZodObject<{
h402Version: z.ZodEffects<z.ZodNumber, number, number>;
scheme: z.ZodEnum<["exact"]>;
network: z.ZodUnion<[z.ZodEnum<["bsc"]>, z.ZodEnum<["solana"]>]>;
}, "strip", z.ZodTypeAny, {
scheme: "exact";
h402Version: number;
network: "bsc" | "solana";
}, {
scheme: "exact";
h402Version: number;
network: "bsc" | "solana";
}>, "many">;
}, "strip", z.ZodTypeAny, {
kinds: {
scheme: "exact";
h402Version: number;
network: "bsc" | "solana";
}[];
}, {
kinds: {
scheme: "exact";
h402Version: number;
network: "bsc" | "solana";
}[];
}>;
export type SupportedPaymentKindsResponse = z.infer<typeof SupportedPaymentKindsResponseSchema>;
export {};
//# sourceMappingURL=h402Specs.d.ts.map