From 77531e027f849d4b25f6c74cad77d67eb041e170 Mon Sep 17 00:00:00 2001 From: Maciej Trojan Date: Thu, 13 Nov 2025 10:02:11 +0100 Subject: [PATCH 1/2] fix: use polling mechanism for beneficiary factory transaction watching --- .../sla/components/beneficiary-contract-deploy-widget.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx b/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx index 43148ef..784940c 100644 --- a/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx +++ b/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx @@ -101,8 +101,9 @@ export function BeneficiaryContractDeployWidget({ abi: beneficiaryFactoryAbi, address: factoryAddress, eventName: "ProxyCreated", + poll: true, + pollingInterval: 2_000, onLogs(logs) { - console.log(logs, transactionHash); const createdContactLog = logs.find((log) => { return log.transactionHash === transactionHash && !!log.args.proxy; }); From a35012bb0b92033c068994606ff08fe2b35810b9 Mon Sep 17 00:00:00 2001 From: Maciej Trojan Date: Thu, 13 Nov 2025 10:08:31 +0100 Subject: [PATCH 2/2] fix: corretly create beneficiary deploy tx after form reset --- .../beneficiary-contract-deploy-widget.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx b/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx index 784940c..14d6379 100644 --- a/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx +++ b/app/(app)/sla/components/beneficiary-contract-deploy-widget.tsx @@ -61,21 +61,21 @@ export function BeneficiaryContractDeployWidget({ resolver: zodResolver(formSchema), }); - const { - reset: resetForm, - formState: { isValid: isFormValid }, - } = form; + const { reset: resetForm } = form; - const [admin, provider, withdrawer] = useWatch({ + const values = useWatch({ control: form.control, - name: ["admin", "provider", "withdrawer"], }); const transaction = useMemo(() => { - if (!isFormValid) { + const validationResult = formSchema.safeParse(values); + + if (!validationResult.success) { return null; } + const { admin, provider, withdrawer } = validationResult.data; + const providerIdInteger = BigInt( provider.replaceAll(storageProviderIdPrefixRegex, "") ); @@ -89,7 +89,7 @@ export function BeneficiaryContractDeployWidget({ }), value: "0", }; - }, [admin, factoryAddress, isFormValid, provider, withdrawer]); + }, [factoryAddress, values]); const clear = useCallback(() => { resetForm();