@wtflabs/x402 0.0.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/cjs/client/index.d.ts +64 -0
- package/dist/cjs/client/index.js +832 -0
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/config-CFBSAuxW.d.ts +10 -0
- package/dist/cjs/config-Dfuvno71.d.ts +19 -0
- package/dist/cjs/facilitator/index.d.ts +42 -0
- package/dist/cjs/facilitator/index.js +2574 -0
- package/dist/cjs/facilitator/index.js.map +1 -0
- package/dist/cjs/index.d.ts +16 -0
- package/dist/cjs/index.js +2974 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/middleware-6_1ApcJn.d.ts +93 -0
- package/dist/cjs/middleware-B_ewwsQp.d.ts +93 -0
- package/dist/cjs/middleware-Brgsx32F.d.ts +93 -0
- package/dist/cjs/middleware-BwfW7mAs.d.ts +93 -0
- package/dist/cjs/middleware-CQb61c1k.d.ts +93 -0
- package/dist/cjs/middleware-DB9lqy9f.d.ts +93 -0
- package/dist/cjs/middleware-DcHctwQV.d.ts +93 -0
- package/dist/cjs/middleware-De0jD3Bp.d.ts +93 -0
- package/dist/cjs/middleware-HoFOmpgv.d.ts +93 -0
- package/dist/cjs/middleware-Y8AiAfYw.d.ts +93 -0
- package/dist/cjs/middleware-pnres9YM.d.ts +93 -0
- package/dist/cjs/network-FrFmmiyj.d.ts +11 -0
- package/dist/cjs/network-RtNddYQk.d.ts +11 -0
- package/dist/cjs/paywall/index.d.ts +30 -0
- package/dist/cjs/paywall/index.js +131 -0
- package/dist/cjs/paywall/index.js.map +1 -0
- package/dist/cjs/rpc-BMvnNNHd.d.ts +35 -0
- package/dist/cjs/rpc-Ca8eHCWz.d.ts +35 -0
- package/dist/cjs/schemes/index.d.ts +533 -0
- package/dist/cjs/schemes/index.js +3144 -0
- package/dist/cjs/schemes/index.js.map +1 -0
- package/dist/cjs/shared/evm/index.d.ts +71 -0
- package/dist/cjs/shared/evm/index.js +947 -0
- package/dist/cjs/shared/evm/index.js.map +1 -0
- package/dist/cjs/shared/index.d.ts +182 -0
- package/dist/cjs/shared/index.js +674 -0
- package/dist/cjs/shared/index.js.map +1 -0
- package/dist/cjs/types/index.d.ts +1515 -0
- package/dist/cjs/types/index.js +1645 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/verify/index.d.ts +7 -0
- package/dist/cjs/verify/index.js +438 -0
- package/dist/cjs/verify/index.js.map +1 -0
- package/dist/cjs/wallet-BRWfOM5D.d.ts +153 -0
- package/dist/cjs/wallet-BTqCm9Zp.d.ts +27 -0
- package/dist/cjs/wallet-BYRAGtOB.d.ts +153 -0
- package/dist/cjs/wallet-BmEtlgEf.d.ts +48 -0
- package/dist/cjs/wallet-CNOAmyZ6.d.ts +48 -0
- package/dist/cjs/wallet-CQ0Fe_M5.d.ts +88 -0
- package/dist/cjs/wallet-D1SoxFTw.d.ts +48 -0
- package/dist/cjs/wallet-SJ-hbjm9.d.ts +153 -0
- package/dist/cjs/wallet-SJKJpUgQ.d.ts +167 -0
- package/dist/cjs/wallet-ecnda4Aj.d.ts +48 -0
- package/dist/cjs/wallet-gP8Qoi-c.d.ts +74 -0
- package/dist/cjs/x402Specs-B7InXo2L.d.ts +1065 -0
- package/dist/cjs/x402Specs-BLH3j34O.d.ts +1696 -0
- package/dist/cjs/x402Specs-C7LipAZg.d.ts +1715 -0
- package/dist/cjs/x402Specs-CYq5tSY1.d.ts +1745 -0
- package/dist/cjs/x402Specs-CeajqonG.d.ts +1696 -0
- package/dist/cjs/x402Specs-qMujgEV5.d.ts +1715 -0
- package/dist/cjs/x402Specs-qUBCpcuz.d.ts +1715 -0
- package/dist/esm/chunk-34YNR4LY.mjs +106 -0
- package/dist/esm/chunk-34YNR4LY.mjs.map +1 -0
- package/dist/esm/chunk-57UEJN5U.mjs +1416 -0
- package/dist/esm/chunk-57UEJN5U.mjs.map +1 -0
- package/dist/esm/chunk-5LTKIVOA.mjs +858 -0
- package/dist/esm/chunk-5LTKIVOA.mjs.map +1 -0
- package/dist/esm/chunk-AQQR4PXH.mjs +80 -0
- package/dist/esm/chunk-AQQR4PXH.mjs.map +1 -0
- package/dist/esm/chunk-LGXWNXCO.mjs +76 -0
- package/dist/esm/chunk-LGXWNXCO.mjs.map +1 -0
- package/dist/esm/chunk-RX2JKK4O.mjs +349 -0
- package/dist/esm/chunk-RX2JKK4O.mjs.map +1 -0
- package/dist/esm/chunk-UCBE7FDY.mjs +1041 -0
- package/dist/esm/chunk-UCBE7FDY.mjs.map +1 -0
- package/dist/esm/client/index.mjs +17 -0
- package/dist/esm/client/index.mjs.map +1 -0
- package/dist/esm/facilitator/index.mjs +14 -0
- package/dist/esm/facilitator/index.mjs.map +1 -0
- package/dist/esm/index.mjs +28 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/paywall/index.mjs +46 -0
- package/dist/esm/paywall/index.mjs.map +1 -0
- package/dist/esm/schemes/index.mjs +16 -0
- package/dist/esm/schemes/index.mjs.map +1 -0
- package/dist/esm/shared/evm/index.mjs +20 -0
- package/dist/esm/shared/evm/index.mjs.map +1 -0
- package/dist/esm/shared/index.mjs +31 -0
- package/dist/esm/shared/index.mjs.map +1 -0
- package/dist/esm/types/index.mjs +87 -0
- package/dist/esm/types/index.mjs.map +1 -0
- package/dist/esm/verify/index.mjs +105 -0
- package/dist/esm/verify/index.mjs.map +1 -0
- package/package.json +148 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createPaymentHeader,
|
|
3
|
+
createPaymentHeader2,
|
|
4
|
+
encodePayment,
|
|
5
|
+
preparePaymentHeader,
|
|
6
|
+
signPaymentHeader
|
|
7
|
+
} from "./chunk-RX2JKK4O.mjs";
|
|
8
|
+
import {
|
|
9
|
+
SupportedEVMNetworks,
|
|
10
|
+
SupportedSVMNetworks,
|
|
11
|
+
getNetworkId,
|
|
12
|
+
isEvmSignerWallet,
|
|
13
|
+
isMultiNetworkSigner,
|
|
14
|
+
isSvmSignerWallet
|
|
15
|
+
} from "./chunk-UCBE7FDY.mjs";
|
|
16
|
+
import {
|
|
17
|
+
getUsdcChainConfigForChain
|
|
18
|
+
} from "./chunk-5LTKIVOA.mjs";
|
|
19
|
+
|
|
20
|
+
// src/client/createPaymentHeader.ts
|
|
21
|
+
async function createPaymentHeader3(client, x402Version, paymentRequirements, config) {
|
|
22
|
+
if (paymentRequirements.scheme === "exact") {
|
|
23
|
+
if (SupportedEVMNetworks.includes(paymentRequirements.network)) {
|
|
24
|
+
const evmClient = isMultiNetworkSigner(client) ? client.evm : client;
|
|
25
|
+
if (!isEvmSignerWallet(evmClient)) {
|
|
26
|
+
throw new Error("Invalid evm wallet client provided");
|
|
27
|
+
}
|
|
28
|
+
return await createPaymentHeader(
|
|
29
|
+
evmClient,
|
|
30
|
+
x402Version,
|
|
31
|
+
paymentRequirements
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
if (SupportedSVMNetworks.includes(paymentRequirements.network)) {
|
|
35
|
+
const svmClient = isMultiNetworkSigner(client) ? client.svm : client;
|
|
36
|
+
if (!isSvmSignerWallet(svmClient)) {
|
|
37
|
+
throw new Error("Invalid svm wallet client provided");
|
|
38
|
+
}
|
|
39
|
+
return await createPaymentHeader2(
|
|
40
|
+
svmClient,
|
|
41
|
+
x402Version,
|
|
42
|
+
paymentRequirements,
|
|
43
|
+
config
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
throw new Error("Unsupported network");
|
|
47
|
+
}
|
|
48
|
+
throw new Error("Unsupported scheme");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/client/preparePaymentHeader.ts
|
|
52
|
+
function preparePaymentHeader2(from, x402Version, paymentRequirements) {
|
|
53
|
+
if (paymentRequirements.scheme === "exact" && SupportedEVMNetworks.includes(paymentRequirements.network)) {
|
|
54
|
+
return preparePaymentHeader(from, x402Version, paymentRequirements);
|
|
55
|
+
}
|
|
56
|
+
throw new Error("Unsupported scheme");
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/client/selectPaymentRequirements.ts
|
|
60
|
+
function selectPaymentRequirements(paymentRequirements, network, scheme) {
|
|
61
|
+
paymentRequirements.sort((a, b) => {
|
|
62
|
+
if (a.network === "base" && b.network !== "base") {
|
|
63
|
+
return -1;
|
|
64
|
+
}
|
|
65
|
+
if (a.network !== "base" && b.network === "base") {
|
|
66
|
+
return 1;
|
|
67
|
+
}
|
|
68
|
+
return 0;
|
|
69
|
+
});
|
|
70
|
+
const broadlyAcceptedPaymentRequirements = paymentRequirements.filter((requirement) => {
|
|
71
|
+
const isExpectedScheme = !scheme || requirement.scheme === scheme;
|
|
72
|
+
const isExpectedChain = !network || (Array.isArray(network) ? network.includes(requirement.network) : network == requirement.network);
|
|
73
|
+
return isExpectedScheme && isExpectedChain;
|
|
74
|
+
});
|
|
75
|
+
const usdcRequirements = broadlyAcceptedPaymentRequirements.filter((requirement) => {
|
|
76
|
+
return requirement.asset === getUsdcChainConfigForChain(getNetworkId(requirement.network))?.usdcAddress;
|
|
77
|
+
});
|
|
78
|
+
if (usdcRequirements.length > 0) {
|
|
79
|
+
return usdcRequirements[0];
|
|
80
|
+
}
|
|
81
|
+
if (broadlyAcceptedPaymentRequirements.length > 0) {
|
|
82
|
+
return broadlyAcceptedPaymentRequirements[0];
|
|
83
|
+
}
|
|
84
|
+
return paymentRequirements[0];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// src/client/signPaymentHeader.ts
|
|
88
|
+
async function signPaymentHeader2(client, paymentRequirements, unsignedPaymentHeader) {
|
|
89
|
+
if (paymentRequirements.scheme === "exact" && SupportedEVMNetworks.includes(paymentRequirements.network)) {
|
|
90
|
+
const evmClient = isMultiNetworkSigner(client) ? client.evm : client;
|
|
91
|
+
if (!isEvmSignerWallet(evmClient)) {
|
|
92
|
+
throw new Error("Invalid evm wallet client provided");
|
|
93
|
+
}
|
|
94
|
+
const signedPaymentHeader = await signPaymentHeader(evmClient, paymentRequirements, unsignedPaymentHeader);
|
|
95
|
+
return encodePayment(signedPaymentHeader);
|
|
96
|
+
}
|
|
97
|
+
throw new Error("Unsupported scheme");
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
createPaymentHeader3 as createPaymentHeader,
|
|
102
|
+
preparePaymentHeader2 as preparePaymentHeader,
|
|
103
|
+
selectPaymentRequirements,
|
|
104
|
+
signPaymentHeader2 as signPaymentHeader
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=chunk-34YNR4LY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/createPaymentHeader.ts","../../src/client/preparePaymentHeader.ts","../../src/client/selectPaymentRequirements.ts","../../src/client/signPaymentHeader.ts"],"sourcesContent":["import { createPaymentHeader as createPaymentHeaderExactEVM } from \"../schemes/exact/evm/eip3009/client\";\nimport { createPaymentHeader as createPaymentHeaderExactSVM } from \"../schemes/exact/svm/client\";\nimport { isEvmSignerWallet, isMultiNetworkSigner, isSvmSignerWallet, MultiNetworkSigner, Signer, SupportedEVMNetworks, SupportedSVMNetworks } from \"../types/shared\";\nimport { PaymentRequirements } from \"../types/verify\";\nimport { X402Config } from \"../types/config\";\n\n/**\n * Creates a payment header based on the provided client and payment requirements.\n *\n * @param client - The signer wallet instance used to create the payment header\n * @param x402Version - The version of the X402 protocol to use\n * @param paymentRequirements - The payment requirements containing scheme and network information\n * @param config - Optional configuration for X402 operations (e.g., custom RPC URLs)\n * @returns A promise that resolves to the created payment header string\n */\nexport async function createPaymentHeader(\n client: Signer | MultiNetworkSigner,\n x402Version: number,\n paymentRequirements: PaymentRequirements,\n config?: X402Config,\n): Promise<string> {\n // exact scheme\n if (paymentRequirements.scheme === \"exact\") {\n // evm\n if (SupportedEVMNetworks.includes(paymentRequirements.network)) {\n const evmClient = isMultiNetworkSigner(client) ? client.evm : client;\n\n if (!isEvmSignerWallet(evmClient)) {\n throw new Error(\"Invalid evm wallet client provided\");\n }\n\n return await createPaymentHeaderExactEVM(\n evmClient,\n x402Version,\n paymentRequirements,\n );\n }\n // svm\n if (SupportedSVMNetworks.includes(paymentRequirements.network)) {\n const svmClient = isMultiNetworkSigner(client) ? client.svm : client;\n if (!isSvmSignerWallet(svmClient)) {\n throw new Error(\"Invalid svm wallet client provided\");\n }\n\n return await createPaymentHeaderExactSVM(\n svmClient,\n x402Version,\n paymentRequirements,\n config,\n );\n }\n throw new Error(\"Unsupported network\");\n }\n throw new Error(\"Unsupported scheme\");\n}","import { Address } from \"viem\";\nimport { preparePaymentHeader as preparePaymentHeaderExactEVM } from \"../schemes/exact/evm/eip3009/client\";\nimport { SupportedEVMNetworks } from \"../types/shared\";\nimport { PaymentRequirements, UnsignedEip3009PaymentPayload } from \"../types/verify\";\n\n/**\n * Prepares a payment header with the given sender address and payment requirements.\n *\n * @param from - The sender's address from which the payment will be made\n * @param x402Version - The version of the X402 protocol to use\n * @param paymentRequirements - The payment requirements containing scheme and network information\n * @returns An unsigned payment payload that can be used to create a payment header\n */\nexport function preparePaymentHeader(\n from: Address,\n x402Version: number,\n paymentRequirements: PaymentRequirements,\n): UnsignedEip3009PaymentPayload {\n if (\n paymentRequirements.scheme === \"exact\" &&\n SupportedEVMNetworks.includes(paymentRequirements.network)\n ) {\n return preparePaymentHeaderExactEVM(from, x402Version, paymentRequirements);\n }\n\n throw new Error(\"Unsupported scheme\");\n}\n","import { Network, PaymentRequirements } from \"../types\";\nimport { getUsdcChainConfigForChain } from \"../shared/evm\";\nimport { getNetworkId } from \"../shared/network\";\n\n/**\n * Default selector for payment requirements.\n * Default behavior is to select the first payment requirement that has a USDC asset.\n * If no USDC payment requirement is found, the first payment requirement is selected.\n *\n * @param paymentRequirements - The payment requirements to select from.\n * @param network - The network to check against. If not provided, the network will not be checked.\n * @param scheme - The scheme to check against. If not provided, the scheme will not be checked.\n * @returns The payment requirement that is the most appropriate for the user.\n */\nexport function selectPaymentRequirements(paymentRequirements: PaymentRequirements[], network?: Network | Network[], scheme?: \"exact\"): PaymentRequirements {\n // Sort `base` payment requirements to the front of the list. This is to ensure that base is preferred if available.\n paymentRequirements.sort((a, b) => {\n if (a.network === \"base\" && b.network !== \"base\") {\n return -1;\n }\n if (a.network !== \"base\" && b.network === \"base\") {\n return 1;\n }\n return 0;\n });\n\n // Filter down to the scheme/network if provided\n const broadlyAcceptedPaymentRequirements = paymentRequirements.filter(requirement => {\n // If the scheme is not provided, we accept any scheme.\n const isExpectedScheme = !scheme || requirement.scheme === scheme;\n // If the chain is not provided, we accept any chain.\n const isExpectedChain = !network || (Array.isArray(network) ? network.includes(requirement.network) : network == requirement.network);\n\n return isExpectedScheme && isExpectedChain;\n });\n\n // Filter down to USDC requirements\n const usdcRequirements = broadlyAcceptedPaymentRequirements.filter(requirement => {\n // If the address is a USDC address, we return it.\n return requirement.asset === getUsdcChainConfigForChain(getNetworkId(requirement.network))?.usdcAddress;\n });\n\n // Prioritize USDC requirements if available\n if (usdcRequirements.length > 0) {\n return usdcRequirements[0];\n }\n // If no USDC requirements are found, return the first broadly accepted requirement.\n if (broadlyAcceptedPaymentRequirements.length > 0) {\n return broadlyAcceptedPaymentRequirements[0];\n }\n // If no matching requirements are found, return the first requirement.\n return paymentRequirements[0];\n}\n\n/**\n * Selector for payment requirements.\n *\n * @param paymentRequirements - The payment requirements to select from.\n * @param network - The network to check against. If not provided, the network will not be checked.\n * @param scheme - The scheme to check against. If not provided, the scheme will not be checked.\n * @returns The payment requirement that is the most appropriate for the user.\n */\nexport type PaymentRequirementsSelector = (paymentRequirements: PaymentRequirements[], network?: Network | Network[], scheme?: \"exact\") => PaymentRequirements;\n\n","import { signPaymentHeader as signPaymentHeaderExactEVM } from \"../schemes/exact/evm/eip3009/client\";\nimport { encodePayment } from \"../schemes/exact/evm/utils/paymentUtils\";\nimport { isEvmSignerWallet, isMultiNetworkSigner, MultiNetworkSigner, Signer, SupportedEVMNetworks } from \"../types/shared\";\nimport { PaymentRequirements, UnsignedEip3009PaymentPayload } from \"../types/verify\";\n\n/**\n * Signs a payment header using the provided client and payment requirements.\n * \n * @param client - The signer wallet instance used to sign the payment header\n * @param paymentRequirements - The payment requirements containing scheme and network information\n * @param unsignedPaymentHeader - The unsigned payment payload to be signed\n * @returns A promise that resolves to the encoded signed payment header string\n */\nexport async function signPaymentHeader(\n client: Signer | MultiNetworkSigner,\n paymentRequirements: PaymentRequirements,\n unsignedPaymentHeader: UnsignedEip3009PaymentPayload,\n): Promise<string> {\n if (\n paymentRequirements.scheme === \"exact\" &&\n SupportedEVMNetworks.includes(paymentRequirements.network)\n ) {\n const evmClient = isMultiNetworkSigner(client) ? client.evm : client;\n\n if (!isEvmSignerWallet(evmClient)) {\n throw new Error(\"Invalid evm wallet client provided\");\n }\n const signedPaymentHeader = await signPaymentHeaderExactEVM(evmClient, paymentRequirements, unsignedPaymentHeader);\n return encodePayment(signedPaymentHeader);\n }\n\n throw new Error(\"Unsupported scheme\");\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAeA,eAAsBA,qBACpB,QACA,aACA,qBACA,QACiB;AAEjB,MAAI,oBAAoB,WAAW,SAAS;AAE1C,QAAI,qBAAqB,SAAS,oBAAoB,OAAO,GAAG;AAC9D,YAAM,YAAY,qBAAqB,MAAM,IAAI,OAAO,MAAM;AAE9D,UAAI,CAAC,kBAAkB,SAAS,GAAG;AACjC,cAAM,IAAI,MAAM,oCAAoC;AAAA,MACtD;AAEA,aAAO,MAAM;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,QAAI,qBAAqB,SAAS,oBAAoB,OAAO,GAAG;AAC9D,YAAM,YAAY,qBAAqB,MAAM,IAAI,OAAO,MAAM;AAC9D,UAAI,CAAC,kBAAkB,SAAS,GAAG;AACjC,cAAM,IAAI,MAAM,oCAAoC;AAAA,MACtD;AAEA,aAAO,MAAMA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACA,QAAM,IAAI,MAAM,oBAAoB;AACtC;;;ACzCO,SAASC,sBACd,MACA,aACA,qBAC+B;AAC/B,MACE,oBAAoB,WAAW,WAC/B,qBAAqB,SAAS,oBAAoB,OAAO,GACzD;AACA,WAAO,qBAA6B,MAAM,aAAa,mBAAmB;AAAA,EAC5E;AAEA,QAAM,IAAI,MAAM,oBAAoB;AACtC;;;ACZO,SAAS,0BAA0B,qBAA4C,SAA+B,QAAuC;AAE1J,sBAAoB,KAAK,CAAC,GAAG,MAAM;AACjC,QAAI,EAAE,YAAY,UAAU,EAAE,YAAY,QAAQ;AAChD,aAAO;AAAA,IACT;AACA,QAAI,EAAE,YAAY,UAAU,EAAE,YAAY,QAAQ;AAChD,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,CAAC;AAGD,QAAM,qCAAqC,oBAAoB,OAAO,iBAAe;AAEnF,UAAM,mBAAmB,CAAC,UAAU,YAAY,WAAW;AAE3D,UAAM,kBAAkB,CAAC,YAAY,MAAM,QAAQ,OAAO,IAAI,QAAQ,SAAS,YAAY,OAAO,IAAI,WAAW,YAAY;AAE7H,WAAO,oBAAoB;AAAA,EAC7B,CAAC;AAGD,QAAM,mBAAmB,mCAAmC,OAAO,iBAAe;AAEhF,WAAO,YAAY,UAAU,2BAA2B,aAAa,YAAY,OAAO,CAAC,GAAG;AAAA,EAC9F,CAAC;AAGD,MAAI,iBAAiB,SAAS,GAAG;AAC/B,WAAO,iBAAiB,CAAC;AAAA,EAC3B;AAEA,MAAI,mCAAmC,SAAS,GAAG;AACjD,WAAO,mCAAmC,CAAC;AAAA,EAC7C;AAEA,SAAO,oBAAoB,CAAC;AAC9B;;;ACvCA,eAAsBC,mBACpB,QACA,qBACA,uBACiB;AACjB,MACE,oBAAoB,WAAW,WAC/B,qBAAqB,SAAS,oBAAoB,OAAO,GACzD;AACA,UAAM,YAAY,qBAAqB,MAAM,IAAI,OAAO,MAAM;AAE9D,QAAI,CAAC,kBAAkB,SAAS,GAAG;AACjC,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACtD;AACA,UAAM,sBAAsB,MAAM,kBAA0B,WAAW,qBAAqB,qBAAqB;AACjH,WAAO,cAAc,mBAAmB;AAAA,EAC1C;AAEA,QAAM,IAAI,MAAM,oBAAoB;AACtC;","names":["createPaymentHeader","preparePaymentHeader","signPaymentHeader"]}
|