mppx 0.8.5 → 0.8.6
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/CHANGELOG.md +12 -0
- package/dist/Receipt.d.ts +20 -2
- package/dist/Receipt.d.ts.map +1 -1
- package/dist/Receipt.js +19 -12
- package/dist/Receipt.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +6 -4
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/plugins/tempo.d.ts.map +1 -1
- package/dist/cli/plugins/tempo.js +4 -2
- package/dist/cli/plugins/tempo.js.map +1 -1
- package/dist/client/internal/Fetch.d.ts.map +1 -1
- package/dist/client/internal/Fetch.js +6 -1
- package/dist/client/internal/Fetch.js.map +1 -1
- package/dist/tempo/client/Charge.d.ts.map +1 -1
- package/dist/tempo/client/Charge.js +6 -2
- package/dist/tempo/client/Charge.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/session/precompile/Chain.d.ts +26 -2
- package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
- package/dist/tempo/session/precompile/Chain.js +38 -5
- package/dist/tempo/session/precompile/Chain.js.map +1 -1
- package/package.json +1 -1
- package/src/Receipt.test.ts +53 -0
- package/src/Receipt.ts +26 -13
- package/src/cli/cli.test.ts +41 -5
- package/src/cli/cli.ts +7 -4
- package/src/cli/plugins/tempo.ts +6 -2
- package/src/client/internal/Fetch.test.ts +44 -0
- package/src/client/internal/Fetch.ts +5 -1
- package/src/tempo/client/Charge.test.ts +61 -0
- package/src/tempo/client/Charge.ts +6 -1
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/session/precompile/Chain.test.ts +121 -2
- package/src/tempo/session/precompile/Chain.ts +56 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,g3rpBAAg3rpB,CAAA"}
|
|
@@ -138,15 +138,39 @@ export type Channel = {
|
|
|
138
138
|
/**
|
|
139
139
|
* Read channel descriptor and state from the TIP20EscrowChannel precompile.
|
|
140
140
|
*/
|
|
141
|
-
export declare function getChannel(client: Client, descriptor: ChannelDescriptor, escrow?: Address): Promise<Channel>;
|
|
141
|
+
export declare function getChannel(client: Client, descriptor: ChannelDescriptor, escrow?: Address, blockNumber?: bigint): Promise<Channel>;
|
|
142
142
|
/**
|
|
143
143
|
* Read channel state from the TIP20EscrowChannel precompile.
|
|
144
144
|
*/
|
|
145
|
-
export declare function getChannelState(client: Client, channelId: Hex, escrow?: Address): Promise<ChannelState>;
|
|
145
|
+
export declare function getChannelState(client: Client, channelId: Hex, escrow?: Address, blockNumber?: bigint): Promise<ChannelState>;
|
|
146
146
|
/**
|
|
147
147
|
* Read channel states from the TIP20EscrowChannel precompile.
|
|
148
148
|
*/
|
|
149
149
|
export declare function getChannelStatesBatch(client: Client, channelIds: readonly Hex[], escrow?: Address): Promise<ChannelState[]>;
|
|
150
|
+
/** Tuning for {@link readbackWithRetry}. */
|
|
151
|
+
export type ReadbackRetryOptions = {
|
|
152
|
+
/** Additional attempts after the first, before giving up. @default 5 */
|
|
153
|
+
retries?: number | undefined;
|
|
154
|
+
/** Delay between attempts, in milliseconds. @default 250 */
|
|
155
|
+
delayMs?: number | undefined;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Retry an on-chain readback that is pinned to the block containing a just-sent
|
|
159
|
+
* transaction.
|
|
160
|
+
*
|
|
161
|
+
* The escrow state read is served by a load-balanced RPC whose replicas can lag
|
|
162
|
+
* behind the block that produced the transaction receipt. Callers pin the read
|
|
163
|
+
* to that block number (via the `blockNumber` arg on {@link getChannel} /
|
|
164
|
+
* {@link getChannelState}) so a node that has imported the block returns
|
|
165
|
+
* authoritative state; replicas that have not yet imported it throw (e.g.
|
|
166
|
+
* "header not found"), so we retry with a short backoff until one catches up.
|
|
167
|
+
*
|
|
168
|
+
* This closes the read-after-write race behind
|
|
169
|
+
* `on-chain channel state does not match open receipt` — without it, a stale
|
|
170
|
+
* `latest` read on a lagging replica returns an empty channel and fails
|
|
171
|
+
* verification even though the open transaction succeeded.
|
|
172
|
+
*/
|
|
173
|
+
export declare function readbackWithRetry<T>(read: () => Promise<T>, options?: ReadbackRetryOptions): Promise<T>;
|
|
150
174
|
/** Options accepted by low-level TIP-1034 on-chain management helpers. */
|
|
151
175
|
export type ChannelTransactionOptions = {
|
|
152
176
|
/** Account used to send the transaction when the viem client has no default account. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/Chain.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/Chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,12 +113,13 @@ function assertUint96(amount) {
|
|
|
113
113
|
/**
|
|
114
114
|
* Read channel descriptor and state from the TIP20EscrowChannel precompile.
|
|
115
115
|
*/
|
|
116
|
-
export async function getChannel(client, descriptor, escrow = tip20ChannelEscrow) {
|
|
116
|
+
export async function getChannel(client, descriptor, escrow = tip20ChannelEscrow, blockNumber) {
|
|
117
117
|
const channel = await readContract(client, {
|
|
118
118
|
address: escrow,
|
|
119
119
|
abi: escrowAbi,
|
|
120
120
|
functionName: 'getChannel',
|
|
121
121
|
args: [descriptorTuple(descriptor)],
|
|
122
|
+
...(blockNumber !== undefined ? { blockNumber } : {}),
|
|
122
123
|
});
|
|
123
124
|
return {
|
|
124
125
|
descriptor: channel.descriptor,
|
|
@@ -128,12 +129,13 @@ export async function getChannel(client, descriptor, escrow = tip20ChannelEscrow
|
|
|
128
129
|
/**
|
|
129
130
|
* Read channel state from the TIP20EscrowChannel precompile.
|
|
130
131
|
*/
|
|
131
|
-
export async function getChannelState(client, channelId, escrow = tip20ChannelEscrow) {
|
|
132
|
+
export async function getChannelState(client, channelId, escrow = tip20ChannelEscrow, blockNumber) {
|
|
132
133
|
const state = await readContract(client, {
|
|
133
134
|
address: escrow,
|
|
134
135
|
abi: escrowAbi,
|
|
135
136
|
functionName: 'getChannelState',
|
|
136
137
|
args: [channelId],
|
|
138
|
+
...(blockNumber !== undefined ? { blockNumber } : {}),
|
|
137
139
|
});
|
|
138
140
|
return stateFromTuple(state);
|
|
139
141
|
}
|
|
@@ -149,6 +151,37 @@ export async function getChannelStatesBatch(client, channelIds, escrow = tip20Ch
|
|
|
149
151
|
});
|
|
150
152
|
return states.map(stateFromTuple);
|
|
151
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Retry an on-chain readback that is pinned to the block containing a just-sent
|
|
156
|
+
* transaction.
|
|
157
|
+
*
|
|
158
|
+
* The escrow state read is served by a load-balanced RPC whose replicas can lag
|
|
159
|
+
* behind the block that produced the transaction receipt. Callers pin the read
|
|
160
|
+
* to that block number (via the `blockNumber` arg on {@link getChannel} /
|
|
161
|
+
* {@link getChannelState}) so a node that has imported the block returns
|
|
162
|
+
* authoritative state; replicas that have not yet imported it throw (e.g.
|
|
163
|
+
* "header not found"), so we retry with a short backoff until one catches up.
|
|
164
|
+
*
|
|
165
|
+
* This closes the read-after-write race behind
|
|
166
|
+
* `on-chain channel state does not match open receipt` — without it, a stale
|
|
167
|
+
* `latest` read on a lagging replica returns an empty channel and fails
|
|
168
|
+
* verification even though the open transaction succeeded.
|
|
169
|
+
*/
|
|
170
|
+
export async function readbackWithRetry(read, options = {}) {
|
|
171
|
+
const { retries = 5, delayMs = 250 } = options;
|
|
172
|
+
let lastError;
|
|
173
|
+
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
174
|
+
try {
|
|
175
|
+
return await read();
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
lastError = error;
|
|
179
|
+
if (attempt < retries)
|
|
180
|
+
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
throw lastError;
|
|
184
|
+
}
|
|
152
185
|
function parsePrecompileCredentialTransaction(parameters) {
|
|
153
186
|
const { escrowContract, feePayer, label, serializedTransaction } = parameters;
|
|
154
187
|
if (feePayer && !FeePayer.isTempoTransaction(serializedTransaction))
|
|
@@ -259,7 +292,7 @@ export async function sendTransaction(client, transaction) {
|
|
|
259
292
|
}
|
|
260
293
|
/** Wait for a receipt and reject reverted precompile transactions. */
|
|
261
294
|
export async function waitForSuccessfulReceipt(client, hash) {
|
|
262
|
-
const receipt = await waitForTransactionReceipt(client, { hash });
|
|
295
|
+
const receipt = await waitForTransactionReceipt(client, { hash, checkReplacement: false });
|
|
263
296
|
if (receipt.status !== 'success')
|
|
264
297
|
throw new VerificationFailedError({ reason: 'precompile transaction reverted' });
|
|
265
298
|
return receipt;
|
|
@@ -379,7 +412,7 @@ export async function broadcastOpenTransaction(parameters) {
|
|
|
379
412
|
expectedChannelId: parameters.expectedChannelId,
|
|
380
413
|
openDeposit: open.deposit,
|
|
381
414
|
});
|
|
382
|
-
const chainChannel = await getChannel(parameters.client, descriptor, parameters.escrowContract);
|
|
415
|
+
const chainChannel = await readbackWithRetry(() => getChannel(parameters.client, descriptor, parameters.escrowContract, receipt.blockNumber));
|
|
383
416
|
const state = chainChannel.state;
|
|
384
417
|
validateOpenReadbackState({ emittedDeposit: opened.deposit, state });
|
|
385
418
|
return {
|
|
@@ -426,7 +459,7 @@ export async function broadcastTopUpTransaction(parameters) {
|
|
|
426
459
|
emittedChannelId: toppedUp.channelId,
|
|
427
460
|
expectedChannelId: parameters.expectedChannelId,
|
|
428
461
|
});
|
|
429
|
-
const state = await getChannelState(parameters.client, toppedUp.channelId, parameters.escrowContract);
|
|
462
|
+
const state = await readbackWithRetry(() => getChannelState(parameters.client, toppedUp.channelId, parameters.escrowContract, receipt.blockNumber));
|
|
430
463
|
validateTopUpReadbackState({ newDeposit: toppedUp.newDeposit, state });
|
|
431
464
|
return { txHash: receipt.transactionHash, newDeposit: toppedUp.newDeposit, state };
|
|
432
465
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/Chain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/Chain.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Receipt.test.ts
CHANGED
|
@@ -30,6 +30,42 @@ describe('from', () => {
|
|
|
30
30
|
}),
|
|
31
31
|
).toThrow()
|
|
32
32
|
})
|
|
33
|
+
|
|
34
|
+
test('behavior: preserves method-specific extension fields', () => {
|
|
35
|
+
const receipt = Receipt.from({
|
|
36
|
+
method: 'nearintents',
|
|
37
|
+
reference: 'FtChYxxQh1k6vKjQ9wq5q1f8s2n3p4r5t6u7v8w9x0yz',
|
|
38
|
+
status: 'success',
|
|
39
|
+
timestamp: '2025-01-21T12:00:00.000Z',
|
|
40
|
+
challengeId: 'qB3wErTyU7iOpAsD9fGhJk',
|
|
41
|
+
originTxHash: '0x9bcff372aee89b648c922b850573b22387c31d693079f5e37cd255814e2d615a',
|
|
42
|
+
destinationNetwork: 'near:mainnet',
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
expect(receipt).toMatchInlineSnapshot(`
|
|
46
|
+
{
|
|
47
|
+
"challengeId": "qB3wErTyU7iOpAsD9fGhJk",
|
|
48
|
+
"destinationNetwork": "near:mainnet",
|
|
49
|
+
"method": "nearintents",
|
|
50
|
+
"originTxHash": "0x9bcff372aee89b648c922b850573b22387c31d693079f5e37cd255814e2d615a",
|
|
51
|
+
"reference": "FtChYxxQh1k6vKjQ9wq5q1f8s2n3p4r5t6u7v8w9x0yz",
|
|
52
|
+
"status": "success",
|
|
53
|
+
"timestamp": "2025-01-21T12:00:00.000Z",
|
|
54
|
+
}
|
|
55
|
+
`)
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
test('error: rejects invalid base field even with extension fields present', () => {
|
|
59
|
+
expect(() =>
|
|
60
|
+
Receipt.from({
|
|
61
|
+
method: 'nearintents',
|
|
62
|
+
reference: 'FtChYxxQh1k6vKjQ9wq5q1f8s2n3p4r5t6u7v8w9x0yz',
|
|
63
|
+
status: 'failed' as 'success',
|
|
64
|
+
timestamp: '2025-01-21T12:00:00.000Z',
|
|
65
|
+
originTxHash: '0x9bcff372aee89b648c922b850573b22387c31d693079f5e37cd255814e2d615a',
|
|
66
|
+
}),
|
|
67
|
+
).toThrow()
|
|
68
|
+
})
|
|
33
69
|
})
|
|
34
70
|
|
|
35
71
|
describe('serialize', () => {
|
|
@@ -67,6 +103,23 @@ describe('deserialize', () => {
|
|
|
67
103
|
})
|
|
68
104
|
})
|
|
69
105
|
|
|
106
|
+
describe('serialize + deserialize', () => {
|
|
107
|
+
test('behavior: round-trips method-specific extension fields', () => {
|
|
108
|
+
const receipt = Receipt.from({
|
|
109
|
+
method: 'nearintents',
|
|
110
|
+
reference: 'FtChYxxQh1k6vKjQ9wq5q1f8s2n3p4r5t6u7v8w9x0yz',
|
|
111
|
+
status: 'success',
|
|
112
|
+
timestamp: '2025-01-21T12:00:00.000Z',
|
|
113
|
+
externalId: 'order_12345',
|
|
114
|
+
challengeId: 'qB3wErTyU7iOpAsD9fGhJk',
|
|
115
|
+
originTxHash: '0x9bcff372aee89b648c922b850573b22387c31d693079f5e37cd255814e2d615a',
|
|
116
|
+
destinationNetwork: 'near:mainnet',
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
expect(Receipt.deserialize(Receipt.serialize(receipt))).toEqual(receipt)
|
|
120
|
+
})
|
|
121
|
+
})
|
|
122
|
+
|
|
70
123
|
describe('fromResponse', () => {
|
|
71
124
|
test('behavior: extracts receipt from Payment-Receipt header', () => {
|
|
72
125
|
const encoded =
|
package/src/Receipt.ts
CHANGED
|
@@ -3,17 +3,7 @@ import { Base64 } from 'ox'
|
|
|
3
3
|
import * as Constants from './Constants.js'
|
|
4
4
|
import * as z from './zod.js'
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
* Schema for a payment receipt.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* import { Receipt } from 'mppx'
|
|
12
|
-
*
|
|
13
|
-
* const receipt = Receipt.Schema.parse(data)
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export const Schema = z.object({
|
|
6
|
+
const shape = {
|
|
17
7
|
/** Payment method used (e.g., "tempo", "stripe"). */
|
|
18
8
|
method: z.string(),
|
|
19
9
|
/** Method-specific reference (e.g., transaction hash). */
|
|
@@ -26,11 +16,34 @@ export const Schema = z.object({
|
|
|
26
16
|
status: z.literal('success'),
|
|
27
17
|
/** RFC 3339 settlement timestamp. */
|
|
28
18
|
timestamp: z.datetime(),
|
|
29
|
-
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Base-field schema used only to derive the {@link Receipt} type without an index signature. */
|
|
22
|
+
const BaseSchema = z.object(shape)
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Schema for a payment receipt.
|
|
26
|
+
*
|
|
27
|
+
* Method specifications may define additional receipt fields beyond the
|
|
28
|
+
* base set (per the core spec's Payment-Receipt section); unknown fields
|
|
29
|
+
* are preserved through parse/serialize round-trips rather than stripped.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { Receipt } from 'mppx'
|
|
34
|
+
*
|
|
35
|
+
* const receipt = Receipt.Schema.parse(data)
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export const Schema = z.looseObject(shape)
|
|
30
39
|
|
|
31
40
|
/**
|
|
32
41
|
* Payment receipt returned after verification.
|
|
33
42
|
*
|
|
43
|
+
* Method-specific extension fields are preserved at runtime but not part of
|
|
44
|
+
* this base type; method packages can type them via intersection
|
|
45
|
+
* (e.g. `Receipt.Receipt & { originTxHash: string }`).
|
|
46
|
+
*
|
|
34
47
|
* @example
|
|
35
48
|
* ```ts
|
|
36
49
|
* import { Receipt } from 'mppx'
|
|
@@ -43,7 +56,7 @@ export const Schema = z.object({
|
|
|
43
56
|
* }
|
|
44
57
|
* ```
|
|
45
58
|
*/
|
|
46
|
-
export type Receipt = z.infer<typeof
|
|
59
|
+
export type Receipt = z.infer<typeof BaseSchema>
|
|
47
60
|
|
|
48
61
|
/**
|
|
49
62
|
* Deserializes a Payment-Receipt header value to a receipt.
|
package/src/cli/cli.test.ts
CHANGED
|
@@ -43,7 +43,7 @@ afterAll(() => {
|
|
|
43
43
|
})
|
|
44
44
|
|
|
45
45
|
async function serve(argv: string[], options?: { env?: Record<string, string | undefined> }) {
|
|
46
|
-
|
|
46
|
+
const stdoutChunks: Buffer[] = []
|
|
47
47
|
let stderr = ''
|
|
48
48
|
let exitCode: number | undefined
|
|
49
49
|
const saved: Record<string, string | undefined> = {}
|
|
@@ -58,7 +58,9 @@ async function serve(argv: string[], options?: { env?: Record<string, string | u
|
|
|
58
58
|
const origLog = console.log
|
|
59
59
|
const origError = console.error
|
|
60
60
|
process.stdout.write = ((chunk: unknown) => {
|
|
61
|
-
|
|
61
|
+
if (typeof chunk === 'string') stdoutChunks.push(Buffer.from(chunk))
|
|
62
|
+
else if (chunk instanceof Uint8Array) stdoutChunks.push(Buffer.from(chunk))
|
|
63
|
+
else stdoutChunks.push(Buffer.from(String(chunk)))
|
|
62
64
|
return true
|
|
63
65
|
}) as typeof process.stdout.write
|
|
64
66
|
process.stderr.write = ((chunk: unknown) => {
|
|
@@ -66,7 +68,7 @@ async function serve(argv: string[], options?: { env?: Record<string, string | u
|
|
|
66
68
|
return true
|
|
67
69
|
}) as typeof process.stderr.write
|
|
68
70
|
console.log = (...args: unknown[]) => {
|
|
69
|
-
|
|
71
|
+
stdoutChunks.push(Buffer.from(`${args.map(String).join(' ')}\n`))
|
|
70
72
|
}
|
|
71
73
|
console.error = (...args: unknown[]) => {
|
|
72
74
|
stderr += `${args.map(String).join(' ')}\n`
|
|
@@ -74,7 +76,7 @@ async function serve(argv: string[], options?: { env?: Record<string, string | u
|
|
|
74
76
|
try {
|
|
75
77
|
await cli.serve(argv, {
|
|
76
78
|
stdout(s: string) {
|
|
77
|
-
|
|
79
|
+
stdoutChunks.push(Buffer.from(s))
|
|
78
80
|
},
|
|
79
81
|
exit(code: number) {
|
|
80
82
|
exitCode = code
|
|
@@ -90,7 +92,8 @@ async function serve(argv: string[], options?: { env?: Record<string, string | u
|
|
|
90
92
|
else process.env[key] = value
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
|
-
|
|
95
|
+
const stdoutBytes = Buffer.concat(stdoutChunks)
|
|
96
|
+
return { output: stdoutBytes.toString(), stderr, exitCode, stdoutBytes }
|
|
94
97
|
}
|
|
95
98
|
|
|
96
99
|
function createMockChargeMethod(name: string) {
|
|
@@ -430,6 +433,24 @@ describe('services', () => {
|
|
|
430
433
|
})
|
|
431
434
|
})
|
|
432
435
|
|
|
436
|
+
describe('request output', () => {
|
|
437
|
+
test('writes non-402 response bodies to stdout without text decoding', async () => {
|
|
438
|
+
const body = Buffer.from([0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x0a, 0x0a])
|
|
439
|
+
const httpServer = await Http.createServer((_req, res) => {
|
|
440
|
+
res.writeHead(200, { 'Content-Type': 'application/pdf' })
|
|
441
|
+
res.end(body)
|
|
442
|
+
})
|
|
443
|
+
|
|
444
|
+
try {
|
|
445
|
+
const { exitCode, stdoutBytes } = await serve([httpServer.url, '-s'])
|
|
446
|
+
expect(exitCode).toBeUndefined()
|
|
447
|
+
expect(stdoutBytes).toEqual(body)
|
|
448
|
+
} finally {
|
|
449
|
+
httpServer.close()
|
|
450
|
+
}
|
|
451
|
+
})
|
|
452
|
+
})
|
|
453
|
+
|
|
433
454
|
describe('basic charge (examples/basic)', () => {
|
|
434
455
|
test('happy path: makes payment and receives response', { timeout: 120_000 }, async () => {
|
|
435
456
|
const { Actions } = await import('viem/tempo')
|
|
@@ -1819,6 +1840,21 @@ test('mppx --help', async () => {
|
|
|
1819
1840
|
expect(output).toContain('sign')
|
|
1820
1841
|
})
|
|
1821
1842
|
|
|
1843
|
+
describe('account fund help', () => {
|
|
1844
|
+
test('only advertises testnet network funding', async () => {
|
|
1845
|
+
const { output } = await serve(['account', 'fund', '--help'])
|
|
1846
|
+
expect(output).toContain('--network <testnet>')
|
|
1847
|
+
expect(output).not.toContain('mainnet|testnet')
|
|
1848
|
+
})
|
|
1849
|
+
|
|
1850
|
+
test('rejects mainnet network funding', async () => {
|
|
1851
|
+
const { exitCode, output } = await serve(['account', 'fund', '--network', 'mainnet'])
|
|
1852
|
+
expect(exitCode).toBe(1)
|
|
1853
|
+
expect(output).toContain('Invalid input')
|
|
1854
|
+
expect(output).toContain('testnet')
|
|
1855
|
+
})
|
|
1856
|
+
})
|
|
1857
|
+
|
|
1822
1858
|
// ---------------------------------------------------------------------------
|
|
1823
1859
|
// sign
|
|
1824
1860
|
// ---------------------------------------------------------------------------
|
package/src/cli/cli.ts
CHANGED
|
@@ -99,6 +99,10 @@ function outputResult<Data>(
|
|
|
99
99
|
return undefined as unknown as Data
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
async function writeResponseBody(response: Response) {
|
|
103
|
+
process.stdout.write(Buffer.from(await response.arrayBuffer()))
|
|
104
|
+
}
|
|
105
|
+
|
|
102
106
|
function canReadCommandStdin() {
|
|
103
107
|
if (process.stdin.isTTY !== false) return false
|
|
104
108
|
return process.stdin.listenerCount('data') === 0 && process.stdin.listenerCount('readable') === 0
|
|
@@ -371,7 +375,7 @@ const cli = Cli.create('mppx', {
|
|
|
371
375
|
exitCode: 22,
|
|
372
376
|
})
|
|
373
377
|
printResponseHeaders(challengeResponse, headerOpts)
|
|
374
|
-
|
|
378
|
+
await writeResponseBody(challengeResponse)
|
|
375
379
|
return
|
|
376
380
|
}
|
|
377
381
|
|
|
@@ -625,8 +629,7 @@ const cli = Cli.create('mppx', {
|
|
|
625
629
|
} catch {}
|
|
626
630
|
}
|
|
627
631
|
|
|
628
|
-
|
|
629
|
-
console.log(body)
|
|
632
|
+
await writeResponseBody(credentialResponse)
|
|
630
633
|
}
|
|
631
634
|
} catch (err) {
|
|
632
635
|
// Re-throw IncurError so incur's error handler formats it properly
|
|
@@ -864,7 +867,7 @@ const account = Cli.create('account', {
|
|
|
864
867
|
description: 'Fund account with testnet tokens',
|
|
865
868
|
options: z.object({
|
|
866
869
|
account: z.string().optional().describe('Account name (env: MPPX_ACCOUNT)'),
|
|
867
|
-
network: z.enum(['
|
|
870
|
+
network: z.enum(['testnet']).optional().describe('Tempo network'),
|
|
868
871
|
rpcUrl: z.string().optional().describe('RPC endpoint (env: MPPX_RPC_URL)'),
|
|
869
872
|
}),
|
|
870
873
|
output: z.object({ account: z.string(), chain: z.string(), transactions: z.array(z.string()) }),
|
package/src/cli/plugins/tempo.ts
CHANGED
|
@@ -42,6 +42,11 @@ const booleanOption = z.union([
|
|
|
42
42
|
z.literal('true').transform(() => true),
|
|
43
43
|
z.literal('false').transform(() => false),
|
|
44
44
|
])
|
|
45
|
+
|
|
46
|
+
async function writeResponseBody(response: Response) {
|
|
47
|
+
process.stdout.write(Buffer.from(await response.arrayBuffer()))
|
|
48
|
+
}
|
|
49
|
+
|
|
45
50
|
const tempoOptionSchema = z.object({
|
|
46
51
|
autoSwap: z.optional(booleanOption),
|
|
47
52
|
channel: z.optional(z.coerce.string()),
|
|
@@ -425,8 +430,7 @@ export function tempo() {
|
|
|
425
430
|
})
|
|
426
431
|
} else {
|
|
427
432
|
// Non-SSE: print body, then close channel
|
|
428
|
-
|
|
429
|
-
console.log(body)
|
|
433
|
+
await writeResponseBody(credentialResponse)
|
|
430
434
|
|
|
431
435
|
if (channelId && escrowContract && chainId) {
|
|
432
436
|
if (confirmEnabled) info('\n')
|
|
@@ -1742,6 +1742,50 @@ describe('Fetch.from: 402 retry path', () => {
|
|
|
1742
1742
|
expect(createCredential).toHaveBeenCalledOnce()
|
|
1743
1743
|
expect(response.status).toBe(402)
|
|
1744
1744
|
})
|
|
1745
|
+
|
|
1746
|
+
test('returns a challenge-less 402 after a rejected payment', async () => {
|
|
1747
|
+
let callCount = 0
|
|
1748
|
+
const createCredential = vi.fn(async () => 'credential')
|
|
1749
|
+
const mockFetch: typeof globalThis.fetch = async () => {
|
|
1750
|
+
callCount++
|
|
1751
|
+
if (callCount === 1) return make402()
|
|
1752
|
+
return new Response(JSON.stringify({ title: 'Verification Failed' }), {
|
|
1753
|
+
status: 402,
|
|
1754
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1755
|
+
})
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1758
|
+
const fetch = Fetch.from({
|
|
1759
|
+
fetch: mockFetch,
|
|
1760
|
+
methods: [{ ...noopMethod, createCredential }],
|
|
1761
|
+
})
|
|
1762
|
+
|
|
1763
|
+
const response = await fetch('https://example.com/api')
|
|
1764
|
+
expect(callCount).toBe(2)
|
|
1765
|
+
expect(createCredential).toHaveBeenCalledOnce()
|
|
1766
|
+
expect(response.status).toBe(402)
|
|
1767
|
+
await expect(response.json()).resolves.toEqual({ title: 'Verification Failed' })
|
|
1768
|
+
})
|
|
1769
|
+
|
|
1770
|
+
test('returns a post-payment 402 with only unsupported challenges', async () => {
|
|
1771
|
+
let callCount = 0
|
|
1772
|
+
const createCredential = vi.fn(async () => 'credential')
|
|
1773
|
+
const mockFetch: typeof globalThis.fetch = async () => {
|
|
1774
|
+
callCount++
|
|
1775
|
+
if (callCount === 1) return make402()
|
|
1776
|
+
return make402({ method: 'stripe', intent: 'charge' })
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1779
|
+
const fetch = Fetch.from({
|
|
1780
|
+
fetch: mockFetch,
|
|
1781
|
+
methods: [{ ...noopMethod, createCredential }],
|
|
1782
|
+
})
|
|
1783
|
+
|
|
1784
|
+
const response = await fetch('https://example.com/api')
|
|
1785
|
+
expect(callCount).toBe(2)
|
|
1786
|
+
expect(createCredential).toHaveBeenCalledOnce()
|
|
1787
|
+
expect(response.status).toBe(402)
|
|
1788
|
+
})
|
|
1745
1789
|
})
|
|
1746
1790
|
|
|
1747
1791
|
describe('Fetch.from: acceptPaymentPolicy', () => {
|
|
@@ -221,10 +221,14 @@ export function from<const methods extends readonly Method.AnyClient[]>(
|
|
|
221
221
|
orderChallenges,
|
|
222
222
|
)
|
|
223
223
|
const selected = orderedCandidates[0]
|
|
224
|
-
if (!selected)
|
|
224
|
+
if (!selected) {
|
|
225
|
+
// A post-payment 402 with no actionable challenge (e.g. rejected credential)
|
|
226
|
+
// is the server's final answer, not a new challenge round.
|
|
227
|
+
if (retry > 0) return response
|
|
225
228
|
throw new Error(
|
|
226
229
|
`No method found for challenges: ${challenges.map((c) => `${c.method}.${c.intent}`).join(', ')}. Available: ${methods.map((m) => `${m.name}.${m.intent}`).join(', ')}`,
|
|
227
230
|
)
|
|
231
|
+
}
|
|
228
232
|
|
|
229
233
|
const selectedChallenge = selected.challenge
|
|
230
234
|
challenge = selectedChallenge
|