Skip to content

[252] Backend: Add webhook delivery system for transaction events #124

[252] Backend: Add webhook delivery system for transaction events

[252] Backend: Add webhook delivery system for transaction events #124

Triggered via pull request April 27, 2026 19:21
Status Failure
Total duration 1m 6s
Artifacts 1

frontend.yml

on: pull_request
build-and-analyze
54s
build-and-analyze
lint-and-test
1m 2s
lint-and-test
Fit to window
Zoom out
Zoom in

Annotations

10 errors and 2 warnings
lint-and-test
Process completed with exit code 1.
src/components/VaultDashboard.test.tsx > VaultDashboard > shows minimum deposit validation and clears error when corrected: frontend/src/components/VaultDashboard.test.tsx#L190
TestingLibraryElementError: Unable to find an element with the text: /Approve & Deposit/i. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div> <div class="vault-dashboard gap-lg" > <div class="vault-dashboard-stats" > <div class="glass-panel vault-stats-panel" > <div class="glass-panel" role="alert" style="padding: 16px 18px; margin-bottom: 20px; background: rgba(255, 107, 107, 0.12); border: 1px solid rgba(255, 107, 107, 0.25);" > <div style="font-weight: 600; margin-bottom: 4px;" > Data unavailable </div> <div style="color: var(--text-secondary); font-size: 0.9rem;" > Failed to load vault data </div> </div> <div class="vault-stats-header flex justify-between items-center" style="margin-bottom: 24px;" > <div> <h2 style="font-size: 1.5rem; margin-bottom: 4px;" > Global RWA Yield Fund </h2> <span class="tag" style="background: rgba(255, 255, 255, 0.05); color: var(--text-secondary);" > Tokens: USDC </span> <div aria-atomic="true" aria-live="polite" role="status" style="margin-top: 8px; color: var(--text-secondary); font-size: 0.82rem; display: flex; align-items: center; gap: 4px;" > <span> 1 yvUSDC =  </span> <div aria-hidden="true" class="skeleton " style="width: 120px; height: 1.25rem;" /> </div> </div> <div style="text-align: right;" > <div style="color: var(--text-secondary); font-size: 0.85rem; display: flex; align-items: center; justify-content: flex-end; gap: 6px;" > Current APY <span style="display: inline-flex; align-items: center;" > <button aria-label="More information" class="help-icon-btn" type="button" > <svg aria-hidden="true" class="lucide lucide-info" fill="none" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="14" xmlns="http://www.w3.org/2000/svg" > <circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" /> </svg> </button> </span> </div> <div class="text-gradient" style="font-size: 2rem; font-family: var(--font-display); font-weight: 700;" > 7.66% </div> </div> </div> <div style="height: 1px; background: var(--border-glass); margin: 24px 0px;" /> <div class="vault-stats-meta flex gap-xl" style="margin-bottom: 32px;"
src/components/VaultDashboard.test.tsx > VaultDashboard > shows inline error and blocks submit for amounts above balance: frontend/src/components/VaultDashboard.test.tsx#L175
TestingLibraryElementError: Unable to find an element with the text: /Approve & Deposit/i. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div> <div class="vault-dashboard gap-lg" > <div class="vault-dashboard-stats" > <div class="glass-panel vault-stats-panel" > <div class="glass-panel" role="alert" style="padding: 16px 18px; margin-bottom: 20px; background: rgba(255, 107, 107, 0.12); border: 1px solid rgba(255, 107, 107, 0.25);" > <div style="font-weight: 600; margin-bottom: 4px;" > Data unavailable </div> <div style="color: var(--text-secondary); font-size: 0.9rem;" > Failed to load vault data </div> </div> <div class="vault-stats-header flex justify-between items-center" style="margin-bottom: 24px;" > <div> <h2 style="font-size: 1.5rem; margin-bottom: 4px;" > Global RWA Yield Fund </h2> <span class="tag" style="background: rgba(255, 255, 255, 0.05); color: var(--text-secondary);" > Tokens: USDC </span> <div aria-atomic="true" aria-live="polite" role="status" style="margin-top: 8px; color: var(--text-secondary); font-size: 0.82rem; display: flex; align-items: center; gap: 4px;" > <span> 1 yvUSDC =  </span> <div aria-hidden="true" class="skeleton " style="width: 120px; height: 1.25rem;" /> </div> </div> <div style="text-align: right;" > <div style="color: var(--text-secondary); font-size: 0.85rem; display: flex; align-items: center; justify-content: flex-end; gap: 6px;" > Current APY <span style="display: inline-flex; align-items: center;" > <button aria-label="More information" class="help-icon-btn" type="button" > <svg aria-hidden="true" class="lucide lucide-info" fill="none" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="14" xmlns="http://www.w3.org/2000/svg" > <circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" /> </svg> </button> </span> </div> <div class="text-gradient" style="font-size: 2rem; font-family: var(--font-display); font-weight: 700;" > 7.66% </div> </div> </div> <div style="height: 1px; background: var(--border-glass); margin: 24px 0px;" /> <div class="vault-stats-meta flex gap-xl" style="margin-bottom: 32px;"
src/components/VaultDashboard.test.tsx > VaultDashboard > fills the input with max allowable amount via MAX button: frontend/src/components/VaultDashboard.test.tsx#L160
TestingLibraryElementError: Unable to find an element with the text: /Approve & Deposit/i. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div> <div class="vault-dashboard gap-lg" > <div class="vault-dashboard-stats" > <div class="glass-panel vault-stats-panel" > <div class="glass-panel" role="alert" style="padding: 16px 18px; margin-bottom: 20px; background: rgba(255, 107, 107, 0.12); border: 1px solid rgba(255, 107, 107, 0.25);" > <div style="font-weight: 600; margin-bottom: 4px;" > Data unavailable </div> <div style="color: var(--text-secondary); font-size: 0.9rem;" > Failed to load vault data </div> </div> <div class="vault-stats-header flex justify-between items-center" style="margin-bottom: 24px;" > <div> <h2 style="font-size: 1.5rem; margin-bottom: 4px;" > Global RWA Yield Fund </h2> <span class="tag" style="background: rgba(255, 255, 255, 0.05); color: var(--text-secondary);" > Tokens: USDC </span> <div aria-atomic="true" aria-live="polite" role="status" style="margin-top: 8px; color: var(--text-secondary); font-size: 0.82rem; display: flex; align-items: center; gap: 4px;" > <span> 1 yvUSDC =  </span> <div aria-hidden="true" class="skeleton " style="width: 120px; height: 1.25rem;" /> </div> </div> <div style="text-align: right;" > <div style="color: var(--text-secondary); font-size: 0.85rem; display: flex; align-items: center; justify-content: flex-end; gap: 6px;" > Current APY <span style="display: inline-flex; align-items: center;" > <button aria-label="More information" class="help-icon-btn" type="button" > <svg aria-hidden="true" class="lucide lucide-info" fill="none" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="14" xmlns="http://www.w3.org/2000/svg" > <circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" /> </svg> </button> </span> </div> <div class="text-gradient" style="font-size: 2rem; font-family: var(--font-display); font-weight: 700;" > 7.66% </div> </div> </div> <div style="height: 1px; background: var(--border-glass); margin: 24px 0px;" /> <div class="vault-stats-meta flex gap-xl" style="margin-bottom: 32px;"
src/components/VaultDashboard.test.tsx > VaultDashboard > updates the amount input and processes a deposit: frontend/src/components/VaultDashboard.test.tsx#L137
TestingLibraryElementError: Unable to find an element with the text: /Approve & Deposit/i. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div> <div class="vault-dashboard gap-lg" > <div class="vault-dashboard-stats" > <div class="glass-panel vault-stats-panel" > <div class="glass-panel" role="alert" style="padding: 16px 18px; margin-bottom: 20px; background: rgba(255, 107, 107, 0.12); border: 1px solid rgba(255, 107, 107, 0.25);" > <div style="font-weight: 600; margin-bottom: 4px;" > Data unavailable </div> <div style="color: var(--text-secondary); font-size: 0.9rem;" > Failed to load vault data </div> </div> <div class="vault-stats-header flex justify-between items-center" style="margin-bottom: 24px;" > <div> <h2 style="font-size: 1.5rem; margin-bottom: 4px;" > Global RWA Yield Fund </h2> <span class="tag" style="background: rgba(255, 255, 255, 0.05); color: var(--text-secondary);" > Tokens: USDC </span> <div aria-atomic="true" aria-live="polite" role="status" style="margin-top: 8px; color: var(--text-secondary); font-size: 0.82rem; display: flex; align-items: center; gap: 4px;" > <span> 1 yvUSDC =  </span> <div aria-hidden="true" class="skeleton " style="width: 120px; height: 1.25rem;" /> </div> </div> <div style="text-align: right;" > <div style="color: var(--text-secondary); font-size: 0.85rem; display: flex; align-items: center; justify-content: flex-end; gap: 6px;" > Current APY <span style="display: inline-flex; align-items: center;" > <button aria-label="More information" class="help-icon-btn" type="button" > <svg aria-hidden="true" class="lucide lucide-info" fill="none" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="14" xmlns="http://www.w3.org/2000/svg" > <circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" /> </svg> </button> </span> </div> <div class="text-gradient" style="font-size: 2rem; font-family: var(--font-display); font-weight: 700;" > 7.66% </div> </div> </div> <div style="height: 1px; background: var(--border-glass); margin: 24px 0px;" /> <div class="vault-stats-meta flex gap-xl" style="margin-bottom: 32px;"
src/components/VaultDashboard.test.tsx > VaultDashboard > allows switching between deposit and withdraw tabs: frontend/src/components/VaultDashboard.test.tsx#L116
TestingLibraryElementError: Unable to find an element with the text: /Approve & Deposit/i. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div> <div class="vault-dashboard gap-lg" > <div class="vault-dashboard-stats" > <div class="glass-panel vault-stats-panel" > <div class="glass-panel" role="alert" style="padding: 16px 18px; margin-bottom: 20px; background: rgba(255, 107, 107, 0.12); border: 1px solid rgba(255, 107, 107, 0.25);" > <div style="font-weight: 600; margin-bottom: 4px;" > Data unavailable </div> <div style="color: var(--text-secondary); font-size: 0.9rem;" > Failed to load vault data </div> </div> <div class="vault-stats-header flex justify-between items-center" style="margin-bottom: 24px;" > <div> <h2 style="font-size: 1.5rem; margin-bottom: 4px;" > Global RWA Yield Fund </h2> <span class="tag" style="background: rgba(255, 255, 255, 0.05); color: var(--text-secondary);" > Tokens: USDC </span> <div aria-atomic="true" aria-live="polite" role="status" style="margin-top: 8px; color: var(--text-secondary); font-size: 0.82rem; display: flex; align-items: center; gap: 4px;" > <span> 1 yvUSDC =  </span> <div aria-hidden="true" class="skeleton " style="width: 120px; height: 1.25rem;" /> </div> </div> <div style="text-align: right;" > <div style="color: var(--text-secondary); font-size: 0.85rem; display: flex; align-items: center; justify-content: flex-end; gap: 6px;" > Current APY <span style="display: inline-flex; align-items: center;" > <button aria-label="More information" class="help-icon-btn" type="button" > <svg aria-hidden="true" class="lucide lucide-info" fill="none" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="14" xmlns="http://www.w3.org/2000/svg" > <circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" /> </svg> </button> </span> </div> <div class="text-gradient" style="font-size: 2rem; font-family: var(--font-display); font-weight: 700;" > 7.66% </div> </div> </div> <div style="height: 1px; background: var(--border-glass); margin: 24px 0px;" /> <div class="vault-stats-meta flex gap-xl" style="margin-bottom: 32px;"
src/components/Navbar.test.tsx > Navbar > shows a network badge when wallet is connected: frontend/src/hooks/useTvlTicker.ts#L15
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery node_modules/@tanstack/react-query/src/useBaseQuery.ts:54:17 ❯ useQuery node_modules/@tanstack/react-query/src/useQuery.ts:51:9 ❯ useTvlTicker src/hooks/useTvlTicker.ts:15:35 ❯ TvlTicker src/components/TvlTicker.tsx:12:35 ❯ Object.react_stack_bottom_frame node_modules/react-dom/cjs/react-dom-client.development.js:25904:20 ❯ renderWithHooks node_modules/react-dom/cjs/react-dom-client.development.js:7662:22 ❯ updateFunctionComponent node_modules/react-dom/cjs/react-dom-client.development.js:10166:19 ❯ beginWork node_modules/react-dom/cjs/react-dom-client.development.js:11778:18 ❯ runWithFiberInDEV node_modules/react-dom/cjs/react-dom-client.development.js:874:13
src/components/Navbar.test.tsx > Navbar > shows the truncated wallet address when connected: frontend/src/hooks/useTvlTicker.ts#L15
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery node_modules/@tanstack/react-query/src/useBaseQuery.ts:54:17 ❯ useQuery node_modules/@tanstack/react-query/src/useQuery.ts:51:9 ❯ useTvlTicker src/hooks/useTvlTicker.ts:15:35 ❯ TvlTicker src/components/TvlTicker.tsx:12:35 ❯ Object.react_stack_bottom_frame node_modules/react-dom/cjs/react-dom-client.development.js:25904:20 ❯ renderWithHooks node_modules/react-dom/cjs/react-dom-client.development.js:7662:22 ❯ updateFunctionComponent node_modules/react-dom/cjs/react-dom-client.development.js:10166:19 ❯ beginWork node_modules/react-dom/cjs/react-dom-client.development.js:11778:18 ❯ runWithFiberInDEV node_modules/react-dom/cjs/react-dom-client.development.js:874:13
src/components/Navbar.test.tsx > Navbar > renders the wallet connect button: frontend/src/hooks/useTvlTicker.ts#L15
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery node_modules/@tanstack/react-query/src/useBaseQuery.ts:54:17 ❯ useQuery node_modules/@tanstack/react-query/src/useQuery.ts:51:9 ❯ useTvlTicker src/hooks/useTvlTicker.ts:15:35 ❯ TvlTicker src/components/TvlTicker.tsx:12:35 ❯ Object.react_stack_bottom_frame node_modules/react-dom/cjs/react-dom-client.development.js:25904:20 ❯ renderWithHooks node_modules/react-dom/cjs/react-dom-client.development.js:7662:22 ❯ updateFunctionComponent node_modules/react-dom/cjs/react-dom-client.development.js:10166:19 ❯ beginWork node_modules/react-dom/cjs/react-dom-client.development.js:11778:18 ❯ runWithFiberInDEV node_modules/react-dom/cjs/react-dom-client.development.js:874:13
src/components/Navbar.test.tsx > Navbar > renders the navbar with navigation links: frontend/src/hooks/useTvlTicker.ts#L15
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery node_modules/@tanstack/react-query/src/useBaseQuery.ts:54:17 ❯ useQuery node_modules/@tanstack/react-query/src/useQuery.ts:51:9 ❯ useTvlTicker src/hooks/useTvlTicker.ts:15:35 ❯ TvlTicker src/components/TvlTicker.tsx:12:35 ❯ Object.react_stack_bottom_frame node_modules/react-dom/cjs/react-dom-client.development.js:25904:20 ❯ renderWithHooks node_modules/react-dom/cjs/react-dom-client.development.js:7662:22 ❯ updateFunctionComponent node_modules/react-dom/cjs/react-dom-client.development.js:10166:19 ❯ beginWork node_modules/react-dom/cjs/react-dom-client.development.js:11778:18 ❯ runWithFiberInDEV node_modules/react-dom/cjs/react-dom-client.development.js:874:13
build-and-analyze
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
lint-and-test
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
bundle-analysis Expired
134 KB
sha256:1eb88e953462afc0aa453d2f3c7cea93d0e834e4d115a08af956b972c9e72bc3