Skip to content

Commit 3a8f49f

Browse files
committed
fix: reject sequential nonces for sponsored tempo charges
1 parent 744831e commit 3a8f49f

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

‎src/tempo/client/Charge.test.ts‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,20 @@ describe('tempo.charge client', () => {
278278
vi.resetModules()
279279
}
280280
})
281+
282+
test('rejects sequential nonces for fee-sponsored charges', async () => {
283+
try {
284+
await expect(
285+
createWithMockedTransaction(
286+
{ nonceStrategy: 'sequential' },
287+
createChallenge({ amount: '1', feePayer: true, supportedModes: ['pull'] }),
288+
),
289+
).rejects.toThrow('Sequential nonces are not supported for fee-sponsored charges.')
290+
} finally {
291+
vi.doUnmock('viem/actions')
292+
vi.resetModules()
293+
}
294+
})
281295
})
282296

283297
describe('chain pinning', () => {

‎src/tempo/client/Charge.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ export function charge(parameters: charge.Parameters = {}) {
189189
})
190190
}
191191

192+
if (parameters.nonceStrategy === 'sequential' && methodDetails?.feePayer)
193+
throw new Error('Sequential nonces are not supported for fee-sponsored charges.')
192194
const nonceOptions =
193195
parameters.nonceStrategy === 'sequential'
194196
? {}

0 commit comments

Comments
 (0)