├── test
└── Nostr.Client.Tests
│ ├── Usings.cs
│ ├── Nostr.Client.Tests.csproj
│ ├── NostrKeyTests.cs
│ ├── NostrConverterTests.cs
│ ├── NostrZapTests.cs
│ └── NostrIdentifierTests.cs
├── apps
├── nostr-debug
│ └── NostrDebug.Web
│ │ ├── Events
│ │ ├── NostrFilterEdit.razor.css
│ │ ├── NostrEventEdit.razor.css
│ │ ├── NostrOkTable.razor.css
│ │ ├── NostrEventTable.razor.css
│ │ ├── NostrDirectEventDialog.razor.css
│ │ ├── NostrEventEditJsonDialog.razor.css
│ │ ├── NostrFilterEditJsonDialog.razor.css
│ │ ├── NostrKindSelectSingle.razor
│ │ ├── NostrEventViewDialog.razor
│ │ ├── EventStorage.cs
│ │ ├── NostrEventSend.razor
│ │ ├── NostrKindSelect.razor
│ │ ├── NostrFilterEditJsonDialog.razor
│ │ └── NostrEventEditJsonDialog.razor
│ │ ├── wwwroot
│ │ ├── CNAME
│ │ ├── nostr.png
│ │ ├── favicon.ico
│ │ ├── icon-192.jpg
│ │ ├── icon-192.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── nostr-preview.png
│ │ └── index.html
│ │ ├── Pages
│ │ ├── Relay.razor.css
│ │ ├── Converter.razor.css
│ │ ├── Keys.razor.css
│ │ ├── Publisher.razor.css
│ │ ├── QueryTool.razor.css
│ │ ├── Index.razor.css
│ │ ├── Index.razor
│ │ ├── Relay.razor
│ │ └── Publisher.razor
│ │ ├── Components
│ │ ├── MainLayout.razor.css
│ │ ├── Stack.razor
│ │ ├── Spacer.razor
│ │ ├── Stack.razor.css
│ │ ├── PageHeader.razor.css
│ │ ├── Spacer.razor.cs
│ │ ├── MainLayout.razor.js
│ │ ├── PageHeader.razor
│ │ ├── NavMenu.razor.css
│ │ ├── NavMenu.razor
│ │ └── RelaySelector.razor
│ │ ├── Utils
│ │ ├── DateTimeUtils.cs
│ │ ├── LinqUtils.cs
│ │ └── ClipboardService.cs
│ │ ├── Signing
│ │ ├── NostrSignatureValidator.razor.css
│ │ └── NostrSignatureValidator.razor
│ │ ├── App.razor
│ │ ├── Properties
│ │ └── launchSettings.json
│ │ ├── _Imports.razor
│ │ ├── External
│ │ └── ExternalLinks.cs
│ │ ├── NostrDebug.Web.csproj
│ │ ├── Program.cs
│ │ └── Relay
│ │ └── RelayConnection.cs
├── nostr-bot
│ ├── NostrBot.Web
│ │ ├── Configs
│ │ │ ├── NostrConfig.cs
│ │ │ ├── OpenAiConfig.cs
│ │ │ └── BotConfig.cs
│ │ ├── appsettings.Development.json
│ │ ├── Utils
│ │ │ ├── TaskUtils.cs
│ │ │ └── ConfigurationExtensions.cs
│ │ ├── Logic
│ │ │ ├── NostrEventsQueue.cs
│ │ │ ├── NostrListener.cs
│ │ │ └── BotManagement.cs
│ │ ├── Storage
│ │ │ ├── BotContext.cs
│ │ │ ├── Migrations
│ │ │ │ ├── 20230402175039_SecondaryContext.cs
│ │ │ │ ├── 20230401213654_Initial.cs
│ │ │ │ ├── 20230401213654_Initial.Designer.cs
│ │ │ │ ├── BotContextModelSnapshot.cs
│ │ │ │ └── 20230402175039_SecondaryContext.Designer.cs
│ │ │ ├── ProcessedEvent.cs
│ │ │ └── BotStorage.cs
│ │ ├── Dockerfile
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Controllers
│ │ │ └── ChatAiController.cs
│ │ ├── NostrBot.Web.csproj
│ │ ├── BackgroundOrchestration.cs
│ │ ├── appsettings.json
│ │ └── Program.cs
│ └── README.md
└── smart-relay
│ └── SmartRelay.Api
│ ├── appsettings.Development.json
│ ├── WeatherForecast.cs
│ ├── Hubs
│ └── ChatHub.cs
│ ├── Properties
│ └── launchSettings.json
│ ├── SmartRelay.Api.csproj
│ ├── appsettings.json
│ ├── Controllers
│ └── WeatherForecastController.cs
│ └── Program.cs
├── nostr.jpg
├── nostr.png
├── src
└── Nostr.Client
│ ├── icon.png
│ ├── Communicator
│ ├── INostrCommunicator.cs
│ └── NostrWebsocketCommunicator.cs
│ ├── Responses
│ ├── NostrNoticeResponse.cs
│ ├── NostrEoseResponse.cs
│ ├── NostrRawResponse.cs
│ ├── NostrEventResponse.cs
│ ├── NostrOkResponse.cs
│ └── NostrResponse.cs
│ ├── Messages
│ ├── NostrMessageTypes.cs
│ ├── Contacts
│ │ ├── NostrRelays.cs
│ │ ├── NostrContactEvent.cs
│ │ └── NostrRelayConfig.cs
│ ├── Metadata
│ │ ├── NostrMetadataEvent.cs
│ │ └── NostrMetadata.cs
│ ├── Mutable
│ │ ├── NostrEventTagsMutable.cs
│ │ ├── NostrEventTagMutable.cs
│ │ └── NostrEventMutable.cs
│ ├── Zaps
│ │ └── NostrZapReceiptEvent.cs
│ ├── NostrKind.cs
│ ├── NostrEventTag.cs
│ └── NostrEventTags.cs
│ ├── Client
│ ├── INostrClient.cs
│ └── NostrClientStreams.cs
│ ├── Json
│ ├── IHaveAdditionalData.cs
│ ├── IHaveAdditionalStringData.cs
│ ├── NostrJson.cs
│ ├── NostrSerializer.cs
│ └── NostrEventConverter.cs
│ ├── Requests
│ ├── NostrCloseRequest.cs
│ ├── NostrEventRequest.cs
│ ├── NostrRequest.cs
│ └── NostrFilter.cs
│ ├── Utils
│ ├── HashExtensions.cs
│ ├── NostrEncryption.cs
│ ├── HexExtensions.cs
│ └── NostrConverter.cs
│ ├── Identifiers
│ ├── NostrRelayIdentifier.cs
│ ├── NostrProfileIdentifier.cs
│ ├── NostrEventIdentifier.cs
│ ├── NostrAddressIdentifier.cs
│ ├── NostrIdentifier.cs
│ └── NostrIdentifierParser.cs
│ ├── Keys
│ ├── NostrKeyPair.cs
│ └── NostrPublicKey.cs
│ └── Nostr.Client.csproj
├── Directory.Build.props
├── .dockerignore
├── .github
└── workflows
│ ├── dotnet-core-branches.yml
│ ├── dotnet-core.yml
│ └── gh-pages.yml
├── test_integration
└── Nostr.Client.Sample.Console
│ └── Nostr.Client.Sample.Console.csproj
├── .editorconfig
├── .gitattributes
├── Nostr.Client.sln.DotSettings
└── .gitignore
/test/Nostr.Client.Tests/Usings.cs:
--------------------------------------------------------------------------------
1 | global using Xunit;
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/Events/NostrFilterEdit.razor.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/CNAME:
--------------------------------------------------------------------------------
1 | nostrdebug.com
2 |
--------------------------------------------------------------------------------
/nostr.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/nostr.jpg
--------------------------------------------------------------------------------
/nostr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/nostr.png
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/Pages/Relay.razor.css:
--------------------------------------------------------------------------------
1 | .operation-button {
2 | align-self: end;
3 | }
4 |
--------------------------------------------------------------------------------
/src/Nostr.Client/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/src/Nostr.Client/icon.png
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/Events/NostrEventEdit.razor.css:
--------------------------------------------------------------------------------
1 | ::deep .positioning-region {
2 | background-color: transparent;
3 | }
4 |
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/nostr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/apps/nostr-debug/NostrDebug.Web/wwwroot/nostr.png
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/Pages/Converter.razor.css:
--------------------------------------------------------------------------------
1 | .conversion-group {
2 | padding-left: 20px;
3 | max-width: 550px;
4 | width: 100%;
5 | }
6 |
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/apps/nostr-debug/NostrDebug.Web/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/icon-192.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/apps/nostr-debug/NostrDebug.Web/wwwroot/icon-192.jpg
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/apps/nostr-debug/NostrDebug.Web/wwwroot/icon-192.png
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/apps/nostr-debug/NostrDebug.Web/wwwroot/favicon-16x16.png
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/apps/nostr-debug/NostrDebug.Web/wwwroot/favicon-32x32.png
--------------------------------------------------------------------------------
/apps/nostr-debug/NostrDebug.Web/wwwroot/nostr-preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Marfusios/nostr-client/HEAD/apps/nostr-debug/NostrDebug.Web/wwwroot/nostr-preview.png
--------------------------------------------------------------------------------
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
Sorry, there's nothing at this address.
9 |9 |
14 | The app runs in your browser only with no server and is written in Blazor Webassembly 15 |
-------------------------------------------------------------------------------- /test_integration/Nostr.Client.Sample.Console/Nostr.Client.Sample.Console.csproj: -------------------------------------------------------------------------------- 1 |@Subtitle
22 | } 23 |