From 33fb7c749e8911ce98dc4b70aff79af8c2a8fc1a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 20 Aug 2026 08:30:59 +0000 Subject: [PATCH 1/3] Initial plan From 326721d7edacab203d8e4712a098eca46dd3b29c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 20 Aug 2026 08:43:08 +0000 Subject: [PATCH 2/3] feat(ai-credits-widget): add revoke operator dialog and action flow Co-authored-by: sirpy <671095+sirpy@users.noreply.github.com> --- .../helpers/aiCreditsWidgetStories.tsx | 1 + .../ai-credits-widget/src/AiCreditsWidget.tsx | 19 ++++ packages/ai-credits-widget/src/adapter.ts | 105 +++++++++++++++++- .../ai-credits-widget/src/backendClient.ts | 34 ++++++ .../ai-credits-widget/src/buyerSignatures.ts | 30 +++++ .../components/manage/BuyerOperatorCard.tsx | 49 +++++++- .../src/mocked/backendClient.ts | 12 ++ .../src/widgetRuntimeContract.ts | 2 +- .../widgets/ai-credits-widget/states.spec.ts | 14 ++- .../acw-07-credits-management.png | Bin 71317 -> 79337 bytes 10 files changed, 261 insertions(+), 5 deletions(-) diff --git a/examples/storybook/src/stories/helpers/aiCreditsWidgetStories.tsx b/examples/storybook/src/stories/helpers/aiCreditsWidgetStories.tsx index 807b7806..35990089 100644 --- a/examples/storybook/src/stories/helpers/aiCreditsWidgetStories.tsx +++ b/examples/storybook/src/stories/helpers/aiCreditsWidgetStories.tsx @@ -68,6 +68,7 @@ function createAdapterFactory( importBuyerFromPrivateKey: async () => {}, applyDeepLinkBuyer: async () => {}, signOperatorConsent: async () => {}, + revokeOperatorConsent: async () => {}, syncOperatorConsentFromChain: async () => {}, buildQuote: async (depositG, streamG) => ({ depositAmountG: depositG, diff --git a/packages/ai-credits-widget/src/AiCreditsWidget.tsx b/packages/ai-credits-widget/src/AiCreditsWidget.tsx index 4d2bb055..2985108a 100644 --- a/packages/ai-credits-widget/src/AiCreditsWidget.tsx +++ b/packages/ai-credits-widget/src/AiCreditsWidget.tsx @@ -14,6 +14,7 @@ import { YStack, Spinner, createToast, + GoodWidgetDialog, updateToast, } from '@goodwidget/ui' import { useAiCreditsAdapter } from './adapter' @@ -293,6 +294,23 @@ function ManagePanel({ ) } +function WidgetDialog() { + return ( + ( + + )} + renderReject={(onPress, label) => ( + + )} + /> + ) +} + function AiCreditsInner({ environment, backendUrl, @@ -460,6 +478,7 @@ export function AiCreditsWidget({ onPaySuccess={onPaySuccess} onPayError={onPayError} /> + diff --git a/packages/ai-credits-widget/src/adapter.ts b/packages/ai-credits-widget/src/adapter.ts index 1bbb7af0..131d4c23 100644 --- a/packages/ai-credits-widget/src/adapter.ts +++ b/packages/ai-credits-widget/src/adapter.ts @@ -13,7 +13,12 @@ import { } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { buildBuyerKeyMessage, deriveBuyerPrivateKeyFromSignature } from './buyerKeyDerivation' -import { normalizeChannelId, signRequestClose, signWithdrawPrincipal } from './buyerSignatures' +import { + normalizeChannelId, + signRequestClose, + signRevokeOperator, + signWithdrawPrincipal, +} from './buyerSignatures' import { totalCreditUsdFromProfile, buildAccountView, @@ -1093,6 +1098,102 @@ export function useAiCreditsAdapter({ } }, [state, chainClient]) + const handleRevokeOperatorConsent = useCallback(async () => { + const currentState = state + if (!currentState.address || !currentState.buyerPubKey || !currentState.operatorConsented) { + return + } + + if (!currentState.buyerPrvKey) { + setState((prev) => ({ + ...prev, + error: + 'Sign with your payer wallet in Buyer & Operator below to generate the buyer private key before revoking operator consent', + })) + return + } + + if (!fundingVaultAddress) { + setState((prev) => ({ + ...prev, + error: 'Funding vault address is not configured', + })) + return + } + + if (currentState.operatorConsentPending) return + + const ref: AccountRef = { payer: currentState.address, buyer: currentState.buyerPubKey } + const onNonBuyTab = isNonBuyTab(currentState.activeTab) + + setState((prev) => ({ + ...prev, + operatorConsentPending: true, + error: null, + })) + + try { + const operatorStatus = await chainClient.getBuyerOperatorStatus(ref) + + if (!operatorStatus.enabled) { + throw new Error('Operator consent is not available') + } + + if (!operatorStatus.operatorAccepted) { + setBuyerOperatorConsented(currentState.address, currentState.buyerPubKey, false) + const buyerList = resolveBuyerList(currentState.address, currentState.buyerPubKey) + const buyerFields = buildBuyerStateFields( + currentState.address, + buyerList.buyers, + buyerList.selected, + ) + setState((prev) => + mergeStatePreservingNonBuyTab(prev, { + ...buyerFields, + operatorConsented: false, + operatorConsentPending: false, + error: null, + ...(!onNonBuyTab ? { status: 'purchase_setup' } : {}), + }), + ) + return + } + + const nonce = String(operatorStatus.consentNonce) + const signature = await signRevokeOperator({ + buyerPrivateKey: currentState.buyerPrvKey as `0x${string}`, + fundingVaultAddress, + buyer: currentState.buyerPubKey as Address, + nonce: BigInt(nonce), + }) + + await backendClient.revokeOperatorConsent(ref.buyer, { nonce, signature }) + + setBuyerOperatorConsented(currentState.address, currentState.buyerPubKey, false) + const buyerList = resolveBuyerList(currentState.address, currentState.buyerPubKey) + const buyerFields = buildBuyerStateFields( + currentState.address, + buyerList.buyers, + buyerList.selected, + ) + setState((prev) => + mergeStatePreservingNonBuyTab(prev, { + ...buyerFields, + operatorConsented: false, + operatorConsentPending: false, + error: null, + ...(!onNonBuyTab ? { status: 'purchase_setup' } : {}), + }), + ) + } catch (err: unknown) { + setState((prev) => ({ + ...prev, + operatorConsentPending: false, + error: err instanceof Error ? err.message : 'Operator revoke failed', + })) + } + }, [state, backendClient, chainClient, fundingVaultAddress, resolveBuyerList]) + const handleBuildQuote = useCallback( async (depositG: string, streamG: string): Promise => { const quote = await chainClient.buildQuote(depositG, streamG) @@ -1619,6 +1720,7 @@ export function useAiCreditsAdapter({ importBuyerFromPrivateKey: handleImportBuyerFromPrivateKey, applyDeepLinkBuyer: handleApplyDeepLinkBuyer, signOperatorConsent: handleSignOperatorConsent, + revokeOperatorConsent: handleRevokeOperatorConsent, syncOperatorConsentFromChain: handleSyncOperatorConsentFromChain, buildQuote: handleBuildQuote, pay: handlePay, @@ -1639,6 +1741,7 @@ export function useAiCreditsAdapter({ handleImportBuyerFromPrivateKey, handleApplyDeepLinkBuyer, handleSignOperatorConsent, + handleRevokeOperatorConsent, handleSyncOperatorConsentFromChain, handleBuildQuote, handlePay, diff --git a/packages/ai-credits-widget/src/backendClient.ts b/packages/ai-credits-widget/src/backendClient.ts index 6abbd1af..acd71f33 100644 --- a/packages/ai-credits-widget/src/backendClient.ts +++ b/packages/ai-credits-widget/src/backendClient.ts @@ -88,6 +88,13 @@ export type OperatorConsentResponse = { bridge: BridgeResponse } +export type OperatorRevokeRequest = { + nonce: string + signature: string +} + +export type OperatorRevokeResponse = OperatorConsentResponse + async function readBridgeResponseBody( response: Response, actionLabel: string, @@ -227,6 +234,10 @@ export interface AiCreditsBackendClient { buyer: string, body: OperatorConsentRequest, ): Promise + revokeOperatorConsent( + buyer: string, + body: OperatorRevokeRequest, + ): Promise } const BPS_PER_PERCENT = 100 @@ -427,6 +438,25 @@ export class ProductionAiCreditsBackendClient implements AiCreditsBackendClient bridge: payload.bridge, } } + + async revokeOperatorConsent( + buyer: string, + body: OperatorRevokeRequest, + ): Promise { + const response = await fetch(`${this.accountBase(buyer)}/operator-revoke`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + nonce: body.nonce, + signature: body.signature, + }), + }) + const payload = await readBridgeResponseBody(response, 'Operator revoke') + return { + buyer: normalizeAddress(payload.buyer ?? buyer), + bridge: payload.bridge, + } + } } export class UnavailableAiCreditsBackendClient implements AiCreditsBackendClient { @@ -473,6 +503,10 @@ export class UnavailableAiCreditsBackendClient implements AiCreditsBackendClient async submitOperatorConsent() { return this.unavailable() } + + async revokeOperatorConsent() { + return this.unavailable() + } } export function createBackendClient( diff --git a/packages/ai-credits-widget/src/buyerSignatures.ts b/packages/ai-credits-widget/src/buyerSignatures.ts index 1cc0a815..eadefa90 100644 --- a/packages/ai-credits-widget/src/buyerSignatures.ts +++ b/packages/ai-credits-widget/src/buyerSignatures.ts @@ -23,6 +23,13 @@ const REQUEST_CLOSE_TYPES = { ], } as const +const REVOKE_OPERATOR_TYPES = { + RevokeOperator: [ + { name: 'buyer', type: 'address' }, + { name: 'nonce', type: 'uint256' }, + ], +} as const + export function normalizeChannelId(channelId: string): Hex | null { const trimmed = channelId.trim() if (!/^0x[0-9a-fA-F]{64}$/.test(trimmed)) return null @@ -78,3 +85,26 @@ export async function signRequestClose(params: { }, }) } + +export async function signRevokeOperator(params: { + buyerPrivateKey: Hex + fundingVaultAddress: Address + buyer: Address + nonce: bigint +}): Promise { + const account = privateKeyToAccount(params.buyerPrivateKey) + return account.signTypedData({ + domain: { + name: ANTSEED_BUYER_OPERATOR_DOMAIN.name, + version: ANTSEED_BUYER_OPERATOR_DOMAIN.version, + chainId: BASE_CHAIN_ID, + verifyingContract: params.fundingVaultAddress, + }, + types: REVOKE_OPERATOR_TYPES, + primaryType: 'RevokeOperator', + message: { + buyer: params.buyer, + nonce: params.nonce, + }, + }) +} diff --git a/packages/ai-credits-widget/src/components/manage/BuyerOperatorCard.tsx b/packages/ai-credits-widget/src/components/manage/BuyerOperatorCard.tsx index 7e9d0dcc..d77f1aef 100644 --- a/packages/ai-credits-widget/src/components/manage/BuyerOperatorCard.tsx +++ b/packages/ai-credits-widget/src/components/manage/BuyerOperatorCard.tsx @@ -1,5 +1,18 @@ import React, { useState } from 'react' -import { Button, ButtonText, Card, Heading, Icon, Input, Spinner, Text, XStack, YStack } from '@goodwidget/ui' +import { + Button, + ButtonText, + Card, + Heading, + Icon, + Input, + Spinner, + Text, + XStack, + YStack, + closeDialog, + createDialog, +} from '@goodwidget/ui' import type { AiCreditsWidgetAdapterActions, AiCreditsWidgetAdapterState } from '../../widgetRuntimeContract' import { AddressView } from '../shared/AddressView' import { monospaceSingleLineStyle, compactButtonProps } from '../shared/styles' @@ -22,6 +35,7 @@ interface BuyerOperatorCardProps { | 'selectBuyer' | 'importBuyerFromPrivateKey' | 'signOperatorConsent' + | 'revokeOperatorConsent' > } @@ -163,6 +177,25 @@ export function BuyerOperatorCard({ state, actions }: BuyerOperatorCardProps) { const buyerCanSign = Boolean(buyerPrvKey || operatorSignature) + const handleOpenRevokeDialog = () => { + createDialog({ + title: 'Revoke Operator?', + body: + "Revoking removes the operator's ability to act on your behalf. Any bonus balance will be deducted, and any active stream bonuses will stop.", + acceptLabel: 'Revoke Operator', + rejectLabel: 'Cancel', + showClose: true, + onAccept: async () => { + try { + await actions.revokeOperatorConsent() + } finally { + closeDialog() + } + }, + onReject: () => {}, + }) + } + return ( Buyer & Operator @@ -211,6 +244,20 @@ export function BuyerOperatorCard({ state, actions }: BuyerOperatorCardProps) { + {operatorConsented && ( + + )} + {showImport ? ( { + await sleep(MOCK_DELAY_MS) + return { + buyer: normalizeAddress(buyer), + bridge: { enabled: true, txHash: '0xmock' }, + } + } } diff --git a/packages/ai-credits-widget/src/widgetRuntimeContract.ts b/packages/ai-credits-widget/src/widgetRuntimeContract.ts index 2a699e04..51600292 100644 --- a/packages/ai-credits-widget/src/widgetRuntimeContract.ts +++ b/packages/ai-credits-widget/src/widgetRuntimeContract.ts @@ -83,6 +83,7 @@ export interface AiCreditsWidgetAdapterActions { */ applyDeepLinkBuyer: (address: string, operatorSignature: string) => Promise signOperatorConsent: () => Promise + revokeOperatorConsent: () => Promise syncOperatorConsentFromChain: () => Promise buildQuote: (depositG: string, streamG: string) => Promise pay: (quote: AiCreditsQuote) => Promise @@ -149,4 +150,3 @@ export interface AiCreditsWidgetProps { adapterOptions?: AiCreditsWidgetAdapterOptions testId?: string } - diff --git a/tests/widgets/ai-credits-widget/states.spec.ts b/tests/widgets/ai-credits-widget/states.spec.ts index d56a984c..487c55e8 100644 --- a/tests/widgets/ai-credits-widget/states.spec.ts +++ b/tests/widgets/ai-credits-widget/states.spec.ts @@ -108,12 +108,23 @@ test('AiCreditsWidget payment_confirmed', async ({ page }) => { test('AiCreditsWidget manage tab', async ({ page }) => { await gotoStory(page, STORY_IDS.creditsManagement) - await expect(page.getByTestId('AiCreditsWidget-manage-tab')).toBeVisible() + await expect(page.getByTestId('AiCreditsWidget-manage-tab')).toBeVisible({ timeout: 10_000 }) await expect(page.getByText('Buy Credits')).toBeVisible() await expect(page.getByText('Manage')).toBeVisible() await expect(page.getByText('History')).toBeVisible() await expect(page.getByText('110.00')).toBeVisible() await expect(page.getByText('Credit History')).not.toBeVisible() + const revokeButton = page.getByRole('button', { name: 'Revoke Operator' }) + await expect(revokeButton).toBeVisible() + await revokeButton.click() + await expect(page.getByText('Revoke Operator?', { exact: true })).toBeVisible() + await expect( + page.getByText( + "Revoking removes the operator's ability to act on your behalf. Any bonus balance will be deducted, and any active stream bonuses will stop.", + ), + ).toBeVisible() + await page.getByRole('button', { name: 'Cancel' }).click() + await expect(page.getByText('Revoke Operator?', { exact: true })).toHaveCount(0) await page.screenshot({ path: 'tests/widgets/ai-credits-widget/test-results/acw-07-credits-management.png', fullPage: true, @@ -345,4 +356,3 @@ test('AiCreditsWidget multi-buyer: import buyer key link is visible', async ({ p fullPage: true, }) }) - diff --git a/tests/widgets/ai-credits-widget/test-results/acw-07-credits-management.png b/tests/widgets/ai-credits-widget/test-results/acw-07-credits-management.png index daebcef73af6b199b07b71b38262ae658f324f48..f04b0c783315caf37d251837e590099ae155f592 100644 GIT binary patch literal 79337 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≷}ZULtbL|VH3{uA7B1s`;hqH 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

  • mUp>>;NvMbuUxqv4*QZ>$=oZl0P(!9R z1j;JQUa0!a0Q$Y&Gk5cAHQl3v{#1~6xl^2`=CP>l2m+pq7oOGNH@mzPt+@*N;WaMdi771r3OLxL3f zN0S8=S}@`;wH(XSvWRIYefeRP1#$Fa0oy-gR#G)jJ)>`w2OsCA@Q4Xok{5At!BTW7 zwG?-cMG>dj{VLvCH#;u?1)U=JY%$gBp(1zWqA+WsN=IMFBDNU=he-8Qyk&ySFZ^Cm z)OwlP#yXrA{B&pPhf9iPkCV5akfnr+XQToLGkb@;JdGtwS~d2bAdg;?2!d@-3l^^C zbzPw?ki^;@W@RDZxR{Paz?7wO?Az@rF~@&!x9zNzplW)ppTE6w-mvx8JZCEbfwq^^ zPaSHi={Z79+mpE9(z@rmZ$|Wpxw>s=5~#`2QklzoIS(1$KHC;#pQVMY z80mSO5k)#G^b(r$qsA6vW9a(sW^yc?8oE}T*!nzQ&^5GnC|Emwk{1Bf!`D|s zSn_kd)`3!m(Gc)J-IkN>&qqc*^Ld*DT7?+}yg#bOdjQ7i9!)4lPZ~c9uBUwQ4M&LY z1f%^$sIsaZwO5MT%i|Fnc`-AAB-xPE=4d0Q8@3l&o(|=ld-rR_fwpQTM&)^Er_|T@ zr>510zw#&2EBpVEg^_wyi`(j<(=47;ho;rVO$v2Rco@Os!Ft5mX|hTqXm{$J&NUkP zC>N<|Awbnl4JLh8GnqKErZ;8d`!SpRg|}fOrKCf{to9F6&^W2cQEGK{oy#`0nn)`( z^l_z*)~M+hE=0;i^|vzml&@oEnz=B8=Q3%$F!`y0R2!Xr$EGRkZ^ApN+S}FSmY{e{ zG3j!|R3Z#8MnMDxS&#Q#0>^b(-!D}q$~IJ57k4tHDq|J+0-+T>u0V56v3NKi-Pqa1 zc%jvmX#2>B$Df?iXg&M{e^ORLH62kQWr^MKtuJ)RcGm^Bb3ScvvG0k3*$Q`BI=R?W z$%~Vsloeb(e+V$_*sJA`y7=-ApycBmlwO{T_wQR5!Aew}(FjJn! zJX4TiZ8_82gS?qN9_g1KUlD+~_Kt&6MQS2&aZJuSr>58#svhB_moXMctAN~3gP?)LJl>7NaM%7;P?;uEeGW)nlq;DztNwF1nDi6cGjs&S|?Llq~h zXsh#P0SNV7f?Ou9x7^vd zCMrFbFnU*__rG&ubjUVSt1_>jV5GK?_kZht+h2&P@|VO|3f6R+R4$k5Rc^IQI}{2` z#YHP+f|&Qq>s^9+SdN-1%-d&=mitDw2%}H|Iz>GC4iXo;@!hL1sYQKc+TmWCMb_hw zM}u&>E8~f(ofUZXej{{nlaT|#$$pv87`n>LfY3e}`f|Eiv#O(LLHfPGs7}}k)lHiM z8+`f$JzQvRQKgjWqu#e>vg?Y1rqY@DyQ06y8!FGaD{pE+3yjh&oW{ePN~gb?Ih+){ za)5$uTvQnb`+v({-NZJ3+t>em|;#{!2*TUppJm+QMxw)V2190N0rNP=H6rjH9NO1 zT$n@9r+i!tqkB4)DNHj++Kn@&?v zGP%O^s+W#_vP}DVXNNpwfFRfcqb`?hLCJq{W8@M@wBU|0i}ZSMYmYjQv%mQI7U%}d z2Hzt7|22i&Z^Cel!GJ)!uK%E@jVbeNC3|-t!{>O_AllFKZ!Ca)^E+PoUJr61lcdcN zw!6Pi0T{wt=6U0t`>rsf4t0~U2pl|Wzgv#(U5|_`X$2@?w8Ak0@rgos$4!*8a<~0N zEr0^)-V|cq>mMX%@Br2!dvrQF-XVJ)uXk@SRw3oEd&cq!xL{{t`(+EP4}nc_y2fs9%j5D{*45z2njBNpiz%8mhZd zEQdVG-4hwlz9`SYcuk&R^z*R*D#5|`PS4LNz&zv6VO4YYZgnPw-h|zo@8b0ng)>&G zuD;t8sk`6IApA@N@QUp2{R1)Q`SVaAycvt2TVHc<0frYKYLLJn3MBne(CmoHykuU) z3A=Y67htGXd>Io?yElNogvaRpB{HKlyKB z{A)!3Zv98v>6^}1uGjA*$2qe=?Y@T}B!_QoRW$p05&wg_KfwcnuZdZ`=YjA)i|eDS z)shb-(IYU|HF2J;4PK{fWx&l03ENx)Y-K=4%h2o2KQ>!!agI>uhtGm(Fe3J!?*;|k zIrIs@xCK;B*>Q40dbvvM^DR>BYiNAI$^Pzygjw#BYgjzV0oea^wN*`@?~u%{ieM{a z;bPr6pchFwB-xFzGf8~-&ZP$%^;L*4<*Jc@iUg-VnM-u19^G&~f>g&E!-7pyiP&UA-BoXH4ODEP;cbxrx3Bbc0iF~`j7t2?jUlHwP{y6prbTkZBjpAdos&Mn$}8S z&(>3B>YuAvq@Dtd)bCLayeNkp~HZ8fM_0AJfAYRgIT zzq#U7;f-BGK9h61JrqzHGVim!_jb~1rXa*feyPwX{@D<6owp&^?!p%}%jT!wC%oj; zxBd^zE~<9_L!e$?>zgrrXl|DE+V4$g!GJLV-cj?1uY`tA{J$gp=u~i;-qQw**%6=W z*U{hh3tVEB_R1*v6P?Q0v8_A3RhW^%XzQlo2f&)6?o(`h=%MS9SkS&fj?E(LB?c?_ zUgfUMV2oOh)#b$&<7zDndyIbVGEIDEEt#hNqDFMlK$?K<=6~}zYhPZMm$l8%(7f`L z%fal_frabkfa&VjX8WS$?WgU-+^6vYpBx7luBJR={gBVr4Dbgs4XD&^;2BYju<3lC zu4IE*x!_o|^y(G)^w;2Y-W$gbm8)Oytxe|vSA)Afrxp{-LB?^PZWiZ+=o3Kg*bY#b z537XG595qekZUSnNTTp^`tA_uCC6XUh6_8S(Zb`0YSBL=(M}y@)a0=@o?l|6zvqarJR=DmqXIcr@ruFSeAwt_7-3F`Tcf(jtR08xh^lwPCfiZtE{s#^PM$n-p=aaLO zFJBsTlD7--5O@GX>C<=!#!#qEWantp?q%q)sPo@*338Cm4njyxN;tJp=ds?f| zXT@`QcDB|PP3Q6yp|7sa3hSGS^Q&z*%dQ{U3~t8r^Az(2&wQey8*y4I0mm3y$2J7UPNu7>3-#Nohdw9u_AhW1`x(&r@N>iVzq-#1EZ zF@8=(CCSonJ_lEA^7Y)lg=8=e8mx~88G7B`Ie*_<*TTHWN=iyFyBXMQMdW@A`#sDI z#;lT80FUG8Q4y(DP71oFmVg_Rp+K#tPNW!jAZZkd9~_58#`xxz1w_RFqw$c~T^OKx z)WV6T(HHaWcQSW<24gBZ*~ftG<$11~W5BeqlsG_4Hx(z)W6|LTq!fB{Uo()lMA*** z+gT;UiH6|b&668ME&R(_`mfAAW6a+$UXE)+0A+kR0P0ii4dY>&1oP&+`Qg6{cKWxC zQnPWZ_^wuHuhR83R0TA%K=Kw|a~usgYZfv&_`R$7?b6{;fxKt$4>}TA$(C}nzBMt8GEFjy zoBZ6QU5UnZo+Ezt4X2x{Rxf&mc+^#KGQm=1_r?47Nj$&8?6aO?X#-})zN~xl>Hm1b z##X=HuaVAk8AP0Nc@=wua;}Mr^8jw*8~W)#{vXcU6pq%o*_3UfFF-rV?$yX-H8hZjV-5o?xu|gB(igkY}`G@Zw#$Wwi z*qJiiLbYVJNFBE>vLb}QBG&V*DTZg44gXJj*BRDS_NOBV=pZ1&j3N;j!3I(kq&G)J zlqw*-1VM^KI*3RK4oXo0r3prQH$dn_S`el8P6)k2AfYCNw7p^Gzt29q&wkry_siz% zJ?GwYa?ZK;yzlQl?+-lm%P%oZzA@w7R;hYZ>p(}8W#$9Gtru!BeDi{mx>2q710ZEu zgPiQbrsHn9Wzy2KWr-AfQLZe(Q*-QY??#ju72X&)ct`6gt4(O{PquhUCa>>cZSVJU zYr1}^Fi#cb($>RfPpg%=jeOBEbDKy)6xYeRc>xJ2L&5ERGamNMsE?u!K-ZSx5mZ?p ztLH@bB~#1wbt6ye&y!0l!5t)l=((f6RYVoR^6Y(jQUP)L_mP07P}$2xmM^uEuV21s zaNWth+}G~usO1wA^;WRvt>#G+X!uGBr?>ZWXXj0iT23*i<@6TZZkiK;+-VocrM z-cSDM>FD=J=I3Qy9qqI#ml2!}U#cGj6KD1W+7|MpD+X}Q`#SPqVLXRJD6M8|$&Ua_ zL_6=+UimduB~B#%tXg(11n1l(B%tIv++NrhQY8OFe!9ljt9*N_yb$2m2EVb9`zIpY zg%o|8nznt0-fcvyltK2dYgd>7){F;+3&JnOtW?(dR|+hfqO%vL)n@Rok7#94WJoUCRKoTjJFJ5uEWEKE%dj6`XT;)efD3^oLuO%*Ql3cJCWQ0da zz;?%zV%E}T>fB-XU&N89u5vSVbsu{8=5k&D=JcmZ&ym4Ey|@qW@uIxp2TIaz6ZMWm zwfR%B;a6I#5vltl<`oLACug23iU#`^5)8dC^Z?DuUu0sVfzx zPb^Dp{r#?Wb(!A?Tt9%f&Ft=yyJmXC`=94Lf;)fJw7XOAy-Ee3deju}eM=Fs_BnO$ z&T3W8@aRiorzu>v7@H_&c4ZlgmFd5+j>AErP$m%Up9;_wwiA=N;P@Vq1g#~Jg^`yd51Er##~4h}+(HzktEC%% z8s)x-KOU~#UrRyvx?C{BS&7MYmHTKukbY`mDx+CrG%S~_t34_C@y)c|Ti<=T>ckr- zRwzt7=@qF`4JzVrLep~ z_z-k81#c5itQ@G}VtynzWJS{Mz&?^Syk_Z27`5bK&?G z9`&YTl06|I%NsW_AI10a3I4P@|K+;gH?_%UC4kvI+``p_ ze7|*FE(&@^|Auy$vF$`$IcnJHgiosvZuHbX>^XuQso5y1`>SCGG9(c&Y9=+@-2GS; zK#`H*(NJ|p#f_)yQivV$JedGl zIvZ!&Kdn6%9LlBr${%IQR<)Eva5ZA9vZ~PNcy4>{>T^r)X9cS#${oih9C7OHlYZUn z)A7$FyD2+UmtwnZ8nE9KphUQjv+9n0ZTWl4LEsTRz$htgP5&`` zgINP8uGv+R+@>LajjtkvZU=0-@@m$G2y{9n`|kwPtHE+fLR7rqPxEc(LCU=3>dx9_J&|@q5q1|4*!|==IEgN zf*$lgMQHzOJM|Y^Q$@qpy!X;&V5~!>y246WnZiLJu~sHakV8kCLazY&$Or`Fep9@O zdF4Ok(faRfhpUysL;uAE{30k2>c;{qIp-k=)J0t=U}jBZDn`eSvCp0>U}f%);{6`7 znUfdSJq=Dgt{G#dZ)L*$Gnw^<1;)LTIA$35mNRAUn7RLwucoGnUFbz%zxL|Yu}<(C ziY=#yDD!#*ZcDw1J98*8(M&wuoeflZn;cVARDV05F5>|B>V|^z?y!_*cf8hDJYT(2 z4g&gOnP0D&kd%1M!db2vmFA>CD%?VsGrEF^S(*OdfR8KNBDUDa6Yg#4wKsTwVi zjKHC)-D^@uGJ5y-+(K*<_$N_CpxLR&M&{E$Dlf>~ANwur*bC7trrO@UUjJm1 zK9{iPgJ#f|cBUE20k5Au$bFXD4wXr1jRmWCKbef=^%9-87ZrIAKyJSh)WPic`Y;Y2 zK}Am&QW`-&U0o8W7Al;Gx9q9_VEg<8%^UB)cjfZ&&Dc6j#wxxnO~~0Zi;kkjwl> zOe~sKqrhyG=MO(q5PfN~&D)2kf9G72<8wS!nL){p?MXT6Hy8mN`{{V{S#jI+UIR;i zmUBAA#(sV=B$&b!h0U_BCxBE#Ce7=nm^fKZP7c_TGKEr2T*G3=UM#kwSUI?XC;t7$ zW>T1c*Ra1k`8^CkoyE$Yv$O3VMVTIxTmq6KE0ChvUGBZ@?kMvo2OWM?Ut_X^6c-kVCQGlf{ctN>1x=B{h?p&BUj2SOjcXR zEy{oL%$YOd6S;?2G<7+O45Owae?g?mhEJ;bye|ozk!;S02s^=ik-ToF;CiYxt+thCYxb2o0Wla}<4^I(zJ(^_=>~vQNt>A@;MC zRfcn)5MOI-^gBUUDMbq#NpSRBmd&&LMr`9+gTitjO>e?*<$TBK(Sy?861Te0L6xLg z!>Zr63&R36V7M9l&BCXqZ^=t}VM^x!F(q~{KTlM&7UmA>nAav(fvUhNx4^|C$rU&`&=6?5AufDuFbVn<-ClO5-*{m`_ z2YcS#%@Nl;MIU1vx)2PDdx$H@p2pl%3!C<~a(ek=iqe>A4rr4Rjui@|>=Gn;Chnt` zU;ZT-XYWK`qj|*Gj=I-xTkzwp%gh4X>(@Fg(7`y)&3cPQn#)L^16-Bo$Lv~PBaJ-P zyK84!y#+DQ_ped)*gsOO9T*NAKV(07>eLA?t_}v>9NcxPLCJ}VI>_@m&mG}{Zf!0u zMvePv2~cO@FqmU_MZ1-aBun#QEGlpSw@ z&4125U>tU8iQ0##Q*x0-BJ;f~GXVr%f9SgX<4A!3v*C6tmd2^A?eDFvoySC-(K0ek za#PMfY0``qQ^nxzl}(pYNzF^WpVe|><%8GjJYv3L6GXD|bOm^M|M;r&&duoV>(P6M z^jz?~h?B-1R@!o+;7PsX;Li)%t4JyJE8xS|O4w+$OcvUgvEd&pCl(T+_Yzg$a7m7MfBcv(e#WiO`dHdX?B_s~< zQ@Q?y26>0GR-CZ(T)FV1cj!ReTDo3T41dAex@WMnMbq|w)f@|q`)Ntc7D$pxU9KYF*nKwVuYY&Z5&D&{|Hs+PJF zSn(<&92%B81f;T7Q=G`<-Y<(qngZ@AluqZ0kpT9U_od@?_xJ~6s?^>;+Baj6CkZoM z#yhw&2VhJY*%jX4({he$;ZZsx(dSZ4`U|XDiJ!dRzANsGJ7&KHOjzylnl~*G-s+6! zglfq%R=d zIgf|X*2YA`?`q!VXPJx`&WAmFz2`NT2u>{KKvzx5?PBC=xbQPG{1?6%L|*5Ll8GdI z{_-JAnELcio>5)Q!D0V5NUK=lN@PL7bulDkuP$|EZgTl-Iz7zitOc0cv2aCn9gj%e zB68_5sqPHE)1e+8-hCQYMhuKolF0`qXGd}S0Dj5M9g}M>yC9(}SgNg)%6=yqvC7|{ z&zM#3`Gn)klNw#FF4BsXUo`4Cy)5-1T$Af0wA%VsvRL;Y!jn6laW{v)T6jGc#nW3( z_|cIG4E{A^xv1n6a>Vn$PjG}8~19a3QiGjz{wJ|T2 z;~5H@6>lK-i_}cJ3By0-HeZ9ltsMH!Yvo zHW2Ba*N%AhP+?BJ44_wMrBl_c&YxB39wUj5DHyr7i1AQwlJouF5yk1A_@Ap*LP1W( znGXXI`WA=j=*BJ#)vWrPi1oI!!K93$s>s(4w{{x1Wa5&Edt}H&we?eS6Kv}2)H7ql zx%e{(IcF=|3G@^npFfFK0jt>X!1DYC4KpGcP{-EF^!{?JvKB9qKHfQ6FNw1yWB*(+ zA8Rc*k^Oip0S3>_of-6?t5Wde1qG{XNZ|r^2XMGoMY?a^j4?c|j!}(jFNiXDCe@gi z?U^1CT40qWg+9N{qc#T&7)Y5H_y}R@q|FL(+`{rXn=SKg?^mbl%=Gn3Q0(Q!*Ht!o zq^Yq8v&~@i;7dg3n+SFP)|SYhi~|y-QmQ2Gv1fBP`PwucyE~L!QmFHFb9F2*6)vnq z`3Cvc`cZyLhBh}tTT1ow8HogYVdD`YjI9%o>8@QIjD6u)jYDi-B`=&+BrAt|jVgZ5 z9{-uPD9x^Nt**M+KDSenO;N$-~Wd(L0-{|%|#kWjQWB`{_ChvFLaP=Yf}DT%#zz-pBX`5XL2|)^g@L# zMjb~U94x)=j9Z%TlaGQLQ^{bo0l3a-bT+g!3jLA*ubT${1c8p%GW`MoH`TX5*>Tl} z2XAxkb`_M#!U9NW`VQGAUqT*pTJB=AlF@Jt#45yY$ryYbvG!s(YY%~@Z>k_9i0* zlqPzawv*Twvi8O1pe9T>M{vEJj~V#LZ~*pEnKJZk3%@GWUHZ9!Fm`M5YH230$~8!2 zGTD8Kn2QqHDbqtzH?5r6cJPoMy@%rP76^KKHI+x|0cF|6tMIfX|20V}ahJrPQfe9{ z8(YoA;R-Y?&3L)7antT`;mcs*OTZa)m4luLSm2xiyj%XlCn1Ux)+{1M$i!%A_JZr7 zq}m~wqT{4dxkX6gc006sX*a}aK*iRr1C}5GFbZjg8nBz`GveB}c=hA%3JiwBR)4;A zZF@iW3Y|tn>L zQ@i5!YpuIBekpPD%|waiR2G(;HIlBZCefs`{)+x@;v;qq==1@8A;A|2Ei z>LaDk*N0W7)lc3CCz4vcIw4lyyFsSi$oR{OG+*Ket!pq!T>Udx%AvK z^w(H}w(O<>l*M8u+Ere)7&NdZn*(_P|0ue^eO~b*P$(2!5YMue$tya498_t)*v`wr zeV%C>c7#aG#Wt=k2?DV?emU2>?ovnKNZ}E120<;bG5#V`YI3n5gp}rSgp64Iv_VqJ z!G~Sa{&cSvnPVWcgFX#O#>%L4Z>qy-3E-ZS4*@Xpy9aIGqwGh7UajPxfM~;i(kpN; z<4+iND+VY5a+jE@vh|Y(-e##f089uDtjOk&J%2Ow-jx{PsCQs1LkmprlFq*aLrBYvAX z37THlU{tEU?9UiSy*L8NArh(M$7>7Qmb>+JzgQa^`^+|F0(eYZ<6W^SAg6eHT|g`5 zJy^;6XMv&U-b>nOF~k~zh8(GfGO{N#Kt-!#H3XEGL#l9OVtTNM$nj7-&f2SNmlHWT z8CFLM3Y>CK=ldIix?6+TLvgo`#2i{{KmQRPZJqyDWbuD8!(Z>5=aCo&RI36|b<7{~ z=)r&}|9|y#LNkL01Y$5|-fxQoZD41<#aKb;@3Ma;l}s%#oAp3b|8B``yTASooZm{D literal 71317 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 #aA>oIgE(h- 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 From 4aa9295aa473b1a6671c596c6ebb1f2c8206917d Mon Sep 17 00:00:00 2001 From: sirpy Date: Thu, 20 Aug 2026 12:04:37 +0300 Subject: [PATCH 3/3] add: read nonce correctly --- packages/ai-credits-widget/src/adapter.ts | 130 ++++++++---------- .../ai-credits-widget/src/backendClient.ts | 4 +- .../ai-credits-widget/src/buyerSignatures.ts | 12 +- packages/ai-credits-widget/src/chainClient.ts | 12 ++ .../src/mocked/chainClient.ts | 4 + 5 files changed, 80 insertions(+), 82 deletions(-) diff --git a/packages/ai-credits-widget/src/adapter.ts b/packages/ai-credits-widget/src/adapter.ts index 131d4c23..a5ffe213 100644 --- a/packages/ai-credits-widget/src/adapter.ts +++ b/packages/ai-credits-widget/src/adapter.ts @@ -167,10 +167,7 @@ async function discoverBuyersFromHistory( return rememberBuyerAddresses(payer, [...historyBuyers, ...extras]) } -function selectPreferredBuyer( - buyers: string[], - preferredBuyer?: string | null, -): string | null { +function selectPreferredBuyer(buyers: string[], preferredBuyer?: string | null): string | null { if ( preferredBuyer && buyers.some((item) => item.toLowerCase() === preferredBuyer.toLowerCase()) @@ -329,11 +326,7 @@ function viewToStatePatch( } } -function activateBuyerSelection( - payer: string, - buyers: string[], - selectedAddress: string | null, -) { +function activateBuyerSelection(payer: string, buyers: string[], selectedAddress: string | null) { setActiveBuyerAddress(payer, selectedAddress) return buildBuyerStateFields(payer, buyers, selectedAddress) } @@ -374,9 +367,7 @@ export function useAiCreditsAdapter({ const { address, chainId, isConnected, provider, connect } = useWallet() const [state, setState] = useState(INITIAL_STATE) const configurationError = - backendClientOverride || backendUrl - ? null - : 'AI Credits backend is not configured' + backendClientOverride || backendUrl ? null : 'AI Credits backend is not configured' const providerRef = useRef(null) providerRef.current = provider as EIP1193Provider | null @@ -483,13 +474,12 @@ export function useAiCreditsAdapter({ })) .catch(() => null) - const minimumsPromise = - skipVaultPaymentValidation - ? Promise.resolve({ - minDepositUsd: '1.00', - minStreamUsd: '1.00', - }) - : fetchVaultPaymentMinimums(publicClient, celoVault, address as Address).catch(() => null) + const minimumsPromise = skipVaultPaymentValidation + ? Promise.resolve({ + minDepositUsd: '1.00', + minStreamUsd: '1.00', + }) + : fetchVaultPaymentMinimums(publicClient, celoVault, address as Address).catch(() => null) const gdUsdPerTokenPromise = chainClient.fetchGdUsdPerToken().catch(() => null) const discountConfigPromise = backendClient.getDiscountConfig().catch(() => null) @@ -564,8 +554,7 @@ export function useAiCreditsAdapter({ ...patch, ...accountPatch, ...buyerFields, - operatorConsented: - accountPatch.operatorConsented ?? buyerFields.operatorConsented, + operatorConsented: accountPatch.operatorConsented ?? buyerFields.operatorConsented, ...(account ? {} : { activeTab: 'buy' as const }), }, true, @@ -653,10 +642,7 @@ export function useAiCreditsAdapter({ const existingKey = derivedAddress ? getBuyerKeyEntry(payerAddress, derivedAddress) : null if (derivedAddress && existingKey?.privateKey) { - const buyers = mergeBuyerAddressList( - listKnownBuyerAddresses(payerAddress), - derivedAddress, - ) + const buyers = mergeBuyerAddressList(listKnownBuyerAddresses(payerAddress), derivedAddress) const buyerFields = activateBuyerSelection(payerAddress, buyers, derivedAddress) setState((prev) => mergeStatePreservingNonBuyTab(prev, { @@ -753,8 +739,7 @@ export function useAiCreditsAdapter({ mergeStatePreservingNonBuyTab(prev, { ...accountPatch, ...nextBuyerFields, - operatorConsented: - accountPatch.operatorConsented ?? nextBuyerFields.operatorConsented, + operatorConsented: accountPatch.operatorConsented ?? nextBuyerFields.operatorConsented, error: null, }), ) @@ -777,9 +762,7 @@ export function useAiCreditsAdapter({ const sameLength = buyers.length === prev.buyers.length const unchanged = sameLength && - buyers.every( - (item, index) => item.toLowerCase() === prev.buyers[index]?.toLowerCase(), - ) + buyers.every((item, index) => item.toLowerCase() === prev.buyers[index]?.toLowerCase()) if (unchanged) return prev return { ...prev, buyers } }) @@ -791,7 +774,11 @@ export function useAiCreditsAdapter({ async (rawPrivateKey: string) => { if (!address) { setState((prev) => - withDerivedStatus(prev, { error: 'Connect your wallet before importing a buyer key' }, true), + withDerivedStatus( + prev, + { error: 'Connect your wallet before importing a buyer key' }, + true, + ), ) return } @@ -814,10 +801,7 @@ export function useAiCreditsAdapter({ const buyerAccount = privateKeyToAccount(privateKey) upsertBuyerKey(address, buyerAccount.address, { privateKey }, { setActive: true }) - const buyers = mergeBuyerAddressList( - listKnownBuyerAddresses(address), - buyerAccount.address, - ) + const buyers = mergeBuyerAddressList(listKnownBuyerAddresses(address), buyerAccount.address) const buyerFields = buildBuyerStateFields(address, buyers, buyerAccount.address) setState((prev) => mergeStatePreservingNonBuyTab(prev, { @@ -841,17 +825,9 @@ export function useAiCreditsAdapter({ balanceMode: 'always', }) if (accountPatch.operatorConsented !== undefined) { - setBuyerOperatorConsented( - address, - buyerAccount.address, - accountPatch.operatorConsented, - ) + setBuyerOperatorConsented(address, buyerAccount.address, accountPatch.operatorConsented) } - const nextBuyerFields = buildBuyerStateFields( - address, - buyers, - buyerAccount.address, - ) + const nextBuyerFields = buildBuyerStateFields(address, buyers, buyerAccount.address) setState((prev) => mergeStatePreservingNonBuyTab(prev, { ...accountPatch, @@ -866,7 +842,11 @@ export function useAiCreditsAdapter({ } } catch { setState((prev) => - withDerivedStatus(prev, { error: 'Could not derive an account from the provided private key' }, true), + withDerivedStatus( + prev, + { error: 'Could not derive an account from the provided private key' }, + true, + ), ) } }, @@ -960,11 +940,7 @@ export function useAiCreditsAdapter({ const currentState = state if (!currentState.address || !currentState.buyerPubKey) { setState((prev) => - withDerivedStatus( - prev, - { error: 'Select a buyer before signing operator consent' }, - true, - ), + withDerivedStatus(prev, { error: 'Select a buyer before signing operator consent' }, true), ) return } @@ -1107,8 +1083,7 @@ export function useAiCreditsAdapter({ if (!currentState.buyerPrvKey) { setState((prev) => ({ ...prev, - error: - 'Sign with your payer wallet in Buyer & Operator below to generate the buyer private key before revoking operator consent', + error: 'Signer private key missing', })) return } @@ -1159,15 +1134,15 @@ export function useAiCreditsAdapter({ return } - const nonce = String(operatorStatus.consentNonce) + const nonce = await chainClient.getBuyerAuthNonce(currentState.buyerPubKey as Address) const signature = await signRevokeOperator({ buyerPrivateKey: currentState.buyerPrvKey as `0x${string}`, fundingVaultAddress, buyer: currentState.buyerPubKey as Address, - nonce: BigInt(nonce), + nonce: nonce, }) - await backendClient.revokeOperatorConsent(ref.buyer, { nonce, signature }) + await backendClient.revokeOperatorConsent(ref.buyer, { nonce: nonce.toString(), signature }) setBuyerOperatorConsented(currentState.address, currentState.buyerPubKey, false) const buyerList = resolveBuyerList(currentState.address, currentState.buyerPubKey) @@ -1295,10 +1270,15 @@ export function useAiCreditsAdapter({ } if (prepareSettlement) { - const creditUsdMicro = quoteTotalUsdMicro(quote, gdUsdPerToken, currentState.isGoodIdVerified, { - depositBonusPercent: currentState.depositBonusPercent, - streamBonusPercent: currentState.streamBonusPercent, - }) + const creditUsdMicro = quoteTotalUsdMicro( + quote, + gdUsdPerToken, + currentState.isGoodIdVerified, + { + depositBonusPercent: currentState.depositBonusPercent, + streamBonusPercent: currentState.streamBonusPercent, + }, + ) prepareSettlement(accountRef, creditUsdMicro) } @@ -1436,12 +1416,10 @@ export function useAiCreditsAdapter({ { ...accountPatch, ...buyerFields, - operatorConsented: - accountPatch.operatorConsented ?? buyerFields.operatorConsented, + operatorConsented: accountPatch.operatorConsented ?? buyerFields.operatorConsented, activeTab: prev.activeTab, error: null, - depositBonusPercent: - discountConfig?.depositBonusPercent ?? prev.depositBonusPercent, + depositBonusPercent: discountConfig?.depositBonusPercent ?? prev.depositBonusPercent, streamBonusPercent: discountConfig?.streamBonusPercent ?? prev.streamBonusPercent, }, true, @@ -1545,15 +1523,20 @@ export function useAiCreditsAdapter({ } try { - const timestamp = Math.floor(Date.now() / 1000) + const buyer = currentState.buyerPubKey + if (!buyer) { + setState((prev) => ({ ...prev, error: 'Select a buyer before closing a channel' })) + return + } + const nonce = await chainClient.getBuyerAuthNonce(buyer) const signature = await signRequestClose({ buyerPrivateKey: currentState.buyerPrvKey as `0x${string}`, fundingVaultAddress, channelId, - timestamp, + nonce, }) - await backendClient.closeChannel(channelId, { timestamp, signature }) + await backendClient.closeChannel(channelId, { nonce: nonce.toString(), signature }) setState((prev) => ({ ...prev, error: null })) } catch (err: unknown) { setState((prev) => ({ @@ -1562,7 +1545,7 @@ export function useAiCreditsAdapter({ })) } }, - [state, backendClient, fundingVaultAddress], + [state, backendClient, chainClient, fundingVaultAddress], ) const handleWithdrawCredits = useCallback( @@ -1603,20 +1586,20 @@ export function useAiCreditsAdapter({ const buyer = currentState.buyerPubKey as Address const payer = currentState.address as Address - const timestamp = Math.floor(Date.now() / 1000) + const nonce = await chainClient.getBuyerAuthNonce(buyer) const signature = await signWithdrawPrincipal({ buyerPrivateKey: currentState.buyerPrvKey as `0x${string}`, fundingVaultAddress, buyer, amountMicro: BigInt(amount), recipient: payer, - timestamp, + nonce, }) await backendClient.withdrawCredits(buyer, { amount, recipient: payer, - timestamp, + nonce: nonce.toString(), signature, }) setState((prev) => ({ ...prev, error: null })) @@ -1628,7 +1611,7 @@ export function useAiCreditsAdapter({ })) } }, - [state, backendClient, fundingVaultAddress, handleRefresh], + [state, backendClient, chainClient, fundingVaultAddress, handleRefresh], ) const handleRetry = useCallback(async () => { @@ -1665,8 +1648,7 @@ export function useAiCreditsAdapter({ if (parsed.status === 'absent') return if (parsed.status === 'partial') { - const missing = - parsed.present === 'buyerAddress' ? 'operatorSignature' : 'buyerAddress' + const missing = parsed.present === 'buyerAddress' ? 'operatorSignature' : 'buyerAddress' setState((prev) => withDerivedStatus( prev, diff --git a/packages/ai-credits-widget/src/backendClient.ts b/packages/ai-credits-widget/src/backendClient.ts index acd71f33..859feb06 100644 --- a/packages/ai-credits-widget/src/backendClient.ts +++ b/packages/ai-credits-widget/src/backendClient.ts @@ -52,12 +52,12 @@ function normalizeAddress(address: string): string { export type WithdrawPrincipalRequest = { amount: string recipient: string - timestamp: number + nonce: string signature: string } export type ChannelOperationRequest = { - timestamp?: number + nonce?: string signature?: string } diff --git a/packages/ai-credits-widget/src/buyerSignatures.ts b/packages/ai-credits-widget/src/buyerSignatures.ts index eadefa90..04a5218f 100644 --- a/packages/ai-credits-widget/src/buyerSignatures.ts +++ b/packages/ai-credits-widget/src/buyerSignatures.ts @@ -12,14 +12,14 @@ const WITHDRAW_PRINCIPAL_TYPES = { { name: 'buyer', type: 'address' }, { name: 'amount', type: 'uint256' }, { name: 'recipient', type: 'address' }, - { name: 'timestamp', type: 'uint256' }, + { name: 'nonce', type: 'uint256' }, ], } as const const REQUEST_CLOSE_TYPES = { RequestClose: [ { name: 'channelId', type: 'bytes32' }, - { name: 'timestamp', type: 'uint256' }, + { name: 'nonce', type: 'uint256' }, ], } as const @@ -42,7 +42,7 @@ export async function signWithdrawPrincipal(params: { buyer: Address amountMicro: bigint recipient: Address - timestamp: number + nonce: bigint }): Promise { const account = privateKeyToAccount(params.buyerPrivateKey) return account.signTypedData({ @@ -58,7 +58,7 @@ export async function signWithdrawPrincipal(params: { buyer: params.buyer, amount: params.amountMicro, recipient: params.recipient, - timestamp: BigInt(params.timestamp), + nonce: params.nonce, }, }) } @@ -67,7 +67,7 @@ export async function signRequestClose(params: { buyerPrivateKey: Hex fundingVaultAddress: Address channelId: Hex - timestamp: number + nonce: bigint }): Promise { const account = privateKeyToAccount(params.buyerPrivateKey) return account.signTypedData({ @@ -81,7 +81,7 @@ export async function signRequestClose(params: { primaryType: 'RequestClose', message: { channelId: params.channelId, - timestamp: BigInt(params.timestamp), + nonce: params.nonce, }, }) } diff --git a/packages/ai-credits-widget/src/chainClient.ts b/packages/ai-credits-widget/src/chainClient.ts index 8d639777..7c57214c 100644 --- a/packages/ai-credits-widget/src/chainClient.ts +++ b/packages/ai-credits-widget/src/chainClient.ts @@ -51,6 +51,7 @@ const DEPOSITS_ABI = parseAbi([ const FUNDING_VAULT_ABI = parseAbi([ 'function withdrawablePrincipal(address buyer) view returns (uint256)', + 'function usedNonces(address buyer) view returns (uint256)', ]) const GOODID_ABI = parseAbi([ @@ -80,6 +81,7 @@ export interface AiCreditsChainClient { operatorStatus?: BuyerOperatorStatus, ): Promise getWithdrawableUsd(buyer: string): Promise + getBuyerAuthNonce(buyer: string): Promise } export class ProductionAiCreditsChainClient implements AiCreditsChainClient { @@ -212,6 +214,16 @@ export class ProductionAiCreditsChainClient implements AiCreditsChainClient { return amount.toString() } + async getBuyerAuthNonce(buyer: string): Promise { + if (!this.fundingVaultAddress) return 0n + return this.baseClient.readContract({ + address: this.fundingVaultAddress, + abi: FUNDING_VAULT_ABI, + functionName: 'usedNonces', + args: [normalizeAddress(buyer) as Address], + }) + } + private async readOperatorNonce(buyer: Address): Promise { return this.baseClient.readContract({ address: this.depositsAddress, diff --git a/packages/ai-credits-widget/src/mocked/chainClient.ts b/packages/ai-credits-widget/src/mocked/chainClient.ts index 16d14361..2593a74f 100644 --- a/packages/ai-credits-widget/src/mocked/chainClient.ts +++ b/packages/ai-credits-widget/src/mocked/chainClient.ts @@ -85,4 +85,8 @@ export class MockAiCreditsChainClient implements AiCreditsChainClient { async getWithdrawableUsd(): Promise { return '0' } + + async getBuyerAuthNonce(): Promise { + return 0n + } }