├── .coveragerc ├── .flake8 ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── config.yml ├── actions │ └── install │ │ └── action.yml ├── linters │ ├── .flake8 │ ├── .isort.cfg │ ├── .markdown-lint.yml │ ├── .python-black │ └── .python-lint └── workflows │ ├── build-linux-installer-deb.yml │ ├── build-macos-installers.yml │ └── build-windows-installer.yml ├── .gitignore ├── .gitmodules ├── .isort.cfg ├── .markdown-lint.yml ├── .pre-commit-config.yaml ├── BUILD_TIMELORD.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── INSTALL.md ├── Install-gui.ps1 ├── Install-plotter.ps1 ├── Install.ps1 ├── LICENSE ├── PRETTY_GOOD_PRACTICES.md ├── README.md ├── activated.ps1 ├── activated.py ├── activated.sh ├── benchmarks ├── __init__.py ├── block_ref.py ├── block_store.py ├── clvm_generator.bin ├── coin_store.py ├── jsonify.py ├── mempool.py ├── streamable.py ├── transaction_height_delta └── utils.py ├── build_scripts ├── __init__.py ├── assets │ ├── __init__.py │ ├── deb │ │ ├── __init__.py │ │ ├── control.j2 │ │ ├── postinst.sh │ │ └── prerm.sh │ ├── dmg │ │ ├── README │ │ ├── __init__.py │ │ └── background.tiff │ └── rpm │ │ ├── __init__.py │ │ ├── postinst.sh │ │ └── prerm.sh ├── build_linux_deb-1-gui.sh ├── build_linux_deb-2-installer.sh ├── build_linux_rpm-1-gui.sh ├── build_linux_rpm-2-installer.sh ├── build_macos-1-gui.sh ├── build_macos-2-installer.sh ├── build_windows-1-gui.ps1 ├── build_windows-2-installer.ps1 ├── check_dependency_artifacts.py ├── clean-runner.sh ├── installer-version.py ├── npm_global │ ├── __init__.py │ ├── package-lock.json │ └── package.json ├── npm_linux │ ├── __init__.py │ ├── package-lock.json │ └── package.json ├── npm_macos │ ├── __init__.py │ ├── package-lock.json │ └── package.json └── npm_windows │ ├── __init__.py │ ├── package-lock.json │ └── package.json ├── install-gui.sh ├── install-plotter.sh ├── install-timelord.sh ├── install.sh ├── installhelper.py ├── lgtm.yml ├── mozilla-ca ├── .github │ └── workflows │ │ ├── super-linter.yaml │ │ └── update-cert.yaml ├── .gitignore ├── LICENSE ├── README.md ├── __init__.py └── cacert.pem ├── mypy.ini ├── pylintrc ├── pyproject.toml ├── pytest.ini ├── run-py-tests.sh ├── setup.py ├── start-gui.sh ├── taco-blockchain-gui ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .github │ ├── ISSUE_TEMPLATE │ │ ├── bug_report.yaml │ │ └── config.yml │ ├── dependabot.yml │ └── workflows │ │ ├── audit-locales.yml │ │ ├── stale-issue.yml │ │ └── super-linter.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .prettierrc.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── crowdin.yml ├── lerna.json ├── package-lock.json ├── package.json ├── packages │ ├── api-react │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src │ │ │ ├── api.ts │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── useCurrentFingerprintSettings.ts │ │ │ │ ├── useFingerprintSettings.ts │ │ │ │ ├── useForceUpdate.ts │ │ │ │ ├── useGetFarmerFullNodeConnectionsQuery.ts │ │ │ │ ├── useGetHarvesterConnectionsQuery.ts │ │ │ │ ├── useGetHarvesterQuery.ts │ │ │ │ ├── useGetHarvesterStats.ts │ │ │ │ ├── useGetLatestBlocksQuery.ts │ │ │ │ ├── useGetLatestPeakTimestampQuery.ts │ │ │ │ ├── useGetLocalCatName.ts │ │ │ │ ├── useGetNFTWallets.ts │ │ │ │ ├── useGetThrottlePlotQueueQuery.ts │ │ │ │ ├── useGetTotalHarvestersSummaryQuery.ts │ │ │ │ ├── useLocalStorage.ts │ │ │ │ ├── useLogout.ts │ │ │ │ ├── useNFTMetadata.ts │ │ │ │ ├── useService.ts │ │ │ │ ├── useServices.ts │ │ │ │ └── useThrottleQuery.ts │ │ │ ├── index.ts │ │ │ ├── services │ │ │ │ ├── client.ts │ │ │ │ ├── daemon.ts │ │ │ │ ├── farmer.ts │ │ │ │ ├── fullNode.ts │ │ │ │ ├── harvester.ts │ │ │ │ ├── index.ts │ │ │ │ ├── plotter.ts │ │ │ │ └── wallet.ts │ │ │ ├── slices │ │ │ │ ├── api.ts │ │ │ │ └── index.ts │ │ │ ├── store.ts │ │ │ ├── tacoBaseQuery.ts │ │ │ ├── tacoLazyBaseQuery.ts │ │ │ └── utils │ │ │ │ ├── EventEmitter.ts │ │ │ │ ├── combineHarvesters.ts │ │ │ │ ├── normalizePoolState.ts │ │ │ │ ├── onCacheEntryAddedInvalidate.ts │ │ │ │ └── removeOldPoints.ts │ │ └── tsconfig.json │ ├── api │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src │ │ │ ├── @types │ │ │ │ ├── Block.ts │ │ │ │ ├── BlockHeader.ts │ │ │ │ ├── BlockRecord.ts │ │ │ │ ├── BlockchainConnection.ts │ │ │ │ ├── BlockchainState.ts │ │ │ │ ├── CATToken.ts │ │ │ │ ├── CalculateRoyaltiesRequest.ts │ │ │ │ ├── CalculateRoyaltiesResponse.ts │ │ │ │ ├── Challenge.ts │ │ │ │ ├── Coin.ts │ │ │ │ ├── CoinSolution.ts │ │ │ │ ├── Connection.ts │ │ │ │ ├── FarmingInfo.ts │ │ │ │ ├── Fingerprint.ts │ │ │ │ ├── Foliage.ts │ │ │ │ ├── FoliageTransactionBlock.ts │ │ │ │ ├── G2Element.ts │ │ │ │ ├── Header.ts │ │ │ │ ├── InitialTargetState.ts │ │ │ │ ├── KeyData.ts │ │ │ │ ├── MessageInterface.ts │ │ │ │ ├── NFTAttribute.ts │ │ │ │ ├── NFTInfo.ts │ │ │ │ ├── OfferCoinOfInterest.ts │ │ │ │ ├── OfferSummaryRecord.ts │ │ │ │ ├── OfferTradeRecord.ts │ │ │ │ ├── Peak.ts │ │ │ │ ├── Plot.ts │ │ │ │ ├── PlotAdd.ts │ │ │ │ ├── PlotNFT.ts │ │ │ │ ├── PlotNFTExternal.ts │ │ │ │ ├── PlotQueueItem.ts │ │ │ │ ├── Plotter.ts │ │ │ │ ├── Point.ts │ │ │ │ ├── PoolInfo.ts │ │ │ │ ├── PoolState.ts │ │ │ │ ├── PoolWalletStatus.ts │ │ │ │ ├── Program.ts │ │ │ │ ├── ProofsOfSpace.ts │ │ │ │ ├── Response.ts │ │ │ │ ├── RoyaltyCalculationFungibleAsset.ts │ │ │ │ ├── RoyaltyCalculationFungibleAssetPayout.ts │ │ │ │ ├── RoyaltyCalculationRoyaltyAsset.ts │ │ │ │ ├── SignagePoint.ts │ │ │ │ ├── SpendBundle.ts │ │ │ │ ├── SubBlock.ts │ │ │ │ ├── Transaction.ts │ │ │ │ ├── UnconfirmedPlotNFT.ts │ │ │ │ ├── Wallet.ts │ │ │ │ ├── WalletBalance.ts │ │ │ │ └── index.ts │ │ │ ├── Client.ts │ │ │ ├── Message.ts │ │ │ ├── constants │ │ │ │ ├── ConnectionState.ts │ │ │ │ ├── PassphrasePromptReason.ts │ │ │ │ ├── PlotterName.ts │ │ │ │ ├── Plotters.ts │ │ │ │ ├── ServiceConnectionName.ts │ │ │ │ ├── ServiceHumanName.ts │ │ │ │ ├── ServiceName.ts │ │ │ │ ├── SyncingStatus.ts │ │ │ │ ├── TransactionType.ts │ │ │ │ ├── WalletType.ts │ │ │ │ ├── defaultPlotter.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── services │ │ │ │ ├── Daemon.ts │ │ │ │ ├── Events.ts │ │ │ │ ├── Farmer.ts │ │ │ │ ├── FullNode.ts │ │ │ │ ├── Harvester.ts │ │ │ │ ├── Plotter.ts │ │ │ │ ├── Service.ts │ │ │ │ ├── Wallet.ts │ │ │ │ └── index.ts │ │ │ ├── tests │ │ │ │ └── utils │ │ │ │ │ └── calculateRoyalties.test.ts │ │ │ ├── utils │ │ │ │ ├── ErrorData.ts │ │ │ │ ├── calculateRoyalties.ts │ │ │ │ ├── defaultsForPlotter.ts │ │ │ │ ├── english.ts │ │ │ │ ├── index.ts │ │ │ │ ├── optionsForPlotter.ts │ │ │ │ ├── sleep.ts │ │ │ │ ├── toBech32m.test.ts │ │ │ │ ├── toBech32m.ts │ │ │ │ ├── toCamelCase.ts │ │ │ │ ├── toSafeNumber.ts │ │ │ │ └── toSnakeCase.ts │ │ │ └── wallets │ │ │ │ ├── CAT.ts │ │ │ │ ├── DID.ts │ │ │ │ ├── NFT.ts │ │ │ │ ├── Pool.ts │ │ │ │ ├── RL.ts │ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── core │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── .linguirc │ │ ├── cypress.config.ts │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src │ │ │ ├── components │ │ │ │ ├── Accordion │ │ │ │ │ ├── Accordion.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Address │ │ │ │ │ ├── Address.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AdvancedOptions │ │ │ │ │ ├── AdvancedOptions.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AlertDialog │ │ │ │ │ ├── AlertDialog.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Amount │ │ │ │ │ ├── Amount.tsx │ │ │ │ │ ├── NumberFormatCustom.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AspectRatio │ │ │ │ │ ├── AspectRatio.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Autocomplete │ │ │ │ │ ├── Autocomplete.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Back │ │ │ │ │ ├── Back.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Button │ │ │ │ │ ├── Button.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ButtonLoading │ │ │ │ │ ├── ButtonLoading.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ButtonSelected │ │ │ │ │ ├── ButtonSelected.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Card │ │ │ │ │ ├── Card.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CardHero │ │ │ │ │ ├── CardHero.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CardKeyValue │ │ │ │ │ ├── CardKeyValue.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CardListItem │ │ │ │ │ ├── CardListItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CardSimple │ │ │ │ │ ├── CardSimple.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CardStep │ │ │ │ │ ├── CardStep.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Checkbox │ │ │ │ │ ├── Checkbox.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ConfirmDialog │ │ │ │ │ ├── ConfirmDialog.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CopyToClipboard │ │ │ │ │ ├── CopyToClipboard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CurrencyCode │ │ │ │ │ ├── CurrencyCode.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── DarkModeToggle │ │ │ │ │ ├── DarkModeToggle.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── DialogActions │ │ │ │ │ ├── DialogActions.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Dropdown │ │ │ │ │ ├── Dropdown.tsx │ │ │ │ │ ├── DropdownActions.tsx │ │ │ │ │ ├── DropdownBase.tsx │ │ │ │ │ ├── DropdownIconButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Dropzone │ │ │ │ │ ├── Dropzone.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ErrorBoundary │ │ │ │ │ ├── ErrorBoundary.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── EstimatedFee │ │ │ │ │ ├── EstimatedFee.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Fee │ │ │ │ │ ├── Fee.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Flex │ │ │ │ │ ├── Flex.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Fonts │ │ │ │ │ ├── Fonts.tsx │ │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── ionicons.eot │ │ │ │ │ ├── ionicons.svg │ │ │ │ │ ├── ionicons.ttf │ │ │ │ │ ├── ionicons.woff │ │ │ │ │ └── ionicons.woff2 │ │ │ │ ├── Form │ │ │ │ │ ├── Form.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── FormBackButton │ │ │ │ │ ├── FormBackButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── FormatBytes │ │ │ │ │ ├── FormatBytes.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── FormatConnectionStatus │ │ │ │ │ ├── FormatConnectionStatus.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── FormatLargeNumber │ │ │ │ │ ├── FormatLargeNumber.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── GuestRoute │ │ │ │ │ ├── GuestRoute.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Heading │ │ │ │ │ ├── Heading.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── IconButton │ │ │ │ │ ├── IconButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── IconMessage │ │ │ │ │ ├── IconMessage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Indicator │ │ │ │ │ ├── Indicator.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── InputBase │ │ │ │ │ ├── InputBase.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LayoutDashboard │ │ │ │ │ ├── LayoutDashboard.tsx │ │ │ │ │ ├── LayoutDashboardSub.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LayoutHero │ │ │ │ │ ├── LayoutHero.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LayoutLoading │ │ │ │ │ ├── LayoutLoading.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LayoutMain │ │ │ │ │ ├── LayoutFooter.tsx │ │ │ │ │ ├── LayoutMain.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Link │ │ │ │ │ ├── Link.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Loading │ │ │ │ │ ├── Loading.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LoadingOverlay │ │ │ │ │ ├── LoadingOverlay.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LocaleProvider │ │ │ │ │ ├── LocaleProvider.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LocaleToggle │ │ │ │ │ ├── LocaleToggle.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Log │ │ │ │ │ ├── Log.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Logo │ │ │ │ │ ├── Logo.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Menu │ │ │ │ │ ├── Menu.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── MenuItem │ │ │ │ │ ├── MenuItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ModalDialogs │ │ │ │ │ ├── ModalDialogs.tsx │ │ │ │ │ ├── ModalDialogsContext.tsx │ │ │ │ │ ├── ModalDialogsProvider.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Mode │ │ │ │ │ ├── ModeProvider.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── More │ │ │ │ │ ├── More.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Persist │ │ │ │ │ ├── Persist.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── PrivateRoute │ │ │ │ │ ├── PrivateRoute.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── RadioGroup │ │ │ │ │ ├── RadioGroup.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── SandboxedIframe │ │ │ │ │ ├── SandboxedIframe.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Select │ │ │ │ │ ├── Select.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Settings │ │ │ │ │ ├── Settings.tsx │ │ │ │ │ ├── SettingsApp.tsx │ │ │ │ │ ├── SettingsFooter.tsx │ │ │ │ │ ├── SettingsLabel.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── SideBarItem │ │ │ │ │ ├── SideBarItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Spacer │ │ │ │ │ ├── Spacer.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Spinner │ │ │ │ │ ├── Spinner.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── StateIndicator │ │ │ │ │ ├── StateIndicator.tsx │ │ │ │ │ ├── StateIndicatorDot.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── StateTypography │ │ │ │ │ ├── StateTypography.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Suspender │ │ │ │ │ ├── Suspender.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Table │ │ │ │ │ ├── Table.tsx │ │ │ │ │ ├── TableControlled.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TextField │ │ │ │ │ ├── TextField.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TextFieldNumber │ │ │ │ │ ├── NumberFormatCustom.tsx │ │ │ │ │ ├── TextFieldNumber.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ThemeProvider │ │ │ │ │ ├── ThemeProvider.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ToolbarSpacing │ │ │ │ │ ├── ToolbarSpacing.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Tooltip │ │ │ │ │ ├── Tooltip.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TooltipIcon │ │ │ │ │ ├── TooltipIcon.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TooltipTypography │ │ │ │ │ ├── TooltipTypography.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Truncate │ │ │ │ │ ├── Truncate.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── UnitFormat │ │ │ │ │ ├── UnitFormat.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── constants │ │ │ │ ├── Mode.ts │ │ │ │ ├── State.ts │ │ │ │ ├── StateColor.ts │ │ │ │ ├── Unit.ts │ │ │ │ ├── UnitAliases.ts │ │ │ │ ├── UnitFractionDigits.ts │ │ │ │ ├── UnitValue.ts │ │ │ │ └── index.ts │ │ │ ├── errors │ │ │ │ ├── FileSizeError.ts │ │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── useAppVersion.ts │ │ │ │ ├── useCurrencyCode.ts │ │ │ │ ├── useDarkMode.ts │ │ │ │ ├── useHiddenList.ts │ │ │ │ ├── useIsSimulator.ts │ │ │ │ ├── useKeyringMigrationPrompt.tsx │ │ │ │ ├── useLocale.ts │ │ │ │ ├── useMode.ts │ │ │ │ ├── useOpenDialog.ts │ │ │ │ ├── useOpenExternal.ts │ │ │ │ ├── usePersist.ts │ │ │ │ ├── usePersistState.ts │ │ │ │ ├── useSerializedNavigationState.ts │ │ │ │ ├── useShowDebugInformation.ts │ │ │ │ ├── useShowError.tsx │ │ │ │ ├── useShowSaveDialog.ts │ │ │ │ ├── useSkipMigration.ts │ │ │ │ ├── useTrans.ts │ │ │ │ └── useValidateChangePassphraseParams.tsx │ │ │ ├── index.ts │ │ │ ├── locales │ │ │ │ ├── README.md │ │ │ │ ├── af-ZA │ │ │ │ │ └── messages.po │ │ │ │ ├── ak-GH │ │ │ │ │ └── messages.po │ │ │ │ ├── ar-SA │ │ │ │ │ └── messages.po │ │ │ │ ├── be-BY │ │ │ │ │ └── messages.po │ │ │ │ ├── bg-BG │ │ │ │ │ └── messages.po │ │ │ │ ├── bn-BD │ │ │ │ │ └── messages.po │ │ │ │ ├── bn-IN │ │ │ │ │ └── messages.po │ │ │ │ ├── bs-BA │ │ │ │ │ └── messages.po │ │ │ │ ├── ca-ES │ │ │ │ │ └── messages.po │ │ │ │ ├── cs-CZ │ │ │ │ │ └── messages.po │ │ │ │ ├── cy-GB │ │ │ │ │ └── messages.po │ │ │ │ ├── da-DK │ │ │ │ │ └── messages.po │ │ │ │ ├── de-DE │ │ │ │ │ └── messages.po │ │ │ │ ├── el-GR │ │ │ │ │ └── messages.po │ │ │ │ ├── en-AU │ │ │ │ │ └── messages.po │ │ │ │ ├── en-NZ │ │ │ │ │ └── messages.po │ │ │ │ ├── en-PT │ │ │ │ │ └── messages.po │ │ │ │ ├── en-US │ │ │ │ │ └── messages.po │ │ │ │ ├── eo-UY │ │ │ │ │ └── messages.po │ │ │ │ ├── es-AR │ │ │ │ │ └── messages.po │ │ │ │ ├── es-ES │ │ │ │ │ └── messages.po │ │ │ │ ├── es-MX │ │ │ │ │ └── messages.po │ │ │ │ ├── fa-IR │ │ │ │ │ └── messages.po │ │ │ │ ├── fi-FI │ │ │ │ │ └── messages.po │ │ │ │ ├── fr-FR │ │ │ │ │ └── messages.po │ │ │ │ ├── he-IL │ │ │ │ │ └── messages.po │ │ │ │ ├── hi-IN │ │ │ │ │ └── messages.po │ │ │ │ ├── hr-HR │ │ │ │ │ └── messages.po │ │ │ │ ├── hu-HU │ │ │ │ │ └── messages.po │ │ │ │ ├── id-ID │ │ │ │ │ └── messages.po │ │ │ │ ├── index.ts │ │ │ │ ├── is-IS │ │ │ │ │ └── messages.po │ │ │ │ ├── it-IT │ │ │ │ │ └── messages.po │ │ │ │ ├── ja-JP │ │ │ │ │ └── messages.po │ │ │ │ ├── km-KH │ │ │ │ │ └── messages.po │ │ │ │ ├── ko-KR │ │ │ │ │ └── messages.po │ │ │ │ ├── lol-US │ │ │ │ │ └── messages.po │ │ │ │ ├── lt-LT │ │ │ │ │ └── messages.po │ │ │ │ ├── lv-LV │ │ │ │ │ └── messages.po │ │ │ │ ├── mk-MK │ │ │ │ │ └── messages.po │ │ │ │ ├── mn-MN │ │ │ │ │ └── messages.po │ │ │ │ ├── nl-NL │ │ │ │ │ └── messages.po │ │ │ │ ├── no-NO │ │ │ │ │ └── messages.po │ │ │ │ ├── pa-IN │ │ │ │ │ └── messages.po │ │ │ │ ├── pl-PL │ │ │ │ │ └── messages.po │ │ │ │ ├── pt-BR │ │ │ │ │ └── messages.po │ │ │ │ ├── pt-PT │ │ │ │ │ └── messages.po │ │ │ │ ├── ro-RO │ │ │ │ │ └── messages.po │ │ │ │ ├── ru-RU │ │ │ │ │ └── messages.po │ │ │ │ ├── si-LK │ │ │ │ │ └── messages.po │ │ │ │ ├── sk-SK │ │ │ │ │ └── messages.po │ │ │ │ ├── sl-SI │ │ │ │ │ └── messages.po │ │ │ │ ├── sq-AL │ │ │ │ │ └── messages.po │ │ │ │ ├── sr-SP │ │ │ │ │ └── messages.po │ │ │ │ ├── sv-SE │ │ │ │ │ └── messages.po │ │ │ │ ├── th-TH │ │ │ │ │ └── messages.po │ │ │ │ ├── tlh-AA │ │ │ │ │ └── messages.po │ │ │ │ ├── tr-TR │ │ │ │ │ └── messages.po │ │ │ │ ├── uk-UA │ │ │ │ │ └── messages.po │ │ │ │ ├── vi-VN │ │ │ │ │ └── messages.po │ │ │ │ ├── zh-CN │ │ │ │ │ └── messages.po │ │ │ │ └── zh-TW │ │ │ │ │ └── messages.po │ │ │ ├── screens │ │ │ │ ├── SelectKey │ │ │ │ │ ├── SelectKey.tsx │ │ │ │ │ ├── SelectKeyDeleteKeyDialog.tsx │ │ │ │ │ ├── SelectKeyDetailDialog.tsx │ │ │ │ │ ├── SelectKeyItem.tsx │ │ │ │ │ ├── SelectKeyRenameForm.tsx │ │ │ │ │ ├── WalletDeleteDialog.tsx │ │ │ │ │ ├── WalletStatus.tsx │ │ │ │ │ ├── WalletStatusHeight.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── theme │ │ │ │ ├── dark.ts │ │ │ │ ├── default.ts │ │ │ │ ├── index.ts │ │ │ │ └── light.ts │ │ │ └── utils │ │ │ │ ├── activateLocale.ts │ │ │ │ ├── bigNumberToLocaleString.ts │ │ │ │ ├── blockHeightToTimestamp.ts │ │ │ │ ├── blockRewards.ts │ │ │ │ ├── catToMojo.ts │ │ │ │ ├── getPercentPointsSuccessfull.ts │ │ │ │ ├── getPoolInfo.ts │ │ │ │ ├── getTransactionResult.ts │ │ │ │ ├── getUnit │ │ │ │ ├── getUnitValue.ts │ │ │ │ ├── getWalletSyncingStatus.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isWindows.ts │ │ │ │ ├── mojoToCAT.ts │ │ │ │ ├── mojoToCATLocaleString.ts │ │ │ │ ├── mojoToTaco.ts │ │ │ │ ├── mojoToTacoLocaleString.ts │ │ │ │ ├── normalizePoolState.ts │ │ │ │ ├── removeOldPoints.ts │ │ │ │ ├── sleep.ts │ │ │ │ ├── tacoFormatter.ts │ │ │ │ ├── tacoToMojo.ts │ │ │ │ ├── useColorModeValue.ts │ │ │ │ └── validAddress.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── gui │ │ ├── .env.example │ │ ├── .linguirc │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── entitlements.mac.plist │ │ ├── installer.nsh │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── playwright.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── remote.md │ │ ├── src │ │ │ ├── @types │ │ │ │ ├── Driver.ts │ │ │ │ ├── OfferBuilderData.ts │ │ │ │ └── OfferSummary.ts │ │ │ ├── assets │ │ │ │ ├── fonts │ │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ │ ├── ionicons.eot │ │ │ │ │ ├── ionicons.svg │ │ │ │ │ ├── ionicons.ttf │ │ │ │ │ ├── ionicons.woff │ │ │ │ │ └── ionicons.woff2 │ │ │ │ └── img │ │ │ │ │ ├── audio-blob.svg │ │ │ │ │ ├── audio-small.svg │ │ │ │ │ ├── audio.png │ │ │ │ │ ├── audio.svg │ │ │ │ │ ├── audio_dark.png │ │ │ │ │ ├── circle-cropped.png │ │ │ │ │ ├── document-blob.svg │ │ │ │ │ ├── document-small.svg │ │ │ │ │ ├── document.png │ │ │ │ │ ├── document_dark.png │ │ │ │ │ ├── farm_sidebar.svg │ │ │ │ │ ├── help_sidebar.svg │ │ │ │ │ ├── home_sidebar.svg │ │ │ │ │ ├── image.png │ │ │ │ │ ├── image_dark.png │ │ │ │ │ ├── model-blob.svg │ │ │ │ │ ├── model-small.svg │ │ │ │ │ ├── model.png │ │ │ │ │ ├── model_dark.png │ │ │ │ │ ├── nft-small-frame.svg │ │ │ │ │ ├── noun_Farm.svg │ │ │ │ │ ├── plot_sidebar.svg │ │ │ │ │ ├── pool_sidebar.svg │ │ │ │ │ ├── taco.icns │ │ │ │ │ ├── taco.ico │ │ │ │ │ ├── taco.png │ │ │ │ │ ├── taco64x64.png │ │ │ │ │ ├── taco_circle.png │ │ │ │ │ ├── taco_circle.svg │ │ │ │ │ ├── taco_logo.svg │ │ │ │ │ ├── unknown-blob.svg │ │ │ │ │ ├── unknown-small.svg │ │ │ │ │ ├── unknown.png │ │ │ │ │ ├── unknown_dark.png │ │ │ │ │ ├── video-blob.svg │ │ │ │ │ ├── video-small.svg │ │ │ │ │ ├── video.png │ │ │ │ │ ├── video_dark.png │ │ │ │ │ └── wallet_sidebar.svg │ │ │ ├── components │ │ │ │ ├── about │ │ │ │ │ └── About.tsx │ │ │ │ ├── app │ │ │ │ │ ├── App.tsx │ │ │ │ │ ├── AppAutoLogin.tsx │ │ │ │ │ ├── AppKeyringMigrator.tsx │ │ │ │ │ ├── AppPassPrompt.tsx │ │ │ │ │ ├── AppProviders.tsx │ │ │ │ │ ├── AppRouter.tsx │ │ │ │ │ ├── AppSelectMode.tsx │ │ │ │ │ ├── AppState.tsx │ │ │ │ │ └── AppStatusHeader.tsx │ │ │ │ ├── backup │ │ │ │ │ ├── BackupCreate.tsx │ │ │ │ │ └── BackupRestore.tsx │ │ │ │ ├── block │ │ │ │ │ ├── Block.jsx │ │ │ │ │ ├── BlockTitle.tsx │ │ │ │ │ ├── FarmManageFarmingRewards.tsx │ │ │ │ │ └── FullNodeAddConnection.tsx │ │ │ │ ├── dashboard │ │ │ │ │ ├── DashboardLayout.tsx │ │ │ │ │ └── DashboardSideBar.tsx │ │ │ │ ├── farm │ │ │ │ │ ├── Farm.tsx │ │ │ │ │ ├── FarmCloseConnection.tsx │ │ │ │ │ ├── FarmFullNodeConnections.tsx │ │ │ │ │ ├── FarmHeader.tsx │ │ │ │ │ ├── FarmHero.tsx │ │ │ │ │ ├── FarmLastAttemptedProof.tsx │ │ │ │ │ ├── FarmLatestBlockChallenges.tsx │ │ │ │ │ ├── FarmManageFarmingRewards.tsx │ │ │ │ │ ├── FarmYourHarvesterNetwork.tsx │ │ │ │ │ ├── FarmerStatus.tsx │ │ │ │ │ └── card │ │ │ │ │ │ ├── FarmCardBlockRewards.tsx │ │ │ │ │ │ ├── FarmCardExpectedTimeToWin.tsx │ │ │ │ │ │ ├── FarmCardLastHeightFarmed.tsx │ │ │ │ │ │ ├── FarmCardNotAvailable.tsx │ │ │ │ │ │ ├── FarmCardPlotCount.tsx │ │ │ │ │ │ ├── FarmCardStatus.tsx │ │ │ │ │ │ ├── FarmCardTotalNetworkSpace.tsx │ │ │ │ │ │ ├── FarmCardTotalSizeOfPlots.tsx │ │ │ │ │ │ ├── FarmCardTotalTacoFarmed.tsx │ │ │ │ │ │ ├── FarmCardUserFees.tsx │ │ │ │ │ │ └── FarmCards.tsx │ │ │ │ ├── fullNode │ │ │ │ │ ├── FullNode.jsx │ │ │ │ │ ├── FullNodeAddConnection.tsx │ │ │ │ │ ├── FullNodeBlockSearch.tsx │ │ │ │ │ ├── FullNodeCloseConnection.tsx │ │ │ │ │ ├── FullNodeConnections.tsx │ │ │ │ │ ├── FullNodeStateIndicator.tsx │ │ │ │ │ └── card │ │ │ │ │ │ ├── FullNodeCardConnectionStatus.tsx │ │ │ │ │ │ ├── FullNodeCardDifficulty.tsx │ │ │ │ │ │ ├── FullNodeCardNetworkName.tsx │ │ │ │ │ │ ├── FullNodeCardPeakHeight.tsx │ │ │ │ │ │ ├── FullNodeCardPeakTime.tsx │ │ │ │ │ │ ├── FullNodeCardStatus.tsx │ │ │ │ │ │ ├── FullNodeCardTotalIterations.tsx │ │ │ │ │ │ ├── FullNodeCardVDFSubSlotIterations.tsx │ │ │ │ │ │ ├── FullNodeCards.tsx │ │ │ │ │ │ └── FullNodeEstimatedNetworkSpace.tsx │ │ │ │ ├── nfts │ │ │ │ │ ├── NFTBurnDialog.tsx │ │ │ │ │ ├── NFTCard.tsx │ │ │ │ │ ├── NFTCardLazy.tsx │ │ │ │ │ ├── NFTContextualActions.tsx │ │ │ │ │ ├── NFTDetails.tsx │ │ │ │ │ ├── NFTMoveToProfileDialog.tsx │ │ │ │ │ ├── NFTPreview.tsx │ │ │ │ │ ├── NFTPreviewDialog.tsx │ │ │ │ │ ├── NFTProfileDropdown.tsx │ │ │ │ │ ├── NFTProgressBar.tsx │ │ │ │ │ ├── NFTProperties.tsx │ │ │ │ │ ├── NFTRankings.tsx │ │ │ │ │ ├── NFTSummary.tsx │ │ │ │ │ ├── NFTTitle.tsx │ │ │ │ │ ├── NFTTransferAction.tsx │ │ │ │ │ ├── NFTTransferConfirmationDialog.tsx │ │ │ │ │ ├── NFTs.tsx │ │ │ │ │ ├── detail │ │ │ │ │ │ ├── NFTDetail.tsx │ │ │ │ │ │ └── NFTDetailV2.tsx │ │ │ │ │ ├── gallery │ │ │ │ │ │ ├── NFTGallery.tsx │ │ │ │ │ │ ├── NFTGalleryHero.svg │ │ │ │ │ │ ├── NFTGalleryHero.tsx │ │ │ │ │ │ ├── NFTGalleryHeroDark.svg │ │ │ │ │ │ ├── NFTGallerySearch.tsx │ │ │ │ │ │ └── NFTGallerySidebar.tsx │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── offers │ │ │ │ │ ├── NFTOfferEditor.tsx │ │ │ │ │ ├── NFTOfferExchangeType.ts │ │ │ │ │ ├── NFTOfferPreview.tsx │ │ │ │ │ ├── NFTOfferTokenSelector.tsx │ │ │ │ │ ├── NFTOfferViewer.tsx │ │ │ │ │ ├── OfferAcceptConfirmationDialog.tsx │ │ │ │ │ ├── OfferAsset.ts │ │ │ │ │ ├── OfferAssetSelector.tsx │ │ │ │ │ ├── OfferDataDialog.tsx │ │ │ │ │ ├── OfferDataEntryDialog.tsx │ │ │ │ │ ├── OfferEditor.tsx │ │ │ │ │ ├── OfferEditorConditionsPanel.tsx │ │ │ │ │ ├── OfferEditorConfirmationDialog.tsx │ │ │ │ │ ├── OfferEditorRowData.ts │ │ │ │ │ ├── OfferExchangeRate.tsx │ │ │ │ │ ├── OfferHeader.tsx │ │ │ │ │ ├── OfferImport.tsx │ │ │ │ │ ├── OfferLocalStorage.ts │ │ │ │ │ ├── OfferManager.tsx │ │ │ │ │ ├── OfferRowData.tsx │ │ │ │ │ ├── OfferShareDialog.tsx │ │ │ │ │ ├── OfferState.ts │ │ │ │ │ ├── OfferSummary.tsx │ │ │ │ │ ├── OfferSummaryRow.tsx │ │ │ │ │ ├── OfferViewer.tsx │ │ │ │ │ ├── OfferViewerTitle.tsx │ │ │ │ │ └── utils.ts │ │ │ │ ├── offers2 │ │ │ │ │ ├── CreateOfferBuilder.tsx │ │ │ │ │ ├── OfferBuilder.tsx │ │ │ │ │ ├── OfferBuilderAmountWithRoyalties.tsx │ │ │ │ │ ├── OfferBuilderContext.tsx │ │ │ │ │ ├── OfferBuilderFeeSection.tsx │ │ │ │ │ ├── OfferBuilderHeader.tsx │ │ │ │ │ ├── OfferBuilderImport.tsx │ │ │ │ │ ├── OfferBuilderNFT.tsx │ │ │ │ │ ├── OfferBuilderNFTProvenance.tsx │ │ │ │ │ ├── OfferBuilderNFTRoyalties.tsx │ │ │ │ │ ├── OfferBuilderNFTSection.tsx │ │ │ │ │ ├── OfferBuilderProvider.tsx │ │ │ │ │ ├── OfferBuilderRoyaltyPayouts.tsx │ │ │ │ │ ├── OfferBuilderSection.tsx │ │ │ │ │ ├── OfferBuilderSectionCard.tsx │ │ │ │ │ ├── OfferBuilderToken.tsx │ │ │ │ │ ├── OfferBuilderTokenSelector.tsx │ │ │ │ │ ├── OfferBuilderTokensSection.tsx │ │ │ │ │ ├── OfferBuilderTradeColumn.tsx │ │ │ │ │ ├── OfferBuilderValue.tsx │ │ │ │ │ ├── OfferBuilderViewer.tsx │ │ │ │ │ ├── OfferBuilderWalletAmount.tsx │ │ │ │ │ ├── OfferBuilderWalletBalance.tsx │ │ │ │ │ ├── OfferBuilderXTXSection.tsx │ │ │ │ │ ├── OfferNavigationHeader.tsx │ │ │ │ │ ├── images │ │ │ │ │ │ ├── importOfferBackground.svg │ │ │ │ │ │ └── offerFileIcon.svg │ │ │ │ │ └── mockedDefaultValue.ts │ │ │ │ ├── plot │ │ │ │ │ ├── Plot.tsx │ │ │ │ │ ├── PlotAction.tsx │ │ │ │ │ ├── PlotAddDirectoryDialog.tsx │ │ │ │ │ ├── PlotHarvester.tsx │ │ │ │ │ ├── PlotHarvesterPlots.tsx │ │ │ │ │ ├── PlotHarvesterPlotsDuplicate.tsx │ │ │ │ │ ├── PlotHarvesterPlotsFailed.tsx │ │ │ │ │ ├── PlotHarvesterPlotsNotFound.tsx │ │ │ │ │ ├── PlotHarvesterState.tsx │ │ │ │ │ ├── PlotHarvesters.tsx │ │ │ │ │ ├── PlotHeader.tsx │ │ │ │ │ ├── PlotPlotting.tsx │ │ │ │ │ ├── PlotStatus.tsx │ │ │ │ │ ├── add │ │ │ │ │ │ ├── PlotAdd.tsx │ │ │ │ │ │ ├── PlotAddChoosePlotter.tsx │ │ │ │ │ │ ├── PlotAddChooseSize.tsx │ │ │ │ │ │ ├── PlotAddForm.tsx │ │ │ │ │ │ ├── PlotAddNFT.tsx │ │ │ │ │ │ ├── PlotAddNumberOfPlots.tsx │ │ │ │ │ │ ├── PlotAddSelectFinalDirectory.tsx │ │ │ │ │ │ └── PlotAddSelectTemporaryDirectory.tsx │ │ │ │ │ ├── card │ │ │ │ │ │ ├── PlotCardNotFound.tsx │ │ │ │ │ │ ├── PlotCardPlotsDuplicate.tsx │ │ │ │ │ │ ├── PlotCardPlotsFailedToOpen.tsx │ │ │ │ │ │ ├── PlotCardTotalHarvesters.tsx │ │ │ │ │ │ ├── PlotCardTotalPlots.tsx │ │ │ │ │ │ └── PlotCardTotalPlotsSize.tsx │ │ │ │ │ ├── overview │ │ │ │ │ │ ├── PlotOverview.tsx │ │ │ │ │ │ ├── PlotOverviewCards.tsx │ │ │ │ │ │ ├── PlotOverviewHero.tsx │ │ │ │ │ │ └── PlotOverviewPlots.tsx │ │ │ │ │ └── queue │ │ │ │ │ │ ├── PlotQueueActions.tsx │ │ │ │ │ │ ├── PlotQueueIndicator.tsx │ │ │ │ │ │ ├── PlotQueueLogDialog.tsx │ │ │ │ │ │ └── PlotQueueSize.tsx │ │ │ │ ├── plotNFT │ │ │ │ │ ├── PlotExternalNFTCard.tsx │ │ │ │ │ ├── PlotNFTAbsorbRewards.tsx │ │ │ │ │ ├── PlotNFTAdd.tsx │ │ │ │ │ ├── PlotNFTCard.tsx │ │ │ │ │ ├── PlotNFTChangePool.tsx │ │ │ │ │ ├── PlotNFTExternalState.tsx │ │ │ │ │ ├── PlotNFTGetPoolLoginLinkDialog.tsx │ │ │ │ │ ├── PlotNFTGraph.tsx │ │ │ │ │ ├── PlotNFTName.tsx │ │ │ │ │ ├── PlotNFTPayoutInstructionsDialog.tsx │ │ │ │ │ ├── PlotNFTState.tsx │ │ │ │ │ ├── PlotNFTUnconfirmedCard.tsx │ │ │ │ │ └── select │ │ │ │ │ │ ├── PlotNFTSelectBase.tsx │ │ │ │ │ │ ├── PlotNFTSelectFaucet.tsx │ │ │ │ │ │ └── PlotNFTSelectPool.tsx │ │ │ │ ├── pool │ │ │ │ │ ├── Pool.tsx │ │ │ │ │ ├── PoolAbsorbRewards.tsx │ │ │ │ │ ├── PoolHeader.tsx │ │ │ │ │ ├── PoolHero.tsx │ │ │ │ │ ├── PoolInfo.tsx │ │ │ │ │ ├── PoolJoin.tsx │ │ │ │ │ └── PoolOverview.tsx │ │ │ │ └── settings │ │ │ │ │ ├── ChangePassphrasePrompt.tsx │ │ │ │ │ ├── IdentitiesPanel.tsx │ │ │ │ │ ├── LimitCacheSize.tsx │ │ │ │ │ ├── ProfileAdd.tsx │ │ │ │ │ ├── ProfileView.tsx │ │ │ │ │ ├── RemovePassphrasePrompt.tsx │ │ │ │ │ ├── SetPassphrasePrompt.tsx │ │ │ │ │ ├── Settings.tsx │ │ │ │ │ ├── SettingsDataLayer.tsx │ │ │ │ │ ├── SettingsDerivationIndex.tsx │ │ │ │ │ ├── SettingsGeneral.tsx │ │ │ │ │ ├── SettingsNFT.tsx │ │ │ │ │ ├── SettingsPanel.tsx │ │ │ │ │ ├── SettingsProfiles.tsx │ │ │ │ │ └── SettingsStartup.tsx │ │ │ ├── config │ │ │ │ ├── config.js │ │ │ │ ├── env.ts │ │ │ │ └── locales.ts │ │ │ ├── constants │ │ │ │ ├── FarmerStatus.ts │ │ │ │ ├── FullNodeState.ts │ │ │ │ ├── ModeServices.ts │ │ │ │ ├── OfferBuilderSectionType.ts │ │ │ │ ├── OfferBuilderTradeSide.ts │ │ │ │ ├── PlotNFTState.ts │ │ │ │ ├── PlotStatus.ts │ │ │ │ ├── PlotterName.ts │ │ │ │ ├── Plotters.ts │ │ │ │ ├── SyncingStatus.ts │ │ │ │ ├── TransactionType.ts │ │ │ │ ├── plotLocalStorage.ts │ │ │ │ ├── plotSizes.ts │ │ │ │ └── style.ts │ │ │ ├── electron │ │ │ │ ├── handleSquirrelEvent.ts │ │ │ │ ├── main.tsx │ │ │ │ └── preload.js │ │ │ ├── fonts.d.ts │ │ │ ├── hooks │ │ │ │ ├── useAbsorbRewards.tsx │ │ │ │ ├── useAcceptOfferHook.tsx │ │ │ │ ├── useAssetIdName.ts │ │ │ │ ├── useBurnAddress.ts │ │ │ │ ├── useEnableAutoLogin.ts │ │ │ │ ├── useEnableDataLayerService.ts │ │ │ │ ├── useEnableFilePropagationServer.ts │ │ │ │ ├── useFarmerStatus.ts │ │ │ │ ├── useFetchNFTs.ts │ │ │ │ ├── useFullNodeState.ts │ │ │ │ ├── useHiddenNFTs.ts │ │ │ │ ├── useHideObjectionableContent.ts │ │ │ │ ├── useIntersectionObserver.ts │ │ │ │ ├── useIsMainnet.tsx │ │ │ │ ├── useJoinPool.tsx │ │ │ │ ├── useNFTMetadata.ts │ │ │ │ ├── useNFTMinterDID.ts │ │ │ │ ├── useNachoNFTs.ts │ │ │ │ ├── useOfferBuilderContext.ts │ │ │ │ ├── useOpenExternal.ts │ │ │ │ ├── useOpenUnsafeLink.tsx │ │ │ │ ├── usePayoutAddress.ts │ │ │ │ ├── usePlotNFTDetails.ts │ │ │ │ ├── usePlotNFTExternalDetails.ts │ │ │ │ ├── usePlotNFTName.ts │ │ │ │ ├── usePlotNFTs.ts │ │ │ │ ├── usePoolInfo.ts │ │ │ │ ├── useSaveOfferFile.ts │ │ │ │ ├── useSelectDirectory.tsx │ │ │ │ ├── useSelectFile.tsx │ │ │ │ ├── useStandardWallet.ts │ │ │ │ ├── useThrottleSelector.ts │ │ │ │ ├── useUnconfirmedPlotNFTs.ts │ │ │ │ ├── useVerifyHash.ts │ │ │ │ ├── useViewNFTOnExplorer.ts │ │ │ │ └── useWalletOffers.ts │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── locales │ │ │ │ ├── af-ZA │ │ │ │ │ └── messages.po │ │ │ │ ├── ak-GH │ │ │ │ │ └── messages.po │ │ │ │ ├── ar-SA │ │ │ │ │ └── messages.po │ │ │ │ ├── be-BY │ │ │ │ │ └── messages.po │ │ │ │ ├── bg-BG │ │ │ │ │ └── messages.po │ │ │ │ ├── bn-BD │ │ │ │ │ └── messages.po │ │ │ │ ├── bn-IN │ │ │ │ │ └── messages.po │ │ │ │ ├── bs-BA │ │ │ │ │ └── messages.po │ │ │ │ ├── ca-ES │ │ │ │ │ └── messages.po │ │ │ │ ├── cs-CZ │ │ │ │ │ └── messages.po │ │ │ │ ├── cy-GB │ │ │ │ │ └── messages.po │ │ │ │ ├── da-DK │ │ │ │ │ └── messages.po │ │ │ │ ├── de-DE │ │ │ │ │ └── messages.po │ │ │ │ ├── el-GR │ │ │ │ │ └── messages.po │ │ │ │ ├── en-AU │ │ │ │ │ └── messages.po │ │ │ │ ├── en-NZ │ │ │ │ │ └── messages.po │ │ │ │ ├── en-PT │ │ │ │ │ └── messages.po │ │ │ │ ├── en-US │ │ │ │ │ └── messages.po │ │ │ │ ├── eo-UY │ │ │ │ │ └── messages.po │ │ │ │ ├── es-AR │ │ │ │ │ └── messages.po │ │ │ │ ├── es-ES │ │ │ │ │ └── messages.po │ │ │ │ ├── es-MX │ │ │ │ │ └── messages.po │ │ │ │ ├── fa-IR │ │ │ │ │ └── messages.po │ │ │ │ ├── fi-FI │ │ │ │ │ └── messages.po │ │ │ │ ├── fr-FR │ │ │ │ │ └── messages.po │ │ │ │ ├── he-IL │ │ │ │ │ └── messages.po │ │ │ │ ├── hi-IN │ │ │ │ │ └── messages.po │ │ │ │ ├── hr-HR │ │ │ │ │ └── messages.po │ │ │ │ ├── hu-HU │ │ │ │ │ └── messages.po │ │ │ │ ├── id-ID │ │ │ │ │ └── messages.po │ │ │ │ ├── index.ts │ │ │ │ ├── is-IS │ │ │ │ │ └── messages.po │ │ │ │ ├── it-IT │ │ │ │ │ └── messages.po │ │ │ │ ├── ja-JP │ │ │ │ │ └── messages.po │ │ │ │ ├── km-KH │ │ │ │ │ └── messages.po │ │ │ │ ├── ko-KR │ │ │ │ │ └── messages.po │ │ │ │ ├── lol-US │ │ │ │ │ └── messages.po │ │ │ │ ├── lt-LT │ │ │ │ │ └── messages.po │ │ │ │ ├── lv-LV │ │ │ │ │ └── messages.po │ │ │ │ ├── mk-MK │ │ │ │ │ └── messages.po │ │ │ │ ├── mn-MN │ │ │ │ │ └── messages.po │ │ │ │ ├── nl-NL │ │ │ │ │ └── messages.po │ │ │ │ ├── no-NO │ │ │ │ │ └── messages.po │ │ │ │ ├── pa-IN │ │ │ │ │ └── messages.po │ │ │ │ ├── pl-PL │ │ │ │ │ └── messages.po │ │ │ │ ├── pt-BR │ │ │ │ │ └── messages.po │ │ │ │ ├── pt-PT │ │ │ │ │ └── messages.po │ │ │ │ ├── ro-RO │ │ │ │ │ └── messages.po │ │ │ │ ├── ru-RU │ │ │ │ │ └── messages.po │ │ │ │ ├── si-LK │ │ │ │ │ └── messages.po │ │ │ │ ├── sk-SK │ │ │ │ │ └── messages.po │ │ │ │ ├── sl-SI │ │ │ │ │ └── messages.po │ │ │ │ ├── sq-AL │ │ │ │ │ └── messages.po │ │ │ │ ├── sr-SP │ │ │ │ │ └── messages.po │ │ │ │ ├── sv-SE │ │ │ │ │ └── messages.po │ │ │ │ ├── th-TH │ │ │ │ │ └── messages.po │ │ │ │ ├── tlh-AA │ │ │ │ │ └── messages.po │ │ │ │ ├── tr-TR │ │ │ │ │ └── messages.po │ │ │ │ ├── uk-UA │ │ │ │ │ └── messages.po │ │ │ │ ├── vi-VN │ │ │ │ │ └── messages.po │ │ │ │ ├── zh-CN │ │ │ │ │ └── messages.po │ │ │ │ └── zh-TW │ │ │ │ │ └── messages.po │ │ │ ├── logo.svg │ │ │ ├── polyfill.ts │ │ │ ├── react-app-env.d.ts │ │ │ ├── readme.md │ │ │ ├── tests │ │ │ │ └── util │ │ │ │ │ ├── units.test.js │ │ │ │ │ └── utils.test.js │ │ │ ├── types │ │ │ │ ├── Block.ts │ │ │ │ ├── Challenge.ts │ │ │ │ ├── Coin.ts │ │ │ │ ├── CoinSolution.ts │ │ │ │ ├── Connection.ts │ │ │ │ ├── FarmingInfo.ts │ │ │ │ ├── Fingerprint.ts │ │ │ │ ├── Foliage.ts │ │ │ │ ├── FoliageTransactionBlock.ts │ │ │ │ ├── G2Element.ts │ │ │ │ ├── Header.ts │ │ │ │ ├── InitialTargetState.ts │ │ │ │ ├── NFTSelection.tsx │ │ │ │ ├── Peak.ts │ │ │ │ ├── Plot.ts │ │ │ │ ├── PlotAdd.ts │ │ │ │ ├── PlotNFT.ts │ │ │ │ ├── PlotNFTExternal.ts │ │ │ │ ├── PlotQueueItem.ts │ │ │ │ ├── Plotter.ts │ │ │ │ ├── Point.ts │ │ │ │ ├── PoolInfo.ts │ │ │ │ ├── PoolState.ts │ │ │ │ ├── PoolWalletStatus.ts │ │ │ │ ├── Program.ts │ │ │ │ ├── ProofsOfSpace.ts │ │ │ │ ├── SignagePoint.ts │ │ │ │ ├── SpendBundle.ts │ │ │ │ ├── SubBlock.ts │ │ │ │ ├── Transaction.ts │ │ │ │ ├── UnconfirmedPlotNFT.ts │ │ │ │ ├── Wallet.ts │ │ │ │ └── WalletBalance.ts │ │ │ └── util │ │ │ │ ├── blockHeightToTimestamp.ts │ │ │ │ ├── computeHash.ts │ │ │ │ ├── createTransaction.ts │ │ │ │ ├── createWallet.ts │ │ │ │ ├── dids.ts │ │ │ │ ├── download.ts │ │ │ │ ├── english.js │ │ │ │ ├── findCATWalletByAssetId.test.ts │ │ │ │ ├── findCATWalletByAssetId.ts │ │ │ │ ├── getDescriptiveError.ts │ │ │ │ ├── getPercentPointsSuccessfull.ts │ │ │ │ ├── getPoolInfo.ts │ │ │ │ ├── getRemoteFileContent.ts │ │ │ │ ├── getUnknownCATs.test.ts │ │ │ │ ├── getUnknownCATs.ts │ │ │ │ ├── getWalletSyncingStatus.ts │ │ │ │ ├── hasSpendableBalance.ts │ │ │ │ ├── isContentHashValid.ts │ │ │ │ ├── isLocalhost.ts │ │ │ │ ├── isRankingAttribute.ts │ │ │ │ ├── isWindows.ts │ │ │ │ ├── loadConfig.ts │ │ │ │ ├── manageDaemonLifetime.ts │ │ │ │ ├── mergeArrayItem.ts │ │ │ │ ├── mergeArrays.ts │ │ │ │ ├── nfts.ts │ │ │ │ ├── normalizePoolState.ts │ │ │ │ ├── normalizeUrl.ts │ │ │ │ ├── offerBuilderDataToOffer.ts │ │ │ │ ├── offerToOfferBuilderData.ts │ │ │ │ ├── plot_sizes.js │ │ │ │ ├── prepareNFTOffer.ts │ │ │ │ ├── removeOldPoints.ts │ │ │ │ ├── service_names.js │ │ │ │ ├── sleep.ts │ │ │ │ ├── tacoEnvironment.js │ │ │ │ ├── transaction_result.js │ │ │ │ ├── trie.js │ │ │ │ ├── units.js │ │ │ │ ├── untildify.ts │ │ │ │ ├── userData.ts │ │ │ │ ├── utils.js │ │ │ │ └── wallet_types.js │ │ ├── tacoblockchain.provisionprofile │ │ ├── tests │ │ │ ├── data_fixtures │ │ │ │ └── data.json │ │ │ ├── data_object_model │ │ │ │ ├── passphrase_login.ts │ │ │ │ └── send_funds.ts │ │ │ ├── offers │ │ │ │ ├── offer_page.spec.ts │ │ │ │ └── offer_page_negative.spec.ts │ │ │ ├── select_key_page │ │ │ │ ├── create_page.spec.ts │ │ │ │ ├── read_file_test.spec.ts │ │ │ │ └── rename_wallet.spec.ts │ │ │ ├── settings │ │ │ │ ├── auto_login.spec.ts │ │ │ │ ├── data_layer_test.spec.ts │ │ │ │ ├── passphrase_test.spec.ts │ │ │ │ └── settings_test.spec.ts │ │ │ ├── tokens │ │ │ │ ├── receive_generatenew_address.spec.ts │ │ │ │ ├── receive_txch.spec.ts │ │ │ │ ├── send_amount_greater.spec.ts │ │ │ │ ├── send_error_page.spec.ts │ │ │ │ ├── send_fee_greater.spec.ts │ │ │ │ └── send_success_page.spec.ts │ │ │ └── utils │ │ │ │ └── wallet.ts │ │ ├── tsconfig.json │ │ ├── webpack.electron.babel.ts │ │ └── webpack.react.babel.ts │ ├── icons │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src │ │ │ ├── Farm.tsx │ │ │ ├── Farming.tsx │ │ │ ├── Fees.tsx │ │ │ ├── FullNode.tsx │ │ │ ├── Home.tsx │ │ │ ├── Keys.tsx │ │ │ ├── Link.tsx │ │ │ ├── NFTs.tsx │ │ │ ├── Offering.tsx │ │ │ ├── Offers.tsx │ │ │ ├── Plot.tsx │ │ │ ├── PlotHero.tsx │ │ │ ├── Plots.tsx │ │ │ ├── Pool.tsx │ │ │ ├── Pooling.tsx │ │ │ ├── Requesting.tsx │ │ │ ├── Settings.tsx │ │ │ ├── Status.tsx │ │ │ ├── Taco.tsx │ │ │ ├── Tokens.tsx │ │ │ ├── Trade.tsx │ │ │ ├── Wallet.tsx │ │ │ ├── images │ │ │ │ ├── Farming.svg │ │ │ │ ├── Fees.svg │ │ │ │ ├── FullNode.svg │ │ │ │ ├── LinkSmall.svg │ │ │ │ ├── NFTs.svg │ │ │ │ ├── NFTsSmall.svg │ │ │ │ ├── Offering.svg │ │ │ │ ├── Offers.svg │ │ │ │ ├── OffersSmall.svg │ │ │ │ ├── PlotHero.svg │ │ │ │ ├── Plots.svg │ │ │ │ ├── Pooling.svg │ │ │ │ ├── Requesting.svg │ │ │ │ ├── Tokens.svg │ │ │ │ ├── farm.svg │ │ │ │ ├── home.svg │ │ │ │ ├── keys.svg │ │ │ │ ├── plot.svg │ │ │ │ ├── pool.svg │ │ │ │ ├── settings.svg │ │ │ │ ├── taco.svg │ │ │ │ ├── trade.svg │ │ │ │ └── wallet.svg │ │ │ └── index.ts │ │ └── tsconfig.json │ └── wallets │ │ ├── .babelrc │ │ ├── .linguirc │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src │ │ ├── components │ │ │ ├── PasteMnemonic.tsx │ │ │ ├── Wallet.tsx │ │ │ ├── WalletAdd.tsx │ │ │ ├── WalletBadge.tsx │ │ │ ├── WalletCards.tsx │ │ │ ├── WalletConnections.tsx │ │ │ ├── WalletEmptyDialog.tsx │ │ │ ├── WalletGraph.tsx │ │ │ ├── WalletGraphTooltip.tsx │ │ │ ├── WalletHeader.tsx │ │ │ ├── WalletHistory.tsx │ │ │ ├── WalletIcon.tsx │ │ │ ├── WalletImport.tsx │ │ │ ├── WalletName.tsx │ │ │ ├── WalletReceiveAddress.tsx │ │ │ ├── WalletReceiveAddressField.tsx │ │ │ ├── WalletRenameDialog.tsx │ │ │ ├── WalletSend.tsx │ │ │ ├── WalletSendTransactionResultDialog.tsx │ │ │ ├── WalletStatus.tsx │ │ │ ├── WalletStatusHeight.tsx │ │ │ ├── WalletTab.tsx │ │ │ ├── WalletTokenCard.tsx │ │ │ ├── Wallets.tsx │ │ │ ├── WalletsDropdown.tsx │ │ │ ├── WalletsList.tsx │ │ │ ├── WalletsManageTokens.tsx │ │ │ ├── WalletsSidebar.tsx │ │ │ ├── card │ │ │ │ ├── WalletCardPendingBalance.tsx │ │ │ │ ├── WalletCardPendingChange.tsx │ │ │ │ ├── WalletCardPendingTotalBalance.tsx │ │ │ │ ├── WalletCardSpendableBalance.tsx │ │ │ │ └── WalletCardTotalBalance.tsx │ │ │ ├── cat │ │ │ │ ├── WalletCAT.tsx │ │ │ │ ├── WalletCATCreateExisting.tsx │ │ │ │ ├── WalletCATCreateExistingSimple.tsx │ │ │ │ ├── WalletCATCreateNew.tsx │ │ │ │ ├── WalletCATCreateSimple.tsx │ │ │ │ ├── WalletCATList.tsx │ │ │ │ ├── WalletCATSelect.tsx │ │ │ │ ├── WalletCATSend.tsx │ │ │ │ ├── WalletCATTAILDialog.tsx │ │ │ │ └── WalletDID.tsx │ │ │ ├── create │ │ │ │ ├── WalletCreate.jsx │ │ │ │ ├── WalletCreateCard.tsx │ │ │ │ ├── WalletCreateList.tsx │ │ │ │ ├── createRLAdmin.jsx │ │ │ │ └── createRLUser.jsx │ │ │ ├── did │ │ │ │ ├── WalletDID.tsx │ │ │ │ ├── WalletDIDCreate.tsx │ │ │ │ ├── WalletDIDList.tsx │ │ │ │ ├── WalletDIDRecovery.tsx │ │ │ │ └── WalletDIDSelect.tsx │ │ │ ├── hero │ │ │ │ ├── WalletHero.tsx │ │ │ │ ├── WalletHeroAdd.tsx │ │ │ │ ├── WalletHeroLayout.tsx │ │ │ │ └── WalletHeroWallets.tsx │ │ │ ├── index.ts │ │ │ ├── rateLimited │ │ │ │ └── WalletRateLimited.jsx │ │ │ └── standard │ │ │ │ ├── WalletStandard.tsx │ │ │ │ └── WalletStandardCards.tsx │ │ ├── constants │ │ │ ├── WalletName.ts │ │ │ └── index.ts │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useHiddenWallet.ts │ │ │ ├── useIsWalletSynced.ts │ │ │ ├── useWallet.ts │ │ │ ├── useWalletHumanValue.ts │ │ │ ├── useWalletState.ts │ │ │ ├── useWalletTransactions.ts │ │ │ └── useWalletsList.ts │ │ ├── index.ts │ │ ├── locales │ │ │ ├── README.md │ │ │ ├── af-ZA │ │ │ │ └── messages.po │ │ │ ├── ak-GH │ │ │ │ └── messages.po │ │ │ ├── ar-SA │ │ │ │ └── messages.po │ │ │ ├── be-BY │ │ │ │ └── messages.po │ │ │ ├── bg-BG │ │ │ │ └── messages.po │ │ │ ├── bn-BD │ │ │ │ └── messages.po │ │ │ ├── bn-IN │ │ │ │ └── messages.po │ │ │ ├── bs-BA │ │ │ │ └── messages.po │ │ │ ├── ca-ES │ │ │ │ └── messages.po │ │ │ ├── cs-CZ │ │ │ │ └── messages.po │ │ │ ├── cy-GB │ │ │ │ └── messages.po │ │ │ ├── da-DK │ │ │ │ └── messages.po │ │ │ ├── de-DE │ │ │ │ └── messages.po │ │ │ ├── el-GR │ │ │ │ └── messages.po │ │ │ ├── en-AU │ │ │ │ └── messages.po │ │ │ ├── en-NZ │ │ │ │ └── messages.po │ │ │ ├── en-PT │ │ │ │ └── messages.po │ │ │ ├── en-US │ │ │ │ └── messages.po │ │ │ ├── eo-UY │ │ │ │ └── messages.po │ │ │ ├── es-AR │ │ │ │ └── messages.po │ │ │ ├── es-ES │ │ │ │ └── messages.po │ │ │ ├── es-MX │ │ │ │ └── messages.po │ │ │ ├── fa-IR │ │ │ │ └── messages.po │ │ │ ├── fi-FI │ │ │ │ └── messages.po │ │ │ ├── fr-FR │ │ │ │ └── messages.po │ │ │ ├── he-IL │ │ │ │ └── messages.po │ │ │ ├── hi-IN │ │ │ │ └── messages.po │ │ │ ├── hr-HR │ │ │ │ └── messages.po │ │ │ ├── hu-HU │ │ │ │ └── messages.po │ │ │ ├── id-ID │ │ │ │ └── messages.po │ │ │ ├── index.ts │ │ │ ├── is-IS │ │ │ │ └── messages.po │ │ │ ├── it-IT │ │ │ │ └── messages.po │ │ │ ├── ja-JP │ │ │ │ └── messages.po │ │ │ ├── km-KH │ │ │ │ └── messages.po │ │ │ ├── ko-KR │ │ │ │ └── messages.po │ │ │ ├── lol-US │ │ │ │ └── messages.po │ │ │ ├── lt-LT │ │ │ │ └── messages.po │ │ │ ├── lv-LV │ │ │ │ └── messages.po │ │ │ ├── mk-MK │ │ │ │ └── messages.po │ │ │ ├── mn-MN │ │ │ │ └── messages.po │ │ │ ├── nl-NL │ │ │ │ └── messages.po │ │ │ ├── no-NO │ │ │ │ └── messages.po │ │ │ ├── pa-IN │ │ │ │ └── messages.po │ │ │ ├── pl-PL │ │ │ │ └── messages.po │ │ │ ├── pt-BR │ │ │ │ └── messages.po │ │ │ ├── pt-PT │ │ │ │ └── messages.po │ │ │ ├── ro-RO │ │ │ │ └── messages.po │ │ │ ├── ru-RU │ │ │ │ └── messages.po │ │ │ ├── si-LK │ │ │ │ └── messages.po │ │ │ ├── sk-SK │ │ │ │ └── messages.po │ │ │ ├── sl-SI │ │ │ │ └── messages.po │ │ │ ├── sq-AL │ │ │ │ └── messages.po │ │ │ ├── sr-SP │ │ │ │ └── messages.po │ │ │ ├── sv-SE │ │ │ │ └── messages.po │ │ │ ├── th-TH │ │ │ │ └── messages.po │ │ │ ├── tlh-AA │ │ │ │ └── messages.po │ │ │ ├── tr-TR │ │ │ │ └── messages.po │ │ │ ├── uk-UA │ │ │ │ └── messages.po │ │ │ ├── vi-VN │ │ │ │ └── messages.po │ │ │ ├── zh-CN │ │ │ │ └── messages.po │ │ │ └── zh-TW │ │ │ │ └── messages.po │ │ └── utils │ │ │ ├── getWalletPrimaryTitle.ts │ │ │ ├── getWalletSyncingStatus.ts │ │ │ ├── index.ts │ │ │ └── isCATWalletPresent.ts │ │ └── tsconfig.json └── src │ └── locales │ └── README.md ├── taco ├── __init__.py ├── clvm │ ├── __init__.py │ ├── singleton.py │ └── spend_sim.py ├── cmds │ ├── __init__.py │ ├── beta.py │ ├── beta_funcs.py │ ├── cmds_util.py │ ├── coin_funcs.py │ ├── coins.py │ ├── configure.py │ ├── data.py │ ├── data_funcs.py │ ├── db.py │ ├── db_backup_func.py │ ├── db_upgrade_func.py │ ├── db_validate_func.py │ ├── farm.py │ ├── farm_funcs.py │ ├── init.py │ ├── init_funcs.py │ ├── keys.py │ ├── keys_funcs.py │ ├── netspace.py │ ├── netspace_funcs.py │ ├── passphrase.py │ ├── passphrase_funcs.py │ ├── peer.py │ ├── peer_funcs.py │ ├── plotnft.py │ ├── plotnft_funcs.py │ ├── plots.py │ ├── plotters.py │ ├── rpc.py │ ├── show.py │ ├── show_funcs.py │ ├── start.py │ ├── start_funcs.py │ ├── stop.py │ ├── taco.py │ ├── units.py │ ├── wallet.py │ └── wallet_funcs.py ├── consensus │ ├── __init__.py │ ├── block_body_validation.py │ ├── block_creation.py │ ├── block_header_validation.py │ ├── block_record.py │ ├── block_rewards.py │ ├── block_root_validation.py │ ├── blockchain.py │ ├── blockchain_interface.py │ ├── coinbase.py │ ├── condition_costs.py │ ├── constants.py │ ├── cost_calculator.py │ ├── default_constants.py │ ├── deficit.py │ ├── difficulty_adjustment.py │ ├── find_fork_point.py │ ├── full_block_to_block_record.py │ ├── get_block_challenge.py │ ├── make_sub_epoch_summary.py │ ├── multiprocess_validation.py │ ├── pos_quality.py │ ├── pot_iterations.py │ └── vdf_info_computation.py ├── daemon │ ├── __init__.py │ ├── client.py │ ├── keychain_proxy.py │ ├── keychain_server.py │ ├── server.py │ └── windows_signal.py ├── data_layer │ ├── __init__.py │ ├── data_layer.py │ ├── data_layer_api.py │ ├── data_layer_errors.py │ ├── data_layer_server.py │ ├── data_layer_util.py │ ├── data_layer_wallet.py │ ├── data_store.py │ ├── dl_wallet_store.py │ ├── download_data.py │ └── util │ │ ├── __init__.py │ │ └── benchmark.py ├── farmer │ ├── __init__.py │ ├── farmer.py │ └── farmer_api.py ├── full_node │ ├── __init__.py │ ├── bitcoin_fee_estimator.py │ ├── block_height_map.py │ ├── block_store.py │ ├── bundle_tools.py │ ├── coin_store.py │ ├── fee_estimate.py │ ├── fee_estimate_store.py │ ├── fee_estimation.py │ ├── fee_estimator.py │ ├── fee_estimator_constants.py │ ├── fee_estimator_example.py │ ├── fee_estimator_interface.py │ ├── fee_history.py │ ├── fee_tracker.py │ ├── full_node.py │ ├── full_node_api.py │ ├── full_node_store.py │ ├── generator.py │ ├── hint_management.py │ ├── hint_store.py │ ├── lock_queue.py │ ├── mempool.py │ ├── mempool_check_conditions.py │ ├── mempool_manager.py │ ├── pending_tx_cache.py │ ├── signage_point.py │ ├── sync_store.py │ └── weight_proof.py ├── harvester │ ├── __init__.py │ ├── harvester.py │ └── harvester_api.py ├── introducer │ ├── __init__.py │ ├── introducer.py │ └── introducer_api.py ├── plot_sync │ ├── __init__.py │ ├── delta.py │ ├── exceptions.py │ ├── receiver.py │ ├── sender.py │ └── util.py ├── plotters │ ├── __init__.py │ ├── bladebit.py │ ├── madmax.py │ ├── plotters.py │ ├── plotters_util.py │ └── tacopos.py ├── plotting │ ├── __init__.py │ ├── cache.py │ ├── check_plots.py │ ├── create_plots.py │ ├── manager.py │ └── util.py ├── pools │ ├── __init__.py │ ├── pool_config.py │ ├── pool_puzzles.py │ ├── pool_wallet.py │ └── pool_wallet_info.py ├── protocols │ ├── __init__.py │ ├── farmer_protocol.py │ ├── full_node_protocol.py │ ├── harvester_protocol.py │ ├── introducer_protocol.py │ ├── pool_protocol.py │ ├── protocol_message_types.py │ ├── protocol_state_machine.py │ ├── protocol_timing.py │ ├── shared_protocol.py │ ├── timelord_protocol.py │ └── wallet_protocol.py ├── py.typed ├── pyinstaller.spec ├── rpc │ ├── __init__.py │ ├── crawler_rpc_api.py │ ├── data_layer_rpc_api.py │ ├── data_layer_rpc_client.py │ ├── data_layer_rpc_util.py │ ├── farmer_rpc_api.py │ ├── farmer_rpc_client.py │ ├── full_node_rpc_api.py │ ├── full_node_rpc_client.py │ ├── harvester_rpc_api.py │ ├── harvester_rpc_client.py │ ├── rpc_client.py │ ├── rpc_server.py │ ├── timelord_rpc_api.py │ ├── util.py │ ├── wallet_rpc_api.py │ └── wallet_rpc_client.py ├── seeder │ ├── __init__.py │ ├── crawl_store.py │ ├── crawler.py │ ├── crawler_api.py │ ├── dns_server.py │ ├── peer_record.py │ └── start_crawler.py ├── server │ ├── __init__.py │ ├── address_manager.py │ ├── address_manager_sqlite_store.py │ ├── address_manager_store.py │ ├── introducer_peers.py │ ├── node_discovery.py │ ├── outbound_message.py │ ├── peer_store_resolver.py │ ├── rate_limit_numbers.py │ ├── rate_limits.py │ ├── reconnect_task.py │ ├── server.py │ ├── ssl_context.py │ ├── start_data_layer.py │ ├── start_farmer.py │ ├── start_full_node.py │ ├── start_harvester.py │ ├── start_introducer.py │ ├── start_service.py │ ├── start_timelord.py │ ├── start_wallet.py │ ├── upnp.py │ └── ws_connection.py ├── simulator │ ├── __init__.py │ ├── block_tools.py │ ├── full_node_simulator.py │ ├── keyring.py │ ├── setup_nodes.py │ ├── setup_services.py │ ├── simulator_constants.py │ ├── simulator_full_node_rpc_api.py │ ├── simulator_full_node_rpc_client.py │ ├── simulator_protocol.py │ ├── simulator_test_tools.py │ ├── socket.py │ ├── ssl_certs.py │ ├── ssl_certs_1.py │ ├── ssl_certs_10.py │ ├── ssl_certs_2.py │ ├── ssl_certs_3.py │ ├── ssl_certs_4.py │ ├── ssl_certs_5.py │ ├── ssl_certs_6.py │ ├── ssl_certs_7.py │ ├── ssl_certs_8.py │ ├── ssl_certs_9.py │ ├── start_simulator.py │ ├── time_out_assert.py │ └── wallet_tools.py ├── ssl │ ├── __init__.py │ ├── create_ssl.py │ ├── dst_root_ca.pem │ ├── taco_ca.crt │ └── taco_ca.key ├── timelord │ ├── __init__.py │ ├── iters_from_block.py │ ├── timelord.py │ ├── timelord_api.py │ ├── timelord_launcher.py │ ├── timelord_state.py │ └── types.py ├── types │ ├── __init__.py │ ├── announcement.py │ ├── block_protocol.py │ ├── blockchain_format │ │ ├── __init__.py │ │ ├── classgroup.py │ │ ├── coin.py │ │ ├── foliage.py │ │ ├── pool_target.py │ │ ├── program.py │ │ ├── proof_of_space.py │ │ ├── reward_chain_block.py │ │ ├── sized_bytes.py │ │ ├── slots.py │ │ ├── sub_epoch_summary.py │ │ ├── tree_hash.py │ │ └── vdf.py │ ├── clvm_cost.py │ ├── coin_record.py │ ├── coin_solution.py │ ├── coin_spend.py │ ├── condition_opcodes.py │ ├── condition_with_args.py │ ├── end_of_slot_bundle.py │ ├── fee_rate.py │ ├── full_block.py │ ├── generator_types.py │ ├── header_block.py │ ├── mempool_inclusion_status.py │ ├── mempool_item.py │ ├── mempool_submission_status.py │ ├── mojos.py │ ├── peer_info.py │ ├── spend_bundle.py │ ├── spend_bundle_conditions.py │ ├── transaction_queue_entry.py │ ├── unfinished_block.py │ ├── unfinished_header_block.py │ └── weight_proof.py ├── util │ ├── __init__.py │ ├── api_decorators.py │ ├── bech32m.py │ ├── beta_metrics.py │ ├── block_cache.py │ ├── byte_types.py │ ├── cached_bls.py │ ├── chain_utils.py │ ├── check_fork_next_block.py │ ├── chunks.py │ ├── condition_tools.py │ ├── config.py │ ├── create_alert_file.py │ ├── db_synchronous.py │ ├── db_version.py │ ├── db_wrapper.py │ ├── default_root.py │ ├── dump_keyring.py │ ├── english.txt │ ├── errors.py │ ├── file_keyring.py │ ├── files.py │ ├── full_block_utils.py │ ├── generator_tools.py │ ├── hash.py │ ├── initial-config.yaml │ ├── inline_executor.py │ ├── ints.py │ ├── json_util.py │ ├── keychain.py │ ├── keyring_wrapper.py │ ├── limited_semaphore.py │ ├── lock.py │ ├── log_exceptions.py │ ├── lru_cache.py │ ├── make_test_constants.py │ ├── merkle_set.py │ ├── misc.py │ ├── network.py │ ├── paginator.py │ ├── partial_func.py │ ├── path.py │ ├── permissions.py │ ├── pip_import.py │ ├── prev_transaction_block.py │ ├── profiler.py │ ├── recursive_replace.py │ ├── safe_cancel_task.py │ ├── service_groups.py │ ├── setproctitle.py │ ├── significant_bits.py │ ├── ssl_check.py │ ├── streamable.py │ ├── struct_stream.py │ ├── taco_logging.py │ ├── task_timing.py │ ├── validate_alert.py │ ├── vdf_prover.py │ └── ws_message.py └── wallet │ ├── __init__.py │ ├── block_record.py │ ├── cat_wallet │ ├── __init__.py │ ├── cat_constants.py │ ├── cat_info.py │ ├── cat_outer_puzzle.py │ ├── cat_utils.py │ ├── cat_wallet.py │ └── lineage_store.py │ ├── coin_selection.py │ ├── db_wallet │ ├── __init__.py │ └── db_wallet_puzzles.py │ ├── derivation_record.py │ ├── derive_keys.py │ ├── did_wallet │ ├── __init__.py │ ├── did_info.py │ ├── did_wallet.py │ └── did_wallet_puzzles.py │ ├── driver_protocol.py │ ├── key_val_store.py │ ├── lineage_proof.py │ ├── nft_wallet │ ├── __init__.py │ ├── metadata_outer_puzzle.py │ ├── nft_info.py │ ├── nft_puzzles.py │ ├── nft_wallet.py │ ├── ownership_outer_puzzle.py │ ├── singleton_outer_puzzle.py │ ├── transfer_program_puzzle.py │ └── uncurry_nft.py │ ├── notification_manager.py │ ├── notification_store.py │ ├── outer_puzzles.py │ ├── payment.py │ ├── puzzle_drivers.py │ ├── puzzles │ ├── __init__.py │ ├── block_program_zero.clvm │ ├── block_program_zero.clvm.hex │ ├── block_program_zero.clvm.hex.sha256tree │ ├── calculate_synthetic_public_key.clvm │ ├── calculate_synthetic_public_key.clvm.hex │ ├── calculate_synthetic_public_key.clvm.hex.sha256tree │ ├── cat_loader.py │ ├── cat_truths.clib │ ├── cat_v2.clvm │ ├── cat_v2.clvm.hex │ ├── cat_v2.clvm.hex.sha256tree │ ├── condition_codes.clvm │ ├── create-lock-puzzlehash.clvm │ ├── create_nft_launcher_from_did.clvm │ ├── create_nft_launcher_from_did.clvm.hex │ ├── create_nft_launcher_from_did.clvm.hex.sha256tree │ ├── curry-and-treehash.clinc │ ├── decompress_block_spends.clvm │ ├── decompress_block_spends.clvm.hex │ ├── decompress_block_spends.clvm.hex.sha256tree │ ├── decompress_block_spends.py │ ├── decompress_coin_spend_entry.clvm │ ├── decompress_coin_spend_entry.clvm.hex │ ├── decompress_coin_spend_entry.clvm.hex.sha256tree │ ├── decompress_coin_spend_entry_with_prefix.clvm │ ├── decompress_coin_spend_entry_with_prefix.clvm.hex │ ├── decompress_coin_spend_entry_with_prefix.clvm.hex.sha256tree │ ├── decompress_puzzle.clvm │ ├── decompress_puzzle.clvm.hex │ ├── decompress_puzzle.clvm.hex.sha256tree │ ├── delegated_tail.clvm │ ├── delegated_tail.clvm.hex │ ├── delegated_tail.clvm.hex.sha256tree │ ├── did_innerpuz.clvm │ ├── did_innerpuz.clvm.hex │ ├── did_innerpuz.clvm.hex.sha256tree │ ├── everything_with_signature.clvm │ ├── everything_with_signature.clvm.hex │ ├── everything_with_signature.clvm.hex.sha256tree │ ├── genesis_by_coin_id.clvm │ ├── genesis_by_coin_id.clvm.hex │ ├── genesis_by_coin_id.clvm.hex.sha256tree │ ├── genesis_by_puzzle_hash.clvm │ ├── genesis_by_puzzle_hash.clvm.hex │ ├── genesis_by_puzzle_hash.clvm.hex.sha256tree │ ├── graftroot_dl_offers.clvm │ ├── graftroot_dl_offers.clvm.hex │ ├── graftroot_dl_offers.clvm.hex.sha256tree │ ├── json.clib │ ├── load_clvm.py │ ├── lock.inner.puzzle.clvm │ ├── lock.inner.puzzle.clvm.hex │ ├── lock.inner.puzzle.clvm.hex.sha256tree │ ├── merkle_utils.clib │ ├── nft_intermediate_launcher.clvm │ ├── nft_intermediate_launcher.clvm.hex │ ├── nft_intermediate_launcher.clvm.hex.sha256tree │ ├── nft_metadata_updater_default.clvm │ ├── nft_metadata_updater_default.clvm.hex │ ├── nft_metadata_updater_default.clvm.hex.sha256tree │ ├── nft_metadata_updater_updateable.clvm │ ├── nft_metadata_updater_updateable.clvm.hex │ ├── nft_metadata_updater_updateable.clvm.hex.sha256tree │ ├── nft_ownership_layer.clvm │ ├── nft_ownership_layer.clvm.hex │ ├── nft_ownership_layer.clvm.hex.sha256tree │ ├── nft_ownership_transfer_program_one_way_claim_with_royalties.clvm │ ├── nft_ownership_transfer_program_one_way_claim_with_royalties.clvm.hex │ ├── nft_ownership_transfer_program_one_way_claim_with_royalties.clvm.hex.sha256tree │ ├── nft_state_layer.clvm │ ├── nft_state_layer.clvm.hex │ ├── nft_state_layer.clvm.hex.sha256tree │ ├── notification.clvm │ ├── notification.clvm.hex │ ├── notification.clvm.hex.sha256tree │ ├── p2_conditions.clvm │ ├── p2_conditions.clvm.hex │ ├── p2_conditions.clvm.hex.sha256tree │ ├── p2_conditions.py │ ├── p2_delegated_conditions.clvm │ ├── p2_delegated_conditions.clvm.hex │ ├── p2_delegated_conditions.clvm.hex.sha256tree │ ├── p2_delegated_conditions.py │ ├── p2_delegated_puzzle.clvm │ ├── p2_delegated_puzzle.clvm.hex │ ├── p2_delegated_puzzle.clvm.hex.sha256tree │ ├── p2_delegated_puzzle.py │ ├── p2_delegated_puzzle_or_hidden_puzzle.clvm │ ├── p2_delegated_puzzle_or_hidden_puzzle.clvm.hex │ ├── p2_delegated_puzzle_or_hidden_puzzle.clvm.hex.sha256tree │ ├── p2_delegated_puzzle_or_hidden_puzzle.py │ ├── p2_m_of_n_delegate_direct.clvm │ ├── p2_m_of_n_delegate_direct.clvm.hex │ ├── p2_m_of_n_delegate_direct.clvm.hex.sha256tree │ ├── p2_m_of_n_delegate_direct.py │ ├── p2_parent.clvm │ ├── p2_parent.clvm.hex │ ├── p2_parent.clvm.hex.sha256tree │ ├── p2_puzzle_hash.clvm │ ├── p2_puzzle_hash.clvm.hex │ ├── p2_puzzle_hash.clvm.hex.sha256tree │ ├── p2_puzzle_hash.py │ ├── p2_singleton.clvm │ ├── p2_singleton.clvm.hex │ ├── p2_singleton.clvm.hex.sha256tree │ ├── p2_singleton_or_delayed_puzhash.clvm │ ├── p2_singleton_or_delayed_puzhash.clvm.hex │ ├── p2_singleton_or_delayed_puzhash.clvm.hex.sha256tree │ ├── pool_member_innerpuz.clvm │ ├── pool_member_innerpuz.clvm.hex │ ├── pool_member_innerpuz.clvm.hex.sha256tree │ ├── pool_waitingroom_innerpuz.clvm │ ├── pool_waitingroom_innerpuz.clvm.hex │ ├── pool_waitingroom_innerpuz.clvm.hex.sha256tree │ ├── prefarm │ │ ├── __init__.py │ │ ├── make_prefarm_ph.py │ │ └── spend_prefarm.py │ ├── puzzle_utils.py │ ├── recompile-all.sh │ ├── rom_bootstrap_generator.clvm │ ├── rom_bootstrap_generator.clvm.hex │ ├── rom_bootstrap_generator.clvm.hex.sha256tree │ ├── rom_bootstrap_generator.py │ ├── settlement_payments.clvm │ ├── settlement_payments.clvm.hex │ ├── settlement_payments.clvm.hex.sha256tree │ ├── settlement_payments_old.clvm │ ├── settlement_payments_old.clvm.hex │ ├── settlement_payments_old.clvm.hex.sha256tree │ ├── sha256tree.clib │ ├── sha256tree_module.clvm │ ├── sha256tree_module.clvm.hex │ ├── sha256tree_module.clvm.hex.sha256tree │ ├── singleton_launcher.clvm │ ├── singleton_launcher.clvm.hex │ ├── singleton_launcher.clvm.hex.sha256tree │ ├── singleton_top_layer.clvm │ ├── singleton_top_layer.clvm.hex │ ├── singleton_top_layer.clvm.hex.sha256tree │ ├── singleton_top_layer.py │ ├── singleton_top_layer_v1_1.clvm │ ├── singleton_top_layer_v1_1.clvm.hex │ ├── singleton_top_layer_v1_1.clvm.hex.sha256tree │ ├── singleton_top_layer_v1_1.py │ ├── singleton_truths.clib │ ├── tacolisp_deserialisation.clvm │ ├── tacolisp_deserialisation.clvm.hex │ ├── tacolisp_deserialisation.clvm.hex.sha256tree │ ├── tails.py │ ├── test_generator_deserialize.clvm │ ├── test_generator_deserialize.clvm.hex │ ├── test_generator_deserialize.clvm.hex.sha256tree │ ├── test_multiple_generator_input_arguments.clvm │ ├── test_multiple_generator_input_arguments.clvm.hex │ ├── test_multiple_generator_input_arguments.clvm.hex.sha256tree │ └── utility_macros.clib │ ├── secret_key_store.py │ ├── settings │ ├── __init__.py │ ├── default_settings.py │ ├── settings_objects.py │ └── user_settings.py │ ├── sign_coin_spends.py │ ├── tacolisp.py │ ├── trade_manager.py │ ├── trade_record.py │ ├── trading │ ├── __init__.py │ ├── offer.py │ ├── trade_status.py │ └── trade_store.py │ ├── transaction_record.py │ ├── transaction_sorting.py │ ├── uncurried_puzzle.py │ ├── util │ ├── __init__.py │ ├── address_type.py │ ├── compute_hints.py │ ├── compute_memos.py │ ├── curry_and_treehash.py │ ├── debug_spend_bundle.py │ ├── json_clvm_utils.py │ ├── merkle_tree.py │ ├── merkle_utils.py │ ├── new_peak_queue.py │ ├── notifications.py │ ├── peer_request_cache.py │ ├── puzzle_compression.py │ ├── transaction_type.py │ ├── wallet_sync_utils.py │ └── wallet_types.py │ ├── wallet.py │ ├── wallet_action.py │ ├── wallet_blockchain.py │ ├── wallet_coin_record.py │ ├── wallet_coin_store.py │ ├── wallet_info.py │ ├── wallet_interested_store.py │ ├── wallet_nft_store.py │ ├── wallet_node.py │ ├── wallet_node_api.py │ ├── wallet_pool_store.py │ ├── wallet_protocol.py │ ├── wallet_puzzle_store.py │ ├── wallet_retry_store.py │ ├── wallet_state_manager.py │ ├── wallet_transaction_store.py │ ├── wallet_user_store.py │ └── wallet_weight_proof_handler.py ├── tests ├── README.md ├── __init__.py ├── blockchain │ ├── __init__.py │ ├── config.py │ ├── test_blockchain.py │ └── test_blockchain_transactions.py ├── build-init-files.py ├── build-job-matrix.py ├── check_pytest_monitor_output.py ├── check_sql_statements.py ├── clvm │ ├── __init__.py │ ├── benchmark_costs.py │ ├── coin_store.py │ ├── config.py │ ├── test_clvm_step.py │ ├── test_curry_and_treehash.py │ ├── test_program.py │ ├── test_puzzle_compression.py │ ├── test_puzzle_drivers.py │ ├── test_puzzles.py │ ├── test_serialized_program.py │ ├── test_singletons.py │ ├── test_spend_sim.py │ └── test_tacolisp_deserialization.py ├── conftest.py ├── connection_utils.py ├── core │ ├── __init__.py │ ├── cmds │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_beta.py │ │ ├── test_keys.py │ │ └── test_wallet.py │ ├── config.py │ ├── consensus │ │ ├── __init__.py │ │ ├── config.py │ │ └── test_pot_iterations.py │ ├── custom_types │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_coin.py │ │ ├── test_proof_of_space.py │ │ └── test_spend_bundle.py │ ├── daemon │ │ ├── __init__.py │ │ ├── config.py │ │ └── test_daemon.py │ ├── data_layer │ │ ├── __init__.py │ │ ├── config.py │ │ ├── conftest.py │ │ ├── test_data_cli.py │ │ ├── test_data_layer_util.py │ │ ├── test_data_rpc.py │ │ ├── test_data_store.py │ │ ├── test_data_store_schema.py │ │ └── util.py │ ├── full_node │ │ ├── __init__.py │ │ ├── config.py │ │ ├── conftest.py │ │ ├── dos │ │ │ ├── __init__.py │ │ │ └── config.py │ │ ├── full_sync │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── test_full_sync.py │ │ ├── ram_db.py │ │ ├── stores │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ ├── test_block_store.py │ │ │ ├── test_coin_store.py │ │ │ ├── test_full_node_store.py │ │ │ ├── test_hint_store.py │ │ │ └── test_sync_store.py │ │ ├── test_address_manager.py │ │ ├── test_block_height_map.py │ │ ├── test_conditions.py │ │ ├── test_full_node.py │ │ ├── test_generator_tools.py │ │ ├── test_hint_management.py │ │ ├── test_mempool.py │ │ ├── test_mempool_fee_protocol.py │ │ ├── test_mempool_performance.py │ │ ├── test_node_load.py │ │ ├── test_peer_store_resolver.py │ │ ├── test_performance.py │ │ └── test_transactions.py │ ├── large_block.py │ ├── make_block_generator.py │ ├── mempool │ │ ├── __init__.py │ │ └── test_mempool_fee_estimator.py │ ├── node_height.py │ ├── server │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_dos.py │ │ ├── test_rate_limits.py │ │ └── test_upnp.py │ ├── ssl │ │ ├── __init__.py │ │ ├── config.py │ │ └── test_ssl.py │ ├── test_coins.py │ ├── test_cost_calculation.py │ ├── test_crawler_rpc.py │ ├── test_daemon_rpc.py │ ├── test_db_conversion.py │ ├── test_db_validation.py │ ├── test_farmer_harvester_rpc.py │ ├── test_filter.py │ ├── test_full_node_rpc.py │ ├── test_merkle_set.py │ ├── test_services.py │ ├── test_setproctitle.py │ └── util │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_cached_bls.py │ │ ├── test_config.py │ │ ├── test_file_keyring_synchronization.py │ │ ├── test_files.py │ │ ├── test_jsonify.py │ │ ├── test_keychain.py │ │ ├── test_keyring_wrapper.py │ │ ├── test_lockfile.py │ │ ├── test_lru_cache.py │ │ ├── test_significant_bits.py │ │ └── test_streamable.py ├── db │ ├── __init__.py │ └── test_db_wrapper.py ├── farmer_harvester │ ├── __init__.py │ ├── config.py │ └── test_farmer_harvester.py ├── fee_estimation │ ├── __init__.py │ ├── cmdline_test.py │ ├── test_fee_estimation_rpc.py │ └── test_fee_estimation_unit_tests.py ├── generator │ ├── __init__.py │ ├── config.py │ ├── test_compression.py │ ├── test_generator_types.py │ ├── test_list_to_batches.py │ ├── test_rom.py │ └── test_scan.py ├── plot_sync │ ├── __init__.py │ ├── config.py │ ├── test_delta.py │ ├── test_plot_sync.py │ ├── test_receiver.py │ ├── test_sender.py │ ├── test_sync_simulated.py │ └── util.py ├── plotting │ ├── __init__.py │ ├── config.py │ ├── test_plot_manager.py │ └── util.py ├── pools │ ├── __init__.py │ ├── config.py │ ├── test_pool_cmdline.py │ ├── test_pool_config.py │ ├── test_pool_puzzles_lifecycle.py │ ├── test_pool_rpc.py │ ├── test_pool_wallet.py │ └── test_wallet_pool_store.py ├── simulation │ ├── __init__.py │ ├── config.py │ ├── test_simulation.py │ └── test_start_simulator.py ├── taco-start-sim ├── testconfig.py ├── tools │ ├── 1315537.json │ ├── 1315544.json │ ├── 1315630.json │ ├── 300000.json │ ├── 442734.json │ ├── 466212.json │ ├── __init__.py │ ├── config.py │ ├── test-blockchain-db.sqlite │ ├── test_full_sync.py │ └── test_run_block.py ├── util │ ├── __init__.py │ ├── alert_server.py │ ├── benchmark_cost.py │ ├── bip39_test_vectors.json │ ├── blockchain.py │ ├── build_network_protocol_files.py │ ├── config.py │ ├── db_connection.py │ ├── gen_ssl_certs.py │ ├── generator_tools_testing.py │ ├── key_tool.py │ ├── misc.py │ ├── network_protocol_data.py │ ├── protocol_messages_bytes-v1.0 │ ├── protocol_messages_json.py │ ├── rpc.py │ ├── temp_file.py │ ├── test_chunks.py │ ├── test_full_block_utils.py │ ├── test_limited_semaphore.py │ ├── test_lock_queue.py │ ├── test_misc.py │ ├── test_network.py │ ├── test_network_protocol_files.py │ ├── test_network_protocol_json.py │ ├── test_network_protocol_test.py │ ├── test_paginator.py │ ├── test_struct_stream.py │ └── wallet_is_synced.py ├── wallet │ ├── __init__.py │ ├── cat_wallet │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_cat_lifecycle.py │ │ ├── test_cat_outer_puzzle.py │ │ ├── test_cat_wallet.py │ │ ├── test_offer_lifecycle.py │ │ └── test_trades.py │ ├── config.py │ ├── db_wallet │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_db_graftroot.py │ │ ├── test_dl_offers.py │ │ └── test_dl_wallet.py │ ├── did_wallet │ │ ├── __init__.py │ │ ├── config.py │ │ └── test_did.py │ ├── nft_wallet │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_nft_1_offers.py │ │ ├── test_nft_bulk_mint.py │ │ ├── test_nft_lifecycle.py │ │ ├── test_nft_offers.py │ │ ├── test_nft_puzzles.py │ │ ├── test_nft_wallet.py │ │ └── test_ownership_outer_puzzle.py │ ├── rpc │ │ ├── __init__.py │ │ ├── config.py │ │ ├── test_dl_wallet_rpc.py │ │ └── test_wallet_rpc.py │ ├── simple_sync │ │ ├── __init__.py │ │ ├── config.py │ │ └── test_simple_sync_protocol.py │ ├── sync │ │ ├── __init__.py │ │ ├── config.py │ │ └── test_wallet_sync.py │ ├── test_address_type.py │ ├── test_bech32m.py │ ├── test_coin_selection.py │ ├── test_nft_store.py │ ├── test_notifications.py │ ├── test_offer_parsing_performance.py │ ├── test_puzzle_store.py │ ├── test_singleton.py │ ├── test_singleton_lifecycle.py │ ├── test_singleton_lifecycle_fast.py │ ├── test_tacolisp.py │ ├── test_taproot.py │ ├── test_transaction_store.py │ ├── test_wallet.py │ ├── test_wallet_blockchain.py │ ├── test_wallet_coin_store.py │ ├── test_wallet_interested_store.py │ ├── test_wallet_key_val_store.py │ ├── test_wallet_node.py │ ├── test_wallet_retry.py │ ├── test_wallet_trade_store.py │ └── test_wallet_user_store.py └── weight_proof │ ├── __init__.py │ ├── config.py │ └── test_weight_proof.py └── tools ├── __init__.py ├── analyze-chain.py ├── analyze_memory_profile.py ├── cpu_utilization.py ├── generate_chain.py ├── manage_clvm.py ├── plot-log.gnuplot ├── run_benchmark.sh ├── run_block.py ├── test_constants.py └── test_full_sync.py /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch=True 3 | relative_files=True 4 | source= 5 | taco 6 | tests 7 | concurrency=multiprocessing 8 | parallel=True 9 | 10 | [report] 11 | precision = 1 12 | exclude_lines = 13 | pragma: no cover 14 | abc\.abstractmethod 15 | typing\.overload 16 | ^\s*\.\.\.\s*$ 17 | if typing.TYPE_CHECKING: 18 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = ./typings/**/* 4 | ignore = E203,W503 5 | per-file-ignores = 6 | tests/util/build_network_protocol_files.py:F405 7 | tests/util/test_network_protocol_files.py:F405 8 | tests/util/test_network_protocol_json.py:F405 9 | tests/util/protocol_messages_json.py:E501 10 | -------------------------------------------------------------------------------- /.github/linters/.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = ./typings/**/* 4 | ignore = E203,W503 5 | -------------------------------------------------------------------------------- /.github/linters/.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | profile= 3 | 4 | ; vertical hanging indent mode also used in black configuration 5 | multi_line_output = 3 6 | 7 | ; necessary because black expect the trailing comma 8 | include_trailing_comma = true 9 | 10 | ; black compatibility 11 | force_grid_wrap = 0 12 | 13 | ; black compatibility 14 | use_parentheses = True 15 | 16 | ; black compatibility 17 | ensure_newline_before_comments = True 18 | 19 | ; we chose 120 as line length 20 | line_length = 120 21 | -------------------------------------------------------------------------------- /.github/linters/.python-black: -------------------------------------------------------------------------------- 1 | [tool.black] 2 | line_length = 120 3 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "taco-blockchain-gui"] 2 | path = taco-blockchain-gui 3 | url = https://github.com/Taco-Network/taco-blockchain-gui.git 4 | branch = main 5 | [submodule "mozilla-ca"] 6 | path = mozilla-ca 7 | url = https://github.com/Taco-Network/mozilla-ca.git 8 | branch = main 9 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | Install instructions have been moved to the [INSTALL](https://github.com/Taco-Network/taco-blockchain/wiki/INSTALL) section of the repository [Wiki](https://github.com/Taco-Network/taco-blockchain/wiki). 4 | 5 | After installing, follow the remaining instructions in the 6 | [Quick Start Guide](https://github.com/Taco-Network/taco-blockchain/wiki/Quick-Start-Guide) 7 | to run the software. 8 | -------------------------------------------------------------------------------- /activated.ps1: -------------------------------------------------------------------------------- 1 | $ErrorActionPreference = "Stop" 2 | 3 | $script_directory = Split-Path $MyInvocation.MyCommand.Path -Parent 4 | 5 | $command = $args[0] 6 | $parameters = [System.Collections.ArrayList]$args 7 | $parameters.RemoveAt(0) 8 | 9 | & $script_directory/venv/Scripts/Activate.ps1 10 | & $command @parameters 11 | 12 | exit $LASTEXITCODE 13 | -------------------------------------------------------------------------------- /activated.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -o errexit 4 | 5 | SCRIPT_DIRECTORY=$(cd -- "$(dirname -- "$0")"; pwd) 6 | # shellcheck disable=SC1091 7 | . "${SCRIPT_DIRECTORY}/venv/bin/activate" 8 | 9 | "$@" 10 | -------------------------------------------------------------------------------- /benchmarks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/benchmarks/__init__.py -------------------------------------------------------------------------------- /benchmarks/clvm_generator.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/benchmarks/clvm_generator.bin -------------------------------------------------------------------------------- /build_scripts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/__init__.py -------------------------------------------------------------------------------- /build_scripts/assets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/assets/__init__.py -------------------------------------------------------------------------------- /build_scripts/assets/deb/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/assets/deb/__init__.py -------------------------------------------------------------------------------- /build_scripts/assets/deb/control.j2: -------------------------------------------------------------------------------- 1 | Package: taco-blockchain-cli 2 | Version: {{ TACO_INSTALLER_VERSION }} 3 | Architecture: {{ PLATFORM }} 4 | Maintainer: Taco Network Inc 5 | Description: Taco Blockchain 6 | Taco is a modern cryptocurrency built from scratch, designed to be efficient, decentralized, and secure. 7 | -------------------------------------------------------------------------------- /build_scripts/assets/deb/postinst.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Post install script for the UI .deb to place symlinks in places to allow the CLI to work similarly in both versions 3 | 4 | set -e 5 | 6 | ln -s /opt/taco/resources/app.asar.unpacked/daemon/taco /usr/bin/taco || true 7 | -------------------------------------------------------------------------------- /build_scripts/assets/deb/prerm.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Pre remove script for the UI .deb to clean up the symlinks from the installer 3 | 4 | set -e 5 | 6 | unlink /usr/bin/taco || true 7 | -------------------------------------------------------------------------------- /build_scripts/assets/dmg/README: -------------------------------------------------------------------------------- 1 | To update the DMG background image, create 1x and 2x versions of a background: 2 | 3 | 1x: background.png 4 | 2x: background@2x.png 5 | 6 | Create a single TIFF combining both 1x and 2x background bitmaps: 7 | Run 'tiffutil -cathidpicheck background.png background@2x.png -out background.tiff' 8 | 9 | Use background.tiff as the DMG background 10 | -------------------------------------------------------------------------------- /build_scripts/assets/dmg/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/assets/dmg/__init__.py -------------------------------------------------------------------------------- /build_scripts/assets/dmg/background.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/assets/dmg/background.tiff -------------------------------------------------------------------------------- /build_scripts/assets/rpm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/assets/rpm/__init__.py -------------------------------------------------------------------------------- /build_scripts/assets/rpm/postinst.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Post install script for the UI .rpm to place symlinks in places to allow the CLI to work similarly in both versions 3 | 4 | set -e 5 | 6 | ln -s /opt/taco/resources/app.asar.unpacked/daemon/taco /usr/bin/taco || true 7 | -------------------------------------------------------------------------------- /build_scripts/assets/rpm/prerm.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Pre remove script for the UI .rpm to clean up the symlinks from the installer 3 | 4 | set -e 5 | 6 | unlink /usr/bin/taco || true 7 | -------------------------------------------------------------------------------- /build_scripts/npm_global/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/npm_global/__init__.py -------------------------------------------------------------------------------- /build_scripts/npm_global/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm_global", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "n": { 8 | "version": "8.2.0", 9 | "resolved": "https://registry.npmjs.org/n/-/n-8.2.0.tgz", 10 | "integrity": "sha512-qv+jwJoXaV94C+uASaLS/Qe/iprgvQKe+5hqg6YvUH8mqe5ysgjby875pUVLLWieGFywipEO/J/bgekYbC18Jw==" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /build_scripts/npm_global/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm_global", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "n": "^8.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /build_scripts/npm_linux/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/npm_linux/__init__.py -------------------------------------------------------------------------------- /build_scripts/npm_linux/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm_linux", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "electron-builder": "^23.5.0", 14 | "lerna": "^5.5.2" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /build_scripts/npm_macos/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/npm_macos/__init__.py -------------------------------------------------------------------------------- /build_scripts/npm_macos/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm_macos", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "@chia-network/notarize-cli": "^0.2.2", 14 | "dmg-license": "^1.0.11", 15 | "electron-builder": "^23.5.1", 16 | "lerna": "^5.5.2" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /build_scripts/npm_windows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/build_scripts/npm_windows/__init__.py -------------------------------------------------------------------------------- /build_scripts/npm_windows/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm_windows", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "electron-builder": "^23.5.1", 14 | "lerna": "^5.5.2" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lgtm.yml: -------------------------------------------------------------------------------- 1 | path_classifiers: 2 | test: 3 | - exclude: / 4 | benchmark: 5 | - exclude: / 6 | 7 | extraction: 8 | javascript: 9 | index: 10 | include: 11 | - taco-blockchain-gui 12 | -------------------------------------------------------------------------------- /mozilla-ca/.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | -------------------------------------------------------------------------------- /mozilla-ca/README.md: -------------------------------------------------------------------------------- 1 | # mozilla-ca 2 | -------------------------------------------------------------------------------- /mozilla-ca/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/mozilla-ca/__init__.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools>=42", "wheel", "setuptools_scm[toml]>=4.1.2"] 3 | build-backend = "setuptools.build_meta" 4 | 5 | [tool.setuptools_scm] 6 | fallback_version = "unknown-no-.git-directory" 7 | local_scheme = "no-local-version" 8 | 9 | [tool.black] 10 | line-length = 120 11 | target-version = ['py37', 'py38', 'py39'] 12 | include = ''' 13 | ^/( 14 | [^/]*.py 15 | | (benchmarks|build_scripts|taco|tests|tools)/.*\.pyi? 16 | )$ 17 | ''' 18 | exclude = '' 19 | -------------------------------------------------------------------------------- /run-py-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | 5 | python3 -m venv venv 6 | # shellcheck disable=SC1091 7 | . ./activate 8 | pip3 install ".[dev]" 9 | mypy --install-types 10 | 11 | py.test ./tests -s -v 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | # editorconfig-tools is unable to ignore longs strings or urls 11 | max_line_length = off 12 | 13 | [.md] 14 | indent_size = false -------------------------------------------------------------------------------- /taco-blockchain-gui/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | examples 4 | daemon 5 | build 6 | *_old 7 | packages/*/test/data_fixtures 8 | packages/wallet/* -------------------------------------------------------------------------------- /taco-blockchain-gui/.npmrc: -------------------------------------------------------------------------------- 1 | legacy-peer-deps=true -------------------------------------------------------------------------------- /taco-blockchain-gui/.nvmrc: -------------------------------------------------------------------------------- 1 | 16 -------------------------------------------------------------------------------- /taco-blockchain-gui/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /taco-blockchain-gui/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "packages/*" 4 | ], 5 | "version": "1.0.0" 6 | } 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env", 4 | "@babel/typescript" 5 | ], 6 | "plugins": [ 7 | "@babel/plugin-transform-runtime" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .env -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/.npmignore: -------------------------------------------------------------------------------- 1 | coverage 2 | node_modules 3 | .DS_Store 4 | package-lock.json 5 | tsconfig.json 6 | .babelrc 7 | rollup.config.js 8 | .env 9 | src 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/src/api.ts: -------------------------------------------------------------------------------- 1 | import { createApi } from '@reduxjs/toolkit/query/react'; 2 | 3 | import tacoLazyBaseQuery from './tacoLazyBaseQuery'; 4 | 5 | export const baseQuery = tacoLazyBaseQuery({}); 6 | 7 | export default createApi({ 8 | reducerPath: 'tacoApi', 9 | baseQuery, 10 | endpoints: () => ({}), 11 | }); 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/src/hooks/useForceUpdate.ts: -------------------------------------------------------------------------------- 1 | import { useReducer } from 'react'; 2 | 3 | export default function useForceUpdate() { 4 | const [_ignored, forceUpdate] = useReducer((x) => x + 1, 0); 5 | 6 | return forceUpdate; 7 | } 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/src/hooks/useLogout.ts: -------------------------------------------------------------------------------- 1 | import { walletApi } from '../services/wallet'; 2 | import { useAppDispatch } from '../store'; 3 | 4 | export default function useLogout() { 5 | const dispatch = useAppDispatch(); 6 | 7 | async function handleLogout() { 8 | return dispatch(walletApi.util.resetApiState()); 9 | } 10 | 11 | return handleLogout; 12 | } 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './hooks'; 2 | export { store, createStore, useAppDispatch, useTypedSelector } from './store'; 3 | export * from './services'; 4 | export * from './slices'; 5 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/src/slices/index.ts: -------------------------------------------------------------------------------- 1 | export * as api from './api'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/src/utils/normalizePoolState.ts: -------------------------------------------------------------------------------- 1 | import PoolState from '../types/PoolState'; 2 | import removeOldPoints from './removeOldPoints'; 3 | 4 | export default function normalizePoolState(poolState: PoolState): PoolState { 5 | return { 6 | ...poolState, 7 | pointsAcknowledged24h: removeOldPoints(poolState.pointsAcknowledged24h), 8 | pointsFound24h: removeOldPoints(poolState.pointsFound24h), 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api-react/src/utils/removeOldPoints.ts: -------------------------------------------------------------------------------- 1 | import type { Point } from '@taco/api'; 2 | 3 | const DAY_SECONDS = 60 * 60 * 24; 4 | 5 | export default function removeOldPoints(points: Point[], second: number = DAY_SECONDS): Point[] { 6 | const current = Date.now() / 1000; 7 | const dayBefore = current - second; 8 | 9 | return points?.filter((point) => { 10 | const [timestamp] = point; 11 | 12 | return timestamp >= dayBefore; 13 | }); 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env", 4 | "@babel/typescript" 5 | ], 6 | "plugins": [ 7 | "@babel/plugin-transform-runtime" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .env -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/.npmignore: -------------------------------------------------------------------------------- 1 | coverage 2 | node_modules 3 | .DS_Store 4 | package-lock.json 5 | tsconfig.json 6 | .babelrc 7 | rollup.config.js 8 | .env 9 | src 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Block.ts: -------------------------------------------------------------------------------- 1 | import type Foliage from './Foliage'; 2 | import type FoliageTransactionBlock from './FoliageTransactionBlock'; 3 | 4 | type Block = { 5 | foliage_transaction_block: FoliageTransactionBlock; 6 | foliage: Foliage; 7 | }; 8 | 9 | export default Block; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/BlockHeader.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockHeader {} 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/BlockRecord.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockRecord {} 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/BlockchainConnection.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockchainConnection {} 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/BlockchainState.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockchainState {} 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/CATToken.ts: -------------------------------------------------------------------------------- 1 | type CATToken = { 2 | assetId: string; 3 | name: string; 4 | symbol: string; 5 | }; 6 | 7 | export default CATToken; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/CalculateRoyaltiesRequest.ts: -------------------------------------------------------------------------------- 1 | import RoyaltyCalculationFungibleAsset from './RoyaltyCalculationFungibleAsset'; 2 | import RoyaltyCalculationRoyaltyAsset from './RoyaltyCalculationRoyaltyAsset'; 3 | 4 | type CalculateRoyaltiesRequest = { 5 | royaltyAssets: RoyaltyCalculationRoyaltyAsset[]; 6 | fungibleAssets: RoyaltyCalculationFungibleAsset[]; 7 | }; 8 | 9 | export default CalculateRoyaltiesRequest; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/CalculateRoyaltiesResponse.ts: -------------------------------------------------------------------------------- 1 | import Response from './Response'; 2 | import RoyaltyCalculationFungibleAssetPayout from './RoyaltyCalculationFungibleAssetPayout'; 3 | 4 | type CalculateRoyaltiesResponse = Response & { 5 | royalties: { 6 | [key: string]: RoyaltyCalculationFungibleAssetPayout[]; 7 | }; 8 | }; 9 | 10 | export default CalculateRoyaltiesResponse; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Challenge.ts: -------------------------------------------------------------------------------- 1 | type Challenge = { 2 | challenge: string; 3 | difficulty: number; 4 | height: number; 5 | estimates: number[]; 6 | weight: number; 7 | timestamp?: number; 8 | }; 9 | 10 | export default Challenge; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Coin.ts: -------------------------------------------------------------------------------- 1 | import type WalletType from '../constants/WalletType'; 2 | 3 | type Coin = { 4 | confirmed_block_index: number; 5 | spent_block_index: number; 6 | spent: boolean; 7 | coinbase: boolean; 8 | wallet_type: WalletType; 9 | wallet_id: number; 10 | parent_coin_info: string; 11 | }; 12 | 13 | export default Coin; 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/CoinSolution.ts: -------------------------------------------------------------------------------- 1 | import type Coin from './Coin'; 2 | import type Program from './Program'; 3 | 4 | type CoinSolution = { 5 | coin: Coin; 6 | solution: Program; 7 | }; 8 | 9 | export default CoinSolution; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Connection.ts: -------------------------------------------------------------------------------- 1 | type Connection = { 2 | bytes_read: number; 3 | bytes_written: number; 4 | creation_time: number; 5 | last_message_time: number; 6 | local_host: string; 7 | local_port: number; 8 | node_id: string; 9 | peer_host: string; 10 | peer_port: number; 11 | peer_server_port: number; 12 | type: number; 13 | }; 14 | 15 | export default Connection; 16 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/FarmingInfo.ts: -------------------------------------------------------------------------------- 1 | type FarmingInfo = { 2 | challengeHash: string; 3 | signagePoint: string; 4 | timestamp: number; 5 | passedFilter: number; 6 | proofs: number; 7 | totalPlots: number; 8 | }; 9 | 10 | export default FarmingInfo; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Fingerprint.ts: -------------------------------------------------------------------------------- 1 | type Fingerprint = number; 2 | 3 | export default Fingerprint; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/FoliageTransactionBlock.ts: -------------------------------------------------------------------------------- 1 | type FoliageTransactionBlock = { 2 | additions_root: string; 3 | filter_hash: string; 4 | height: number; 5 | prev_block_hash: string; 6 | removals_root: string; 7 | timestamp: string; 8 | transactions_info_hash: string; 9 | }; 10 | 11 | export default FoliageTransactionBlock; 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/G2Element.ts: -------------------------------------------------------------------------------- 1 | type G2Element = string; 2 | 3 | export default G2Element; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/InitialTargetState.ts: -------------------------------------------------------------------------------- 1 | type InitialTargetState = 2 | | { 3 | state: 'SELF_POOLING'; 4 | } 5 | | { 6 | state: 'FARMING_TO_POOL'; 7 | pool_url: string; 8 | relative_lock_height: number; 9 | target_puzzle_hash: string; 10 | }; 11 | 12 | export default InitialTargetState; 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/KeyData.ts: -------------------------------------------------------------------------------- 1 | type KeyData = { 2 | fingerprint: number; 3 | label: string | null; 4 | publicKey: string; 5 | secrets: { 6 | mnemonic: string[]; 7 | entropy: string; 8 | privateKey: string; 9 | } | null; 10 | }; 11 | 12 | export default KeyData; 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/MessageInterface.ts: -------------------------------------------------------------------------------- 1 | import ServiceName from '../constants/ServiceName'; 2 | 3 | export default interface MessageInterface { 4 | command: string; 5 | data: Object; 6 | origin: ServiceName; 7 | destination: ServiceName; 8 | ack: boolean; 9 | requestId?: string; 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/NFTAttribute.ts: -------------------------------------------------------------------------------- 1 | type NFTAttribute = { 2 | name?: string; 3 | value?: string | number; 4 | trait_type?: string; 5 | min_value?: number; 6 | max_value?: number; 7 | }; 8 | 9 | export default NFTAttribute; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/OfferCoinOfInterest.ts: -------------------------------------------------------------------------------- 1 | type OfferCoinOfInterest = { 2 | amount: number; 3 | parentCoinInfo: string; 4 | puzzleHash: string; 5 | }; 6 | 7 | export default OfferCoinOfInterest; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Peak.ts: -------------------------------------------------------------------------------- 1 | type Peak = { 2 | height: number; 3 | timestamp: number; 4 | }; 5 | 6 | export default Peak; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Plot.ts: -------------------------------------------------------------------------------- 1 | type Plot = { 2 | plot_id: string; 3 | filename: string; 4 | file_size: number; 5 | size: number; 6 | local_sk: string; 7 | farmer_public_key: string; 8 | plot_public_key: string; 9 | pool_public_key: string; 10 | pool_contract_puzzle_hash: string; 11 | duplicates?: Plot[]; 12 | }; 13 | 14 | export default Plot; 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/PlotNFT.ts: -------------------------------------------------------------------------------- 1 | import type PoolState from './PoolState'; 2 | import type PoolWalletStatus from './PoolWalletStatus'; 3 | import type WalletBalance from './WalletBalance'; 4 | 5 | type PlotNFT = { 6 | pool_state: PoolState; 7 | wallet_balance: WalletBalance; 8 | pool_wallet_status: PoolWalletStatus; 9 | }; 10 | 11 | export default PlotNFT; 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/PlotNFTExternal.ts: -------------------------------------------------------------------------------- 1 | import type PoolState from './PoolState'; 2 | 3 | type PlotNFTExternal = { 4 | pool_state: PoolState; 5 | }; 6 | 7 | export default PlotNFTExternal; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/PlotQueueItem.ts: -------------------------------------------------------------------------------- 1 | import PlotStatus from '../constants/PlotStatus'; 2 | 3 | type PlotQueueItem = { 4 | id: string; 5 | queue: string; 6 | size: number; 7 | parallel: boolean; 8 | delay: number; 9 | state: PlotStatus; 10 | error?: string; 11 | log?: string; 12 | progress?: number; 13 | }; 14 | 15 | export default PlotQueueItem; 16 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Point.ts: -------------------------------------------------------------------------------- 1 | type Point = [number, number]; 2 | 3 | export default Point; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/PoolInfo.ts: -------------------------------------------------------------------------------- 1 | type PoolInfo = { 2 | name: string; 3 | description: string; 4 | pool_url: string; 5 | fee: string; 6 | logo_url: string; 7 | minimum_difficulty: number; 8 | protocol_version: string; 9 | relative_lock_height: number; 10 | target_puzzle_hash: string; 11 | }; 12 | 13 | export default PoolInfo; 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Program.ts: -------------------------------------------------------------------------------- 1 | type Program = {}; 2 | 3 | export default Program; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/ProofsOfSpace.ts: -------------------------------------------------------------------------------- 1 | type ProofsOfSpace = { 2 | [key: string]: [string, ProofsOfSpace][]; 3 | }; 4 | 5 | export default ProofsOfSpace; 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/Response.ts: -------------------------------------------------------------------------------- 1 | type Response = { 2 | success: boolean; 3 | }; 4 | 5 | export default Response; 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/RoyaltyCalculationFungibleAsset.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | type RoyaltyCalculationFungibleAsset = { 4 | asset: string; // Use walletId value here. Corresponds to RoyaltyCalculationFungibleAssetPayout.asset 5 | amount: BigNumber; 6 | }; 7 | 8 | export default RoyaltyCalculationFungibleAsset; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/RoyaltyCalculationFungibleAssetPayout.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | type RoyaltyCalculationFungibleAssetPayout = { 4 | address: string; 5 | amount: BigNumber; 6 | asset: string; // Corresponds to RoyaltyCalculationFungibleAsset.asset 7 | }; 8 | 9 | export default RoyaltyCalculationFungibleAssetPayout; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/RoyaltyCalculationRoyaltyAsset.ts: -------------------------------------------------------------------------------- 1 | type RoyaltyCalculationRoyaltyAsset = { 2 | asset: string; 3 | royaltyAddress: string; 4 | royaltyPercentage: number; 5 | }; 6 | 7 | export default RoyaltyCalculationRoyaltyAsset; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/SignagePoint.ts: -------------------------------------------------------------------------------- 1 | type SignagePoint = { 2 | challenge_hash: string; 3 | challenge_chain_sp: string; 4 | reward_chain_sp: string; 5 | difficulty: number; 6 | sub_slot_iters: number; 7 | signage_point_index: number; 8 | }; 9 | 10 | export default SignagePoint; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/SpendBundle.ts: -------------------------------------------------------------------------------- 1 | import type CoinSolution from './CoinSolution'; 2 | import type G2Element from './G2Element'; 3 | 4 | type SpendBundle = { 5 | coin_solutions: CoinSolution[]; 6 | aggregated_signature: G2Element; 7 | }; 8 | 9 | export default SpendBundle; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/UnconfirmedPlotNFT.ts: -------------------------------------------------------------------------------- 1 | import PlotNFTState from '../constants/PlotNFTState'; 2 | 3 | type UnconfirmedPlotNFT = { 4 | fingerprint: string; 5 | transactionId: string; 6 | state: PlotNFTState; 7 | poolUrl?: string; 8 | }; 9 | 10 | export default UnconfirmedPlotNFT; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/@types/WalletBalance.ts: -------------------------------------------------------------------------------- 1 | type WalletBalance = { 2 | walletId: number; 3 | confirmedWalletBalance: number; 4 | max_send_amount: number; 5 | pending_change: number; 6 | pending_coin_removal_count: number; 7 | spendable_balance: number; 8 | unconfirmed_wallet_balance: number; 9 | unspent_coin_count: number; 10 | balance_pending: number; 11 | }; 12 | 13 | export default WalletBalance; 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/constants/ConnectionState.ts: -------------------------------------------------------------------------------- 1 | enum ConnectionState { 2 | CONNECTED = 'CONNECTED', 3 | CONNECTING = 'CONNECTING', 4 | DISCONNECTED = 'DISCONNECTED', 5 | } 6 | 7 | export default ConnectionState; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/constants/PassphrasePromptReason.ts: -------------------------------------------------------------------------------- 1 | enum PassphrasePromptReason { 2 | KEYRING_LOCKED = 'KEYRING_LOCKED', 3 | DELETING_KEY = 'DELETING_KEY', 4 | } 5 | 6 | export default PassphrasePromptReason; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/constants/PlotterName.ts: -------------------------------------------------------------------------------- 1 | enum PlotterName { 2 | BLADEBIT = 'bladebit', 3 | BLADEBIT2 = 'bladebit2', 4 | TACOPOS = 'tacopos', 5 | MADMAX = 'madmax', 6 | } 7 | 8 | export default PlotterName; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/constants/SyncingStatus.ts: -------------------------------------------------------------------------------- 1 | enum SyncingStatus { 2 | SYNCING = 'SYNCING', 3 | SYNCED = 'SYNCED', 4 | NOT_SYNCED = 'NOT_SYNCED', 5 | } 6 | 7 | export default SyncingStatus; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/constants/TransactionType.ts: -------------------------------------------------------------------------------- 1 | enum TransactionType { 2 | INCOMING = 0, 3 | OUTGOING = 1, 4 | COINBASE_REWARD = 2, 5 | FEE_REWARD = 3, 6 | INCOMING_TRADE = 4, 7 | OUTGOING_TRADE = 5, 8 | } 9 | 10 | export default TransactionType; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/constants/WalletType.ts: -------------------------------------------------------------------------------- 1 | enum WalletType { 2 | STANDARD_WALLET = 0, 3 | RATE_LIMITED = 1, 4 | ATOMIC_SWAP = 2, 5 | AUTHORIZED_PAYEE = 3, 6 | MULTI_SIG = 4, 7 | CUSTODY = 5, 8 | CAT = 6, 9 | RECOVERABLE = 7, 10 | DECENTRALIZED_ID = 8, 11 | POOLING_WALLET = 9, 12 | NFT = 10, 13 | DATA_LAYER = 11, 14 | } 15 | 16 | export default WalletType; 17 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/constants/defaultPlotter.ts: -------------------------------------------------------------------------------- 1 | import defaultsForPlotter from '../utils/defaultsForPlotter'; 2 | import optionsForPlotter from '../utils/optionsForPlotter'; 3 | import PlotterName from './PlotterName'; 4 | 5 | export default { 6 | displayName: 'Taco Proof of Space', 7 | options: optionsForPlotter(PlotterName.TACOPOS), 8 | defaults: defaultsForPlotter(PlotterName.TACOPOS), 9 | installInfo: { installed: true }, 10 | }; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Client'; 2 | export * from './services'; 3 | export * from './wallets'; 4 | export * from './constants'; 5 | export * from './utils'; 6 | export * from './@types'; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/services/Events.ts: -------------------------------------------------------------------------------- 1 | import Client from '../Client'; 2 | import ServiceName from '../constants/ServiceName'; 3 | import Service from './Service'; 4 | import type { Options } from './Service'; 5 | 6 | export default class Events extends Service { 7 | constructor(client: Client, options?: Options) { 8 | super(ServiceName.EVENTS, client, { 9 | skipAddService: true, 10 | ...options, 11 | }); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/services/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Daemon } from './Daemon'; 2 | export { default as Events } from './Events'; 3 | export { default as Farmer } from './Farmer'; 4 | export { default as FullNode } from './FullNode'; 5 | export { default as Harvester } from './Harvester'; 6 | export { default as Plotter } from './Plotter'; 7 | export { default as Service } from './Service'; 8 | export { default as Wallet } from './Wallet'; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/utils/ErrorData.ts: -------------------------------------------------------------------------------- 1 | export default class ErrorData extends Error { 2 | data: any; 3 | 4 | constructor(message: string, data: any) { 5 | super(message); 6 | 7 | this.data = data; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/utils/sleep.ts: -------------------------------------------------------------------------------- 1 | export default function sleep(ms: number) { 2 | return new Promise((resolve) => setTimeout(resolve, ms)); 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/utils/toCamelCase.ts: -------------------------------------------------------------------------------- 1 | import { camelCase, transform, isArray, isObject } from 'lodash'; 2 | 3 | export default function toCamelCase(object: Object): Object { 4 | return transform(object, (acc, value, key, target) => { 5 | const newKey = isArray(target) || key.indexOf('_') === -1 ? key : camelCase(key); 6 | 7 | acc[newKey] = isObject(value) ? toCamelCase(value) : value; 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/utils/toSafeNumber.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | import { transform } from 'lodash'; 3 | 4 | export default function toSafeNumber(object: Object): Object { 5 | return transform(object, (acc, value, key) => { 6 | if (value instanceof BigNumber && value.isInteger() && value.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER)) { 7 | acc[key] = value.toNumber(); 8 | } else { 9 | acc[key] = value; 10 | } 11 | }); 12 | } 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/utils/toSnakeCase.ts: -------------------------------------------------------------------------------- 1 | import { snakeCase, transform, isArray, isObject } from 'lodash'; 2 | 3 | export default function toSnakeCase(object: Object): Object { 4 | return transform(object, (acc, value, key, target) => { 5 | const newKey = isArray(target) ? key : snakeCase(key); 6 | 7 | acc[newKey] = isObject(value) ? toSnakeCase(value) : value; 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/wallets/Pool.ts: -------------------------------------------------------------------------------- 1 | import Wallet from '../services/Wallet'; 2 | 3 | export default class PoolWallet extends Wallet { 4 | async createNewWallet(initialTargetState: Object, fee: string) { 5 | return super.createNewWallet('pool_wallet', { 6 | mode: 'new', 7 | fee, 8 | initialTargetState, 9 | }); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/api/src/wallets/index.ts: -------------------------------------------------------------------------------- 1 | export { default as CAT } from './CAT'; 2 | export { default as DID } from './DID'; 3 | export { default as NFT } from './NFT'; 4 | export { default as Pool } from './Pool'; 5 | export { default as RL } from './RL'; 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/cypress.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'cypress'; 2 | 3 | export default defineConfig({ 4 | component: { 5 | devServer: { 6 | framework: 'react', 7 | bundler: 'vite', 8 | }, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Accordion/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Accordion'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Address/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Address'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/AdvancedOptions/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AdvancedOptions'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/AlertDialog/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AlertDialog'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Amount/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Amount'; 2 | export type { AmountProps } from './Amount'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/AspectRatio/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AspectRatio'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Autocomplete/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Autocomplete'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Back/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Back'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Button/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Button'; 2 | export type { ButtonProps } from './Button'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ButtonLoading/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonLoading'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ButtonSelected/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonSelected'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Card/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Card'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CardHero/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardHero'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CardKeyValue/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardKeyValue'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CardListItem/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardListItem'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CardSimple/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardSimple'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CardStep/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardStep'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Checkbox/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Checkbox'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ConfirmDialog/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ConfirmDialog'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CopyToClipboard/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CopyToClipboard'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CurrencyCode/CurrencyCode.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/CurrencyCode/CurrencyCode.tsx -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/CurrencyCode/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CurrencyCode'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/DarkModeToggle/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './DarkModeToggle'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/DialogActions/DialogActions.tsx: -------------------------------------------------------------------------------- 1 | import { DialogActions } from '@mui/material'; 2 | import styled from 'styled-components'; 3 | 4 | export default styled(DialogActions)` 5 | padding: ${({ theme }) => `${theme.spacing(2)} ${theme.spacing(3)}`}; 6 | `; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/DialogActions/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './DialogActions'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Dropdown/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Dropdown'; 2 | export { default as DropdownActions } from './DropdownActions'; 3 | export { default as DropdownIconButton } from './DropdownIconButton'; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Dropzone/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Dropzone'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ErrorBoundary/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ErrorBoundary'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/EstimatedFee/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './EstimatedFee'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fee/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Fee'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Flex/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Flex'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/Fonts.tsx: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from 'styled-components'; 2 | import '@fontsource/roboto/700.css'; 3 | import '@fontsource/roboto/500.css'; 4 | import '@fontsource/roboto/400.css'; 5 | import '@fontsource/roboto/300.css'; 6 | 7 | export default createGlobalStyle` 8 | body { 9 | font-family: "Roboto"; 10 | } 11 | `; 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/Fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/Fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/Fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Fonts'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.eot -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff2 -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Form/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Form'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/FormBackButton/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormBackButton'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/FormatBytes/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormatBytes'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/FormatConnectionStatus/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormatConnectionStatus'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/FormatLargeNumber/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormatLargeNumber'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/GuestRoute/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './GuestRoute'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Heading/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Heading'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/IconButton/IconButton.tsx: -------------------------------------------------------------------------------- 1 | import { IconButton } from '@mui/material'; 2 | import styled from 'styled-components'; 3 | 4 | const StyledIconButton = styled(IconButton)` 5 | padding: 0.2rem; 6 | `; 7 | 8 | export default StyledIconButton; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/IconButton/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './IconButton'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/IconMessage/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './IconMessage'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Indicator/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Indicator'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/InputBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './InputBase'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/LayoutDashboard/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutDashboard'; 2 | export { default as LayoutDashboardSub } from './LayoutDashboardSub'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/LayoutHero/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutHero'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/LayoutLoading/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutLoading'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/LayoutMain/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutMain'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Link/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Link'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Loading/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Loading'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/LoadingOverlay/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LoadingOverlay'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/LocaleProvider/index.ts: -------------------------------------------------------------------------------- 1 | export { default, LocaleContext } from './LocaleProvider'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/LocaleToggle/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LocaleToggle'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Log/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Log'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Logo/Logo.tsx: -------------------------------------------------------------------------------- 1 | import { Taco } from '@taco/icons'; 2 | import { Box, BoxProps } from '@mui/material'; 3 | import React from 'react'; 4 | import styled from 'styled-components'; 5 | 6 | const StyledTaco = styled(Taco)` 7 | max-width: 100%; 8 | width: auto; 9 | height: auto; 10 | `; 11 | 12 | export default function Logo(props: BoxProps) { 13 | return ( 14 | 15 | 16 | 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Logo/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Logo'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Menu/index.ts: -------------------------------------------------------------------------------- 1 | export { MenuContext, default as Menu } from './Menu'; 2 | export type { MenuProps, MenuContextInterface } from './Menu'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/MenuItem/index.ts: -------------------------------------------------------------------------------- 1 | export { default as MenuItem } from './MenuItem'; 2 | export type { MenuItemProps } from './MenuItem'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ModalDialogs/ModalDialogsContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | 3 | export default createContext(); 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ModalDialogs/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ModalDialogs'; 2 | 3 | export { default as ModalDialogsProvider } from './ModalDialogsProvider'; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Mode/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ModeProvider } from './ModeProvider'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/More/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './More'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Persist/index.ts: -------------------------------------------------------------------------------- 1 | export { default, PersistContext } from './Persist'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/PrivateRoute/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './PrivateRoute'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/RadioGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './RadioGroup'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/SandboxedIframe/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './SandboxedIframe'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Select/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Select'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Settings/SettingsLabel.tsx: -------------------------------------------------------------------------------- 1 | import { Typography } from '@mui/material'; 2 | import React, { type ReactNode } from 'react'; 3 | 4 | export type SettingsLabelProps = { 5 | children?: ReactNode; 6 | }; 7 | 8 | export default function SettingsLabel(props: SettingsLabelProps) { 9 | const { children } = props; 10 | 11 | return ( 12 | 13 | {children} 14 | 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Settings/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Settings'; 2 | export { default as SettingsApp } from './SettingsApp'; 3 | export { default as SettingsLabel } from './SettingsLabel'; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/SideBarItem/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './SideBarItem'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Spacer/Spacer.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import Flex from '../Flex'; 4 | 5 | export default function Spacer() { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Spacer/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Spacer'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Spinner/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Spinner'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/StateIndicator/StateIndicatorDot.tsx: -------------------------------------------------------------------------------- 1 | import { FiberManualRecord as FiberManualRecordIcon } from '@mui/icons-material'; 2 | import styled from 'styled-components'; 3 | 4 | export default styled(FiberManualRecordIcon)` 5 | font-size: 1rem; 6 | color: ${({ color }) => color}; 7 | `; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/StateIndicator/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './StateIndicator'; 2 | export { default as StateIndicatorDot } from './StateIndicatorDot'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/StateTypography/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './StateTypography'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Suspender/Suspender.tsx: -------------------------------------------------------------------------------- 1 | import { useRef, useMemo, useEffect } from 'react'; 2 | 3 | export default function Suspender() { 4 | const resolve = useRef<() => void>(); 5 | const promise = useMemo( 6 | () => 7 | new Promise((res) => { 8 | resolve.current = res; 9 | }), 10 | [] 11 | ); 12 | 13 | useEffect(() => () => { 14 | resolve.current?.(); 15 | }); 16 | 17 | throw promise; 18 | } 19 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Suspender/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Suspender'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Table/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Table'; 2 | export { default as TableControlled } from './TableControlled'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/TextField/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TextField'; 2 | export type { TextFieldProps } from './TextField'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/TextFieldNumber/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TextFieldNumber'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ThemeProvider/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ThemeProvider'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ToolbarSpacing/ToolbarSpacing.tsx: -------------------------------------------------------------------------------- 1 | import { makeStyles, Theme, createStyles } from '@mui/styles'; 2 | import React from 'react'; 3 | 4 | const useStyles = makeStyles((theme: Theme) => 5 | createStyles({ 6 | toolbar: theme.mixins.toolbar, 7 | }) 8 | ); 9 | 10 | export default function ToolbarSpacing() { 11 | const classes = useStyles(); 12 | 13 | return
; 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/ToolbarSpacing/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ToolbarSpacing'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Tooltip/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Tooltip'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/TooltipIcon/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TooltipIcon'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/TooltipTypography/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TooltipTypography'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/Truncate/index.ts: -------------------------------------------------------------------------------- 1 | export { default, truncateValue } from './Truncate'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/components/UnitFormat/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './UnitFormat'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/Mode.ts: -------------------------------------------------------------------------------- 1 | enum Mode { 2 | WALLET = 'wallet', 3 | FARMING = 'farming', 4 | } 5 | 6 | export default Mode; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/State.ts: -------------------------------------------------------------------------------- 1 | enum State { 2 | SUCCESS = 'SUCCESS', 3 | WARNING = 'WARNING', 4 | ERROR = 'ERROR', 5 | } 6 | 7 | export default State; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/StateColor.ts: -------------------------------------------------------------------------------- 1 | enum StateColor { 2 | SUCCESS = '#3AAC59', 3 | WARNING = '#f57c00', 4 | ERROR = '#F44336', 5 | } 6 | 7 | export default StateColor; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/Unit.ts: -------------------------------------------------------------------------------- 1 | enum Unit { 2 | TACO = 'taco', 3 | MOJO = 'mojo', 4 | CAT = 'cat', 5 | } 6 | 7 | export default Unit; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/UnitAliases.ts: -------------------------------------------------------------------------------- 1 | import Unit from './Unit'; 2 | 3 | // deprecated 4 | const UnitAliases = { 5 | [Unit.TACO]: ['ch', 'taco', 'xtx'], 6 | [Unit.MOJO]: ['mj', 'mojo', 'mojos'], 7 | [Unit.CAT]: ['cat', 'cc', 'colouredcoin'], 8 | }; 9 | 10 | export default UnitAliases; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/UnitFractionDigits.ts: -------------------------------------------------------------------------------- 1 | import Unit from './Unit'; 2 | 3 | const UnitFractionDigits = { 4 | [Unit.TACO]: 12, 5 | [Unit.MOJO]: 0, 6 | [Unit.CAT]: 3, 7 | }; 8 | 9 | export default UnitFractionDigits; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/UnitValue.ts: -------------------------------------------------------------------------------- 1 | import Unit from './Unit'; 2 | 3 | const UnitValue = { 4 | [Unit.TACO]: 1, 5 | [Unit.MOJO]: 1 / 1e12, 6 | [Unit.CAT]: 1 / 1e9, 7 | }; 8 | 9 | export default UnitValue; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Mode } from './Mode'; 2 | export { default as State } from './State'; 3 | export { default as StateColor } from './StateColor'; 4 | export { default as Unit } from './Unit'; 5 | export { default as UnitAliases } from './UnitAliases'; 6 | export { default as UnitValue } from './UnitValue'; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/errors/FileSizeError.ts: -------------------------------------------------------------------------------- 1 | export default class FileSizeError extends Error { 2 | code = 'FILE_SIZE_ERROR'; 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/errors/index.ts: -------------------------------------------------------------------------------- 1 | export { default as FileSizeError } from './FileSizeError'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/useCurrencyCode.ts: -------------------------------------------------------------------------------- 1 | import { useGetNetworkInfoQuery } from '@taco/api-react'; 2 | 3 | export default function useCurrencyCode(): string | undefined { 4 | const { data: networkInfo, isLoading } = useGetNetworkInfoQuery(); 5 | 6 | if (isLoading || !networkInfo) { 7 | return undefined; 8 | } 9 | 10 | return networkInfo.networkPrefix.toUpperCase(); 11 | } 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/useIsSimulator.ts: -------------------------------------------------------------------------------- 1 | export default function useIsSimulator(): boolean { 2 | return false; 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/useLocale.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react'; 2 | 3 | import { LocaleContext } from '../components/LocaleProvider'; 4 | 5 | export default function useLocale(): [string, (locale: string) => void] { 6 | const localeContext = useContext(LocaleContext); 7 | 8 | if (!localeContext) { 9 | throw new Error('You need to use LocaleProvider.'); 10 | } 11 | 12 | const { locale, setLocale } = localeContext; 13 | 14 | return [locale, setLocale]; 15 | } 16 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/useOpenExternal.ts: -------------------------------------------------------------------------------- 1 | import isElectron from 'is-electron'; 2 | 3 | export default function useOpenExternal(): (url: string) => void { 4 | function handleOpen(url: string) { 5 | if (isElectron()) { 6 | // @ts-ignore 7 | window.shell.openExternal(url); 8 | return; 9 | } 10 | 11 | window.open(url, '_blank'); 12 | } 13 | 14 | return handleOpen; 15 | } 16 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/usePersist.ts: -------------------------------------------------------------------------------- 1 | export default function usePersist(baseNamespace: string): (namespace?: string) => string { 2 | if (!baseNamespace) { 3 | throw new Error('baseNamespace is required'); 4 | } 5 | 6 | function handleGenerateNamespace(namespace?: string): string { 7 | return namespace ? `${baseNamespace}.${namespace}` : baseNamespace; 8 | } 9 | 10 | return handleGenerateNamespace; 11 | } 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/useShowDebugInformation.ts: -------------------------------------------------------------------------------- 1 | export default function useShowDebugInformation(): boolean { 2 | return true; 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/useSkipMigration.ts: -------------------------------------------------------------------------------- 1 | import { useLocalStorage } from '@taco/api-react'; 2 | 3 | export default function useSkipMigration(): [boolean, (skip: boolean) => void] { 4 | const [skip, setSkip] = useLocalStorage('skipMigration', false); 5 | 6 | return [skip, setSkip]; 7 | } 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/hooks/useTrans.ts: -------------------------------------------------------------------------------- 1 | import { useLingui } from '@lingui/react'; 2 | import { useCallback } from 'react'; 3 | 4 | export default function useTrans() { 5 | const { i18n } = useLingui(); 6 | 7 | const handleTranslate = useCallback( 8 | (messageId: string, values?: Object, options?: Object) => i18n._(messageId, values, options), 9 | [i18n] 10 | ); 11 | 12 | return handleTranslate; 13 | } 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components'; 2 | export * from './constants'; 3 | export * from './utils'; 4 | export * from './hooks'; 5 | export * from './theme'; 6 | export * from './screens'; 7 | export * as locales from './locales'; 8 | export * from './errors'; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/locales/README.md: -------------------------------------------------------------------------------- 1 | # Localization 2 | 3 | Thanks for helping to translate the GUI for Taco Blockchain. 4 | 5 | Please head over to our [Crowdin project](https://crowdin.com/project/taco-blockchain/) and add/edit translations there. 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/screens/SelectKey/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './SelectKey'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/screens/index.ts: -------------------------------------------------------------------------------- 1 | export { default as SelectKey } from './SelectKey/SelectKey'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/theme/index.ts: -------------------------------------------------------------------------------- 1 | export { default as dark } from './dark'; 2 | export { default as light } from './light'; 3 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/theme/light.ts: -------------------------------------------------------------------------------- 1 | import { createTheme } from '@mui/material/styles'; 2 | 3 | import theme from './default'; 4 | 5 | export default createTheme({ 6 | ...theme, 7 | palette: { 8 | ...theme.palette, 9 | background: { 10 | ...theme.palette.background, 11 | card: '#fff', 12 | }, 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/activateLocale.ts: -------------------------------------------------------------------------------- 1 | import type { I18n } from '@lingui/core'; 2 | import moment from 'moment'; 3 | 4 | export default function activateLocale(i18n: I18n, locale: string) { 5 | i18n.activate(locale); 6 | moment.locale([locale, 'en']); 7 | 8 | // @ts-ignore 9 | if (typeof window !== 'undefined' && window.ipcRenderer) { 10 | window.ipcRenderer.invoke('setLocale', locale); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/blockHeightToTimestamp.ts: -------------------------------------------------------------------------------- 1 | import type { Transaction } from '@taco/api'; 2 | 3 | const BLOCK_DURATION_SECONDS = (24 * 60 * 60) / 4608; 4 | 5 | export default function blockHeightToTimestamp(height: number, peakTransaction: Transaction): number { 6 | const diff = peakTransaction.confirmedAtHeight - height; 7 | const seconds = diff * BLOCK_DURATION_SECONDS; 8 | 9 | return peakTransaction.createdAtTime - seconds; 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/catToMojo.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | import Unit from '../constants/Unit'; 4 | import tacoFormatter from './tacoFormatter'; 5 | 6 | export default function catToMojo(cat: string | number | BigNumber): BigNumber { 7 | return tacoFormatter(cat, Unit.CAT).to(Unit.MOJO).toBigNumber(); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/getPoolInfo.ts: -------------------------------------------------------------------------------- 1 | import type { PoolInfo } from '@taco/api'; 2 | 3 | export default async function getPoolInfo(poolUrl: string): PoolInfo { 4 | const url = `${poolUrl}/pool_info`; 5 | const response = await fetch(url); 6 | return response.json(); 7 | } 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/getUnit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/core/src/utils/getUnit -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/getWalletSyncingStatus.ts: -------------------------------------------------------------------------------- 1 | import { SyncingStatus } from '@taco/api'; 2 | 3 | export default function getWalletSyncingStatus(walletState) { 4 | const { syncing, synced } = walletState; 5 | 6 | if (syncing) { 7 | return SyncingStatus.SYNCING; 8 | } 9 | if (synced) { 10 | return SyncingStatus.SYNCED; 11 | } 12 | 13 | return SyncingStatus.NOT_SYNCED; 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/isWindows.ts: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | 3 | const platform = os.platform(); 4 | 5 | export default platform && platform.startsWith('win'); 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/mojoToCAT.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | import Unit from '../constants/Unit'; 4 | import tacoFormatter from './tacoFormatter'; 5 | 6 | export default function mojoToCAT(mojo: string | number | BigNumber): BigNumber { 7 | return tacoFormatter(mojo, Unit.MOJO).to(Unit.CAT).toBigNumber(); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/mojoToCATLocaleString.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | import Unit from '../constants/Unit'; 4 | import tacoFormatter from './tacoFormatter'; 5 | 6 | export default function mojoToCATLocaleString(mojo: string | number | BigNumber, locale?: string) { 7 | return tacoFormatter(mojo, Unit.MOJO).to(Unit.CAT).toLocaleString(locale); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/mojoToTaco.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | import Unit from '../constants/Unit'; 4 | import tacoFormatter from './tacoFormatter'; 5 | 6 | export default function mojoToTaco(mojo: string | number | BigNumber): BigNumber { 7 | return tacoFormatter(mojo, Unit.MOJO).to(Unit.TACO).toBigNumber(); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/mojoToTacoLocaleString.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | import Unit from '../constants/Unit'; 4 | import tacoFormatter from './tacoFormatter'; 5 | 6 | export default function mojoToTacoLocaleString(mojo: string | number | BigNumber, locale?: string) { 7 | return tacoFormatter(mojo, Unit.MOJO).to(Unit.TACO).toLocaleString(locale); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/normalizePoolState.ts: -------------------------------------------------------------------------------- 1 | import type { PoolState } from '@taco/api'; 2 | 3 | import removeOldPoints from './removeOldPoints'; 4 | 5 | export default function normalizePoolState(poolState: PoolState): PoolState { 6 | return { 7 | ...poolState, 8 | points_acknowledged_24h: removeOldPoints(poolState.points_acknowledged_24h), 9 | points_found_24h: removeOldPoints(poolState.points_found_24h), 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/removeOldPoints.ts: -------------------------------------------------------------------------------- 1 | import type { Point } from '@taco/api'; 2 | 3 | const DAY_SECONDS = 60 * 60 * 24; 4 | 5 | export default function removeOldPoints(points: Point[], second: number = DAY_SECONDS): Point[] { 6 | const current = Date.now() / 1000; 7 | const dayBefore = current - second; 8 | 9 | return points?.filter((point) => { 10 | const [timestamp] = point; 11 | 12 | return timestamp >= dayBefore; 13 | }); 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/sleep.ts: -------------------------------------------------------------------------------- 1 | export default function sleep(ms: number) { 2 | return new Promise((resolve) => setTimeout(resolve, ms)); 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/src/utils/tacoToMojo.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js'; 2 | 3 | import Unit from '../constants/Unit'; 4 | import tacoFormatter from './tacoFormatter'; 5 | 6 | export default function tacoToMojo(taco: string | number | BigNumber): BigNumber { 7 | return tacoFormatter(taco, Unit.TACO).to(Unit.MOJO).toBigNumber(); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/core/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import react from '@vitejs/plugin-react'; 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | server: { 8 | fs: { 9 | // Allow serving files from one level up to the project root 10 | allow: ['..'], 11 | }, 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/.env.example: -------------------------------------------------------------------------------- 1 | LOCAL_TEST=true 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/entitlements.mac.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-jit 6 | 7 | 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/public/favicon.ico -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/remote.md: -------------------------------------------------------------------------------- 1 | # Connecting the UI to a Remote Daemon 2 | 3 | _This instructional how-to has been updated and [moved to the wiki](https://github.com/Taco-Network/taco-blockchain/wiki/Connecting-the-UI-to-a-remote-daemon)._ 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.eot -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.ttf -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff2 -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/audio.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/audio_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/audio_dark.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/circle-cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/circle-cropped.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/document.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/document_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/document_dark.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/image.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/image_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/image_dark.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/model.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/model_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/model_dark.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/taco.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/taco.icns -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/taco.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/taco.ico -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/taco.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/taco64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/taco64x64.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/taco_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/taco_circle.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/unknown.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/unknown_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/unknown_dark.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/video.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/assets/img/video_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/assets/img/video_dark.png -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/app/App.tsx: -------------------------------------------------------------------------------- 1 | import { ModeProvider, Persist } from '@taco/core'; 2 | import React from 'react'; 3 | 4 | import AppRouter from './AppRouter'; 5 | 6 | export default function App() { 7 | return ( 8 | 9 | 10 | 11 | 12 | 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/nfts/NFTTitle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/src/components/nfts/NFTTitle.tsx -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/offers/NFTOfferExchangeType.ts: -------------------------------------------------------------------------------- 1 | enum NFTOfferExchangeType { 2 | NFTForToken = 'nft_for_token', 3 | TokenForNFT = 'token_for_nft', 4 | } 5 | 6 | export default NFTOfferExchangeType; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/offers/OfferAsset.ts: -------------------------------------------------------------------------------- 1 | enum OfferAsset { 2 | TACO = 'TACO', 3 | TOKEN = 'TOKEN', 4 | NFT = 'NFT', 5 | } 6 | 7 | export default OfferAsset; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/offers/OfferEditorRowData.ts: -------------------------------------------------------------------------------- 1 | import type BigNumber from 'bignumber.js'; 2 | 3 | import OfferRowData from './OfferRowData'; 4 | 5 | type OfferEditorRowData = OfferRowData & { 6 | spendableBalance: BigNumber; 7 | spendableBalanceString?: string; 8 | }; 9 | 10 | export default OfferEditorRowData; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/offers/OfferLocalStorage.ts: -------------------------------------------------------------------------------- 1 | enum OfferLocalStorageKeys { 2 | SUPPRESS_SHARE_ON_CREATE = 'suppressShareOnCreate', 3 | } 4 | 5 | export default OfferLocalStorageKeys; 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/offers/OfferRowData.tsx: -------------------------------------------------------------------------------- 1 | import { type WalletType } from '@taco/api'; 2 | import type BigNumber from 'bignumber.js'; 3 | 4 | type OfferRowData = { 5 | amount: string; 6 | assetWalletId: number; // 0 if no selection made 7 | walletType: WalletType; 8 | }; 9 | 10 | export default OfferRowData; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/offers/OfferState.ts: -------------------------------------------------------------------------------- 1 | enum OfferState { 2 | PENDING_ACCEPT = 'PENDING_ACCEPT', 3 | PENDING_CONFIRM = 'PENDING_CONFIRM', 4 | PENDING_CANCEL = 'PENDING_CANCEL', 5 | CANCELLED = 'CANCELLED', 6 | CONFIRMED = 'CONFIRMED', 7 | FAILED = 'FAILED', 8 | } 9 | 10 | export default OfferState; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/pool/PoolHeader.tsx: -------------------------------------------------------------------------------- 1 | import { createTeleporter } from 'react-teleporter'; 2 | 3 | const PoolHeaderTeleporter = createTeleporter(); 4 | 5 | export const PoolHeaderSource = PoolHeaderTeleporter.Source; 6 | 7 | export const PoolHeaderTarget = PoolHeaderTeleporter.Target; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/components/settings/SettingsGeneral.tsx: -------------------------------------------------------------------------------- 1 | import { Grid } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import SettingsPanel from './SettingsPanel'; 5 | 6 | export default function SettingsGeneral() { 7 | return ( 8 | 9 | 10 | 11 | 12 | 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/config/config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | multipleWallets: process.env.MULTIPLE_WALLETS === 'true', 3 | local_test: process.env.LOCAL_TEST === 'true', 4 | }; 5 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/config/env.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv'; 2 | 3 | dotenv.config(); 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/FarmerStatus.ts: -------------------------------------------------------------------------------- 1 | enum FarmerStatus { 2 | FARMING = 'FARMING', 3 | SYNCHING = 'SYNCHING', 4 | NOT_AVAILABLE = 'NOT_AVAILABLE', 5 | NOT_CONNECTED = 'NOT_CONNECTED', 6 | NOT_RUNNING = 'NOT_RUNNING', 7 | } 8 | 9 | export default FarmerStatus; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/FullNodeState.ts: -------------------------------------------------------------------------------- 1 | enum FullNodeState { 2 | SYNCHING = 'SYNCHING', 3 | ERROR = 'ERROR', 4 | SYNCED = 'SYNCED', 5 | } 6 | 7 | export default FullNodeState; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/ModeServices.ts: -------------------------------------------------------------------------------- 1 | import { ServiceName } from '@taco/api'; 2 | import { Mode } from '@taco/core'; 3 | 4 | export default { 5 | [Mode.WALLET]: [ServiceName.WALLET], 6 | [Mode.FARMING]: [ServiceName.WALLET, ServiceName.FULL_NODE, ServiceName.FARMER, ServiceName.HARVESTER], 7 | }; 8 | 9 | export const SimulatorServices = [ServiceName.WALLET, ServiceName.SIMULATOR]; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/OfferBuilderSectionType.ts: -------------------------------------------------------------------------------- 1 | enum OfferBuilderSectionType { 2 | XTX = 'XTX', 3 | TOKENS = 'TOKENS', 4 | NFTS = 'NFTS', 5 | FEE = 'FEE', 6 | } 7 | 8 | export default OfferBuilderSectionType; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/OfferBuilderTradeSide.ts: -------------------------------------------------------------------------------- 1 | enum OfferBuilderTradeSide { 2 | OFFERING = 'OFFERING', 3 | REQUESTING = 'REQUESTING', 4 | } 5 | 6 | export default OfferBuilderTradeSide; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/PlotNFTState.ts: -------------------------------------------------------------------------------- 1 | // PoolSingletonState 2 | 3 | enum PlotNFTState { 4 | SELF_POOLING = 1, 5 | LEAVING_POOL = 2, 6 | FARMING_TO_POOL = 3, 7 | } 8 | 9 | export default PlotNFTState; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/PlotStatus.ts: -------------------------------------------------------------------------------- 1 | enum PlotStatus { 2 | SUBMITTED = 'SUBMITTED', 3 | RUNNING = 'RUNNING', 4 | REMOVING = 'REMOVING', 5 | FINISHED = 'FINISHED', 6 | } 7 | 8 | export default PlotStatus; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/PlotterName.ts: -------------------------------------------------------------------------------- 1 | enum PlotterName { 2 | BLADEBIT = 'bladebit', 3 | BLADEBIT2 = 'bladebit2', 4 | TACOPOS = 'tacopos', 5 | MADMAX = 'madmax', 6 | } 7 | 8 | export default PlotterName; 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/SyncingStatus.ts: -------------------------------------------------------------------------------- 1 | enum SyncingStatus { 2 | SYNCING = 'SYNCING', 3 | SYNCED = 'SYNCED', 4 | NOT_SYNCED = 'NOT_SYNCED', 5 | } 6 | 7 | export default SyncingStatus; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/TransactionType.ts: -------------------------------------------------------------------------------- 1 | enum TransactionType { 2 | INCOMING = 0, 3 | OUTGOING = 1, 4 | COINBASE_REWARD = 2, 5 | FEE_REWARD = 3, 6 | INCOMING_TRADE = 4, 7 | OUTGOING_TRADE = 5, 8 | } 9 | 10 | export default TransactionType; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/constants/plotLocalStorage.ts: -------------------------------------------------------------------------------- 1 | enum PlotLocalStorageKeys { 2 | TMPDIR = 'tmpdir', 3 | TMP2DIR = 'tmp2dir', 4 | FINALDIR = 'finaldir', 5 | } 6 | 7 | export default PlotLocalStorageKeys; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/electron/preload.js: -------------------------------------------------------------------------------- 1 | const { ipcRenderer, shell } = require('electron'); 2 | 3 | window.ipcRenderer = ipcRenderer; 4 | window.shell = shell; 5 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/fonts.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.woff'; 2 | declare module '*.woff2'; 3 | declare module '*.ttf'; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/hooks/useEnableAutoLogin.ts: -------------------------------------------------------------------------------- 1 | import { useLocalStorage } from '@taco/api-react'; 2 | 3 | export default function useEnableAutoLogin() { 4 | return useLocalStorage('enableAutoLogin', true); 5 | } 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/hooks/useEnableDataLayerService.ts: -------------------------------------------------------------------------------- 1 | import { useLocalStorage } from '@taco/api-react'; 2 | 3 | export default function useEnableDataLayerService() { 4 | return useLocalStorage('enableDataLayerService', false); 5 | } 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/hooks/useEnableFilePropagationServer.ts: -------------------------------------------------------------------------------- 1 | import { useLocalStorage } from '@taco/api-react'; 2 | 3 | export default function useEnableFilePropagationServer() { 4 | return useLocalStorage('enableFilePropagationServer', false); 5 | } 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/hooks/useHideObjectionableContent.ts: -------------------------------------------------------------------------------- 1 | import { useLocalStorage } from '@taco/api-react'; 2 | 3 | export default function useHideObjectionableContent() { 4 | return useLocalStorage('hideObjectionableContent', true); 5 | } 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/hooks/useIsMainnet.tsx: -------------------------------------------------------------------------------- 1 | import { useGetNetworkInfoQuery } from '@taco/api-react'; 2 | 3 | export default function useIsMainnet(): boolean | undefined { 4 | const { data: networkInfo, isLoading } = useGetNetworkInfoQuery(); 5 | const networkPrefix = networkInfo?.networkPrefix; 6 | 7 | if (!networkPrefix) { 8 | return undefined; 9 | } 10 | 11 | return networkPrefix.toLowerCase() === 'xtx'; 12 | } 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/hooks/useNachoNFTs.ts: -------------------------------------------------------------------------------- 1 | import { useGetNFTsByNFTIDsQuery, useLocalStorage } from '@taco/api-react'; 2 | 3 | export default function useNachoNFTs() { 4 | const [nachoNFTsString] = useLocalStorage('nachoNFTs', ''); 5 | const nachoNFTIDs = nachoNFTsString.split(',').map((nachoNFT: string) => nachoNFT.trim()); 6 | 7 | return useGetNFTsByNFTIDsQuery({ nftIds: nachoNFTIDs }, { skip: !nachoNFTsString || nachoNFTIDs.length === 0 }); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/hooks/useOpenExternal.ts: -------------------------------------------------------------------------------- 1 | import isElectron from 'is-electron'; 2 | 3 | export default function useOpenExternal(): (url: string) => void { 4 | function handleOpen(url: string) { 5 | if (isElectron()) { 6 | // @ts-ignore 7 | window.shell.openExternal(url); 8 | return; 9 | } 10 | 11 | window.open(url, '_blank'); 12 | } 13 | 14 | return handleOpen; 15 | } 16 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/index.tsx: -------------------------------------------------------------------------------- 1 | import './polyfill'; 2 | import './config/env'; 3 | import React from 'react'; 4 | import ReactDOM from 'react-dom'; 5 | 6 | import App from './components/app/App'; 7 | 8 | // we need to use additional root for hot reloading 9 | function Root() { 10 | return ; 11 | } 12 | 13 | ReactDOM.render(, document.querySelector('#root')); 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/polyfill.ts: -------------------------------------------------------------------------------- 1 | import 'core-js/stable'; 2 | import 'regenerator-runtime/runtime'; 3 | import { polyfill } from 'es6-promise'; 4 | import 'isomorphic-fetch'; 5 | 6 | polyfill(); 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Block.ts: -------------------------------------------------------------------------------- 1 | import type Foliage from './Foliage'; 2 | import type FoliageTransactionBlock from './FoliageTransactionBlock'; 3 | 4 | type Block = { 5 | foliage_transaction_block: FoliageTransactionBlock; 6 | foliage: Foliage; 7 | }; 8 | 9 | export default Block; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Challenge.ts: -------------------------------------------------------------------------------- 1 | type Challenge = { 2 | challenge: string; 3 | difficulty: number; 4 | height: number; 5 | estimates: number[]; 6 | weight: number; 7 | timestamp?: number; 8 | }; 9 | 10 | export default Challenge; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Coin.ts: -------------------------------------------------------------------------------- 1 | import { WalletType } from '@taco/api'; 2 | 3 | type Coin = { 4 | confirmed_block_index: number; 5 | spent_block_index: number; 6 | spent: boolean; 7 | coinbase: boolean; 8 | wallet_type: WalletType; 9 | wallet_id: number; 10 | parent_coin_info: string; 11 | }; 12 | 13 | export default Coin; 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/CoinSolution.ts: -------------------------------------------------------------------------------- 1 | import type Coin from './Coin'; 2 | import type Program from './Program'; 3 | 4 | type CoinSolution = { 5 | coin: Coin; 6 | solution: Program; 7 | }; 8 | 9 | export default CoinSolution; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Connection.ts: -------------------------------------------------------------------------------- 1 | type Connection = { 2 | bytes_read: number; 3 | bytes_written: number; 4 | creation_time: number; 5 | last_message_time: number; 6 | local_host: string; 7 | local_port: number; 8 | node_id: string; 9 | peer_host: string; 10 | peer_port: number; 11 | peer_server_port: number; 12 | type: number; 13 | }; 14 | 15 | export default Connection; 16 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/FarmingInfo.ts: -------------------------------------------------------------------------------- 1 | type FarmingInfo = { 2 | challenge_hash: string; 3 | signage_point: string; 4 | timestamp: number; 5 | passed_filter: number; 6 | proofs: number; 7 | total_plots: number; 8 | }; 9 | 10 | export default FarmingInfo; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Fingerprint.ts: -------------------------------------------------------------------------------- 1 | type Fingerprint = number; 2 | 3 | export default Fingerprint; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/FoliageTransactionBlock.ts: -------------------------------------------------------------------------------- 1 | type FoliageTransactionBlock = { 2 | additions_root: string; 3 | filter_hash: string; 4 | height: number; 5 | prev_block_hash: string; 6 | removals_root: string; 7 | timestamp: string; 8 | transactions_info_hash: string; 9 | }; 10 | 11 | export default FoliageTransactionBlock; 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/G2Element.ts: -------------------------------------------------------------------------------- 1 | type G2Element = string; 2 | 3 | export default G2Element; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/InitialTargetState.ts: -------------------------------------------------------------------------------- 1 | type InitialTargetState = 2 | | { 3 | state: 'SELF_POOLING'; 4 | } 5 | | { 6 | state: 'FARMING_TO_POOL'; 7 | pool_url: string; 8 | relative_lock_height: number; 9 | target_puzzle_hash: string; 10 | }; 11 | 12 | export default InitialTargetState; 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/NFTSelection.tsx: -------------------------------------------------------------------------------- 1 | import type NFTInfo from '@taco/api'; 2 | 3 | type NFTSelection = { 4 | items: NFTInfo[]; 5 | }; 6 | 7 | export default NFTSelection; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Peak.ts: -------------------------------------------------------------------------------- 1 | type Peak = { 2 | height: number; 3 | timestamp: number; 4 | }; 5 | 6 | export default Peak; 7 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Plot.ts: -------------------------------------------------------------------------------- 1 | type Plot = { 2 | plot_id: string; 3 | filename: string; 4 | file_size: number; 5 | size: number; 6 | local_sk: string; 7 | farmer_public_key: string; 8 | plot_public_key: string; 9 | pool_public_key: string; 10 | pool_contract_puzzle_hash: string; 11 | duplicates?: Plot[]; 12 | }; 13 | 14 | export default Plot; 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/PlotNFT.ts: -------------------------------------------------------------------------------- 1 | import type PoolState from './PoolState'; 2 | import type PoolWalletStatus from './PoolWalletStatus'; 3 | import type WalletBalance from './WalletBalance'; 4 | 5 | type PlotNFT = { 6 | pool_state: PoolState; 7 | wallet_balance: WalletBalance; 8 | pool_wallet_status: PoolWalletStatus; 9 | }; 10 | 11 | export default PlotNFT; 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/PlotNFTExternal.ts: -------------------------------------------------------------------------------- 1 | import type PoolState from './PoolState'; 2 | 3 | type PlotNFTExternal = { 4 | pool_state: PoolState; 5 | }; 6 | 7 | export default PlotNFTExternal; 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/PlotQueueItem.ts: -------------------------------------------------------------------------------- 1 | import PlotStatus from '../constants/PlotStatus'; 2 | 3 | type PlotQueueItem = { 4 | id: string; 5 | queue: string; 6 | size: number; 7 | parallel: boolean; 8 | delay: number; 9 | state: PlotStatus; 10 | error?: string; 11 | log?: string; 12 | progress?: number; 13 | }; 14 | 15 | export default PlotQueueItem; 16 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Point.ts: -------------------------------------------------------------------------------- 1 | type Point = [number, number]; 2 | 3 | export default Point; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/PoolInfo.ts: -------------------------------------------------------------------------------- 1 | type PoolInfo = { 2 | name: string; 3 | description: string; 4 | pool_url: string; 5 | fee: string; 6 | logo_url: string; 7 | minimum_difficulty: number; 8 | protocol_version: string; 9 | relative_lock_height: number; 10 | target_puzzle_hash: string; 11 | }; 12 | 13 | export default PoolInfo; 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/Program.ts: -------------------------------------------------------------------------------- 1 | type Program = {}; 2 | 3 | export default Program; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/ProofsOfSpace.ts: -------------------------------------------------------------------------------- 1 | type ProofsOfSpace = { 2 | [key: string]: [string, ProofsOfSpace][]; 3 | }; 4 | 5 | export default ProofsOfSpace; 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/SignagePoint.ts: -------------------------------------------------------------------------------- 1 | type SignagePoint = { 2 | challenge_hash: string; 3 | challenge_chain_sp: string; 4 | reward_chain_sp: string; 5 | difficulty: number; 6 | sub_slot_iters: number; 7 | signage_point_index: number; 8 | }; 9 | 10 | export default SignagePoint; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/SpendBundle.ts: -------------------------------------------------------------------------------- 1 | import type CoinSolution from './CoinSolution'; 2 | import type G2Element from './G2Element'; 3 | 4 | type SpendBundle = { 5 | coin_solutions: CoinSolution[]; 6 | aggregated_signature: G2Element; 7 | }; 8 | 9 | export default SpendBundle; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/UnconfirmedPlotNFT.ts: -------------------------------------------------------------------------------- 1 | import PlotNFTState from '../constants/PlotNFTState'; 2 | 3 | type UnconfirmedPlotNFT = { 4 | fingerprint: string; 5 | transactionId: string; 6 | state: PlotNFTState; 7 | poolUrl?: string; 8 | }; 9 | 10 | export default UnconfirmedPlotNFT; 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/types/WalletBalance.ts: -------------------------------------------------------------------------------- 1 | type WalletBalance = { 2 | wallet_id: number; 3 | confirmed_wallet_balance: number; 4 | max_send_amount: number; 5 | pending_change: number; 6 | pending_coin_removal_count: number; 7 | spendable_balance: number; 8 | unconfirmed_wallet_balance: number; 9 | unspent_coin_count: number; 10 | balance_pending: number; 11 | }; 12 | 13 | export default WalletBalance; 14 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/blockHeightToTimestamp.ts: -------------------------------------------------------------------------------- 1 | import type Peak from '../types/Peak'; 2 | 3 | const BLOCK_DURATION_SECONDS = (24 * 60 * 60) / 4608; 4 | 5 | export default function blockHeightToTimestamp(height: number, peak: Peak): number { 6 | const diff = peak.height - height; 7 | const seconds = diff * BLOCK_DURATION_SECONDS; 8 | 9 | return peak.timestamp - seconds; 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/computeHash.ts: -------------------------------------------------------------------------------- 1 | import crypto from 'crypto'; 2 | 3 | export default function computeHash(content: string, options: { hash?: string; encoding?: string }): string { 4 | const { hash, encoding } = options; 5 | return crypto 6 | .createHash(hash ?? 'sha256') 7 | .update(content, (encoding ?? 'binary') as crypto.Encoding) 8 | .digest('hex'); 9 | } 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/download.ts: -------------------------------------------------------------------------------- 1 | export default async function download(url: string): Promise { 2 | const { ipcRenderer } = window as any; 3 | 4 | return ipcRenderer?.invoke('download', { 5 | url, 6 | }); 7 | } 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/findCATWalletByAssetId.ts: -------------------------------------------------------------------------------- 1 | import type { Wallet } from '@taco/api'; 2 | import { WalletType } from '@taco/api'; 3 | 4 | export default function findCATWalletByAssetId(wallets: Wallet[], assetId: string) { 5 | return wallets.find( 6 | (wallet) => wallet.type === WalletType.CAT && wallet.meta?.assetId?.toLowerCase() === assetId.toLowerCase() 7 | ); 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/getPoolInfo.ts: -------------------------------------------------------------------------------- 1 | import type { PoolInfo } from '@taco/api'; 2 | import { toCamelCase } from '@taco/api'; 3 | 4 | export default async function getPoolInfo(poolUrl: string): PoolInfo { 5 | const url = `${poolUrl}/pool_info`; 6 | const response = await fetch(url); 7 | const data = await response.json(); 8 | 9 | return toCamelCase(data); 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/getUnknownCATs.ts: -------------------------------------------------------------------------------- 1 | import type { Wallet } from '@taco/api'; 2 | 3 | import findCATWalletByAssetId from './findCATWalletByAssetId'; 4 | 5 | export default function getUnknownCATs(wallets: Wallet[], assetIds: string[]): string[] { 6 | return assetIds.filter((assetId) => !findCATWalletByAssetId(wallets, assetId)); 7 | } 8 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/isContentHashValid.ts: -------------------------------------------------------------------------------- 1 | import computeHash from './computeHash'; 2 | 3 | export default function isContentHashValid(content: string, hash: string, encoding?: string): boolean { 4 | const computedHash = computeHash(content, { encoding }); 5 | let otherHash = hash.toLowerCase(); 6 | if (otherHash.startsWith('0x')) { 7 | otherHash = otherHash.substring(2); 8 | } 9 | return computedHash === otherHash; 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/isLocalhost.ts: -------------------------------------------------------------------------------- 1 | export default function isLocalhost(ip: string): boolean { 2 | return ip === '::1' || ip === '127.0.0.1'; 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/isRankingAttribute.ts: -------------------------------------------------------------------------------- 1 | import type { NFTAttribute } from '@taco/api'; 2 | 3 | export default function isRankingAttribute(attribute: NFTAttribute) { 4 | if ('max_value' in attribute && typeof attribute.max_value === 'number') { 5 | return true; 6 | } 7 | 8 | return false; 9 | } 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/isWindows.ts: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | 3 | const platform = os.platform(); 4 | 5 | export default platform && platform.startsWith('win'); 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/mergeArrayItem.ts: -------------------------------------------------------------------------------- 1 | export default function mergeArrayItem( 2 | array: T[] | undefined, 3 | identity: (item: T) => boolean, 4 | object: Partial 5 | ): T[] { 6 | return array?.map((item) => { 7 | if (identity(item)) { 8 | return { 9 | ...item, 10 | ...object, 11 | }; 12 | } 13 | 14 | return item; 15 | }); 16 | } 17 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/normalizePoolState.ts: -------------------------------------------------------------------------------- 1 | import PoolState from '../types/PoolState'; 2 | import removeOldPoints from './removeOldPoints'; 3 | 4 | export default function normalizePoolState(poolState: PoolState): PoolState { 5 | return { 6 | ...poolState, 7 | points_acknowledged_24h: removeOldPoints(poolState.points_acknowledged_24h), 8 | points_found_24h: removeOldPoints(poolState.points_found_24h), 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/normalizeUrl.ts: -------------------------------------------------------------------------------- 1 | import normalize from 'normalize-url'; 2 | 3 | export default function normalizeUrl(url: string): string { 4 | return normalize(url, { 5 | defaultProtocol: 'https:', 6 | stripAuthentication: false, 7 | stripTextFragment: false, 8 | stripWWW: false, 9 | removeQueryParameters: false, 10 | removeTrailingSlash: false, 11 | removeSingleSlash: false, 12 | sortQueryParameters: false, 13 | }); 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/plot_sizes.js: -------------------------------------------------------------------------------- 1 | export function calculateSizeFromK(k) { 2 | return Math.floor(780 * k * 2 ** (k - 10)); 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/removeOldPoints.ts: -------------------------------------------------------------------------------- 1 | import type Point from '../types/Point'; 2 | 3 | const DAY_SECONDS = 60 * 60 * 24; 4 | 5 | export default function removeOldPoints(points: Point[], second: number = DAY_SECONDS): Point[] { 6 | const current = Date.now() / 1000; 7 | const dayBefore = current - second; 8 | 9 | return points?.filter((point) => { 10 | const [timestamp] = point; 11 | 12 | return timestamp >= dayBefore; 13 | }); 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/sleep.ts: -------------------------------------------------------------------------------- 1 | export default function sleep(ms: number) { 2 | return new Promise((resolve) => setTimeout(resolve, ms)); 3 | } 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/untildify.ts: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | 3 | const homeDirectory = os.homedir(); 4 | 5 | export default function untildify(pathWithTilde: string): string { 6 | if (typeof pathWithTilde !== 'string') { 7 | throw new TypeError(`Expected a string, got ${typeof pathWithTilde}`); 8 | } 9 | 10 | return homeDirectory ? pathWithTilde.replace(/^~(?=$|\/|\\)/, homeDirectory) : pathWithTilde; 11 | } 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/src/util/wallet_types.js: -------------------------------------------------------------------------------- 1 | export const STANDARD_WALLET = 0; 2 | export const RATE_LIMITED = 1; 3 | export const ATOMIC_SWAP = 2; 4 | export const AUTHORIZED_PAYEE = 3; 5 | export const MULTI_SIG = 4; 6 | export const CUSTODY = 5; 7 | export const COLOURED_COIN = 6; 8 | export const RECOVERABLE = 7; 9 | export const DECENTRALIZED_ID = 8; 10 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/gui/tacoblockchain.provisionprofile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco-blockchain-gui/packages/gui/tacoblockchain.provisionprofile -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Farm.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import FarmIcon from './images/farm.svg'; 5 | 6 | export default function Farm(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Farming.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import FarmingIcon from './images/Farming.svg'; 5 | 6 | export default function Farming(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Fees.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import FeesIcon from './images/Fees.svg'; 5 | 6 | export default function Fees(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/FullNode.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import FullNodeIcon from './images/FullNode.svg'; 5 | 6 | export default function FullNode(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Keys.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import KeysIcon from './images/keys.svg'; 5 | 6 | export default function Keys(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Link.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import LinkSmallIcon from './images/LinkSmall.svg'; 5 | 6 | export default function LinkSmall(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Offering.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import OfferingIcon from './images/Offering.svg'; 5 | 6 | export default function Offering(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Plot.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import PlotIcon from './images/plot.svg'; 5 | 6 | export default function Plot(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/PlotHero.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import PlotHeroIcon from './images/PlotHero.svg'; 5 | 6 | export default function PlotHero(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Plots.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import PlotsIcon from './images/Plots.svg'; 5 | 6 | export default function Plots(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Pool.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import FarmIcon from './images/pool.svg'; 5 | 6 | export default function Farm(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Pooling.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import PoolingIcon from './images/Pooling.svg'; 5 | 6 | export default function Pooling(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Requesting.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import RequestingIcon from './images/Requesting.svg'; 5 | 6 | export default function Requesting(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Settings.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import SettingsIcon from './images/settings.svg'; 5 | 6 | export default function Settings(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Taco.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import TacoIcon from './images/taco.svg'; 5 | 6 | export default function Keys(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Tokens.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import TokensIcon from './images/Tokens.svg'; 5 | 6 | export default function Tokens(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Trade.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import TradeIcon from './images/trade.svg'; 5 | 6 | export default function Trade(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/Wallet.tsx: -------------------------------------------------------------------------------- 1 | import { SvgIcon, SvgIconProps } from '@mui/material'; 2 | import React from 'react'; 3 | 4 | import WalletIcon from './images/wallet.svg'; 5 | 6 | export default function Wallet(props: SvgIconProps) { 7 | return ; 8 | } 9 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/images/NFTs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/icons/src/images/NFTsSmall.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/components/hero/WalletHero.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Routes, Route } from 'react-router-dom'; 3 | 4 | import WalletHeroAdd from './WalletHeroAdd'; 5 | import WalletHeroWallets from './WalletHeroWallets'; 6 | 7 | export default function Wallets() { 8 | return ( 9 | 10 | } /> 11 | } /> 12 | 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export { default as WalletName } from './WalletName'; 2 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { default as useIsWalletSynced } from './useIsWalletSynced'; 2 | export { default as useWallet } from './useWallet'; 3 | export { default as useWalletHumanValue } from './useWalletHumanValue'; 4 | export { default as useWalletState } from './useWalletState'; 5 | export { default as useWalletTransactions } from './useWalletTransactions'; 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/hooks/useIsWalletSynced.ts: -------------------------------------------------------------------------------- 1 | import { SyncingStatus } from '@taco/api'; 2 | 3 | import useWalletState from './useWalletState'; 4 | 5 | export default function useIsWalletSynced(): boolean { 6 | const { state, isLoading } = useWalletState(); 7 | const isWalletSynced = !isLoading && state === SyncingStatus.SYNCED; 8 | 9 | return isWalletSynced; 10 | } 11 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components'; 2 | export * from './constants'; 3 | export * from './hooks'; 4 | export * from './utils'; 5 | export * as locales from './locales'; 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/locales/README.md: -------------------------------------------------------------------------------- 1 | # Localization 2 | 3 | Thanks for helping to translate the GUI for Taco Blockchain. 4 | 5 | Please head over to our [Crowdin project](https://crowdin.com/project/taco-blockchain/) and add/edit translations there. 6 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/utils/getWalletPrimaryTitle.ts: -------------------------------------------------------------------------------- 1 | import { WalletType } from '@taco/api'; 2 | import type { Wallet } from '@taco/api'; 3 | 4 | export default function getWalletPrimaryTitle(wallet: Wallet): string { 5 | switch (wallet.type) { 6 | case WalletType.STANDARD_WALLET: 7 | return 'Taco'; 8 | default: 9 | return wallet.meta?.name ?? wallet.name; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/utils/getWalletSyncingStatus.ts: -------------------------------------------------------------------------------- 1 | import { SyncingStatus } from '@taco/api'; 2 | 3 | export default function getWalletSyncingStatus(walletState) { 4 | const { syncing, synced } = walletState; 5 | 6 | if (syncing) { 7 | return SyncingStatus.SYNCING; 8 | } 9 | if (synced) { 10 | return SyncingStatus.SYNCED; 11 | } 12 | 13 | return SyncingStatus.NOT_SYNCED; 14 | } 15 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { default as getWalletPrimaryTitle } from './getWalletPrimaryTitle'; 2 | export { default as getWalletSyncingStatus } from './getWalletSyncingStatus'; 3 | export { default as isCATWalletPresent } from './isCATWalletPresent'; 4 | -------------------------------------------------------------------------------- /taco-blockchain-gui/packages/wallets/src/utils/isCATWalletPresent.ts: -------------------------------------------------------------------------------- 1 | import type { Wallet, CATToken } from '@taco/api'; 2 | import { WalletType } from '@taco/api'; 3 | 4 | export default function isCATWalletPresent(wallets: Wallet[], token: CATToken): boolean { 5 | return !!wallets?.find((wallet) => { 6 | if (wallet.type === WalletType.CAT && wallet.meta?.assetId === token.assetId) { 7 | return true; 8 | } 9 | 10 | return false; 11 | }); 12 | } 13 | -------------------------------------------------------------------------------- /taco-blockchain-gui/src/locales/README.md: -------------------------------------------------------------------------------- 1 | # Localization 2 | 3 | Thanks for helping to translate the GUI for Taco Blockchain. 4 | 5 | Please head over to our [Crowdin project](https://crowdin.com/project/taco-blockchain/) and add/edit translations there. 6 | -------------------------------------------------------------------------------- /taco/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pkg_resources import DistributionNotFound, get_distribution, resource_filename 4 | 5 | try: 6 | __version__ = get_distribution("taco-blockchain").version 7 | except DistributionNotFound: 8 | # package is not installed 9 | __version__ = "unknown" 10 | 11 | PYINSTALLER_SPEC_PATH = resource_filename("taco", "pyinstaller.spec") 12 | -------------------------------------------------------------------------------- /taco/clvm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/clvm/__init__.py -------------------------------------------------------------------------------- /taco/clvm/singleton.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from taco.wallet.puzzles.load_clvm import load_clvm_maybe_recompile 4 | 5 | P2_SINGLETON_MOD = load_clvm_maybe_recompile("p2_singleton.clvm") 6 | SINGLETON_TOP_LAYER_MOD = load_clvm_maybe_recompile("singleton_top_layer.clvm") 7 | SINGLETON_LAUNCHER = load_clvm_maybe_recompile("singleton_launcher.clvm") 8 | -------------------------------------------------------------------------------- /taco/cmds/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/cmds/__init__.py -------------------------------------------------------------------------------- /taco/cmds/plotters.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import click 4 | 5 | from taco.plotters.plotters import call_plotters 6 | 7 | 8 | @click.command( 9 | "plotters", 10 | short_help="Advanced plotting options", 11 | context_settings={"ignore_unknown_options": True}, 12 | add_help_option=False, 13 | ) 14 | @click.pass_context 15 | @click.argument("args", nargs=-1) 16 | def plotters_cmd(ctx: click.Context, args): 17 | call_plotters(ctx.obj["root_path"], args) 18 | -------------------------------------------------------------------------------- /taco/cmds/units.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import Dict 4 | 5 | # The rest of the codebase uses mojos everywhere. 6 | # Only use these units for user facing interfaces. 7 | units: Dict[str, int] = { 8 | "taco": 10**12, # 1 taco (XTX) is 1,000,000,000,000 mojo (1 trillion) 9 | "mojo": 1, 10 | "cat": 10**3, # 1 CAT is 1000 CAT mojos 11 | } 12 | -------------------------------------------------------------------------------- /taco/consensus/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/consensus/__init__.py -------------------------------------------------------------------------------- /taco/consensus/condition_costs.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from enum import Enum 4 | 5 | 6 | class ConditionCost(Enum): 7 | # Condition Costs 8 | AGG_SIG = 1200000 # the cost of one G1 subgroup check + aggregated signature validation 9 | CREATE_COIN = 1800000 10 | -------------------------------------------------------------------------------- /taco/daemon/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/daemon/__init__.py -------------------------------------------------------------------------------- /taco/data_layer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/data_layer/__init__.py -------------------------------------------------------------------------------- /taco/data_layer/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/data_layer/util/__init__.py -------------------------------------------------------------------------------- /taco/farmer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/farmer/__init__.py -------------------------------------------------------------------------------- /taco/full_node/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/full_node/__init__.py -------------------------------------------------------------------------------- /taco/full_node/signage_point.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from dataclasses import dataclass 4 | from typing import Optional 5 | 6 | from taco.types.blockchain_format.vdf import VDFInfo, VDFProof 7 | from taco.util.streamable import Streamable, streamable 8 | 9 | 10 | @streamable 11 | @dataclass(frozen=True) 12 | class SignagePoint(Streamable): 13 | cc_vdf: Optional[VDFInfo] 14 | cc_proof: Optional[VDFProof] 15 | rc_vdf: Optional[VDFInfo] 16 | rc_proof: Optional[VDFProof] 17 | -------------------------------------------------------------------------------- /taco/harvester/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/harvester/__init__.py -------------------------------------------------------------------------------- /taco/introducer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/introducer/__init__.py -------------------------------------------------------------------------------- /taco/plot_sync/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/plot_sync/__init__.py -------------------------------------------------------------------------------- /taco/plotters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/plotters/__init__.py -------------------------------------------------------------------------------- /taco/plotting/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/plotting/__init__.py -------------------------------------------------------------------------------- /taco/pools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/pools/__init__.py -------------------------------------------------------------------------------- /taco/protocols/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/protocols/__init__.py -------------------------------------------------------------------------------- /taco/protocols/protocol_timing.py: -------------------------------------------------------------------------------- 1 | # These settings should not be end-user configurable 2 | from __future__ import annotations 3 | 4 | INVALID_PROTOCOL_BAN_SECONDS = 10 5 | API_EXCEPTION_BAN_SECONDS = 10 6 | INTERNAL_PROTOCOL_ERROR_BAN_SECONDS = 10 # Don't flap if our client is at fault 7 | -------------------------------------------------------------------------------- /taco/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/py.typed -------------------------------------------------------------------------------- /taco/rpc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/rpc/__init__.py -------------------------------------------------------------------------------- /taco/seeder/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/seeder/__init__.py -------------------------------------------------------------------------------- /taco/server/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/server/__init__.py -------------------------------------------------------------------------------- /taco/simulator/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/simulator/__init__.py -------------------------------------------------------------------------------- /taco/ssl/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/ssl/__init__.py -------------------------------------------------------------------------------- /taco/timelord/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/timelord/__init__.py -------------------------------------------------------------------------------- /taco/timelord/types.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from enum import Enum 4 | 5 | 6 | class Chain(Enum): 7 | CHALLENGE_CHAIN = 1 8 | REWARD_CHAIN = 2 9 | INFUSED_CHALLENGE_CHAIN = 3 10 | BLUEBOX = 4 11 | 12 | 13 | class IterationType(Enum): 14 | SIGNAGE_POINT = 1 15 | INFUSION_POINT = 2 16 | END_OF_SUBSLOT = 3 17 | 18 | 19 | class StateType(Enum): 20 | PEAK = 1 21 | END_OF_SUB_SLOT = 2 22 | FIRST_SUB_SLOT = 3 23 | -------------------------------------------------------------------------------- /taco/types/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/types/__init__.py -------------------------------------------------------------------------------- /taco/types/blockchain_format/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/types/blockchain_format/__init__.py -------------------------------------------------------------------------------- /taco/types/blockchain_format/pool_target.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from dataclasses import dataclass 4 | 5 | from taco.types.blockchain_format.sized_bytes import bytes32 6 | from taco.util.ints import uint32 7 | from taco.util.streamable import Streamable, streamable 8 | 9 | 10 | @streamable 11 | @dataclass(frozen=True) 12 | class PoolTarget(Streamable): 13 | puzzle_hash: bytes32 14 | max_height: uint32 # A max height of 0 means it is valid forever 15 | -------------------------------------------------------------------------------- /taco/types/clvm_cost.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import NewType 4 | 5 | from taco.util.ints import uint64 6 | 7 | """ 8 | CLVM Cost is the cost to run a CLVM program on the CLVM. 9 | It is similar to transaction bytes in the Bitcoin, but some operations 10 | are charged a higher rate, depending on their arguments. 11 | """ 12 | 13 | CLVMCost = NewType("CLVMCost", uint64) 14 | -------------------------------------------------------------------------------- /taco/types/coin_solution.py: -------------------------------------------------------------------------------- 1 | import warnings 2 | 3 | from .coin_spend import CoinSpend as CoinSolution # noqa lgtm[py/unused-import] 4 | 5 | 6 | warnings.warn("`CoinSolution` is now `CoinSpend`") 7 | -------------------------------------------------------------------------------- /taco/types/mempool_inclusion_status.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from enum import IntEnum 4 | 5 | 6 | class MempoolInclusionStatus(IntEnum): 7 | SUCCESS = 1 # Transaction added to mempool 8 | PENDING = 2 # Transaction not yet added to mempool 9 | FAILED = 3 # Transaction was invalid and dropped 10 | -------------------------------------------------------------------------------- /taco/types/mojos.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import NewType 4 | 5 | from taco.util.ints import uint64 6 | 7 | Mojos = NewType("Mojos", uint64) 8 | -------------------------------------------------------------------------------- /taco/types/spend_bundle_conditions.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from chia_rs import Spend, SpendBundleConditions 4 | 5 | __all__ = ["Spend", "SpendBundleConditions"] 6 | -------------------------------------------------------------------------------- /taco/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/util/__init__.py -------------------------------------------------------------------------------- /taco/util/chunks.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import Iterator, List, TypeVar 4 | 5 | T = TypeVar("T") 6 | 7 | 8 | def chunks(in_list: List[T], size: int) -> Iterator[List[T]]: 9 | size = max(1, size) 10 | for i in range(0, len(in_list), size): 11 | yield in_list[i : i + size] 12 | -------------------------------------------------------------------------------- /taco/util/default_root.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import os 4 | from pathlib import Path 5 | 6 | DEFAULT_ROOT_PATH = Path(os.path.expanduser(os.getenv("TACO_ROOT", "~/.taco/mainnet"))).resolve() 7 | 8 | DEFAULT_KEYS_ROOT_PATH = Path(os.path.expanduser(os.getenv("TACO_KEYS_ROOT", "~/.taco_keys"))).resolve() 9 | -------------------------------------------------------------------------------- /taco/util/hash.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from hashlib import sha256 4 | 5 | from taco.types.blockchain_format.sized_bytes import bytes32 6 | 7 | 8 | def std_hash(b, skip_bytes_conversion: bool = False) -> bytes32: 9 | """ 10 | The standard hash used in many places. 11 | """ 12 | if skip_bytes_conversion: 13 | return bytes32(sha256(b).digest()) 14 | else: 15 | return bytes32(sha256(bytes(b)).digest()) 16 | -------------------------------------------------------------------------------- /taco/util/log_exceptions.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import logging 4 | import traceback 5 | from contextlib import contextmanager 6 | 7 | 8 | @contextmanager 9 | def log_exceptions(log: logging.Logger, *, consume: bool = False): 10 | try: 11 | yield 12 | except Exception as e: 13 | log.error(f"Caught Exception: {e}. Traceback: {traceback.format_exc()}") 14 | if not consume: 15 | raise 16 | -------------------------------------------------------------------------------- /taco/util/make_test_constants.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from typing import Dict 4 | 5 | from taco.consensus.constants import ConsensusConstants 6 | from taco.consensus.default_constants import DEFAULT_CONSTANTS 7 | 8 | 9 | def make_test_constants(test_constants_overrides: Dict) -> ConsensusConstants: 10 | return DEFAULT_CONSTANTS.replace(**test_constants_overrides) 11 | -------------------------------------------------------------------------------- /taco/util/safe_cancel_task.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import asyncio 4 | import logging 5 | from typing import Optional 6 | 7 | 8 | def cancel_task_safe(task: Optional[asyncio.Task], log: Optional[logging.Logger] = None): 9 | if task is not None: 10 | try: 11 | task.cancel() 12 | except Exception as e: 13 | if log is not None: 14 | log.error(f"Error while canceling task.{e} {task}") 15 | -------------------------------------------------------------------------------- /taco/wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/__init__.py -------------------------------------------------------------------------------- /taco/wallet/cat_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/cat_wallet/__init__.py -------------------------------------------------------------------------------- /taco/wallet/db_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/db_wallet/__init__.py -------------------------------------------------------------------------------- /taco/wallet/did_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/did_wallet/__init__.py -------------------------------------------------------------------------------- /taco/wallet/nft_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/nft_wallet/__init__.py -------------------------------------------------------------------------------- /taco/wallet/puzzles/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/puzzles/__init__.py -------------------------------------------------------------------------------- /taco/wallet/puzzles/block_program_zero.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff02ff02ffff04ff02ffff04ff05ffff04ff0bffff04ff5fffff04ff81bfffff04ffff0cff82027fff17ff2f80ff8080808080808080ff8080ffff04ffff01ff02ffff03ff17ffff01ff04ffff02ff0bffff04ff2fffff04ff05ffff04ff5fffff04ff27ff808080808080ffff02ff02ffff04ff02ffff04ff05ffff04ff0bffff04ff37ffff04ff2fffff04ff5fff808080808080808080ff8080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/block_program_zero.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | f0a38c8efe58895ae527c65c37f700a4238504691b83990e5dd91bd8b3c30eae 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/calculate_synthetic_public_key.clvm: -------------------------------------------------------------------------------- 1 | (mod 2 | (public_key hidden_puzzle_hash) 3 | 4 | (point_add public_key (pubkey_for_exp (sha256 public_key hidden_puzzle_hash))) 5 | ) 6 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/calculate_synthetic_public_key.clvm.hex: -------------------------------------------------------------------------------- 1 | ff1dff02ffff1effff0bff02ff05808080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/calculate_synthetic_public_key.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 624c5d5704d0decadfc0503e71bbffb6cdfe45025bce7cf3e6864d1eafe8f65e 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/cat_loader.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from taco.wallet.puzzles.load_clvm import load_clvm_maybe_recompile 4 | 5 | CAT_MOD = load_clvm_maybe_recompile("cat_v2.clvm", package_or_requirement=__name__) 6 | LOCK_INNER_PUZZLE = load_clvm_maybe_recompile("lock.inner.puzzle.clvm", package_or_requirement=__name__) 7 | 8 | CAT_MOD_HASH = CAT_MOD.get_tree_hash() 9 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/cat_v2.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 37bef360ee858133b69d595a906dc45d01af50379dad515eb9518abb7c1d2a7a 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/create_nft_launcher_from_did.clvm: -------------------------------------------------------------------------------- 1 | (mod (LAUNCHER_PH MINT_NUMBER MINT_TOTAL) 2 | (include condition_codes.clvm) 3 | (list 4 | (list CREATE_COIN LAUNCHER_PH 1) 5 | (list CREATE_COIN_ANNOUNCEMENT (sha256 MINT_NUMBER MINT_TOTAL))) 6 | ) -------------------------------------------------------------------------------- /taco/wallet/puzzles/create_nft_launcher_from_did.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff01ff01808080ffff04ffff04ff06ffff04ffff0bff0bff1780ff808080ff808080ffff04ffff01ff333cff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/create_nft_launcher_from_did.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 7a32d2d9571d3436791c0ad3d7fcfdb9c43ace2b0f0ff13f98d29f0cc093f445 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_block_spends.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | f890a7866079009517ae0b652d530268d2531bbac99670aaba461d604bc0ff0c 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_block_spends.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from taco.wallet.puzzles.load_clvm import load_serialized_clvm_maybe_recompile 4 | 5 | DECOMPRESS_BLOCK_SPENDS = load_serialized_clvm_maybe_recompile( 6 | "decompress_block_spends.clvm", package_or_requirement=__name__ 7 | ) 8 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_coin_spend_entry.clvm: -------------------------------------------------------------------------------- 1 | (mod (deserialize decompress_puzzle puzzle_prefix suffix cse) 2 | 3 | ; decompress a single compressed standard transaction 4 | (c (f cse) (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) suffix)) (c (f (r (f cse))) (r (f (r cse)))))) 5 | ) 6 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_coin_spend_entry.clvm.hex: -------------------------------------------------------------------------------- 1 | ff04ff4fffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff82012fffff04ff17ff808080808080ffff04ff82014fff8201af808080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_coin_spend_entry.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 9d98ed08770d31be4bd1bde4705dab388db5e7e9c349f5a76fc3c347aa3a0b79 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_coin_spend_entry_with_prefix.clvm: -------------------------------------------------------------------------------- 1 | (mod (deserialize decompress_puzzle puzzle_prefix cse) 2 | 3 | ; decompress a single compressed standard transaction 4 | 5 | (c (f (f cse)) (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) (q . 0xff018080))) (c (f (r (f cse))) (r (f (r cse)))))) 6 | 7 | ) 8 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_coin_spend_entry_with_prefix.clvm.hex: -------------------------------------------------------------------------------- 1 | ff04ff47ffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff8197ffff01ff84ff0180808080808080ffff04ff81a7ff81d7808080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_coin_spend_entry_with_prefix.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 92aa4bc8060a8836355a1884075141b4791ce1b67ae6092bb166b2845954bc89 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_puzzle.clvm: -------------------------------------------------------------------------------- 1 | (mod (deserialize puzzle_prefix pubkey suffix) 2 | 3 | (a deserialize (list (concat puzzle_prefix pubkey suffix))) 4 | 5 | ) 6 | 7 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ff02ffff04ffff0eff05ff0bff1780ff808080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/decompress_puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | fe94c58f1117afe315e0450daca1c62460ec1a1c439cd4018d79967a5d7d1370 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/delegated_tail.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff82027fff80808080ff80808080ffff02ff82027fffff04ff0bffff04ff17ffff04ff2fffff04ff5fffff04ff81bfff82057f80808080808080ffff04ffff01ff31ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/delegated_tail.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 999c3696e167f8a79d938adc11feba3a3dcb39ccff69a426d570706e7b8ec399 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/did_innerpuz.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 33143d2bef64f14036742673afd158126b94284b4530a28c354fac202b0c910e 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/everything_with_signature.clvm: -------------------------------------------------------------------------------- 1 | ; This is a "limitations_program" for use with cat.clvm. 2 | (mod ( 3 | PUBKEY 4 | Truths 5 | parent_is_cat 6 | lineage_proof 7 | delta 8 | inner_conditions 9 | _ 10 | ) 11 | 12 | (include condition_codes.clvm) 13 | 14 | (list (list AGG_SIG_ME PUBKEY delta)) ; Careful with a delta of zero, the bytecode is 80 not 00 15 | ) -------------------------------------------------------------------------------- /taco/wallet/puzzles/everything_with_signature.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff02ffff04ff05ffff04ff5fff80808080ff8080ffff04ffff0132ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/everything_with_signature.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 1720d13250a7c16988eaf530331cefa9dd57a76b2c82236bec8bbbff91499b89 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/genesis_by_coin_id.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff03ff2fffff01ff0880ffff01ff02ffff03ffff09ff2dff0280ff80ffff01ff088080ff018080ff0180 -------------------------------------------------------------------------------- /taco/wallet/puzzles/genesis_by_coin_id.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 493afb89eed93ab86741b2aa61b8f5de495d33ff9b781dfc8919e602b2afa150 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/genesis_by_puzzle_hash.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff03ff2fffff01ff0880ffff01ff02ffff03ffff09ffff0bff82013fff02ff8202bf80ff2d80ff80ffff01ff088080ff018080ff0180 -------------------------------------------------------------------------------- /taco/wallet/puzzles/genesis_by_puzzle_hash.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | de5a6e06d41518be97ff6365694f4f89475dda773dede267caa33da63b434e36 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/graftroot_dl_offers.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 0893e36a88c064fddfa6f8abdb42c044584a98cb4273b80cccc83b4867b701a1 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/lock.inner.puzzle.clvm: -------------------------------------------------------------------------------- 1 | ; a trivial puzzle used as the core of a lock puzzle 2 | (mod args (q ())) 3 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/lock.inner.puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff01ff8080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/lock.inner.puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | f3a579254623f8094e07af862df2e45c9db5592b4105d34a256dd6c498416288 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_intermediate_launcher.clvm: -------------------------------------------------------------------------------- 1 | (mod (LAUNCHER_PH MINT_NUMBER MINT_TOTAL) 2 | (include condition_codes.clvm) 3 | (list 4 | (list CREATE_COIN LAUNCHER_PH 1) 5 | (list CREATE_COIN_ANNOUNCEMENT (sha256 MINT_NUMBER MINT_TOTAL))) 6 | ) -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_intermediate_launcher.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff01ff01808080ffff04ffff04ff06ffff04ffff0bff0bff1780ff808080ff808080ffff04ffff01ff333cff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_intermediate_launcher.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 7a32d2d9571d3436791c0ad3d7fcfdb9c43ace2b0f0ff13f98d29f0cc093f445 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_metadata_updater_default.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | fe8a4b4e27a2e29a4d3fc7ce9d527adbcaccbab6ada3903ccf3ba9a769d2d78b 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_metadata_updater_updateable.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ffff02ffff03ff27ffff01ff02ff02ffff04ff02ffff04ff05ffff04ff27ff8080808080ffff010580ff0180ffff04ffff02ffff03ffff09ffff0dff5780ffff012080ffff0157ffff010b80ff0180ff808080ffff01ff808080ffff04ffff01ff02ffff03ff05ffff01ff02ffff03ffff09ff11ffff017580ffff01ff04ffff04ffff0175ffff04ff0bff198080ff0d80ffff01ff04ff09ffff02ff02ffff04ff02ffff04ff0dffff04ff0bff80808080808080ff0180ff8080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_metadata_updater_updateable.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 0b1ffba1601777c06b78ab38636e9624f2f8da73be9b36e0ce17c8d8ef3bad9f 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_ownership_layer.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | c5abea79afaa001b5427dfa0c8cf42ca6f38f5841b78f9b3c252733eb2de2726 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 025dee0fb1e9fa110302a7e9bfb6e381ca09618e2778b0184fa5c6b275cfce1f 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/nft_state_layer.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | a04d9f57764f54a43e4030befb4d80026e870519aaa66334aef8304f5d0393c2 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/notification.clvm: -------------------------------------------------------------------------------- 1 | (mod ( 2 | TARGET 3 | AMOUNT 4 | ) 5 | (include condition_codes.clvm) 6 | (list (list CREATE_COIN TARGET AMOUNT) (list CREATE_COIN_ANNOUNCEMENT ())) 7 | ) -------------------------------------------------------------------------------- /taco/wallet/puzzles/notification.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff04ff0bff80808080ffff04ffff04ff06ffff01ff808080ff808080ffff04ffff01ff333cff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/notification.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | b8b9d8ffca6d5cba5422ead7f477ecfc8f6aaaa1c024b8c3aeb1956b24a0ab1e 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_conditions.clvm: -------------------------------------------------------------------------------- 1 | (mod (conditions) 2 | (qq (q . (unquote conditions))) 3 | ) 4 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_conditions.clvm.hex: -------------------------------------------------------------------------------- 1 | ff04ffff0101ff0280 -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_conditions.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 1c77d7d5efde60a7a1d2d27db6d746bc8e568aea1ef8586ca967a0d60b83cc36 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_delegated_conditions.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff0bff80808080ff80808080ff0b80ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_delegated_conditions.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 0ff94726f1a8dea5c3f70d3121945190778d3b2b3fcda3735a1f290977e98341 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_delegated_puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff0bff80808080ff80808080ffff02ff0bff178080ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_delegated_puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 542cde70d1102cd1b763220990873efc8ab15625ded7eae22cc11e21ef2e2f7c 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | e9aaa49f45bad5c889b86ee3341550c155cfdd10c3a6757de618d20612fffd52 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_m_of_n_delegate_direct.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 0f199d5263ac1a62b077c159404a71abd3f9691cc57520bf1d4c5cb501504457 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_parent.clvm: -------------------------------------------------------------------------------- 1 | (mod 2 | ( 3 | MORPHER ; For no morphing, 1 4 | parent_parent_id 5 | parent_inner_puz 6 | parent_amount 7 | parent_solution 8 | ) 9 | 10 | (include condition_codes.clvm) 11 | (include curry-and-treehash.clinc) 12 | 13 | (c 14 | (list ASSERT_MY_PARENT_ID 15 | (calculate_coin_id parent_parent_id (a MORPHER (sha256tree parent_inner_puz)) parent_amount) 16 | ) 17 | (a parent_inner_puz parent_solution) 18 | ) 19 | ) -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_parent.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff08ffff04ffff02ff0affff04ff02ffff04ff0bffff04ffff02ff05ffff02ff0effff04ff02ffff04ff17ff8080808080ffff04ff2fff808080808080ff808080ffff02ff17ff5f8080ffff04ffff01ffff4720ffff02ffff03ffff22ffff09ffff0dff0580ff0c80ffff09ffff0dff0b80ff0c80ffff15ff17ffff0181ff8080ffff01ff0bff05ff0bff1780ffff01ff088080ff0180ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff0effff04ff02ffff04ff09ff80808080ffff02ff0effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_parent.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | b10ce2d0b18dcf8c21ddfaf55d9b9f0adcbf1e0beb55b1a8b9cad9bbff4e5f22 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_puzzle_hash.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff02ffff03ffff09ff05ffff02ff02ffff04ff02ffff04ff0bff8080808080ffff01ff02ff0bff1780ffff01ff088080ff0180ffff04ffff01ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff02ffff04ff02ffff04ff09ff80808080ffff02ff02ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_puzzle_hash.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 13e29a62b42cd2ef72a79e4bacdc59733ca6310d65af83d349360d36ec622363 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_singleton.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 40f828d8dd55603f4ff9fbf6b73271e904e69406982f4fbefae2c8dcceaf9834 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/p2_singleton_or_delayed_puzhash.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | adb656e0211e2ab4f42069a4c5efc80dc907e7062be08bf1628c8e5b6d94d25b 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/pool_member_innerpuz.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | a8490702e333ddd831a3ac9c22d0fa26d2bfeaf2d33608deb22f0e0123eb0494 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/pool_waitingroom_innerpuz.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | a317541a765bf8375e1c6e7c13503d0d2cbf56cacad5182befe947e78e2c0307 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/prefarm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/puzzles/prefarm/__init__.py -------------------------------------------------------------------------------- /taco/wallet/puzzles/rom_bootstrap_generator.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 161bade1f822dcd62ab712ebaf30f3922a301e48a639e4295c5685f8bece7bd9 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/rom_bootstrap_generator.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from taco.types.blockchain_format.program import SerializedProgram 4 | 5 | from .load_clvm import load_serialized_clvm_maybe_recompile 6 | 7 | MOD = load_serialized_clvm_maybe_recompile("rom_bootstrap_generator.clvm") 8 | 9 | 10 | def get_generator() -> SerializedProgram: 11 | return MOD 12 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/settlement_payments.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | cfbfdeed5c4ca2de3d0bf520b9cb4bb7743a359bd2e6a188d19ce7dffc21d3e7 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/settlement_payments_old.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | bae24162efbd568f89bc7a340798a6118df0189eb9e3f8697bcea27af99f8f79 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/sha256tree.clib: -------------------------------------------------------------------------------- 1 | ( 2 | ;; hash a tree 3 | ;; This is used to calculate a puzzle hash given a puzzle program. 4 | (defun sha256tree 5 | (TREE) 6 | (if (l TREE) 7 | (sha256 2 (sha256tree (f TREE)) (sha256tree (r TREE))) 8 | (sha256 1 TREE) 9 | ) 10 | ) 11 | ) -------------------------------------------------------------------------------- /taco/wallet/puzzles/sha256tree_module.clvm: -------------------------------------------------------------------------------- 1 | ( 2 | mod (program) 3 | 4 | ;; hash a tree 5 | ;; This is used to calculate a puzzle hash given a puzzle program. 6 | (defun sha256tree 7 | (TREE) 8 | (if (l TREE) 9 | (sha256 2 (sha256tree (f TREE)) (sha256tree (r TREE))) 10 | (sha256 1 TREE) 11 | ) 12 | ) 13 | 14 | (sha256tree program) 15 | ) -------------------------------------------------------------------------------- /taco/wallet/puzzles/sha256tree_module.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff02ff02ffff04ff02ffff04ff05ff80808080ffff04ffff01ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff02ffff04ff02ffff04ff09ff80808080ffff02ff02ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/sha256tree_module.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | eb4ead6576048c9d730b5ced00646c7fdd390649cfdf48a00de1590cdd8ee18f 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/singleton_launcher.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff04ff0bff80808080ffff04ffff04ff0affff04ffff02ff0effff04ff02ffff04ffff04ff05ffff04ff0bffff04ff17ff80808080ff80808080ff808080ff808080ffff04ffff01ff33ff3cff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff0effff04ff02ffff04ff09ff80808080ffff02ff0effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/singleton_launcher.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | eff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/singleton_top_layer.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 24e044101e57b3d8c908b8a38ad57848afd29d3eecc439dba45f4412df4954fd 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/singleton_top_layer_v1_1.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 7faa3253bfddd1e0decb0906b2dc6247bbc4cf608f58345d173adb63e8b47c9f 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/tacolisp_deserialisation.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 94ec19077f9a34e0b11ad2456af0170f4cc03f11230ca42e3f82e6e644ac4f5d 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/test_generator_deserialize.clvm: -------------------------------------------------------------------------------- 1 | (mod (deserializer generator_list reserved_arg) 2 | (a deserializer (list reserved_arg)) 3 | ) 4 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/test_generator_deserialize.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ff02ffff04ff0bff808080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/test_generator_deserialize.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 52add794fc76e89512e4a063c383418bda084c8a78c74055abe80179e4a7832c 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/test_multiple_generator_input_arguments.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff02ff04ffff04ff02ffff04ff05ffff04ff0bffff04ff82017fffff04ff8202ffffff04ffff02ff06ffff04ff02ffff04ff8205ffffff04ff17ffff04ff2fffff04ff5fffff04ff81bfff8080808080808080ff8080808080808080ff8080ffff04ffff01ffff02ffff03ff17ffff01ff04ffff02ff0bffff04ff2fffff04ff05ffff04ff5fffff04ff27ff808080808080ffff02ff04ffff04ff02ffff04ff05ffff04ff0bffff04ff37ffff04ff2fffff04ff5fff808080808080808080ff8080ff0180ff0effff0cff09ff0bff1780ffff0cff15ff2fff5f8080ff018080 -------------------------------------------------------------------------------- /taco/wallet/puzzles/test_multiple_generator_input_arguments.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 156dafbddc3e1d3bfe1f2a84e48e5e46b287b8358bf65c3c091c93e855fbfc5b 2 | -------------------------------------------------------------------------------- /taco/wallet/puzzles/utility_macros.clib: -------------------------------------------------------------------------------- 1 | ( 2 | (defmacro assert items 3 | (if (r items) 4 | (list if (f items) (c assert (r items)) (q . (x))) 5 | (f items) 6 | ) 7 | ) 8 | 9 | (defmacro and ARGS 10 | (if ARGS 11 | (qq (if (unquote (f ARGS)) 12 | (unquote (c and (r ARGS))) 13 | () 14 | )) 15 | 1) 16 | ) 17 | ) -------------------------------------------------------------------------------- /taco/wallet/settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/settings/__init__.py -------------------------------------------------------------------------------- /taco/wallet/settings/default_settings.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from taco.wallet.settings.settings_objects import BackupInitialized 4 | 5 | default_backup_initialized = BackupInitialized(False, False, False, True) 6 | 7 | default_settings = {BackupInitialized.__name__: default_backup_initialized} 8 | -------------------------------------------------------------------------------- /taco/wallet/trading/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/trading/__init__.py -------------------------------------------------------------------------------- /taco/wallet/trading/trade_status.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from enum import Enum 4 | 5 | 6 | class TradeStatus(Enum): 7 | PENDING_ACCEPT = 0 8 | PENDING_CONFIRM = 1 9 | PENDING_CANCEL = 2 10 | CANCELLED = 3 11 | CONFIRMED = 4 12 | FAILED = 5 13 | -------------------------------------------------------------------------------- /taco/wallet/transaction_sorting.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import enum 4 | 5 | 6 | class SortKey(enum.Enum): 7 | CONFIRMED_AT_HEIGHT = "ORDER BY confirmed_at_height {ASC}" 8 | RELEVANCE = "ORDER BY confirmed {ASC}, confirmed_at_height {DESC}, created_at_time {DESC}" 9 | 10 | def ascending(self) -> str: 11 | return self.value.format(ASC="ASC", DESC="DESC") 12 | 13 | def descending(self) -> str: 14 | return self.value.format(ASC="DESC", DESC="ASC") 15 | -------------------------------------------------------------------------------- /taco/wallet/uncurried_puzzle.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from dataclasses import dataclass 4 | 5 | from taco.types.blockchain_format.program import Program 6 | 7 | 8 | @dataclass(frozen=True) 9 | class UncurriedPuzzle: 10 | mod: Program 11 | args: Program 12 | 13 | 14 | def uncurry_puzzle(puzzle: Program) -> UncurriedPuzzle: 15 | return UncurriedPuzzle(*puzzle.uncurry()) 16 | -------------------------------------------------------------------------------- /taco/wallet/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/taco/wallet/util/__init__.py -------------------------------------------------------------------------------- /taco/wallet/util/transaction_type.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from enum import IntEnum 4 | 5 | 6 | class TransactionType(IntEnum): 7 | INCOMING_TX = 0 8 | OUTGOING_TX = 1 9 | COINBASE_REWARD = 2 10 | FEE_REWARD = 3 11 | INCOMING_TRADE = 4 12 | OUTGOING_TRADE = 5 13 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/__init__.py -------------------------------------------------------------------------------- /tests/blockchain/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/blockchain/__init__.py -------------------------------------------------------------------------------- /tests/blockchain/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | job_timeout = 60 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/clvm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/clvm/__init__.py -------------------------------------------------------------------------------- /tests/clvm/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | checkout_blocks_and_plots = False 5 | -------------------------------------------------------------------------------- /tests/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/__init__.py -------------------------------------------------------------------------------- /tests/core/cmds/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/cmds/__init__.py -------------------------------------------------------------------------------- /tests/core/cmds/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | -------------------------------------------------------------------------------- /tests/core/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tests/core/consensus/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/consensus/__init__.py -------------------------------------------------------------------------------- /tests/core/consensus/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | -------------------------------------------------------------------------------- /tests/core/custom_types/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/custom_types/__init__.py -------------------------------------------------------------------------------- /tests/core/custom_types/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | -------------------------------------------------------------------------------- /tests/core/daemon/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/daemon/__init__.py -------------------------------------------------------------------------------- /tests/core/daemon/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | install_timelord = True 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tests/core/data_layer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/data_layer/__init__.py -------------------------------------------------------------------------------- /tests/core/data_layer/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = 4 4 | job_timeout = 60 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/core/full_node/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/full_node/__init__.py -------------------------------------------------------------------------------- /tests/core/full_node/config.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa: E501 2 | from __future__ import annotations 3 | 4 | parallel = True 5 | job_timeout = 50 6 | check_resource_usage = True 7 | checkout_blocks_and_plots = True 8 | os_skip = ["windows"] 9 | -------------------------------------------------------------------------------- /tests/core/full_node/dos/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/full_node/dos/__init__.py -------------------------------------------------------------------------------- /tests/core/full_node/dos/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | job_timeout = 60 5 | -------------------------------------------------------------------------------- /tests/core/full_node/full_sync/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/full_node/full_sync/__init__.py -------------------------------------------------------------------------------- /tests/core/full_node/full_sync/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | job_timeout = 60 4 | parallel = True 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/core/full_node/stores/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/full_node/stores/__init__.py -------------------------------------------------------------------------------- /tests/core/full_node/stores/config.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa: E501 2 | from __future__ import annotations 3 | 4 | parallel = True 5 | job_timeout = 40 6 | check_resource_usage = True 7 | checkout_blocks_and_plots = True 8 | -------------------------------------------------------------------------------- /tests/core/mempool/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/mempool/__init__.py -------------------------------------------------------------------------------- /tests/core/server/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/server/__init__.py -------------------------------------------------------------------------------- /tests/core/server/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | checkout_blocks_and_plots = True 4 | -------------------------------------------------------------------------------- /tests/core/server/test_upnp.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | 4 | def test_miniupnpc_imports_successfully() -> None: 5 | import miniupnpc 6 | 7 | # use it to avoid all related warnings 8 | assert miniupnpc is not None 9 | -------------------------------------------------------------------------------- /tests/core/ssl/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/ssl/__init__.py -------------------------------------------------------------------------------- /tests/core/ssl/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tests/core/test_setproctitle.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import pytest 4 | 5 | from taco.util.setproctitle import setproctitle 6 | 7 | pytestmark = pytest.mark.skip( 8 | reason="this test ends up hanging frequently and needs to be rewritten with a subprocess and a title check", 9 | ) 10 | 11 | 12 | def test_does_not_crash(): 13 | setproctitle("taco test title") 14 | -------------------------------------------------------------------------------- /tests/core/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/core/util/__init__.py -------------------------------------------------------------------------------- /tests/core/util/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tests/db/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/db/__init__.py -------------------------------------------------------------------------------- /tests/farmer_harvester/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/farmer_harvester/__init__.py -------------------------------------------------------------------------------- /tests/farmer_harvester/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | checkout_blocks_and_plots = True 4 | -------------------------------------------------------------------------------- /tests/fee_estimation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/fee_estimation/__init__.py -------------------------------------------------------------------------------- /tests/generator/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/generator/__init__.py -------------------------------------------------------------------------------- /tests/generator/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | -------------------------------------------------------------------------------- /tests/plot_sync/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/plot_sync/__init__.py -------------------------------------------------------------------------------- /tests/plot_sync/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tests/plotting/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/plotting/__init__.py -------------------------------------------------------------------------------- /tests/plotting/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | install_timelord = False 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/plotting/util.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from pathlib import Path 4 | from typing import List 5 | 6 | from taco.simulator.block_tools import get_plot_dir 7 | 8 | 9 | def get_test_plots(sub_dir: str = "") -> List[Path]: 10 | path = get_plot_dir() 11 | if sub_dir != "": 12 | path = path / sub_dir 13 | return list(sorted(path.glob("*.plot"))) 14 | -------------------------------------------------------------------------------- /tests/pools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/pools/__init__.py -------------------------------------------------------------------------------- /tests/pools/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = 2 4 | job_timeout = 60 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/simulation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/simulation/__init__.py -------------------------------------------------------------------------------- /tests/simulation/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | job_timeout = 60 4 | install_timelord = True 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/tools/__init__.py -------------------------------------------------------------------------------- /tests/tools/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | -------------------------------------------------------------------------------- /tests/tools/test-blockchain-db.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/tools/test-blockchain-db.sqlite -------------------------------------------------------------------------------- /tests/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/util/__init__.py -------------------------------------------------------------------------------- /tests/util/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | job_timeout = 60 5 | -------------------------------------------------------------------------------- /tests/util/protocol_messages_bytes-v1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/util/protocol_messages_bytes-v1.0 -------------------------------------------------------------------------------- /tests/util/temp_file.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | import contextlib 4 | import tempfile 5 | from pathlib import Path 6 | from typing import Iterator 7 | 8 | 9 | @contextlib.contextmanager 10 | def TempFile() -> Iterator[Path]: 11 | path = Path(tempfile.NamedTemporaryFile().name) 12 | yield path 13 | if path.exists(): 14 | path.unlink() 15 | -------------------------------------------------------------------------------- /tests/wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/__init__.py -------------------------------------------------------------------------------- /tests/wallet/cat_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/cat_wallet/__init__.py -------------------------------------------------------------------------------- /tests/wallet/cat_wallet/config.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa: E501 2 | from __future__ import annotations 3 | 4 | job_timeout = 50 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/wallet/config.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa: E501 2 | from __future__ import annotations 3 | 4 | job_timeout = 40 5 | parallel = True 6 | checkout_blocks_and_plots = True 7 | -------------------------------------------------------------------------------- /tests/wallet/db_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/db_wallet/__init__.py -------------------------------------------------------------------------------- /tests/wallet/db_wallet/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | checkout_blocks_and_plots = True 4 | -------------------------------------------------------------------------------- /tests/wallet/did_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/did_wallet/__init__.py -------------------------------------------------------------------------------- /tests/wallet/did_wallet/config.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa: E501 2 | from __future__ import annotations 3 | 4 | job_timeout = 50 5 | checkout_blocks_and_plots = True 6 | -------------------------------------------------------------------------------- /tests/wallet/nft_wallet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/nft_wallet/__init__.py -------------------------------------------------------------------------------- /tests/wallet/nft_wallet/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | job_timeout = 45 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tests/wallet/rpc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/rpc/__init__.py -------------------------------------------------------------------------------- /tests/wallet/rpc/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | checkout_blocks_and_plots = True 4 | -------------------------------------------------------------------------------- /tests/wallet/simple_sync/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/simple_sync/__init__.py -------------------------------------------------------------------------------- /tests/wallet/simple_sync/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | checkout_blocks_and_plots = True 4 | -------------------------------------------------------------------------------- /tests/wallet/sync/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/wallet/sync/__init__.py -------------------------------------------------------------------------------- /tests/wallet/sync/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | job_timeout = 60 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tests/weight_proof/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tests/weight_proof/__init__.py -------------------------------------------------------------------------------- /tests/weight_proof/config.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | parallel = True 4 | checkout_blocks_and_plots = True 5 | -------------------------------------------------------------------------------- /tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Taco-Network/taco-blockchain/af024c799a4946784966bc64b219d69ffc255e56/tools/__init__.py --------------------------------------------------------------------------------