From 0439154e99ec4d5a7dfc929a833fd6a45569a7bc Mon Sep 17 00:00:00 2001 From: susan yusuf Date: Tue, 28 Apr 2026 09:10:20 +0000 Subject: [PATCH] feat: add TypeScript type definitions for Soroban contract events --- .../__tests__/components/Footer.test.tsx | 20 +- .../__tests__/components/Header.test.tsx | 147 ++++---- .../__tests__/components/Hero.test.tsx | 30 +- .../__tests__/contexts/WalletContext.test.tsx | 217 +++++++----- .../__tests__/lib/batchLedgerEntries.test.ts | 35 +- .../__tests__/lib/contractSchemaCache.test.ts | 32 +- .../__tests__/lib/indexer-checkpoint.test.ts | 22 +- .../__tests__/lib/offline-builder.test.ts | 139 ++++++-- .../__tests__/lib/rpc-failover.test.ts | 41 ++- .../app/[locale]/analytics/page.tsx | 5 +- .../app/[locale]/create-event/page.tsx | 16 +- .../app/[locale]/dashboard/page.tsx | 18 +- soroban-client/app/[locale]/events/page.tsx | 9 +- soroban-client/app/[locale]/layout.tsx | 23 +- .../[locale]/orchestration-example/page.tsx | 131 +++++-- soroban-client/app/analytics/page.tsx | 5 +- soroban-client/app/api/events/route.ts | 9 +- soroban-client/app/api/events/stream/route.ts | 39 ++- .../app/api/marketplace/listings/route.ts | 12 +- .../app/api/marketplace/purchase/route.ts | 11 +- soroban-client/app/create-event/page.tsx | 6 +- soroban-client/app/dashboard/page.tsx | 20 +- soroban-client/app/events/page.tsx | 10 +- .../app/examples/soroban-integration/page.tsx | 90 ++--- soroban-client/app/globals.css | 4 +- soroban-client/app/marketplace/page.tsx | 11 +- soroban-client/app/my-tickets/page.tsx | 186 +++++++--- soroban-client/app/verifier/page.tsx | 263 ++++++++------ soroban-client/components/AboutSection.tsx | 28 +- .../components/AnalyticsDashboard.tsx | 38 +- .../components/ContractEventFeed.tsx | 43 ++- soroban-client/components/EventCatalog.tsx | 37 +- soroban-client/components/FeaturesSection.tsx | 65 +++- soroban-client/components/Footer.tsx | 155 ++++++-- soroban-client/components/Header.tsx | 34 +- soroban-client/components/Hero.tsx | 69 +++- .../components/HowItWorksSection.tsx | 79 ++++- .../Marketplace/CreateListingForm.tsx | 35 +- .../components/Marketplace/ListingCard.tsx | 6 +- .../Marketplace/MarketplaceCatalog.tsx | 33 +- .../Marketplace/MarketplaceListings.tsx | 65 ++-- soroban-client/components/PartnersSection.tsx | 49 ++- soroban-client/components/TicketQRModal.tsx | 65 ++-- .../components/examples/CreateEventForm.tsx | 46 +-- .../components/examples/EventDashboard.tsx | 44 ++- .../components/examples/EventList.tsx | 20 +- .../components/examples/PurchaseTicket.tsx | 31 +- .../components/examples/TBAManager.tsx | 44 ++- soroban-client/contexts/SorobanContext.tsx | 18 +- soroban-client/contexts/WalletContext.tsx | 55 ++- soroban-client/contexts/walletAdapters.ts | 101 ++++-- soroban-client/hooks/useContractEvents.ts | 52 ++- soroban-client/hooks/useEventManager.ts | 63 ++-- soroban-client/hooks/useSorobanContract.ts | 37 +- soroban-client/hooks/useTBA.ts | 45 +-- soroban-client/hooks/useTicketNFT.ts | 38 +- soroban-client/jest.config.ts | 18 +- soroban-client/jest.setup.ts | 21 +- soroban-client/lib/analytics.ts | 49 +-- soroban-client/lib/checkpoint.ts | 7 +- soroban-client/lib/env.ts | 8 +- soroban-client/lib/indexer.ts | 24 +- soroban-client/lib/marketplace.ts | 17 +- soroban-client/lib/rpc-failover.ts | 58 ++- soroban-client/lib/soroban.ts | 116 ++++-- soroban-client/lib/stores/eventStore.ts | 8 +- soroban-client/lib/stores/ticketStore.ts | 18 +- soroban-client/sdk/DECODERS.md | 152 +++++--- soroban-client/sdk/IMPLEMENTATION_SUMMARY.md | 43 +++ soroban-client/sdk/README.md | 15 +- soroban-client/sdk/RETRY_POLICY.md | 72 ++-- soroban-client/sdk/examples/decoder-usage.ts | 48 ++- soroban-client/sdk/examples/retry-usage.ts | 41 +-- soroban-client/sdk/examples/typed-usage.ts | 67 ++-- .../sdk/scripts/generate-contract-types.mjs | 20 +- .../sdk/scripts/generate-types-v2.mjs | 330 ++++++++++-------- .../sdk/src/__tests__/decoders.test.ts | 16 +- .../sdk/src/__tests__/retry.test.ts | 20 +- .../soroban-client.integration.test.ts | 129 +++++++ soroban-client/sdk/src/batchLedgerEntries.ts | 95 ++--- .../sdk/src/builder/contractCallBuilder.ts | 15 +- soroban-client/sdk/src/contracts.ts | 173 ++++++--- soroban-client/sdk/src/core.ts | 100 ++---- soroban-client/sdk/src/decoders.ts | 166 ++++++--- soroban-client/sdk/src/errors.ts | 10 +- soroban-client/sdk/src/generated/contracts.ts | 324 ++++++++++++++--- soroban-client/sdk/src/offline-builder.ts | 28 +- soroban-client/sdk/src/retry.ts | 8 +- soroban-client/sdk/src/runtime/typeGuards.ts | 67 ++-- soroban-client/sdk/src/schemaCache.ts | 13 +- soroban-client/sdk/src/tracer.test.ts | 104 ++++-- soroban-client/sdk/src/tracer.ts | 17 +- soroban-client/sdk/src/typeGen/generator.ts | 170 +++++---- soroban-client/sdk/src/typeGen/parser.ts | 128 ++++--- soroban-client/sdk/src/typeGen/typeMapper.ts | 50 +-- soroban-client/sdk/src/typedClient.ts | 44 ++- soroban-client/sdk/src/types.ts | 2 +- soroban-client/sdk/src/validation.ts | 132 ++++--- 98 files changed, 3894 insertions(+), 1995 deletions(-) create mode 100644 soroban-client/sdk/src/__tests__/soroban-client.integration.test.ts diff --git a/soroban-client/__tests__/components/Footer.test.tsx b/soroban-client/__tests__/components/Footer.test.tsx index f1e1a464..69b437ec 100644 --- a/soroban-client/__tests__/components/Footer.test.tsx +++ b/soroban-client/__tests__/components/Footer.test.tsx @@ -1,12 +1,14 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import Footer from '../../components/Footer'; +import React from "react"; +import { render, screen } from "@testing-library/react"; +import Footer from "../../components/Footer"; -describe('Footer Component', () => { - it('renders the copyright text properly', () => { - render(