@obbyx/sdk 0.1.1 → 0.2.1
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 +14 -0
- package/dist/client/paying-fetch.d.ts.map +1 -1
- package/dist/client/paying-fetch.js +68 -61
- package/dist/client/paying-fetch.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/seller/consumed-proofs.d.ts.map +1 -1
- package/dist/seller/consumed-proofs.js +8 -15
- package/dist/seller/consumed-proofs.js.map +1 -1
- package/dist/seller/cors.d.ts +33 -0
- package/dist/seller/cors.d.ts.map +1 -0
- package/dist/seller/cors.js +77 -0
- package/dist/seller/cors.js.map +1 -0
- package/dist/seller/paywall.d.ts +32 -0
- package/dist/seller/paywall.d.ts.map +1 -1
- package/dist/seller/paywall.js +183 -127
- package/dist/seller/paywall.js.map +1 -1
- package/dist/seller/x402-server.d.ts +48 -8
- package/dist/seller/x402-server.d.ts.map +1 -1
- package/dist/seller/x402-server.js +63 -22
- package/dist/seller/x402-server.js.map +1 -1
- package/package.json +3 -3
- package/src/client/paying-fetch.ts +96 -64
- package/src/index.ts +10 -1
- package/src/seller/consumed-proofs.ts +10 -16
- package/src/seller/cors.ts +106 -0
- package/src/seller/paywall.ts +237 -177
- package/src/seller/x402-server.ts +101 -29
package/dist/seller/paywall.js
CHANGED
|
@@ -5,8 +5,8 @@ import { BATCH_SCHEME, EXACT_SCHEME, batchExtraSchema, canonical, exactExtraSche
|
|
|
5
5
|
import { bindingsEqual, sha256Hex } from './binding.js';
|
|
6
6
|
import { PAYMENT_IDENTIFIER, decidePaymentId, paymentIdOf, paymentIdentifierDeclaration, } from './payment-identifier.js';
|
|
7
7
|
import { bodyHashOf, newQuote, offerBinding, operationFingerprint, } from './quote.js';
|
|
8
|
+
import { allowOrigin, exposePaymentHeaders, preflightHandler, } from './cors.js';
|
|
8
9
|
import { DEFAULT_MAX_TIMEOUT_SECONDS, DEFAULT_QUOTE_TTL_SECONDS, DEFAULT_SERVING_LEASE_SECONDS, } from './defaults.js';
|
|
9
|
-
const EXPOSE = 'PAYMENT-REQUIRED, PAYMENT-RESPONSE';
|
|
10
10
|
export class ObytePaywall {
|
|
11
11
|
options;
|
|
12
12
|
log;
|
|
@@ -24,34 +24,59 @@ export class ObytePaywall {
|
|
|
24
24
|
this.log = moduleLogger(options.logger, 'sdk.paywall', { network: options.network });
|
|
25
25
|
this.now = options.now ?? (() => Math.floor(Date.now() / 1000));
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Answers CORS preflight requests (`app.use(paywall.preflight())`); a no-op
|
|
29
|
+
* without the `cors` option. Preflights never require payment.
|
|
30
|
+
*/
|
|
31
|
+
preflight() {
|
|
32
|
+
const cors = this.options.cors;
|
|
33
|
+
return cors === undefined ? (_req, _res, next) => next() : preflightHandler(cors);
|
|
34
|
+
}
|
|
27
35
|
/** Wraps a handler so it only runs after a settled payment. */
|
|
28
36
|
paid(route, handler) {
|
|
29
37
|
const asset = route.price.asset ?? 'base';
|
|
30
38
|
if (!isAssetId(asset))
|
|
31
39
|
throw new Error(`Invalid asset ${asset}`);
|
|
32
|
-
const
|
|
40
|
+
const price = { asset, amount: parseAmount(route.price.amount).toString() };
|
|
33
41
|
return (req, res, next) => {
|
|
34
42
|
const requestId = String(req.get('x-request-id') ?? cryptoId());
|
|
35
|
-
withLogContext({ requestId, network: this.options.network }, () => this.handle(req, res, route,
|
|
43
|
+
withLogContext({ requestId, network: this.options.network }, () => this.handle({ req, res, route, price, handler }).catch(next));
|
|
36
44
|
};
|
|
37
45
|
}
|
|
38
|
-
async handle(
|
|
39
|
-
|
|
46
|
+
async handle(call) {
|
|
47
|
+
const { req, res } = call;
|
|
48
|
+
exposePaymentHeaders(res);
|
|
49
|
+
if (this.options.cors !== undefined)
|
|
50
|
+
allowOrigin(req, res, this.options.cors);
|
|
40
51
|
res.setHeader('Cache-Control', 'private, no-store');
|
|
41
52
|
const header = req.get('payment-signature');
|
|
42
53
|
if (header === undefined)
|
|
43
|
-
return this.paymentRequired(
|
|
54
|
+
return this.paymentRequired(call);
|
|
55
|
+
const parsed = this.parsePayment(call, header);
|
|
56
|
+
if (parsed.kind === 'bad_header') {
|
|
57
|
+
res.status(400).json({ error: 'invalid_payment_header' });
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (parsed.kind === 'refused')
|
|
61
|
+
return this.paymentRequired(call, parsed.error);
|
|
62
|
+
const payment = parsed.payment;
|
|
63
|
+
await withLogContext({ binding: payment.binding, proofId: payment.proofId }, () => this.process(payment));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Decodes the payment and checks it against THIS offer: our scheme, network,
|
|
67
|
+
* price and payee, and a binding we issued for this very request.
|
|
68
|
+
*/
|
|
69
|
+
parsePayment(call, header) {
|
|
44
70
|
let payload;
|
|
45
71
|
try {
|
|
46
72
|
payload = decodePaymentSignatureHeader(header);
|
|
47
73
|
}
|
|
48
74
|
catch {
|
|
49
|
-
|
|
50
|
-
return;
|
|
75
|
+
return { kind: 'bad_header' };
|
|
51
76
|
}
|
|
77
|
+
const { route, price } = call;
|
|
52
78
|
const accepted = payload.accepted;
|
|
53
79
|
const scheme = accepted?.scheme;
|
|
54
|
-
const offered = this.schemesFor(route);
|
|
55
80
|
const extra = scheme === EXACT_SCHEME
|
|
56
81
|
? exactExtraSchema.safeParse(accepted?.extra)
|
|
57
82
|
: scheme === BATCH_SCHEME
|
|
@@ -60,132 +85,156 @@ export class ObytePaywall {
|
|
|
60
85
|
const proofId = scheme === undefined ? undefined : proofIdOf(scheme, payload);
|
|
61
86
|
if (payload.x402Version !== 2 ||
|
|
62
87
|
scheme === undefined ||
|
|
63
|
-
!
|
|
88
|
+
!this.schemesFor(route).includes(scheme) ||
|
|
64
89
|
accepted?.network !== this.options.network ||
|
|
65
90
|
accepted.asset !== price.asset ||
|
|
66
91
|
accepted.amount !== price.amount ||
|
|
67
92
|
accepted.payTo !== this.options.payTo ||
|
|
68
|
-
extra
|
|
69
|
-
!extra.success ||
|
|
93
|
+
extra?.success !== true ||
|
|
70
94
|
proofId === undefined ||
|
|
71
95
|
(scheme === BATCH_SCHEME &&
|
|
72
96
|
extra.data.minTimeout !==
|
|
73
97
|
this.options.batch?.minChannelTimeoutSeconds)) {
|
|
74
|
-
return
|
|
98
|
+
return { kind: 'refused', error: 'invalid_payment_requirements' };
|
|
75
99
|
}
|
|
76
|
-
const facts = this.requestFacts(req, route);
|
|
100
|
+
const facts = this.requestFacts(call.req, route);
|
|
77
101
|
const terms = this.terms(price);
|
|
78
|
-
|
|
79
|
-
if (!bindingsEqual(expected, extra.data.binding)) {
|
|
102
|
+
if (!bindingsEqual(offerBinding(this.options, scheme, extra.data, facts, terms), extra.data.binding)) {
|
|
80
103
|
this.log.warn({ proofId }, 'payment is bound to another operation or a forged quote');
|
|
81
|
-
return
|
|
104
|
+
return { kind: 'refused', error: 'invalid_binding' };
|
|
82
105
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
106
|
+
return {
|
|
107
|
+
kind: 'ok',
|
|
108
|
+
payment: {
|
|
109
|
+
...call,
|
|
110
|
+
payload,
|
|
111
|
+
accepted,
|
|
112
|
+
proofId,
|
|
113
|
+
binding: extra.data.binding,
|
|
114
|
+
validUntil: extra.data.validUntil,
|
|
115
|
+
facts,
|
|
116
|
+
terms,
|
|
117
|
+
key: networkKey(getNetwork(this.options.network), scheme === EXACT_SCHEME ? 'unit' : 'voucher', proofId),
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** Registers the proof, then continues from its state: one payment, one operation. */
|
|
122
|
+
async process(payment) {
|
|
123
|
+
const { res, key, binding } = payment;
|
|
124
|
+
const store = this.options.store;
|
|
125
|
+
const begun = store.begin(key, binding);
|
|
126
|
+
const { created } = begun;
|
|
127
|
+
let { record } = begun;
|
|
128
|
+
// A proof left in `serving` by a crashed process is recovered after the lease.
|
|
129
|
+
if (record.state === 'serving' &&
|
|
130
|
+
store.reclaimStale(key, this.options.servingLeaseSeconds ?? DEFAULT_SERVING_LEASE_SECONDS)) {
|
|
131
|
+
this.log.warn('recovered a payment stuck in serving (lease expired)');
|
|
132
|
+
record = store.get(key) ?? record;
|
|
133
|
+
}
|
|
134
|
+
if (!bindingsEqual(record.binding, binding)) {
|
|
135
|
+
res.setHeader('PAYMENT-RESPONSE', this.refusal('invalid_payment_reused'));
|
|
136
|
+
res.status(402).json({ error: 'invalid_payment_reused' });
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (this.paymentIdentifierAnswered(payment, created))
|
|
140
|
+
return;
|
|
141
|
+
if (created && payment.validUntil < this.now()) {
|
|
142
|
+
store.forget(key, 'settling');
|
|
143
|
+
return this.paymentRequired(payment, 'quote_expired');
|
|
144
|
+
}
|
|
145
|
+
switch (record.state) {
|
|
146
|
+
case 'served':
|
|
147
|
+
this.log.info('replaying stored response for a repeated operation');
|
|
148
|
+
return this.send(res, record.response, record.paymentResponse);
|
|
149
|
+
case 'serving':
|
|
150
|
+
if (record.paymentResponse !== null)
|
|
151
|
+
res.setHeader('PAYMENT-RESPONSE', record.paymentResponse);
|
|
152
|
+
res.status(409).json({ error: 'payment_in_progress' });
|
|
99
153
|
return;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
// the proof row exists, so a concurrent request always sees this proof
|
|
103
|
-
// as in progress (never as "absent") and cannot take the id over.
|
|
104
|
-
if (this.options.paymentIdentifier !== undefined) {
|
|
105
|
-
const decision = decidePaymentId(store, {
|
|
106
|
-
paymentId: paymentIdOf(payload),
|
|
107
|
-
required: this.options.paymentIdentifier.required,
|
|
108
|
-
scopeId: (id) => `${this.options.sellerId}:${id}`,
|
|
109
|
-
fingerprint: operationFingerprint(facts, terms),
|
|
110
|
-
proofKey: key,
|
|
111
|
-
});
|
|
112
|
-
if (decision.kind !== 'proceed' && created)
|
|
113
|
-
store.forget(key, 'settling');
|
|
114
|
-
if (decision.kind === 'reject') {
|
|
115
|
-
res.status(decision.status).json({ error: decision.error });
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (decision.kind === 'replay') {
|
|
119
|
-
const original = store.get(decision.proofKey);
|
|
120
|
-
this.log.info('payment-identifier repeat: stored response, new payment NOT settled');
|
|
121
|
-
return this.send(res, original?.response ?? null, original?.paymentResponse ?? null);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (created && extra.data.validUntil < this.now()) {
|
|
125
|
-
store.forget(key, 'settling');
|
|
126
|
-
return this.paymentRequired(req, res, route, price, 'quote_expired');
|
|
127
|
-
}
|
|
128
|
-
switch (record.state) {
|
|
129
|
-
case 'served':
|
|
130
|
-
this.log.info('replaying stored response for a repeated operation');
|
|
131
|
-
return this.send(res, record.response, record.paymentResponse);
|
|
132
|
-
case 'serving':
|
|
133
|
-
if (record.paymentResponse !== null)
|
|
134
|
-
res.setHeader('PAYMENT-RESPONSE', record.paymentResponse);
|
|
135
|
-
res.status(409).json({ error: 'payment_in_progress' });
|
|
136
|
-
return;
|
|
137
|
-
case 'failed':
|
|
138
|
-
res.status(402).json({ error: 'payment_failed' });
|
|
139
|
-
return;
|
|
140
|
-
case 'paid_not_served':
|
|
141
|
-
return this.serve(req, res, key, record.paymentResponse, handler);
|
|
142
|
-
case 'awaiting_settle':
|
|
143
|
-
return this.settleServed(req, res, route, price, key, payload, accepted);
|
|
144
|
-
case 'settling':
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
if (route.flow === 'authorization') {
|
|
148
|
-
return this.authorize(req, res, route, price, key, payload, accepted, handler);
|
|
149
|
-
}
|
|
150
|
-
const settled = await this.settleWithWait(payload, accepted);
|
|
151
|
-
const paymentResponse = encodePaymentResponseHeader(settled);
|
|
152
|
-
if (settled.success) {
|
|
153
|
-
this.log.info({ transaction: settled.transaction }, 'payment settled');
|
|
154
|
-
if (store.markSettled(key, binding, paymentResponse) === 'served') {
|
|
155
|
-
// A concurrent request with the same payment already served it.
|
|
156
|
-
const served = store.get(key);
|
|
157
|
-
return this.send(res, served?.response ?? null, served?.paymentResponse ?? null);
|
|
158
|
-
}
|
|
159
|
-
return this.serve(req, res, key, paymentResponse, handler);
|
|
160
|
-
}
|
|
161
|
-
if (settled.errorReason === 'settlement_pending') {
|
|
162
|
-
this.log.info({ transaction: settled.transaction }, 'settlement pending; client should retry with the same payment');
|
|
163
|
-
res.setHeader('PAYMENT-RESPONSE', paymentResponse);
|
|
164
|
-
res.setHeader('Retry-After', '5');
|
|
165
|
-
res.status(402).json({ error: 'settlement_pending', transaction: settled.transaction });
|
|
154
|
+
case 'failed':
|
|
155
|
+
res.status(402).json({ error: 'payment_failed' });
|
|
166
156
|
return;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
157
|
+
case 'paid_not_served':
|
|
158
|
+
return this.serve(payment, record.paymentResponse);
|
|
159
|
+
case 'awaiting_settle':
|
|
160
|
+
return this.settleServed(payment);
|
|
161
|
+
case 'settling':
|
|
162
|
+
return payment.route.flow === 'authorization'
|
|
163
|
+
? this.authorize(payment)
|
|
164
|
+
: this.settleUpfront(payment, created);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* x402 payment-identifier: one client id = one operation. Decided AFTER the
|
|
169
|
+
* proof row exists, so a concurrent request always sees this proof as in
|
|
170
|
+
* progress (never as "absent") and cannot take the id over. True when the
|
|
171
|
+
* response was already sent (refused, or the stored response replayed).
|
|
172
|
+
*/
|
|
173
|
+
paymentIdentifierAnswered(payment, created) {
|
|
174
|
+
const declared = this.options.paymentIdentifier;
|
|
175
|
+
if (declared === undefined)
|
|
176
|
+
return false;
|
|
177
|
+
const store = this.options.store;
|
|
178
|
+
const decision = decidePaymentId(store, {
|
|
179
|
+
paymentId: paymentIdOf(payment.payload),
|
|
180
|
+
required: declared.required,
|
|
181
|
+
scopeId: (id) => `${this.options.sellerId}:${id}`,
|
|
182
|
+
fingerprint: operationFingerprint(payment.facts, payment.terms),
|
|
183
|
+
proofKey: payment.key,
|
|
181
184
|
});
|
|
185
|
+
if (decision.kind === 'proceed')
|
|
186
|
+
return false;
|
|
187
|
+
if (created)
|
|
188
|
+
store.forget(payment.key, 'settling');
|
|
189
|
+
if (decision.kind === 'reject') {
|
|
190
|
+
payment.res.status(decision.status).json({ error: decision.error });
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
const original = store.get(decision.proofKey);
|
|
194
|
+
this.log.info('payment-identifier repeat: stored response, new payment NOT settled');
|
|
195
|
+
this.send(payment.res, original?.response ?? null, original?.paymentResponse ?? null);
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
/** upfront flow: settle to finality, then run the handler once. */
|
|
199
|
+
async settleUpfront(payment, created) {
|
|
200
|
+
const { res, key } = payment;
|
|
201
|
+
const store = this.options.store;
|
|
202
|
+
const settled = await this.settleWithWait(payment.payload, payment.accepted);
|
|
203
|
+
const paymentResponse = encodePaymentResponseHeader(settled);
|
|
204
|
+
if (settled.success) {
|
|
205
|
+
this.log.info({ transaction: settled.transaction }, 'payment settled');
|
|
206
|
+
if (store.markSettled(key, payment.binding, paymentResponse) === 'served') {
|
|
207
|
+
// A concurrent request with the same payment already served it.
|
|
208
|
+
const served = store.get(key);
|
|
209
|
+
return this.send(res, served?.response ?? null, served?.paymentResponse ?? null);
|
|
210
|
+
}
|
|
211
|
+
return this.serve(payment, paymentResponse);
|
|
212
|
+
}
|
|
213
|
+
res.setHeader('PAYMENT-RESPONSE', paymentResponse);
|
|
214
|
+
if (settled.errorReason === 'settlement_pending') {
|
|
215
|
+
this.log.info({ transaction: settled.transaction }, 'settlement pending; client should retry with the same payment');
|
|
216
|
+
return this.answerPending(res, settled.transaction);
|
|
217
|
+
}
|
|
218
|
+
if (settled.transaction === '') {
|
|
219
|
+
// Rejected before reaching the network: the proof was not consumed.
|
|
220
|
+
// Only the request that created the row removes it: a concurrent
|
|
221
|
+
// request with the same payment may be settling it right now.
|
|
222
|
+
if (created)
|
|
223
|
+
store.forget(key, 'settling');
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
store.transition(key, 'settling', 'failed', { paymentResponse });
|
|
227
|
+
}
|
|
228
|
+
this.log.warn({ reason: settled.errorReason }, 'payment failed');
|
|
229
|
+
return this.paymentRequired(payment, settled.errorReason ?? 'payment_failed');
|
|
182
230
|
}
|
|
183
231
|
/** authorization flow: verify → handler (response stored) → settle → send. */
|
|
184
|
-
async authorize(
|
|
232
|
+
async authorize(payment) {
|
|
233
|
+
const { res, key } = payment;
|
|
185
234
|
const store = this.options.store;
|
|
186
235
|
let verified;
|
|
187
236
|
try {
|
|
188
|
-
verified = await this.options.facilitator.verify(payload, accepted);
|
|
237
|
+
verified = await this.options.facilitator.verify(payment.payload, payment.accepted);
|
|
189
238
|
}
|
|
190
239
|
catch (err) {
|
|
191
240
|
this.log.warn({ err }, 'facilitator unreachable during verify');
|
|
@@ -195,7 +244,7 @@ export class ObytePaywall {
|
|
|
195
244
|
}
|
|
196
245
|
if (!verified.isValid) {
|
|
197
246
|
store.forget(key, 'settling');
|
|
198
|
-
return this.paymentRequired(
|
|
247
|
+
return this.paymentRequired(payment, verified.invalidReason ?? 'invalid_payment');
|
|
199
248
|
}
|
|
200
249
|
if (!store.transition(key, 'settling', 'serving')) {
|
|
201
250
|
res.status(409).json({ error: 'payment_in_progress' });
|
|
@@ -203,7 +252,7 @@ export class ObytePaywall {
|
|
|
203
252
|
}
|
|
204
253
|
let result;
|
|
205
254
|
try {
|
|
206
|
-
result = await handler(req);
|
|
255
|
+
result = await payment.handler(payment.req);
|
|
207
256
|
}
|
|
208
257
|
catch (err) {
|
|
209
258
|
store.transition(key, 'serving', 'settling'); // nothing settled; the same payment may retry
|
|
@@ -212,11 +261,13 @@ export class ObytePaywall {
|
|
|
212
261
|
return;
|
|
213
262
|
}
|
|
214
263
|
store.transition(key, 'serving', 'awaiting_settle', { response: toStored(result) });
|
|
215
|
-
return this.settleServed(
|
|
264
|
+
return this.settleServed(payment);
|
|
216
265
|
}
|
|
217
|
-
|
|
266
|
+
/** authorization flow, after the handler: settle, then send the stored response. */
|
|
267
|
+
async settleServed(payment) {
|
|
268
|
+
const { res, key } = payment;
|
|
218
269
|
const store = this.options.store;
|
|
219
|
-
const settled = await this.settleWithWait(payload, accepted);
|
|
270
|
+
const settled = await this.settleWithWait(payment.payload, payment.accepted);
|
|
220
271
|
const paymentResponse = encodePaymentResponseHeader(settled);
|
|
221
272
|
if (settled.success) {
|
|
222
273
|
store.transition(key, 'awaiting_settle', 'served', { paymentResponse });
|
|
@@ -226,15 +277,20 @@ export class ObytePaywall {
|
|
|
226
277
|
}
|
|
227
278
|
res.setHeader('PAYMENT-RESPONSE', paymentResponse);
|
|
228
279
|
if (settled.errorReason === 'settlement_pending') {
|
|
229
|
-
|
|
230
|
-
res.status(402).json({ error: 'settlement_pending', transaction: settled.transaction });
|
|
231
|
-
return;
|
|
280
|
+
return this.answerPending(res, settled.transaction);
|
|
232
281
|
}
|
|
233
282
|
store.transition(key, 'awaiting_settle', 'failed', { paymentResponse });
|
|
234
283
|
this.log.warn({ reason: settled.errorReason }, 'payment failed AFTER the handler ran (authorization flow); response withheld');
|
|
235
|
-
return this.paymentRequired(
|
|
284
|
+
return this.paymentRequired(payment, settled.errorReason ?? 'payment_failed');
|
|
285
|
+
}
|
|
286
|
+
/** Not final yet: the client retries with the same payment. */
|
|
287
|
+
answerPending(res, transaction) {
|
|
288
|
+
res.setHeader('Retry-After', '5');
|
|
289
|
+
res.status(402).json({ error: 'settlement_pending', transaction });
|
|
236
290
|
}
|
|
237
|
-
|
|
291
|
+
/** Runs the handler once for a settled payment and stores its response. */
|
|
292
|
+
async serve(payment, paymentResponse) {
|
|
293
|
+
const { res, key } = payment;
|
|
238
294
|
const store = this.options.store;
|
|
239
295
|
if (!store.transition(key, 'paid_not_served', 'serving')) {
|
|
240
296
|
res.status(409).json({ error: 'payment_in_progress' });
|
|
@@ -242,7 +298,7 @@ export class ObytePaywall {
|
|
|
242
298
|
}
|
|
243
299
|
let result;
|
|
244
300
|
try {
|
|
245
|
-
result = await handler(req);
|
|
301
|
+
result = await payment.handler(payment.req);
|
|
246
302
|
}
|
|
247
303
|
catch (err) {
|
|
248
304
|
store.transition(key, 'serving', 'paid_not_served');
|
|
@@ -271,7 +327,7 @@ export class ObytePaywall {
|
|
|
271
327
|
res.setHeader(name, value);
|
|
272
328
|
res.status(response.status).end(Buffer.from(response.body));
|
|
273
329
|
}
|
|
274
|
-
paymentRequired(req, res, route, price, error) {
|
|
330
|
+
paymentRequired({ req, res, route, price }, error) {
|
|
275
331
|
// A refused payment that was never settled: say so explicitly (success:
|
|
276
332
|
// false, empty transaction) so the client knows it was NOT used and can
|
|
277
333
|
// release its budget and its channel voucher. A settle failure already
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paywall.js","sourceRoot":"","sources":["../../src/seller/paywall.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paywall.js","sourceRoot":"","sources":["../../src/seller/paywall.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { AssetAmount, Network, PaymentRequirements, Price, SchemeNetworkServer, SchemePaymentRequiredContext, SchemeServerHooks } from '@x402/core/types';
|
|
2
2
|
import { type Logger } from '@obbyx/obyte/logger';
|
|
3
|
+
import { BATCH_SCHEME, EXACT_SCHEME } from '@obbyx/x402-obyte';
|
|
3
4
|
import type { ConsumedProofsStore } from './consumed-proofs.js';
|
|
4
5
|
/**
|
|
5
|
-
* Obyte
|
|
6
|
-
* `@x402/express`, `@x402/hono`, …):
|
|
6
|
+
* Obyte schemes for the OFFICIAL x402 resource server (`@x402/core/server`,
|
|
7
|
+
* `@x402/express`, `@x402/hono`, …): SchemeNetworkServer implementations for
|
|
8
|
+
* `exact` ({@link ObyteExactServer}) and `batch-settlement`
|
|
9
|
+
* ({@link ObyteBatchServer}), sharing {@link ObyteSchemeServer}.
|
|
7
10
|
*
|
|
8
11
|
* - Binding (I1/I2): `enrichPaymentRequiredResponse` adds a per-request HMAC
|
|
9
12
|
* binding + quote to every offer. On a paid request it recomputes the HMAC
|
|
@@ -17,7 +20,7 @@ import type { ConsumedProofsStore } from './consumed-proofs.js';
|
|
|
17
20
|
* Unlike `@obbyx/sdk`'s ObytePaywall, a repeated request gets a 402 instead
|
|
18
21
|
* of the stored response (the official middleware cannot replay responses).
|
|
19
22
|
*/
|
|
20
|
-
export interface
|
|
23
|
+
export interface ObyteSchemeServerOptions {
|
|
21
24
|
/** How long a request may hold a payment in `serving` before a retry takes over (default 300 s). */
|
|
22
25
|
readonly servingLeaseSeconds?: number;
|
|
23
26
|
readonly sellerId: string;
|
|
@@ -28,9 +31,34 @@ export interface ObyteExactServerOptions {
|
|
|
28
31
|
readonly quoteTtlSeconds?: number;
|
|
29
32
|
readonly now?: () => number;
|
|
30
33
|
}
|
|
31
|
-
|
|
34
|
+
/** @deprecated Use {@link ObyteSchemeServerOptions}. */
|
|
35
|
+
export type ObyteExactServerOptions = ObyteSchemeServerOptions;
|
|
36
|
+
/** Options of {@link ObyteBatchServer}. */
|
|
37
|
+
export interface ObyteBatchServerOptions extends ObyteSchemeServerOptions {
|
|
38
|
+
/** Minimum channel dispute window the seller accepts (seconds); must match the facilitator's. */
|
|
39
|
+
readonly minChannelTimeoutSeconds: number;
|
|
40
|
+
}
|
|
41
|
+
/** Per-scheme parts of an Obyte resource-server scheme. */
|
|
42
|
+
export interface ObyteSchemeSpec {
|
|
43
|
+
readonly scheme: typeof EXACT_SCHEME | typeof BATCH_SCHEME;
|
|
44
|
+
/** `extra` fields the scheme adds to every offer besides binding and quote. */
|
|
45
|
+
readonly staticExtra: Record<string, unknown>;
|
|
46
|
+
/** Parses the quote fields of the accepted offer. */
|
|
47
|
+
readonly acceptedExtra: (extra: unknown) => {
|
|
48
|
+
readonly binding: string;
|
|
49
|
+
readonly quoteId: string;
|
|
50
|
+
readonly validUntil: number;
|
|
51
|
+
};
|
|
52
|
+
/** Proof id and key kind of a payment payload (undefined when malformed). */
|
|
53
|
+
readonly proofOf: (payload: Record<string, unknown>) => {
|
|
54
|
+
kind: string;
|
|
55
|
+
id: string;
|
|
56
|
+
} | undefined;
|
|
57
|
+
}
|
|
58
|
+
export declare abstract class ObyteSchemeServer implements SchemeNetworkServer {
|
|
32
59
|
private readonly options;
|
|
33
|
-
readonly
|
|
60
|
+
private readonly spec;
|
|
61
|
+
readonly scheme: string;
|
|
34
62
|
readonly defaultAssetTransferMethod = "default";
|
|
35
63
|
readonly paymentFlows: {
|
|
36
64
|
default: {
|
|
@@ -42,11 +70,11 @@ export declare class ObyteExactServer implements SchemeNetworkServer {
|
|
|
42
70
|
readonly schemeHooks: SchemeServerHooks;
|
|
43
71
|
private readonly log;
|
|
44
72
|
private readonly now;
|
|
45
|
-
constructor(options:
|
|
73
|
+
protected constructor(options: ObyteSchemeServerOptions, spec: ObyteSchemeSpec);
|
|
46
74
|
/** `{asset, amount}` in atomic units, or "20000 bytes" / "0.00002 GBYTE". */
|
|
47
75
|
parsePrice(price: Price, network: Network): Promise<AssetAmount>;
|
|
48
76
|
getAssetDecimals(asset: string): number | undefined;
|
|
49
|
-
/** Nothing to add from /supported
|
|
77
|
+
/** Nothing to add from /supported; the per-request fields come from the enrich hook. */
|
|
50
78
|
enhancePaymentRequirements(requirements: PaymentRequirements): Promise<PaymentRequirements>;
|
|
51
79
|
/** Adds (or, for a valid paid request, re-confirms) the per-request binding and quote. */
|
|
52
80
|
enrichPaymentRequiredResponse: (ctx: SchemePaymentRequiredContext) => Promise<PaymentRequirements[]>;
|
|
@@ -54,6 +82,18 @@ export declare class ObyteExactServer implements SchemeNetworkServer {
|
|
|
54
82
|
private bindingFor;
|
|
55
83
|
/** Proof key of the payment in a hook context (undefined when malformed). */
|
|
56
84
|
private keyOf;
|
|
57
|
-
|
|
85
|
+
}
|
|
86
|
+
/** `exact`: the proof is the unit (key `<network>:unit:<hash>`, as ObytePaywall). */
|
|
87
|
+
export declare class ObyteExactServer extends ObyteSchemeServer {
|
|
88
|
+
constructor(options: ObyteSchemeServerOptions);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* `batch-settlement` (AA payment channels): the proof is the voucher (key
|
|
92
|
+
* `<network>:voucher:<sha256 of the canonical signed package>`, as
|
|
93
|
+
* ObytePaywall). Offers carry the channel base AA and the minimum dispute
|
|
94
|
+
* window. Needs a facilitator with batch-settlement and the seller's watcher.
|
|
95
|
+
*/
|
|
96
|
+
export declare class ObyteBatchServer extends ObyteSchemeServer {
|
|
97
|
+
constructor(options: ObyteBatchServerOptions);
|
|
58
98
|
}
|
|
59
99
|
//# sourceMappingURL=x402-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-server.d.ts","sourceRoot":"","sources":["../../src/seller/x402-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,KAAK,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"x402-server.d.ts","sourceRoot":"","sources":["../../src/seller/x402-server.ts"],"names":[],"mappings":"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"}
|