├── goldcoin ├── py.typed ├── clvm │ ├── __init__.py │ └── singleton.py ├── cmds │ ├── __init__.py │ ├── units.py │ ├── plotters.py │ └── start.py ├── daemon │ └── __init__.py ├── farmer │ └── __init__.py ├── pools │ └── __init__.py ├── rpc │ └── __init__.py ├── seeder │ └── __init__.py ├── server │ └── __init__.py ├── ssl │ └── __init__.py ├── types │ ├── __init__.py │ ├── blockchain_format │ │ ├── __init__.py │ │ ├── pool_target.py │ │ └── sized_bytes.py │ ├── coin_solution.py │ ├── mempool_inclusion_status.py │ ├── condition_with_args.py │ ├── end_of_slot_bundle.py │ └── block_protocol.py ├── util │ ├── __init__.py │ ├── hash.py │ ├── setproctitle.py │ ├── make_test_constants.py │ ├── log_exceptions.py │ ├── safe_cancel_task.py │ ├── default_root.py │ ├── pip_import.py │ ├── recursive_replace.py │ ├── db_version.py │ └── permissions.py ├── wallet │ ├── __init__.py │ ├── util │ │ ├── __init__.py │ │ └── transaction_type.py │ ├── cat_wallet │ │ └── __init__.py │ ├── did_wallet │ │ └── __init__.py │ ├── puzzles │ │ ├── __init__.py │ │ ├── prefarm │ │ │ └── __init__.py │ │ ├── lock.inner.puzzle.clvm.hex │ │ ├── create-lock-puzzlehash.clvm.hex.sha256tree │ │ ├── p2_conditions.clvm.hex │ │ ├── test_generator_deserialize.clvm.hex │ │ ├── decompress_puzzle.clvm.hex │ │ ├── calculate_synthetic_public_key.clvm.hex │ │ ├── create-lock-puzzlehash.clvm.hex │ │ ├── p2_conditions.clvm │ │ ├── cat.clvm.hex.sha256tree │ │ ├── rl.clvm.hex.sha256tree │ │ ├── condition_codes.clvm.hex │ │ ├── delegated_tail.clvm.hex.sha256tree │ │ ├── did_innerpuz.clvm.hex.sha256tree │ │ ├── genesis_by_coin_id.clvm.hex.sha256tree │ │ ├── lock.inner.puzzle.clvm │ │ ├── p2_conditions.clvm.hex.sha256tree │ │ ├── p2_puzzle_hash.clvm.hex.sha256tree │ │ ├── p2_singleton.clvm.hex.sha256tree │ │ ├── rl_aggregation.clvm.hex.sha256tree │ │ ├── block_program_zero.clvm.hex.sha256tree │ │ ├── decompress_puzzle.clvm.hex.sha256tree │ │ ├── everything_with_signature.clvm.hex.sha256tree │ │ ├── genesis-by-coin-id-with-0.clvm.hex.sha256tree │ │ ├── genesis_by_puzzle_hash.clvm.hex.sha256tree │ │ ├── lock.inner.puzzle.clvm.hex.sha256tree │ │ ├── p2_delegated_puzzle.clvm.hex.sha256tree │ │ ├── pool_member_innerpuz.clvm.hex.sha256tree │ │ ├── settlement_payments.clvm.hex.sha256tree │ │ ├── sha256tree_module.clvm.hex.sha256tree │ │ ├── singleton_launcher.clvm.hex.sha256tree │ │ ├── singleton_top_layer.clvm.hex.sha256tree │ │ ├── delegated_genesis_checker.clvm.hex.sha256tree │ │ ├── generator_for_single_coin.clvm.hex.sha256tree │ │ ├── genesis-by-puzzle-hash-with-0.clvm.hex.sha256tree │ │ ├── p2_delegated_conditions.clvm.hex.sha256tree │ │ ├── p2_m_of_n_delegate_direct.clvm.hex.sha256tree │ │ ├── pool_waitingroom_innerpuz.clvm.hex.sha256tree │ │ ├── rom_bootstrap_generator.clvm.hex.sha256tree │ │ ├── calculate_synthetic_public_key.clvm.hex.sha256tree │ │ ├── decompress_coin_spend_entry.clvm.hex.sha256tree │ │ ├── everything_with_signature.clvm.hex │ │ ├── genesis_by_coin_id.clvm.hex │ │ ├── goldcoinlisp_deserialisation.clvm.hex.sha256tree │ │ ├── test_generator_deserialize.clvm.hex.sha256tree │ │ ├── genesis-by-coin-id-with-0.clvm.hex │ │ ├── p2_singleton_or_delayed_puzhash.clvm.hex.sha256tree │ │ ├── decompress_coin_spend_entry_with_prefix.clvm.hex.sha256tree │ │ ├── p2_delegated_puzzle_or_hidden_puzzle.clvm.hex.sha256tree │ │ ├── test_multiple_generator_input_arguments.clvm.hex.sha256tree │ │ ├── test_generator_deserialize.clvm │ │ ├── decompress_coin_spend_entry.clvm.hex │ │ ├── genesis_by_puzzle_hash.clvm.hex │ │ ├── genesis-by-puzzle-hash-with-0.clvm.hex │ │ ├── decompress_coin_spend_entry_with_prefix.clvm.hex │ │ ├── decompress_puzzle.clvm │ │ ├── rl_aggregation.clvm.hex │ │ ├── calculate_synthetic_public_key.clvm │ │ ├── generator_loader.py │ │ ├── cat_loader.py │ │ ├── sha256tree_module.clvm.hex │ │ ├── rom_bootstrap_generator.py │ │ ├── decompress_coin_spend_entry.clvm │ │ ├── p2_puzzle_hash.clvm.hex │ │ ├── p2_delegated_conditions.clvm.hex │ │ ├── p2_delegated_puzzle.clvm.hex │ │ ├── decompress_coin_spend_entry_with_prefix.clvm │ │ ├── block_program_zero.clvm.hex │ │ ├── singleton_launcher.clvm.hex │ │ ├── delegated_tail.clvm.hex │ │ ├── delegated_genesis_checker.clvm.hex │ │ ├── sha256tree_module.clvm │ │ ├── everything_with_signature.clvm │ │ ├── p2_delegated_puzzle_or_hidden_puzzle.clvm.hex │ │ ├── test_multiple_generator_input_arguments.clvm.hex │ │ ├── p2_delegated_conditions.clvm │ │ ├── p2_puzzle_hash.clvm │ │ ├── settlement_payments.clvm.hex │ │ ├── recompile-all.sh │ │ ├── singleton_launcher.clvm │ │ ├── p2_delegated_puzzle.clvm │ │ ├── p2_delegated_conditions.py │ │ ├── create-lock-puzzlehash.clvm │ │ └── genesis_by_coin_id.clvm │ ├── rl_wallet │ │ └── __init__.py │ ├── settings │ │ ├── __init__.py │ │ ├── default_settings.py │ │ └── settings_objects.py │ ├── trading │ │ ├── __init__.py │ │ └── trade_status.py │ ├── transaction_sorting.py │ └── secret_key_store.py ├── consensus │ ├── __init__.py │ ├── network_type.py │ ├── condition_costs.py │ └── cost_calculator.py ├── full_node │ ├── __init__.py │ └── signage_point.py ├── harvester │ └── __init__.py ├── introducer │ └── __init__.py ├── plotters │ └── __init__.py ├── plotting │ └── __init__.py ├── protocols │ ├── __init__.py │ └── protocol_timing.py ├── simulator │ ├── __init__.py │ └── simulator_protocol.py ├── timelord │ ├── __init__.py │ └── types.py └── __init__.py ├── tests ├── __init__.py ├── clvm │ ├── __init__.py │ └── config.py ├── core │ ├── __init__.py │ ├── cmds │ │ └── __init__.py │ ├── ssl │ │ └── __init__.py │ ├── util │ │ └── __init__.py │ ├── consensus │ │ └── __init__.py │ ├── daemon │ │ └── __init__.py │ ├── full_node │ │ ├── __init__.py │ │ ├── dos │ │ │ ├── __init__.py │ │ │ └── config.py │ │ ├── full_sync │ │ │ ├── __init__.py │ │ │ └── config.py │ │ ├── stores │ │ │ ├── __init__.py │ │ │ └── config.py │ │ └── config.py │ ├── server │ │ └── __init__.py │ ├── custom_types │ │ └── __init__.py │ ├── test_setproctitle.py │ └── node_height.py ├── pools │ ├── __init__.py │ └── config.py ├── tools │ ├── __init__.py │ ├── test-blockchain-db.sqlite │ └── test_full_sync.py ├── util │ ├── __init__.py │ ├── config.py │ ├── protocol_messages_bytes-v1.0 │ └── rpc.py ├── blockchain │ ├── __init__.py │ └── config.py ├── generator │ └── __init__.py ├── plotting │ ├── __init__.py │ ├── config.py │ └── util.py ├── simulation │ ├── __init__.py │ └── config.py ├── wallet │ ├── __init__.py │ ├── rpc │ │ └── __init__.py │ ├── sync │ │ ├── __init__.py │ │ └── config.py │ ├── cat_wallet │ │ └── __init__.py │ ├── did_wallet │ │ └── __init__.py │ ├── rl_wallet │ │ └── __init__.py │ └── simple_sync │ │ └── __init__.py ├── weight_proof │ └── __init__.py ├── farmer_harvester │ └── __init__.py ├── runner_templates │ ├── __init__.py │ ├── install-timelord.include.yml │ └── checkout-test-plots.include.yml └── testconfig.py ├── tools └── __init__.py ├── benchmarks ├── __init__.py └── clvm_generator.bin ├── mozilla-ca ├── __init__.py ├── README.md ├── .gitignore └── .github │ └── workflows │ └── super-linter.yaml ├── goldcoin-blockchain-gui ├── .npmrc ├── packages │ ├── core │ │ ├── src │ │ │ ├── utils │ │ │ │ ├── getUnit │ │ │ │ ├── sleep.ts │ │ │ │ ├── isWindows.ts │ │ │ │ ├── getPoolInfo.ts │ │ │ │ ├── catToMojo.ts │ │ │ │ ├── mojoToCAT.ts │ │ │ │ ├── mojoToGoldcoin.ts │ │ │ │ ├── goldcoinToMojo.ts │ │ │ │ ├── mojoToCATLocaleString.ts │ │ │ │ ├── mojoToGoldcoinLocaleString.ts │ │ │ │ ├── activateLocale.ts │ │ │ │ ├── normalizePoolState.ts │ │ │ │ ├── blockHeightToTimestamp.ts │ │ │ │ ├── removeOldPoints.ts │ │ │ │ └── getPercentPointsSuccessfull.ts │ │ │ ├── components │ │ │ │ ├── CurrencyCode │ │ │ │ │ ├── CurrencyCode.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Back │ │ │ │ │ └── index.ts │ │ │ │ ├── Fee │ │ │ │ │ └── index.ts │ │ │ │ ├── Fonts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── ionicons.eot │ │ │ │ │ ├── ionicons.ttf │ │ │ │ │ ├── ionicons.woff │ │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ │ ├── ionicons.woff2 │ │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ │ └── Fonts.tsx │ │ │ │ ├── Log │ │ │ │ │ └── index.ts │ │ │ │ ├── Spacer │ │ │ │ │ ├── index.ts │ │ │ │ │ └── Spacer.tsx │ │ │ │ ├── Card │ │ │ │ │ └── index.ts │ │ │ │ ├── Dropdown │ │ │ │ │ └── index.ts │ │ │ │ ├── Flex │ │ │ │ │ └── index.ts │ │ │ │ ├── Form │ │ │ │ │ └── index.ts │ │ │ │ ├── Link │ │ │ │ │ └── index.ts │ │ │ │ ├── Logo │ │ │ │ │ ├── index.ts │ │ │ │ │ └── Logo.tsx │ │ │ │ ├── More │ │ │ │ │ └── index.ts │ │ │ │ ├── Select │ │ │ │ │ └── index.ts │ │ │ │ ├── Address │ │ │ │ │ └── index.ts │ │ │ │ ├── CardHero │ │ │ │ │ └── index.ts │ │ │ │ ├── CardSimple │ │ │ │ │ └── index.ts │ │ │ │ ├── CardStep │ │ │ │ │ └── index.ts │ │ │ │ ├── Checkbox │ │ │ │ │ └── index.ts │ │ │ │ ├── Dropzone │ │ │ │ │ └── index.ts │ │ │ │ ├── LayoutHero │ │ │ │ │ └── index.ts │ │ │ │ ├── LayoutMain │ │ │ │ │ └── index.ts │ │ │ │ ├── Loading │ │ │ │ │ └── index.ts │ │ │ │ ├── Spinner │ │ │ │ │ ├── index.ts │ │ │ │ │ └── Spinner.tsx │ │ │ │ ├── Suspender │ │ │ │ │ ├── index.ts │ │ │ │ │ └── Suspender.tsx │ │ │ │ ├── Tooltip │ │ │ │ │ └── index.ts │ │ │ │ ├── Accordion │ │ │ │ │ ├── index.ts │ │ │ │ │ └── Accordion.tsx │ │ │ │ ├── AlertDialog │ │ │ │ │ └── index.ts │ │ │ │ ├── AspectRatio │ │ │ │ │ └── index.ts │ │ │ │ ├── FormatBytes │ │ │ │ │ └── index.ts │ │ │ │ ├── GuestRoute │ │ │ │ │ ├── index.ts │ │ │ │ │ └── GuestRoute.tsx │ │ │ │ ├── IconButton │ │ │ │ │ ├── index.ts │ │ │ │ │ └── IconButton.tsx │ │ │ │ ├── Indicator │ │ │ │ │ └── index.ts │ │ │ │ ├── InputBase │ │ │ │ │ └── index.ts │ │ │ │ ├── LayoutLoading │ │ │ │ │ └── index.ts │ │ │ │ ├── RadioGroup │ │ │ │ │ └── index.ts │ │ │ │ ├── SideBarItem │ │ │ │ │ └── index.ts │ │ │ │ ├── TooltipIcon │ │ │ │ │ └── index.ts │ │ │ │ ├── UnitFormat │ │ │ │ │ └── index.ts │ │ │ │ ├── Autocomplete │ │ │ │ │ └── index.ts │ │ │ │ ├── ButtonLoading │ │ │ │ │ └── index.ts │ │ │ │ ├── CardKeyValue │ │ │ │ │ └── index.ts │ │ │ │ ├── ConfirmDialog │ │ │ │ │ └── index.ts │ │ │ │ ├── DialogActions │ │ │ │ │ ├── index.ts │ │ │ │ │ └── DialogActions.tsx │ │ │ │ ├── LayoutDashboard │ │ │ │ │ └── index.ts │ │ │ │ ├── LocaleToggle │ │ │ │ │ └── index.ts │ │ │ │ ├── Mode │ │ │ │ │ └── index.ts │ │ │ │ ├── PrivateRoute │ │ │ │ │ ├── index.ts │ │ │ │ │ └── PrivateRoute.tsx │ │ │ │ ├── ThemeProvider │ │ │ │ │ └── index.ts │ │ │ │ ├── AdvancedOptions │ │ │ │ │ └── index.ts │ │ │ │ ├── ButtonSelected │ │ │ │ │ └── index.ts │ │ │ │ ├── CopyToClipboard │ │ │ │ │ └── index.ts │ │ │ │ ├── DarkModeToggle │ │ │ │ │ ├── index.ts │ │ │ │ │ └── DarkModeToggle.tsx │ │ │ │ ├── FormBackButton │ │ │ │ │ └── index.ts │ │ │ │ ├── LoadingOverlay │ │ │ │ │ └── index.ts │ │ │ │ ├── StateIndicator │ │ │ │ │ └── index.ts │ │ │ │ ├── StateTypography │ │ │ │ │ ├── index.ts │ │ │ │ │ └── StateTypography.tsx │ │ │ │ ├── TextFieldNumber │ │ │ │ │ └── index.ts │ │ │ │ ├── ToolbarSpacing │ │ │ │ │ ├── index.ts │ │ │ │ │ └── ToolbarSpacing.tsx │ │ │ │ ├── FormatLargeNumber │ │ │ │ │ └── index.ts │ │ │ │ ├── TooltipTypography │ │ │ │ │ ├── index.ts │ │ │ │ │ └── TooltipTypography.tsx │ │ │ │ ├── LocaleProvider │ │ │ │ │ └── index.ts │ │ │ │ ├── DashboardTitle │ │ │ │ │ └── index.ts │ │ │ │ ├── FormatConnectionStatus │ │ │ │ │ └── index.ts │ │ │ │ ├── Amount │ │ │ │ │ └── index.ts │ │ │ │ ├── Button │ │ │ │ │ └── index.ts │ │ │ │ ├── ModalDialogs │ │ │ │ │ ├── ModalDialogsContext.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TextField │ │ │ │ │ └── index.ts │ │ │ │ ├── Table │ │ │ │ │ └── index.ts │ │ │ │ └── Settings │ │ │ │ │ └── index.ts │ │ │ ├── screens │ │ │ │ ├── SelectKey │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── theme │ │ │ │ ├── index.ts │ │ │ │ ├── light.ts │ │ │ │ ├── dark.ts │ │ │ │ └── default.ts │ │ │ ├── constants │ │ │ │ ├── Mode.ts │ │ │ │ ├── Unit.ts │ │ │ │ ├── State.ts │ │ │ │ ├── StateColor.ts │ │ │ │ ├── UnitValue.ts │ │ │ │ ├── UnitFractionDigits.ts │ │ │ │ ├── UnitAliases.ts │ │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ │ ├── useShowDebugInformation.ts │ │ │ │ ├── useCurrencyCode.ts │ │ │ │ ├── useOpenExternal.ts │ │ │ │ ├── useTrans.ts │ │ │ │ ├── useLocale.ts │ │ │ │ ├── useMode.ts │ │ │ │ ├── useAppVersion.ts │ │ │ │ ├── useShowError.tsx │ │ │ │ ├── useSkipMigration.ts │ │ │ │ └── useShowSaveDialog.ts │ │ │ ├── index.ts │ │ │ └── locales │ │ │ │ └── README.md │ │ ├── .gitignore │ │ ├── tsconfig.json │ │ └── .babelrc │ ├── gui │ │ ├── .env.example │ │ ├── src │ │ │ ├── react-app-env.d.ts │ │ │ ├── config │ │ │ │ ├── env.ts │ │ │ │ └── config.js │ │ │ ├── types │ │ │ │ ├── Program.ts │ │ │ │ ├── G2Element.ts │ │ │ │ ├── Point.ts │ │ │ │ ├── Fingerprint.ts │ │ │ │ ├── Peak.ts │ │ │ │ ├── ProofsOfSpace.ts │ │ │ │ ├── PlotNFTExternal.ts │ │ │ │ ├── CoinSolution.ts │ │ │ │ ├── Challenge.ts │ │ │ │ ├── FarmingInfo.ts │ │ │ │ ├── SpendBundle.ts │ │ │ │ ├── Block.ts │ │ │ │ ├── SignagePoint.ts │ │ │ │ ├── UnconfirmedPlotNFT.ts │ │ │ │ ├── InitialTargetState.ts │ │ │ │ ├── FoliageTransactionBlock.ts │ │ │ │ ├── PoolInfo.ts │ │ │ │ ├── Coin.ts │ │ │ │ ├── Plot.ts │ │ │ │ ├── PlotNFT.ts │ │ │ │ ├── PlotQueueItem.ts │ │ │ │ ├── Connection.ts │ │ │ │ ├── WalletBalance.ts │ │ │ │ └── Foliage.ts │ │ │ ├── fonts.d.ts │ │ │ ├── util │ │ │ │ ├── plot_sizes.js │ │ │ │ ├── sleep.ts │ │ │ │ ├── isWindows.ts │ │ │ │ ├── wallet_types.js │ │ │ │ ├── getPoolInfo.ts │ │ │ │ ├── mergeArrayItem.ts │ │ │ │ ├── blockHeightToTimestamp.ts │ │ │ │ ├── normalizePoolState.ts │ │ │ │ ├── untildify.ts │ │ │ │ ├── normalizeUrl.ts │ │ │ │ ├── removeOldPoints.ts │ │ │ │ ├── getWalletSyncingStatus.ts │ │ │ │ ├── getDescriptiveError.ts │ │ │ │ ├── getPercentPointsSuccessfull.ts │ │ │ │ └── manageDaemonLifetime.ts │ │ │ ├── electron │ │ │ │ └── preload.js │ │ │ ├── assets │ │ │ │ ├── img │ │ │ │ │ ├── chia.ico │ │ │ │ │ ├── chia.png │ │ │ │ │ ├── chia.icns │ │ │ │ │ ├── chia64x64.png │ │ │ │ │ ├── goldcoin.icns │ │ │ │ │ ├── goldcoin.ico │ │ │ │ │ ├── goldcoin.png │ │ │ │ │ ├── chia_circle.png │ │ │ │ │ ├── circle-cropped.png │ │ │ │ │ ├── goldcoin64x64.ico │ │ │ │ │ └── goldcoin64x64.png │ │ │ │ └── fonts │ │ │ │ │ ├── ionicons.eot │ │ │ │ │ ├── ionicons.ttf │ │ │ │ │ ├── ionicons.woff │ │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ │ ├── ionicons.woff2 │ │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ │ └── Roboto-Regular.ttf │ │ │ ├── constants │ │ │ │ ├── FullNodeState.ts │ │ │ │ ├── PlotterName.ts │ │ │ │ ├── plotLocalStorage.ts │ │ │ │ ├── PlotStatus.ts │ │ │ │ ├── PlotNFTState.ts │ │ │ │ ├── SyncingStatus.ts │ │ │ │ ├── TransactionType.ts │ │ │ │ ├── FarmerStatus.ts │ │ │ │ ├── WalletType.ts │ │ │ │ └── ModeServices.ts │ │ │ ├── polyfill.ts │ │ │ ├── locales │ │ │ │ └── README.md │ │ │ ├── components │ │ │ │ ├── pool │ │ │ │ │ └── PoolHeader.tsx │ │ │ │ ├── app │ │ │ │ │ └── App.tsx │ │ │ │ ├── farm │ │ │ │ │ ├── card │ │ │ │ │ │ ├── FarmCardTotalSizeOfPlots.tsx │ │ │ │ │ │ └── FarmCardPlotCount.tsx │ │ │ │ │ └── FarmCloseConnection.tsx │ │ │ │ └── plot │ │ │ │ │ └── queue │ │ │ │ │ └── PlotQueueSize.tsx │ │ │ ├── hooks │ │ │ │ ├── useOpenExternal.ts │ │ │ │ ├── useIsMainnet.tsx │ │ │ │ ├── useSelectFile.tsx │ │ │ │ └── useFullNodeState.ts │ │ │ ├── index.tsx │ │ │ └── index.html │ │ ├── .prettierrc.js │ │ ├── windows.json │ │ ├── public │ │ │ └── favicon.ico │ │ ├── goldcoinblockchain.provisionprofile │ │ ├── .editorconfig │ │ ├── remote.md │ │ ├── entitlements.mac.plist │ │ └── babel.config.js │ ├── icons │ │ ├── .gitignore │ │ ├── src │ │ │ ├── Farm.tsx │ │ │ ├── Keys.tsx │ │ │ ├── Plot.tsx │ │ │ ├── Pool.tsx │ │ │ ├── Trade.tsx │ │ │ ├── Settings.tsx │ │ │ ├── Wallet.tsx │ │ │ ├── Goldcoin.tsx │ │ │ ├── PlotHero.tsx │ │ │ └── index.ts │ │ ├── .babelrc │ │ └── tsconfig.json │ ├── api │ │ ├── .gitignore │ │ ├── src │ │ │ ├── @types │ │ │ │ ├── BlockHeader.ts │ │ │ │ ├── BlockRecord.ts │ │ │ │ ├── BlockchainState.ts │ │ │ │ ├── Program.ts │ │ │ │ ├── BlockchainConnection.ts │ │ │ │ ├── Point.ts │ │ │ │ ├── G2Element.ts │ │ │ │ ├── Fingerprint.ts │ │ │ │ ├── Peak.ts │ │ │ │ ├── CATToken.ts │ │ │ │ ├── ProofsOfSpace.ts │ │ │ │ ├── PlotNFTExternal.ts │ │ │ │ ├── OfferCoinOfInterest.ts │ │ │ │ ├── CoinSolution.ts │ │ │ │ ├── Challenge.ts │ │ │ │ ├── FarmingInfo.ts │ │ │ │ ├── Block.ts │ │ │ │ ├── SpendBundle.ts │ │ │ │ ├── SignagePoint.ts │ │ │ │ ├── UnconfirmedPlotNFT.ts │ │ │ │ ├── OfferSummaryRecord.ts │ │ │ │ ├── MessageInterface.ts │ │ │ │ ├── InitialTargetState.ts │ │ │ │ ├── FoliageTransactionBlock.ts │ │ │ │ ├── PoolInfo.ts │ │ │ │ ├── Coin.ts │ │ │ │ ├── Plot.ts │ │ │ │ ├── PlotNFT.ts │ │ │ │ ├── PlotQueueItem.ts │ │ │ │ ├── Connection.ts │ │ │ │ ├── WalletBalance.ts │ │ │ │ ├── Foliage.ts │ │ │ │ ├── OfferTradeRecord.ts │ │ │ │ └── PlotAdd.ts │ │ │ ├── utils │ │ │ │ ├── sleep.ts │ │ │ │ ├── ErrorData.ts │ │ │ │ ├── index.ts │ │ │ │ ├── toSnakeCase.ts │ │ │ │ ├── toCamelCase.ts │ │ │ │ ├── defaultsForPlotter.ts │ │ │ │ └── optionsForPlotter.ts │ │ │ ├── constants │ │ │ │ ├── PlotterName.ts │ │ │ │ ├── PassphrasePromptReason.ts │ │ │ │ ├── ConnectionState.ts │ │ │ │ ├── SyncingStatus.ts │ │ │ │ ├── TransactionType.ts │ │ │ │ ├── WalletType.ts │ │ │ │ ├── defaultPlotter.ts │ │ │ │ ├── ServiceName.ts │ │ │ │ ├── ServiceConnectionName.ts │ │ │ │ └── ServiceHumanName.ts │ │ │ ├── wallets │ │ │ │ ├── index.ts │ │ │ │ └── Pool.ts │ │ │ ├── index.ts │ │ │ └── services │ │ │ │ ├── index.ts │ │ │ │ └── Events.ts │ │ ├── .npmignore │ │ └── .babelrc │ ├── api-react │ │ ├── .gitignore │ │ ├── src │ │ │ ├── slices │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── hooks │ │ │ │ ├── useForceUpdate.ts │ │ │ │ ├── useGetCombinedPlotsQuery.ts │ │ │ │ ├── useLogout.ts │ │ │ │ ├── useGetCombinedNotFoundFilenamesQuery.ts │ │ │ │ ├── useGetCombinedFailedToOpenFilenamesQuery.ts │ │ │ │ ├── useGetHarvesterConnectionsQuery.ts │ │ │ │ ├── useGetFarmerFullNodeConnectionsQuery.ts │ │ │ │ └── useGetCombinedHarvestersQuery.ts │ │ │ ├── api.ts │ │ │ └── utils │ │ │ │ ├── normalizePoolState.ts │ │ │ │ └── removeOldPoints.ts │ │ ├── .npmignore │ │ ├── .babelrc │ │ └── tsconfig.json │ └── wallets │ │ ├── src │ │ ├── constants │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── components │ │ │ ├── offers │ │ │ │ ├── OfferLocalStorage.ts │ │ │ │ ├── OfferEditorRowData.ts │ │ │ │ ├── OfferRowData.tsx │ │ │ │ └── OfferState.ts │ │ │ ├── index.ts │ │ │ ├── hero │ │ │ │ └── WalletHero.tsx │ │ │ ├── cat │ │ │ │ └── WalletCATList.tsx │ │ │ └── WalletStatusHeight.tsx │ │ ├── utils │ │ │ ├── index.ts │ │ │ ├── getWalletSyncingStatus.ts │ │ │ ├── getWalletHumanValue.ts │ │ │ └── isCATWalletPresent.ts │ │ ├── locales │ │ │ └── README.md │ │ └── hooks │ │ │ ├── index.ts │ │ │ ├── useIsWalletSynced.ts │ │ │ └── useWalletState.ts │ │ ├── tsconfig.json │ │ └── .babelrc ├── lerna.json ├── .eslintignore └── crowdin.yml ├── .flake8 ├── lgtm.yml ├── run-py-tests.sh ├── mypy.ini ├── .gitmodules ├── pyproject.toml ├── INSTALL.md ├── README.md └── .github ├── workflows └── recover git workflow │ └── pre-commit.yml └── ISSUE_TEMPLATE └── config.yml /goldcoin/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /benchmarks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mozilla-ca/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/clvm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/pools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/tools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/util/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/clvm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/cmds/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/daemon/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/farmer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/pools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/rpc/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/seeder/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/server/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/ssl/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/types/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/util/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/blockchain/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/cmds/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/ssl/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/util/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/generator/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/plotting/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/simulation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wallet/rpc/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/consensus/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/full_node/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/harvester/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/introducer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/plotters/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/plotting/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/protocols/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/simulator/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/timelord/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/util/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/consensus/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/daemon/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/full_node/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/server/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wallet/sync/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/weight_proof/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/cat_wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/did_wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/rl_wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/settings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/trading/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mozilla-ca/README.md: -------------------------------------------------------------------------------- 1 | # mozilla-ca 2 | -------------------------------------------------------------------------------- /tests/core/custom_types/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/full_node/dos/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/farmer_harvester/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/runner_templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wallet/cat_wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wallet/did_wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wallet/rl_wallet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/wallet/simple_sync/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/prefarm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/full_node/full_sync/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/full_node/stores/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/pools/config.py: -------------------------------------------------------------------------------- 1 | job_timeout = 60 2 | -------------------------------------------------------------------------------- /tests/util/config.py: -------------------------------------------------------------------------------- 1 | job_timeout = 60 2 | -------------------------------------------------------------------------------- /goldcoin/types/blockchain_format/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/blockchain/config.py: -------------------------------------------------------------------------------- 1 | job_timeout = 60 2 | -------------------------------------------------------------------------------- /tests/simulation/config.py: -------------------------------------------------------------------------------- 1 | job_timeout = 60 2 | -------------------------------------------------------------------------------- /tests/wallet/sync/config.py: -------------------------------------------------------------------------------- 1 | job_timeout = 60 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/.npmrc: -------------------------------------------------------------------------------- 1 | legacy-peer-deps=true -------------------------------------------------------------------------------- /tests/plotting/config.py: -------------------------------------------------------------------------------- 1 | install_timelord = False 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/getUnit: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/core/full_node/dos/config.py: -------------------------------------------------------------------------------- 1 | job_timeout = 60 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/lock.inner.puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff01ff8080 -------------------------------------------------------------------------------- /tests/core/full_node/full_sync/config.py: -------------------------------------------------------------------------------- 1 | job_timeout = 60 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/create-lock-puzzlehash.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_conditions.clvm.hex: -------------------------------------------------------------------------------- 1 | ff04ffff0101ff0280 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/.env.example: -------------------------------------------------------------------------------- 1 | LOCAL_TEST=true 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .env -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .env -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/CurrencyCode/CurrencyCode.tsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/test_generator_deserialize.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ff02ffff04ff0bff808080 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/src/slices/index.ts: -------------------------------------------------------------------------------- 1 | export * as api from './api'; -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/decompress_puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ff02ffff04ffff0eff05ff0bff1780ff808080 -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = ./typings/**/* 4 | ignore = E203,W503 5 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/calculate_synthetic_public_key.clvm.hex: -------------------------------------------------------------------------------- 1 | ff1dff02ffff1effff0bff02ff05808080 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/BlockHeader.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockHeader {} -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/BlockRecord.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockRecord {} -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Back/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Back'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fee/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Fee'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Fonts'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Log/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Log'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Spacer/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Spacer'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/create-lock-puzzlehash.clvm.hex: -------------------------------------------------------------------------------- 1 | can't compile ("my-id"), unknown operator 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Card/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Card'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Dropdown/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Dropdown'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Flex/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Flex'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Form/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Form'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Link/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Link'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Logo/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Logo'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/More/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './More'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Select/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Select'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/screens/SelectKey/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './SelectKey'; -------------------------------------------------------------------------------- /tests/clvm/config.py: -------------------------------------------------------------------------------- 1 | parallel = True 2 | checkout_blocks_and_plots = False 3 | install_timelord = False 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/BlockchainState.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockchainState {} -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Address/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Address'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/CardHero/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardHero'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/CardSimple/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardSimple'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/CardStep/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardStep'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Checkbox/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Checkbox'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Dropzone/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Dropzone'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/LayoutHero/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutHero'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/LayoutMain/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutMain'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Loading/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Loading'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Spinner/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Spinner'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Suspender/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Suspender'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Tooltip/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Tooltip'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/config/env.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv'; 2 | 3 | dotenv.config(); 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/Program.ts: -------------------------------------------------------------------------------- 1 | type Program = {}; 2 | 3 | export default Program; 4 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_conditions.clvm: -------------------------------------------------------------------------------- 1 | (mod (conditions) 2 | (qq (q . (unquote conditions))) 3 | ) 4 | -------------------------------------------------------------------------------- /mozilla-ca/.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/Program.ts: -------------------------------------------------------------------------------- 1 | type Program = {}; 2 | 3 | export default Program; 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Accordion/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Accordion'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/AlertDialog/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AlertDialog'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/AspectRatio/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AspectRatio'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/CurrencyCode/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CurrencyCode'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/FormatBytes/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormatBytes'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/GuestRoute/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './GuestRoute'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/IconButton/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './IconButton'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Indicator/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Indicator'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/InputBase/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './InputBase'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/LayoutLoading/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutLoading'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/RadioGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './RadioGroup'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/SideBarItem/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './SideBarItem'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/TooltipIcon/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TooltipIcon'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/UnitFormat/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './UnitFormat'; 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/cat.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 72dec062874cd4d3aab892a0906688a1ae412b0109982e1797a170add88bdcdc 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/rl.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | f663796a8c522b85bd9472cbea2bf7f138e8351e8e4032706fc0539e87f94faf 2 | -------------------------------------------------------------------------------- /lgtm.yml: -------------------------------------------------------------------------------- 1 | extraction: 2 | javascript: 3 | index: 4 | include: 5 | - goldcoin-blockchain-gui 6 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "packages/*" 4 | ], 5 | "version": "1.0.0" 6 | } 7 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/BlockchainConnection.ts: -------------------------------------------------------------------------------- 1 | export default interface BlockchainConnection {} -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/Point.ts: -------------------------------------------------------------------------------- 1 | type Point = [number, number]; 2 | 3 | export default Point; 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Autocomplete/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Autocomplete'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ButtonLoading/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonLoading'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/CardKeyValue/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CardKeyValue'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ConfirmDialog/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ConfirmDialog'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/DialogActions/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './DialogActions'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/LayoutDashboard/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LayoutDashboard'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/LocaleToggle/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LocaleToggle'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Mode/index.ts: -------------------------------------------------------------------------------- 1 | export { default as ModeProvider } from './ModeProvider'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/PrivateRoute/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './PrivateRoute'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ThemeProvider/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ThemeProvider'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/G2Element.ts: -------------------------------------------------------------------------------- 1 | type G2Element = string; 2 | 3 | export default G2Element; 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/Point.ts: -------------------------------------------------------------------------------- 1 | type Point = [number, number]; 2 | 3 | export default Point; 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export { default as WalletName } from './WalletName'; 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/condition_codes.clvm.hex: -------------------------------------------------------------------------------- 1 | can't compile ("defconstant" "AGG_SIG_UNSAFE" 49), unknown operator 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/G2Element.ts: -------------------------------------------------------------------------------- 1 | type G2Element = string; 2 | 3 | export default G2Element; 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/AdvancedOptions/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './AdvancedOptions'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ButtonSelected/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ButtonSelected'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/CopyToClipboard/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './CopyToClipboard'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/DarkModeToggle/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './DarkModeToggle'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/FormBackButton/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormBackButton'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/LoadingOverlay/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './LoadingOverlay'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/StateIndicator/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './StateIndicator'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/StateTypography/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './StateTypography'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/TextFieldNumber/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TextFieldNumber'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ToolbarSpacing/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ToolbarSpacing'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/screens/index.ts: -------------------------------------------------------------------------------- 1 | export { default as SelectKey } from './SelectKey/SelectKey'; 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/delegated_tail.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 999c3696e167f8a79d938adc11feba3a3dcb39ccff69a426d570706e7b8ec399 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/did_innerpuz.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | ef41902d9964f6050f87de98b5c4e34512b7d2abded3fe700f7850ff20323bf2 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis_by_coin_id.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 493afb89eed93ab86741b2aa61b8f5de495d33ff9b781dfc8919e602b2afa150 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/lock.inner.puzzle.clvm: -------------------------------------------------------------------------------- 1 | ; a trivial puzzle used as the core of a lock puzzle 2 | (mod args (q ())) 3 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_conditions.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 1c77d7d5efde60a7a1d2d27db6d746bc8e568aea1ef8586ca967a0d60b83cc36 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_puzzle_hash.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 13e29a62b42cd2ef72a79e4bacdc59733ca6310d65af83d349360d36ec622363 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_singleton.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 40f828d8dd55603f4ff9fbf6b73271e904e69406982f4fbefae2c8dcceaf9834 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/rl_aggregation.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 007400187f63927ee023a7172bb88f14d49aaa4beb790ecaf7dde7c1a79b6481 2 | -------------------------------------------------------------------------------- /benchmarks/clvm_generator.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/benchmarks/clvm_generator.bin -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/Fingerprint.ts: -------------------------------------------------------------------------------- 1 | type Fingerprint = number; 2 | 3 | export default Fingerprint; 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/FormatLargeNumber/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormatLargeNumber'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/TooltipTypography/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TooltipTypography'; 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/Fingerprint.ts: -------------------------------------------------------------------------------- 1 | type Fingerprint = number; 2 | 3 | export default Fingerprint; 4 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/block_program_zero.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | f0a38c8efe58895ae527c65c37f700a4238504691b83990e5dd91bd8b3c30eae 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/decompress_puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | fe94c58f1117afe315e0450daca1c62460ec1a1c439cd4018d79967a5d7d1370 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/everything_with_signature.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 1720d13250a7c16988eaf530331cefa9dd57a76b2c82236bec8bbbff91499b89 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis-by-coin-id-with-0.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 493afb89eed93ab86741b2aa61b8f5de495d33ff9b781dfc8919e602b2afa150 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis_by_puzzle_hash.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | de5a6e06d41518be97ff6365694f4f89475dda773dede267caa33da63b434e36 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/lock.inner.puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | f3a579254623f8094e07af862df2e45c9db5592b4105d34a256dd6c498416288 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 542cde70d1102cd1b763220990873efc8ab15625ded7eae22cc11e21ef2e2f7c 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/pool_member_innerpuz.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | a8490702e333ddd831a3ac9c22d0fa26d2bfeaf2d33608deb22f0e0123eb0494 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/settlement_payments.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | bae24162efbd568f89bc7a340798a6118df0189eb9e3f8697bcea27af99f8f79 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/sha256tree_module.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | eb4ead6576048c9d730b5ced00646c7fdd390649cfdf48a00de1590cdd8ee18f 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/singleton_launcher.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | eff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/singleton_top_layer.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 24e044101e57b3d8c908b8a38ad57848afd29d3eecc439dba45f4412df4954fd 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/LocaleProvider/index.ts: -------------------------------------------------------------------------------- 1 | export { default, LocaleContext } from './LocaleProvider'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/fonts.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.woff'; 2 | declare module '*.woff2'; 3 | declare module '*.ttf'; 4 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/delegated_genesis_checker.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 999c3696e167f8a79d938adc11feba3a3dcb39ccff69a426d570706e7b8ec399 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/generator_for_single_coin.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 9eb0d58814fff6aec8e9eb9522c08a68d8f004bf1506e6c98388758beee2f80e 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis-by-puzzle-hash-with-0.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | de5a6e06d41518be97ff6365694f4f89475dda773dede267caa33da63b434e36 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_conditions.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 0ff94726f1a8dea5c3f70d3121945190778d3b2b3fcda3735a1f290977e98341 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_m_of_n_delegate_direct.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 0f199d5263ac1a62b077c159404a71abd3f9691cc57520bf1d4c5cb501504457 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/pool_waitingroom_innerpuz.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | a317541a765bf8375e1c6e7c13503d0d2cbf56cacad5182befe947e78e2c0307 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/rom_bootstrap_generator.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 161bade1f822dcd62ab712ebaf30f3922a301e48a639e4295c5685f8bece7bd9 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/DashboardTitle/index.ts: -------------------------------------------------------------------------------- 1 | export { default, DashboardTitleTarget } from './DashboardTitle'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/FormatConnectionStatus/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './FormatConnectionStatus'; 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/calculate_synthetic_public_key.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 624c5d5704d0decadfc0503e71bbffb6cdfe45025bce7cf3e6864d1eafe8f65e 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/decompress_coin_spend_entry.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 9d98ed08770d31be4bd1bde4705dab388db5e7e9c349f5a76fc3c347aa3a0b79 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/everything_with_signature.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff02ffff04ff05ffff04ff5fff80808080ff8080ffff04ffff0132ff018080 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis_by_coin_id.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff03ff2fffff01ff0880ffff01ff02ffff03ffff09ff2dff0280ff80ffff01ff088080ff018080ff0180 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/goldcoinlisp_deserialisation.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 94ec19077f9a34e0b11ad2456af0170f4cc03f11230ca42e3f82e6e644ac4f5d 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/test_generator_deserialize.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 52add794fc76e89512e4a063c383418bda084c8a78c74055abe80179e4a7832c 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/theme/index.ts: -------------------------------------------------------------------------------- 1 | export { default as dark } from './dark'; 2 | export { default as light } from './light'; -------------------------------------------------------------------------------- /goldcoin/consensus/network_type.py: -------------------------------------------------------------------------------- 1 | from enum import IntEnum 2 | 3 | 4 | class NetworkType(IntEnum): 5 | MAINNET = 0 6 | TESTNET = 1 7 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis-by-coin-id-with-0.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff03ff2fffff01ff0880ffff01ff02ffff03ffff09ff2dff0280ff80ffff01ff088080ff018080ff0180 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_singleton_or_delayed_puzhash.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | adb656e0211e2ab4f42069a4c5efc80dc907e7062be08bf1628c8e5b6d94d25b 2 | -------------------------------------------------------------------------------- /tests/tools/test-blockchain-db.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/tests/tools/test-blockchain-db.sqlite -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/decompress_coin_spend_entry_with_prefix.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 92aa4bc8060a8836355a1884075141b4791ce1b67ae6092bb166b2845954bc89 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | e9aaa49f45bad5c889b86ee3341550c155cfdd10c3a6757de618d20612fffd52 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/test_multiple_generator_input_arguments.clvm.hex.sha256tree: -------------------------------------------------------------------------------- 1 | 156dafbddc3e1d3bfe1f2a84e48e5e46b287b8358bf65c3c091c93e855fbfc5b 2 | -------------------------------------------------------------------------------- /tests/util/protocol_messages_bytes-v1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/tests/util/protocol_messages_bytes-v1.0 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/Peak.ts: -------------------------------------------------------------------------------- 1 | type Peak = { 2 | height: number; 3 | timestamp: number; 4 | }; 5 | 6 | export default Peak; 7 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Amount/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Amount'; 2 | export type { AmountProps } from './Amount'; 3 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Button/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Button'; 2 | export type { ButtonProps } from './Button'; 3 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | trailingComma: 'all', 4 | printWidth: 80 5 | }; 6 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/Peak.ts: -------------------------------------------------------------------------------- 1 | type Peak = { 2 | height: number; 3 | timestamp: number; 4 | }; 5 | 6 | export default Peak; 7 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/test_generator_deserialize.clvm: -------------------------------------------------------------------------------- 1 | (mod (deserializer generator_list reserved_arg) 2 | (a deserializer (list reserved_arg)) 3 | ) 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/constants/Mode.ts: -------------------------------------------------------------------------------- 1 | enum Mode { 2 | WALLET = 'wallet', 3 | FARMING = 'farming', 4 | } 5 | 6 | export default Mode; 7 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useShowDebugInformation.ts: -------------------------------------------------------------------------------- 1 | export default function useShowDebugInformation(): boolean { 2 | return true; 3 | } -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ModalDialogs/ModalDialogsContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | 3 | export default createContext(); -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/util/plot_sizes.js: -------------------------------------------------------------------------------- 1 | export function calculateSizeFromK(k) { 2 | return Math.floor(780 * k * Math.pow(2, k - 10)); 3 | } 4 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/TextField/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './TextField'; 2 | export type { TextFieldProps } from './TextField'; 3 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/windows.json: -------------------------------------------------------------------------------- 1 | { 2 | "dest": "dist/installers/", 3 | "icon": "src/assets/img/goldcoin.ico", 4 | "tags": ["Blockchain"] 5 | } 6 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/decompress_coin_spend_entry.clvm.hex: -------------------------------------------------------------------------------- 1 | ff04ff4fffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff82012fffff04ff17ff808080808080ffff04ff82014fff8201af808080 -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis_by_puzzle_hash.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff03ff2fffff01ff0880ffff01ff02ffff03ffff09ffff0bff82013fff02ff8202bf80ff2d80ff80ffff01ff088080ff018080ff0180 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | examples 4 | daemon 5 | build 6 | *_old 7 | packages/*/src/tests 8 | packages/*/test/fixtures 9 | packages/wallet/* -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Table/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './Table'; 2 | export { default as TableControlled } from './TableControlled'; 3 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis-by-puzzle-hash-with-0.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff03ff2fffff01ff0880ffff01ff02ffff03ffff09ffff0bff82013fff02ff8202bf80ff2d80ff80ffff01ff088080ff018080ff0180 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/constants/Unit.ts: -------------------------------------------------------------------------------- 1 | enum Unit { 2 | GOLDCOIN = 'goldcoin', 3 | MOJO = 'mojo', 4 | CAT = 'cat', 5 | } 6 | 7 | export default Unit; 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/public/favicon.ico -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/decompress_coin_spend_entry_with_prefix.clvm.hex: -------------------------------------------------------------------------------- 1 | ff04ff47ffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff8197ffff01ff84ff0180808080808080ffff04ff81a7ff81d7808080 -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/ProofsOfSpace.ts: -------------------------------------------------------------------------------- 1 | type ProofsOfSpace = { 2 | [key: string]: [string, ProofsOfSpace][]; 3 | }; 4 | 5 | export default ProofsOfSpace; 6 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/electron/preload.js: -------------------------------------------------------------------------------- 1 | const { ipcRenderer,shell } = require('electron'); 2 | 3 | window.ipcRenderer = ipcRenderer; 4 | window.shell = shell; 5 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/ProofsOfSpace.ts: -------------------------------------------------------------------------------- 1 | type ProofsOfSpace = { 2 | [key: string]: [string, ProofsOfSpace][]; 3 | }; 4 | 5 | export default ProofsOfSpace; 6 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/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 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/rl_aggregation.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff06ffff04ff0bff808080ffff04ffff04ff04ffff04ffff0bffff0bff17ff05ff2f80ff0b80ff808080ff808080ffff04ffff01ff3d46ff018080 -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/chia.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/chia.ico -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/chia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/chia.png -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/chia.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/chia.icns -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ModalDialogs/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './ModalDialogs'; 2 | 3 | export { default as ModalDialogsProvider } from './ModalDialogsProvider'; 4 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/chia64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/chia64x64.png -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin.icns -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin.ico -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin.png -------------------------------------------------------------------------------- /goldcoin/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 | -------------------------------------------------------------------------------- /run-py-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python3 -m venv venv 4 | # shellcheck disable=SC1091 5 | . ./activate 6 | pip3 install ".[dev]" 7 | mypy --install-types 8 | 9 | py.test ./tests -s -v 10 | -------------------------------------------------------------------------------- /tests/runner_templates/install-timelord.include.yml: -------------------------------------------------------------------------------- 1 | - name: Install timelord 2 | run: | 3 | . ./activate 4 | sh install-timelord.sh 5 | ./vdf_bench square_asm 400000 6 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/constants/StateColor.ts: -------------------------------------------------------------------------------- 1 | enum StateColor { 2 | SUCCESS = '#D4AF37', 3 | WARNING = '#D4AF37', 4 | ERROR = '#F44336', 5 | } 6 | 7 | export default StateColor; 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.eot -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.ttf -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/chia_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/chia_circle.png -------------------------------------------------------------------------------- /goldcoin/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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/fonts/ionicons.woff2 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/circle-cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/circle-cropped.png -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin64x64.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin64x64.ico -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/img/goldcoin64x64.png -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/constants/PlotterName.ts: -------------------------------------------------------------------------------- 1 | enum PlotterName { 2 | BLADEBIT = 'bladebit', 3 | GOLDCOINPOS = 'chiapos', 4 | MADMAX = 'madmax', 5 | } 6 | 7 | export default PlotterName; 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.eot -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.ttf -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/goldcoinblockchain.provisionprofile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/goldcoinblockchain.provisionprofile -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/gui/src/assets/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/constants/PlotterName.ts: -------------------------------------------------------------------------------- 1 | enum PlotterName { 2 | BLADEBIT = 'bladebit', 3 | GOLDCOINPOS = 'chiapos', 4 | MADMAX = 'madmax', 5 | } 6 | 7 | export default PlotterName; 8 | -------------------------------------------------------------------------------- /goldcoin-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'; -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | files = benchmarks,build_scripts,goldcoin,tests,*.py 3 | ignore_missing_imports = True 4 | show_error_codes = True 5 | warn_unused_ignores = True 6 | 7 | [mypy - lib] 8 | ignore_errors = True 9 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/core/src/components/Fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/core/src/components/Fonts/ionicons.woff2 -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/core/src/components/Fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gold-Coin-Network/goldcoin-blockchain/HEAD/goldcoin-blockchain-gui/packages/core/src/components/Fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/offers/OfferLocalStorage.ts: -------------------------------------------------------------------------------- 1 | enum OfferLocalStorageKeys { 2 | SUPPRESS_SHARE_ON_CREATE = 'suppressShareOnCreate', 3 | } 4 | 5 | export default OfferLocalStorageKeys; 6 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 Pool } from './Pool'; 4 | export { default as RL } from './RL'; 5 | -------------------------------------------------------------------------------- /goldcoin-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'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/OfferCoinOfInterest.ts: -------------------------------------------------------------------------------- 1 | 2 | type OfferCoinOfInterest = { 3 | amount: number; 4 | parentCoinInfo: string; 5 | puzzleHash: string; 6 | }; 7 | 8 | export default OfferCoinOfInterest; 9 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Spacer/Spacer.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Flex from '../Flex'; 3 | 4 | export default function Spacer() { 5 | return ( 6 | 7 | ); 8 | } 9 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/generator_loader.py: -------------------------------------------------------------------------------- 1 | from goldcoin.wallet.puzzles.load_clvm import load_serialized_clvm 2 | 3 | GENERATOR_FOR_SINGLE_COIN_MOD = load_serialized_clvm("generator_for_single_coin.clvm", package_or_requirement=__name__) 4 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/protocols/protocol_timing.py: -------------------------------------------------------------------------------- 1 | # These settings should not be end-user configurable 2 | INVALID_PROTOCOL_BAN_SECONDS = 10 3 | API_EXCEPTION_BAN_SECONDS = 10 4 | INTERNAL_PROTOCOL_ERROR_BAN_SECONDS = 10 # Don't flap if our client is at fault 5 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/constants/SyncingStatus.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line 2 | enum SyncingStatus { 3 | SYNCING = 'SYNCING', 4 | SYNCED = 'SYNCED', 5 | NOT_SYNCED = 'NOT_SYNCED', 6 | }; 7 | 8 | export default SyncingStatus; 9 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/constants/UnitValue.ts: -------------------------------------------------------------------------------- 1 | import Unit from './Unit'; 2 | 3 | const UnitValue = { 4 | [Unit.GOLDCOIN]: 1, 5 | [Unit.MOJO]: 1 / 1e12, 6 | [Unit.CAT]: 1 / 1e9, 7 | }; 8 | 9 | export default UnitValue; 10 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/constants/SyncingStatus.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line 2 | enum SyncingStatus { 3 | SYNCING = 'SYNCING', 4 | SYNCED = 'SYNCED', 5 | NOT_SYNCED = 'NOT_SYNCED', 6 | } 7 | 8 | export default SyncingStatus; 9 | -------------------------------------------------------------------------------- /goldcoin/consensus/condition_costs.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ConditionCost(Enum): 5 | # Condition Costs 6 | AGG_SIG = 1200000 # the cost of one G1 subgroup check + aggregated signature validation 7 | CREATE_COIN = 1800000 8 | -------------------------------------------------------------------------------- /tests/core/test_setproctitle.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from goldcoin.util.setproctitle import setproctitle 4 | 5 | 6 | class TestSetProcTitle(unittest.TestCase): 7 | def test_does_not_crash(self): 8 | setproctitle("goldcoin test title") 9 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 2 7 | indent_style = space 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | max_line_length = 80 -------------------------------------------------------------------------------- /goldcoin-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 | backup_host: 'https://backup.goldcoin-network.net', 5 | }; 6 | -------------------------------------------------------------------------------- /goldcoin/wallet/trading/trade_status.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TradeStatus(Enum): 5 | PENDING_ACCEPT = 0 6 | PENDING_CONFIRM = 1 7 | PENDING_CANCEL = 2 8 | CANCELLED = 3 9 | CONFIRMED = 4 10 | FAILED = 5 11 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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/Goldcoin-Network/goldcoin-blockchain/wiki/Connecting-the-UI-to-a-remote-daemon)._ 4 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/cat_loader.py: -------------------------------------------------------------------------------- 1 | from goldcoin.wallet.puzzles.load_clvm import load_clvm 2 | 3 | CAT_MOD = load_clvm("cat.clvm", package_or_requirement=__name__) 4 | LOCK_INNER_PUZZLE = load_clvm("lock.inner.puzzle.clvm", package_or_requirement=__name__) 5 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/constants/UnitFractionDigits.ts: -------------------------------------------------------------------------------- 1 | import Unit from './Unit'; 2 | 3 | const UnitFractionDigits = { 4 | [Unit.GOLDCOIN]: 12, 5 | [Unit.MOJO]: 0, 6 | [Unit.CAT]: 3, 7 | }; 8 | 9 | export default UnitFractionDigits; 10 | -------------------------------------------------------------------------------- /goldcoin-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'; -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/sha256tree_module.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff02ff02ffff04ff02ffff04ff05ff80808080ffff04ffff01ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff02ffff04ff02ffff04ff09ff80808080ffff02ff02ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/theme/light.ts: -------------------------------------------------------------------------------- 1 | import { createTheme } from '@material-ui/core/styles'; 2 | import theme from './default'; 3 | 4 | export default createTheme({ 5 | ...theme, 6 | palette: { 7 | ...theme.palette, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /goldcoin/clvm/singleton.py: -------------------------------------------------------------------------------- 1 | from goldcoin.wallet.puzzles.load_clvm import load_clvm 2 | 3 | P2_SINGLETON_MOD = load_clvm("p2_singleton.clvm") 4 | SINGLETON_TOP_LAYER_MOD = load_clvm("singleton_top_layer.clvm") 5 | SINGLETON_LAUNCHER = load_clvm("singleton_launcher.clvm") 6 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/wallet/util/transaction_type.py: -------------------------------------------------------------------------------- 1 | from enum import IntEnum 2 | 3 | 4 | class TransactionType(IntEnum): 5 | INCOMING_TX = 0 6 | OUTGOING_TX = 1 7 | COINBASE_REWARD = 2 8 | FEE_REWARD = 3 9 | INCOMING_TRADE = 4 10 | OUTGOING_TRADE = 5 11 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/locales/README.md: -------------------------------------------------------------------------------- 1 | # Localization 2 | 3 | Thanks for helping to translate the GUI for Goldcoin Blockchain. 4 | 5 | Please head over to our [Crowdin project](https://crowdin.com/project/goldcoin-blockchain/) and add/edit translations there. 6 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/locales/README.md: -------------------------------------------------------------------------------- 1 | # Localization 2 | 3 | Thanks for helping to translate the GUI for Goldcoin Blockchain. 4 | 5 | Please head over to our [Crowdin project](https://crowdin.com/project/goldcoin-blockchain/) and add/edit translations there. 6 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { default as getWalletHumanValue } from './getWalletHumanValue'; 2 | export { default as getWalletSyncingStatus } from './getWalletSyncingStatus'; 3 | export { default as isCATWalletPresent } from './isCATWalletPresent'; -------------------------------------------------------------------------------- /goldcoin/wallet/settings/default_settings.py: -------------------------------------------------------------------------------- 1 | from goldcoin.wallet.settings.settings_objects import BackupInitialized 2 | 3 | default_backup_initialized = BackupInitialized(False, False, False, True) 4 | 5 | default_settings = {BackupInitialized.__name__: default_backup_initialized} 6 | -------------------------------------------------------------------------------- /tests/testconfig.py: -------------------------------------------------------------------------------- 1 | # Github actions template config. 2 | oses = ["ubuntu", "macos"] 3 | 4 | # Defaults are conservative. 5 | parallel = False 6 | checkout_blocks_and_plots = True 7 | install_timelord = True 8 | job_timeout = 30 9 | custom_vars = ["CHECK_RESOURCE_USAGE"] 10 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/locales/README.md: -------------------------------------------------------------------------------- 1 | # Localization 2 | 3 | Thanks for helping to translate the GUI for Goldcoin Blockchain. 4 | 5 | Please head over to our [Crowdin project](https://crowdin.com/project/goldcoin-blockchain/) and add/edit translations there. 6 | -------------------------------------------------------------------------------- /goldcoin/util/hash.py: -------------------------------------------------------------------------------- 1 | import blspy 2 | 3 | from goldcoin.types.blockchain_format.sized_bytes import bytes32 4 | 5 | 6 | def std_hash(b) -> bytes32: 7 | """ 8 | The standard hash used in many places. 9 | """ 10 | return bytes32(blspy.Util.hash256(bytes(b))) 11 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/types/mempool_inclusion_status.py: -------------------------------------------------------------------------------- 1 | from enum import IntEnum 2 | 3 | 4 | class MempoolInclusionStatus(IntEnum): 5 | SUCCESS = 1 # Transaction added to mempool 6 | PENDING = 2 # Transaction not yet added to mempool 7 | FAILED = 3 # Transaction was invalid and dropped 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/IconButton/IconButton.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | import { IconButton } from '@material-ui/core'; 3 | 4 | const StyledIconButton = styled(IconButton)` 5 | padding: 0.2rem; 6 | `; 7 | 8 | export default StyledIconButton; 9 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | 12 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/offers/OfferEditorRowData.ts: -------------------------------------------------------------------------------- 1 | import OfferRowData from './OfferRowData'; 2 | 3 | type OfferEditorRowData = OfferRowData & { 4 | spendableBalance: number; 5 | spendableBalanceString?: string; 6 | }; 7 | 8 | export default OfferEditorRowData; 9 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/Block.ts: -------------------------------------------------------------------------------- 1 | import type FoliageTransactionBlock from './FoliageTransactionBlock'; 2 | import type Foliage from './Foliage'; 3 | 4 | type Block = { 5 | foliage_transaction_block: FoliageTransactionBlock; 6 | foliage: Foliage; 7 | }; 8 | 9 | export default Block; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | 2 | export { default as defaultsForPlotter } from './defaultsForPlotter'; 3 | export { default as english } from './english'; 4 | export { default as optionsForPlotter } from './optionsForPlotter'; 5 | export { default as toCamelCase } from './toCamelCase'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/getPoolInfo.ts: -------------------------------------------------------------------------------- 1 | import type { PoolInfo } from '@goldcoin/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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/DialogActions/DialogActions.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | import { DialogActions } from '@material-ui/core'; 3 | 4 | export default styled(DialogActions)` 5 | padding: ${({ theme }) => `${theme.spacing(2)}px ${theme.spacing(3)}px`}; 6 | `; 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "goldcoin-blockchain-gui"] 2 | path = goldcoin-blockchain-gui 3 | url = https://github.com/Goldcoin-Network/goldcoin-blockchain-gui.git 4 | branch = pools 5 | [submodule "mozilla-ca"] 6 | path = mozilla-ca 7 | url = https://github.com/Chia-Network/mozilla-ca.git 8 | branch = main 9 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/Block.ts: -------------------------------------------------------------------------------- 1 | import type FoliageTransactionBlock from './FoliageTransactionBlock'; 2 | import type Foliage from './Foliage'; 3 | 4 | type Block = { 5 | foliage_transaction_block: FoliageTransactionBlock; 6 | foliage: Foliage; 7 | }; 8 | 9 | export default Block; 10 | -------------------------------------------------------------------------------- /goldcoin/util/setproctitle.py: -------------------------------------------------------------------------------- 1 | try: 2 | import setproctitle as pysetproctitle 3 | 4 | no_setproctitle = False 5 | except Exception: 6 | no_setproctitle = True 7 | 8 | 9 | def setproctitle(ps_name: str) -> None: 10 | if no_setproctitle is False: 11 | pysetproctitle.setproctitle(ps_name) 12 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/rom_bootstrap_generator.py: -------------------------------------------------------------------------------- 1 | from goldcoin.types.blockchain_format.program import SerializedProgram 2 | 3 | from .load_clvm import load_clvm 4 | 5 | MOD = SerializedProgram.from_bytes(load_clvm("rom_bootstrap_generator.clvm").as_bin()) 6 | 7 | 8 | def get_generator(): 9 | return MOD 10 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/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 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_puzzle_hash.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff02ffff03ffff09ff05ffff02ff02ffff04ff02ffff04ff0bff8080808080ffff01ff02ff0bff1780ffff01ff088080ff0180ffff04ffff01ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff02ffff04ff02ffff04ff09ff80808080ffff02ff02ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/OfferSummaryRecord.ts: -------------------------------------------------------------------------------- 1 | 2 | type OfferSummaryAssetAndAmount = { 3 | [key: string]: string; 4 | }; 5 | 6 | type OfferSummaryRecord = { 7 | offered: OfferSummaryAssetAndAmount; 8 | requested: OfferSummaryAssetAndAmount; 9 | }; 10 | 11 | export default OfferSummaryRecord; 12 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Farm.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import FarmIcon from './images/farm.svg'; 4 | 5 | export default function Farm(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Keys.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import KeysIcon from './images/keys.svg'; 4 | 5 | export default function Keys(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Plot.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import PlotIcon from './images/plot.svg'; 4 | 5 | export default function Plot(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Pool.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import FarmIcon from './images/pool.svg'; 4 | 5 | export default function Farm(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/offers/OfferRowData.tsx: -------------------------------------------------------------------------------- 1 | import { type WalletType } from '@goldcoin/api'; 2 | 3 | type OfferRowData = { 4 | amount: number | string; 5 | assetWalletId: number; // 0 if no selection made 6 | walletType: WalletType; 7 | }; 8 | 9 | export default OfferRowData; 10 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_conditions.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff0bff80808080ff80808080ff0b80ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 2 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff0bff80808080ff80808080ffff02ff0bff178080ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Trade.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import TradeIcon from './images/trade.svg'; 4 | 5 | export default function Trade(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /tests/plotting/util.py: -------------------------------------------------------------------------------- 1 | from typing import List 2 | from pathlib import Path 3 | from tests.block_tools import get_plot_dir 4 | 5 | 6 | def get_test_plots(sub_dir: str = "") -> List[Path]: 7 | path = get_plot_dir() 8 | if sub_dir != "": 9 | path = path / sub_dir 10 | return list(sorted(path.glob("*.plot"))) 11 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/constants/UnitAliases.ts: -------------------------------------------------------------------------------- 1 | import Unit from './Unit'; 2 | 3 | // deprecated 4 | const UnitAliases = { 5 | [Unit.GOLDCOIN]: ['ch', 'goldcoin', 'ozt'], 6 | [Unit.MOJO]: ['mj', 'mojo', 'mojos'], 7 | [Unit.CAT]: ['cat', 'cc', 'colouredcoin'], 8 | }; 9 | 10 | export default UnitAliases; 11 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/components/app/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { ModeProvider } from '@goldcoin/core'; 3 | import AppRouter from './AppRouter'; 4 | 5 | export default function App() { 6 | return ( 7 | 8 | 9 | 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Settings.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import SettingsIcon from './images/pool.svg'; 4 | 5 | export default function Settings(props: SvgIconProps) { 6 | return ; 7 | } -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Wallet.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import WalletIcon from './images/wallet.svg'; 4 | 5 | export default function Wallet(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/Goldcoin.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import GoldcoinIcon from './images/goldcoin.svg'; 4 | 5 | export default function Keys(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/PlotHero.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { SvgIcon, SvgIconProps } from '@material-ui/core'; 3 | import PlotHeroIcon from './images/PlotHero.svg'; 4 | 5 | export default function PlotHero(props: SvgIconProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /goldcoin/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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/theme/dark.ts: -------------------------------------------------------------------------------- 1 | import { createTheme } from '@material-ui/core/styles'; 2 | import theme from './default'; 3 | 4 | export default createTheme({ 5 | ...theme, 6 | palette: { 7 | ...theme.palette, 8 | secondary: { 9 | main: '#ffffff', 10 | }, 11 | type: 'dark', 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/catToMojo.ts: -------------------------------------------------------------------------------- 1 | import Big from 'big.js'; 2 | import Unit from '../constants/Unit'; 3 | import goldcoinFormatter from './goldcoinFormatter'; 4 | 5 | export default function catToMojo(cat: string | number | Big): number { 6 | return goldcoinFormatter(cat, Unit.CAT) 7 | .to(Unit.MOJO) 8 | .toNumber(); 9 | } -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/mojoToCAT.ts: -------------------------------------------------------------------------------- 1 | import Big from 'big.js'; 2 | import Unit from '../constants/Unit'; 3 | import goldcoinFormatter from './goldcoinFormatter'; 4 | 5 | export default function mojoToCAT(mojo: string | number | Big): number { 6 | return goldcoinFormatter(mojo, Unit.MOJO) 7 | .to(Unit.CAT) 8 | .toNumber(); 9 | } -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/entitlements.mac.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-unsigned-executable-memory 6 | 7 | 8 | -------------------------------------------------------------------------------- /goldcoin/util/make_test_constants.py: -------------------------------------------------------------------------------- 1 | from typing import Dict 2 | 3 | from goldcoin.consensus.constants import ConsensusConstants 4 | from goldcoin.consensus.default_constants import DEFAULT_CONSTANTS 5 | 6 | 7 | def make_test_constants(test_constants_overrides: Dict) -> ConsensusConstants: 8 | return DEFAULT_CONSTANTS.replace(**test_constants_overrides) 9 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/src/hooks/useGetCombinedPlotsQuery.ts: -------------------------------------------------------------------------------- 1 | import useGetCombinedHarvestersQuery from './useGetCombinedHarvestersQuery'; 2 | 3 | export default function useGetCombinedPlotsQuery() { 4 | const { data, ...rest } = useGetCombinedHarvestersQuery(); 5 | 6 | return { 7 | data: data?.plots, 8 | ...rest, 9 | }; 10 | } -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/offers/OfferState.ts: -------------------------------------------------------------------------------- 1 | 2 | enum OfferState { 3 | PENDING_ACCEPT = 'PENDING_ACCEPT', 4 | PENDING_CONFIRM = 'PENDING_CONFIRM', 5 | PENDING_CANCEL = 'PENDING_CANCEL', 6 | CANCELLED = 'CANCELLED', 7 | CONFIRMED = 'CONFIRMED', 8 | FAILED = 'FAILED', 9 | }; 10 | 11 | export default OfferState; 12 | -------------------------------------------------------------------------------- /goldcoin/cmds/units.py: -------------------------------------------------------------------------------- 1 | from typing import Dict 2 | 3 | # The rest of the codebase uses mojos everywhere. 4 | # Only use these units for user facing interfaces. 5 | units: Dict[str, int] = { 6 | "goldcoin": 10 ** 12, # 1 goldcoin (OZT) is 1,000,000,000,000 mojo (1 trillion) 7 | "mojo": 1, 8 | "cat": 10 ** 3, # 1 CAT is 1000 CAT mojos 9 | } 10 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/src/api.ts: -------------------------------------------------------------------------------- 1 | import { createApi } from '@reduxjs/toolkit/query/react'; 2 | import goldcoinLazyBaseQuery from './goldcoinLazyBaseQuery'; 3 | 4 | export const baseQuery = goldcoinLazyBaseQuery({}); 5 | 6 | export default createApi({ 7 | reducerPath: 'goldcoinApi', 8 | baseQuery, 9 | endpoints: () => ({}), 10 | }); 11 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/mojoToGoldcoin.ts: -------------------------------------------------------------------------------- 1 | import Big from 'big.js'; 2 | import Unit from '../constants/Unit'; 3 | import goldcoinFormatter from './goldcoinFormatter'; 4 | 5 | export default function mojoToGoldcoin(mojo: string | number | Big): number { 6 | return goldcoinFormatter(mojo, Unit.MOJO) 7 | .to(Unit.GOLDCOIN) 8 | .toNumber(); 9 | } -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/goldcoinToMojo.ts: -------------------------------------------------------------------------------- 1 | import Big from 'big.js'; 2 | import Unit from '../constants/Unit'; 3 | import goldcoinFormatter from './goldcoinFormatter'; 4 | 5 | export default function goldcoinToMojo(goldcoin: string | number | Big): number { 6 | return goldcoinFormatter(goldcoin, Unit.GOLDCOIN) 7 | .to(Unit.MOJO) 8 | .toNumber(); 9 | } -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 DISTRIBUTED_ID = 8; 10 | -------------------------------------------------------------------------------- /goldcoin/__init__.py: -------------------------------------------------------------------------------- 1 | from pkg_resources import DistributionNotFound, get_distribution, resource_filename 2 | 3 | try: 4 | __version__ = get_distribution("goldcoin-blockchain").version 5 | except DistributionNotFound: 6 | # package is not installed 7 | __version__ = "unknown" 8 | 9 | PYINSTALLER_SPEC_PATH = resource_filename("goldcoin", "pyinstaller.spec") 10 | -------------------------------------------------------------------------------- /tests/core/full_node/config.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa: E501 2 | job_timeout = 40 3 | CHECK_RESOURCE_USAGE = """ 4 | - name: Check resource usage 5 | run: | 6 | sqlite3 -readonly -separator " " .pymon "select item,cpu_usage,total_time,mem_usage from TEST_METRICS order by mem_usage desc;" >metrics.out 7 | ./tests/check_pytest_monitor_output.py metrics.out 7 | ./tests/check_pytest_monitor_output.py ( 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 | -------------------------------------------------------------------------------- /goldcoin/util/log_exceptions.py: -------------------------------------------------------------------------------- 1 | from contextlib import contextmanager 2 | import logging 3 | import traceback 4 | 5 | 6 | @contextmanager 7 | def log_exceptions(log: logging.Logger, *, consume: bool = False): 8 | try: 9 | yield 10 | except Exception as e: 11 | log.error(f"Caught Exception: {e}. Traceback: {traceback.format_exc()}") 12 | if not consume: 13 | raise 14 | -------------------------------------------------------------------------------- /goldcoin/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 | ) -------------------------------------------------------------------------------- /tests/tools/test_full_sync.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import asyncio 4 | import os 5 | from pathlib import Path 6 | 7 | from tools.test_full_sync import run_sync_test 8 | 9 | 10 | def test_full_sync_test(): 11 | file_path = os.path.realpath(__file__) 12 | db_file = Path(file_path).parent / "test-blockchain-db.sqlite" 13 | asyncio.run(run_sync_test(db_file, db_version=2, profile=False)) 14 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useCurrencyCode.ts: -------------------------------------------------------------------------------- 1 | import { useGetNetworkInfoQuery } from '@goldcoin/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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/util/safe_cancel_task.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import logging 3 | from typing import Optional 4 | 5 | 6 | def cancel_task_safe(task: Optional[asyncio.Task], log: Optional[logging.Logger] = None): 7 | if task is not None: 8 | try: 9 | task.cancel() 10 | except Exception as e: 11 | if log is not None: 12 | log.error(f"Error while canceling task.{e} {task}") 13 | -------------------------------------------------------------------------------- /goldcoin/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 | ) -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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( 6 | height: number, 7 | peak: Peak, 8 | ): number { 9 | const diff = peak.height - height; 10 | const seconds = diff * BLOCK_DURATION_SECONDS; 11 | 12 | return peak.timestamp - seconds; 13 | } 14 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/utils/getWalletSyncingStatus.ts: -------------------------------------------------------------------------------- 1 | import { SyncingStatus } from '@goldcoin/api'; 2 | 3 | export default function getWalletSyncingStatus(walletState) { 4 | const { syncing, synced } = walletState; 5 | 6 | if (syncing) { 7 | return SyncingStatus.SYNCING; 8 | } else if (synced) { 9 | return SyncingStatus.SYNCED; 10 | } 11 | 12 | return SyncingStatus.NOT_SYNCED; 13 | } 14 | -------------------------------------------------------------------------------- /goldcoin/timelord/types.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class Chain(Enum): 5 | CHALLENGE_CHAIN = 1 6 | REWARD_CHAIN = 2 7 | INFUSED_CHALLENGE_CHAIN = 3 8 | BLUEBOX = 4 9 | 10 | 11 | class IterationType(Enum): 12 | SIGNAGE_POINT = 1 13 | INFUSION_POINT = 2 14 | END_OF_SUBSLOT = 3 15 | 16 | 17 | class StateType(Enum): 18 | PEAK = 1 19 | END_OF_SUB_SLOT = 2 20 | FIRST_SUB_SLOT = 3 21 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useTrans.ts: -------------------------------------------------------------------------------- 1 | import { useCallback } from "react"; 2 | import { useLingui } from "@lingui/react"; 3 | 4 | export default function useTrans() { 5 | const { i18n } = useLingui(); 6 | 7 | const handleTranslate = useCallback((messageId: string, values?: Object, options?: Object) => { 8 | return i18n._(messageId, values, options); 9 | }, [i18n]); 10 | 11 | return handleTranslate; 12 | } -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | Install instructions have been moved to the [INSTALL](https://github.com/Goldcoin-Network/goldcoin-blockchain/wiki/INSTALL) section of the repository [Wiki](https://github.com/Goldcoin-Network/goldcoin-blockchain/wiki). 4 | 5 | After installing, follow the remaining instructions in the 6 | [Quick Start Guide](https://github.com/Goldcoin-Network/goldcoin-blockchain/wiki/Quick-Start-Guide) 7 | to run the software. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Goldcoin Network (OZT) 2 | 3 | Let's mine gold ! 4 | 5 | Full node : dns-introducer.goldcoin-network.net:7999 6 | 7 | Windows version available ! Some bugs may occur 8 | NFT plots is rewarding 1/8 9 | To get your full rewards : https://alltheblocks.net/nft-recovery 10 | 11 | Explorer : https://alltheblocks.net/goldcoin 12 | 13 | http://goldcoin-network.net 14 | 15 | Join our community ! https://discord.gg/Kr4ZE8ym95 16 | 17 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/theme/default.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | palette: { 3 | primary: { 4 | main: '#D4AF37', 5 | contrastText: '#ffffff', 6 | }, 7 | secondary: { 8 | main: '#000000', 9 | contrastText: '#ffffff', 10 | }, 11 | danger: { 12 | main: '#dc3545', 13 | contrastText: '#ffffff', 14 | }, 15 | }, 16 | drawer: { 17 | width: '100px', 18 | }, 19 | }; 20 | -------------------------------------------------------------------------------- /goldcoin-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 | } -------------------------------------------------------------------------------- /goldcoin-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 | import './config/env'; 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 | } 14 | 15 | ReactDOM.render(, document.querySelector('#root')); 16 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/cmds/plotters.py: -------------------------------------------------------------------------------- 1 | import click 2 | from goldcoin.plotters.plotters import call_plotters 3 | 4 | 5 | @click.command( 6 | "plotters", 7 | short_help="Advanced plotting options", 8 | context_settings={"ignore_unknown_options": True}, 9 | add_help_option=False, 10 | ) 11 | @click.pass_context 12 | @click.argument("args", nargs=-1) 13 | def plotters_cmd(ctx: click.Context, args): 14 | call_plotters(ctx.obj["root_path"], args) 15 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/hooks/useIsMainnet.tsx: -------------------------------------------------------------------------------- 1 | import { useGetNetworkInfoQuery } from '@goldcoin/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() === 'ozt'; 12 | } 13 | -------------------------------------------------------------------------------- /goldcoin/types/blockchain_format/pool_target.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | 3 | from goldcoin.types.blockchain_format.sized_bytes import bytes32 4 | from goldcoin.util.ints import uint32 5 | from goldcoin.util.streamable import Streamable, streamable 6 | 7 | 8 | @dataclass(frozen=True) 9 | @streamable 10 | class PoolTarget(Streamable): 11 | puzzle_hash: bytes32 12 | max_height: uint32 # A max height of 0 means it is valid forever 13 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin-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 11 | ? pathWithTilde.replace(/^~(?=$|\/|\\)/, homeDirectory) 12 | : pathWithTilde; 13 | } 14 | -------------------------------------------------------------------------------- /goldcoin/util/default_root.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | DEFAULT_ROOT_PATH = Path(os.path.expanduser(os.getenv("GOLDCOIN_ROOT", "~/.goldcoin/mainnet"))).resolve() 5 | STANDALONE_ROOT_PATH = Path( 6 | os.path.expanduser(os.getenv("GOLDCOIN_STANDALONE_WALLET_ROOT", "~/.goldcoin/standalone_wallet")) 7 | ).resolve() 8 | 9 | DEFAULT_KEYS_ROOT_PATH = Path(os.path.expanduser(os.getenv("GOLDCOIN_KEYS_ROOT", "~/.goldcoin_keys"))).resolve() 10 | -------------------------------------------------------------------------------- /goldcoin/wallet/transaction_sorting.py: -------------------------------------------------------------------------------- 1 | import enum 2 | 3 | 4 | class SortKey(enum.Enum): 5 | CONFIRMED_AT_HEIGHT = "order by confirmed_at_height {ASC}" 6 | RELEVANCE = "order by confirmed {ASC}, confirmed_at_height {DESC}, created_at_time {DESC}" 7 | 8 | def ascending(self) -> str: 9 | return self.value.format(ASC="ASC", DESC="DESC") 10 | 11 | def descending(self) -> str: 12 | return self.value.format(ASC="DESC", DESC="ASC") 13 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/services/Events.ts: -------------------------------------------------------------------------------- 1 | import Client from '../Client'; 2 | import Service from './Service'; 3 | import type { Options } from './Service'; 4 | import ServiceName from '../constants/ServiceName'; 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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/normalizePoolState.ts: -------------------------------------------------------------------------------- 1 | import type { PoolState } from '@goldcoin/api'; 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 | -------------------------------------------------------------------------------- /goldcoin-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( 5 | initialTargetState: Object, 6 | fee: string, 7 | host: string = this.client.backupHost, 8 | ) { 9 | return super.createNewWallet('pool_wallet', { 10 | mode: 'new', 11 | fee, 12 | host, 13 | initialTargetState, 14 | }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /goldcoin-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(() => new Promise((res) => { 6 | resolve.current = res; 7 | }), []); 8 | 9 | useEffect(() => { 10 | return () => { 11 | resolve.current?.(); 12 | }; 13 | }); 14 | 15 | throw promise; 16 | } 17 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/constants/defaultPlotter.ts: -------------------------------------------------------------------------------- 1 | import PlotterName from './PlotterName'; 2 | import optionsForPlotter from '../utils/optionsForPlotter'; 3 | import defaultsForPlotter from '../utils/defaultsForPlotter'; 4 | 5 | export default { 6 | displayName: 'Goldcoin Proof of Space', 7 | options: optionsForPlotter(PlotterName.GOLDCOINPOS), 8 | defaults: defaultsForPlotter(PlotterName.GOLDCOINPOS), 9 | installInfo: { installed: true }, 10 | }; 11 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/ToolbarSpacing/ToolbarSpacing.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { makeStyles, Theme, createStyles } from '@material-ui/core/styles'; 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 | -------------------------------------------------------------------------------- /goldcoin/full_node/signage_point.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import Optional 3 | 4 | from goldcoin.types.blockchain_format.vdf import VDFInfo, VDFProof 5 | from goldcoin.util.streamable import Streamable, streamable 6 | 7 | 8 | @dataclass(frozen=True) 9 | @streamable 10 | class SignagePoint(Streamable): 11 | cc_vdf: Optional[VDFInfo] 12 | cc_proof: Optional[VDFProof] 13 | rc_vdf: Optional[VDFInfo] 14 | rc_proof: Optional[VDFProof] 15 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export { default as WalletCAT } from './cat/WalletCAT'; 2 | export { default as WalletStandard } from './standard/WalletStandard'; 3 | export { default as WalletCreate } from './create/WalletCreate'; 4 | export { default as WalletAdd } from './WalletAdd'; 5 | export { default as WalletImport } from './WalletImport'; 6 | export { default as Wallets } from './Wallets'; 7 | export { default as WalletStatus } from './WalletStatus'; -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/utils/getWalletHumanValue.ts: -------------------------------------------------------------------------------- 1 | import type { Wallet } from '@goldcoin/api'; 2 | import { WalletType } from '@goldcoin/api'; 3 | import { mojoToCATLocaleString, mojoToGoldcoinLocaleString } from '@goldcoin/core'; 4 | 5 | export default function getWalletHumanValue(wallet: Wallet, value: number): string { 6 | return wallet.type === WalletType.CAT 7 | ? mojoToCATLocaleString(value) 8 | : mojoToGoldcoinLocaleString(value); 9 | } 10 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/utils/isCATWalletPresent.ts: -------------------------------------------------------------------------------- 1 | import type { Wallet, CATToken } from '@goldcoin/api'; 2 | import { WalletType } from '@goldcoin/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 | -------------------------------------------------------------------------------- /tests/runner_templates/checkout-test-plots.include.yml: -------------------------------------------------------------------------------- 1 | - name: Checkout test blocks and plots 2 | uses: actions/checkout@v2 3 | with: 4 | repository: 'Goldcoin-Network/test-cache' 5 | path: '.goldcoin' 6 | ref: '0.28.0' 7 | fetch-depth: 1 8 | 9 | - name: Link home directory 10 | run: | 11 | cd $HOME 12 | ln -s $GITHUB_WORKSPACE/.goldcoin 13 | echo "$HOME/.goldcoin" 14 | ls -al $HOME/.goldcoin 15 | -------------------------------------------------------------------------------- /goldcoin-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 | -------------------------------------------------------------------------------- /goldcoin/util/pip_import.py: -------------------------------------------------------------------------------- 1 | "Import a package and install it with PIP if it doesn't exist." 2 | 3 | import subprocess 4 | import sys 5 | 6 | 7 | def pip_import(module, pypi_name=None): 8 | """ 9 | Return None if we can't import or install it. 10 | """ 11 | try: 12 | return __import__(module) 13 | except ImportError: 14 | pass 15 | 16 | subprocess.call([sys.executable, "-m", "pip", "install", pypi_name or module]) 17 | return __import__(module) 18 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/constants/ServiceName.ts: -------------------------------------------------------------------------------- 1 | enum ServiceName { 2 | WALLET = 'goldcoin_wallet', 3 | FULL_NODE = 'goldcoin_full_node', 4 | FARMER = 'goldcoin_farmer', 5 | HARVESTER = 'goldcoin_harvester', 6 | SIMULATOR = 'goldcoin_full_node_simulator', 7 | DAEMON = 'daemon', 8 | PLOTTER = 'goldcoin_plotter', 9 | TIMELORD = 'goldcoin_timelord', 10 | INTRODUCER = 'goldcoin_introducer', 11 | EVENTS = 'wallet_ui', 12 | }; 13 | 14 | export default ServiceName; 15 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/blockHeightToTimestamp.ts: -------------------------------------------------------------------------------- 1 | import type { Transaction } from '@goldcoin/api'; 2 | 3 | const BLOCK_DURATION_SECONDS = (24 * 60 * 60) / 4608; 4 | 5 | export default function blockHeightToTimestamp( 6 | height: number, 7 | peakTransaction: Transaction, 8 | ): number { 9 | const diff = peakTransaction.confirmedAtHeight - height; 10 | const seconds = diff * BLOCK_DURATION_SECONDS; 11 | 12 | return peakTransaction.createdAtTime - seconds; 13 | } 14 | -------------------------------------------------------------------------------- /goldcoin/util/recursive_replace.py: -------------------------------------------------------------------------------- 1 | from dataclasses import replace 2 | from typing import Any 3 | 4 | 5 | def recursive_replace(root_obj: Any, replace_str: str, replace_with: Any) -> Any: 6 | split_str = replace_str.split(".") 7 | if len(split_str) == 1: 8 | return replace(root_obj, **{split_str[0]: replace_with}) 9 | sub_obj = recursive_replace(getattr(root_obj, split_str[0]), ".".join(split_str[1:]), replace_with) 10 | return replace(root_obj, **{split_str[0]: sub_obj}) 11 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useLocale.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react'; 2 | import { LocaleContext } from '../components/LocaleProvider'; 3 | 4 | export default function useLocale(): [string, (locale: string) => void] { 5 | const localeContext = useContext(LocaleContext); 6 | 7 | if (!localeContext) { 8 | throw new Error('You need to use LocaleProvider.'); 9 | } 10 | 11 | const { locale, setLocale } = localeContext; 12 | 13 | return [locale, setLocale]; 14 | } 15 | -------------------------------------------------------------------------------- /goldcoin-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( 6 | points: Point[], 7 | second: number = DAY_SECONDS, 8 | ): Point[] { 9 | const current = Date.now() / 1000; 10 | const dayBefore = current - second; 11 | 12 | return points?.filter((point) => { 13 | const [timestamp] = point; 14 | 15 | return timestamp >= dayBefore; 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /goldcoin/util/db_version.py: -------------------------------------------------------------------------------- 1 | import aiosqlite 2 | 3 | 4 | async def lookup_db_version(db: aiosqlite.Connection) -> int: 5 | try: 6 | cursor = await db.execute("SELECT * from database_version") 7 | row = await cursor.fetchone() 8 | if row is not None and row[0] == 2: 9 | return 2 10 | else: 11 | return 1 12 | except aiosqlite.OperationalError: 13 | # expects OperationalError('no such table: database_version') 14 | return 1 15 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/removeOldPoints.ts: -------------------------------------------------------------------------------- 1 | import type { Point } from '@goldcoin/api'; 2 | 3 | const DAY_SECONDS = 60 * 60 * 24; 4 | 5 | export default function removeOldPoints( 6 | points: Point[], 7 | second: number = DAY_SECONDS, 8 | ): Point[] { 9 | const current = Date.now() / 1000; 10 | const dayBefore = current - second; 11 | 12 | return points?.filter((point) => { 13 | const [timestamp] = point; 14 | 15 | return timestamp >= dayBefore; 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/hero/WalletHero.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Routes, Route } from 'react-router-dom'; 3 | import WalletHeroWallets from './WalletHeroWallets'; 4 | import WalletHeroAdd from './WalletHeroAdd'; 5 | 6 | export default function Wallets() { 7 | return ( 8 | 9 | } /> 10 | } /> 11 | 12 | ); 13 | } 14 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/src/utils/removeOldPoints.ts: -------------------------------------------------------------------------------- 1 | import type { Point } from '@goldcoin/api'; 2 | 3 | const DAY_SECONDS = 60 * 60 * 24; 4 | 5 | export default function removeOldPoints( 6 | points: Point[], 7 | second: number = DAY_SECONDS, 8 | ): Point[] { 9 | const current = Date.now() / 1000; 10 | const dayBefore = current - second; 11 | 12 | return points?.filter((point) => { 13 | const [timestamp] = point; 14 | 15 | return timestamp >= dayBefore; 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/constants/ModeServices.ts: -------------------------------------------------------------------------------- 1 | import { ServiceName } from '@goldcoin/api'; 2 | import { Mode } from '@goldcoin/core'; 3 | 4 | export default { 5 | [Mode.WALLET]: [ 6 | ServiceName.WALLET, 7 | ], 8 | [Mode.FARMING]: [ 9 | ServiceName.WALLET, 10 | ServiceName.FULL_NODE, 11 | ServiceName.FARMER, 12 | ServiceName.HARVESTER, 13 | ], 14 | }; 15 | 16 | export const SimulatorServices = [ 17 | ServiceName.WALLET, 18 | ServiceName.SIMULATOR, 19 | ]; 20 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Logo/Logo.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | import { Box, BoxProps } from '@material-ui/core'; 4 | import { Goldcoin } from '@goldcoin/icons'; 5 | 6 | const StyledGoldcoin = styled(Goldcoin)` 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 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useMode.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react'; 2 | import { ModeContext } from '../components/Mode/ModeProvider'; 3 | import type Mode from '../constants/Mode'; 4 | 5 | export default function useMode(): [Mode, (newMode: Mode) => void] { 6 | const context = useContext(ModeContext); 7 | if (!context) { 8 | throw new Error('useMode must be used within a ModeProvider'); 9 | } 10 | 11 | const { mode, setMode } = context; 12 | return [mode, setMode]; 13 | } 14 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/test_multiple_generator_input_arguments.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff04ffff02ff04ffff04ff02ffff04ff05ffff04ff0bffff04ff82017fffff04ff8202ffffff04ffff02ff06ffff04ff02ffff04ff8205ffffff04ff17ffff04ff2fffff04ff5fffff04ff81bfff8080808080808080ff8080808080808080ff8080ffff04ffff01ffff02ffff03ff17ffff01ff04ffff02ff0bffff04ff2fffff04ff05ffff04ff5fffff04ff27ff808080808080ffff02ff04ffff04ff02ffff04ff05ffff04ff0bffff04ff37ffff04ff2fffff04ff5fff808080808080808080ff8080ff0180ff0effff0cff09ff0bff1780ffff0cff15ff2fff5f8080ff018080 -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Accordion/Accordion.tsx: -------------------------------------------------------------------------------- 1 | import React, { ReactNode } from 'react'; 2 | import { Collapse } from '@material-ui/core'; 3 | 4 | type Props = { 5 | children?: ReactNode; 6 | expanded?: boolean; 7 | }; 8 | 9 | export default function Accordion(props: Props) { 10 | const { expanded, children } = props; 11 | 12 | return {children}; 13 | } 14 | 15 | Accordion.defaultProps = { 16 | children: undefined, 17 | expanded: false, 18 | }; 19 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_conditions.clvm: -------------------------------------------------------------------------------- 1 | (mod 2 | (public_key conditions) 3 | 4 | (include condition_codes.clvm) 5 | 6 | ;; hash a tree 7 | ;; This is used to calculate a puzzle hash given a puzzle program. 8 | (defun sha256tree1 9 | (TREE) 10 | (if (l TREE) 11 | (sha256 2 (sha256tree1 (f TREE)) (sha256tree1 (r TREE))) 12 | (sha256 1 TREE) 13 | ) 14 | ) 15 | 16 | (c (list AGG_SIG_ME public_key (sha256tree1 conditions)) conditions) 17 | 18 | ) 19 | -------------------------------------------------------------------------------- /goldcoin/types/blockchain_format/sized_bytes.py: -------------------------------------------------------------------------------- 1 | from goldcoin.util.byte_types import SizedBytes 2 | 3 | 4 | class bytes4(SizedBytes): 5 | _size = 4 6 | 7 | 8 | class bytes8(SizedBytes): 9 | _size = 8 10 | 11 | 12 | class bytes32(SizedBytes): 13 | _size = 32 14 | 15 | 16 | class bytes48(SizedBytes): 17 | _size = 48 18 | 19 | 20 | class bytes96(SizedBytes): 21 | _size = 96 22 | 23 | 24 | class bytes100(SizedBytes): 25 | _size = 100 26 | 27 | 28 | class bytes480(SizedBytes): 29 | _size = 480 30 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /packages/core/src/locales/en-US/*.po 3 | translation: /packages/core/src/locales/%locale%/messages.po 4 | - source: /packages/gui/src/locales/en-US/*.po 5 | translation: /packages/gui/src/locales/%locale%/messages.po 6 | - source: /packages/wallet/src/locales/en-US/*.po 7 | translation: /packages/wallet/src/locales/%locale%/messages.po 8 | - source: /packages/wallets/src/locales/en-US/*.po 9 | translation: /packages/wallets/src/locales/%locale%/messages.po 10 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/src/hooks/useGetHarvesterConnectionsQuery.ts: -------------------------------------------------------------------------------- 1 | import { useMemo } from 'react'; 2 | import { useGetFarmerConnectionsQuery } from '../services/farmer'; 3 | 4 | export default function useGetHarvesterConnectionsQuery() { 5 | const { data: connections, ...rest } = useGetFarmerConnectionsQuery(); 6 | const data = useMemo(() => { 7 | return connections?.filter((connection) => connection.type === 2); 8 | }, [connections]); 9 | 10 | return { 11 | data, 12 | ...rest, 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/util/getWalletSyncingStatus.ts: -------------------------------------------------------------------------------- 1 | import type { IncomingState } from '../modules/incoming'; 2 | import SyncingStatus from '../constants/SyncingStatus'; 3 | 4 | export default function getWalletSyncingStatus(walletState: IncomingState) { 5 | const { 6 | status: { syncing, synced }, 7 | } = walletState; 8 | 9 | if (syncing) { 10 | return SyncingStatus.SYNCING; 11 | } else if (synced) { 12 | return SyncingStatus.SYNCED; 13 | } 14 | 15 | return SyncingStatus.NOT_SYNCED; 16 | } 17 | -------------------------------------------------------------------------------- /tests/util/rpc.py: -------------------------------------------------------------------------------- 1 | async def validate_get_routes(client, api): 2 | routes_client = (await client.fetch("get_routes", {}))["routes"] 3 | assert len(routes_client) > 0 4 | routes_api = list(api.get_routes().keys()) 5 | routes_server = [ 6 | "/get_connections", 7 | "/open_connection", 8 | "/close_connection", 9 | "/stop_node", 10 | "/get_routes", 11 | ] 12 | assert len(routes_api) > 0 13 | for route in routes_api + routes_server: 14 | assert route in routes_client 15 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/src/hooks/useGetFarmerFullNodeConnectionsQuery.ts: -------------------------------------------------------------------------------- 1 | import { useMemo } from 'react'; 2 | import { useGetFarmerConnectionsQuery } from '../services/farmer'; 3 | 4 | export default function useGetFarmerFullNodeConnectionsQuery() { 5 | const { data: connections, ...rest } = useGetFarmerConnectionsQuery(); 6 | const data = useMemo(() => { 7 | return connections?.filter((connection) => connection.type === 1); 8 | }, [connections]); 9 | 10 | return { 11 | data, 12 | ...rest, 13 | }; 14 | } -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/constants/ServiceConnectionName.ts: -------------------------------------------------------------------------------- 1 | import ServiceName from "./ServiceName"; 2 | import ServiceHumanName from "./ServiceHumanName"; 3 | 4 | export default { 5 | 1: ServiceHumanName[ServiceName.FULL_NODE], 6 | 2: ServiceHumanName[ServiceName.HARVESTER], 7 | 3: ServiceHumanName[ServiceName.FARMER], 8 | 4: ServiceHumanName[ServiceName.TIMELORD], 9 | 5: ServiceHumanName[ServiceName.INTRODUCER], 10 | 6: ServiceHumanName[ServiceName.WALLET], 11 | 7: ServiceHumanName[ServiceName.PLOTTER], 12 | }; 13 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_puzzle_hash.clvm: -------------------------------------------------------------------------------- 1 | (mod 2 | (inner_puzzle_hash inner_puzzle inner_puzzle_solution) 3 | 4 | ;; hash a tree 5 | ;; This is used to calculate a puzzle hash given a puzzle program. 6 | (defun sha256tree1 7 | (TREE) 8 | (if (l TREE) 9 | (sha256 2 (sha256tree1 (f TREE)) (sha256tree1 (r TREE))) 10 | (sha256 1 TREE) 11 | ) 12 | ) 13 | 14 | (if (= inner_puzzle_hash (sha256tree1 inner_puzzle)) 15 | (a inner_puzzle inner_puzzle_solution) 16 | (x) 17 | ) 18 | ) -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/components/farm/card/FarmCardTotalSizeOfPlots.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Trans } from '@lingui/macro'; 3 | import { FormatBytes, CardSimple } from '@goldcoin/core'; 4 | import usePlots from '../../../hooks/usePlots'; 5 | 6 | export default function FarmCardTotalSizeOfPlots() { 7 | const { size } = usePlots(); 8 | 9 | return ( 10 | Total Size of Plots} 12 | value={} 13 | /> 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /goldcoin/consensus/cost_calculator.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import List, Optional 3 | 4 | from goldcoin.types.name_puzzle_condition import NPC 5 | from goldcoin.util.ints import uint16, uint64 6 | from goldcoin.util.streamable import Streamable, streamable 7 | 8 | 9 | @dataclass(frozen=True) 10 | @streamable 11 | class NPCResult(Streamable): 12 | error: Optional[uint16] 13 | npc_list: List[NPC] 14 | cost: uint64 # The total cost of the block, including CLVM cost, cost of 15 | # conditions and cost of bytes 16 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/Foliage.ts: -------------------------------------------------------------------------------- 1 | type Foliage = { 2 | foliage_transaction_block_hash: string; 3 | foliage_block_data_signature: string; 4 | foliage_block_data: { 5 | extension_data: string; 6 | farmer_reward_puzzle_hash: string; 7 | pool_signature: string; 8 | pool_target: { 9 | max_height: number; 10 | puzzle_hash: string; 11 | }; 12 | unfinished_reward_block_hash: string; 13 | }; 14 | prev_block_hash: string; 15 | reward_block_hash: string; 16 | }; 17 | 18 | export default Foliage; 19 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/types/Foliage.ts: -------------------------------------------------------------------------------- 1 | type Foliage = { 2 | foliage_transaction_block_hash: string; 3 | foliage_block_data_signature: string; 4 | foliage_block_data: { 5 | extension_data: string; 6 | farmer_reward_puzzle_hash: string; 7 | pool_signature: string; 8 | pool_target: { 9 | max_height: number; 10 | puzzle_hash: string; 11 | }; 12 | unfinished_reward_block_hash: string; 13 | }; 14 | prev_block_hash: string; 15 | reward_block_hash: string; 16 | }; 17 | 18 | export default Foliage; 19 | -------------------------------------------------------------------------------- /goldcoin/simulator/simulator_protocol.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | 3 | from goldcoin.types.blockchain_format.sized_bytes import bytes32 4 | from goldcoin.util.ints import uint32 5 | from goldcoin.util.streamable import Streamable, streamable 6 | 7 | 8 | @dataclass(frozen=True) 9 | @streamable 10 | class FarmNewBlockProtocol(Streamable): 11 | puzzle_hash: bytes32 12 | 13 | 14 | @dataclass(frozen=True) 15 | @streamable 16 | class ReorgProtocol(Streamable): 17 | old_index: uint32 18 | new_index: uint32 19 | puzzle_hash: bytes32 20 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useAppVersion.ts: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from 'react'; 2 | 3 | export default function useAppVersion() { 4 | const [version, setVersion] = useState(undefined); 5 | 6 | async function getVersion() { 7 | const currentVersion = await window.ipcRenderer.invoke('getVersion'); 8 | setVersion(currentVersion); 9 | } 10 | 11 | useEffect(() => { 12 | getVersion(); 13 | }, []); 14 | 15 | return { 16 | version, 17 | isLoading: version === undefined, 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/hooks/useWalletState.ts: -------------------------------------------------------------------------------- 1 | import { useGetSyncStatusQuery } from '@goldcoin/api-react'; 2 | import { SyncingStatus } from '@goldcoin/api'; 3 | import getWalletSyncingStatus from '../utils/getWalletSyncingStatus'; 4 | 5 | export default function useWalletState(): { 6 | isLoading: boolean; 7 | state?: SyncingStatus; 8 | } { 9 | const { data: walletState, isLoading } = useGetSyncStatusQuery(); 10 | 11 | return { 12 | isLoading, 13 | state: walletState && getWalletSyncingStatus(walletState), 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/constants/ServiceHumanName.ts: -------------------------------------------------------------------------------- 1 | import ServiceName from './ServiceName'; 2 | 3 | export default { 4 | [ServiceName.WALLET]: 'Wallet', 5 | [ServiceName.FULL_NODE]: 'Full Node', 6 | [ServiceName.FARMER]: 'Farmer', 7 | [ServiceName.HARVESTER]: 'Harvester', 8 | [ServiceName.SIMULATOR]: 'Full Node Simulator', 9 | [ServiceName.DAEMON]: 'Daemon', 10 | [ServiceName.PLOTTER]: 'Plotter', 11 | [ServiceName.TIMELORD]: 'Timelord', 12 | [ServiceName.INTRODUCER]: 'Introducer', 13 | [ServiceName.EVENTS]: 'Events', 14 | }; 15 | -------------------------------------------------------------------------------- /goldcoin/types/condition_with_args.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import List 3 | 4 | from goldcoin.types.condition_opcodes import ConditionOpcode 5 | from goldcoin.util.streamable import Streamable, streamable 6 | 7 | 8 | @dataclass(frozen=True) 9 | @streamable 10 | class ConditionWithArgs(Streamable): 11 | """ 12 | This structure is used to store parsed CLVM conditions 13 | Conditions in CLVM have either format of (opcode, var1) or (opcode, var1, var2) 14 | """ 15 | 16 | opcode: ConditionOpcode 17 | vars: List[bytes] 18 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/settlement_payments.clvm.hex: -------------------------------------------------------------------------------- 1 | ff02ffff01ff02ff0affff04ff02ffff04ff03ff80808080ffff04ffff01ffff333effff02ffff03ff05ffff01ff04ffff04ff0cffff04ffff02ff1effff04ff02ffff04ff09ff80808080ff808080ffff02ff16ffff04ff02ffff04ff19ffff04ffff02ff0affff04ff02ffff04ff0dff80808080ff808080808080ff8080ff0180ffff02ffff03ff05ffff01ff04ffff04ff08ff0980ffff02ff16ffff04ff02ffff04ff0dffff04ff0bff808080808080ffff010b80ff0180ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff1effff04ff02ffff04ff09ff80808080ffff02ff1effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080 2 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useShowError.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Trans } from '@lingui/macro'; 3 | import AlertDialog from '../components/AlertDialog'; 4 | import useOpenDialog from "./useOpenDialog"; 5 | 6 | export default function useShowError() { 7 | const openDialog = useOpenDialog(); 8 | 9 | async function showError(error: Error) { 10 | return openDialog(( 11 | Error}> 12 | {error.message} 13 | 14 | )); 15 | } 16 | 17 | return showError; 18 | } 19 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/recompile-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This hack is a quick way to recompile everything in this directory 4 | 5 | #BASE_DIR=`pwd | dirname` 6 | 7 | FILES=$(ls ./*.clvm) 8 | echo "$FILES" 9 | 10 | INCLUDE_DIR=$(pwd) 11 | 12 | for FILE in $FILES 13 | do 14 | echo "run -d -i $INCLUDE_DIR $FILE > $FILE.hex" 15 | # run -d -i $INCLUDE_DIR $FILE > $FILE.hex 16 | done 17 | 18 | for FILE in $FILES 19 | do 20 | echo "opd -H $FILE.hex | head -1 > $FILE.hex.sha256tree" 21 | done 22 | 23 | echo 24 | echo "Copy & paste the above to the shell to recompile" 25 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/Spinner/Spinner.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Backdrop, CircularProgress } from '@material-ui/core'; 3 | import styled from 'styled-components'; 4 | 5 | const StyledBackdrop = styled(Backdrop)` 6 | z-index: 2000; 7 | `; 8 | 9 | type Props = { 10 | show: boolean; 11 | }; 12 | 13 | export default function Spinner(props: Props) { 14 | const { show } = props; 15 | 16 | return ( 17 | 18 | 19 | 20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/components/farm/card/FarmCardPlotCount.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Trans } from '@lingui/macro'; 3 | import { FormatLargeNumber, CardSimple } from '@goldcoin/core'; 4 | import usePlots from '../../../hooks/usePlots'; 5 | 6 | export default function FarmCardPlotCount() { 7 | const { uniquePlots } = usePlots(); 8 | 9 | return ( 10 | Plot Count} 12 | value={} 13 | loading={!uniquePlots} 14 | /> 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Goldcoin } from './Goldcoin'; 2 | export { default as Farm } from './Farm'; 3 | export { default as Home } from './Home'; 4 | export { default as Keys } from './Keys'; 5 | export { default as Plot } from './Plot'; 6 | export { default as Pool } from './Pool'; 7 | export { default as PlotHero } from './PlotHero'; 8 | export { default as Status } from './Status'; 9 | export { default as Trade } from './Trade'; 10 | export { default as Wallet } from './Wallet'; 11 | export { default as Settings } from './Settings'; 12 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/singleton_launcher.clvm: -------------------------------------------------------------------------------- 1 | (mod (singleton_full_puzzle_hash amount key_value_list) 2 | 3 | (include condition_codes.clvm) 4 | 5 | ; takes a lisp tree and returns the hash of it 6 | (defun sha256tree1 (TREE) 7 | (if (l TREE) 8 | (sha256 2 (sha256tree1 (f TREE)) (sha256tree1 (r TREE))) 9 | (sha256 1 TREE) 10 | ) 11 | ) 12 | 13 | ; main 14 | (list (list CREATE_COIN singleton_full_puzzle_hash amount) 15 | (list CREATE_COIN_ANNOUNCEMENT (sha256tree1 (list singleton_full_puzzle_hash amount key_value_list)))) 16 | ) 17 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useSkipMigration.ts: -------------------------------------------------------------------------------- 1 | import { useCallback } from 'react'; 2 | import { useLocalStorage, writeStorage } from '@rehooks/local-storage'; 3 | 4 | const LOCAL_STORAGE_KEY = 'skipMigration'; 5 | 6 | export default function useSkipMigration(): [boolean, (skip: boolean) => void] { 7 | const [skip] = useLocalStorage(LOCAL_STORAGE_KEY, false); 8 | 9 | const handleSetSkipMigration = useCallback((newSkip: boolean) => { 10 | writeStorage(LOCAL_STORAGE_KEY, newSkip); 11 | }, []); 12 | 13 | return [skip, handleSetSkipMigration]; 14 | } 15 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/components/plot/queue/PlotQueueSize.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import plotSizes from '../../../constants/plotSizes'; 3 | import type PlotQueueItem from '../../../types/PlotQueueItem'; 4 | 5 | type Props = { 6 | queueItem: PlotQueueItem; 7 | }; 8 | 9 | export default function PlotQueueSize(props: Props) { 10 | const { 11 | queueItem: { size }, 12 | } = props; 13 | const item = plotSizes.find((item) => item.value === size); 14 | if (!item) { 15 | return null; 16 | } 17 | 18 | return <>{`K-${size}, ${item.label}`}; 19 | } 20 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/util/getDescriptiveError.ts: -------------------------------------------------------------------------------- 1 | import { t } from '@lingui/macro'; 2 | 3 | export default function getDescriptiveError(error: string): string { 4 | if (error == '13') { 5 | return t`[Error 13] Permission denied. You are trying to access a file/directory without having the necessary permissions. Most likely one of the plot folders in your config.yaml has an issue.`; 6 | } 7 | if (error == '22') { 8 | return t`[Error 22] File not found. Most likely one of the plot folders in your config.yaml has an issue.`; 9 | } 10 | 11 | return error; 12 | } 13 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/OfferTradeRecord.ts: -------------------------------------------------------------------------------- 1 | import type OfferCoinOfInterest from './OfferCoinOfInterest'; 2 | import type OfferSummaryRecord from './OfferSummaryRecord'; 3 | 4 | type OfferTradeRecord = { 5 | confirmed_at_index: number; 6 | accepted_at_time: number; 7 | created_at_time: number; 8 | is_my_offer: boolean; 9 | sent: number; 10 | coins_of_interest: OfferCoinOfInterest[]; 11 | trade_id: string; 12 | status: string; 13 | sent_to: any[]; 14 | summary: OfferSummaryRecord; 15 | offer_data?: string; 16 | }; 17 | 18 | export default OfferTradeRecord; 19 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_puzzle.clvm: -------------------------------------------------------------------------------- 1 | (mod 2 | 3 | (public_key delegated_puzzle delegated_puzzle_solution) 4 | 5 | (include condition_codes.clvm) 6 | 7 | ;; hash a tree 8 | ;; This is used to calculate a puzzle hash given a puzzle program. 9 | (defun sha256tree1 10 | (TREE) 11 | (if (l TREE) 12 | (sha256 2 (sha256tree1 (f TREE)) (sha256tree1 (r TREE))) 13 | (sha256 1 TREE) 14 | ) 15 | ) 16 | 17 | (c (list AGG_SIG_ME public_key (sha256tree1 delegated_puzzle)) 18 | (a delegated_puzzle delegated_puzzle_solution)) 19 | ) 20 | -------------------------------------------------------------------------------- /.github/workflows/recover git workflow/pre-commit.yml: -------------------------------------------------------------------------------- 1 | name: pre-commit 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: [main] 7 | 8 | concurrency: 9 | # SHA is added to the end if on `main` to let all main workflows run 10 | group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ github.ref == 'refs/heads/main' && github.sha || '' }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | pre-commit: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v2 18 | - uses: actions/setup-python@v2 19 | - uses: pre-commit/action@v2.0.3 20 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/p2_delegated_conditions.py: -------------------------------------------------------------------------------- 1 | """ 2 | Pay to delegated conditions 3 | 4 | In this puzzle program, the solution must be a signed list of conditions, which 5 | is returned literally. 6 | """ 7 | 8 | 9 | from goldcoin.types.blockchain_format.program import Program 10 | 11 | from .load_clvm import load_clvm 12 | 13 | MOD = load_clvm("p2_delegated_conditions.clvm") 14 | 15 | 16 | def puzzle_for_pk(public_key: Program) -> Program: 17 | return MOD.curry(public_key) 18 | 19 | 20 | def solution_for_conditions(conditions: Program) -> Program: 21 | return conditions.to([conditions]) 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | contact_links: 2 | - about: Ask a question or request support here 3 | name: Ask for Support 4 | url: >- 5 | https://github.com/Goldcoin-Network/goldcoin-blockchain/discussions/new?category=support 6 | - about: Request a new feature or idea here 7 | name: Make a Request 8 | url: >- 9 | https://github.com/Goldcoin-Network/goldcoin-blockchain/discussions/new?category=ideas 10 | - about: Get support on the Goldcoin Keybase chat channels. 11 | name: Join the Keybase.io support chat 12 | url: 'https://keybase.io/team/goldcoin_network.public' 13 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/DarkModeToggle/DarkModeToggle.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import useDarkMode from 'use-dark-mode'; 3 | import { IconButton } from '@material-ui/core'; 4 | import { Brightness4, Brightness7 } from '@material-ui/icons'; 5 | 6 | export default function DarkModeToggle() { 7 | const { toggle, value: darkMode } = useDarkMode(); 8 | 9 | function handleClick() { 10 | toggle(); 11 | } 12 | 13 | return ( 14 | 15 | {darkMode ? : } 16 | 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/StateTypography/StateTypography.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | import { Typography } from '@material-ui/core'; 4 | import State from '../../constants/State'; 5 | import StateColor from '../../constants/StateColor'; 6 | 7 | const Color = { 8 | [State.SUCCESS]: StateColor.SUCCESS, 9 | [State.WARNING]: StateColor.WARNING, 10 | [State.ERROR]: StateColor.ERROR, 11 | }; 12 | 13 | export default styled(({ state, ...rest }) => )` 14 | ${({ state }) => (state ? `color: ${Color[state]};` : '')} 15 | `; 16 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/hooks/useSelectFile.tsx: -------------------------------------------------------------------------------- 1 | import { useShowSaveDialog, useShowError } from '@goldcoin/core'; 2 | 3 | export default function useSelectFile(): () => Promise { 4 | const showSaveDialog = useShowSaveDialog(); 5 | const showError = useShowError(); 6 | 7 | async function handleSelect(): Promise { 8 | try { 9 | const result = await showSaveDialog(); 10 | const { filePath } = result; 11 | 12 | return filePath; 13 | } catch (error: any) { 14 | showError(error); 15 | } 16 | } 17 | 18 | return handleSelect; 19 | } 20 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/util/getPercentPointsSuccessfull.ts: -------------------------------------------------------------------------------- 1 | import { sumBy } from 'lodash'; 2 | import type Point from '../types/Point'; 3 | 4 | function sumPoints(points: Point[]): number { 5 | return sumBy(points, (point) => point[1]) ?? 0; 6 | } 7 | 8 | export default function getPercentPointsSuccessfull( 9 | pointsAcknowledged: Point[], 10 | pointsFound: Point[], 11 | ): number { 12 | const acknowledged = sumPoints(pointsAcknowledged); 13 | const found = sumPoints(pointsFound); 14 | 15 | if (!acknowledged || !found) { 16 | return 0; 17 | } 18 | 19 | return acknowledged / found; 20 | } 21 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/util/manageDaemonLifetime.ts: -------------------------------------------------------------------------------- 1 | import { get } from 'lodash'; 2 | import { readConfigFile } from './loadConfig'; 3 | 4 | export default function manageDaemonLifetime(net?: string): boolean { 5 | try { 6 | const config = readConfigFile(net); 7 | const selfHostname = get(config, 'ui.daemon_host', 'localhost'); 8 | 9 | return selfHostname === 'localhost'; 10 | } catch (error: any) { 11 | if (error.code === 'ENOENT') { 12 | // configuration file does not exists, use default value 13 | return true; 14 | } else { 15 | throw error; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /goldcoin/cmds/start.py: -------------------------------------------------------------------------------- 1 | import click 2 | 3 | from goldcoin.util.service_groups import all_groups 4 | 5 | 6 | @click.command("start", short_help="Start service groups") 7 | @click.option("-r", "--restart", is_flag=True, type=bool, help="Restart running services") 8 | @click.argument("group", type=click.Choice(list(all_groups())), nargs=-1, required=True) 9 | @click.pass_context 10 | def start_cmd(ctx: click.Context, restart: bool, group: str) -> None: 11 | import asyncio 12 | from .start_funcs import async_start 13 | 14 | asyncio.get_event_loop().run_until_complete(async_start(ctx.obj["root_path"], group, restart)) 15 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/utils/getPercentPointsSuccessfull.ts: -------------------------------------------------------------------------------- 1 | import { sumBy } from 'lodash'; 2 | import type { Point } from '@goldcoin/api'; 3 | 4 | function sumPoints(points: Point[]): number { 5 | return sumBy(points, (point) => point[1]) ?? 0; 6 | } 7 | 8 | export default function getPercentPointsSuccessfull( 9 | pointsAcknowledged: Point[], 10 | pointsFound: Point[], 11 | ): number { 12 | const acknowledged = sumPoints(pointsAcknowledged); 13 | const found = sumPoints(pointsFound); 14 | 15 | if (!acknowledged || !found) { 16 | return 0; 17 | } 18 | 19 | return acknowledged / found; 20 | } 21 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/create-lock-puzzlehash.clvm: -------------------------------------------------------------------------------- 1 | ; This puzzle evaluates to an empty list , which means no conditions need to be satisfied; 2 | ; The puzzle can never evaluate to my-id. 3 | ; my-id is there on a discarded branch of the tree as a signal to another piece of code 4 | ; that will be checking if a coin whose puzzle is of this form, was created or spent. 5 | ( 6 | (defun-inline create-lock-puzzlehash (my-id) 7 | (sha256tree (list r 8 | (list c 9 | (list q 10 | my-id) 11 | (q (q ())))))) 12 | ) -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/GuestRoute/GuestRoute.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useSelector } from 'react-redux'; 3 | import { Route, Navigate, RouteProps } from 'react-router-dom'; 4 | //import type { RootState } from '../../../../modules/rootReducer'; 5 | 6 | type RootState = any; 7 | type Props = RouteProps; 8 | 9 | export default function GuestRoute(props: Props) { 10 | const loggedIn = useSelector( 11 | (state: RootState) => state.wallet_state.logged_in, 12 | ); 13 | 14 | if (loggedIn) { 15 | return ; 16 | } 17 | 18 | return ; 19 | } 20 | -------------------------------------------------------------------------------- /goldcoin/types/end_of_slot_bundle.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import Optional 3 | 4 | from goldcoin.types.blockchain_format.slots import ( 5 | ChallengeChainSubSlot, 6 | InfusedChallengeChainSubSlot, 7 | RewardChainSubSlot, 8 | SubSlotProofs, 9 | ) 10 | from goldcoin.util.streamable import Streamable, streamable 11 | 12 | 13 | @dataclass(frozen=True) 14 | @streamable 15 | class EndOfSubSlotBundle(Streamable): 16 | challenge_chain: ChallengeChainSubSlot 17 | infused_challenge_chain: Optional[InfusedChallengeChainSubSlot] 18 | reward_chain: RewardChainSubSlot 19 | proofs: SubSlotProofs 20 | -------------------------------------------------------------------------------- /goldcoin/util/permissions.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | from typing import Tuple 4 | 5 | 6 | def verify_file_permissions(path: Path, mask: int) -> Tuple[bool, int]: 7 | """ 8 | Check that the file's permissions are properly restricted, as compared to the 9 | permission mask 10 | """ 11 | if not path.exists(): 12 | raise Exception(f"file {path} does not exist") 13 | 14 | mode = os.stat(path).st_mode & 0o777 15 | return (mode & mask == 0, mode) 16 | 17 | 18 | def octal_mode_string(mode: int) -> str: 19 | """Yields a permission mode string: e.g. 0644""" 20 | return f"0{oct(mode)[-3:]}" 21 | -------------------------------------------------------------------------------- /tests/core/node_height.py: -------------------------------------------------------------------------------- 1 | def node_height_at_least(node, h): 2 | if node.full_node.blockchain.get_peak() is not None: 3 | return node.full_node.blockchain.get_peak().height >= h 4 | return False 5 | 6 | 7 | def node_height_exactly(node, h): 8 | if node.full_node.blockchain.get_peak() is not None: 9 | return node.full_node.blockchain.get_peak().height == h 10 | return False 11 | 12 | 13 | def node_height_between(node, h1, h2): 14 | if node.full_node.blockchain.get_peak() is not None: 15 | height = node.full_node.blockchain.get_peak().height 16 | return h1 <= height <= h2 17 | return False 18 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/src/hooks/useGetCombinedHarvestersQuery.ts: -------------------------------------------------------------------------------- 1 | import { useMemo } from 'react'; 2 | import { useGetHarvestersQuery } from "../services/farmer"; 3 | import combineHarvesters from '../utils/combineHarvesters'; 4 | 5 | export default function useGetCombinedHarvestersQuery() { 6 | const { data: harvesters, ...rest } = useGetHarvestersQuery(); 7 | 8 | const combinedData = useMemo(() => { 9 | if (!harvesters) { 10 | return harvesters; 11 | } 12 | 13 | return combineHarvesters(harvesters); 14 | }, [harvesters]); 15 | 16 | return { 17 | data: combinedData, 18 | ...rest, 19 | }; 20 | } -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/utils/defaultsForPlotter.ts: -------------------------------------------------------------------------------- 1 | import PlotterName from '../constants/PlotterName'; 2 | import { PlotterDefaults } from '../@types/Plotter'; 3 | import { bladebitDefaults, madmaxDefaults, chiaposDefaults } from '../constants/Plotters'; 4 | 5 | export default function defaultsForPlotter(plotterName: PlotterName): PlotterDefaults { 6 | switch (plotterName) { 7 | case PlotterName.BLADEBIT: 8 | return bladebitDefaults; 9 | case PlotterName.MADMAX: 10 | return madmaxDefaults; 11 | case PlotterName.GOLDCOINPOS: // fallthrough 12 | default: 13 | return chiaposDefaults; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/utils/optionsForPlotter.ts: -------------------------------------------------------------------------------- 1 | import PlotterName from '../constants/PlotterName'; 2 | import { PlotterOptions } from '../@types/Plotter'; 3 | import { bladebitOptions, madmaxOptions, chiaposOptions } from '../constants/Plotters'; 4 | 5 | export default function optionsForPlotter(plotterName: PlotterName): PlotterOptions { 6 | switch (plotterName) { 7 | case PlotterName.BLADEBIT: 8 | return bladebitOptions; 9 | case PlotterName.MADMAX: 10 | return madmaxOptions; 11 | case PlotterName.GOLDCOINPOS: // fallthrough 12 | default: 13 | return chiaposOptions; 14 | } 15 | }; 16 | 17 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/TooltipTypography/TooltipTypography.tsx: -------------------------------------------------------------------------------- 1 | import React, { ReactElement } from 'react'; 2 | import { Typography, TypographyProps } from '@material-ui/core'; 3 | import Flex from '../Flex'; 4 | import TooltipIcon from '../TooltipIcon'; 5 | 6 | type Props = TypographyProps & { 7 | title: ReactElement; 8 | }; 9 | 10 | export default function TooltipTypography(props: Props) { 11 | const { title, ...rest } = props; 12 | 13 | return ( 14 | 15 | 16 | {title} 17 | 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/hooks/useShowSaveDialog.ts: -------------------------------------------------------------------------------- 1 | import isElectron from 'is-electron'; 2 | 3 | export default function useShowSaveDialog(): () => Promise { 4 | async function handleShowSaveDialog(options: any = {}): Promise { 5 | if (!isElectron()) { 6 | throw new Error('useSaveDialog is only available in electron'); 7 | } 8 | 9 | if (!window.ipcRenderer) { 10 | throw new Error('ipcRenderer is not available'); 11 | } 12 | 13 | return await window.ipcRenderer?.invoke('showSaveDialog', options); 14 | } 15 | 16 | return handleShowSaveDialog; 17 | } 18 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/components/farm/FarmCloseConnection.tsx: -------------------------------------------------------------------------------- 1 | import { useCloseFarmerConnectionMutation } from '@goldcoin/api-react'; 2 | 3 | type Props = { 4 | nodeId: string; 5 | children: (props: { onClose: () => void }) => JSX.Element; 6 | }; 7 | 8 | export default function FarmCloseConnection(props: Props): JSX.Element { 9 | const { nodeId, children } = props; 10 | const [closeFarmerConnection] = useCloseFarmerConnectionMutation(); 11 | 12 | async function handleClose() { 13 | await closeFarmerConnection(nodeId).unwrap(); 14 | } 15 | 16 | return children({ 17 | onClose: handleClose, 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /goldcoin/types/block_protocol.py: -------------------------------------------------------------------------------- 1 | from typing import List, Optional 2 | 3 | from typing_extensions import Protocol 4 | 5 | from goldcoin.types.blockchain_format.program import SerializedProgram 6 | from goldcoin.types.blockchain_format.sized_bytes import bytes32 7 | from goldcoin.util.ints import uint32 8 | 9 | 10 | class BlockInfo(Protocol): 11 | @property 12 | def prev_header_hash(self) -> bytes32: 13 | pass 14 | 15 | @property 16 | def transactions_generator(self) -> Optional[SerializedProgram]: 17 | pass 18 | 19 | @property 20 | def transactions_generator_ref_list(self) -> List[uint32]: 21 | pass 22 | -------------------------------------------------------------------------------- /mozilla-ca/.github/workflows/super-linter.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Lint Code Base 3 | 4 | on: 5 | push: 6 | branches-ignore: 7 | - main 8 | pull_request: 9 | branches: 10 | - main 11 | 12 | jobs: 13 | build: 14 | name: Lint Code Base 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout Code 18 | uses: actions/checkout@v2 19 | with: 20 | fetch-depth: 0 21 | 22 | - name: Lint Code Base 23 | uses: github/super-linter@v4 24 | env: 25 | VALIDATE_ALL_CODEBASE: true 26 | DEFAULT_BRANCH: main 27 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 28 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/src/components/PrivateRoute/PrivateRoute.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useSelector } from 'react-redux'; 3 | import { Route, Navigate, RouteProps } from 'react-router-dom'; 4 | // import type { RootState } from '../../../../modules/rootReducer'; 5 | 6 | type RootState = any; 7 | type Props = RouteProps; 8 | 9 | export default function PrivateRoute(props: Props) { 10 | /* 11 | const loggedIn = useSelector( 12 | (state: RootState) => state.wallet_state.logged_in, 13 | ); 14 | if (!loggedIn) { 15 | return ; 16 | } 17 | */ 18 | 19 | return ; 20 | } 21 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Goldcoin Blockchain 10 | 11 | 12 | 13 |
14 | 17 | 18 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api/src/@types/PlotAdd.ts: -------------------------------------------------------------------------------- 1 | import Fingerprint from './Fingerprint'; 2 | 3 | type PlotAdd = { 4 | plotSize: number; 5 | plotCount: number; 6 | maxRam: number; 7 | numThreads: number; 8 | numBuckets: number; 9 | queue: string; 10 | finalLocation: string; 11 | workspaceLocation: string; 12 | workspaceLocation2: string; 13 | parallel: boolean; 14 | delay: number; 15 | fingerprint?: Fingerprint; 16 | disableBitfieldPlotting?: boolean; 17 | excludeFinalDir?: boolean; 18 | overrideK?: boolean; 19 | farmerPublicKey?: string; 20 | poolPublicKey?: string; 21 | c: string; 22 | }; 23 | 24 | export default PlotAdd; 25 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/babel.config.js: -------------------------------------------------------------------------------- 1 | const LOOSE = false; 2 | 3 | module.exports = function babel(api) { 4 | api.cache(true); 5 | 6 | return { 7 | presets: [ 8 | ['@babel/preset-env', { 9 | targets: { 10 | node: true, 11 | }, 12 | useBuiltIns: 'entry', 13 | corejs: 3, 14 | loose: LOOSE, 15 | }], 16 | '@babel/preset-typescript', 17 | ['@babel/preset-react', { 18 | runtime: 'automatic', 19 | }], 20 | ], 21 | plugins: [ 22 | 'macros', 23 | '@loadable/babel-plugin', 24 | ['babel-plugin-styled-components'], 25 | ], 26 | }; 27 | }; 28 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/cat/WalletCATList.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Routes, Route } from 'react-router-dom'; 3 | import WalletCATSelect from './WalletCATSelect'; 4 | import WalletCATCreateNew from './WalletCATCreateNew'; 5 | import WalletCATCreateExistingSimple from './WalletCATCreateExistingSimple'; 6 | 7 | export default function WalletCATList() { 8 | return ( 9 | 10 | } index /> 11 | } /> 12 | } /> 13 | 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /goldcoin/wallet/secret_key_store.py: -------------------------------------------------------------------------------- 1 | from typing import Dict, Optional 2 | 3 | from blspy import G1Element, PrivateKey 4 | 5 | GROUP_ORDER = 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001 6 | 7 | 8 | class SecretKeyStore: 9 | _pk2sk: Dict[G1Element, PrivateKey] 10 | 11 | def __init__(self): 12 | self._pk2sk = {} 13 | 14 | def save_secret_key(self, secret_key: PrivateKey): 15 | public_key = secret_key.get_g1() 16 | self._pk2sk[bytes(public_key)] = secret_key 17 | 18 | def secret_key_for_public_key(self, public_key: G1Element) -> Optional[PrivateKey]: 19 | return self._pk2sk.get(bytes(public_key)) 20 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "noFallthroughCasesInSwitch": true, 5 | "noUnusedParameters": true, 6 | "noImplicitReturns": true, 7 | "moduleResolution": "node", 8 | "esModuleInterop": true, 9 | "noUnusedLocals": true, 10 | "noImplicitAny": true, 11 | "declarationDir": "dist/types", 12 | "declaration": true, 13 | "target": "es2015", 14 | "module": "es2015", 15 | "strict": true, 16 | "jsx": "react" 17 | }, 18 | "include": [ 19 | "src/**/*" 20 | ], 21 | "exclude": [ 22 | "node_modules", 23 | "dist" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/gui/src/hooks/useFullNodeState.ts: -------------------------------------------------------------------------------- 1 | import { useGetBlockchainStateQuery } from '@goldcoin/api-react'; 2 | import FullNodeState from '../constants/FullNodeState'; 3 | 4 | export default function useFullNodeState(): FullNodeState { 5 | const { data: blockchainState, isLoading } = useGetBlockchainStateQuery(); 6 | const blockchainSynced = blockchainState?.sync?.synced; 7 | const blockchainSynching = blockchainState?.sync?.syncMode; 8 | 9 | if (blockchainSynching) { 10 | return FullNodeState.SYNCHING; 11 | } 12 | 13 | if (!blockchainSynced) { 14 | return FullNodeState.ERROR; 15 | } 16 | 17 | return FullNodeState.SYNCED; 18 | } 19 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/api-react/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "noFallthroughCasesInSwitch": true, 5 | "noUnusedParameters": true, 6 | "noImplicitReturns": true, 7 | "moduleResolution": "node", 8 | "esModuleInterop": true, 9 | "noUnusedLocals": true, 10 | "noImplicitAny": true, 11 | "declarationDir": "dist/types", 12 | "declaration": true, 13 | "target": "es2015", 14 | "module": "es2015", 15 | "strict": true, 16 | "jsx": "react" 17 | }, 18 | "include": [ 19 | "src/**/*" 20 | ], 21 | "exclude": [ 22 | "node_modules", 23 | "dist" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/core/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env", 4 | "@babel/typescript", 5 | ["@babel/preset-react", { 6 | "runtime": "automatic" 7 | }] 8 | ], 9 | "plugins": [ 10 | "macros", 11 | "@babel/plugin-transform-runtime", 12 | "babel-plugin-styled-components", 13 | ["babel-plugin-transform-imports", { 14 | "@material-ui/core": { 15 | "transform": "@material-ui/core/${member}", 16 | "preventFullImport": true 17 | }, 18 | "@material-ui/icons": { 19 | "transform": "@material-ui/icons/${member}", 20 | "preventFullImport": true 21 | } 22 | }] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env", 4 | "@babel/typescript", 5 | ["@babel/preset-react", { 6 | "runtime": "automatic" 7 | }] 8 | ], 9 | "plugins": [ 10 | "macros", 11 | "@babel/plugin-transform-runtime", 12 | "babel-plugin-styled-components", 13 | ["babel-plugin-transform-imports", { 14 | "@material-ui/core": { 15 | "transform": "@material-ui/core/${member}", 16 | "preventFullImport": true 17 | }, 18 | "@material-ui/icons": { 19 | "transform": "@material-ui/icons/${member}", 20 | "preventFullImport": true 21 | } 22 | }] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/icons/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "noFallthroughCasesInSwitch": true, 5 | "noUnusedParameters": true, 6 | "noImplicitReturns": true, 7 | "moduleResolution": "node", 8 | "esModuleInterop": true, 9 | "noUnusedLocals": true, 10 | "noImplicitAny": true, 11 | "declarationDir": "dist/types", 12 | "declaration": true, 13 | "target": "es2015", 14 | "module": "es2015", 15 | "strict": true, 16 | "jsx": "react" 17 | }, 18 | "include": [ 19 | "src/**/*" 20 | ], 21 | "exclude": [ 22 | "node_modules", 23 | "dist" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/src/components/WalletStatusHeight.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { FormatLargeNumber } from '@goldcoin/core'; 3 | import { useGetHeightInfoQuery } from '@goldcoin/api-react'; 4 | 5 | export default function WalletStatusHeight() { 6 | const { data: height, isLoading } = useGetHeightInfoQuery({}, { 7 | pollingInterval: 10000, 8 | }); 9 | 10 | if (isLoading) { 11 | return null; 12 | } 13 | 14 | if (height === undefined || height === null) { 15 | return null; 16 | } 17 | 18 | return ( 19 | <> 20 | {'('} 21 | 22 | {')'} 23 | 24 | ); 25 | } 26 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "noFallthroughCasesInSwitch": true, 5 | "noUnusedParameters": true, 6 | "noImplicitReturns": true, 7 | "moduleResolution": "node", 8 | "esModuleInterop": true, 9 | "noUnusedLocals": true, 10 | "noImplicitAny": true, 11 | "declarationDir": "dist/types", 12 | "declaration": true, 13 | "target": "es2015", 14 | "module": "es2015", 15 | "strict": true, 16 | "jsx": "react" 17 | }, 18 | "include": [ 19 | "src/**/*" 20 | ], 21 | "exclude": [ 22 | "node_modules", 23 | "dist" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /goldcoin/wallet/puzzles/genesis_by_coin_id.clvm: -------------------------------------------------------------------------------- 1 | ; This is a TAIL for use with cat.clvm. 2 | ; 3 | ; This checker allows new CATs to be created if they have a particular coin id as parent 4 | ; 5 | ; The genesis_id is curried in, making this lineage_check program unique and giving the CAT it's uniqueness 6 | (mod ( 7 | GENESIS_ID 8 | Truths 9 | parent_is_cat 10 | lineage_proof 11 | delta 12 | inner_conditions 13 | _ 14 | ) 15 | 16 | (include cat_truths.clib) 17 | 18 | (if delta 19 | (x) 20 | (if (= (my_parent_cat_truth Truths) GENESIS_ID) 21 | () 22 | (x) 23 | ) 24 | ) 25 | 26 | ) 27 | -------------------------------------------------------------------------------- /goldcoin/wallet/settings/settings_objects.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | 3 | from goldcoin.util.streamable import Streamable, streamable 4 | 5 | 6 | @dataclass(frozen=True) 7 | @streamable 8 | class BackupInitialized(Streamable): 9 | """ 10 | Stores user decision regarding import of backup info 11 | """ 12 | 13 | user_initialized: bool # Stores if user made a selection in UI. (Skip vs Import backup) 14 | user_skipped: bool # Stores if user decided to skip import of backup info 15 | backup_info_imported: bool # Stores if backup info has been imported 16 | new_wallet: bool # Stores if this wallet is newly created / not restored from backup 17 | -------------------------------------------------------------------------------- /goldcoin-blockchain-gui/packages/wallets/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env", 4 | "@babel/typescript", 5 | ["@babel/preset-react", { 6 | "runtime": "automatic" 7 | }] 8 | ], 9 | "plugins": [ 10 | "macros", 11 | "@babel/plugin-transform-runtime", 12 | "babel-plugin-styled-components", 13 | ["babel-plugin-transform-imports", { 14 | "@material-ui/core": { 15 | "transform": "@material-ui/core/${member}", 16 | "preventFullImport": true 17 | }, 18 | "@material-ui/icons": { 19 | "transform": "@material-ui/icons/${member}", 20 | "preventFullImport": true 21 | } 22 | }] 23 | ] 24 | } 25 | --------------------------------------------------------------------------------