├── 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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/src/Angor/Client/wwwroot/assets/icons/arrow-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Angor/Client/wwwroot/assets/icons/chevron-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Angor/Client/wwwroot/assets/icons/collapse.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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