├── docker ├── angor-app │ ├── readme.md │ └── docker-compose.yml ├── explorers │ ├── mainnet │ │ └── electrs.conf │ └── angornet │ │ └── electrs.conf └── proxy │ └── nginx.conf ├── src ├── Angor │ ├── Client │ │ ├── Pages │ │ │ └── Penalty.razor │ │ ├── wwwroot │ │ │ └── assets │ │ │ │ ├── img │ │ │ │ ├── favicon.png │ │ │ │ ├── icon-192.png │ │ │ │ ├── icon-512.png │ │ │ │ ├── no-image.jpg │ │ │ │ ├── bitcoin-logo.png │ │ │ │ ├── browse-icon-192.png │ │ │ │ ├── wallet-icon-192.png │ │ │ │ ├── settings-icon-192.png │ │ │ │ ├── mobile-installation-screenshot.png │ │ │ │ └── desktop-installation-screenshot.png │ │ │ │ └── icons │ │ │ │ ├── primary.svg │ │ │ │ ├── set.svg │ │ │ │ ├── expand.svg │ │ │ │ ├── arrow-left.svg │ │ │ │ ├── arrow-right.svg │ │ │ │ ├── chevron-up.svg │ │ │ │ ├── collapse.svg │ │ │ │ ├── chevron-down.svg │ │ │ │ ├── release.svg │ │ │ │ ├── menu_close.svg │ │ │ │ ├── menu_open.svg │ │ │ │ ├── clock-circle.svg │ │ │ │ ├── circle-check.svg │ │ │ │ ├── search.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── close-circle.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── menu.svg │ │ │ │ ├── check.svg │ │ │ │ ├── release-all.svg │ │ │ │ ├── hamburger-menu.svg │ │ │ │ ├── change.svg │ │ │ │ ├── deselect-all.svg │ │ │ │ ├── next.svg │ │ │ │ ├── remove.svg │ │ │ │ ├── sad-circle.svg │ │ │ │ ├── update.svg │ │ │ │ ├── add.svg │ │ │ │ ├── clock-square.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── info.svg │ │ │ │ └── percent.svg │ │ ├── Models │ │ │ ├── Investments.cs │ │ │ ├── FeeCalculation.cs │ │ │ ├── Project.cs │ │ │ ├── InvestmentState.cs │ │ │ └── DirectMessage.cs │ │ ├── Services │ │ │ ├── ICurrencyRateService.cs │ │ │ ├── IHtmlStripperService.cs │ │ │ ├── IClipboardService.cs │ │ │ ├── ICurrencyService.cs │ │ │ ├── IHtmlSanitizerService.cs │ │ │ ├── IFeatureFlagService.cs │ │ │ └── IWalletUIService.cs │ │ ├── Storage │ │ │ └── IWalletStorage.cs │ │ ├── App.razor │ │ ├── _Imports.razor │ │ └── Shared │ │ │ └── NavMenuState.cs │ ├── Avalonia │ │ ├── Angor.Sdk │ │ │ ├── Funding │ │ │ │ ├── Shared │ │ │ │ │ ├── WalletRequest.cs │ │ │ │ │ ├── Amount.cs │ │ │ │ │ ├── ProjectId.cs │ │ │ │ │ ├── DirectMessage.cs │ │ │ │ │ ├── DomainFeerate.cs │ │ │ │ │ ├── TransactionDrafts │ │ │ │ │ │ ├── RecoveryTransactionDraft.cs │ │ │ │ │ │ ├── ReleaseTransactionDraft.cs │ │ │ │ │ │ ├── EndOfProjectTransactionDraft.cs │ │ │ │ │ │ └── InvestmentDraft.cs │ │ │ │ │ ├── InvestmentRequestStatus.cs │ │ │ │ │ ├── INostrDecrypter.cs │ │ │ │ │ ├── TransactionDraft.cs │ │ │ │ │ └── ISignatureRequestService.cs │ │ │ │ ├── Investor │ │ │ │ │ ├── Domain │ │ │ │ │ │ ├── InvestmentRecords.cs │ │ │ │ │ │ ├── InvestmentRecordsDocument.cs │ │ │ │ │ │ └── IPortfolioService.cs │ │ │ │ │ └── Dtos │ │ │ │ │ │ ├── InvestmentDto.cs │ │ │ │ │ │ ├── InvestorStageItemDto.cs │ │ │ │ │ │ └── PenaltiesDto.cs │ │ │ │ ├── Founder │ │ │ │ │ ├── Domain │ │ │ │ │ │ ├── InvestmentRequest.cs │ │ │ │ │ │ ├── Investment.cs │ │ │ │ │ │ └── SignatureReleaseItem.cs │ │ │ │ │ ├── InvestmentStatus.cs │ │ │ │ │ └── Dtos │ │ │ │ │ │ ├── ClaimStatus.cs │ │ │ │ │ │ ├── SpendTransactionDto.cs │ │ │ │ │ │ ├── ProjectSeedDto.cs │ │ │ │ │ │ ├── InvestorStatsDto.cs │ │ │ │ │ │ ├── ReleaseableTransactionDto.cs │ │ │ │ │ │ └── ClaimableTransactionDto.cs │ │ │ │ ├── Projects │ │ │ │ │ ├── Domain │ │ │ │ │ │ ├── TransactionHexDocument.cs │ │ │ │ │ │ ├── Stage.cs │ │ │ │ │ │ ├── StageData.cs │ │ │ │ │ │ └── InvestmentSpendingLookup.cs │ │ │ │ │ └── Dtos │ │ │ │ │ │ ├── StageDto.cs │ │ │ │ │ │ ├── NextStageDto.cs │ │ │ │ │ │ └── DynamicStageDto.cs │ │ │ │ └── Services │ │ │ │ │ ├── ITransactionService.cs │ │ │ │ │ └── IProjectService.cs │ │ │ ├── Wallet │ │ │ │ ├── Domain │ │ │ │ │ ├── TxId.cs │ │ │ │ │ ├── Address.cs │ │ │ │ │ ├── DomainFeeRate.cs │ │ │ │ │ ├── FeeAndSize.cs │ │ │ │ │ ├── DomainException.cs │ │ │ │ │ ├── TransactionInput.cs │ │ │ │ │ ├── TransactionOutput.cs │ │ │ │ │ ├── DerivationType.cs │ │ │ │ │ ├── WalletDescriptor.cs │ │ │ │ │ ├── BitcoinNetwork.cs │ │ │ │ │ ├── Amount.cs │ │ │ │ │ ├── Balance.cs │ │ │ │ │ ├── XPubCollection.cs │ │ │ │ │ ├── DomainScriptType.cs │ │ │ │ │ ├── Wallet.cs │ │ │ │ │ ├── BroadcastedTransaction.cs │ │ │ │ │ └── DerivationPath.cs │ │ │ │ ├── Application │ │ │ │ │ └── WalletMetadata.cs │ │ │ │ └── Infrastructure │ │ │ │ │ ├── Dto │ │ │ │ │ ├── WalletDescriptorDto.cs │ │ │ │ │ ├── DerivationPathDto.cs │ │ │ │ │ └── XPubDto.cs │ │ │ │ │ ├── Impl │ │ │ │ │ ├── WalletData.cs │ │ │ │ │ ├── EncryptedWallet.cs │ │ │ │ │ ├── History │ │ │ │ │ │ └── ITransactionHistory.cs │ │ │ │ │ ├── WalletSecurityContext.cs │ │ │ │ │ └── InMemoryStore.cs │ │ │ │ │ └── Interfaces │ │ │ │ │ ├── IWalletSecurityContext.cs │ │ │ │ │ ├── IPasswordProvider.cs │ │ │ │ │ ├── IPassphraseProvider.cs │ │ │ │ │ ├── IWalletStore.cs │ │ │ │ │ ├── IWalletImporter.cs │ │ │ │ │ ├── IWalletEncryption.cs │ │ │ │ │ └── ISensitiveWalletDataProvider.cs │ │ │ ├── Common │ │ │ │ ├── ProfileContext.cs │ │ │ │ ├── WalletId.cs │ │ │ │ ├── IStore.cs │ │ │ │ ├── ISeedwordsProvider.cs │ │ │ │ ├── DerivedProjectKeys.cs │ │ │ │ ├── WalletAccountBalanceInfo.cs │ │ │ │ ├── IApplicationStorage.cs │ │ │ │ ├── IntegrationExtensions.cs │ │ │ │ └── IWalletAccountBalanceService.cs │ │ │ └── Integration │ │ │ │ └── SeedwordsProvider.cs │ │ ├── global.json │ │ ├── AngorApp.Browser │ │ │ ├── Properties │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ └── launchSettings.json │ │ │ ├── wwwroot │ │ │ │ ├── favicon.ico │ │ │ │ └── main.js │ │ │ ├── runtimeconfig.template.json │ │ │ ├── Program.cs │ │ │ └── AngorApp.Browser.csproj │ │ ├── AngorApp.Desktop │ │ │ ├── app.ico │ │ │ ├── icon.ico │ │ │ └── Properties │ │ │ │ └── launchSettings.json │ │ ├── AngorApp │ │ │ ├── Assets │ │ │ │ ├── flow.png │ │ │ │ ├── community.png │ │ │ │ ├── angor-logo.ico │ │ │ │ ├── avalonia-logo.ico │ │ │ │ ├── add.svg │ │ │ │ └── clock-square.svg │ │ │ ├── IProjectTypeViewModel.cs │ │ │ ├── UI │ │ │ │ ├── Sections │ │ │ │ │ ├── Portfolio │ │ │ │ │ │ ├── FounderStatus.cs │ │ │ │ │ │ ├── Items │ │ │ │ │ │ │ ├── PortfolioItem.cs │ │ │ │ │ │ │ ├── ProgressView.axaml.cs │ │ │ │ │ │ │ ├── OfferAcceptedView.axaml.cs │ │ │ │ │ │ │ └── PortfolioProjectView.axaml.cs │ │ │ │ │ │ ├── Recover │ │ │ │ │ │ │ ├── RecoverViewModelSample.cs │ │ │ │ │ │ │ ├── IRecoverViewModel.cs │ │ │ │ │ │ │ ├── RecoverView.axaml.cs │ │ │ │ │ │ │ └── RecoverViewModel.cs │ │ │ │ │ │ ├── PortfolioSectionView.axaml.cs │ │ │ │ │ │ ├── Manage │ │ │ │ │ │ │ ├── ManageInvestorProjectView.axaml.cs │ │ │ │ │ │ │ ├── IInvestorProjectStage.cs │ │ │ │ │ │ │ ├── IManageInvestorProjectViewModel.cs │ │ │ │ │ │ │ ├── IInvestedProject.cs │ │ │ │ │ │ │ ├── InvestorProjectStageSample.cs │ │ │ │ │ │ │ ├── InvestedProjectSample.cs │ │ │ │ │ │ │ ├── InvestorProjectStage.cs │ │ │ │ │ │ │ └── ManageInvestorProjectViewModelSample.cs │ │ │ │ │ │ ├── Penalties │ │ │ │ │ │ │ ├── PenaltiesView.axaml.cs │ │ │ │ │ │ │ ├── IPenaltyViewModel.cs │ │ │ │ │ │ │ ├── IPenaltiesViewModel.cs │ │ │ │ │ │ │ └── PenaltyViewModelSample.cs │ │ │ │ │ │ └── IPortfolioSectionViewModel.cs │ │ │ │ │ ├── Browse │ │ │ │ │ │ ├── Details │ │ │ │ │ │ │ ├── INostrRelay.cs │ │ │ │ │ │ │ ├── NostrRelaySample.cs │ │ │ │ │ │ │ ├── NostProperties.axaml.cs │ │ │ │ │ │ │ ├── ProjectSummary.axaml.cs │ │ │ │ │ │ │ ├── Stage.cs │ │ │ │ │ │ │ ├── InvestmentDashboard.axaml.cs │ │ │ │ │ │ │ ├── Stages.axaml.cs │ │ │ │ │ │ │ ├── ProjectDetailsView.axaml.cs │ │ │ │ │ │ │ └── IProjectDetailsViewModel.cs │ │ │ │ │ │ ├── BrowseSectionView.axaml.cs │ │ │ │ │ │ ├── IProjectViewModel.cs │ │ │ │ │ │ ├── ProjectLookup │ │ │ │ │ │ │ ├── ProjectLookupView.axaml.cs │ │ │ │ │ │ │ └── IProjectLookupViewModel.cs │ │ │ │ │ │ ├── ProjectItemView.axaml.cs │ │ │ │ │ │ ├── TestNotificationService.cs │ │ │ │ │ │ ├── IBrowseSectionViewModel.cs │ │ │ │ │ │ ├── ProjectViewModelSample.cs │ │ │ │ │ │ └── ProjectViewModel.cs │ │ │ │ │ ├── FindProjects │ │ │ │ │ │ ├── SortOption.cs │ │ │ │ │ │ ├── IFindProjectsSectionViewModel.cs │ │ │ │ │ │ ├── FindProjectsSectionView.axaml.cs │ │ │ │ │ │ ├── IFindProjectItem.cs │ │ │ │ │ │ └── FindProjectItemSample.cs │ │ │ │ │ ├── Wallet │ │ │ │ │ │ ├── WalletImportOptions.cs │ │ │ │ │ │ ├── Main │ │ │ │ │ │ │ ├── IWalletSetupViewModel.cs │ │ │ │ │ │ │ ├── Balance.axaml.cs │ │ │ │ │ │ │ ├── Receive.axaml.cs │ │ │ │ │ │ │ ├── HistoryView.axaml.cs │ │ │ │ │ │ │ ├── WalletView.axaml.cs │ │ │ │ │ │ │ ├── ITransactionViewModel.cs │ │ │ │ │ │ │ ├── WalletSectionView.axaml.cs │ │ │ │ │ │ │ ├── TransactionJsonView.axaml.cs │ │ │ │ │ │ │ ├── IWalletSectionViewModel.cs │ │ │ │ │ │ │ ├── BroadcastedTransactionSample.cs │ │ │ │ │ │ │ └── TransactionViewModelSample.cs │ │ │ │ │ │ ├── CreateAndImport │ │ │ │ │ │ │ └── Steps │ │ │ │ │ │ │ │ ├── Passphrase │ │ │ │ │ │ │ │ ├── Create │ │ │ │ │ │ │ │ │ ├── IPassphraseCreateViewModel.cs │ │ │ │ │ │ │ │ │ ├── PassphraseCreateView.axaml.cs │ │ │ │ │ │ │ │ │ └── PassphraseCreateViewModel.cs │ │ │ │ │ │ │ │ └── Recover │ │ │ │ │ │ │ │ │ ├── IPassphraseRecoverViewModel.cs │ │ │ │ │ │ │ │ │ └── PassphraseRecoverView.axaml.cs │ │ │ │ │ │ │ │ ├── ImportWelcome │ │ │ │ │ │ │ │ ├── ImportWelcomeViewModel.cs │ │ │ │ │ │ │ │ └── ImportWelcomeView.axaml.cs │ │ │ │ │ │ │ │ ├── Summary │ │ │ │ │ │ │ │ ├── SummaryView.axaml.cs │ │ │ │ │ │ │ │ └── ISummaryViewModel.cs │ │ │ │ │ │ │ │ ├── SeedWordsGeneration │ │ │ │ │ │ │ │ ├── Empty.axaml.cs │ │ │ │ │ │ │ │ ├── SeedWordsView.axaml.cs │ │ │ │ │ │ │ │ ├── GeneratedWords.axaml.cs │ │ │ │ │ │ │ │ ├── ISeedWordsViewModel.cs │ │ │ │ │ │ │ │ └── SeedWordList.axaml.cs │ │ │ │ │ │ │ │ ├── CreateWelcome │ │ │ │ │ │ │ │ └── WelcomeView.axaml.cs │ │ │ │ │ │ │ │ ├── RecoverySeedWords │ │ │ │ │ │ │ │ ├── IRecoverySeedWordsViewModel.cs │ │ │ │ │ │ │ │ └── RecoverySeedwordsView.axaml.cs │ │ │ │ │ │ │ │ ├── EncryptionPassword │ │ │ │ │ │ │ │ ├── EncryptionPasswordView.axaml.cs │ │ │ │ │ │ │ │ └── IEncryptionPasswordViewModel.cs │ │ │ │ │ │ │ │ └── SeedWordsConfirmation │ │ │ │ │ │ │ │ └── SeedWordsConfirmationView.axaml.cs │ │ │ │ │ │ └── WalletSetupView.axaml.cs │ │ │ │ │ ├── Home │ │ │ │ │ │ ├── HomeSectionView.axaml.cs │ │ │ │ │ │ ├── IHomeSectionViewModel.cs │ │ │ │ │ │ └── HomeViewModel.cs │ │ │ │ │ ├── Founder │ │ │ │ │ │ ├── CreateProject │ │ │ │ │ │ │ ├── Stages │ │ │ │ │ │ │ │ ├── Creator │ │ │ │ │ │ │ │ │ ├── PaymentFrequency.cs │ │ │ │ │ │ │ │ │ ├── StagesCreatorView.axaml.cs │ │ │ │ │ │ │ │ │ └── IStagesCreatorViewModel.cs │ │ │ │ │ │ │ │ ├── StagesView.axaml.cs │ │ │ │ │ │ │ │ ├── ICreateProjectStage.cs │ │ │ │ │ │ │ │ └── CreateProjectStageSample.cs │ │ │ │ │ │ │ ├── Profile │ │ │ │ │ │ │ │ └── ProfileView.axaml.cs │ │ │ │ │ │ │ ├── FundingStructure │ │ │ │ │ │ │ │ └── FundingStructure.axaml.cs │ │ │ │ │ │ │ ├── ProjectCreated │ │ │ │ │ │ │ │ ├── IProjectCreatedViewModel.cs │ │ │ │ │ │ │ │ ├── ProjectCreateView.axaml.cs │ │ │ │ │ │ │ │ └── ProjectCreatedViewModel.cs │ │ │ │ │ │ │ ├── Moonshot │ │ │ │ │ │ │ │ ├── ImportFromMoonshotView.axaml.cs │ │ │ │ │ │ │ │ └── IImportFromMoonshotViewModel.cs │ │ │ │ │ │ │ ├── Preview │ │ │ │ │ │ │ │ ├── PreviewView.axaml.cs │ │ │ │ │ │ │ │ ├── PreviewHeaderView.axaml.cs │ │ │ │ │ │ │ │ └── PreviewHeaderViewModel.cs │ │ │ │ │ │ │ ├── CreateProjectView.axaml.cs │ │ │ │ │ │ │ └── ICreateProjectViewModel.cs │ │ │ │ │ │ ├── FounderSectionView.axaml.cs │ │ │ │ │ │ ├── ProjectDetails │ │ │ │ │ │ │ ├── MainView │ │ │ │ │ │ │ │ ├── Claim │ │ │ │ │ │ │ │ │ ├── ClaimFundsView.axaml.cs │ │ │ │ │ │ │ │ │ ├── IClaimFundsViewModel.cs │ │ │ │ │ │ │ │ │ ├── IClaimableTransaction.cs │ │ │ │ │ │ │ │ │ ├── ClaimableTransactionSample.cs │ │ │ │ │ │ │ │ │ ├── ClaimableTransaction.cs │ │ │ │ │ │ │ │ │ └── IClaimableStage.cs │ │ │ │ │ │ │ │ ├── Approve │ │ │ │ │ │ │ │ │ ├── InvestmentsGrid.axaml.cs │ │ │ │ │ │ │ │ │ ├── ApproveInvestmentsView.axaml.cs │ │ │ │ │ │ │ │ │ ├── IApproveInvestmentsViewModel.cs │ │ │ │ │ │ │ │ │ ├── IInvestmentChild.cs │ │ │ │ │ │ │ │ │ ├── IInvestmentViewModel.cs │ │ │ │ │ │ │ │ │ └── InvestmentChildViewModelSample.cs │ │ │ │ │ │ │ │ ├── IProjectViewModel.cs │ │ │ │ │ │ │ │ ├── ReleaseFunds │ │ │ │ │ │ │ │ │ ├── ReleaseFundsView.axaml.cs │ │ │ │ │ │ │ │ │ ├── IUnfundedProjectTransaction.cs │ │ │ │ │ │ │ │ │ ├── UnfundedProjectTransactionSample.cs │ │ │ │ │ │ │ │ │ └── IReleaseFundsViewModel.cs │ │ │ │ │ │ │ │ └── ProjectViewModelSample.cs │ │ │ │ │ │ │ ├── FounderProjectDetailsView.axaml.cs │ │ │ │ │ │ │ ├── Statistics │ │ │ │ │ │ │ │ ├── ProjectStatisticsView.axaml.cs │ │ │ │ │ │ │ │ └── IProjectStatisticsViewModel.cs │ │ │ │ │ │ │ ├── IFounderProjectDetailsViewModel.cs │ │ │ │ │ │ │ └── FounderProjectDetailsViewModelSample.cs │ │ │ │ │ │ ├── IFounderSectionViewModel.cs │ │ │ │ │ │ ├── IFounderProjectViewModel.cs │ │ │ │ │ │ └── FounderProjectViewModelSample.cs │ │ │ │ │ └── Settings │ │ │ │ │ │ └── SettingsSectionView.axaml.cs │ │ │ │ ├── Shared │ │ │ │ │ ├── Controls │ │ │ │ │ │ ├── Common │ │ │ │ │ │ │ ├── Success │ │ │ │ │ │ │ │ ├── ISuccessViewModel.cs │ │ │ │ │ │ │ │ ├── SuccessViewModelSample.cs │ │ │ │ │ │ │ │ ├── SuccessViewModel.cs │ │ │ │ │ │ │ │ └── SuccessView.axaml.cs │ │ │ │ │ │ │ ├── LongTextView.axaml.cs │ │ │ │ │ │ │ ├── FoundedProjectOptions │ │ │ │ │ │ │ │ ├── FoundedProjectOptionsView.axaml.cs │ │ │ │ │ │ │ │ └── IFoundedProjectOptionsViewModel.cs │ │ │ │ │ │ │ └── FeerateSelectionView.axaml.cs │ │ │ │ │ │ ├── PageContainer.axaml.cs │ │ │ │ │ │ ├── Password │ │ │ │ │ │ │ └── PasswordView.axaml.cs │ │ │ │ │ │ ├── DesignTimePreset.cs │ │ │ │ │ │ ├── Badge.axaml.cs │ │ │ │ │ │ └── ErrorSummary.axaml.cs │ │ │ │ │ ├── Services │ │ │ │ │ │ ├── UIPreferences.cs │ │ │ │ │ │ ├── IValidations.cs │ │ │ │ │ │ └── IWalletContext.cs │ │ │ │ │ └── Styles │ │ │ │ │ │ └── TextBox.axaml │ │ │ │ ├── Shell │ │ │ │ │ ├── ShellView.axaml.cs │ │ │ │ │ ├── IShellViewModel.cs │ │ │ │ │ └── MainWindow.axaml │ │ │ │ ├── Flows │ │ │ │ │ ├── Invest │ │ │ │ │ │ └── Amount │ │ │ │ │ │ │ ├── StagesBreakdown.axaml.cs │ │ │ │ │ │ │ ├── Breakdown.cs │ │ │ │ │ │ │ └── IAmountViewModel.cs │ │ │ │ │ ├── CreateProject │ │ │ │ │ │ └── Wizard │ │ │ │ │ │ │ ├── WelcomeView.axaml.cs │ │ │ │ │ │ │ ├── ProjectTypeView.axaml.cs │ │ │ │ │ │ │ ├── InvestmentProject │ │ │ │ │ │ │ ├── StagesView.axaml.cs │ │ │ │ │ │ │ ├── ProjectImagesView.axaml.cs │ │ │ │ │ │ │ ├── ProjectProfileView.axaml.cs │ │ │ │ │ │ │ ├── ReviewAndDeployView.axaml.cs │ │ │ │ │ │ │ ├── Model │ │ │ │ │ │ │ │ └── NewProject.cs │ │ │ │ │ │ │ ├── FundingConfigurationView.axaml.cs │ │ │ │ │ │ │ ├── ProjectImagesViewModelSample.cs │ │ │ │ │ │ │ ├── StagesViewModel.cs │ │ │ │ │ │ │ ├── ProjectImagesViewModel.cs │ │ │ │ │ │ │ ├── ProjectProfileViewModel.cs │ │ │ │ │ │ │ └── ReviewAndDeployViewModel.cs │ │ │ │ │ │ │ └── WelcomeViewModel.cs │ │ │ │ │ └── SendWalletMoney │ │ │ │ │ │ ├── AddressAndAmount │ │ │ │ │ │ ├── AddressAndAmountView.axaml.cs │ │ │ │ │ │ ├── IAddressAndAmountViewModel.cs │ │ │ │ │ │ └── AddressAndAmountViewModelSample.cs │ │ │ │ │ │ └── TransactionDraft │ │ │ │ │ │ ├── TransactionDraftView.axaml.cs │ │ │ │ │ │ └── ITransactionDraftViewModel.cs │ │ │ │ └── TransactionDrafts │ │ │ │ │ ├── DraftTypes │ │ │ │ │ ├── Base │ │ │ │ │ │ └── InvestmentDraftView.axaml.cs │ │ │ │ │ ├── ITransactionDraftViewModel.cs │ │ │ │ │ └── Investment │ │ │ │ │ │ └── InvestmentDraftView.axaml.cs │ │ │ │ │ └── TransactionDraftPreviewerView.axaml.cs │ │ │ ├── Core │ │ │ │ ├── Constants.cs │ │ │ │ ├── IHaveErrors.cs │ │ │ │ ├── Factories │ │ │ │ │ ├── IProjectViewModelFactory.cs │ │ │ │ │ └── IProjectInvestCommandFactory.cs │ │ │ │ ├── SafeMaybe.cs │ │ │ │ ├── SafeMaybeExtensions.cs │ │ │ │ └── ResultMaybeExtensions.cs │ │ │ ├── Design │ │ │ │ ├── DesignTimeAmount.cs │ │ │ │ └── FeeCalculatorDesignTime.cs │ │ │ └── ProjectTypeConverter.cs │ │ ├── angor-app-icon-dark.png │ │ ├── angor-app-icon-light.png │ │ ├── AngorApp.Android │ │ │ ├── Icon.png │ │ │ ├── Resources │ │ │ │ ├── drawable │ │ │ │ │ ├── icon.png │ │ │ │ │ └── splash_screen.xml │ │ │ │ ├── drawable-night │ │ │ │ │ └── icon.png │ │ │ │ ├── values-night │ │ │ │ │ └── colors.xml │ │ │ │ └── values │ │ │ │ │ └── colors.xml │ │ │ └── Properties │ │ │ │ └── AndroidManifest.xml │ │ ├── Directory.Build.props │ │ ├── AngorApp.Model │ │ │ ├── Common │ │ │ │ └── LongTextViewModel.cs │ │ │ ├── Contracts │ │ │ │ ├── Flows │ │ │ │ │ ├── ISendMoneyFlow.cs │ │ │ │ │ └── ICreateProjectFlow.cs │ │ │ │ ├── Amounts │ │ │ │ │ └── IAmountFactory.cs │ │ │ │ ├── Projects │ │ │ │ │ ├── ProjectStatus.cs │ │ │ │ │ └── IStage.cs │ │ │ │ └── Wallet │ │ │ │ │ ├── IWalletFactory.cs │ │ │ │ │ ├── IWalletProvider.cs │ │ │ │ │ ├── ITransactionPreview.cs │ │ │ │ │ └── IBroadcastedTransaction.cs │ │ │ ├── Wallet │ │ │ │ ├── Password │ │ │ │ │ ├── IPasswordViewModel.cs │ │ │ │ │ ├── PasswordViewModelSample.cs │ │ │ │ │ ├── PassphraseProviderAdapter.cs │ │ │ │ │ └── PasswordProviderAdapter.cs │ │ │ │ ├── SeedWord.cs │ │ │ │ └── WordList.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── Projects │ │ │ │ ├── Stage.cs │ │ │ │ └── StageSample.cs │ │ │ └── Amounts │ │ │ │ ├── SendAmount.cs │ │ │ │ └── AmountUI.cs │ │ ├── AngorApp.iOS │ │ │ ├── Entitlements.plist │ │ │ ├── Main.cs │ │ │ └── AngorApp.iOS.csproj │ │ ├── Angor.Data.Documents │ │ │ ├── Interfaces │ │ │ │ ├── IAngorDocumentDatabaseFactory.cs │ │ │ │ ├── IDocumentRepository.cs │ │ │ │ └── IAngorDocumentDatabase.cs │ │ │ ├── Models │ │ │ │ ├── BaseDocument.cs │ │ │ │ └── Document.cs │ │ │ └── Angor.Data.Documents.csproj │ │ └── Angor.Data.Documents.LiteDb │ │ │ └── LiteDbDocumentMapping.cs │ └── Shared │ │ ├── ProjectIdentifierDerivation.cs │ │ ├── Models │ │ ├── FeeEstimations.cs │ │ ├── FeeEstimation.cs │ │ ├── PsbtData.cs │ │ ├── Stage.cs │ │ ├── Wallet.cs │ │ ├── SignatureInfoItem.cs │ │ ├── ProjectSeeders.cs │ │ ├── TransactionInfo.cs │ │ ├── SignData.cs │ │ ├── ProjectStats.cs │ │ ├── ProjectScriptType.cs │ │ ├── AddressInfo.cs │ │ ├── SignServiceLookupItem.cs │ │ ├── ProjectInvestment.cs │ │ ├── ProjectIndexerData.cs │ │ ├── SignRecoveryRequest.cs │ │ ├── FounderContext.cs │ │ ├── OperationResult.cs │ │ ├── FounderPubKeys.cs │ │ ├── UtxoData.cs │ │ ├── Outpoint.cs │ │ ├── ProjectScripts.cs │ │ ├── SignatureInfo.cs │ │ ├── StageTransactionInput.cs │ │ ├── WalletWords.cs │ │ └── AddressBalance.cs │ │ ├── Services │ │ ├── ISerializer.cs │ │ ├── IApplicationLogicService.cs │ │ ├── IEncryptionService.cs │ │ └── IAngorIndexerService.cs │ │ ├── Protocol │ │ ├── Scripts │ │ │ ├── ISeederScriptTreeBuilder.cs │ │ │ ├── IInvestmentScriptbuilder.cs │ │ │ └── ITaprootScriptBuilder.cs │ │ └── TransactionBuilders │ │ │ └── ISpendingTransactionBuilder.cs │ │ ├── INetworkStorage.cs │ │ ├── Utilities │ │ ├── DateExtension.cs │ │ ├── AmountExtension.cs │ │ └── LinqExtension.cs │ │ └── IPsbtOperations.cs ├── Angor.Test │ └── Usings.cs ├── .gitignore ├── Testing │ ├── fixtures │ │ └── example.json │ ├── cypress.config.js │ └── support │ │ └── commands │ │ └── browse_commands.js ├── Directory.Build.props └── .dockerignore ├── global.json ├── src-tauri ├── build.rs ├── icons │ ├── 32x32.png │ ├── icon.icns │ ├── icon.ico │ ├── icon.png │ ├── 128x128.png │ ├── 128x128@2x.png │ ├── StoreLogo.png │ ├── Square30x30Logo.png │ ├── Square44x44Logo.png │ ├── Square71x71Logo.png │ ├── Square89x89Logo.png │ ├── Square107x107Logo.png │ ├── Square142x142Logo.png │ ├── Square150x150Logo.png │ ├── Square284x284Logo.png │ └── Square310x310Logo.png ├── .gitignore ├── src │ ├── main.rs │ └── lib.rs └── capabilities │ └── default.json └── GitVersion.yml /docker/angor-app/readme.md: -------------------------------------------------------------------------------- 1 | TBD -------------------------------------------------------------------------------- /docker/angor-app/docker-compose.yml: -------------------------------------------------------------------------------- 1 | TBD -------------------------------------------------------------------------------- /src/Angor/Client/Pages/Penalty.razor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Angor.Test/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore .idea files 2 | .idea/ -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/WalletRequest.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docker/explorers/mainnet/electrs.conf: -------------------------------------------------------------------------------- 1 | auth = "rpcuser:rpcpassword" -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "8.0.310" 4 | } 5 | } -------------------------------------------------------------------------------- /src-tauri/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | tauri_build::build() 3 | } 4 | -------------------------------------------------------------------------------- /src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /src-tauri/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/StoreLogo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src-tauri/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/TxId.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record TxId(string Value); -------------------------------------------------------------------------------- /src/Angor/Avalonia/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "9.0.0", 4 | "rollForward": "latestMinor" 5 | } 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/Address.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record Address(string Value); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Browser/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | [assembly:System.Runtime.Versioning.SupportedOSPlatform("browser")] 2 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Desktop/app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp.Desktop/app.ico -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Assets/flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp/Assets/flow.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/angor-app-icon-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/angor-app-icon-dark.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/angor-app-icon-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/angor-app-icon-light.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Android/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp.Android/Icon.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Desktop/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp.Desktop/icon.ico -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/Amount.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Projects.Domain; 2 | 3 | public record class Amount(long Sats); -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/ProjectId.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Shared; 2 | 3 | public record class ProjectId(string Value); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Assets/community.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp/Assets/community.png -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/favicon.png -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/icon-192.png -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/icon-512.png -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/no-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/no-image.jpg -------------------------------------------------------------------------------- /src/Angor/Shared/ProjectIdentifierDerivation.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Shared/ProjectIdentifierDerivation.cs -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/DomainFeeRate.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record DomainFeeRate(long SatsPerVByte); -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/FeeAndSize.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record FeeAndSize(long Fee, long VirtualSize); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Assets/angor-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp/Assets/angor-logo.ico -------------------------------------------------------------------------------- /GitVersion.yml: -------------------------------------------------------------------------------- 1 | workflow: GitHubFlow/v1 2 | strategies: 3 | - ConfiguredNextVersion 4 | - Mainline 5 | ignore: 6 | sha: [] 7 | merge-message-formats: {} -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Assets/avalonia-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp/Assets/avalonia-logo.ico -------------------------------------------------------------------------------- /src/Angor/Avalonia/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | $(NoWarn);1591 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/bitcoin-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/bitcoin-logo.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Browser/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp.Browser/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/IProjectTypeViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp 2 | { 3 | public interface IProjectTypeViewModel : IHaveTitle 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/browse-icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/browse-icon-192.png -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/wallet-icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/wallet-icon-192.png -------------------------------------------------------------------------------- /docker/explorers/angornet/electrs.conf: -------------------------------------------------------------------------------- 1 | auth = "rpcuser:rpcpassword" 2 | signet_magic = "23792bf9" # the angornet magic numer as found in Bitcoin Core logs (signet only) -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Common/ProfileContext.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Common; 2 | 3 | public sealed record ProfileContext(string AppName, string ProfileName); 4 | -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/settings-icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/settings-icon-192.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/DomainException.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public class DomainException(string message) : Exception(message); -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/TransactionInput.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record TransactionInput(Amount Amount, Address Address); -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/TransactionOutput.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record TransactionOutput(Amount Amount, Address Address); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Android/Resources/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp.Android/Resources/drawable/icon.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/DerivationType.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public enum DerivationType 4 | { 5 | Receive = 0, 6 | Change = 1 7 | } -------------------------------------------------------------------------------- /src/Angor/Shared/Models/FeeEstimations.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | 3 | public class FeeEstimations 4 | { 5 | public List Fees { get; set; } = new(); 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Common/LongTextViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Model.Common; 2 | 3 | public class LongTextViewModel 4 | { 5 | public string Text { get; set; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/FounderStatus.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio; 2 | 3 | public enum FounderStatus 4 | { 5 | Invalid, 6 | Approved 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/Items/PortfolioItem.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio.Items; 2 | 3 | public record PortfolioItem(string Title, string Subtitle); -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/WalletDescriptor.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public sealed record WalletDescriptor(BitcoinNetwork Network, XPubCollection XPubs); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Android/Resources/drawable-night/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Avalonia/AngorApp.Android/Resources/drawable-night/icon.png -------------------------------------------------------------------------------- /src/Angor/Client/Models/Investments.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Client.Models; 2 | 3 | public class Investments 4 | { 5 | public List ProjectIdentifiers { get; set; } = new(); 6 | } -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/mobile-installation-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/mobile-installation-screenshot.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Common/WalletId.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Common; 2 | 3 | public record WalletId(string Value) 4 | { 5 | public override string ToString() => Value; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Core/Constants.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Core; 2 | 3 | public static class Constants 4 | { 5 | public static readonly Uri AngorHubUri = new("https://hub.angor.io"); 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Browse/Details/INostrRelay.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Browse.Details; 2 | 3 | public interface INostrRelay 4 | { 5 | public Uri Uri { get; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/FindProjects/SortOption.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.FindProjects 2 | { 3 | public record SortOption(string Name, int Count) 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/img/desktop-installation-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/block-core/angor/HEAD/src/Angor/Client/wwwroot/assets/img/desktop-installation-screenshot.png -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Application/WalletMetadata.cs: -------------------------------------------------------------------------------- 1 | using Angor.Sdk.Common; 2 | 3 | namespace Angor.Sdk.Wallet.Application; 4 | 5 | public record WalletMetadata(string Name, WalletId Id); -------------------------------------------------------------------------------- /src/Angor/Shared/Services/ISerializer.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Services; 2 | 3 | public interface ISerializer 4 | { 5 | string Serialize(T data); 6 | 7 | T? Deserialize(string str); 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/DirectMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Shared; 2 | 3 | public record DirectMessage(string Id, string SenderNostrPubKey, string Content, DateTime Created); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Contracts/Flows/ISendMoneyFlow.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Model.Contracts.Flows; 2 | 3 | public interface ISendMoneyFlow 4 | { 5 | Task SendMoney(IWallet sourceWallet); 6 | } -------------------------------------------------------------------------------- /src/Angor/Client/Services/ICurrencyRateService.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Client.Services; 2 | 3 | public interface ICurrencyRateService 4 | { 5 | Task GetBtcToCurrencyRate(string currencyCode); 6 | } -------------------------------------------------------------------------------- /src/Angor/Shared/Models/FeeEstimation.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | 3 | public class FeeEstimation 4 | { 5 | public int Confirmations { get; set; } 6 | public long FeeRate { get; set; } 7 | } -------------------------------------------------------------------------------- /src/Angor/Shared/Models/PsbtData.cs: -------------------------------------------------------------------------------- 1 | using Blockcore.Consensus.TransactionInfo; 2 | 3 | namespace Angor.Shared.Models; 4 | 5 | public class PsbtData 6 | { 7 | public string PsbtHex { get; set; } 8 | } -------------------------------------------------------------------------------- /src/Angor/Shared/Models/Stage.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | 3 | public class Stage 4 | { 5 | public decimal AmountToRelease { get; set; } 6 | public DateTime ReleaseDate { get; set; } 7 | } -------------------------------------------------------------------------------- /src/Testing/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } 6 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/BitcoinNetwork.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public enum BitcoinNetwork 4 | { 5 | Unknown = 0, 6 | Mainnet, 7 | Testnet, 8 | Regtest 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Core/IHaveErrors.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Founder.CreateProject.FundingStructure; 2 | 3 | public interface IHaveErrors 4 | { 5 | ICollection Errors { get; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Shared/Models/Wallet.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | public class Wallet 3 | { 4 | public FounderKeyCollection FounderKeys { get; set; } 5 | public string EncryptedData { get; set; } 6 | } -------------------------------------------------------------------------------- /src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Generated by Tauri 6 | # will have schema files for capabilities auto-completion 7 | /gen/schemas 8 | -------------------------------------------------------------------------------- /src/Angor/Client/Services/IHtmlStripperService.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Client.Services 2 | { 3 | public interface IHtmlStripperService 4 | { 5 | string StripHtmlTags(string input); 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/DomainFeerate.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Shared; 2 | 3 | public record DomainFeerate(long SatsPerVByte) 4 | { 5 | public long SatsPerKilobyte => SatsPerVByte * 1000; 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Browse/Details/NostrRelaySample.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Browse.Details; 2 | 3 | public class NostrRelaySample : INostrRelay 4 | { 5 | public Uri Uri { get; set; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/WalletImportOptions.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet; 2 | 3 | public record WalletImportOptions(SeedWords Seedwords, Maybe Passphrase, string EncryptionKey); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/Common/Success/ISuccessViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shared.Controls.Common.Success; 2 | 3 | public interface ISuccessViewModel 4 | { 5 | string Message { get; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Shared/Models/SignatureInfoItem.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | 3 | public class SignatureInfoItem 4 | { 5 | public int StageIndex { get; set; } 6 | 7 | public string Signature { get; set; } 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/TransactionDrafts/RecoveryTransactionDraft.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Shared.TransactionDrafts; 2 | 3 | public record RecoveryTransactionDraft : TransactionDraft 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/TransactionDrafts/ReleaseTransactionDraft.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Shared.TransactionDrafts; 2 | 3 | public record ReleaseTransactionDraft : TransactionDraft 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/IWalletSetupViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public interface IWalletSetupViewModel 4 | { 5 | public IEnhancedCommand Create { get; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/primary.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/Angor/Shared/Models/ProjectSeeders.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | 3 | public class ProjectSeeders 4 | { 5 | public int Threshold { get; set; } 6 | public List SecretHashes { get; set; } = new(); 7 | } -------------------------------------------------------------------------------- /src-tauri/src/main.rs: -------------------------------------------------------------------------------- 1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!! 2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 3 | 4 | fn main() { 5 | tauri_app_lib::run() 6 | } 7 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Infrastructure/Dto/WalletDescriptorDto.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Infrastructure.Dto; 2 | 3 | public record WalletDescriptorDto( 4 | string Network, 5 | IEnumerable XPubs 6 | ); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shell/ShellView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shell; 2 | 3 | public partial class ShellView : UserControl 4 | { 5 | public ShellView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/TransactionDrafts/EndOfProjectTransactionDraft.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Shared.TransactionDrafts; 2 | 3 | public record EndOfProjectTransactionDraft : TransactionDraft 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/Amount.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record Amount(long Sats) 4 | { 5 | public override string ToString() 6 | { 7 | return $"{Sats} sats"; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/Balance.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public record Balance(long Sats) 4 | { 5 | public override string ToString() 6 | { 7 | return $"{Sats} sats"; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Infrastructure/Dto/DerivationPathDto.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Infrastructure.Dto; 2 | 3 | public record DerivationPathDto( 4 | uint Purpose, 5 | uint CoinType, 6 | uint Account 7 | ); -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/XPubCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | 3 | namespace Angor.Sdk.Wallet.Domain; 4 | 5 | public class XPubCollection(IEnumerable xpubs) : Collection(xpubs.ToList()); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Contracts/Amounts/IAmountFactory.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Model.Contracts.Amounts; 2 | 3 | public interface IAmountFactory 4 | { 5 | IAmountUI Create(long sats); 6 | string CurrencySymbol { get; } 7 | } 8 | -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/set.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Investor/Domain/InvestmentRecords.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Investor.Domain; 2 | 3 | public class InvestmentRecords 4 | { 5 | public List ProjectIdentifiers { get; set; } = new(); 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Domain/DomainScriptType.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Domain; 2 | 3 | public enum DomainScriptType 4 | { 5 | Invalid, 6 | SegWit, 7 | Taproot, 8 | Legacy, 9 | P2SH, 10 | P2WSH 11 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Common/IStore.cs: -------------------------------------------------------------------------------- 1 | using CSharpFunctionalExtensions; 2 | 3 | namespace Angor.Sdk.Common; 4 | 5 | public interface IStore 6 | { 7 | Task Save(string key, T data); 8 | Task> Load(string key); 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Founder/Domain/InvestmentRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Founder.Domain; 2 | 3 | internal record InvestmentRequest(DateTime CreatedOn, string InvestorNostrPubKey, string InvestmentTransactionHex, string EventId); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/Balance.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public partial class Balance : UserControl 4 | { 5 | public Balance() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/Receive.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public partial class Receive : UserControl 4 | { 5 | public Receive() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Data.Documents/Interfaces/IAngorDocumentDatabaseFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Data.Documents.Interfaces; 2 | 3 | public interface IAngorDocumentDatabaseFactory 4 | { 5 | IAngorDocumentDatabase CreateDatabase(string profileName); 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/Recover/RecoverViewModelSample.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio.Recover; 2 | 3 | public class RecoverViewModelSample : IRecoverViewModel 4 | { 5 | // Design-time data for Recover section 6 | } 7 | -------------------------------------------------------------------------------- /src/Angor/Client/Services/IClipboardService.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Client.Services 2 | { 3 | public interface IClipboardService 4 | { 5 | Task ReadTextAsync(); 6 | Task WriteTextAsync(string text); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Android/Resources/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #212121 4 | @color/splash_background 5 | 6 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Contracts/Flows/ICreateProjectFlow.cs: -------------------------------------------------------------------------------- 1 | using CSharpFunctionalExtensions; 2 | 3 | namespace AngorApp.Model.Contracts.Flows; 4 | 5 | public interface ICreateProjectFlow 6 | { 7 | Task>> CreateProject(); 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Contracts/Projects/ProjectStatus.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Model.Contracts.Projects; 2 | 3 | public enum ProjectStatus 4 | { 5 | Invalid = 0, 6 | Started, 7 | Funding, 8 | Succeeded, 9 | Failed, 10 | } 11 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Core/Factories/IProjectViewModelFactory.cs: -------------------------------------------------------------------------------- 1 | using AngorApp.UI.Sections.Browse; 2 | 3 | namespace AngorApp.Core.Factories; 4 | 5 | public interface IProjectViewModelFactory 6 | { 7 | IProjectViewModel Create(IProject project); 8 | } 9 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Home/HomeSectionView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Home; 2 | 3 | public partial class HomeSectionView : UserControl 4 | { 5 | public HomeSectionView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/HistoryView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public partial class HistoryView : UserControl 4 | { 5 | public HistoryView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/WalletView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public partial class WalletView : UserControl 4 | { 5 | public WalletView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/Common/Success/SuccessViewModelSample.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shared.Controls.Common.Success; 2 | 3 | public class SuccessViewModelSample : ISuccessViewModel 4 | { 5 | public string Message { get; set; } = ""; 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/PageContainer.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Controls.Primitives; 4 | 5 | namespace AngorApp.UI.Shared.Controls; 6 | 7 | public class PageContainer : ContentControl 8 | { 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Founder/InvestmentStatus.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Angor.Sdk.Funding.Founder; 3 | 4 | public enum InvestmentStatus 5 | { 6 | Invalid = 0, 7 | PendingFounderSignatures, 8 | FounderSignaturesReceived, 9 | Invested 10 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Wallet/Password/IPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Model.Wallet.Password; 2 | 3 | public interface IPasswordViewModel 4 | { 5 | string Text { get; } 6 | object? Icon { get; } 7 | public string Password { get; set; } 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Design/DesignTimeAmount.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Design; 2 | 3 | public class DesignTimeAmount : IAmountUI 4 | { 5 | public long Sats { get; set; } 6 | public string Symbol { get; } = "TBTC"; // Design time symbol, can be anything 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Home/IHomeSectionViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Home; 2 | 3 | public interface IHomeSectionViewModel 4 | { 5 | IEnhancedCommand FindProjects { get; set; } 6 | IEnhancedCommand CreateProject { get; set; } 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/Common/Success/SuccessViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shared.Controls.Common.Success; 2 | 3 | public class SuccessViewModel(string message) : ISuccessViewModel 4 | { 5 | public string Message { get; } = message; 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Founder/Domain/Investment.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Founder.Domain; 2 | 3 | public record Investment(string EventId, DateTime CreatedOn, string InvestmentTransactionHex, string InvestorNostrPubKey, long Amount, InvestmentStatus Status); -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Projects/Domain/TransactionHexDocument.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Projects.Domain; 2 | 3 | public class TransactionHexDocument 4 | { 5 | public required string Hex { get; set; } 6 | public required string Id { get; set; } 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Flows/Invest/Amount/StagesBreakdown.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Flows.Invest.Amount; 2 | 3 | public partial class StagesBreakdown : UserControl 4 | { 5 | public StagesBreakdown() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Browse/BrowseSectionView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Browse; 2 | 3 | public partial class BrowseSectionView : UserControl 4 | { 5 | public BrowseSectionView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/Items/ProgressView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio.Items; 2 | 3 | public partial class ProgressView : UserControl 4 | { 5 | public ProgressView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/Recover/IRecoverViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio.Recover; 2 | 3 | public interface IRecoverViewModel 4 | { 5 | // Recover section interface will be expanded with specific functionality later 6 | } 7 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Common/ISeedwordsProvider.cs: -------------------------------------------------------------------------------- 1 | using CSharpFunctionalExtensions; 2 | 3 | namespace Angor.Sdk.Common; 4 | 5 | public interface ISeedwordsProvider 6 | { 7 | Task Passphrase)>> GetSensitiveData(string walletId); 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Founder/Dtos/ClaimStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Founder.Dtos; 2 | 3 | public enum ClaimStatus 4 | { 5 | Invalid = 0, 6 | Unspent, 7 | Pending, 8 | Locked, 9 | SpentByFounder, 10 | WithdrawByInvestor 11 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Founder/Dtos/SpendTransactionDto.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Founder.Dtos; 2 | 3 | public record SpendTransactionDto 4 | { 5 | public required string InvestorAddress { get; init; } 6 | public required int StageId { get; init; } 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Infrastructure/Dto/XPubDto.cs: -------------------------------------------------------------------------------- 1 | using Angor.Sdk.Wallet.Domain; 2 | 3 | namespace Angor.Sdk.Wallet.Infrastructure.Dto; 4 | 5 | public record XPubDto( 6 | string Value, 7 | DomainScriptType ScriptType, 8 | DerivationPathDto Path 9 | ); -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Browser/runtimeconfig.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "wasmHostProperties": { 3 | "perHostConfig": [ 4 | { 5 | "name": "browser", 6 | "host": "browser" 7 | } 8 | ] 9 | } 10 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Browse/Details/NostProperties.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Browse.Details; 2 | 3 | public partial class NostProperties : UserControl 4 | { 5 | public NostProperties() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Browse/Details/ProjectSummary.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Browse.Details; 2 | 3 | public partial class ProjectSummary : UserControl 4 | { 5 | public ProjectSummary() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Founder/CreateProject/Stages/Creator/PaymentFrequency.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Founder.CreateProject.Stages.Creator; 2 | 3 | public enum PaymentFrequency 4 | { 5 | Daily, 6 | Weekly, 7 | Monthly, 8 | Quarterly 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Founder/FounderSectionView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Founder; 2 | 3 | public partial class FounderSectionView : UserControl 4 | { 5 | public FounderSectionView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Projects/Domain/Stage.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Projects.Domain; 2 | 3 | public class Stage 4 | { 5 | public DateTime ReleaseDate { get; set; } 6 | public int Index { get; set; } 7 | public decimal RatioOfTotal { get; set; } 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/Core/Factories/IProjectInvestCommandFactory.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Core.Factories; 2 | 3 | public interface IProjectInvestCommandFactory 4 | { 5 | IEnhancedCommand>> Create(FullProject project, bool isInsideInvestmentPeriod); 6 | } 7 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/ITransactionViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public interface ITransactionViewModel 4 | { 5 | ReactiveCommand ShowJson { get; } 6 | IBroadcastedTransaction Transaction { get; } 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/WalletSectionView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public partial class WalletSectionView : UserControl 4 | { 5 | public WalletSectionView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/Common/Success/SuccessView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shared.Controls.Common.Success; 2 | 3 | public partial class SuccessView : UserControl 4 | { 5 | public SuccessView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Testing/cypress.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | e2e: { 3 | specPattern: "src/Testing/e2e/*.js", 4 | supportFile: false, // Disable support file 5 | setupNodeEvents(on, config) { 6 | // implement node event listeners here 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Shared/InvestmentRequestStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Shared; 2 | 3 | public enum InvestmentRequestStatus 4 | { 5 | Pending, 6 | Cancelled, 7 | Approved, 8 | Invested, 9 | Rejected, 10 | Released 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/Items/OfferAcceptedView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio.Items; 2 | 3 | public partial class OfferAcceptedView : UserControl 4 | { 5 | public OfferAcceptedView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/PortfolioSectionView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio; 2 | 3 | public partial class PortfolioSectionView : UserControl 4 | { 5 | public PortfolioSectionView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/TransactionJsonView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public partial class TransactionJsonView : UserControl 4 | { 5 | public TransactionJsonView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/Common/LongTextView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shared.Controls.Common; 2 | 3 | public partial class LongTextView : UserControl 4 | { 5 | public LongTextView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/Password/PasswordView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shared.Controls.Password; 2 | 3 | public partial class PasswordView : UserControl 4 | { 5 | public PasswordView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Founder/CreateProject/Stages/StagesView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Founder.CreateProject.Stages; 2 | 3 | public partial class StagesView : UserControl 4 | { 5 | public StagesView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Shared/Models/TransactionInfo.cs: -------------------------------------------------------------------------------- 1 | using Blockcore.Consensus.TransactionInfo; 2 | 3 | namespace Angor.Shared.Models; 4 | 5 | public class TransactionInfo 6 | { 7 | public Transaction Transaction { get; set; } 8 | public long TransactionFee { get; set; } 9 | 10 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Browse/IProjectViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace AngorApp.UI.Sections.Browse; 4 | 5 | public interface IProjectViewModel 6 | { 7 | IProject Project { get; } 8 | IEnhancedCommand GoToDetails { get; } 9 | } 10 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Browse/ProjectLookup/ProjectLookupView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Browse.ProjectLookup; 2 | 3 | public partial class ProjectLookupView : UserControl 4 | { 5 | public ProjectLookupView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Founder/CreateProject/Profile/ProfileView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Founder.CreateProject.Profile; 2 | 3 | public partial class ProfileView : UserControl 4 | { 5 | public ProfileView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Client/Models/FeeCalculation.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Client.Models 2 | { 3 | public class FeeCalculation 4 | { 5 | public int? Position { get; set; } 6 | public long? CustomFee { get; set; } 7 | public bool UseCustomFee { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Angor/Shared/Models/SignData.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | 3 | public class SignData 4 | { 5 | public string ProjectIdentifier { get; set; } 6 | 7 | public string FounderRecoveryPrivateKey { get; set; } 8 | 9 | public string NostrPrivateKey { get; set; } 10 | } -------------------------------------------------------------------------------- /src-tauri/capabilities/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../gen/schemas/desktop-schema.json", 3 | "identifier": "default", 4 | "description": "Capability for the main window", 5 | "windows": ["main"], 6 | "permissions": [ 7 | "core:default", 8 | "shell:allow-open" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/CreateAndImport/Steps/Passphrase/Create/IPassphraseCreateViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.CreateAndImport.Steps.Passphrase.Create; 2 | 3 | public interface IPassphraseCreateViewModel 4 | { 5 | public string? Passphrase { get; set; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Investor/Domain/InvestmentRecordsDocument.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Investor.Domain; 2 | 3 | public class InvestmentRecordsDocument 4 | { 5 | public required string WalletId { get; set; } 6 | public List Investments { get; set; } = new(); 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Infrastructure/Impl/WalletData.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Infrastructure.Impl; 2 | 3 | public class WalletData 4 | { 5 | public string? DescriptorJson { get; set; } 6 | public bool RequiresPassphrase { get; set; } 7 | public string? SeedWords { get; set; } 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Infrastructure/Interfaces/IWalletSecurityContext.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Wallet.Infrastructure.Interfaces; 2 | 3 | public interface IWalletSecurityContext 4 | { 5 | IPassphraseProvider PassphraseProvider { get; } 6 | IPasswordProvider PasswordProvider { get; } 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/CreateAndImport/Steps/ImportWelcome/ImportWelcomeViewModel.cs: -------------------------------------------------------------------------------- 1 | using ReactiveUI.Validation.Helpers; 2 | 3 | namespace AngorApp.UI.Sections.Wallet.CreateAndImport.Steps.ImportWelcome; 4 | 5 | public class ImportWelcomeViewModel : ReactiveValidationObject 6 | { 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/CreateAndImport/Steps/Passphrase/Recover/IPassphraseRecoverViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.CreateAndImport.Steps.Passphrase.Recover; 2 | 3 | public interface IPassphraseRecoverViewModel 4 | { 5 | public string? Passphrase { get; set; } 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/Main/IWalletSectionViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.Main; 2 | 3 | public interface IWalletSectionViewModel : IWalletSetupViewModel 4 | { 5 | public IEnumerable Wallets { get; } 6 | public IWallet CurrentWallet { get; set; } 7 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Controls/DesignTimePreset.cs: -------------------------------------------------------------------------------- 1 | using AngorApp.UI.Shared.Controls.Feerate; 2 | 3 | namespace AngorApp.UI.Shared.Controls; 4 | 5 | public class DesignTimePreset : IFeeratePreset 6 | { 7 | public IAmountUI Feerate { get; set; } 8 | public string Name { get; set; } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Wallet/Infrastructure/Interfaces/IPasswordProvider.cs: -------------------------------------------------------------------------------- 1 | using Angor.Sdk.Common; 2 | using CSharpFunctionalExtensions; 3 | 4 | namespace Angor.Sdk.Wallet.Infrastructure.Interfaces; 5 | 6 | public interface IPasswordProvider 7 | { 8 | Task> Get(WalletId walletId); 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Contracts/Wallet/IWalletFactory.cs: -------------------------------------------------------------------------------- 1 | using CSharpFunctionalExtensions; 2 | 3 | namespace AngorApp.Model.Contracts.Wallet; 4 | 5 | public interface IWalletFactory 6 | { 7 | public Task>> Recover(); 8 | public Task>> Create(); 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/CreateAndImport/Steps/Summary/SummaryView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.CreateAndImport.Steps.Summary; 2 | 3 | public partial class SummaryView : UserControl 4 | { 5 | public SummaryView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Shared/Services/UIPreferences.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Shared.Services; 2 | 3 | public sealed record UIPreferences(bool IsBitcoinPreferred, bool IsDarkThemeEnabled, bool IsDebugModeEnabled) 4 | { 5 | public static UIPreferences CreateDefault() => new(true, false, false); 6 | } 7 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/TransactionDrafts/DraftTypes/Base/InvestmentDraftView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.TransactionDrafts.DraftTypes.Base; 2 | 3 | public partial class InvestmentDraftView : UserControl 4 | { 5 | public InvestmentDraftView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/expand.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Angor/Shared/Models/ProjectStats.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Shared.Models; 2 | 3 | public class ProjectStats 4 | { 5 | public long InvestorCount { get; set; } 6 | public long AmountInvested { get; set; } 7 | public long AmountInPenalties { get; set; } 8 | public long CountInPenalties { get; set; } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Flows/CreateProject/Wizard/WelcomeView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Flows.CreateProject.Wizard 2 | { 3 | public partial class WelcomeView : UserControl 4 | { 5 | public WelcomeView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/Manage/ManageInvestorProjectView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio.Manage; 2 | 3 | public partial class ManageInvestorProjectView : UserControl 4 | { 5 | public ManageInvestorProjectView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/CreateAndImport/Steps/SeedWordsGeneration/Empty.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.CreateAndImport.Steps.SeedWordsGeneration; 2 | 3 | public partial class Empty : UserControl 4 | { 5 | public Empty() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/TransactionDrafts/DraftTypes/ITransactionDraftViewModel.cs: -------------------------------------------------------------------------------- 1 | using TransactionDraft = Angor.Sdk.Funding.Shared.TransactionDraft; 2 | 3 | namespace AngorApp.UI.TransactionDrafts.DraftTypes; 4 | 5 | public interface ITransactionDraftViewModel 6 | { 7 | TransactionDraft Model { get; } 8 | } -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/chevron-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/collapse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/Angor.Sdk/Funding/Projects/Dtos/StageDto.cs: -------------------------------------------------------------------------------- 1 | namespace Angor.Sdk.Funding.Projects.Dtos; 2 | 3 | public class StageDto 4 | { 5 | public DateTime ReleaseDate { get; set; } 6 | public long Amount { get; set; } 7 | public int Index { get; set; } 8 | public decimal RatioOfTotal { get; set; } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Android/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | 5 | @color/splash_background 6 | 7 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp.Model/Wallet/Password/PasswordViewModelSample.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.Model.Wallet.Password; 2 | 3 | public class PasswordViewModelSample : IPasswordViewModel 4 | { 5 | public string Text { get; set; } 6 | public object? Icon { get; set; } 7 | public string Password { get; set; } 8 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Flows/Invest/Amount/Breakdown.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Flows.Invest.Amount; 2 | 3 | public record Breakdown(int Index, IAmountUI InvestAmount, decimal RatioOfTotal, DateTimeOffset ReleaseDate) 4 | { 5 | public IAmountUI Amount => new AmountUI((long)(InvestAmount.Sats * RatioOfTotal)); 6 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Founder/ProjectDetails/MainView/Claim/ClaimFundsView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Founder.ProjectDetails.MainView.Claim; 2 | 3 | public partial class ClaimFundsView : UserControl 4 | { 5 | public ClaimFundsView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Portfolio/Manage/IInvestorProjectStage.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Portfolio.Manage; 2 | 3 | public interface IInvestorProjectStage 4 | { 5 | int Stage { get; } 6 | IAmountUI Amount { get; } 7 | string Status { get; } 8 | bool IsSpent { get; } 9 | } 10 | -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Flows/SendWalletMoney/AddressAndAmount/AddressAndAmountView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Flows.SendWalletMoney.AddressAndAmount; 2 | 3 | public partial class AddressAndAmountView : UserControl 4 | { 5 | public AddressAndAmountView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Flows/SendWalletMoney/TransactionDraft/TransactionDraftView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Flows.SendWalletMoney.TransactionDraft; 2 | 3 | public partial class TransactionDraftView : UserControl 4 | { 5 | public TransactionDraftView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Founder/ProjectDetails/FounderProjectDetailsView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Founder.ProjectDetails; 2 | 3 | public partial class FounderProjectDetailsView : UserControl 4 | { 5 | public FounderProjectDetailsView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/Sections/Wallet/CreateAndImport/Steps/CreateWelcome/WelcomeView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.Sections.Wallet.CreateAndImport.Steps.CreateWelcome; 2 | 3 | public partial class WelcomeView : UserControl 4 | { 5 | public WelcomeView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Avalonia/AngorApp/UI/TransactionDrafts/DraftTypes/Investment/InvestmentDraftView.axaml.cs: -------------------------------------------------------------------------------- 1 | namespace AngorApp.UI.TransactionDrafts.DraftTypes.Investment; 2 | 3 | public partial class InvestmentDraftView : UserControl 4 | { 5 | public InvestmentDraftView() 6 | { 7 | InitializeComponent(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Angor/Client/Models/Project.cs: -------------------------------------------------------------------------------- 1 | using Angor.Shared.Models; 2 | 3 | namespace Angor.Client.Models; 4 | 5 | public class Project 6 | { 7 | public ProjectMetadata? Metadata { get; set; } 8 | public ProjectInfo ProjectInfo { get; set; } 9 | 10 | public string? CreationTransactionId { get; set; } 11 | 12 | } -------------------------------------------------------------------------------- /src/Angor/Client/wwwroot/assets/icons/release.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Angor/Shared/Protocol/Scripts/ISeederScriptTreeBuilder.cs: -------------------------------------------------------------------------------- 1 | using Blockcore.Consensus.ScriptInfo; 2 | 3 | namespace Angor.Shared.Protocol.Scripts; 4 | 5 | public interface ISeederScriptTreeBuilder 6 | { 7 | IEnumerable