Full Code of madMAx43v3r/mmx-node for AI

master 427e929b3790 cached
1559 files
9.0 MB
2.4M tokens
10792 symbols
1 requests
Download .txt
Showing preview only (9,791K chars total). Download the full file or copy to clipboard to get everything.
Repository: madMAx43v3r/mmx-node
Branch: master
Commit: 427e929b3790
Files: 1559
Total size: 9.0 MB

Directory structure:
gitextract_ky7_skd4/

├── .dockerignore
├── .github/
│   └── workflows/
│       ├── debian.yml
│       ├── docker.yml
│       └── windows.yml
├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── CMakePresets.json
├── Dockerfile
├── LICENSE
├── README.md
├── activate.sh
├── clean_all.sh
├── cmake/
│   ├── build_version_json.cmake
│   ├── custom-triplets/
│   │   └── x64-windows-mmx.cmake
│   ├── debian/
│   │   ├── generic/
│   │   │   └── control
│   │   ├── mmx_node.desktop
│   │   ├── mmx_wallet.desktop
│   │   ├── ubuntu-20.04/
│   │   │   └── control
│   │   ├── ubuntu-22.04/
│   │   │   └── control
│   │   └── ubuntu-24.04/
│   │       └── control
│   ├── nsis/
│   │   └── NSIS.template.in
│   ├── product_version/
│   │   ├── LICENSE
│   │   ├── VersionInfo.in
│   │   ├── VersionResource.rc
│   │   └── generate_product_version.cmake
│   ├── use_cuda.cmake
│   └── win_pack.cmake
├── codegen.sh
├── config/
│   ├── default/
│   │   ├── Farmer.json
│   │   ├── Harvester.json
│   │   ├── HttpServer.json
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── TimeLord.json
│   │   ├── Wallet.json
│   │   ├── WebAPI.json
│   │   ├── mmx_farmer.json
│   │   ├── mmx_harvester.json
│   │   ├── mmx_node.json
│   │   ├── timelord
│   │   └── vnx/
│   │       ├── authentication.json
│   │       └── protected_config+
│   ├── farmer/
│   │   └── Proxy.json
│   ├── local_init/
│   │   ├── Farmer.json
│   │   ├── Harvester.json
│   │   ├── HttpServer.json
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── TimeLord.json
│   │   ├── Wallet.json
│   │   ├── allow_remote
│   │   ├── cuda.json
│   │   ├── opencl.json
│   │   ├── remote_compute
│   │   └── timelord
│   ├── mainnet/
│   │   ├── Router.json
│   │   ├── chain/
│   │   │   ├── params/
│   │   │   │   ├── escrow_binary
│   │   │   │   ├── nft_binary
│   │   │   │   ├── offer_binary
│   │   │   │   ├── plot_binary
│   │   │   │   ├── plot_nft_binary
│   │   │   │   ├── relay_binary
│   │   │   │   ├── swap_binary
│   │   │   │   ├── template_binary
│   │   │   │   ├── time_lock_binary
│   │   │   │   └── token_binary
│   │   │   └── params.json
│   │   └── parent
│   ├── mainnet-rc/
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── Wallet.json
│   │   ├── chain/
│   │   │   └── params.json
│   │   └── parent
│   ├── node/
│   │   └── .gitkeep
│   ├── server/
│   │   ├── HttpServer.json
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── TimeLord.json
│   │   └── wapi_threads
│   ├── slave/
│   │   ├── Node.json
│   │   ├── Router.json
│   │   └── farmer
│   ├── testnet12/
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── Wallet.json
│   │   ├── chain/
│   │   │   └── params.json
│   │   └── parent
│   ├── testnet13/
│   │   ├── Router.json
│   │   ├── chain/
│   │   │   ├── params/
│   │   │   │   ├── escrow_binary
│   │   │   │   ├── nft_binary
│   │   │   │   ├── offer_binary
│   │   │   │   ├── plot_nft_binary
│   │   │   │   ├── relay_binary
│   │   │   │   ├── swap_binary
│   │   │   │   ├── template_binary
│   │   │   │   ├── time_lock_binary
│   │   │   │   └── token_binary
│   │   │   └── params.json
│   │   └── parent
│   ├── timelord/
│   │   └── Proxy.json
│   └── wallet/
│       └── Proxy.json
├── data/
│   ├── mainnet/
│   │   ├── project_relay.json
│   │   └── tx_testnet_rewards.json
│   ├── mainnet-rc/
│   │   ├── rewards.json
│   │   ├── rewards.txt
│   │   ├── timelord_rewards.json
│   │   └── timelord_rewards.txt
│   ├── testnet10/
│   │   ├── rewards.json
│   │   └── rewards.txt
│   ├── testnet12/
│   │   ├── rewards.json
│   │   └── rewards.txt
│   ├── testnet8/
│   │   ├── fix.js
│   │   ├── rewards.json
│   │   └── rewards.txt
│   └── testnet9/
│       ├── rewards.json
│       └── rewards.txt
├── docker-entrypoint.sh
├── docs/
│   ├── README.md
│   ├── TODO.txt
│   ├── astro.config.mjs
│   ├── package.json
│   ├── public/
│   │   ├── resources/
│   │   │   └── code/
│   │   │       └── timelord/
│   │   │           ├── architecture/
│   │   │           │   └── Intel_15th-gen_E-core/
│   │   │           │       └── sha256_ni_rec.cpp
│   │   │           └── optimize/
│   │   │               └── sample/
│   │   │                   └── sha256_ni_rec_sample.cpp
│   │   └── robots.txt
│   ├── security/
│   │   └── checklist.txt
│   ├── src/
│   │   ├── components/
│   │   │   ├── MMXCardGrid.astro
│   │   │   ├── MMXLEDBars.astro
│   │   │   ├── MMXLinkCard.astro
│   │   │   ├── MMXLinkCardT.astro
│   │   │   ├── MarkdownContent.astro
│   │   │   └── SocialIcons.astro
│   │   ├── content/
│   │   │   └── docs/
│   │   │       ├── articles/
│   │   │       │   ├── general/
│   │   │       │   │   ├── mmx-tldr.md
│   │   │       │   │   └── mmx-whitepaper.mdx
│   │   │       │   ├── plotting/
│   │   │       │   │   ├── plot-format.md
│   │   │       │   │   └── plot-size.mdx
│   │   │       │   ├── timelord/
│   │   │       │   │   ├── timelord-optimizations.md
│   │   │       │   │   └── timelord-predictions.md
│   │   │       │   └── wallets/
│   │   │       │       └── wallets-mnemonic-passphrase.md
│   │   │       ├── faq/
│   │   │       │   ├── general.md
│   │   │       │   ├── node.md
│   │   │       │   ├── plotting.md
│   │   │       │   ├── timelord.md
│   │   │       │   ├── vdf.md
│   │   │       │   ├── wallet.md
│   │   │       │   └── webgui.md
│   │   │       ├── guides/
│   │   │       │   ├── docker.md
│   │   │       │   ├── getting-started.md
│   │   │       │   ├── installation.md
│   │   │       │   ├── mmx-plotter.mdx
│   │   │       │   ├── optimize-vdf.md
│   │   │       │   └── remote-services.md
│   │   │       ├── index.mdx
│   │   │       ├── reference/
│   │   │       │   ├── MMX_wallet.md
│   │   │       │   ├── NFT_standard.md
│   │   │       │   ├── Token_standard.md
│   │   │       │   ├── blockchain.md
│   │   │       │   └── pooling_protocol.md
│   │   │       └── software/
│   │   │           ├── MMX_script.md
│   │   │           ├── RPC_protocol.md
│   │   │           ├── cli-commands.md
│   │   │           └── web_wallet_api.md
│   │   ├── content.config.ts
│   │   ├── pages/
│   │   │   └── tools/
│   │   │       └── time-calculator.astro
│   │   └── styles/
│   │       └── style.css
│   └── tsconfig.json
├── generated/
│   ├── contract/
│   │   ├── include/
│   │   │   └── mmx/
│   │   │       └── contract/
│   │   │           ├── Binary.hxx
│   │   │           ├── Data.hxx
│   │   │           ├── Executable.hxx
│   │   │           ├── MultiSig.hxx
│   │   │           ├── PubKey.hxx
│   │   │           ├── TokenBase.hxx
│   │   │           ├── WebData.hxx
│   │   │           ├── accept_generic.hxx
│   │   │           ├── method_t.hxx
│   │   │           └── package.hxx
│   │   └── src/
│   │       ├── Binary.cpp
│   │       ├── Data.cpp
│   │       ├── Executable.cpp
│   │       ├── MultiSig.cpp
│   │       ├── PubKey.cpp
│   │       ├── TokenBase.cpp
│   │       ├── WebData.cpp
│   │       ├── method_t.cpp
│   │       └── package.cpp
│   ├── include/
│   │   └── mmx/
│   │       ├── Block.hxx
│   │       ├── BlockHeader.hxx
│   │       ├── ChainParams.hxx
│   │       ├── Challenge.hxx
│   │       ├── Contract.hxx
│   │       ├── FarmInfo.hxx
│   │       ├── FarmerAsyncClient.hxx
│   │       ├── FarmerBase.hxx
│   │       ├── FarmerClient.hxx
│   │       ├── Farmer_get_farm_info.hxx
│   │       ├── Farmer_get_farm_info_return.hxx
│   │       ├── Farmer_get_farmer_keys.hxx
│   │       ├── Farmer_get_farmer_keys_return.hxx
│   │       ├── Farmer_get_mac_addr.hxx
│   │       ├── Farmer_get_mac_addr_return.hxx
│   │       ├── Farmer_get_partial_diff.hxx
│   │       ├── Farmer_get_partial_diff_return.hxx
│   │       ├── Farmer_get_partial_diffs.hxx
│   │       ├── Farmer_get_partial_diffs_return.hxx
│   │       ├── Farmer_sign_block.hxx
│   │       ├── Farmer_sign_block_return.hxx
│   │       ├── Farmer_sign_vote.hxx
│   │       ├── Farmer_sign_vote_return.hxx
│   │       ├── HarvesterAsyncClient.hxx
│   │       ├── HarvesterBase.hxx
│   │       ├── HarvesterClient.hxx
│   │       ├── Harvester_add_plot_dir.hxx
│   │       ├── Harvester_add_plot_dir_return.hxx
│   │       ├── Harvester_get_farm_info.hxx
│   │       ├── Harvester_get_farm_info_return.hxx
│   │       ├── Harvester_get_total_bytes.hxx
│   │       ├── Harvester_get_total_bytes_return.hxx
│   │       ├── Harvester_reload.hxx
│   │       ├── Harvester_reload_return.hxx
│   │       ├── Harvester_rem_plot_dir.hxx
│   │       ├── Harvester_rem_plot_dir_return.hxx
│   │       ├── IntervalRequest.hxx
│   │       ├── KeyFile.hxx
│   │       ├── LookupInfo.hxx
│   │       ├── NetworkInfo.hxx
│   │       ├── NodeAsyncClient.hxx
│   │       ├── NodeBase.hxx
│   │       ├── NodeClient.hxx
│   │       ├── Node_add_block.hxx
│   │       ├── Node_add_block_return.hxx
│   │       ├── Node_add_transaction.hxx
│   │       ├── Node_add_transaction_return.hxx
│   │       ├── Node_call_contract.hxx
│   │       ├── Node_call_contract_return.hxx
│   │       ├── Node_dump_storage.hxx
│   │       ├── Node_dump_storage_return.hxx
│   │       ├── Node_fetch_offers.hxx
│   │       ├── Node_fetch_offers_return.hxx
│   │       ├── Node_get_all_balances.hxx
│   │       ├── Node_get_all_balances_return.hxx
│   │       ├── Node_get_balance.hxx
│   │       ├── Node_get_balance_return.hxx
│   │       ├── Node_get_balances.hxx
│   │       ├── Node_get_balances_return.hxx
│   │       ├── Node_get_block.hxx
│   │       ├── Node_get_block_at.hxx
│   │       ├── Node_get_block_at_return.hxx
│   │       ├── Node_get_block_hash.hxx
│   │       ├── Node_get_block_hash_ex.hxx
│   │       ├── Node_get_block_hash_ex_return.hxx
│   │       ├── Node_get_block_hash_return.hxx
│   │       ├── Node_get_block_return.hxx
│   │       ├── Node_get_contract.hxx
│   │       ├── Node_get_contract_balances.hxx
│   │       ├── Node_get_contract_balances_return.hxx
│   │       ├── Node_get_contract_for.hxx
│   │       ├── Node_get_contract_for_return.hxx
│   │       ├── Node_get_contract_return.hxx
│   │       ├── Node_get_contracts.hxx
│   │       ├── Node_get_contracts_by.hxx
│   │       ├── Node_get_contracts_by_return.hxx
│   │       ├── Node_get_contracts_owned_by.hxx
│   │       ├── Node_get_contracts_owned_by_return.hxx
│   │       ├── Node_get_contracts_return.hxx
│   │       ├── Node_get_exec_history.hxx
│   │       ├── Node_get_exec_history_return.hxx
│   │       ├── Node_get_farmed_block_summary.hxx
│   │       ├── Node_get_farmed_block_summary_return.hxx
│   │       ├── Node_get_farmed_blocks.hxx
│   │       ├── Node_get_farmed_blocks_return.hxx
│   │       ├── Node_get_farmer_ranking.hxx
│   │       ├── Node_get_farmer_ranking_return.hxx
│   │       ├── Node_get_genesis_hash.hxx
│   │       ├── Node_get_genesis_hash_return.hxx
│   │       ├── Node_get_header.hxx
│   │       ├── Node_get_header_at.hxx
│   │       ├── Node_get_header_at_return.hxx
│   │       ├── Node_get_header_return.hxx
│   │       ├── Node_get_height.hxx
│   │       ├── Node_get_height_return.hxx
│   │       ├── Node_get_history.hxx
│   │       ├── Node_get_history_memo.hxx
│   │       ├── Node_get_history_memo_return.hxx
│   │       ├── Node_get_history_return.hxx
│   │       ├── Node_get_network_info.hxx
│   │       ├── Node_get_network_info_return.hxx
│   │       ├── Node_get_offer.hxx
│   │       ├── Node_get_offer_return.hxx
│   │       ├── Node_get_offers.hxx
│   │       ├── Node_get_offers_by.hxx
│   │       ├── Node_get_offers_by_return.hxx
│   │       ├── Node_get_offers_return.hxx
│   │       ├── Node_get_params.hxx
│   │       ├── Node_get_params_return.hxx
│   │       ├── Node_get_plot_nft_info.hxx
│   │       ├── Node_get_plot_nft_info_return.hxx
│   │       ├── Node_get_plot_nft_target.hxx
│   │       ├── Node_get_plot_nft_target_return.hxx
│   │       ├── Node_get_recent_offers.hxx
│   │       ├── Node_get_recent_offers_for.hxx
│   │       ├── Node_get_recent_offers_for_return.hxx
│   │       ├── Node_get_recent_offers_return.hxx
│   │       ├── Node_get_swap_equivalent_liquidity.hxx
│   │       ├── Node_get_swap_equivalent_liquidity_return.hxx
│   │       ├── Node_get_swap_fees_earned.hxx
│   │       ├── Node_get_swap_fees_earned_return.hxx
│   │       ├── Node_get_swap_history.hxx
│   │       ├── Node_get_swap_history_return.hxx
│   │       ├── Node_get_swap_info.hxx
│   │       ├── Node_get_swap_info_return.hxx
│   │       ├── Node_get_swap_liquidity_by.hxx
│   │       ├── Node_get_swap_liquidity_by_return.hxx
│   │       ├── Node_get_swap_trade_estimate.hxx
│   │       ├── Node_get_swap_trade_estimate_return.hxx
│   │       ├── Node_get_swap_user_info.hxx
│   │       ├── Node_get_swap_user_info_return.hxx
│   │       ├── Node_get_swaps.hxx
│   │       ├── Node_get_swaps_return.hxx
│   │       ├── Node_get_synced_height.hxx
│   │       ├── Node_get_synced_height_return.hxx
│   │       ├── Node_get_synced_vdf_height.hxx
│   │       ├── Node_get_synced_vdf_height_return.hxx
│   │       ├── Node_get_total_balance.hxx
│   │       ├── Node_get_total_balance_return.hxx
│   │       ├── Node_get_total_balances.hxx
│   │       ├── Node_get_total_balances_return.hxx
│   │       ├── Node_get_total_supply.hxx
│   │       ├── Node_get_total_supply_return.hxx
│   │       ├── Node_get_trade_history.hxx
│   │       ├── Node_get_trade_history_for.hxx
│   │       ├── Node_get_trade_history_for_return.hxx
│   │       ├── Node_get_trade_history_return.hxx
│   │       ├── Node_get_transaction.hxx
│   │       ├── Node_get_transaction_return.hxx
│   │       ├── Node_get_transactions.hxx
│   │       ├── Node_get_transactions_return.hxx
│   │       ├── Node_get_tx_height.hxx
│   │       ├── Node_get_tx_height_return.hxx
│   │       ├── Node_get_tx_ids.hxx
│   │       ├── Node_get_tx_ids_at.hxx
│   │       ├── Node_get_tx_ids_at_return.hxx
│   │       ├── Node_get_tx_ids_return.hxx
│   │       ├── Node_get_tx_ids_since.hxx
│   │       ├── Node_get_tx_ids_since_return.hxx
│   │       ├── Node_get_tx_info.hxx
│   │       ├── Node_get_tx_info_for.hxx
│   │       ├── Node_get_tx_info_for_return.hxx
│   │       ├── Node_get_tx_info_return.hxx
│   │       ├── Node_get_vdf_height.hxx
│   │       ├── Node_get_vdf_height_return.hxx
│   │       ├── Node_get_vdf_peak.hxx
│   │       ├── Node_get_vdf_peak_return.hxx
│   │       ├── Node_read_storage.hxx
│   │       ├── Node_read_storage_array.hxx
│   │       ├── Node_read_storage_array_return.hxx
│   │       ├── Node_read_storage_entry_addr.hxx
│   │       ├── Node_read_storage_entry_addr_return.hxx
│   │       ├── Node_read_storage_entry_string.hxx
│   │       ├── Node_read_storage_entry_string_return.hxx
│   │       ├── Node_read_storage_entry_var.hxx
│   │       ├── Node_read_storage_entry_var_return.hxx
│   │       ├── Node_read_storage_field.hxx
│   │       ├── Node_read_storage_field_return.hxx
│   │       ├── Node_read_storage_map.hxx
│   │       ├── Node_read_storage_map_return.hxx
│   │       ├── Node_read_storage_object.hxx
│   │       ├── Node_read_storage_object_return.hxx
│   │       ├── Node_read_storage_return.hxx
│   │       ├── Node_read_storage_var.hxx
│   │       ├── Node_read_storage_var_return.hxx
│   │       ├── Node_revert_sync.hxx
│   │       ├── Node_revert_sync_return.hxx
│   │       ├── Node_start_sync.hxx
│   │       ├── Node_start_sync_return.hxx
│   │       ├── Node_validate.hxx
│   │       ├── Node_validate_return.hxx
│   │       ├── Node_verify_partial.hxx
│   │       ├── Node_verify_partial_return.hxx
│   │       ├── Node_verify_plot_nft_target.hxx
│   │       ├── Node_verify_plot_nft_target_return.hxx
│   │       ├── Operation.hxx
│   │       ├── Partial.hxx
│   │       ├── PeerInfo.hxx
│   │       ├── PlotHeader.hxx
│   │       ├── ProofOfSpace.hxx
│   │       ├── ProofOfSpaceNFT.hxx
│   │       ├── ProofOfSpaceOG.hxx
│   │       ├── ProofOfTime.hxx
│   │       ├── ProofResponse.hxx
│   │       ├── ProofServerAsyncClient.hxx
│   │       ├── ProofServerBase.hxx
│   │       ├── ProofServerClient.hxx
│   │       ├── ProofServer_compute.hxx
│   │       ├── ProofServer_compute_return.hxx
│   │       ├── ReceiveNote.hxx
│   │       ├── Request.hxx
│   │       ├── Return.hxx
│   │       ├── RouterAsyncClient.hxx
│   │       ├── RouterBase.hxx
│   │       ├── RouterClient.hxx
│   │       ├── Router_discover.hxx
│   │       ├── Router_discover_return.hxx
│   │       ├── Router_fetch_block.hxx
│   │       ├── Router_fetch_block_at.hxx
│   │       ├── Router_fetch_block_at_return.hxx
│   │       ├── Router_fetch_block_return.hxx
│   │       ├── Router_get_blocks_at.hxx
│   │       ├── Router_get_blocks_at_return.hxx
│   │       ├── Router_get_connected_peers.hxx
│   │       ├── Router_get_connected_peers_return.hxx
│   │       ├── Router_get_id.hxx
│   │       ├── Router_get_id_return.hxx
│   │       ├── Router_get_info.hxx
│   │       ├── Router_get_info_return.hxx
│   │       ├── Router_get_known_peers.hxx
│   │       ├── Router_get_known_peers_return.hxx
│   │       ├── Router_get_peer_info.hxx
│   │       ├── Router_get_peer_info_return.hxx
│   │       ├── Router_get_peers.hxx
│   │       ├── Router_get_peers_return.hxx
│   │       ├── Router_kick_peer.hxx
│   │       ├── Router_kick_peer_return.hxx
│   │       ├── Router_sign_msg.hxx
│   │       ├── Router_sign_msg_return.hxx
│   │       ├── Solution.hxx
│   │       ├── TimeLordAsyncClient.hxx
│   │       ├── TimeLordBase.hxx
│   │       ├── TimeLordClient.hxx
│   │       ├── TimeLord_stop_vdf.hxx
│   │       ├── TimeLord_stop_vdf_return.hxx
│   │       ├── Transaction.hxx
│   │       ├── TransactionBase.hxx
│   │       ├── VDF_Point.hxx
│   │       ├── ValidatorVote.hxx
│   │       ├── WalletAsyncClient.hxx
│   │       ├── WalletBase.hxx
│   │       ├── WalletClient.hxx
│   │       ├── WalletFile.hxx
│   │       ├── Wallet_accept_offer.hxx
│   │       ├── Wallet_accept_offer_return.hxx
│   │       ├── Wallet_add_account.hxx
│   │       ├── Wallet_add_account_return.hxx
│   │       ├── Wallet_add_token.hxx
│   │       ├── Wallet_add_token_return.hxx
│   │       ├── Wallet_cancel_offer.hxx
│   │       ├── Wallet_cancel_offer_return.hxx
│   │       ├── Wallet_complete.hxx
│   │       ├── Wallet_complete_return.hxx
│   │       ├── Wallet_create_account.hxx
│   │       ├── Wallet_create_account_return.hxx
│   │       ├── Wallet_create_wallet.hxx
│   │       ├── Wallet_create_wallet_return.hxx
│   │       ├── Wallet_deploy.hxx
│   │       ├── Wallet_deploy_return.hxx
│   │       ├── Wallet_deposit.hxx
│   │       ├── Wallet_deposit_return.hxx
│   │       ├── Wallet_execute.hxx
│   │       ├── Wallet_execute_return.hxx
│   │       ├── Wallet_export_wallet.hxx
│   │       ├── Wallet_export_wallet_return.hxx
│   │       ├── Wallet_find_wallet_by_addr.hxx
│   │       ├── Wallet_find_wallet_by_addr_return.hxx
│   │       ├── Wallet_gather_inputs_for.hxx
│   │       ├── Wallet_gather_inputs_for_return.hxx
│   │       ├── Wallet_get_account.hxx
│   │       ├── Wallet_get_account_return.hxx
│   │       ├── Wallet_get_address.hxx
│   │       ├── Wallet_get_address_return.hxx
│   │       ├── Wallet_get_all_accounts.hxx
│   │       ├── Wallet_get_all_accounts_return.hxx
│   │       ├── Wallet_get_all_addresses.hxx
│   │       ├── Wallet_get_all_addresses_return.hxx
│   │       ├── Wallet_get_all_farmer_keys.hxx
│   │       ├── Wallet_get_all_farmer_keys_return.hxx
│   │       ├── Wallet_get_balance.hxx
│   │       ├── Wallet_get_balance_return.hxx
│   │       ├── Wallet_get_balances.hxx
│   │       ├── Wallet_get_balances_return.hxx
│   │       ├── Wallet_get_contract_balances.hxx
│   │       ├── Wallet_get_contract_balances_return.hxx
│   │       ├── Wallet_get_contracts.hxx
│   │       ├── Wallet_get_contracts_owned.hxx
│   │       ├── Wallet_get_contracts_owned_return.hxx
│   │       ├── Wallet_get_contracts_return.hxx
│   │       ├── Wallet_get_farmer_keys.hxx
│   │       ├── Wallet_get_farmer_keys_return.hxx
│   │       ├── Wallet_get_history.hxx
│   │       ├── Wallet_get_history_return.hxx
│   │       ├── Wallet_get_master_seed.hxx
│   │       ├── Wallet_get_master_seed_return.hxx
│   │       ├── Wallet_get_mnemonic_seed.hxx
│   │       ├── Wallet_get_mnemonic_seed_return.hxx
│   │       ├── Wallet_get_mnemonic_wordlist.hxx
│   │       ├── Wallet_get_mnemonic_wordlist_return.hxx
│   │       ├── Wallet_get_offers.hxx
│   │       ├── Wallet_get_offers_return.hxx
│   │       ├── Wallet_get_swap_liquidity.hxx
│   │       ├── Wallet_get_swap_liquidity_return.hxx
│   │       ├── Wallet_get_token_list.hxx
│   │       ├── Wallet_get_token_list_return.hxx
│   │       ├── Wallet_get_total_balances.hxx
│   │       ├── Wallet_get_total_balances_return.hxx
│   │       ├── Wallet_get_tx_log.hxx
│   │       ├── Wallet_get_tx_log_return.hxx
│   │       ├── Wallet_import_wallet.hxx
│   │       ├── Wallet_import_wallet_return.hxx
│   │       ├── Wallet_is_locked.hxx
│   │       ├── Wallet_is_locked_return.hxx
│   │       ├── Wallet_lock.hxx
│   │       ├── Wallet_lock_return.hxx
│   │       ├── Wallet_make_offer.hxx
│   │       ├── Wallet_make_offer_return.hxx
│   │       ├── Wallet_mark_spent.hxx
│   │       ├── Wallet_mark_spent_return.hxx
│   │       ├── Wallet_offer_trade.hxx
│   │       ├── Wallet_offer_trade_return.hxx
│   │       ├── Wallet_offer_withdraw.hxx
│   │       ├── Wallet_offer_withdraw_return.hxx
│   │       ├── Wallet_plotnft_create.hxx
│   │       ├── Wallet_plotnft_create_return.hxx
│   │       ├── Wallet_plotnft_exec.hxx
│   │       ├── Wallet_plotnft_exec_return.hxx
│   │       ├── Wallet_release.hxx
│   │       ├── Wallet_release_all.hxx
│   │       ├── Wallet_release_all_return.hxx
│   │       ├── Wallet_release_return.hxx
│   │       ├── Wallet_rem_token.hxx
│   │       ├── Wallet_rem_token_return.hxx
│   │       ├── Wallet_remove_account.hxx
│   │       ├── Wallet_remove_account_return.hxx
│   │       ├── Wallet_reserve.hxx
│   │       ├── Wallet_reserve_return.hxx
│   │       ├── Wallet_reset_cache.hxx
│   │       ├── Wallet_reset_cache_return.hxx
│   │       ├── Wallet_send.hxx
│   │       ├── Wallet_send_from.hxx
│   │       ├── Wallet_send_from_return.hxx
│   │       ├── Wallet_send_many.hxx
│   │       ├── Wallet_send_many_return.hxx
│   │       ├── Wallet_send_off.hxx
│   │       ├── Wallet_send_off_return.hxx
│   │       ├── Wallet_send_return.hxx
│   │       ├── Wallet_set_address_count.hxx
│   │       ├── Wallet_set_address_count_return.hxx
│   │       ├── Wallet_sign_msg.hxx
│   │       ├── Wallet_sign_msg_return.hxx
│   │       ├── Wallet_sign_off.hxx
│   │       ├── Wallet_sign_off_return.hxx
│   │       ├── Wallet_swap_add_liquid.hxx
│   │       ├── Wallet_swap_add_liquid_return.hxx
│   │       ├── Wallet_swap_rem_liquid.hxx
│   │       ├── Wallet_swap_rem_liquid_return.hxx
│   │       ├── Wallet_swap_trade.hxx
│   │       ├── Wallet_swap_trade_return.hxx
│   │       ├── Wallet_unlock.hxx
│   │       ├── Wallet_unlock_return.hxx
│   │       ├── Wallet_update_cache.hxx
│   │       ├── Wallet_update_cache_return.hxx
│   │       ├── WebAPIAsyncClient.hxx
│   │       ├── WebAPIBase.hxx
│   │       ├── WebAPIClient.hxx
│   │       ├── WebAPI_shutdown.hxx
│   │       ├── WebAPI_shutdown_return.hxx
│   │       ├── accept_generic.hxx
│   │       ├── account_info_t.hxx
│   │       ├── account_t.hxx
│   │       ├── balance_t.hxx
│   │       ├── block_index_t.hxx
│   │       ├── compile_flags_t.hxx
│   │       ├── error_code_e.hxx
│   │       ├── exec_entry_t.hxx
│   │       ├── exec_error_t.hxx
│   │       ├── exec_result_t.hxx
│   │       ├── farmed_block_info_t.hxx
│   │       ├── farmed_block_summary_t.hxx
│   │       ├── node_info_t.hxx
│   │       ├── node_type_e.hxx
│   │       ├── offer_data_t.hxx
│   │       ├── package.hxx
│   │       ├── peer_info_t.hxx
│   │       ├── permission_e.hxx
│   │       ├── plot_nft_info_t.hxx
│   │       ├── pooling_error_e.hxx
│   │       ├── pooling_info_t.hxx
│   │       ├── pooling_stats_t.hxx
│   │       ├── query_filter_t.hxx
│   │       ├── spend_options_t.hxx
│   │       ├── swap_entry_t.hxx
│   │       ├── swap_info_t.hxx
│   │       ├── swap_pool_info_t.hxx
│   │       ├── swap_user_info_t.hxx
│   │       ├── table_entry_t.hxx
│   │       ├── trade_entry_t.hxx
│   │       ├── trade_log_t.hxx
│   │       ├── tx_entry_t.hxx
│   │       ├── tx_index_t.hxx
│   │       ├── tx_info_t.hxx
│   │       ├── tx_log_entry_t.hxx
│   │       ├── tx_note_e.hxx
│   │       ├── tx_type_e.hxx
│   │       ├── txin_t.hxx
│   │       ├── txio_entry_t.hxx
│   │       ├── txio_t.hxx
│   │       ├── txout_t.hxx
│   │       ├── uint_fraction_t.hxx
│   │       ├── ulong_fraction_t.hxx
│   │       └── virtual_plot_info_t.hxx
│   ├── operation/
│   │   ├── include/
│   │   │   └── mmx/
│   │   │       └── operation/
│   │   │           ├── Deposit.hxx
│   │   │           ├── Execute.hxx
│   │   │           ├── accept_generic.hxx
│   │   │           └── package.hxx
│   │   └── src/
│   │       ├── Deposit.cpp
│   │       ├── Execute.cpp
│   │       └── package.cpp
│   ├── solution/
│   │   ├── include/
│   │   │   └── mmx/
│   │   │       └── solution/
│   │   │           ├── MultiSig.hxx
│   │   │           ├── PubKey.hxx
│   │   │           ├── accept_generic.hxx
│   │   │           └── package.hxx
│   │   └── src/
│   │       ├── MultiSig.cpp
│   │       ├── PubKey.cpp
│   │       └── package.cpp
│   ├── src/
│   │   ├── Block.cpp
│   │   ├── BlockHeader.cpp
│   │   ├── ChainParams.cpp
│   │   ├── Challenge.cpp
│   │   ├── Contract.cpp
│   │   ├── FarmInfo.cpp
│   │   ├── FarmerAsyncClient.cpp
│   │   ├── FarmerBase.cpp
│   │   ├── FarmerClient.cpp
│   │   ├── Farmer_get_farm_info.cpp
│   │   ├── Farmer_get_farm_info_return.cpp
│   │   ├── Farmer_get_farmer_keys.cpp
│   │   ├── Farmer_get_farmer_keys_return.cpp
│   │   ├── Farmer_get_mac_addr.cpp
│   │   ├── Farmer_get_mac_addr_return.cpp
│   │   ├── Farmer_get_partial_diff.cpp
│   │   ├── Farmer_get_partial_diff_return.cpp
│   │   ├── Farmer_get_partial_diffs.cpp
│   │   ├── Farmer_get_partial_diffs_return.cpp
│   │   ├── Farmer_sign_block.cpp
│   │   ├── Farmer_sign_block_return.cpp
│   │   ├── Farmer_sign_vote.cpp
│   │   ├── Farmer_sign_vote_return.cpp
│   │   ├── HarvesterAsyncClient.cpp
│   │   ├── HarvesterBase.cpp
│   │   ├── HarvesterClient.cpp
│   │   ├── Harvester_add_plot_dir.cpp
│   │   ├── Harvester_add_plot_dir_return.cpp
│   │   ├── Harvester_get_farm_info.cpp
│   │   ├── Harvester_get_farm_info_return.cpp
│   │   ├── Harvester_get_total_bytes.cpp
│   │   ├── Harvester_get_total_bytes_return.cpp
│   │   ├── Harvester_reload.cpp
│   │   ├── Harvester_reload_return.cpp
│   │   ├── Harvester_rem_plot_dir.cpp
│   │   ├── Harvester_rem_plot_dir_return.cpp
│   │   ├── IntervalRequest.cpp
│   │   ├── KeyFile.cpp
│   │   ├── LookupInfo.cpp
│   │   ├── NetworkInfo.cpp
│   │   ├── NodeAsyncClient.cpp
│   │   ├── NodeBase.cpp
│   │   ├── NodeClient.cpp
│   │   ├── Node_add_block.cpp
│   │   ├── Node_add_block_return.cpp
│   │   ├── Node_add_transaction.cpp
│   │   ├── Node_add_transaction_return.cpp
│   │   ├── Node_call_contract.cpp
│   │   ├── Node_call_contract_return.cpp
│   │   ├── Node_dump_storage.cpp
│   │   ├── Node_dump_storage_return.cpp
│   │   ├── Node_fetch_offers.cpp
│   │   ├── Node_fetch_offers_return.cpp
│   │   ├── Node_get_all_balances.cpp
│   │   ├── Node_get_all_balances_return.cpp
│   │   ├── Node_get_balance.cpp
│   │   ├── Node_get_balance_return.cpp
│   │   ├── Node_get_balances.cpp
│   │   ├── Node_get_balances_return.cpp
│   │   ├── Node_get_block.cpp
│   │   ├── Node_get_block_at.cpp
│   │   ├── Node_get_block_at_return.cpp
│   │   ├── Node_get_block_hash.cpp
│   │   ├── Node_get_block_hash_ex.cpp
│   │   ├── Node_get_block_hash_ex_return.cpp
│   │   ├── Node_get_block_hash_return.cpp
│   │   ├── Node_get_block_return.cpp
│   │   ├── Node_get_contract.cpp
│   │   ├── Node_get_contract_balances.cpp
│   │   ├── Node_get_contract_balances_return.cpp
│   │   ├── Node_get_contract_for.cpp
│   │   ├── Node_get_contract_for_return.cpp
│   │   ├── Node_get_contract_return.cpp
│   │   ├── Node_get_contracts.cpp
│   │   ├── Node_get_contracts_by.cpp
│   │   ├── Node_get_contracts_by_return.cpp
│   │   ├── Node_get_contracts_owned_by.cpp
│   │   ├── Node_get_contracts_owned_by_return.cpp
│   │   ├── Node_get_contracts_return.cpp
│   │   ├── Node_get_exec_history.cpp
│   │   ├── Node_get_exec_history_return.cpp
│   │   ├── Node_get_farmed_block_summary.cpp
│   │   ├── Node_get_farmed_block_summary_return.cpp
│   │   ├── Node_get_farmed_blocks.cpp
│   │   ├── Node_get_farmed_blocks_return.cpp
│   │   ├── Node_get_farmer_ranking.cpp
│   │   ├── Node_get_farmer_ranking_return.cpp
│   │   ├── Node_get_genesis_hash.cpp
│   │   ├── Node_get_genesis_hash_return.cpp
│   │   ├── Node_get_header.cpp
│   │   ├── Node_get_header_at.cpp
│   │   ├── Node_get_header_at_return.cpp
│   │   ├── Node_get_header_return.cpp
│   │   ├── Node_get_height.cpp
│   │   ├── Node_get_height_return.cpp
│   │   ├── Node_get_history.cpp
│   │   ├── Node_get_history_memo.cpp
│   │   ├── Node_get_history_memo_return.cpp
│   │   ├── Node_get_history_return.cpp
│   │   ├── Node_get_network_info.cpp
│   │   ├── Node_get_network_info_return.cpp
│   │   ├── Node_get_offer.cpp
│   │   ├── Node_get_offer_return.cpp
│   │   ├── Node_get_offers.cpp
│   │   ├── Node_get_offers_by.cpp
│   │   ├── Node_get_offers_by_return.cpp
│   │   ├── Node_get_offers_return.cpp
│   │   ├── Node_get_params.cpp
│   │   ├── Node_get_params_return.cpp
│   │   ├── Node_get_plot_nft_info.cpp
│   │   ├── Node_get_plot_nft_info_return.cpp
│   │   ├── Node_get_plot_nft_target.cpp
│   │   ├── Node_get_plot_nft_target_return.cpp
│   │   ├── Node_get_recent_offers.cpp
│   │   ├── Node_get_recent_offers_for.cpp
│   │   ├── Node_get_recent_offers_for_return.cpp
│   │   ├── Node_get_recent_offers_return.cpp
│   │   ├── Node_get_swap_equivalent_liquidity.cpp
│   │   ├── Node_get_swap_equivalent_liquidity_return.cpp
│   │   ├── Node_get_swap_fees_earned.cpp
│   │   ├── Node_get_swap_fees_earned_return.cpp
│   │   ├── Node_get_swap_history.cpp
│   │   ├── Node_get_swap_history_return.cpp
│   │   ├── Node_get_swap_info.cpp
│   │   ├── Node_get_swap_info_return.cpp
│   │   ├── Node_get_swap_liquidity_by.cpp
│   │   ├── Node_get_swap_liquidity_by_return.cpp
│   │   ├── Node_get_swap_trade_estimate.cpp
│   │   ├── Node_get_swap_trade_estimate_return.cpp
│   │   ├── Node_get_swap_user_info.cpp
│   │   ├── Node_get_swap_user_info_return.cpp
│   │   ├── Node_get_swaps.cpp
│   │   ├── Node_get_swaps_return.cpp
│   │   ├── Node_get_synced_height.cpp
│   │   ├── Node_get_synced_height_return.cpp
│   │   ├── Node_get_synced_vdf_height.cpp
│   │   ├── Node_get_synced_vdf_height_return.cpp
│   │   ├── Node_get_total_balance.cpp
│   │   ├── Node_get_total_balance_return.cpp
│   │   ├── Node_get_total_balances.cpp
│   │   ├── Node_get_total_balances_return.cpp
│   │   ├── Node_get_total_supply.cpp
│   │   ├── Node_get_total_supply_return.cpp
│   │   ├── Node_get_trade_history.cpp
│   │   ├── Node_get_trade_history_for.cpp
│   │   ├── Node_get_trade_history_for_return.cpp
│   │   ├── Node_get_trade_history_return.cpp
│   │   ├── Node_get_transaction.cpp
│   │   ├── Node_get_transaction_return.cpp
│   │   ├── Node_get_transactions.cpp
│   │   ├── Node_get_transactions_return.cpp
│   │   ├── Node_get_tx_height.cpp
│   │   ├── Node_get_tx_height_return.cpp
│   │   ├── Node_get_tx_ids.cpp
│   │   ├── Node_get_tx_ids_at.cpp
│   │   ├── Node_get_tx_ids_at_return.cpp
│   │   ├── Node_get_tx_ids_return.cpp
│   │   ├── Node_get_tx_ids_since.cpp
│   │   ├── Node_get_tx_ids_since_return.cpp
│   │   ├── Node_get_tx_info.cpp
│   │   ├── Node_get_tx_info_for.cpp
│   │   ├── Node_get_tx_info_for_return.cpp
│   │   ├── Node_get_tx_info_return.cpp
│   │   ├── Node_get_vdf_height.cpp
│   │   ├── Node_get_vdf_height_return.cpp
│   │   ├── Node_get_vdf_peak.cpp
│   │   ├── Node_get_vdf_peak_return.cpp
│   │   ├── Node_read_storage.cpp
│   │   ├── Node_read_storage_array.cpp
│   │   ├── Node_read_storage_array_return.cpp
│   │   ├── Node_read_storage_entry_addr.cpp
│   │   ├── Node_read_storage_entry_addr_return.cpp
│   │   ├── Node_read_storage_entry_string.cpp
│   │   ├── Node_read_storage_entry_string_return.cpp
│   │   ├── Node_read_storage_entry_var.cpp
│   │   ├── Node_read_storage_entry_var_return.cpp
│   │   ├── Node_read_storage_field.cpp
│   │   ├── Node_read_storage_field_return.cpp
│   │   ├── Node_read_storage_map.cpp
│   │   ├── Node_read_storage_map_return.cpp
│   │   ├── Node_read_storage_object.cpp
│   │   ├── Node_read_storage_object_return.cpp
│   │   ├── Node_read_storage_return.cpp
│   │   ├── Node_read_storage_var.cpp
│   │   ├── Node_read_storage_var_return.cpp
│   │   ├── Node_revert_sync.cpp
│   │   ├── Node_revert_sync_return.cpp
│   │   ├── Node_start_sync.cpp
│   │   ├── Node_start_sync_return.cpp
│   │   ├── Node_validate.cpp
│   │   ├── Node_validate_return.cpp
│   │   ├── Node_verify_partial.cpp
│   │   ├── Node_verify_partial_return.cpp
│   │   ├── Node_verify_plot_nft_target.cpp
│   │   ├── Node_verify_plot_nft_target_return.cpp
│   │   ├── Operation.cpp
│   │   ├── Partial.cpp
│   │   ├── PeerInfo.cpp
│   │   ├── PlotHeader.cpp
│   │   ├── ProofOfSpace.cpp
│   │   ├── ProofOfSpaceNFT.cpp
│   │   ├── ProofOfSpaceOG.cpp
│   │   ├── ProofOfTime.cpp
│   │   ├── ProofResponse.cpp
│   │   ├── ProofServerAsyncClient.cpp
│   │   ├── ProofServerBase.cpp
│   │   ├── ProofServerClient.cpp
│   │   ├── ProofServer_compute.cpp
│   │   ├── ProofServer_compute_return.cpp
│   │   ├── ReceiveNote.cpp
│   │   ├── Request.cpp
│   │   ├── Return.cpp
│   │   ├── RouterAsyncClient.cpp
│   │   ├── RouterBase.cpp
│   │   ├── RouterClient.cpp
│   │   ├── Router_discover.cpp
│   │   ├── Router_discover_return.cpp
│   │   ├── Router_fetch_block.cpp
│   │   ├── Router_fetch_block_at.cpp
│   │   ├── Router_fetch_block_at_return.cpp
│   │   ├── Router_fetch_block_return.cpp
│   │   ├── Router_get_blocks_at.cpp
│   │   ├── Router_get_blocks_at_return.cpp
│   │   ├── Router_get_connected_peers.cpp
│   │   ├── Router_get_connected_peers_return.cpp
│   │   ├── Router_get_id.cpp
│   │   ├── Router_get_id_return.cpp
│   │   ├── Router_get_info.cpp
│   │   ├── Router_get_info_return.cpp
│   │   ├── Router_get_known_peers.cpp
│   │   ├── Router_get_known_peers_return.cpp
│   │   ├── Router_get_peer_info.cpp
│   │   ├── Router_get_peer_info_return.cpp
│   │   ├── Router_get_peers.cpp
│   │   ├── Router_get_peers_return.cpp
│   │   ├── Router_kick_peer.cpp
│   │   ├── Router_kick_peer_return.cpp
│   │   ├── Router_sign_msg.cpp
│   │   ├── Router_sign_msg_return.cpp
│   │   ├── Solution.cpp
│   │   ├── TimeLordAsyncClient.cpp
│   │   ├── TimeLordBase.cpp
│   │   ├── TimeLordClient.cpp
│   │   ├── TimeLord_stop_vdf.cpp
│   │   ├── TimeLord_stop_vdf_return.cpp
│   │   ├── Transaction.cpp
│   │   ├── TransactionBase.cpp
│   │   ├── VDF_Point.cpp
│   │   ├── ValidatorVote.cpp
│   │   ├── WalletAsyncClient.cpp
│   │   ├── WalletBase.cpp
│   │   ├── WalletClient.cpp
│   │   ├── WalletFile.cpp
│   │   ├── Wallet_accept_offer.cpp
│   │   ├── Wallet_accept_offer_return.cpp
│   │   ├── Wallet_add_account.cpp
│   │   ├── Wallet_add_account_return.cpp
│   │   ├── Wallet_add_token.cpp
│   │   ├── Wallet_add_token_return.cpp
│   │   ├── Wallet_cancel_offer.cpp
│   │   ├── Wallet_cancel_offer_return.cpp
│   │   ├── Wallet_complete.cpp
│   │   ├── Wallet_complete_return.cpp
│   │   ├── Wallet_create_account.cpp
│   │   ├── Wallet_create_account_return.cpp
│   │   ├── Wallet_create_wallet.cpp
│   │   ├── Wallet_create_wallet_return.cpp
│   │   ├── Wallet_deploy.cpp
│   │   ├── Wallet_deploy_return.cpp
│   │   ├── Wallet_deposit.cpp
│   │   ├── Wallet_deposit_return.cpp
│   │   ├── Wallet_execute.cpp
│   │   ├── Wallet_execute_return.cpp
│   │   ├── Wallet_export_wallet.cpp
│   │   ├── Wallet_export_wallet_return.cpp
│   │   ├── Wallet_find_wallet_by_addr.cpp
│   │   ├── Wallet_find_wallet_by_addr_return.cpp
│   │   ├── Wallet_gather_inputs_for.cpp
│   │   ├── Wallet_gather_inputs_for_return.cpp
│   │   ├── Wallet_get_account.cpp
│   │   ├── Wallet_get_account_return.cpp
│   │   ├── Wallet_get_address.cpp
│   │   ├── Wallet_get_address_return.cpp
│   │   ├── Wallet_get_all_accounts.cpp
│   │   ├── Wallet_get_all_accounts_return.cpp
│   │   ├── Wallet_get_all_addresses.cpp
│   │   ├── Wallet_get_all_addresses_return.cpp
│   │   ├── Wallet_get_all_farmer_keys.cpp
│   │   ├── Wallet_get_all_farmer_keys_return.cpp
│   │   ├── Wallet_get_balance.cpp
│   │   ├── Wallet_get_balance_return.cpp
│   │   ├── Wallet_get_balances.cpp
│   │   ├── Wallet_get_balances_return.cpp
│   │   ├── Wallet_get_contract_balances.cpp
│   │   ├── Wallet_get_contract_balances_return.cpp
│   │   ├── Wallet_get_contracts.cpp
│   │   ├── Wallet_get_contracts_owned.cpp
│   │   ├── Wallet_get_contracts_owned_return.cpp
│   │   ├── Wallet_get_contracts_return.cpp
│   │   ├── Wallet_get_farmer_keys.cpp
│   │   ├── Wallet_get_farmer_keys_return.cpp
│   │   ├── Wallet_get_history.cpp
│   │   ├── Wallet_get_history_return.cpp
│   │   ├── Wallet_get_master_seed.cpp
│   │   ├── Wallet_get_master_seed_return.cpp
│   │   ├── Wallet_get_mnemonic_seed.cpp
│   │   ├── Wallet_get_mnemonic_seed_return.cpp
│   │   ├── Wallet_get_mnemonic_wordlist.cpp
│   │   ├── Wallet_get_mnemonic_wordlist_return.cpp
│   │   ├── Wallet_get_offers.cpp
│   │   ├── Wallet_get_offers_return.cpp
│   │   ├── Wallet_get_swap_liquidity.cpp
│   │   ├── Wallet_get_swap_liquidity_return.cpp
│   │   ├── Wallet_get_token_list.cpp
│   │   ├── Wallet_get_token_list_return.cpp
│   │   ├── Wallet_get_total_balances.cpp
│   │   ├── Wallet_get_total_balances_return.cpp
│   │   ├── Wallet_get_tx_log.cpp
│   │   ├── Wallet_get_tx_log_return.cpp
│   │   ├── Wallet_import_wallet.cpp
│   │   ├── Wallet_import_wallet_return.cpp
│   │   ├── Wallet_is_locked.cpp
│   │   ├── Wallet_is_locked_return.cpp
│   │   ├── Wallet_lock.cpp
│   │   ├── Wallet_lock_return.cpp
│   │   ├── Wallet_make_offer.cpp
│   │   ├── Wallet_make_offer_return.cpp
│   │   ├── Wallet_mark_spent.cpp
│   │   ├── Wallet_mark_spent_return.cpp
│   │   ├── Wallet_offer_trade.cpp
│   │   ├── Wallet_offer_trade_return.cpp
│   │   ├── Wallet_offer_withdraw.cpp
│   │   ├── Wallet_offer_withdraw_return.cpp
│   │   ├── Wallet_plotnft_create.cpp
│   │   ├── Wallet_plotnft_create_return.cpp
│   │   ├── Wallet_plotnft_exec.cpp
│   │   ├── Wallet_plotnft_exec_return.cpp
│   │   ├── Wallet_release.cpp
│   │   ├── Wallet_release_all.cpp
│   │   ├── Wallet_release_all_return.cpp
│   │   ├── Wallet_release_return.cpp
│   │   ├── Wallet_rem_token.cpp
│   │   ├── Wallet_rem_token_return.cpp
│   │   ├── Wallet_remove_account.cpp
│   │   ├── Wallet_remove_account_return.cpp
│   │   ├── Wallet_reserve.cpp
│   │   ├── Wallet_reserve_return.cpp
│   │   ├── Wallet_reset_cache.cpp
│   │   ├── Wallet_reset_cache_return.cpp
│   │   ├── Wallet_send.cpp
│   │   ├── Wallet_send_from.cpp
│   │   ├── Wallet_send_from_return.cpp
│   │   ├── Wallet_send_many.cpp
│   │   ├── Wallet_send_many_return.cpp
│   │   ├── Wallet_send_off.cpp
│   │   ├── Wallet_send_off_return.cpp
│   │   ├── Wallet_send_return.cpp
│   │   ├── Wallet_set_address_count.cpp
│   │   ├── Wallet_set_address_count_return.cpp
│   │   ├── Wallet_sign_msg.cpp
│   │   ├── Wallet_sign_msg_return.cpp
│   │   ├── Wallet_sign_off.cpp
│   │   ├── Wallet_sign_off_return.cpp
│   │   ├── Wallet_swap_add_liquid.cpp
│   │   ├── Wallet_swap_add_liquid_return.cpp
│   │   ├── Wallet_swap_rem_liquid.cpp
│   │   ├── Wallet_swap_rem_liquid_return.cpp
│   │   ├── Wallet_swap_trade.cpp
│   │   ├── Wallet_swap_trade_return.cpp
│   │   ├── Wallet_unlock.cpp
│   │   ├── Wallet_unlock_return.cpp
│   │   ├── Wallet_update_cache.cpp
│   │   ├── Wallet_update_cache_return.cpp
│   │   ├── WebAPIAsyncClient.cpp
│   │   ├── WebAPIBase.cpp
│   │   ├── WebAPIClient.cpp
│   │   ├── WebAPI_shutdown.cpp
│   │   ├── WebAPI_shutdown_return.cpp
│   │   ├── account_info_t.cpp
│   │   ├── account_t.cpp
│   │   ├── balance_t.cpp
│   │   ├── block_index_t.cpp
│   │   ├── compile_flags_t.cpp
│   │   ├── error_code_e.cpp
│   │   ├── exec_entry_t.cpp
│   │   ├── exec_error_t.cpp
│   │   ├── exec_result_t.cpp
│   │   ├── farmed_block_info_t.cpp
│   │   ├── farmed_block_summary_t.cpp
│   │   ├── node_info_t.cpp
│   │   ├── node_type_e.cpp
│   │   ├── offer_data_t.cpp
│   │   ├── package.cpp
│   │   ├── peer_info_t.cpp
│   │   ├── permission_e.cpp
│   │   ├── plot_nft_info_t.cpp
│   │   ├── pooling_error_e.cpp
│   │   ├── pooling_info_t.cpp
│   │   ├── pooling_stats_t.cpp
│   │   ├── query_filter_t.cpp
│   │   ├── spend_options_t.cpp
│   │   ├── swap_entry_t.cpp
│   │   ├── swap_info_t.cpp
│   │   ├── swap_pool_info_t.cpp
│   │   ├── swap_user_info_t.cpp
│   │   ├── table_entry_t.cpp
│   │   ├── trade_entry_t.cpp
│   │   ├── trade_log_t.cpp
│   │   ├── tx_entry_t.cpp
│   │   ├── tx_index_t.cpp
│   │   ├── tx_info_t.cpp
│   │   ├── tx_log_entry_t.cpp
│   │   ├── tx_note_e.cpp
│   │   ├── tx_type_e.cpp
│   │   ├── txin_t.cpp
│   │   ├── txio_entry_t.cpp
│   │   ├── txio_t.cpp
│   │   ├── txout_t.cpp
│   │   ├── uint_fraction_t.cpp
│   │   ├── ulong_fraction_t.cpp
│   │   └── virtual_plot_info_t.cpp
│   └── vm/
│       ├── include/
│       │   └── mmx/
│       │       └── vm/
│       │           ├── accept_generic.hxx
│       │           └── package.hxx
│       └── src/
│           └── package.cpp
├── include/
│   ├── cuda_sha512.h
│   ├── hmac_sha512.h
│   ├── mmx/
│   │   ├── DataBase.h
│   │   ├── ECDSA_Wallet.h
│   │   ├── Farmer.h
│   │   ├── Harvester.h
│   │   ├── Node.h
│   │   ├── OCL_VDF.h
│   │   ├── ProofServer.h
│   │   ├── Qt_GUI.h
│   │   ├── Router.h
│   │   ├── TimeLord.h
│   │   ├── TimeLordRewards.h
│   │   ├── Wallet.h
│   │   ├── WebAPI.h
│   │   ├── WebRender.h
│   │   ├── addr_t.hpp
│   │   ├── balance_cache_t.h
│   │   ├── bls_pubkey_t.hpp
│   │   ├── bls_signature_t.hpp
│   │   ├── bytes_t.hpp
│   │   ├── exception.h
│   │   ├── fixed128.hpp
│   │   ├── hash_512_t.hpp
│   │   ├── hash_t.hpp
│   │   ├── helpers.h
│   │   ├── hmac_sha512.hpp
│   │   ├── http_request.h
│   │   ├── mnemonic.h
│   │   ├── multi_table.h
│   │   ├── pos/
│   │   │   ├── Prover.h
│   │   │   ├── config.h
│   │   │   ├── cuda_recompute.h
│   │   │   ├── encoding.h
│   │   │   ├── mem_hash.h
│   │   │   ├── util.h
│   │   │   └── verify.h
│   │   ├── pubkey_t.hpp
│   │   ├── secp256k1.hpp
│   │   ├── signature_t.hpp
│   │   ├── skey_t.hpp
│   │   ├── table.h
│   │   ├── tree_hash.h
│   │   ├── tx_entry_t.hpp
│   │   ├── txio_entry_t.hpp
│   │   ├── txio_t.hpp
│   │   ├── uint128.hpp
│   │   ├── utils.h
│   │   ├── vm/
│   │   │   ├── Compiler.h
│   │   │   ├── Engine.h
│   │   │   ├── Storage.h
│   │   │   ├── StorageCache.h
│   │   │   ├── StorageDB.h
│   │   │   ├── StorageProxy.h
│   │   │   ├── StorageRAM.h
│   │   │   ├── instr_t.h
│   │   │   ├── var_t.h
│   │   │   └── varptr_t.hpp
│   │   ├── vm_interface.h
│   │   └── write_bytes.h
│   ├── sha256_arm.h
│   ├── sha256_avx2.h
│   ├── sha256_ni.h
│   ├── sha512.h
│   └── upnp_mapper.h
├── interface/
│   ├── Block.vni
│   ├── BlockHeader.vni
│   ├── ChainParams.vni
│   ├── Challenge.vni
│   ├── Contract.vni
│   ├── FarmInfo.vni
│   ├── IntervalRequest.vni
│   ├── KeyFile.vni
│   ├── LookupInfo.vni
│   ├── NetworkInfo.vni
│   ├── Operation.vni
│   ├── Partial.vni
│   ├── PeerInfo.vni
│   ├── PlotHeader.vni
│   ├── ProofOfSpace.vni
│   ├── ProofOfSpaceNFT.vni
│   ├── ProofOfSpaceOG.vni
│   ├── ProofOfTime.vni
│   ├── ProofResponse.vni
│   ├── ReceiveNote.vni
│   ├── Request.vni
│   ├── Return.vni
│   ├── Solution.vni
│   ├── Transaction.vni
│   ├── TransactionBase.vni
│   ├── VDF_Point.vni
│   ├── ValidatorVote.vni
│   ├── WalletFile.vni
│   ├── account_info_t.vni
│   ├── account_t.vni
│   ├── balance_t.vni
│   ├── block_index_t.vni
│   ├── compile_flags_t.vni
│   ├── contract/
│   │   ├── Binary.vni
│   │   ├── Data.vni
│   │   ├── Executable.vni
│   │   ├── MultiSig.vni
│   │   ├── PubKey.vni
│   │   ├── TokenBase.vni
│   │   ├── WebData.vni
│   │   └── method_t.vni
│   ├── error_code_e.vni
│   ├── exec_entry_t.vni
│   ├── exec_error_t.vni
│   ├── exec_result_t.vni
│   ├── farmed_block_info_t.vni
│   ├── farmed_block_summary_t.vni
│   ├── node_info_t.vni
│   ├── node_type_e.vni
│   ├── offer_data_t.vni
│   ├── operation/
│   │   ├── Deposit.vni
│   │   └── Execute.vni
│   ├── package.vni
│   ├── peer_info_t.vni
│   ├── permission_e.vni
│   ├── plot_nft_info_t.vni
│   ├── pooling_error_e.vni
│   ├── pooling_info_t.vni
│   ├── pooling_stats_t.vni
│   ├── query_filter_t.vni
│   ├── solution/
│   │   ├── MultiSig.vni
│   │   └── PubKey.vni
│   ├── spend_options_t.vni
│   ├── swap_entry_t.vni
│   ├── swap_info_t.vni
│   ├── swap_pool_info_t.vni
│   ├── swap_user_info_t.vni
│   ├── table_entry_t.vni
│   ├── trade_entry_t.vni
│   ├── trade_log_t.vni
│   ├── tx_entry_t.vni
│   ├── tx_index_t.vni
│   ├── tx_info_t.vni
│   ├── tx_log_entry_t.vni
│   ├── tx_note_e.vni
│   ├── tx_type_e.vni
│   ├── txin_t.vni
│   ├── txio_entry_t.vni
│   ├── txio_t.vni
│   ├── txout_t.vni
│   ├── uint_fraction_t.vni
│   ├── ulong_fraction_t.vni
│   ├── virtual_plot_info_t.vni
│   └── vm/
│       └── package.vni
├── kernel/
│   ├── rsha256.cl
│   └── sha256.cl
├── lib/
│   ├── .gitignore
│   ├── bip-0039/
│   │   ├── english.txt
│   │   └── generate_cpp.sh
│   └── make_all.sh
├── make_Debug.cmd
├── make_RelWithDebInfo.cmd
├── make_Release.cmd
├── make_Release_pack.cmd
├── make_coverage.sh
├── make_debian.sh
├── make_debug.sh
├── make_devel.sh
├── make_release.sh
├── modules/
│   ├── Farmer.vni
│   ├── Harvester.vni
│   ├── Node.vni
│   ├── ProofServer.vni
│   ├── Router.vni
│   ├── TimeLord.vni
│   ├── Wallet.vni
│   └── WebAPI.vni
├── run_farmer.sh
├── run_gdb_node.sh
├── run_harvester.sh
├── run_node.sh
├── run_timelord.sh
├── run_valgrind_node.sh
├── run_wallet.sh
├── run_wallet_gui.sh
├── scripts/
│   ├── bench/
│   │   └── test_iops.sh
│   ├── docker/
│   │   └── mmx-testnet/
│   │       ├── README.md
│   │       ├── compose.yml
│   │       └── nvidia.yml
│   ├── gen_coverage.sh
│   ├── gen_seed_peers.js
│   ├── genesis_setup.sh
│   ├── kill_high_mem.sh
│   ├── move_storage.sh
│   ├── reset_coverage.sh
│   ├── show_log_stats.sh
│   ├── stats/
│   │   └── max_space_fork_len.sh
│   └── win/
│       ├── activate.cmd
│       ├── mmx_cmd.cmd
│       ├── mmx_help.cmd
│       ├── run_farmer.cmd
│       ├── run_harvester.cmd
│       ├── run_node.cmd
│       ├── run_timelord.cmd
│       └── run_wallet.cmd
├── src/
│   ├── Block.cpp
│   ├── BlockHeader.cpp
│   ├── ChainParams.cpp
│   ├── Contract.cpp
│   ├── DataBase.cpp
│   ├── Farmer.cpp
│   ├── Harvester.cpp
│   ├── Node.cpp
│   ├── Node_api.cpp
│   ├── Node_control.cpp
│   ├── Node_tests.cpp
│   ├── Node_update.cpp
│   ├── Node_validate.cpp
│   ├── Node_verify.cpp
│   ├── OCL_VDF.cpp
│   ├── Operation.cpp
│   ├── Partial.cpp
│   ├── ProofOfSpace.cpp
│   ├── ProofOfSpaceNFT.cpp
│   ├── ProofOfSpaceOG.cpp
│   ├── ProofOfTime.cpp
│   ├── ProofResponse.cpp
│   ├── ProofServer.cpp
│   ├── Qt_GUI.cpp
│   ├── Router.cpp
│   ├── Solution.cpp
│   ├── TimeLord.cpp
│   ├── Transaction.cpp
│   ├── VDF_Point.cpp
│   ├── ValidatorVote.cpp
│   ├── Wallet.cpp
│   ├── WebAPI.cpp
│   ├── account_info_t.cpp
│   ├── addr_t.cpp
│   ├── contract/
│   │   ├── Binary.cpp
│   │   ├── Data.cpp
│   │   ├── Executable.cpp
│   │   ├── MultiSig.cpp
│   │   ├── PubKey.cpp
│   │   ├── TokenBase.cpp
│   │   ├── WebData.cpp
│   │   ├── crypto_horse_race.js
│   │   ├── escrow.js
│   │   ├── fixed_price_liquid_token.js
│   │   ├── fixed_price_token.js
│   │   ├── method_t.cpp
│   │   ├── nft.js
│   │   ├── nft_offer.js
│   │   ├── offer.js
│   │   ├── plot_nft.js
│   │   ├── poker.js
│   │   ├── relay.js
│   │   ├── smart_wallet.js
│   │   ├── swap.js
│   │   ├── template.js
│   │   ├── time_lock.js
│   │   ├── token.js
│   │   ├── transfer.js
│   │   └── virtual_plot.js
│   ├── exec_error_t.cpp
│   ├── exec_result_t.cpp
│   ├── fixed128.cpp
│   ├── hash_512_t.cpp
│   ├── hash_t.cpp
│   ├── hmac_sha512.cpp
│   ├── http_request.cpp
│   ├── mmx.cpp
│   ├── mmx_farmer.cpp
│   ├── mmx_harvester.cpp
│   ├── mmx_node.cpp
│   ├── mmx_timelord.cpp
│   ├── mmx_wallet.cpp
│   ├── mnemonic.cpp
│   ├── offer_data_t.cpp
│   ├── operation/
│   │   ├── Deposit.cpp
│   │   └── Execute.cpp
│   ├── pos/
│   │   ├── Prover.cpp
│   │   ├── cuda_recompute.cu
│   │   ├── encoding.cpp
│   │   ├── mem_hash.cpp
│   │   ├── verify.cpp
│   │   └── verify_full.cpp
│   ├── pubkey_t.cpp
│   ├── secp256k1.cpp
│   ├── sha256_64_x8.cpp
│   ├── sha256_arm.cpp
│   ├── sha256_arm_rec.cpp
│   ├── sha256_avx2.cpp
│   ├── sha256_ni.cpp
│   ├── sha256_ni_rec.cpp
│   ├── sha512.cpp
│   ├── signature_t.cpp
│   ├── solution/
│   │   ├── MultiSig.cpp
│   │   └── PubKey.cpp
│   ├── table.cpp
│   ├── uint128.cpp
│   ├── upnp_mapper.cpp
│   ├── utils.cpp
│   ├── vm/
│   │   ├── Compiler.cpp
│   │   ├── Engine.cpp
│   │   ├── StorageCache.cpp
│   │   ├── StorageDB.cpp
│   │   ├── StorageProxy.cpp
│   │   ├── StorageRAM.cpp
│   │   ├── instr_t.cpp
│   │   ├── std/
│   │   │   ├── compare.js
│   │   │   ├── compile.sh
│   │   │   ├── embedded.h
│   │   │   ├── equals.js
│   │   │   ├── reverse.js
│   │   │   └── sort.js
│   │   ├── var_t.cpp
│   │   └── varptr_t.cpp
│   ├── vm_interface.cpp
│   └── wordlist_en.cpp
├── start_harvester.sh
├── start_node.sh
├── start_wallet.sh
├── stop_harvester.sh
├── stop_node.sh
├── stop_wallet.sh
├── test/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── attacks/
│   │   └── cross_site_access.html
│   ├── code/
│   │   ├── contract_01.js
│   │   ├── contract_02.js
│   │   ├── instr_loop.js
│   │   └── test.js
│   ├── contracts/
│   │   ├── MMX_USDM_swap.json
│   │   ├── MultiSig.json
│   │   ├── PlotNFT.json
│   │   ├── TEST_token.json
│   │   ├── contract_01.json
│   │   ├── contract_02.json
│   │   ├── fixed_price_token.json
│   │   └── test_Data.json
│   ├── database_fill.cpp
│   ├── http/
│   │   └── test_pipeline.txt
│   ├── mmx_tests.cpp
│   ├── test_challenge_grind.cpp
│   ├── test_compiler.cpp
│   ├── test_cuda_recompute.cpp
│   ├── test_database.cpp
│   ├── test_database_reads.cpp
│   ├── test_encoding.cpp
│   ├── test_engine.cpp
│   ├── test_hash_vdl.cpp
│   ├── test_mem_hash.cpp
│   ├── test_mnemonic.cpp
│   ├── test_pos_compute.cpp
│   ├── test_proof_grind.cpp
│   ├── test_score_target.cpp
│   ├── test_secp256k1.cpp
│   ├── test_space_diff.cpp
│   ├── test_swap_algo.cpp
│   ├── test_transactions.cpp
│   ├── test_validation.cpp
│   ├── test_write_bytes_vitest_gen.cpp
│   └── vm/
│       ├── AFL/
│       │   ├── compile_all.sh
│       │   └── inputs/
│       │       ├── js/
│       │       │   ├── compiler_tests.js
│       │       │   ├── engine_tests.js
│       │       │   └── test_plot_nft.js
│       │       └── json/
│       │           └── engine_tests.js.json
│       ├── compiler_tests.js
│       ├── contract_tests.sh
│       ├── engine_tests.cpp
│       ├── engine_tests.js
│       ├── engine_tests.sh
│       ├── fails/
│       │   ├── assert.js
│       │   ├── assert_code.js
│       │   ├── assert_msg.js
│       │   ├── commit_out_of_gas.js
│       │   ├── div_by_zero.js
│       │   ├── endless_loop.js
│       │   ├── erase_recursion_overflow.js
│       │   ├── integer_overflow_0.js
│       │   ├── integer_overflow_1.js
│       │   ├── integer_overflow_2.js
│       │   ├── invalid_array_index.js
│       │   ├── invalid_bech32_0.js
│       │   ├── invalid_bech32_1.js
│       │   ├── invalid_binary_and.js
│       │   ├── invalid_binary_hex.js
│       │   ├── invalid_binary_or.js
│       │   ├── invalid_binary_xor.js
│       │   ├── invalid_bitwise_and.js
│       │   ├── invalid_bitwise_and2.js
│       │   ├── invalid_bitwise_not.js
│       │   ├── invalid_bitwise_or.js
│       │   ├── invalid_bitwise_or2.js
│       │   ├── invalid_bitwise_xor.js
│       │   ├── invalid_bitwise_xor2.js
│       │   ├── invalid_concat_0.js
│       │   ├── invalid_concat_1.js
│       │   ├── invalid_conv_integer_256_bit.js
│       │   ├── invalid_conv_integer_negative.js
│       │   ├── invalid_conv_integer_string_10.js
│       │   ├── invalid_conv_integer_string_11.js
│       │   ├── invalid_conv_integer_string_16.js
│       │   ├── invalid_conv_integer_string_2.js
│       │   ├── invalid_erase.js
│       │   ├── invalid_fail.js
│       │   ├── invalid_greater_equal.js
│       │   ├── invalid_greater_than.js
│       │   ├── invalid_hex_string_0.js
│       │   ├── invalid_hex_string_1.js
│       │   ├── invalid_less_equal.js
│       │   ├── invalid_less_than.js
│       │   ├── invalid_mint.js
│       │   ├── invalid_neg_0.js
│       │   ├── invalid_neg_1.js
│       │   ├── invalid_op_add.js
│       │   ├── invalid_op_div.js
│       │   ├── invalid_op_mod.js
│       │   ├── invalid_op_mul.js
│       │   ├── invalid_op_set.js
│       │   ├── invalid_op_sub.js
│       │   ├── invalid_rcall.js
│       │   ├── invalid_read.js
│       │   ├── invalid_send_0.js
│       │   ├── invalid_send_1.js
│       │   ├── invalid_size.js
│       │   ├── key_size_overflow.js
│       │   ├── mod_by_zero.js
│       │   ├── modify_balance.js
│       │   ├── modify_user.js
│       │   ├── null_map_key.js
│       │   ├── out_of_bounds_array_set.js
│       │   ├── out_of_bounds_memcpy.js
│       │   ├── read_fail.js
│       │   ├── recursive_loop.js
│       │   └── value_size_overflow.js
│       ├── storage_tests.cpp
│       ├── test_execute.cpp
│       ├── test_nft.js
│       ├── test_nft_n.js
│       ├── test_offer.js
│       ├── test_plot_nft.js
│       ├── test_poker.js
│       └── test_std.js
├── test_all.sh
├── tools/
│   ├── CMakeLists.txt
│   ├── calc_test_rewards.cpp
│   ├── dump_binary.cpp
│   ├── dump_table.cpp
│   ├── generate_passwd.cpp
│   ├── mmx_compile.cpp
│   ├── mmx_posbench.cpp
│   ├── mmx_postool.cpp
│   └── tx_bench.cpp
├── update.sh
├── vcpkg.json
└── www/
    ├── .gitignore
    ├── explorer/
    │   └── public/
    │       ├── assets/
    │       │   └── fonts/
    │       │       ├── material-icons/
    │       │       │   └── material-icons.css
    │       │       └── roboto/
    │       │           └── roboto.css
    │       ├── explorer.js
    │       ├── i18n.utils.js
    │       ├── index.html
    │       ├── index.js
    │       ├── locales/
    │       │   ├── common.js
    │       │   └── en.js
    │       └── mount.js
    ├── old/
    │   └── explorer/
    │       ├── index.js
    │       ├── package.json
    │       ├── public/
    │       │   └── js/
    │       │       ├── bootstrap.bundle.js
    │       │       ├── bootstrap.js
    │       │       └── theme_switcher.js
    │       └── views/
    │           ├── address.ejs
    │           ├── block.ejs
    │           ├── index.ejs
    │           ├── recent.ejs
    │           ├── recent_transactions.ejs
    │           └── transaction.ejs
    ├── pool-server/
    │   ├── README.md
    │   ├── account.js
    │   ├── config.js
    │   ├── package.json
    │   ├── schema.js
    │   ├── server.js
    │   ├── start.sh
    │   ├── utils.js
    │   └── verify.js
    ├── rpc-server/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.js
    │   ├── package.json
    │   └── start.sh
    └── web-gui/
        └── public/
            ├── assets/
            │   └── fonts/
            │       ├── material-icons/
            │       │   └── material-icons.css
            │       └── roboto/
            │           └── roboto.css
            ├── components/
            │   └── seed.js
            ├── explorer.js
            ├── farmer.js
            ├── i18n.utils.js
            ├── index.html
            ├── index.js
            ├── locales/
            │   ├── common.js
            │   ├── de.json
            │   ├── en.js
            │   ├── es.json
            │   ├── id.json
            │   ├── nl.json
            │   ├── pt.json
            │   ├── ru.json
            │   ├── template.json
            │   ├── uk.json
            │   └── zh.json
            ├── market.js
            ├── mount.js
            ├── node.js
            ├── robots.txt
            ├── settings.js
            ├── swap.js
            ├── vue-plotly.js
            └── wallet.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .dockerignore
================================================
/build


================================================
FILE: .github/workflows/debian.yml
================================================
name: Debian

on:
  push:
    branches:
      - '**'
    tags:
      - '**'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
  cancel-in-progress: true

jobs:
  build:
    strategy:
      matrix:
        ubuntu-version: [22.04, 24.04]
    runs-on: ubuntu-${{ matrix.ubuntu-version }}

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          fetch-tags: true
          submodules: "recursive"

      - name: Set up build environment
        run: |
          sudo apt-get update
          sudo apt-get install -y git cmake build-essential automake libtool pkg-config curl libminiupnpc-dev libjemalloc-dev libzstd-dev zlib1g-dev ocl-icd-opencl-dev qtwebengine5-dev fakeroot devscripts debhelper dpkg-dev

      - name: Install CUDA Toolkit
        uses: Jimver/cuda-toolkit@v0.2.21
        with:
          cuda: ${{ matrix.ubuntu-version == '24.04' && '12.5.0' || '11.8.0' }}
          method: network
          sub-packages: '["nvcc"]'

      - name: Build Debian package
        run: |
          ARCH=amd64 DIST=ubuntu-${{ matrix.ubuntu-version }} ./make_debian.sh

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: ubuntu-${{ matrix.ubuntu-version }}
          path: ./mmx-node-*.deb
      
      - name: Upload a Build Artifact to release
        if: startsWith(github.ref, 'refs/tags/v')
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ./mmx-node-*.deb
          file_glob: true
          tag: ${{ github.ref }}
          overwrite: true

================================================
FILE: .github/workflows/docker.yml
================================================
name: Docker

on:
  push:
    branches:
      - '**'
    tags:
      - '**'

# Automatically cancel previous runs for the same ref (i.e. branch) and event type. The latter component prevents
# manually dispatched events from being cancelled by pushes to the `master` branch.
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
  cancel-in-progress: true

jobs:
  build-and-push-image:
    name: Build and push image
    runs-on: ubuntu-latest
    env:
      REGISTRY: ghcr.io
      IMAGE_NAME: ${{ github.repository }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - final-build-stage: 'base'
            latest-tag-behaviour: auto
            version-suffix: ''
            suffix-onlatest: false
          - final-build-stage: amd
            latest-tag-behaviour: auto
            version-suffix: '-amd'
            suffix-onlatest: true
          - final-build-stage: nvidia
            latest-tag-behaviour: auto
            version-suffix: '-nvidia'
            suffix-onlatest: true
          - final-build-stage: intel
            latest-tag-behaviour: auto
            version-suffix: '-intel'
            suffix-onlatest: true
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          fetch-tags: true
          submodules: "recursive"

      - name: Extract metadata for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
          flavor: |
            latest=${{ matrix.latest-tag-behaviour }}
            suffix=${{ matrix.version-suffix }},onlatest=${{ matrix.suffix-onlatest }}
          tags: |
            type=edge
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - name: Login to the container registry
        uses: docker/login-action@v3
        with:
          registry: ${{ env.REGISTRY }}
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          target: ${{ matrix.final-build-stage }}
          push: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v') }}
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          cache-from: type=gha
          cache-to: type=gha,mode=max


================================================
FILE: .github/workflows/windows.yml
================================================
name: Windows

on:
  push:
    branches:
      - '**'
    tags:
      - '**'
#   schedule:
#       - cron: "0 4 * * *"

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
  cancel-in-progress: true

env:
  CMAKE_BUILD_PRESET: "windows-default"
  MMX_VERSION: ${{ github.ref_name }}
  MMX_WIN_PACK: "TRUE"
  
  MMX_TELEGRAM_TOKEN: ${{ secrets.MMX_TELEGRAM_TOKEN }} 
  MMX_TELEGRAM_TO_1: ${{ secrets.MMX_TELEGRAM_TO_1 }}
  MMX_TELEGRAM_TO_2: ${{ secrets.MMX_TELEGRAM_TO_2 }}
  DISCORD_WEBHOOK: ${{ secrets.MMX_DISCORD_WEBHOOK }}

jobs:
  msvc:
    runs-on: windows-2022
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          fetch-tags: true
          submodules: "recursive"

      - uses: Jimver/cuda-toolkit@v0.2.21
        id: cuda-toolkit
        with:
          cuda: '12.5.0'
          method: 'network'
          sub-packages: '["nvcc", "cudart"]'

      - run: |
          echo "Installed cuda version is: ${{steps.cuda-toolkit.outputs.cuda}}"
          echo "Cuda install location: ${{steps.cuda-toolkit.outputs.CUDA_PATH}}"
          nvcc -V
          
      - uses: lukka/get-cmake@latest
        with:
          cmakeVersion: "~3"

      - name: Restore artifacts, or setup vcpkg (do not install any package)
        uses: lukka/run-vcpkg@v11

      - name: Run CMake consuming CMakePreset.json and vcpkg.json by mean of vcpkg.
        uses: lukka/run-cmake@v10
        with:
          configurePreset: ${{ env.CMAKE_BUILD_PRESET }}
          buildPreset: ${{ env.CMAKE_BUILD_PRESET }}
   
      - name: Upload a Build Artifact
        uses: actions/upload-artifact@v4
        with:
          name: "build"
          include-hidden-files: true
          path: ./build/${{ env.CMAKE_BUILD_PRESET }}/!bin/Release/

      - name: Run CPack
        run: cpack -C Release --config build/${{ env.CMAKE_BUILD_PRESET }}/CPackConfig.cmake -B build/${{ env.CMAKE_BUILD_PRESET }}/!package

      - name: Zip files
        run: Get-ChildItem "./build/${{ env.CMAKE_BUILD_PRESET }}/!package" -Filter *.exe | Foreach-Object { 7z a ( (Convert-Path $_.PSParentPath) + "\"  + $_.BaseName + ".zip") $_.FullName }

      - name: Upload a Build Artifact
        uses: actions/upload-artifact@v4
        with:
          name: "package"
          path: ./build/${{ env.CMAKE_BUILD_PRESET }}/!package/*.exe

      - name: Upload a Build Artifact to release
        if: startsWith(github.ref, 'refs/tags/v')
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ./build/${{ env.CMAKE_BUILD_PRESET }}/!package/*.zip
          file_glob: true
          tag: ${{ github.ref }}
          overwrite: true
          
  notify:
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    needs: [msvc]
    steps:

      - name: Get the version
        id: get_version
        run: echo VERSION=$(echo $GITHUB_REF | cut -d / -f 3) >> $GITHUB_OUTPUT
        
      - name: Telegram notification
        if: ${{ env.MMX_TELEGRAM_TO_1 != '' }} && ${{ env.MMX_TELEGRAM_TOKEN != '' }}
        uses: appleboy/telegram-action@master
        with:
          to: ${{ env.MMX_TELEGRAM_TO_1 }}
          token: ${{ env.MMX_TELEGRAM_TOKEN }}
          format: html
          message: |
            MMX Node release ${{ steps.get_version.outputs.VERSION }}
            https://github.com/${{ github.repository }}/releases/${{ steps.get_version.outputs.VERSION }}
            
            <a href="https://t.me/mmx_node">Telegram channel</a>
            <a href="https://t.me/mmx_node_chat">Telegram chat</a>
            <a href="https://t.me/mmx_node_chat_ru">Telegram chat[RU]</a>
            <a href="https://discord.gg/tCwevssVmY">Discord</a>
            
      - name: Telegram notification
        if: ${{ env.MMX_TELEGRAM_TO_2 != '' }} && ${{ env.MMX_TELEGRAM_TOKEN != '' }}
        uses: appleboy/telegram-action@master
        with:
          to: ${{ env.MMX_TELEGRAM_TO_2 }}
          token: ${{ env.MMX_TELEGRAM_TOKEN }}
          format: html
          message: |
            MMX Node release ${{ steps.get_version.outputs.VERSION }}
            https://github.com/${{ github.repository }}/releases/${{ steps.get_version.outputs.VERSION }}
            
            <a href="https://t.me/mmx_node">Telegram channel</a>
            <a href="https://t.me/mmx_node_chat">Telegram chat</a>
            <a href="https://t.me/mmx_node_chat_ru">Telegram chat[RU]</a>
            <a href="https://discord.gg/tCwevssVmY">Discord</a>
            
      - name: Discord notification
        if: ${{ env.DISCORD_WEBHOOK != '' }}
        uses: Ilshidur/action-discord@master
        with:
          args: |
            MMX Node release ${{ steps.get_version.outputs.VERSION }}
            https://github.com/${{ github.repository }}/releases/${{ steps.get_version.outputs.VERSION }}


================================================
FILE: .gitignore
================================================
# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

*.bak
CMakeUserPresets.json

/build
/.settings
/.project
/.cproject
/.pydevproject
/config/local
/PASSWD
/NETWORK
/DB_VERSION
/testnet*
/mainnet*
/tmp
/coverage.info
/.idea
/_deps
/*.dat
/*.deb
/config/default/build.json
/test/vm/AFL/outputs/*
/docs/dist
/docs/.astro
/docs/node_modules
/.vscode


================================================
FILE: .gitmodules
================================================
[submodule "secp256k1"]
	path = lib/secp256k1
	url = https://github.com/bitcoin-core/secp256k1.git
[submodule "uint256_t"]
	path = uint256_t
	url = https://github.com/madMAx43v3r/uint256_t.git
[submodule "libbech32"]
	path = lib/libbech32
	url = https://github.com/dcdpr/libbech32.git
[submodule "vnx-addons"]
	path = vnx-addons
	url = https://github.com/madMAx43v3r/vnx-addons.git
[submodule "basic-opencl"]
	path = basic-opencl
	url = https://github.com/automyinc/basic-opencl.git
[submodule "vnx-base"]
	path = vnx-base
	url = https://github.com/madMAx43v3r/vnx-base.git
[submodule "lib/lexy"]
	path = lib/lexy
	url = https://github.com/foonathan/lexy.git


================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.13)
project(mmx-node C CXX ASM)

include(FetchContent)

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

set(CMAKE_CXX_STANDARD 17)

if(MSVC)
	include(GenerateExportHeader)
	include_directories(${CMAKE_CURRENT_BINARY_DIR})
	
	add_compile_definitions(TARGET_FILENAME=$(TargetName)$(TargetExt))
	add_compile_options(/openmp /EHsc /MP)

	set(MSVC_DEBUG_OPTIONS /Od /FS)
	set(MSVC_RELEASE_OPTIONS /W1 /O2)

	add_compile_options(
		"$<$<CONFIG:Debug>:${MSVC_DEBUG_OPTIONS}>"
		"$<$<CONFIG:RelWithDebInfo>:${MSVC_RELEASE_OPTIONS}>"
		"$<$<CONFIG:Release>:${MSVC_RELEASE_OPTIONS}>"
		"$<$<CONFIG:MinSizeRel>:${MSVC_RELEASE_OPTIONS}>"
	)

	set(MSVC_DEBUG_LINK_OPTIONS /NODEFAULTLIB:LIBCMT)
	set(MSVC_RELEASE_LINK_OPTIONS /NODEFAULTLIB:LIBCMT)

	add_link_options(
		"$<$<CONFIG:Debug>:${MSVC_DEBUG_LINK_OPTIONS}>"
		"$<$<CONFIG:RelWithDebInfo>:${MSVC_RELEASE_LINK_OPTIONS}>"
		"$<$<CONFIG:Release>:${MSVC_RELEASE_LINK_OPTIONS}>"
		"$<$<CONFIG:MinSizeRel>:${MSVC_RELEASE_LINK_OPTIONS}>"
	)
	
	find_library(secp256k1_LIBRARY secp256k1 HINTS ${secp256k1_LIBRARIES})
else()
	message(STATUS "CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")

	find_package(OpenMP REQUIRED)
	find_library(JEMALLOC_LIB NAMES jemalloc)
	
	add_compile_options(-Wall -Wno-unused-function -Wno-parentheses -Wno-unused-local-typedefs -Wno-unknown-pragmas)
	
	if(WITH_COVERAGE)
		message(STATUS "Enabling -O0 -coverage")
		add_compile_options(-O0 --coverage)
		add_link_options(-lgcov --coverage)
	endif()
	
	set_source_files_properties(src/vm/Compiler.cpp PROPERTIES COMPILE_FLAGS -Wno-unused-but-set-variable)

	find_library(secp256k1_LIBRARY NAMES secp256k1 PATHS "${CMAKE_CURRENT_SOURCE_DIR}/lib/secp256k1/.libs" NO_DEFAULT_PATH)
	
	if(ENABLE_MEM_SANITIZE)
		message(STATUS "Compiling with -fsanitize=address")
		add_compile_options(-fsanitize=address)
		set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
		set(DISABLE_OPENCL 1)
	elseif(ENABLE_THREAD_SANITIZE)
		message(STATUS "Compiling with -fsanitize=thread")
		add_compile_options(-fsanitize=thread)
		set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
		set(DISABLE_OPENCL 1)
	endif()
endif()

include(cmake/build_version_json.cmake)

add_library(secp256k1 INTERFACE IMPORTED)
set_target_properties(secp256k1 PROPERTIES INTERFACE_LINK_LIBRARIES ${secp256k1_LIBRARY})

get_filename_component(secp256k1_IMPORT_PREFIX "${secp256k1_LIBRARY}" PATH)
get_filename_component(secp256k1_IMPORT_PREFIX "${secp256k1_IMPORT_PREFIX}" PATH)

set_target_properties(secp256k1 PROPERTIES
		INTERFACE_INCLUDE_DIRECTORIES "${secp256k1_IMPORT_PREFIX}/include"
)

file(GLOB secp256k1_LIBRARY_FILES ${secp256k1_LIBRARY}*)

set(LIBBECH32_BUILD_TESTS OFF CACHE BOOL "LIBBECH32_BUILD_TESTS")
set(LIBBECH32_BUILD_EXAMPLES OFF CACHE BOOL "LIBBECH32_BUILD_EXAMPLES")
set(DIRENT_BUILD_TESTS OFF CACHE STRING "DIRENT_BUILD_TESTS")
set(VNX_BUILD_TOOLS ON CACHE STRING "VNX_BUILD_TOOLS")
set(MMX_BUILD_TOOLS ON CACHE STRING "MMX_BUILD_TOOLS")
set(MMX_BUILD_TESTS ON CACHE STRING "MMX_BUILD_TESTS")
set(NODE_INSTALL_PATH "." CACHE STRING "Where to install scripts")

add_subdirectory(vnx-base)
add_subdirectory(vnx-addons)
add_subdirectory(lib/libbech32)

find_package(Threads REQUIRED)
find_library(MINIUPNPC_LIB NAMES miniupnpc)

if(NOT DISABLE_OPENCL)
	find_package(OpenCL)
endif()
if(NOT DISABLE_CUDA)
	include(cmake/use_cuda.cmake)
endif()
if(NOT DISABLE_QT)
	find_package(Qt5 QUIET COMPONENTS Widgets WebEngine WebEngineWidgets)
endif()

file(GLOB GENERATED_SOURCE_FILES
	generated/src/*.cpp
	generated/vm/src/*.cpp
	generated/contract/src/*.cpp
	generated/operation/src/*.cpp
	generated/solution/src/*.cpp
)

add_library(mmx_iface SHARED
	${GENERATED_SOURCE_FILES}
	src/Block.cpp
	src/BlockHeader.cpp
	src/Transaction.cpp
	src/Operation.cpp
	src/Contract.cpp
	src/Solution.cpp
	src/ProofOfTime.cpp
	src/ProofOfSpace.cpp
	src/ProofOfSpaceOG.cpp
	src/ProofOfSpaceNFT.cpp
	src/ProofResponse.cpp
	src/secp256k1.cpp
	src/uint128.cpp
	src/fixed128.cpp
	src/hash_t.cpp
	src/hash_512_t.cpp
	src/addr_t.cpp
	src/pubkey_t.cpp
	src/signature_t.cpp
	src/exec_result_t.cpp
	src/exec_error_t.cpp
	src/vm/var_t.cpp
	src/vm/varptr_t.cpp
	src/contract/Data.cpp
	src/contract/WebData.cpp
	src/contract/PubKey.cpp
	src/contract/MultiSig.cpp
	src/contract/TokenBase.cpp
	src/contract/Binary.cpp
	src/contract/Executable.cpp
	src/contract/method_t.cpp
	src/solution/PubKey.cpp
	src/solution/MultiSig.cpp
	src/operation/Deposit.cpp
	src/operation/Execute.cpp
	src/sha256_avx2.cpp
	src/sha256_64_x8.cpp
	src/sha256_ni.cpp
	src/sha256_ni_rec.cpp
	src/sha256_arm.cpp
	src/sha256_arm_rec.cpp
	src/sha512.cpp
	src/hmac_sha512.cpp
	src/wordlist_en.cpp
	src/mnemonic.cpp
	src/offer_data_t.cpp
	src/account_info_t.cpp
	src/VDF_Point.cpp
	src/Partial.cpp
	src/ChainParams.cpp
	src/utils.cpp
	src/ValidatorVote.cpp
)

add_library(mmx_vm STATIC
	src/vm/Engine.cpp
	src/vm/Compiler.cpp
	src/vm/StorageProxy.cpp
	src/vm/StorageRAM.cpp
	src/vm/StorageCache.cpp
	src/vm/StorageDB.cpp
	src/vm/instr_t.cpp
	src/vm_interface.cpp
)

add_library(mmx_db STATIC
	src/DataBase.cpp
	src/table.cpp
)

add_library(mmx_pos STATIC
	src/pos/mem_hash.cpp
	src/pos/verify.cpp
	src/pos/encoding.cpp
	src/pos/Prover.cpp
)

add_library(mmx_pos_verify STATIC
	src/pos/verify_full.cpp
)

add_library(mmx_modules STATIC
	src/TimeLord.cpp
	src/Node.cpp
	src/Node_api.cpp
	src/Node_update.cpp
	src/Node_verify.cpp
	src/Node_validate.cpp
	src/Node_control.cpp
	src/Node_tests.cpp
	src/Wallet.cpp
	src/Farmer.cpp
	src/Harvester.cpp
	src/Router.cpp
	src/WebAPI.cpp
	src/OCL_VDF.cpp
	src/upnp_mapper.cpp
	src/http_request.cpp
	src/ProofServer.cpp
)

add_library(mmx_qtgui STATIC
	src/Qt_GUI.cpp
)

add_library(uint256_t STATIC
	uint256_t/uint128_t/uint128_t.cpp
	uint256_t/uint256_t.cpp
)

target_include_directories(mmx_vm
	PUBLIC lib/lexy/include
)

target_include_directories(mmx_pos
	PUBLIC include
)

target_include_directories(mmx_iface
	PUBLIC
		include
		generated/include
		generated/vm/include
		generated/contract/include
		generated/operation/include
		generated/solution/include
)

target_include_directories(mmx_qtgui
	PUBLIC include
)

target_include_directories(uint256_t
	PUBLIC uint256_t uint256_t/uint128_t
)

target_compile_definitions(uint256_t PUBLIC _UINT256_T_STATIC _UINT128_T_STATIC)

target_link_libraries(mmx_iface vnx_base vnx_addons uint256_t bech32 secp256k1)
target_link_libraries(mmx_db mmx_iface)
target_link_libraries(mmx_pos mmx_pos_verify mmx_iface)
target_link_libraries(mmx_pos_verify mmx_iface)
target_link_libraries(mmx_vm mmx_db mmx_iface)
target_link_libraries(mmx_modules mmx_pos mmx_vm mmx_db mmx_iface)
target_link_libraries(mmx_qtgui vnx_base)

if(MSVC)
	set_target_properties(vnx_base_static PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1)

	GENERATE_EXPORT_HEADER(mmx_iface)
	
	set_target_properties(mmx_iface PROPERTIES ENABLE_EXPORTS 1)
	set_target_properties(mmx_iface PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS 1)

	# Workaround for:
	#	LNK1189: library limit of 65535 objects exceeded
	set(MSVC_MMX_IFACE_DEBUG_OPTIONS /Ob1)
	target_compile_options(mmx_iface PRIVATE
		"$<$<CONFIG:Debug>:${MSVC_MMX_IFACE_DEBUG_OPTIONS}>"
	)

else()
	target_link_libraries(mmx_db OpenMP::OpenMP_CXX)
	target_link_libraries(mmx_modules OpenMP::OpenMP_CXX)
	
	if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
		message(STATUS "Enabling -mavx2 -msha")
		set_source_files_properties(src/sha256_ni.cpp PROPERTIES COMPILE_FLAGS "-msse4.2 -msha")
		set_source_files_properties(src/sha256_ni_rec.cpp PROPERTIES COMPILE_FLAGS "-msse4.2 -msha")
		set_source_files_properties(src/sha256_avx2.cpp PROPERTIES COMPILE_FLAGS "-mavx2")
	endif()

	if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "aarch64")
		message(STATUS "Enabling -march=armv8-a+crypto")
		set_source_files_properties(src/sha256_arm.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
		set_source_files_properties(src/sha256_arm_rec.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
	endif()
endif()

if(OpenCL_FOUND)
	message(STATUS "Found OpenCL")
	add_subdirectory(basic-opencl)
	target_compile_definitions(automy_basic_opencl
		PUBLIC CL_TARGET_OPENCL_VERSION=120
	)
	target_link_libraries(mmx_modules automy_basic_opencl)
	target_compile_definitions(mmx_modules PUBLIC WITH_OPENCL)
endif()

if(CUDA_FOUND)
	message(STATUS "Found CUDA")
	add_compile_definitions(WITH_CUDA)
	cuda_add_library(mmx_pos_cuda STATIC src/pos/cuda_recompute.cu)
	target_include_directories(mmx_pos_cuda PUBLIC include)
	target_link_libraries(mmx_pos mmx_pos_cuda)
	target_link_libraries(mmx_pos_cuda mmx_pos_verify mmx_iface)
	
	if(MSVC)
	    # Copy CUDA DLLs to the output folder
	    add_custom_command(TARGET mmx_modules
	        POST_BUILD
	        COMMAND ${CMAKE_COMMAND} -E copy_if_different
	        "${CUDA_TOOLKIT_ROOT_DIR}/bin/cudart64_12.dll"
	        $<TARGET_FILE_DIR:mmx_modules>
	    )
	endif()
endif()

if(JEMALLOC_LIB)
	message(STATUS "Found jemalloc")
	target_link_libraries(mmx_modules ${JEMALLOC_LIB})
	target_compile_definitions(mmx_modules PUBLIC WITH_JEMALLOC)
endif()

if(MINIUPNPC_LIB)
	message(STATUS "Found miniupnpc")
	target_link_libraries(mmx_modules ${MINIUPNPC_LIB})
	target_compile_definitions(mmx_modules PRIVATE WITH_MINIUPNPC)
endif()

if(Qt5_FOUND)
	message(STATUS "Found Qt5")
	add_compile_definitions(WITH_QT)
	target_link_libraries(mmx_qtgui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets)
endif()

add_executable(mmx src/mmx.cpp)
add_executable(mmx_node src/mmx_node.cpp)
add_executable(mmx_farmer src/mmx_farmer.cpp)
add_executable(mmx_wallet src/mmx_wallet.cpp)
add_executable(mmx_timelord src/mmx_timelord.cpp)
add_executable(mmx_harvester src/mmx_harvester.cpp)

target_link_libraries(mmx mmx_iface mmx_vm)
target_link_libraries(mmx_node mmx_modules mmx_qtgui)
target_link_libraries(mmx_farmer mmx_modules)
target_link_libraries(mmx_wallet mmx_modules mmx_qtgui)
target_link_libraries(mmx_timelord mmx_modules)
target_link_libraries(mmx_harvester mmx_modules)

install(TARGETS mmx_iface DESTINATION lib)

install(TARGETS mmx DESTINATION bin)
install(TARGETS mmx_node DESTINATION bin)
install(TARGETS mmx_farmer DESTINATION bin)
install(TARGETS mmx_wallet DESTINATION bin)
install(TARGETS mmx_timelord DESTINATION bin)
install(TARGETS mmx_harvester DESTINATION bin)

install(DIRECTORY
	config data kernel scripts
	DESTINATION ${NODE_INSTALL_PATH}
	PATTERN "config/local" EXCLUDE
)
install(DIRECTORY
	www/web-gui
	DESTINATION ${NODE_INSTALL_PATH}/www
	PATTERN "node_modules" EXCLUDE
)
install(FILES
	activate.sh run_node.sh run_farmer.sh run_wallet.sh run_wallet_gui.sh run_timelord.sh run_harvester.sh
	start_node.sh start_harvester.sh start_wallet.sh stop_node.sh stop_harvester.sh stop_wallet.sh
	PERMISSIONS OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
	DESTINATION ${NODE_INSTALL_PATH}
)
install(FILES
	cmake/debian/mmx_node.desktop cmake/debian/mmx_wallet.desktop
	PERMISSIONS OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
	DESTINATION share/applications
)

if(MMX_BUILD_TOOLS)
	add_subdirectory(tools)
endif()
if(MMX_BUILD_TESTS)
	add_subdirectory(test)
endif()

if(MSVC)
	include(cmake/win_pack.cmake)
endif()


================================================
FILE: CMakePresets.json
================================================
{
    "version": 4,
    "cmakeMinimumRequired": {
        "major": 3,
        "minor": 11,
        "patch": 0
    },
    "configurePresets": [

        {
            "name": "windows-base",
            "hidden": true,
            "description": "Sets Visual Studio generator, build directory",
            "generator": "Visual Studio 17 2022",
            "binaryDir": "${sourceDir}/build/${presetName}",
            "cacheVariables": {
                "CMAKE_TOOLCHAIN_FILE": {
                    "value": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
                    "type": "FILEPATH"
                },
                "VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/cmake/custom-triplets",
                "VCPKG_TARGET_TRIPLET": "x64-windows-mmx",

                "CMAKE_LIBRARY_OUTPUT_DIRECTORY": "${sourceDir}/build/${presetName}/!bin",
                "CMAKE_RUNTIME_OUTPUT_DIRECTORY": "${sourceDir}/build/${presetName}/!bin",

                "MMX_WIN_PACK": "$env{MMX_WIN_PACK}"
            }
        },

        {
            "name": "windows-default",
            "displayName": "Windows x64",
            "inherits": "windows-base",
            "cacheVariables": {
                "MMX_VERSION": "$env{MMX_VERSION}"
            },
            "warnings": {
                "dev": false
            }
        }

    ],

    "buildPresets": [
        {
            "name": "windows-default",
            "configurePreset": "windows-default",
            "configuration": "Release"
        }
    ]

}


================================================
FILE: Dockerfile
================================================
FROM nvidia/cuda:11.8.0-devel-ubuntu22.04 AS builder
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get -y upgrade \
		&& apt-get install -y \
			apt-utils \
			git \
			cmake \
			automake \
			libtool \
			build-essential \
			libminiupnpc-dev \
			libjemalloc-dev \
			zlib1g-dev \
			libzstd-dev \
			ocl-icd-opencl-dev \
			ccache \
			&& rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . .
RUN git submodule update --init --recursive
RUN --mount=type=cache,target=/root/.cache/ccache sh make_release.sh "-DCMAKE_CXX_COMPILER_LAUNCHER=ccache"

FROM ubuntu:22.04 AS base
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get -y upgrade \
		&& apt-get install -y \
			apt-utils \
			curl \
			libminiupnpc17 \
			libjemalloc2 \
			zlib1g \
			libzstd1 \
			libgomp1 \
			ocl-icd-libopencl1 \
			tzdata \
			&& rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY --from=builder /app/build/dist ./
COPY ["docker-entrypoint.sh", "./"]

ENV MMX_HOME="/data/"
VOLUME /data

# node p2p port
EXPOSE 11337/tcp
# http api port
EXPOSE 11380/tcp

ENTRYPOINT ["./docker-entrypoint.sh"]
CMD ["./run_node.sh"]

FROM base AS amd
ARG AMD_DRIVER=amdgpu-install_5.4.50400-1_all.deb
ARG AMD_DRIVER_URL=https://repo.radeon.com/amdgpu-install/5.4/ubuntu/jammy
RUN mkdir -p /tmp/opencl-driver-amd \
    && cd /tmp/opencl-driver-amd \
    && curl --referer $AMD_DRIVER_URL -O $AMD_DRIVER_URL/$AMD_DRIVER \
	&& dpkg -i $AMD_DRIVER \
	&& rm -rf /tmp/opencl-driver-amd
RUN apt-get update && apt-get -y upgrade \
		&& apt-get install -y \
			rocm-opencl \
			&& rm -rf /var/lib/apt/lists/*

FROM base AS nvidia
RUN mkdir -p /etc/OpenCL/vendors \
    && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility

FROM base AS intel
RUN apt-get update && apt-get install --no-install-recommends -y intel-opencl-icd \
	&& rm -rf /var/lib/apt/lists/*


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# mmx-node

_“ MMX &ndash; fast, low cost, feature rich, decentralized &ndash; with tokenomics of an actual currency ”_

A blockchain written from scratch, doing most things differently.

Website: https://mmx.network \
Whitepaper: [MMX_Whitepaper_290125.pdf](https://docs.mmx.network/MMX_Whitepaper_290125.pdf)

Design
- Variable token supply governed by consensus (1 block = 1 vote)
- High throughput L1 with consistent block interval (500 TPS, 10 sec)
- Novel Smart Contract VM for ease of development and high performance
- Energy efficient Proof of Space and Time
- Block reward is adjusted to stabilize price, a key property of any currency
- Minimum transaction fee to allow large block size without spam
- Limited external library usage to keep codebase clean and secure
- No pre-mine, no ICO, no investors
- Account based model

Elements
- High performance C++ code (can handle over 1000 TPS easily)
  - Transactions are executed in parallel when possible
- Custom high-level VM for Smart Contracts
  - Native support for variants, arrays, maps, and objects
  - Unified memory with automatic persistence and state updates
  - A restricted subset of JavaScript is compiled into bytecode
  - Average of two machine instructions per line of code
- Native token support (no "approvals" needed, NFT = 1 mojo)
- Smart contract offer based trading (fixed price, OTC)
- Liquidity pool swap based trading (AMM, multi-fee tiers, similar to Uniswap v3)
- ECDSA signatures for seamless integration (same as Bitcoin)
- Custom blockchain database engine (much faster than RocksDB or LevelDB overall)
- Adaptive SHA256 VDF to govern block interval
- Feature rich Node with built-in Block Explorer, Wallet, Market, Swap, RPC, etc

Roadmap

| Release | Date | Description |
| :--- | :--- | :--- |
| testnet7 | Sep 2022 | Finished. <sup>[1]</sup> |
| testnet8 | Oct 2022 | Finished. Incentivized testnet, height 25k-425k. <sup>[2]</sup> |
| testnet9 | Dec 2022 | Finished. Incentivized testnet, height 25k-1220k. <sup>[2]</sup> |
| testnet10 | Apr 2023 | Finished. Incentivized testnet, height 40k-3200k. <sup>[2]</sup> |
| testnet11 | May 2024 | Finished. New plot format, compression resistant. |
| testnet12 | June 2024 | Finished. Incentivized testnet, height 25k-1720k. <sup>[2]</sup> |
| mainnet-rc | Jan 2025 | Finished. Incentivized testnet, height 10k-110k. <sup>[2]</sup> |
| mainnet | 17th Jan 2025 | Live |

_<sup>[1]</sup> Coins farmed on testnets are not worth anything, now or later._\
_<sup>[2]</sup> A fixed reward of 0.5 MMX per block win on incentivized testnets will be given on mainnet genesis._

See `#mmx-news` and `#mmx-general` on Discord: https://discord.gg/BswFhNkMzY

## Installation / Setup / Usage

See documentation: https://docs.mmx.network/

- [Installation](https://docs.mmx.network/guides/installation/)
- [Getting Started](https://docs.mmx.network/guides/getting-started/)
- [CLI Commands](https://docs.mmx.network/software/cli-commands/)
- [Plotting Guide](https://docs.mmx.network/guides/mmx-plotter/)

## WebGUI

To access WebGUI, go to: http://localhost:11380/gui/

It's only available on localhost by default. \
The login password is auto-generated at first launch, located in `mmx-node/PASSWD` file (`$MMX_HOME/PASSWD`).

## Release Notes

### Mainnet

- Transactions are no longer limited to odd or even blocks
- Validators are now previous block winners, starting at 24 blocks prior
- Increased validator count to 33
- Committing blocks is paused when proofs found is less than 80% expected
- VDF checks during sync are obsolete
- Added maximum proof limit of 20 per block
- Faster difficulty adjustment
- Changed VDF reward payout interval to 20 blocks (with each being 0.2 MMX)
- Changed VDF block infusion delay to 1
- Added remote call recursion limit of 3
- Added maximum contract dependencies of 5

### Mainnet-RC

- New VDF scheme:
  - Single VDF stream with infused Timelord reward
  - No longer possible to steal or disable Timelord reward
  - Proof challenges are now deterministic, apart from random infusions every 256 blocks on average
  - If a proof's hash passes a filter, it will change future challenges and update difficutly
  - Timelord rewards are now paid out every 50 blocks in bulk to fastest TL
  - There are no more dummy blocks (blocks without proof)
- VDF segment count is now dynamic, depending on TL speed:
  - This means VDF verify time wont increase unless the GPU is at it's compute limit
  - Previously VDF verify time would increase even if the GPU is not maxed out, due to fixed parallel work
  - CPU verify is unchanged
- All proofs found are now included in blocks
  - Yields accurate netspace estimation
  - Supports extra security (see below)
- Recent blocks are further secured via a new voting scheme:
  - Up to 31 farmers who found a lesser proof (didn't make a block) recently can act as a validator
  - These validators vote on the first block received per height
  - Only blocks made with the best known proof are voted for
  - This prevents reverting recent blocks via double signing in most cases
  - Previously it was always possible to replace the current peak via double signing, this is now impossible
  - Previously if a farmer got lucky to find multiple blocks in a row:
    - He could also replace them at will until another farmer found the next block
    - This is now also impossible, unless the farmer has close to 50% or more netspace
- 50% TX fee burn (to avoid farmer spam attack + allow supply contraction)
  - Project fee is taken from burned amount
- Virtual Plots have been removed due to an attack vector
  - Together with the un-bounded block reward voting it was possible to generate a heavier chain with minimal real netspace
- Improved block reward voting: Majority vote out of 8640 blocks wins, 1% change up/down per day, >50% participation required.
- Offer contract now supports price update (at most every 1080 blocks)
- Pooling support + Reference Pool implementation
- Improved difficulty adjustment algorithm (targets 4 proofs per block)
- VM improvements to reduce transaction costs
- Send amount can now be up to 128-bit (was limited to 64-bit before)
- Mint amount can now be up to 80-bit (was limited to 64-bit before)
- Added block timestamps
- Smart Contract unit test framework

### Testnet12

- Fixed Virtual Plots, they now win blocks at the expected rate. On TN11 it was ~20 times less.
- Fixed block reward formula, average tx fee is subtracted from minimum reward again.

### Testnet11

- New plot format:
  - k29 to k32 max
  - 9 tables
  - very low compression only
  - CPU farming only
  - SSD and HDD plot types
  - Old format no longer valid
- Transaction output memo support
- Block reward voting support
- Swap algorithm improved
- Swap fee levels changed to: 0.05%, 0.25%, 1% and 5%
- Using zstd compression for network traffic
- NFT plot support (testing only)



================================================
FILE: activate.sh
================================================
#!/bin/bash

set -e

export PATH=$PATH:$PWD/bin:$PWD/build:$PWD/build/tools:$PWD/build/vnx-base/tools:/usr/share/mmx-node/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib:$PWD/lib64:$PWD/build:$PWD/build/vnx-base:$PWD/build/vnx-addons:$PWD/build/basic-opencl

if [[ -z "${MMX_HOME}" ]]; then
	export MMX_HOME="$PWD/"
else
	mkdir -p ${MMX_HOME}
	echo MMX_HOME=${MMX_HOME}
fi

mkdir -p ${MMX_HOME}config/local
if cp --update=none /dev/null /dev/null 2> /dev/null; then
	cp -rv --update=none config/local_init/. ${MMX_HOME}config/local
else
	cp -rnv config/local_init/. ${MMX_HOME}config/local
fi

PASSWD_PATH="${MMX_HOME}config/local/passwd"
if [ ! -f "${PASSWD_PATH}" ] || [[ $(cat "${PASSWD_PATH}" | wc -c) -lt 64 ]]; then
	generate_passwd > "${PASSWD_PATH}"
	vnxpasswd -c config/default/ "${MMX_HOME}config/local/" -u mmx-admin -p $(cat "${PASSWD_PATH}")
	echo "PASSWD=$(cat "${PASSWD_PATH}")"
fi

chmod 600 "${PASSWD_PATH}"
cp "${PASSWD_PATH}" "${MMX_HOME}PASSWD"

if [ -f "${MMX_HOME}NETWORK" ]; then
	NETWORK=$(cat "${MMX_HOME}NETWORK")
else
	NETWORK=mainnet
	echo ${NETWORK} > "${MMX_HOME}NETWORK"
fi

if [ -f "${MMX_HOME}config/local/MMX_DATA" ]; then
	MMX_DATA=$(cat "${MMX_HOME}config/local/MMX_DATA")
fi
if [[ -z "${MMX_DATA}" ]]; then
	MMX_DATA=${MMX_HOME}
fi

echo NETWORK=${NETWORK}

if [ "${MMX_DATA}" != "${MMX_HOME}" ]; then
	echo MMX_DATA=${MMX_DATA}
fi

export MMX_NETWORK=${MMX_DATA}${NETWORK}/

set +e


================================================
FILE: clean_all.sh
================================================
#!/bin/bash

rm -rf build
rm -rf lib/.cache



================================================
FILE: cmake/build_version_json.cmake
================================================

find_package(Git)

execute_process(
  COMMAND ${GIT_EXECUTABLE} describe --tags --match "v[0-9]*.[0-9]*.[0-9]*"
  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  OUTPUT_VARIABLE GIT_BUILD_VERSION
  OUTPUT_STRIP_TRAILING_WHITESPACE
)

execute_process(
  COMMAND ${GIT_EXECUTABLE} log -1 --format=%H
  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  OUTPUT_VARIABLE GIT_BUILD_COMMIT
  OUTPUT_STRIP_TRAILING_WHITESPACE
)

string(LENGTH "${GIT_BUILD_VERSION}" GIT_BUILD_VERSION_LEN)
if(NOT GIT_BUILD_VERSION MATCHES "^v[0-9]+\\.[0-9]+\\.[0-9]+$|^v[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-g[0-9a-f]+$" OR GIT_BUILD_VERSION_LEN GREATER 80)
  string(TIMESTAMP GIT_BUILD_TIMESTAMP "%Y%m%d")
  set(GIT_BUILD_VERSION "v0.0.0.${GIT_BUILD_TIMESTAMP}")
endif()

string(LENGTH "${GIT_BUILD_COMMIT}" GIT_BUILD_COMMIT_LEN)
if(NOT GIT_BUILD_COMMIT MATCHES "^[0-9a-f]+$" OR NOT GIT_BUILD_COMMIT_LEN EQUAL 40)
  set(GIT_BUILD_COMMIT "0000000000000000000000000000000000000000")
endif()

message(STATUS "GIT_BUILD_VERSION=${GIT_BUILD_VERSION}")
message(STATUS "GIT_BUILD_COMMIT=${GIT_BUILD_COMMIT}")

file(WRITE config/default/build.json "{\n\t\"version\": \"${GIT_BUILD_VERSION}\",\n\t\"commit\": \"${GIT_BUILD_COMMIT}\"\n}\n")


================================================
FILE: cmake/custom-triplets/x64-windows-mmx.cmake
================================================
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)

if(PORT MATCHES "secp256k1")
    set(VCPKG_LIBRARY_LINKAGE static)
endif()

================================================
FILE: cmake/debian/generic/control
================================================
Package: mmx-node
Section: base
Priority: optional
Depends: curl, screen, zenity, libminiupnpc-dev, libjemalloc-dev, libzstd-dev, zlib1g-dev, ocl-icd-opencl-dev, qtwebengine5-dev
Maintainer: Max Wittal <max.wittal@mwittal.de>
Description: MMX Node
Homepage: https://mmx.network


================================================
FILE: cmake/debian/mmx_node.desktop
================================================
[Desktop Entry]
Type=Application
Name=MMX Node
Exec=sh -c "MMX_HOME=~/.mmx/ /usr/share/mmx-node/run_node.sh --gui"
Path=/usr/share/mmx-node
Icon=/usr/share/mmx-node/www/web-gui/public/assets/img/logo_circle_color_cy256.png
Terminal=false
Categories=Utility;Application;

================================================
FILE: cmake/debian/mmx_wallet.desktop
================================================
[Desktop Entry]
Type=Application
Name=MMX Wallet
Exec=sh -c "MMX_HOME=~/.mmx/ /usr/share/mmx-node/run_wallet_gui.sh"
Path=/usr/share/mmx-node
Icon=/usr/share/mmx-node/www/web-gui/public/assets/img/logo_circle_color_cy256.png
Terminal=false
Categories=Utility;Application;

================================================
FILE: cmake/debian/ubuntu-20.04/control
================================================
Package: mmx-node
Section: base
Priority: optional
Depends: curl, screen, zenity, libminiupnpc17, libjemalloc2, libzstd1, zlib1g, ocl-icd-libopencl1, libgomp1, qtwebengine5-dev
Maintainer: Max Wittal <max.wittal@mwittal.de>
Description: MMX Node
Homepage: https://mmx.network


================================================
FILE: cmake/debian/ubuntu-22.04/control
================================================
Package: mmx-node
Section: base
Priority: optional
Depends: curl, screen, zenity, libminiupnpc17, libjemalloc2, libzstd1, zlib1g, ocl-icd-libopencl1, libgomp1, qtwebengine5-dev
Maintainer: Max Wittal <max.wittal@mwittal.de>
Description: MMX Node
Homepage: https://mmx.network


================================================
FILE: cmake/debian/ubuntu-24.04/control
================================================
Package: mmx-node
Section: base
Priority: optional
Depends: curl, screen, zenity, libminiupnpc17, libjemalloc2, libzstd1, zlib1g, ocl-icd-libopencl1, libgomp1, qtwebengine5-dev
Maintainer: Max Wittal <max.wittal@mwittal.de>
Description: MMX Node
Homepage: https://mmx.network


================================================
FILE: cmake/nsis/NSIS.template.in
================================================
; CPack install script designed for a nmake build

;--------------------------------
; You must define these values

  !define VERSION "@CPACK_PACKAGE_VERSION@"
  !define PATCH  "@CPACK_PACKAGE_VERSION_PATCH@"
  !define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@"

;--------------------------------
;Variables

  Var MUI_TEMP
  Var STARTMENU_FOLDER
  Var SV_ALLUSERS
  Var START_MENU
  Var DO_NOT_ADD_TO_PATH
  Var ADD_TO_PATH_ALL_USERS
  Var ADD_TO_PATH_CURRENT_USER
  Var INSTALL_DESKTOP
  Var IS_DEFAULT_INSTALLDIR

  Var mmxDataDir
  Var mmxDataDir_default
;--------------------------------
;Include Modern UI

  !include "MUI.nsh"

  ;Default installation folder
  InstallDir "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"

;--------------------------------
;General

  ;Name and file
  Name "@CPACK_NSIS_PACKAGE_NAME@"
  OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"

  ;Set compression
  SetCompressor @CPACK_NSIS_COMPRESSOR@

  ;Require administrator access
  RequestExecutionLevel admin

@CPACK_NSIS_DEFINES@
@CPACK_NSIS_MANIFEST_DPI_AWARE_CODE@
@CPACK_NSIS_BRANDING_TEXT_CODE@

  !include Sections.nsh

;--- Component support macros: ---
; The code for the add/remove functionality is from:
;   https://nsis.sourceforge.io/Add/Remove_Functionality
; It has been modified slightly and extended to provide
; inter-component dependencies.
Var AR_SecFlags
Var AR_RegFlags
@CPACK_NSIS_SECTION_SELECTED_VARS@

; Loads the "selected" flag for the section named SecName into the
; variable VarName.
!macro LoadSectionSelectedIntoVar SecName VarName
 SectionGetFlags ${${SecName}} $${VarName}
 IntOp $${VarName} $${VarName} & ${SF_SELECTED}  ;Turn off all other bits
!macroend

; Loads the value of a variable... can we get around this?
!macro LoadVar VarName
  IntOp $R0 0 + $${VarName}
!macroend

; Sets the value of a variable
!macro StoreVar VarName IntValue
  IntOp $${VarName} 0 + ${IntValue}
!macroend

!macro InitSection SecName
  ;  This macro reads component installed flag from the registry and
  ;changes checked state of the section on the components page.
  ;Input: section index constant name specified in Section command.

  ClearErrors
  ;Reading component status from registry
  ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" "Installed"
  IfErrors "default_${SecName}"
    ;Status will stay default if registry value not found
    ;(component was never installed)
  IntOp $AR_RegFlags $AR_RegFlags & ${SF_SELECTED} ;Turn off all other bits
  SectionGetFlags ${${SecName}} $AR_SecFlags  ;Reading default section flags
  IntOp $AR_SecFlags $AR_SecFlags & 0xFFFE  ;Turn lowest (enabled) bit off
  IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags      ;Change lowest bit

  ; Note whether this component was installed before
  !insertmacro StoreVar ${SecName}_was_installed $AR_RegFlags
  IntOp $R0 $AR_RegFlags & $AR_RegFlags

  ;Writing modified flags
  SectionSetFlags ${${SecName}} $AR_SecFlags

 "default_${SecName}:"
 !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
!macroend

!macro FinishSection SecName
  ;  This macro reads section flag set by user and removes the section
  ;if it is not selected.
  ;Then it writes component installed flag to registry
  ;Input: section index constant name specified in Section command.

  SectionGetFlags ${${SecName}} $AR_SecFlags  ;Reading section flags
  ;Checking lowest bit:
  IntOp $AR_SecFlags $AR_SecFlags & ${SF_SELECTED}
  IntCmp $AR_SecFlags 1 "leave_${SecName}"
    ;Section is not selected:
    ;Calling Section uninstall macro and writing zero installed flag
    !insertmacro "Remove_${${SecName}}"
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
  "Installed" 0
    Goto "exit_${SecName}"

 "leave_${SecName}:"
    ;Section is selected:
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
  "Installed" 1

 "exit_${SecName}:"
!macroend

!macro RemoveSection_CPack SecName
  ;  This macro is used to call section's Remove_... macro
  ;from the uninstaller.
  ;Input: section index constant name specified in Section command.

  !insertmacro "Remove_${${SecName}}"
!macroend

; Determine whether the selection of SecName changed
!macro MaybeSelectionChanged SecName
  !insertmacro LoadVar ${SecName}_selected
  SectionGetFlags ${${SecName}} $R1
  IntOp $R1 $R1 & ${SF_SELECTED} ;Turn off all other bits

  ; See if the status has changed:
  IntCmp $R0 $R1 "${SecName}_unchanged"
  !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected

  IntCmp $R1 ${SF_SELECTED} "${SecName}_was_selected"
  !insertmacro "Deselect_required_by_${SecName}"
  goto "${SecName}_unchanged"

  "${SecName}_was_selected:"
  !insertmacro "Select_${SecName}_depends"

  "${SecName}_unchanged:"
!macroend
;--- End of Add/Remove macros ---

;--------------------------------
;Interface Settings

  !define MUI_HEADERIMAGE
  !define MUI_ABORTWARNING

;----------------------------------------
; based upon a script of "Written by KiCHiK 2003-01-18 05:57:02"
;----------------------------------------
!verbose 3
!include "WinMessages.NSH"
!verbose 4
;====================================================
; get_NT_environment
;     Returns: the selected environment
;     Output : head of the stack
;====================================================
!macro select_NT_profile UN
Function ${UN}select_NT_profile
   StrCmp $ADD_TO_PATH_ALL_USERS "1" 0 environment_single
      DetailPrint "Selected environment for all users"
      Push "all"
      Return
   environment_single:
      DetailPrint "Selected environment for current user only."
      Push "current"
      Return
FunctionEnd
!macroend
!insertmacro select_NT_profile ""
!insertmacro select_NT_profile "un."
;----------------------------------------------------
!define NT_current_env 'HKCU "Environment"'
!define NT_all_env     'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'

!ifndef WriteEnvStr_RegKey
  !ifdef ALL_USERS
    !define WriteEnvStr_RegKey \
       'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
  !else
    !define WriteEnvStr_RegKey 'HKCU "Environment"'
  !endif
!endif

; AddToPath - Adds the given dir to the search path.
;        Input - head of the stack
;        Note - Win9x systems requires reboot

Function AddToPath
  Exch $0
  Push $1
  Push $2
  Push $3

  # don't add if the path doesn't exist
  IfFileExists "$0\*.*" "" AddToPath_done

  ReadEnvStr $1 PATH
  ; if the path is too long for a NSIS variable NSIS will return a 0
  ; length string.  If we find that, then warn and skip any path
  ; modification as it will trash the existing path.
  StrLen $2 $1
  IntCmp $2 0 CheckPathLength_ShowPathWarning CheckPathLength_Done CheckPathLength_Done
    CheckPathLength_ShowPathWarning:
    Messagebox MB_OK|MB_ICONEXCLAMATION "Warning! PATH too long installer unable to modify PATH!"
    Goto AddToPath_done
  CheckPathLength_Done:
  Push "$1;"
  Push "$0;"
  Call StrStr
  Pop $2
  StrCmp $2 "" "" AddToPath_done
  Push "$1;"
  Push "$0\;"
  Call StrStr
  Pop $2
  StrCmp $2 "" "" AddToPath_done
  GetFullPathName /SHORT $3 $0
  Push "$1;"
  Push "$3;"
  Call StrStr
  Pop $2
  StrCmp $2 "" "" AddToPath_done
  Push "$1;"
  Push "$3\;"
  Call StrStr
  Pop $2
  StrCmp $2 "" "" AddToPath_done

  Call IsNT
  Pop $1
  StrCmp $1 1 AddToPath_NT
    ; Not on NT
    StrCpy $1 $WINDIR 2
    FileOpen $1 "$1\autoexec.bat" a
    FileSeek $1 -1 END
    FileReadByte $1 $2
    IntCmp $2 26 0 +2 +2 # DOS EOF
      FileSeek $1 -1 END # write over EOF
    FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
    FileClose $1
    SetRebootFlag true
    Goto AddToPath_done

  AddToPath_NT:
    StrCmp $ADD_TO_PATH_ALL_USERS "1" ReadAllKey
      ReadRegStr $1 ${NT_current_env} "PATH"
      Goto DoTrim
    ReadAllKey:
      ReadRegStr $1 ${NT_all_env} "PATH"
    DoTrim:
    StrCmp $1 "" AddToPath_NTdoIt
      Push $1
      Call Trim
      Pop $1
      StrCpy $0 "$1;$0"
    AddToPath_NTdoIt:
      StrCmp $ADD_TO_PATH_ALL_USERS "1" WriteAllKey
        WriteRegExpandStr ${NT_current_env} "PATH" $0
        Goto DoSend
      WriteAllKey:
        WriteRegExpandStr ${NT_all_env} "PATH" $0
      DoSend:
      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000

  AddToPath_done:
    Pop $3
    Pop $2
    Pop $1
    Pop $0
FunctionEnd


; RemoveFromPath - Remove a given dir from the path
;     Input: head of the stack

Function un.RemoveFromPath
  Exch $0
  Push $1
  Push $2
  Push $3
  Push $4
  Push $5
  Push $6

  IntFmt $6 "%c" 26 # DOS EOF

  Call un.IsNT
  Pop $1
  StrCmp $1 1 unRemoveFromPath_NT
    ; Not on NT
    StrCpy $1 $WINDIR 2
    FileOpen $1 "$1\autoexec.bat" r
    GetTempFileName $4
    FileOpen $2 $4 w
    GetFullPathName /SHORT $0 $0
    StrCpy $0 "SET PATH=%PATH%;$0"
    Goto unRemoveFromPath_dosLoop

    unRemoveFromPath_dosLoop:
      FileRead $1 $3
      StrCpy $5 $3 1 -1 # read last char
      StrCmp $5 $6 0 +2 # if DOS EOF
        StrCpy $3 $3 -1 # remove DOS EOF so we can compare
      StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
      StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
      StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
      StrCmp $3 "" unRemoveFromPath_dosLoopEnd
      FileWrite $2 $3
      Goto unRemoveFromPath_dosLoop
      unRemoveFromPath_dosLoopRemoveLine:
        SetRebootFlag true
        Goto unRemoveFromPath_dosLoop

    unRemoveFromPath_dosLoopEnd:
      FileClose $2
      FileClose $1
      StrCpy $1 $WINDIR 2
      Delete "$1\autoexec.bat"
      CopyFiles /SILENT $4 "$1\autoexec.bat"
      Delete $4
      Goto unRemoveFromPath_done

  unRemoveFromPath_NT:
    StrCmp $ADD_TO_PATH_ALL_USERS "1" unReadAllKey
      ReadRegStr $1 ${NT_current_env} "PATH"
      Goto unDoTrim
    unReadAllKey:
      ReadRegStr $1 ${NT_all_env} "PATH"
    unDoTrim:
    StrCpy $5 $1 1 -1 # copy last char
    StrCmp $5 ";" +2 # if last char != ;
      StrCpy $1 "$1;" # append ;
    Push $1
    Push "$0;"
    Call un.StrStr ; Find `$0;` in $1
    Pop $2 ; pos of our dir
    StrCmp $2 "" unRemoveFromPath_done
      ; else, it is in path
      # $0 - path to add
      # $1 - path var
      StrLen $3 "$0;"
      StrLen $4 $2
      StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
      StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
      StrCpy $3 $5$6

      StrCpy $5 $3 1 -1 # copy last char
      StrCmp $5 ";" 0 +2 # if last char == ;
        StrCpy $3 $3 -1 # remove last char

      StrCmp $ADD_TO_PATH_ALL_USERS "1" unWriteAllKey
        WriteRegExpandStr ${NT_current_env} "PATH" $3
        Goto unDoSend
      unWriteAllKey:
        WriteRegExpandStr ${NT_all_env} "PATH" $3
      unDoSend:
      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000

  unRemoveFromPath_done:
    Pop $6
    Pop $5
    Pop $4
    Pop $3
    Pop $2
    Pop $1
    Pop $0
FunctionEnd

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Uninstall stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

###########################################
#            Utility Functions            #
###########################################

;====================================================
; IsNT - Returns 1 if the current system is NT, 0
;        otherwise.
;     Output: head of the stack
;====================================================
; IsNT
; no input
; output, top of the stack = 1 if NT or 0 if not
;
; Usage:
;   Call IsNT
;   Pop $R0
;  ($R0 at this point is 1 or 0)

!macro IsNT un
Function ${un}IsNT
  Push $0
  ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
  StrCmp $0 "" 0 IsNT_yes
  ; we are not NT.
  Pop $0
  Push 0
  Return

  IsNT_yes:
    ; NT!!!
    Pop $0
    Push 1
FunctionEnd
!macroend
!insertmacro IsNT ""
!insertmacro IsNT "un."

; StrStr
; input, top of stack = string to search for
;        top of stack-1 = string to search in
; output, top of stack (replaces with the portion of the string remaining)
; modifies no other variables.
;
; Usage:
;   Push "this is a long ass string"
;   Push "ass"
;   Call StrStr
;   Pop $R0
;  ($R0 at this point is "ass string")

!macro StrStr un
Function ${un}StrStr
Exch $R1 ; st=haystack,old$R1, $R1=needle
  Exch    ; st=old$R1,haystack
  Exch $R2 ; st=old$R1,old$R2, $R2=haystack
  Push $R3
  Push $R4
  Push $R5
  StrLen $R3 $R1
  StrCpy $R4 0
  ; $R1=needle
  ; $R2=haystack
  ; $R3=len(needle)
  ; $R4=cnt
  ; $R5=tmp
  loop:
    StrCpy $R5 $R2 $R3 $R4
    StrCmp $R5 $R1 done
    StrCmp $R5 "" done
    IntOp $R4 $R4 + 1
    Goto loop
done:
  StrCpy $R1 $R2 "" $R4
  Pop $R5
  Pop $R4
  Pop $R3
  Pop $R2
  Exch $R1
FunctionEnd
!macroend
!insertmacro StrStr ""
!insertmacro StrStr "un."

Function Trim ; Added by Pelaca
	Exch $R1
	Push $R2
Loop:
	StrCpy $R2 "$R1" 1 -1
	StrCmp "$R2" " " RTrim
	StrCmp "$R2" "$\n" RTrim
	StrCmp "$R2" "$\r" RTrim
	StrCmp "$R2" ";" RTrim
	GoTo Done
RTrim:
	StrCpy $R1 "$R1" -1
	Goto Loop
Done:
	Pop $R2
	Exch $R1
FunctionEnd

Function ConditionalAddToRegistry
  Pop $0
  Pop $1
  StrCmp "$0" "" ConditionalAddToRegistry_EmptyString
    WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \
    "$1" "$0"
    ;MessageBox MB_OK "Set Registry: '$1' to '$0'"
    DetailPrint "Set install registry entry: '$1' to '$0'"
  ConditionalAddToRegistry_EmptyString:
FunctionEnd

;--------------------------------

!ifdef CPACK_USES_DOWNLOAD
Function DownloadFile
    IfFileExists $INSTDIR\* +2
    CreateDirectory $INSTDIR
    Pop $0

    ; Skip if already downloaded
    IfFileExists $INSTDIR\$0 0 +2
    Return

    StrCpy $1 "@CPACK_DOWNLOAD_SITE@"

  try_again:
    NSISdl::download "$1/$0" "$INSTDIR\$0"

    Pop $1
    StrCmp $1 "success" success
    StrCmp $1 "Cancelled" cancel
    MessageBox MB_OK "Download failed: $1"
  cancel:
    Return
  success:
FunctionEnd
!endif

;--------------------------------
; Define some macro setting for the gui
@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@
@CPACK_NSIS_INSTALLER_ICON_CODE@
@CPACK_NSIS_INSTALLER_MUI_WELCOMEFINISH_CODE@
@CPACK_NSIS_INSTALLER_MUI_UNWELCOMEFINISH_CODE@
@CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@

;--------------------------------
;Pages
  @CPACK_NSIS_INSTALLER_WELCOME_TITLE_CODE@
  @CPACK_NSIS_INSTALLER_WELCOME_TITLE_3LINES_CODE@
  !insertmacro MUI_PAGE_WELCOME

  @CPACK_NSIS_LICENSE_PAGE@
  Page custom InstallOptionsPage
  !insertmacro MUI_PAGE_DIRECTORY

  !define MUI_DIRECTORYPAGE_VARIABLE $mmxDataDir
  !define MUI_DIRECTORYPAGE_TEXT_TOP "Setup will install $(^NameDA) blockchain data (MMX_DATA) in the following folder. To install in a different folder, click Browse and select another folder. $_CLICK"
  !define MUI_DIRECTORYPAGE_TEXT_DESTINATION "Data folder"
  !insertmacro MUI_PAGE_DIRECTORY

  ;Start Menu Folder Page Configuration
  !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
  !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
  !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
  !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER

  @CPACK_NSIS_PAGE_COMPONENTS@

  !insertmacro MUI_PAGE_INSTFILES
  @CPACK_NSIS_INSTALLER_FINISH_TITLE_CODE@
  @CPACK_NSIS_INSTALLER_FINISH_TITLE_3LINES_CODE@
  !insertmacro MUI_PAGE_FINISH

  !insertmacro MUI_UNPAGE_CONFIRM
  !insertmacro MUI_UNPAGE_INSTFILES

;--------------------------------
;Languages

  !insertmacro MUI_LANGUAGE "English" ;first language is the default language
  !insertmacro MUI_LANGUAGE "Afrikaans"
  !insertmacro MUI_LANGUAGE "Albanian"
  !insertmacro MUI_LANGUAGE "Arabic"
  !insertmacro MUI_LANGUAGE "Asturian"
  !insertmacro MUI_LANGUAGE "Basque"
  !insertmacro MUI_LANGUAGE "Belarusian"
  !insertmacro MUI_LANGUAGE "Bosnian"
  !insertmacro MUI_LANGUAGE "Breton"
  !insertmacro MUI_LANGUAGE "Bulgarian"
  !insertmacro MUI_LANGUAGE "Catalan"
  !insertmacro MUI_LANGUAGE "Corsican"
  !insertmacro MUI_LANGUAGE "Croatian"
  !insertmacro MUI_LANGUAGE "Czech"
  !insertmacro MUI_LANGUAGE "Danish"
  !insertmacro MUI_LANGUAGE "Dutch"
  !insertmacro MUI_LANGUAGE "Esperanto"
  !insertmacro MUI_LANGUAGE "Estonian"
  !insertmacro MUI_LANGUAGE "Farsi"
  !insertmacro MUI_LANGUAGE "Finnish"
  !insertmacro MUI_LANGUAGE "French"
  !insertmacro MUI_LANGUAGE "Galician"
  !insertmacro MUI_LANGUAGE "German"
  !insertmacro MUI_LANGUAGE "Greek"
  !insertmacro MUI_LANGUAGE "Hebrew"
  !insertmacro MUI_LANGUAGE "Hungarian"
  !insertmacro MUI_LANGUAGE "Icelandic"
  !insertmacro MUI_LANGUAGE "Indonesian"
  !insertmacro MUI_LANGUAGE "Irish"
  !insertmacro MUI_LANGUAGE "Italian"
  !insertmacro MUI_LANGUAGE "Japanese"
  !insertmacro MUI_LANGUAGE "Korean"
  !insertmacro MUI_LANGUAGE "Kurdish"
  !insertmacro MUI_LANGUAGE "Latvian"
  !insertmacro MUI_LANGUAGE "Lithuanian"
  !insertmacro MUI_LANGUAGE "Luxembourgish"
  !insertmacro MUI_LANGUAGE "Macedonian"
  !insertmacro MUI_LANGUAGE "Malay"
  !insertmacro MUI_LANGUAGE "Mongolian"
  !insertmacro MUI_LANGUAGE "Norwegian"
  !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
  !insertmacro MUI_LANGUAGE "Pashto"
  !insertmacro MUI_LANGUAGE "Polish"
  !insertmacro MUI_LANGUAGE "Portuguese"
  !insertmacro MUI_LANGUAGE "PortugueseBR"
  !insertmacro MUI_LANGUAGE "Romanian"
  !insertmacro MUI_LANGUAGE "Russian"
  !insertmacro MUI_LANGUAGE "ScotsGaelic"
  !insertmacro MUI_LANGUAGE "Serbian"
  !insertmacro MUI_LANGUAGE "SerbianLatin"
  !insertmacro MUI_LANGUAGE "SimpChinese"
  !insertmacro MUI_LANGUAGE "Slovak"
  !insertmacro MUI_LANGUAGE "Slovenian"
  !insertmacro MUI_LANGUAGE "Spanish"
  !insertmacro MUI_LANGUAGE "SpanishInternational"
  !insertmacro MUI_LANGUAGE "Swedish"
  !insertmacro MUI_LANGUAGE "Tatar"
  !insertmacro MUI_LANGUAGE "Thai"
  !insertmacro MUI_LANGUAGE "TradChinese"
  !insertmacro MUI_LANGUAGE "Turkish"
  !insertmacro MUI_LANGUAGE "Ukrainian"
  !insertmacro MUI_LANGUAGE "Uzbek"
  !insertmacro MUI_LANGUAGE "Vietnamese"
  !insertmacro MUI_LANGUAGE "Welsh"

;--------------------------------
;Reserve Files

  ;These files should be inserted before other files in the data block
  ;Keep these lines before any File command
  ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)

  ReserveFile "NSIS.InstallOptions.ini"
  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS

  ; for UserInfo::GetName and UserInfo::GetAccountType
  ReserveFile /plugin 'UserInfo.dll'

;--------------------------------
; Installation types
@CPACK_NSIS_INSTALLATION_TYPES@

;--------------------------------
; Component sections
@CPACK_NSIS_COMPONENT_SECTIONS@
@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
;--------------------------------
;Installer Sections

Section "-Core installation"

  WriteRegExpandStr ${NT_current_env} MMX_DATA "$mmxDataDir\"
  SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000

  ;Use the entire tree produced by the INSTALL target.  Keep the
  ;list of directories here in sync with the RMDir commands below.
  SetOutPath "$INSTDIR"
  @CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@
  @CPACK_NSIS_FULL_INSTALL@

  ;Store installation folder
  WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR

  ;Create uninstaller
  WriteUninstaller "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
  Push "DisplayName"
  Push "@CPACK_NSIS_DISPLAY_NAME@"
  Call ConditionalAddToRegistry
  Push "DisplayVersion"
  Push "@CPACK_PACKAGE_VERSION@"
  Call ConditionalAddToRegistry
  Push "Publisher"
  Push "@CPACK_PACKAGE_VENDOR@"
  Call ConditionalAddToRegistry
  Push "UninstallString"
  Push "$\"$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe$\""
  Call ConditionalAddToRegistry
  Push "NoRepair"
  Push "1"
  Call ConditionalAddToRegistry

  !ifdef CPACK_NSIS_ADD_REMOVE
  ;Create add/remove functionality
  Push "ModifyPath"
  Push "$INSTDIR\AddRemove.exe"
  Call ConditionalAddToRegistry
  !else
  Push "NoModify"
  Push "1"
  Call ConditionalAddToRegistry
  !endif

  ; Optional registration
  Push "DisplayIcon"
  Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
  Call ConditionalAddToRegistry
  Push "HelpLink"
  Push "@CPACK_NSIS_HELP_LINK@"
  Call ConditionalAddToRegistry
  Push "URLInfoAbout"
  Push "@CPACK_NSIS_URL_INFO_ABOUT@"
  Call ConditionalAddToRegistry
  Push "Contact"
  Push "@CPACK_NSIS_CONTACT@"
  Call ConditionalAddToRegistry
  !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State"
  !insertmacro MUI_STARTMENU_WRITE_BEGIN Application

  ;Create shortcuts
  CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
@CPACK_NSIS_CREATE_ICONS@
@CPACK_NSIS_CREATE_ICONS_EXTRA@
  CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"

  ;Read a value from an InstallOptions INI file
  !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State"
  !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State"
  !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State"

  ; Write special uninstall registry entries
  Push "StartMenu"
  Push "$STARTMENU_FOLDER"
  Call ConditionalAddToRegistry
  Push "DoNotAddToPath"
  Push "$DO_NOT_ADD_TO_PATH"
  Call ConditionalAddToRegistry
  Push "AddToPathAllUsers"
  Push "$ADD_TO_PATH_ALL_USERS"
  Call ConditionalAddToRegistry
  Push "AddToPathCurrentUser"
  Push "$ADD_TO_PATH_CURRENT_USER"
  Call ConditionalAddToRegistry
  Push "InstallToDesktop"
  Push "$INSTALL_DESKTOP"
  Call ConditionalAddToRegistry

  !insertmacro MUI_STARTMENU_WRITE_END

@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@

SectionEnd

Section "-Add to path"
  Push $INSTDIR\bin
  StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 doNotAddToPath
  StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
    Call AddToPath
  doNotAddToPath:
SectionEnd

;--------------------------------
; Create custom pages
Function InstallOptionsPage
  !insertmacro MUI_HEADER_TEXT "Install Options" "Choose options for installing @CPACK_NSIS_PACKAGE_NAME@"
  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini"

FunctionEnd

;--------------------------------
; determine admin versus local install
Function un.onInit

  ClearErrors
  UserInfo::GetName
  IfErrors noLM
  Pop $0
  UserInfo::GetAccountType
  Pop $1
  StrCmp $1 "Admin" 0 +3
    SetShellVarContext all
    ;MessageBox MB_OK 'User "$0" is in the Admin group'
    Goto done
  StrCmp $1 "Power" 0 +3
    SetShellVarContext all
    ;MessageBox MB_OK 'User "$0" is in the Power Users group'
    Goto done

  noLM:
    ;Get installation folder from registry if available

  done:

FunctionEnd

;--- Add/Remove callback functions: ---
!macro SectionList MacroName
  ;This macro used to perform operation on multiple sections.
  ;List all of your components in following manner here.
@CPACK_NSIS_COMPONENT_SECTION_LIST@
!macroend

Section -FinishComponents
  ;Removes unselected components and writes component status to registry
  !insertmacro SectionList "FinishSection"

!ifdef CPACK_NSIS_ADD_REMOVE
  ; Get the name of the installer executable
  System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1'
  StrCpy $R3 $R0

  ; Strip off the last 13 characters, to see if we have AddRemove.exe
  StrLen $R1 $R0
  IntOp $R1 $R0 - 13
  StrCpy $R2 $R0 13 $R1
  StrCmp $R2 "AddRemove.exe" addremove_installed

  ; We're not running AddRemove.exe, so install it
  CopyFiles $R3 $INSTDIR\AddRemove.exe

  addremove_installed:
!endif
SectionEnd
;--- End of Add/Remove callback functions ---

;--------------------------------
; Component dependencies
Function .onSelChange
  !insertmacro SectionList MaybeSelectionChanged
FunctionEnd

;--------------------------------
;Uninstaller Section

Section "Uninstall"
  ReadRegStr $START_MENU SHCTX \
   "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu"
  ;MessageBox MB_OK "Start menu is in: $START_MENU"
  ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \
    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "DoNotAddToPath"
  ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \
    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathAllUsers"
  ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \
    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathCurrentUser"
  ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS"
  ReadRegStr $INSTALL_DESKTOP SHCTX \
    "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "InstallToDesktop"
  ;MessageBox MB_OK "Install to desktop: $INSTALL_DESKTOP "

@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@

  ;Remove files we installed.
  ;Keep the list of directories here in sync with the File commands above.
@CPACK_NSIS_DELETE_FILES@
@CPACK_NSIS_DELETE_DIRECTORIES@

!ifdef CPACK_NSIS_ADD_REMOVE
  ;Remove the add/remove program
  Delete "$INSTDIR\AddRemove.exe"
!endif

  ;Remove the uninstaller itself.
  Delete "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
  DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"

  ;Remove the installation directory if it is empty.
  RMDir "$INSTDIR"

  ; Remove the registry entries.
  DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
  ; DeleteRegValue ${NT_current_env} MMX_DATA

  ; Removes all optional components
  !insertmacro SectionList "RemoveSection_CPack"

  !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP

  Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
@CPACK_NSIS_DELETE_ICONS@
@CPACK_NSIS_DELETE_ICONS_EXTRA@

  ;Delete empty start menu parent directories
  StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"

  startMenuDeleteLoop:
    ClearErrors
    RMDir $MUI_TEMP
    GetFullPathName $MUI_TEMP "$MUI_TEMP\.."

    IfErrors startMenuDeleteLoopDone

    StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
  startMenuDeleteLoopDone:

  ; If the user changed the shortcut, then uninstall may not work. This should
  ; try to fix it.
  StrCpy $MUI_TEMP "$START_MENU"
  Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
@CPACK_NSIS_DELETE_ICONS_EXTRA@

  ;Delete empty start menu parent directories
  StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"

  secondStartMenuDeleteLoop:
    ClearErrors
    RMDir $MUI_TEMP
    GetFullPathName $MUI_TEMP "$MUI_TEMP\.."

    IfErrors secondStartMenuDeleteLoopDone

    StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop
  secondStartMenuDeleteLoopDone:

  DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"

  Push $INSTDIR\bin
  StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0
    Call un.RemoveFromPath
  doNotRemoveFromPath:
SectionEnd

;--------------------------------
; determine admin versus local install
; Is install for "AllUsers" or "JustMe"?
; Default to "JustMe" - set to "AllUsers" if admin or on Win9x
; This function is used for the very first "custom page" of the installer.
; This custom page does not show up visibly, but it executes prior to the
; first visible page and sets up $INSTDIR properly...
; Choose different default installation folder based on SV_ALLUSERS...
; "Program Files" for AllUsers, "My Documents" for JustMe...

Function .onInit
  StrCpy $mmxDataDir_default "$PROFILE\.mmx\"
  ReadRegStr $mmxDataDir ${NT_current_env} "MMX_DATA"
  StrCmp $mmxDataDir "" 0 +2
  StrCpy $mmxDataDir $mmxDataDir_default

  StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst

  ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "UninstallString"
  StrCmp $0 "" inst

  MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \
  "@CPACK_NSIS_PACKAGE_NAME@ is already installed. $\n$\nDo you want to uninstall the old version before installing the new one?" \
  /SD IDYES IDYES uninst IDNO inst
  Abort

;Run the uninstaller
uninst:
  ClearErrors
  # $0 should _always_ be quoted, however older versions of CMake did not
  # do this.  We'll conditionally remove the begin/end quotes.
  # Remove first char if quote
  StrCpy $2 $0 1 0      # copy first char
  StrCmp $2 "$\"" 0 +2  # if char is quote
  StrCpy $0 $0 "" 1     # remove first char
  # Remove last char if quote
  StrCpy $2 $0 1 -1     # copy last char
  StrCmp $2 "$\"" 0 +2  # if char is quote
  StrCpy $0 $0 -1       # remove last char

  StrLen $2 "\@CPACK_NSIS_UNINSTALL_NAME@.exe"
  StrCpy $3 $0 -$2 # remove "\@CPACK_NSIS_UNINSTALL_NAME@.exe" from UninstallString to get path
  ExecWait '"$0" /S _?=$3' ;Do not copy the uninstaller to a temp file

  IfErrors uninst_failed inst
uninst_failed:
  MessageBox MB_OK|MB_ICONSTOP "Uninstall failed."
  Abort


inst:
  ; Reads components status for registry
  !insertmacro SectionList "InitSection"

  ; check to see if /D has been used to change
  ; the install directory by comparing it to the
  ; install directory that is expected to be the
  ; default
  StrCpy $IS_DEFAULT_INSTALLDIR 0
  StrCmp "$INSTDIR" "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2
    StrCpy $IS_DEFAULT_INSTALLDIR 1

  StrCpy $SV_ALLUSERS "JustMe"
  ; if default install dir then change the default
  ; if it is installed for JustMe
  StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
    StrCpy $INSTDIR "$DOCUMENTS\@CPACK_PACKAGE_INSTALL_DIRECTORY@"

  ClearErrors
  UserInfo::GetName
  IfErrors noLM
  Pop $0
  UserInfo::GetAccountType
  Pop $1
  StrCmp $1 "Admin" 0 +4
    SetShellVarContext all
    ;MessageBox MB_OK 'User "$0" is in the Admin group'
    StrCpy $SV_ALLUSERS "AllUsers"
    Goto done
  StrCmp $1 "Power" 0 +3
    SetShellVarContext all
    ;MessageBox MB_OK 'User "$0" is in the Power Users group'
    StrCpy $SV_ALLUSERS "AllUsers"
    Goto done

  noLM:
    StrCpy $SV_ALLUSERS "AllUsers"
    ;Get installation folder from registry if available

  done:
  StrCmp $SV_ALLUSERS "AllUsers" 0 +3
    StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
      StrCpy $INSTDIR "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"

  StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage
    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"

  noOptionsPage:
FunctionEnd


================================================
FILE: cmake/product_version/LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2015, by [halex2005](mailto:akharlov@gmail.com)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: cmake/product_version/VersionInfo.in
================================================
#pragma once

#ifndef PRODUCT_VERSION_MAJOR
#define PRODUCT_VERSION_MAJOR @PRODUCT_VERSION_MAJOR@
#endif

#ifndef PRODUCT_VERSION_MINOR
#define PRODUCT_VERSION_MINOR @PRODUCT_VERSION_MINOR@
#endif

#ifndef PRODUCT_VERSION_PATCH
#define PRODUCT_VERSION_PATCH @PRODUCT_VERSION_PATCH@
#endif

#ifndef PRODUCT_VERSION_BUILD
#define PRODUCT_VERSION_BUILD @PRODUCT_VERSION_REVISION@
#endif

#ifndef FILE_VERSION_MAJOR
#define FILE_VERSION_MAJOR @PRODUCT_VERSION_MAJOR@
#endif

#ifndef FILE_VERSION_MINOR
#define FILE_VERSION_MINOR @PRODUCT_VERSION_MINOR@
#endif

#ifndef FILE_VERSION_PATCH
#define FILE_VERSION_PATCH @PRODUCT_VERSION_PATCH@
#endif

#ifndef FILE_VERSION_BUILD
#define FILE_VERSION_BUILD @PRODUCT_VERSION_REVISION@
#endif

#ifndef __TO_STRING
#define __TO_STRING_IMPL(x) #x
#define __TO_STRING(x) __TO_STRING_IMPL(x)
#endif

#define PRODUCT_VERSION_MAJOR_MINOR_STR        __TO_STRING(PRODUCT_VERSION_MAJOR) "." __TO_STRING(PRODUCT_VERSION_MINOR)
#define PRODUCT_VERSION_MAJOR_MINOR_PATCH_STR  PRODUCT_VERSION_MAJOR_MINOR_STR "." __TO_STRING(PRODUCT_VERSION_PATCH)
#define PRODUCT_VERSION_FULL_STR               PRODUCT_VERSION_MAJOR_MINOR_PATCH_STR "." __TO_STRING(PRODUCT_VERSION_BUILD)
#define PRODUCT_VERSION_RESOURCE               PRODUCT_VERSION_MAJOR,PRODUCT_VERSION_MINOR,PRODUCT_VERSION_PATCH,PRODUCT_VERSION_BUILD
#define PRODUCT_VERSION_RESOURCE_STR           PRODUCT_VERSION_MAJOR_MINOR_PATCH_STR "\0"

#define FILE_VERSION_MAJOR_MINOR_STR        __TO_STRING(FILE_VERSION_MAJOR) "." __TO_STRING(FILE_VERSION_MINOR)
#define FILE_VERSION_MAJOR_MINOR_PATCH_STR  FILE_VERSION_MAJOR_MINOR_STR "." __TO_STRING(FILE_VERSION_PATCH)
#define FILE_VERSION_FULL_STR               FILE_VERSION_MAJOR_MINOR_PATCH_STR "." __TO_STRING(FILE_VERSION_BUILD)
#define FILE_VERSION_RESOURCE               FILE_VERSION_MAJOR,FILE_VERSION_MINOR,FILE_VERSION_PATCH,FILE_VERSION_BUILD
#define FILE_VERSION_RESOURCE_STR           FILE_VERSION_FULL_STR "\0"

#ifndef PRODUCT_ICON
#define PRODUCT_ICON "@PRODUCT_ICON@"
#endif

#ifndef PRODUCT_COMMENTS
#define PRODUCT_COMMENTS           "@PRODUCT_COMMENTS@\0"
#endif

#ifndef PRODUCT_COMPANY_NAME
#define PRODUCT_COMPANY_NAME       "@PRODUCT_COMPANY_NAME@\0"
#endif

#ifndef PRODUCT_COMPANY_COPYRIGHT
#define PRODUCT_COMPANY_COPYRIGHT  "@PRODUCT_COMPANY_COPYRIGHT@\0"
#endif

#ifndef PRODUCT_FILE_DESCRIPTION
#define PRODUCT_FILE_DESCRIPTION   "@PRODUCT_FILE_DESCRIPTION@\0"
#endif

#ifndef PRODUCT_INTERNAL_NAME
#define PRODUCT_INTERNAL_NAME      "@PRODUCT_NAME@\0"
#endif

#ifndef PRODUCT_ORIGINAL_FILENAME
#define PRODUCT_ORIGINAL_FILENAME  __TO_STRING(TARGET_FILENAME) "\0"
#endif

#ifndef PRODUCT_BUNDLE
#define PRODUCT_BUNDLE             "@PRODUCT_BUNDLE@\0"
#endif


================================================
FILE: cmake/product_version/VersionResource.rc
================================================
#include "VersionInfo_@PRODUCT_NAME@.h"
#include "winres.h"

#ifdef PRODUCT_ICON
IDI_ICON1               ICON                    PRODUCT_ICON
#endif

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

VS_VERSION_INFO VERSIONINFO
    FILEVERSION FILE_VERSION_RESOURCE
    PRODUCTVERSION PRODUCT_VERSION_RESOURCE
    FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
    FILEFLAGS 0x1L
#else
    FILEFLAGS 0x0L
#endif
    FILEOS 0x4L
    FILETYPE 0x1L
    FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "Comments", PRODUCT_COMMENTS
            VALUE "CompanyName", PRODUCT_COMPANY_NAME
            VALUE "FileDescription", PRODUCT_FILE_DESCRIPTION
            VALUE "FileVersion", FILE_VERSION_RESOURCE_STR
            VALUE "InternalName", PRODUCT_INTERNAL_NAME
            VALUE "LegalCopyright", PRODUCT_COMPANY_COPYRIGHT
            VALUE "OriginalFilename", PRODUCT_ORIGINAL_FILENAME
            VALUE "ProductName", PRODUCT_BUNDLE
            VALUE "ProductVersion", PRODUCT_VERSION_RESOURCE_STR
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

================================================
FILE: cmake/product_version/generate_product_version.cmake
================================================
include (CMakeParseArguments)

set (GenerateProductVersionCurrentDir ${CMAKE_CURRENT_LIST_DIR})

# generate_product_version() function
#
# This function uses VersionInfo.in template file and VersionResource.rc file
# to generate WIN32 resource with version information and general resource strings.
#
# Usage:
#   generate_product_version(
#     SomeOutputResourceVariable
#     NAME MyGreatProject
#     ICON ${PATH_TO_APP_ICON}
#     VERSION_MAJOR 2
#     VERSION_MINOR 3
#     VERSION_PATCH ${BUILD_COUNTER}
#     VERSION_REVISION ${BUILD_REVISION}
#   )
# where BUILD_COUNTER and BUILD_REVISION could be values from your CI server.
#
# You can use generated resource for your executable targets:
#   add_executable(target-name ${target-files} ${SomeOutputResourceVariable})
#
# You can specify resource strings in arguments:
#   NAME               - name of executable (no defaults, ex: Microsoft Word)
#   BUNDLE             - bundle (${NAME} is default, ex: Microsoft Office)
#   ICON               - path to application icon (${CMAKE_SOURCE_DIR}/product.ico by default)
#   VERSION_MAJOR      - 1 is default
#   VERSION_MINOR      - 0 is default
#   VERSION_PATCH      - 0 is default
#   VERSION_REVISION   - 0 is default
#   COMPANY_NAME       - your company name (no defaults)
#   COMPANY_COPYRIGHT  - ${COMPANY_NAME} (C) Copyright ${CURRENT_YEAR} is default
#   COMMENTS           - ${NAME} v${VERSION_MAJOR}.${VERSION_MINOR} is default
#   ORIGINAL_FILENAME  - ${NAME} is default
#   INTERNAL_NAME      - ${NAME} is default
#   FILE_DESCRIPTION   - ${NAME} is default
function(generate_product_version outfiles)
    set (options)
    set (oneValueArgs
        NAME
        BUNDLE
        ICON
        VERSION_MAJOR
        VERSION_MINOR
        VERSION_PATCH
        VERSION_REVISION
        COMPANY_NAME
        COMPANY_COPYRIGHT
        COMMENTS
        ORIGINAL_FILENAME
        INTERNAL_NAME
        FILE_DESCRIPTION)
    set (multiValueArgs)
    cmake_parse_arguments(PRODUCT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

    if (NOT PRODUCT_BUNDLE OR "${PRODUCT_BUNDLE}" STREQUAL "")
        set(PRODUCT_BUNDLE "${PRODUCT_NAME}")
    endif()
    # if (NOT PRODUCT_ICON OR "${PRODUCT_ICON}" STREQUAL "")
    #     set(PRODUCT_ICON "${CMAKE_SOURCE_DIR}/product.ico")
    # endif()

    if (NOT PRODUCT_VERSION_MAJOR OR "${PRODUCT_VERSION_MAJOR}" STREQUAL "")
        set(PRODUCT_VERSION_MAJOR 0)
    endif()
    if (NOT PRODUCT_VERSION_MINOR OR "${PRODUCT_VERSION_MINOR}" STREQUAL "")
        set(PRODUCT_VERSION_MINOR 0)
    endif()
    if (NOT PRODUCT_VERSION_PATCH OR "${PRODUCT_VERSION_PATCH}" STREQUAL "")
        set(PRODUCT_VERSION_PATCH 0)
    endif()
    if (NOT PRODUCT_VERSION_REVISION OR "${PRODUCT_VERSION_REVISION}" STREQUAL "")
        set(PRODUCT_VERSION_REVISION 0)
    endif()

    if (NOT PRODUCT_NAME OR "${PRODUCT_NAME}" STREQUAL "")
        set(PRODUCT_NAME "")
    endif()

    if (NOT PRODUCT_COMPANY_COPYRIGHT OR "${PRODUCT_COMPANY_COPYRIGHT}" STREQUAL "")
        string(TIMESTAMP PRODUCT_CURRENT_YEAR "%Y")
        set(PRODUCT_COMPANY_COPYRIGHT "${PRODUCT_COMPANY_NAME} (C) Copyright ${PRODUCT_CURRENT_YEAR}")
    endif()
    if (NOT PRODUCT_COMMENTS OR "${PRODUCT_COMMENTS}" STREQUAL "")
        set(PRODUCT_COMMENTS "${PRODUCT_NAME} v${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}")
    endif()
    if (NOT PRODUCT_ORIGINAL_FILENAME OR "${PRODUCT_ORIGINAL_FILENAME}" STREQUAL "")
        set(PRODUCT_ORIGINAL_FILENAME "${PRODUCT_NAME}")
    endif()
    if (NOT PRODUCT_INTERNAL_NAME OR "${PRODUCT_INTERNAL_NAME}" STREQUAL "")
        set(PRODUCT_INTERNAL_NAME "${PRODUCT_NAME}")
    endif()
    if (NOT PRODUCT_FILE_DESCRIPTION OR "${PRODUCT_FILE_DESCRIPTION}" STREQUAL "")
        set(PRODUCT_FILE_DESCRIPTION "${PRODUCT_NAME}")
    endif()

    set (_VersionInfoFile ${CMAKE_CURRENT_BINARY_DIR}/VersionInfo/VersionInfo_${PRODUCT_NAME}.h)
    set (_VersionResourceFile ${CMAKE_CURRENT_BINARY_DIR}/VersionInfo/VersionResource_${PRODUCT_NAME}.rc)
    configure_file(
        ${GenerateProductVersionCurrentDir}/VersionInfo.in
        ${_VersionInfoFile}
        @ONLY)
    configure_file(
        ${GenerateProductVersionCurrentDir}/VersionResource.rc
        ${_VersionResourceFile}
        @ONLY)
    list(APPEND ${outfiles} ${_VersionInfoFile} ${_VersionResourceFile})
    set (${outfiles} ${${outfiles}} PARENT_SCOPE)
endfunction()


================================================
FILE: cmake/use_cuda.cmake
================================================

find_package(CUDA)

if(NOT MSVC)
	set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -Xcompiler ,-fPIC")
endif()

set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -diag-suppress 611,997,68,186 -gencode arch=compute_50,code=compute_50 -gencode arch=compute_75,code=compute_75 -gencode arch=compute_86,code=compute_86")


================================================
FILE: cmake/win_pack.cmake
================================================
set(NETWORK "mainnet")
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/;${CMAKE_MODULE_PATH}")

function(get_all_targets var)
    set(targets)
    get_all_targets_recursive(targets ${CMAKE_CURRENT_SOURCE_DIR})
    set(${var} ${targets} PARENT_SCOPE)
endfunction()

macro(get_all_targets_recursive targets dir)
    get_property(subdirectories DIRECTORY ${dir} PROPERTY SUBDIRECTORIES)
    foreach(subdir ${subdirectories})
        get_all_targets_recursive(${targets} ${subdir})
    endforeach()

    get_property(current_targets DIRECTORY ${dir} PROPERTY BUILDSYSTEM_TARGETS)
    list(APPEND ${targets} ${current_targets})
endmacro()

get_all_targets(all_targets)
set_target_properties(${all_targets} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "$(OutDir)")
set_target_properties(${all_targets} PROPERTIES VS_DEBUGGER_ENVIRONMENT "MMX_HOME=$(USERPROFILE)\\.mmx\\\nMMX_DATA=$(USERPROFILE)\\.mmx\\\nNETWORK=${NETWORK}\nMMX_NETWORK=$(USERPROFILE)\\.mmx\\${NETWORK}\\\n")
set_target_properties(mmx_node PROPERTIES VS_DEBUGGER_COMMAND_ARGUMENTS "-c config\\${NETWORK}\\ config\\node\\ $(USERPROFILE)\\.mmx\\config\\local\\")
set_target_properties(mmx_timelord PROPERTIES VS_DEBUGGER_COMMAND_ARGUMENTS "-c config\\${NETWORK}\\ config\\timelord\\ $(USERPROFILE)\\.mmx\\config\\local\\")
set_target_properties(mmx_wallet PROPERTIES VS_DEBUGGER_COMMAND_ARGUMENTS "-c config\\${NETWORK}\\ config\\wallet\\ $(USERPROFILE)\\.mmx\\config\\local\\")
set_target_properties(mmx_farmer mmx_harvester PROPERTIES VS_DEBUGGER_COMMAND_ARGUMENTS "-c config\\${NETWORK}\\ config\\farmer\\ $(USERPROFILE)\\.mmx\\config\\local\\")


add_custom_command(TARGET mmx PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
	${CMAKE_SOURCE_DIR}/kernel/ $<TARGET_FILE_DIR:mmx>/kernel/)
add_custom_command(TARGET mmx PRE_BUILD
	COMMAND ${CMAKE_COMMAND} -E copy_directory
		${CMAKE_SOURCE_DIR}/config/ $<TARGET_FILE_DIR:mmx>/config/)
add_custom_command(TARGET mmx PRE_BUILD
	COMMAND ${CMAKE_COMMAND} -E copy_directory
		${CMAKE_SOURCE_DIR}/www/ $<TARGET_FILE_DIR:mmx>/www/)
add_custom_command(TARGET mmx PRE_BUILD
	COMMAND ${CMAKE_COMMAND} -E copy_directory
		${CMAKE_SOURCE_DIR}/data/ $<TARGET_FILE_DIR:mmx>/data/)
add_custom_command(TARGET mmx PRE_BUILD
 	COMMAND ${CMAKE_COMMAND} -E copy_directory
 		${CMAKE_SOURCE_DIR}/scripts/win/ $<TARGET_FILE_DIR:mmx>)

if(NOT MMX_VERSION MATCHES "^v([0-9]+)\\.([0-9]+)\\.([0-9]+)$")
	string(TIMESTAMP BUILD_TIMESTAMP "%Y%m%d")
	set(MMX_VERSION "v0.0.0.${BUILD_TIMESTAMP}")
endif()

message(STATUS "MMX_VERSION=${MMX_VERSION}")

string(REGEX REPLACE "^v([0-9]+).*$" "\\1" MMX_VERSION_MAJOR "${MMX_VERSION}")
string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*$" "\\1" MMX_VERSION_MINOR  "${MMX_VERSION}")
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+.*)$" "\\1" MMX_VERSION_PATCH "${MMX_VERSION}")

set(MMX_VERSION_STRING "${MMX_VERSION_MAJOR}.${MMX_VERSION_MINOR}.${MMX_VERSION_PATCH}")
#message(STATUS "MMX_VERSION_STRING: ${MMX_VERSION_STRING}")

set(CPACK_PACKAGE_VERSION ${MMX_VERSION_STRING})
set(CPACK_PACKAGE_VERSION_MAJOR ${MMX_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${MMX_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${MMX_VERSION_PATCH})

include(cmake/product_version/generate_product_version.cmake)
set(MMX_ICON "${CMAKE_CURRENT_SOURCE_DIR}/cmake/mmx.ico")

set(MMX_BUNDLE "MMX Node")

list(APPEND APP_FILES
	mmx mmx_node mmx_farmer mmx_wallet mmx_timelord mmx_harvester
	mmx_compile mmx_postool mmx_posbench
	mmx_iface
	vnx_base vnx_addons url_cpp llhttp
	vnxpasswd generate_passwd
	automy_basic_opencl
)

list(APPEND TOOL_FILES
	tx_bench
)
foreach(APPFILE IN LISTS APP_FILES TOOL_FILES)
	set(ProductVersionFiles "ProductVersionFiles_${APPFILE}")
	generate_product_version(
		${ProductVersionFiles}
		NAME ${APPFILE}
		BUNDLE ${MMX_BUNDLE}
		COMPANY_NAME "madMAx43v3r"
		FILE_DESCRIPTION ${APPFILE}
		ICON ${MMX_ICON}
		VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR}
		VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR}
		VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH}
	)
	target_sources(${APPFILE} PRIVATE ${${ProductVersionFiles}})
endforeach()

if ("${MMX_WIN_PACK}" STREQUAL "TRUE")

set(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT libraries)
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ./)
set(CMAKE_INSTALL_OPENMP_LIBRARIES TRUE)
include(InstallRequiredSystemLibraries)

add_custom_target(mmx_node_gui ALL)
set(MMX_NODE_GUI_GIT_TAG "origin/main")
message(STATUS "MMX Node GUI will be built from: ${MMX_NODE_GUI_GIT_TAG}")
include(FetchContent)
FetchContent_Declare(
	mmx_node_gui
	GIT_REPOSITORY https://github.com/stotiks/mmx-node-gui.git
	GIT_TAG ${MMX_NODE_GUI_GIT_TAG}
)
FetchContent_MakeAvailable(mmx_node_gui)
add_custom_command(TARGET mmx_node_gui POST_BUILD
	COMMAND ${CMAKE_MAKE_PROGRAM} Mmx.Gui.Win.Wpf/Mmx.Gui.Win.Wpf.csproj -restore -m 
			/p:Configuration=Release
			/p:PlatformTarget=x64
			/p:OutputPath=${mmx_node_gui_SOURCE_DIR}/bin/Release
			/p:Version=${MMX_VERSION_STRING}
			/p:FileVersion=${MMX_VERSION_STRING}
		WORKING_DIRECTORY ${mmx_node_gui_SOURCE_DIR}
)

set(mmx_node_gui_RELEASE_DIR ${mmx_node_gui_SOURCE_DIR}/bin/CPack_Release)

install(DIRECTORY ${mmx_node_gui_RELEASE_DIR}/ DESTINATION ./ COMPONENT gui)

install(TARGETS ${APP_FILES} RUNTIME DESTINATION ./ COMPONENT applications)
install(TARGETS ${TOOL_FILES} RUNTIME DESTINATION ./ COMPONENT tools)

install(FILES 
			$<TARGET_FILE_DIR:vnx_addons>/zlib1.dll
			$<TARGET_FILE_DIR:vnx_addons>/zstd.dll
			$<TARGET_FILE_DIR:automy_basic_opencl>/OpenCL.dll
			$<TARGET_FILE_DIR:mmx_node>/miniupnpc.dll
			$<TARGET_FILE_DIR:mmx_modules>/cudart64_12.dll
		DESTINATION ./ COMPONENT applications)

install(DIRECTORY kernel/ DESTINATION kernel COMPONENT applications)
install(DIRECTORY config/ DESTINATION config COMPONENT applications)
install(DIRECTORY www/ DESTINATION www COMPONENT applications)
install(DIRECTORY data/ DESTINATION data COMPONENT applications)
install(DIRECTORY scripts/win/ DESTINATION ./ COMPONENT applications)
install(FILES ${PROJECT_SOURCE_DIR}/LICENSE DESTINATION ./ COMPONENT applications)


FetchContent_Declare(
    mmx_cuda_plotter
    GIT_REPOSITORY https://github.com/madMAx43v3r/mmx-binaries.git
    GIT_TAG "origin/master"
)
FetchContent_MakeAvailable(mmx_cuda_plotter)

set (MMX_DESTINATION ./)
set(MMX_CUDA_PLOTTER_PATH ${mmx_cuda_plotter_SOURCE_DIR}/mmx-cuda-plotter/windows)
install(DIRECTORY ${MMX_CUDA_PLOTTER_PATH}/ DESTINATION ${MMX_DESTINATION} COMPONENT plotters)


set(CPACK_PACKAGE_NAME "MMX Node")
set(CPACK_PACKAGE_VENDOR "madMAx43v3r")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MMX is a blockchain written from scratch using Chia's Proof Of Space and a SHA256 VDF similar to Solana")
set(CPACK_RESOURCE_FILE_LICENSE ${PROJECT_SOURCE_DIR}/LICENSE)
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/madMAx43v3r/mmx-node")

set(CPACK_PACKAGE_INSTALL_DIRECTORY "MMX Node")

# Define components and their display names
set(CPACK_COMPONENTS_ALL applications libraries gui plotters tools)

set(CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "Node")
set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
set(CPACK_COMPONENT_GUI_DISPLAY_NAME "GUI")
set(CPACK_COMPONENT_PLOTTERS_DISPLAY_NAME "Plotter")
set(CPACK_COMPONENT_TOOLS_DISPLAY_NAME "Tools")


set(CPACK_COMPONENT_APPLICATIONS_REQUIRED True)
set(CPACK_COMPONENT_LIBRARIES_REQUIRED True)
set(CPACK_COMPONENT_GUI_REQUIRED True)
set(CPACK_COMPONENT_PLOTTERS_REQUIRED True)
#set(CPACK_COMPONENT_TOOLS_REQUIRED True)

# Define NSIS installation types
set(CPACK_ALL_INSTALL_TYPES Full Advanced)
# set(CPACK_COMPONENT_APPLICATIONS_INSTALL_TYPES Full Minimal Advanced)
# set(CPACK_COMPONENT_SYSLIBRARIES_INSTALL_TYPES Full Minimal Advanced)
# set(CPACK_COMPONENT_GUI_INSTALL_TYPES Full Minimal Advanced)
# set(CPACK_COMPONENT_PLOTTERS_INSTALL_TYPES Full Minimal Advanced)
set(CPACK_COMPONENT_TOOLS_INSTALL_TYPES Advanced)


set(CPACK_NSIS_PACKAGE_NAME ${CPACK_PACKAGE_NAME})

set(CPACK_NSIS_MENU_LINKS
"mmx_cmd.cmd" "MMX CMD"
#"http://localhost:11380/gui/" "MMX Node WebGUI"
"MmxGui.exe" "MMX Node"
"MmxPlotter.exe" "MMX Plotter"
)
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)

set(MMX_GUI_EXE "MmxGui.exe")

set(CPACK_NSIS_MUI_ICON ${MMX_ICON})
set(CPACK_NSIS_INSTALLED_ICON_NAME ${MMX_GUI_EXE})

#set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
#set(CPACK_NSIS_MUI_FINISHPAGE_RUN ${MMX_GUI_EXE})

# Must be after the last CPACK macros
include(CPack)

endif() #if (${MMX_WIN_PACK} STREQUAL "TRUE")

================================================
FILE: codegen.sh
================================================
#!/bin/bash

cd $(dirname "$0")

./vnx-base/codegen.sh
./vnx-addons/codegen.sh ../vnx-base/interface/

vnxcppcodegen --cleanup generated/ mmx interface/ modules/ interface/vm/ vnx-base/interface/ vnx-addons/interface/ vnx-addons/modules/ interface/wallet/
vnxcppcodegen --cleanup generated/contract/ mmx.contract interface/contract/ interface/ vnx-base/interface/
vnxcppcodegen --cleanup generated/operation/ mmx.operation interface/operation/ interface/ vnx-base/interface/
vnxcppcodegen --cleanup generated/solution/ mmx.solution interface/solution/ interface/ vnx-base/interface/
vnxcppcodegen --cleanup generated/vm/ mmx.vm interface/vm/ vnx-base/interface/
#vnxcppcodegen --cleanup exchange/generated/ mmx.exchange exchange/interface/ exchange/modules/ interface/ vnx-addons/interface/ vnx-addons/modules/ vnx-base/interface/


================================================
FILE: config/default/Farmer.json
================================================
{
	"harvester_timeout": 30
}

================================================
FILE: config/default/Harvester.json
================================================
{
	"num_threads": 32,
	"max_queue_ms": 30000,
	"config_path": "config/local/",
	"dir_blacklist": [
		".", "..", "lost+found", "$RECYCLE.BIN", "System Volume Information"
	]
}

================================================
FILE: config/default/HttpServer.json
================================================
{
	"port": 11380,
	"stats_interval_ms": 60000,
	"default_access": "NETWORK"
}

================================================
FILE: config/default/Node.json
================================================
{
	"num_sync_retries": 5,
	"sync_loss_delay": 300,
	"max_future_sync": 18,
	"max_sync_ahead": 10000,
	"max_sync_jobs": 100,
	"max_history": 200,
	"validate_interval_ms": 500,
	"tx_pool_limit": 50
}


================================================
FILE: config/default/Router.json
================================================
{
	"host": "0.0.0.0",
	"open_port": true,
	"min_sync_peers": 5,
	"num_peers_out": 8,
	"max_peer_set": 100,
	"max_connections": 100,
	"max_queue_ms": 5000,
	"max_msg_size": 8388608,
	"max_write_queue": 10485760,
	"stats_interval_ms": 60000,
	"connect_interval_ms": 10000,
	"connection_timeout_ms": 180000,
	"fetch_timeout_ms": 180000,
	"relay_target_ms": 2000,
	"max_hash_cache": 200000,
	"max_sent_cache": 20000,
	"max_tx_upload" : 2,
	"max_pending_cost": 0.1,
	"compress_level": 0
}


================================================
FILE: config/default/TimeLord.json
================================================
{
	"enable_reward": true
}

================================================
FILE: config/default/Wallet.json
================================================
{
	"key_files": [
		"wallet.dat"
	],
	"config_path": "config/local/"
}

================================================
FILE: config/default/WebAPI.json
================================================
{
	"config_path": "config/local/"
}

================================================
FILE: config/default/mmx_farmer.json
================================================
{
	"log_file_level": 3,
	"log_file_name": "mmx_farmer"
}

================================================
FILE: config/default/mmx_harvester.json
================================================
{
	"log_file_level": 3,
	"log_file_name": "mmx_harvester"
}

================================================
FILE: config/default/mmx_node.json
================================================
{
	"log_file_level": 3,
	"log_file_name": "mmx_node"
}

================================================
FILE: config/default/timelord
================================================
false

================================================
FILE: config/default/vnx/authentication.json
================================================
{
	"permissions": {
		"ADMIN": [
			"!PROTECTED_CONFIG",
			"mmx.permission_e.PUBLIC",
			"mmx.permission_e.REMOTE",
			"mmx.permission_e.SPENDING",
			"vnx.addons.permission_e.HTTP_REQUEST",
			"vnx.addons.permission_e.FILE_DOWNLOAD"
		],
		"USER": [
			"mmx.permission_e.PUBLIC",
			"mmx.permission_e.REMOTE",
			"vnx.addons.permission_e.HTTP_REQUEST",
			"vnx.addons.permission_e.FILE_DOWNLOAD"
		],
		"NODE": [
			"mmx.permission_e.SIGN_BLOCK"
		],
		"REMOTE": [
			"VIEW",
			"PUBLISH",
			"TIME_SYNC",
			"mmx.permission_e.PUBLIC",
			"mmx.permission_e.REMOTE"
		],
		"NETWORK": [
			"mmx.permission_e.PUBLIC",
			"vnx.addons.permission_e.HTTP_REQUEST",
			"vnx.addons.permission_e.FILE_DOWNLOAD"
		]
	},
	"users": [
		{
			"name": "mmx-admin",
			"access_roles": ["ADMIN"]
		},
		{
			"name": "mmx-user",
			"access_roles": ["USER"]
		}
	]
}


================================================
FILE: config/default/vnx/protected_config+
================================================
[
	"passwd",
	"HttpServer.token_map"
]

================================================
FILE: config/farmer/Proxy.json
================================================
{
	"export_list": ["vnx.log_out"]
}

================================================
FILE: config/local_init/Farmer.json
================================================
{
	"reward_addr": null
}

================================================
FILE: config/local_init/Harvester.json
================================================
{
	"num_threads": 32,
	"reload_interval": 3600,
	"recursive_search": true,
	"plot_dirs": []
}


================================================
FILE: config/local_init/HttpServer.json
================================================
{
	"host": "localhost",
	"token_map": []
}

================================================
FILE: config/local_init/Node.json
================================================
{
	"opencl_device": 0,
	"metalsdev_api_key": null
}

================================================
FILE: config/local_init/Router.json
================================================
{
	"open_port": true,
	"num_peers_out": 8,
	"max_connections": 100,
	"fixed_peers": [],
	"seed_peers+": [],
	"block_peers+": []
}

================================================
FILE: config/local_init/TimeLord.json
================================================
{
	"reward_addr": null
}

================================================
FILE: config/local_init/Wallet.json
================================================
{
	"key_files+": [],
	"token_whitelist+": []
}

================================================
FILE: config/local_init/allow_remote
================================================
false

================================================
FILE: config/local_init/cuda.json
================================================
{
	"enable": true,
	"devices": []
}

================================================
FILE: config/local_init/opencl.json
================================================
{
	"platform": null
}


================================================
FILE: config/local_init/remote_compute
================================================
false

================================================
FILE: config/local_init/timelord
================================================
false

================================================
FILE: config/mainnet/Router.json
================================================
{
	"seed_peers": [
	    "104.157.124.160",
	    "108.12.226.21",
	    "109.198.29.98",
	    "119.6.178.16",
	    "135.131.174.76",
	    "141.135.6.172",
	    "143.177.124.174",
	    "162.118.7.169",
	    "162.198.119.188",
	    "163.58.65.191",
	    "184.146.2.29",
	    "184.71.194.234",
	    "195.239.203.162",
	    "203.129.18.0",
	    "212.15.59.91",
	    "217.198.130.81",
	    "42.3.123.47",
	    "46.189.185.59",
	    "47.253.32.11",
	    "47.34.208.57",
	    "49.231.43.170",
	    "66.231.154.77",
	    "69.197.174.72",
	    "70.19.84.129",
	    "71.227.39.0",
	    "75.172.49.125",
	    "76.128.231.98",
	    "76.232.65.235",
	    "78.107.240.148",
	    "78.180.96.7",
	    "79.104.211.73",
	    "80.235.212.62",
	    "82.37.10.82",
	    "84.215.4.105",
	    "86.30.69.50",
	    "87.118.169.200",
	    "89.242.3.102",
	    "93.43.225.93",
	    "94.19.237.176",
	    "95.105.142.58",
	    "95.22.80.4",
	    "95.31.212.141",
	    "110.164.184.5",
	    "89.116.184.19"
	]
}


================================================
FILE: config/mainnet/chain/params/escrow_binary
================================================
mmx1wlwl4tgfdjl5nmntd4sj77mcgfn47sapztnwaf2u2cqmzrcppvrqxhx0st


================================================
FILE: config/mainnet/chain/params/nft_binary
================================================
mmx1hzz9tgs2dz9366t3p4ep8trmaejx7tk9al9ah3md2u37pkesa3qqfyepyw


================================================
FILE: config/mainnet/chain/params/offer_binary
================================================
mmx18rcdx8nhh56twmr2gq3h22kwj00slsn23ejan8qp00rqqw8yl4jq6ccysq


================================================
FILE: config/mainnet/chain/params/plot_binary
================================================
mmx19pv69aafsdjrzg8fe7aj2svgx2kwq72dqm5lj36m5h4vmmhcuj8qn9pn8y


================================================
FILE: config/mainnet/chain/params/plot_nft_binary
================================================
mmx1cw4nwrhceunjd82tdcauy8yeg8ccygsrx3r4kzr8v35prv482qvqdvz80z


================================================
FILE: config/mainnet/chain/params/relay_binary
================================================
mmx199hvcn9fzr5r9wx9jd4ppzgnerqtt0kfg6c3cgz674y60sw7kwnqznlqvp


================================================
FILE: config/mainnet/chain/params/swap_binary
================================================
mmx15qd3lrqm7d7jyqx3rrwqav09n8sq2xlwpehq9ydxfn8peyh367lsxfsfqd


================================================
FILE: config/mainnet/chain/params/template_binary
================================================
mmx18z4ts7p5437st05zw0pl4geprzm5wt8ssvcd4t2jfkdfq4k6xc2qwc2dwy


================================================
FILE: config/mainnet/chain/params/time_lock_binary
================================================
mmx1g9h53asl8ekmp38ejr2kpuumxz3mw5w2yth6cyvj6qjuaa4aaa3sqm5lc2


================================================
FILE: config/mainnet/chain/params/token_binary
================================================
mmx17pzl9cgmesyjur7rvvev70fx7f55rvyv7549cvrtf7chjml4qh4sryu9yl


================================================
FILE: config/mainnet/chain/params.json
================================================
{
	"port": 11337,
	"network": "mainnet",
	"plot_filter": 4,
	"post_filter": 10,
	"min_ksize": 29,
	"infuse_delay": 1,
	"challenge_delay": 6,
	"challenge_interval": 256,
	"commit_delay": 24,
	"avg_proof_count": 4,
	"max_proof_count": 20,
	"max_validators": 33,
	"vdf_segment_size": 250000,
	"min_reward": 500000,
	"min_txfee": 20000,
	"min_txfee_io": 10000,
	"min_txfee_sign": 10000,
	"min_txfee_memo": 5000,
	"min_txfee_exec": 10000,
	"min_txfee_deploy": 20000,
	"min_txfee_depend": 10000,
	"min_txfee_byte": 100,
	"min_txfee_read": 2000,
	"min_txfee_read_kbyte": 2000,
	"max_block_size":  250000000,
	"max_block_cost": 1000000000,
	"max_tx_cost":      25000000,
	"max_rcall_depth": 3,
	"max_rcall_width": 5,
	"min_fee_ratio": [1, 2, 3, 5, 10],
	"initial_time_diff":  600,
	"initial_space_diff": 100,
	"initial_time_stamp": 1737119420000,
	"time_diff_divider": 100,
	"time_diff_constant": 1000000,
	"space_diff_constant": 100000000000,
	"vdf_reward": 200000,
	"vdf_reward_interval": 20,
	"reward_adjust_div": 100,
	"reward_adjust_interval": 8640,
	"min_reward_adjust": 10000,
	"reward_activation": 10000,
	"transaction_activation": 20000,
	"fixed_project_reward": 50000,
	"project_ratio": {
		"value": 1,
		"inverse": 100
	},
	"hardfork1_height": 1000000
}


================================================
FILE: config/mainnet/parent
================================================
../default/

================================================
FILE: config/mainnet-rc/Node.json
================================================
{
	"mmx_usd_swap_addr": "mmx19c86u6ppjcw5cd4ghxzpzpf5zartly0j9q27k7pamavdt4mrg3dq7nujt7"
}

================================================
FILE: config/mainnet-rc/Router.json
================================================
{
	"seed_peers": [
	    "104.157.124.160",
	    "108.12.226.21",
	    "109.198.29.98",
	    "119.6.178.16",
	    "135.131.174.76",
	    "141.135.6.172",
	    "143.177.124.174",
	    "162.118.7.169",
	    "162.198.119.188",
	    "163.58.65.191",
	    "184.146.2.29",
	    "184.71.194.234",
	    "195.239.203.162",
	    "203.129.18.0",
	    "212.15.59.91",
	    "217.198.130.81",
	    "42.3.123.47",
	    "46.189.185.59",
	    "47.253.32.11",
	    "47.34.208.57",
	    "49.231.43.170",
	    "66.231.154.77",
	    "69.197.174.72",
	    "70.19.84.129",
	    "71.227.39.0",
	    "75.172.49.125",
	    "76.128.231.98",
	    "76.232.65.235",
	    "78.107.240.148",
	    "78.180.96.7",
	    "79.104.211.73",
	    "80.235.212.62",
	    "82.37.10.82",
	    "84.215.4.105",
	    "86.30.69.50",
	    "87.118.169.200",
	    "89.242.3.102",
	    "93.43.225.93",
	    "94.19.237.176",
	    "95.105.142.58",
	    "95.22.80.4",
	    "95.31.212.141",
	    "110.164.184.5",
	    "89.116.184.19"
	]
}


================================================
FILE: config/mainnet-rc/Wallet.json
================================================
{
	"token_whitelist": [
		"mmx1gk9s4xg265yxdujagqzu4tzsy3gygycy3nksr9ux8qxj8hs6zgys4shv5n"
	]
}


================================================
FILE: config/mainnet-rc/chain/params.json
================================================
{
	"port": 10337,
	"network": "mainnet-rc",
	"plot_filter": 4,
	"min_ksize": 26,
	"infuse_delay": 3,
	"challenge_delay": 6,
	"challenge_interval": 256,
	"commit_delay": 24,
	"proofs_per_height": 4,
	"max_validators": 31,
	"vdf_segment_size": 250000,
	"min_reward": 500000,
	"min_txfee": 20000,
	"min_txfee_io": 10000,
	"min_txfee_sign": 10000,
	"min_txfee_memo": 5000,
	"min_txfee_exec": 10000,
	"min_txfee_deploy": 20000,
	"min_txfee_byte": 100,
	"min_txfee_read": 2000,
	"min_txfee_read_kbyte": 2000,
	"max_block_size":  250000000,
	"max_block_cost": 1000000000,
	"max_tx_cost":      25000000,
	"min_fee_ratio": [1, 2, 3, 5, 10],
	"initial_time_diff":  500,
	"initial_space_diff": 50,
	"initial_time_stamp": 1735823207000,
	"time_diff_divider": 100,
	"time_diff_constant": 1000000,
	"space_diff_constant": 100000000000,
	"vdf_reward": 500000,
	"vdf_reward_interval": 50,
	"reward_adjust_div": 100,
	"reward_adjust_interval": 8640,
	"min_reward_adjust": 10000,
	"reward_activation": 50,
	"transaction_activation": 100,
	"fixed_project_reward": 50000,
	"project_ratio": {
		"value": 1,
		"inverse": 100
	}
}


================================================
FILE: config/mainnet-rc/parent
================================================
../default/

================================================
FILE: config/node/.gitkeep
================================================


================================================
FILE: config/server/HttpServer.json
================================================
{
	"num_threads": 16,
	"deflate_level": 3,
	"max_connections": 200,
	"allow_anon_login": false
}

================================================
FILE: config/server/Node.json
================================================
{
	"num_threads": 32,
	"num_api_threads": 32,
	"max_history": 10000
}

================================================
FILE: config/server/Router.json
================================================
{
	"max_connections": 400
}

================================================
FILE: config/server/TimeLord.json
================================================
{
	"enable_reward": false
}

================================================
FILE: config/server/wapi_threads
================================================
16

================================================
FILE: config/slave/Node.json
================================================
{
	"vdf_slave_mode": true
}

================================================
FILE: config/slave/Router.json
================================================
{
	"master_nodes+": [
		"mmx-th-1.mmx.network",
		"mmx-th-2.mmx.network",
		"mmx-us-1.mmx.network",
		"mmx-si-1.mmx.network"
	]
}

================================================
FILE: config/slave/farmer
================================================
false

================================================
FILE: config/testnet12/Node.json
================================================
{
	"mmx_usd_swap_addr": "mmx1uyyxl7xt8ev0sel7fh756kmqmwze0uzqemuz87560s9w5g23vrxqp4c7vy"
}

================================================
FILE: config/testnet12/Router.json
================================================
{
	"seed_peers": [
		"69.197.174.72", "49.231.43.170", "110.164.184.5", "89.116.184.19",
		"101.207.207.237", "104.157.124.160", "108.12.226.21", "109.206.144.194", "109.248.57.198", "109.63.193.28", "109.67.149.36", "112.193.2.141", "114.224.30.147", "123.112.214.2", "123.185.66.220", "125.229.48.110", "130.0.220.119", "135.131.174.76", "141.135.6.172", "145.255.12.28", "159.2.80.240", "162.198.119.188", "163.58.65.191", "176.106.160.193", "178.141.159.36", "178.205.93.141", "183.166.227.12", "184.155.122.12", "185.219.109.179", "188.134.88.65", "188.241.36.166", "192.168.1.170", "195.14.48.110", "195.239.203.162", "202.131.84.11", "203.118.131.219", "203.129.18.0", "205.250.162.213", "212.15.59.91", "220.133.2.109", "24.35.254.197", "36.62.117.220", "38.15.38.26", "46.65.247.3", "47.253.32.11", "47.34.208.57", "49.231.43.170", "5.12.248.227", "62.0.93.190", "64.254.187.156", "67.172.84.54", "68.5.105.231", "68.6.175.76", "69.127.154.48", "69.197.174.72", "71.166.51.14", "71.183.186.77", "71.227.39.0", "72.80.216.47", "73.196.143.58", "73.204.157.123", "73.205.40.161", "73.51.157.106", "75.100.41.233", "76.232.65.235", "76.76.229.88", "78.107.240.148", "78.82.157.212", "80.235.212.62", "84.215.10.74", "84.215.4.105", "84.215.8.184", "84.244.36.203", "84.52.158.183", "86.30.69.50", "87.152.18.128", "88.69.241.119", "89.45.186.200", "92.221.123.123", "92.234.41.184", "94.27.192.108", "94.61.16.125", "95.105.142.58", "95.22.80.4", "95.52.90.167"
	]
}


================================================
FILE: config/testnet12/Wallet.json
================================================
{
	"token_whitelist": [
		"mmx14tmh82zku65h7wsq0hlt0xayzcjznvu8zgdat92lluwrvx9mfupsqenjla"
	]
}


================================================
FILE: config/testnet12/chain/params.json
================================================
{
	"port": 12342,
	"block_time": 10,
	"plot_filter": 4,
	"min_ksize": 26,
	"infuse_delay": 3,
	"challenge_delay": 6,
	"challenge_interval": 256,
	"commit_delay": 24,
	"min_vdf_segments": 1000,
	"num_vdf_segments": 1500,
	"max_vdf_segments": 2048,
	"network": "testnet12",
	"vdf_reward": 10000,
	"min_reward": 500000,
	"reward_adjust_div": 50000,
	"min_txfee": 20000,
	"min_txfee_io": 10000,
	"min_txfee_sign": 10000,
	"min_txfee_memo": 5000,
	"min_txfee_exec": 10000,
	"min_txfee_deploy": 20000,
	"min_txfee_byte": 100,
	"min_txfee_read": 2000,
	"min_txfee_read_kbyte": 2000,
	"max_block_size": 250000000,
	"max_block_cost": 1000000000,
	"max_tx_cost":     25000000,
	"min_fee_ratio": [1, 2, 3, 5, 10],
	"initial_time_diff":  20000,
	"initial_space_diff": 10,
	"time_diff_constant": 10000,
	"space_diff_constant": 10000000000,
	"virtual_space_constant": 8108,
	"reward_activation": 25000,
	"transaction_activation": 100,
	"fixed_project_reward": 50000,
	"project_ratio": {
		"value": 1,
		"inverse": 100
	},
	"project_addr": "mmx1cvc060jcsk3ywg36c5sm7zmrgth0ex7wp9s7jxvh4kgjgy2c90ss46rhwp"
}


================================================
FILE: config/testnet12/parent
================================================
../default/

================================================
FILE: config/testnet13/Router.json
================================================
{
	"min_sync_peers": 1,
	"seed_peers": [
	    "104.157.124.160",
	    "108.12.226.21",
	    "109.198.29.98",
	    "119.6.178.16",
	    "135.131.174.76",
	    "141.135.6.172",
	    "143.177.124.174",
	    "162.118.7.169",
	    "162.198.119.188",
	    "163.58.65.191",
	    "184.146.2.29",
	    "184.71.194.234",
	    "195.239.203.162",
	    "203.129.18.0",
	    "212.15.59.91",
	    "217.198.130.81",
	    "42.3.123.47",
	    "46.189.185.59",
	    "47.253.32.11",
	    "47.34.208.57",
	    "49.231.43.170",
	    "66.231.154.77",
	    "69.197.174.72",
	    "70.19.84.129",
	    "71.227.39.0",
	    "75.172.49.125",
	    "76.128.231.98",
	    "76.232.65.235",
	    "78.107.240.148",
	    "78.180.96.7",
	    "79.104.211.73",
	    "80.235.212.62",
	    "82.37.10.82",
	    "84.215.4.105",
	    "86.30.69.50",
	    "87.118.169.200",
	    "89.242.3.102",
	    "93.43.225.93",
	    "94.19.237.176",
	    "95.105.142.58",
	    "95.22.80.4",
	    "95.31.212.141",
	    "110.164.184.5",
	    "89.116.184.19"
	]
}


================================================
FILE: config/testnet13/chain/params/escrow_binary
================================================
mmx1whsrvcreuh086puc4jn7dyaxuhljzpp7eju8cda8xpuf78t74n3sjctwxw


================================================
FILE: config/testnet13/chain/params/nft_binary
================================================
mmx1hzp7su7e62c0ax9feyp0ef2rmdfx93xc7hu32xnhspqsrjehy5rs9fwfh2


================================================
FILE: config/testnet13/chain/params/offer_binary
================================================
mmx1egu9gtwwg0tg7vk6x5huup5kx830e6588w8qu7kexj7ememg2mgq9xxe3d


================================================
FILE: config/testnet13/chain/params/plot_nft_binary
================================================
mmx1s7xtqedy4aq2wazhdl66pfr0ycrkhvj9460zfqgtpt5cmaa3weescvuavg


================================================
FILE: config/testnet13/chain/params/relay_binary
================================================
mmx1wx2z0d8626mjweez8j5um0zdfu3uwuvg2tg7fvuxfcezvk9qmets6hac84


================================================
FILE: config/testnet13/chain/params/swap_binary
================================================
mmx1jllzzps6vdc43p7pnst3zn390p3g0c2gf8ckl5fe0eaf5yr70mms8663ya


================================================
FILE: config/testnet13/chain/params/template_binary
================================================
mmx1dmw9j67xsw50n9ax02u6khr64km84tmly35sjwz6ra9jakvav6dqqsn23k


================================================
FILE: config/testnet13/chain/params/time_lock_binary
================================================
mmx1m4gxzmwu7gthp7kl50v34yx555mejmkwaxcy36jy39k0kcxt32xqhznyqv


================================================
FILE: config/testnet13/chain/params/token_binary
================================================
mmx1xeuf6m70xk3n208qn5yncsnfunexg0862vhk9z9c479fs0axgvgsqdgexm


================================================
FILE: config/testnet13/chain/params.json
================================================
{
	"port": 12343,
	"network": "testnet13",
	"plot_filter": 4,
	"post_filter": 10,
	"min_ksize": 26,
	"infuse_delay": 1,
	"challenge_delay": 6,
	"challenge_interval": 256,
	"commit_delay": 24,
	"avg_proof_count": 4,
	"max_proof_count": 20,
	"max_validators": 33,
	"vdf_segment_size": 250000,
	"min_reward": 500000,
	"min_txfee": 20000,
	"min_txfee_io": 10000,
	"min_txfee_sign": 10000,
	"min_txfee_memo": 5000,
	"min_txfee_exec": 10000,
	"min_txfee_deploy": 20000,
	"min_txfee_depend": 10000,
	"min_txfee_byte": 100,
	"min_txfee_read": 2000,
	"min_txfee_read_kbyte": 2000,
	"max_block_size":  250000000,
	"max_block_cost": 1000000000,
	"max_tx_cost":      25000000,
	"max_rcall_depth": 3,
	"max_rcall_width": 5,
	"min_fee_ratio": [1, 2, 3, 5, 10],
	"initial_time_diff":  500,
	"initial_space_diff": 10,
	"initial_time_stamp": 1739216249000,
	"time_diff_divider": 100,
	"time_diff_constant": 1000000,
	"space_diff_constant": 100000000000,
	"vdf_reward": 200000,
	"vdf_reward_interval": 20,
	"reward_adjust_div": 100,
	"reward_adjust_interval": 8640,
	"min_reward_adjust": 10000,
	"reward_activation": 10000,
	"transaction_activation": 20000,
	"fixed_project_reward": 50000,
	"project_ratio": {
		"value": 1,
		"inverse": 100
	},
	"hardfork1_height": 100
}


================================================
FILE: config/testnet13/parent
================================================
../default/

================================================
FILE: config/timelord/Proxy.json
================================================
{
	"export_list": ["vnx.log_out"]
}

================================================
FILE: config/wallet/Proxy.json
================================================
{
	"import_list": ["node.verified_blocks"],
	"export_list": ["vnx.log_out"]
}

================================================
FILE: data/mainnet/project_relay.json
================================================
{
	"__type": "mmx.contract.Executable",
	"name": "Project Reward Relay",
	"binary": "mmx199hvcn9fzr5r9wx9jd4ppzgnerqtt0kfg6c3cgz674y60sw7kwnqznlqvp",
	"init_args": ["mmx1phzvhfh0ausam098r863hnkeqlulp7hxfte67czm86m5kmck7avsyaxgyh"]
}

================================================
FILE: data/mainnet/tx_testnet_rewards.json
================================================
{
  "__type": "mmx.Transaction",
  "id": "F07579B58CACA3CBF7EB9A3BE2BFCB40D8EEAAFAAD1673504AA81B78D1D66D2D",
  "version": 0,
  "expires": 4294967295,
  "fee_ratio": 1024,
  "static_cost": 0,
  "max_fee_amount": 0,
  "note": 0,
  "nonce": 11337,
  "network": "mainnet",
  "sender": null,
  "inputs": [],
  "outputs": [{
      "__type": "mmx.txout_t",
      "address": "mmx17dhvxq6fekkfqtvjwle2pwcyr6f76uhz3vsq6ldkc9r0uzs7nrpqvzh7zs",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "147412500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1eavt4k3qfgc30z5wqtk99f93fq8xhtr82f47v6r9xd266njaqwgs56207d",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "142434000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1cdv0s72kyp8y9f3glg22p32zz450f66rl03hzx5uwzrcrysy0qvq6scyfm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "112554500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1t49g9vz555dcm6dvrxt9hxua58jf57w5rmnjnaynnclww8lmagdqc76mnv",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "96715500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1eklc2eghf2ygvfz2t6wampprupwnkrjlhx23pw5crrwgdxdrsnpsjc7nq0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "96108500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1guzl6jcsz7hkxwvtf8p9nskzg4uefcr6w3qmdg7jyr0urmfsu4uqql3c6v",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "85596000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1e6mrj76enqgg6ah092p0u7y47djaxgygne4gffgmtuypfcyqttdsjs5kqz",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "78844500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1n39pyuyq8slux6rcrvpyfqr554tcytn7nfrmwjetkkryeww59fxsf8qvm3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "58679500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx155480tuk2thf5sqkkgft54hmuafu0mj48gql8fdxdvl08guut6mqvy5sc7",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "51981000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1keg2775ll23shtjh235tw9g7lu3wj5rj50ws62vnwv89p9vd07zqwswcn8",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "51854000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1w7dfqwgrq4v8uyg2kpcda5ec44hnvdeww48zysxue2mttd04tz8qdpt88v",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "49492500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1uh4qtgqkndrp78xx4qp26dwu4wxmqe8h964n9kte83sq8h7ckrvq45zn3d",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "47925500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1z9yl7zqwrfje5kc6j33kenvpxcyn6jztq8aq0h85kf6r8e0d9p0sumlzp7",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "42749500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx12wn9qtfzagz6z6ztxld2hka8cgvwr0nz55l3qjvkg0ayhhjvlscst4phad",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "39617000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx14kjzcwkmkl3ttuvd8e5flk25ulm32hk9xe4xfp0vnfzfe8pe985s76j3hl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "37394000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx16qquaqrzyks7qpq0wv3mz4j3gdk5c0ltnutnurun8ars8s2jszqsj3wzt4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "36525000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx12kjff7s048w38dpcmhelf3f2vt3ul77hrdze97fxr9mhgrw2lvmqnandaf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "36007500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1l3g7hjrczlhsvnshj4jtccavmrrm9chue6ha29hmdua6392mtffq2ddd66",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "34055000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1pt6gzm2amdd63w7juuy8y7wjgzu7v6mc54u2687dy6nnjav2t58spwyffq",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "31511000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ff5rqk4myqr32axrt500v0rh0cjp66uh5y0q7r4ed9xy63c954dq3ea3rv",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "30451000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ymnr2tt7vzcklrk97n2phwz96t2t2au64mjqw58efz2aatkex02qryjcxm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "30404000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1elqhr769rul729fampn6u3ylcxfprr6zgvvndppkzkzzmaefk6csr0s5e2",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "29701000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ddxwuakc6p0mp4yzx3e9rzt6d6xtkvlvfmqnz6nx0umd2y9kc94qsyt8pe",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "29456500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10lrzsfeam8m8lmrxnhzd2zn4kahtkmnthd0nhytstw52s92d0wdq7x0824",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "29443000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1k4lqe48g7y07vfqjkm2rcc8kxfrqg2utg04065paft9arpjmumksyp8g0z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "29008440000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1apz53l6jeqzdtwxry627f2rpagmjwsj42d93ca8jtwcdtht037cq9fsqhm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "27208500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1fmjnl0utvqxfmxpvz9snepkqshj89ylhca3awchtc02f7cjpqlgqerkn92",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "27103500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1aruhdl3f980cr8nud8ph2px3huef6edlv8l8gdua5sgw7cz2p0gs0872r6",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "25697500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1lgvyts4tqf69g0m4nukuz89v7tpg892kkukz6v38q4pcmk4vvw2sddm7zn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "24194500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1jwu2hr9wvxyq9v0eqktfszrla2lr9drecucvlxwc2t0q78a897gs2ufnap",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "24082500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1f80jc8h54emsrld03wdyxjxd9hlqd2lvtxyt0t24d5jygf6mv8kqpas92a",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "22125500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1036ucmxlqgrwmcuuheau33k0h93u0wurkxznvsl7zqgej2x2rauqaktwxw",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "20850500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1rlanqjxk03n363dxgqfek0390p6pfdflm4vnf5d25kp8rxd7lg5q3sf3xf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "19422500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15fpxwx7ah2d8wa0sknq05gplj90xpxf0xknweszyhdd0eacp4yfq2e43z2",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "19268000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1eaxnhktjt4yegapquud644nfkryfyarth7lwdxwdedg8xhhdlxescdxp0q",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "18335500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1e83q59e5gy528v9j68ewnhpgkwkdpt47y03ev9a3y5ma5plsyrqqru2dw4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "18329000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1jpfmyh0ndxwz47t3d6xrdlkd0mq3nckuasn8elvjfa65xtzm2j8qamxfuw",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "18051500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx143n0jquupkdceetyjs8mtnmth0pd9af6dx4hkujwctfwwcqfqpyq6qa4d0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "17674500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1mlj7rhkg5c4gp3w4k8dlck5tyf5493dce5vx3x4m4qpzn7ty8mtq6ek2jc",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "17621000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx199dqhkfs442qerqkzmsaql0tw3jkqkhxd79valmnjcxhdtxu32kqy40gzf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "16879500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1seel6072m4ywm84s0e283gl34drku8p764x7qmw2ae24pvsa6crs6eptk7",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "16847000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1w7jnglje4j85z4dv4z6gpmwagqfcgpg7nq7dh6wu98qq7ckd7umsdq9hn8",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "16791000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx17qkmawx7lmur02c8ruql43x7dvttg3n37890znkczyyctmh3cc2qxf9fyq",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "16645000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx16kkntt0k2spk2xvxlswtwf40p02vlj97cenyvzca58ad8uav68lqfkkh9w",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "15854000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1a9n583hscjyjvu29ulafuxhgfcrtv4j02z0t8lnvzvlhxcvxgf8qxsxysy",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "15080000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10nfcaxrj93rjxxx3us3mwzajznj8qpcd5vg459yfkk8lg90jqq9qxry935",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "14819500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1pstmxwmdgkyzqqll6sdu5vdxpkm82ya4tz78w8n2yq4pdcdz39eq3uwvw5",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "14707000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15cf5205juyar33ugp9qkh4e5ne9n0ylvnyg0uf6uyymd3tgzhc0sm47jfs",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "14642000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1xcalpv2gy0k955p6pl97ayzrycmvrplu9cufx6dfctwrwd9uvpaqypgjxf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "14622000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kezjxhxk8hxk0877hsfzr93p297xqp6ga2jrgptw52fa386gy7jqs6pz57",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "14541000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1vc3s0rqlmy7hrw0wr5mjfzgqx70senjwnp289x6syu9r0m58zvmsk2jl6j",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "14163000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1urhh0ud9hrdzf2x4883wg7mgqe2fztfcnjehxz6kqujve3hn37gsn3f8qr",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "13817000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1fdscrht596p4daxkpzfunczjmurs66j65u5lc3a4q0l99k7h2ayqdvrfnq",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "13756000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1u0rvu8gxz4e0jty0klhmagtva5vh95tvwv9r7pr88957janjzetsppkfvn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "13737500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx133vuztyunrfyrds4nxxyjyx9fq3ssy934pyjeh8atm9emesy5sqsua5jyx",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "13280500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1gs3hunc5t3emm68pfgfduqyu5q47rmdpzexjgam2m7zppmlwmqvq265zc9",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "12967000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kas9v36hhw4rzac60heh2uy9kf0wx7ed39fvhtlzqwhmr7udkl9qlxwys2",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "12738000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx18zjss5ccnhyskugrwlxuy935zn3vz7ns6gyqg2cj8f3r99av9mhsck4ne0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "11854500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx16d3ry985fdkgpvj93xygv0tn2wc9ylpex6t08qz0x6lat9km6dmstdhdhh",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "11843500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1da455czfvskaeewg4prqrcysxuzm0x5kgsge3fxafz3e6ddmvppqpyg796",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "11696000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1p76tw7re288zm3avlruq0v2h38feqe2usscg6cdcfwn3f8cs5ejsjkev6x",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "11579500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15098ny3pc66kn6sgr6t8jehvwf2yzcxm6lxljvr7dfxs3g4u5plssgudwl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "11166000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1n833p7z44rd62g0yvhlua8sv3d8wmyvrt720utk7x4vxwc3j72hqst6yh4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "10763000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1f4g8tdak9nw2waf5v4g8skt6gqqpnnlvxhx0y5vjkm0myv97svhstqzhm5",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "10640000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1fqfjglclexnmhlmr5lvwhqm9x6dqvm8cnsr4dpn4ysl5uzfcdwhss0xtp4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "10628000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1jq306xnr67j6m6dksg2fle285vxga5shrtqffjxc0d84ghnqtklsx0wzmw",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "10327000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx183ajctzcp95lcx2zztjk58gytyzmrlsdljna6lhedqj7h3jn04aqu3snsd",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "10208500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1wcmc5n7v8eujvlzrtuga6fcfmk4d9yjcdhs0fmgenyrt6ycynjdqa6hh0w",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "10039000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1nx2pts6xk2dqlv3xgyad8t9ektausx3qmt3jvl2myg86wz9jxgpsqyevjl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "9640000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1dv9nwp48cr9qwn3h2z8d0ufy4gf7j4hfw2j7lmrf2mk6jxlzy2vqaphdfg",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "9570000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx17gtsl3areyr6g7xscq67jl2xcnz56ekkk9stxvx3qev7hhez3ccs3juqvl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "9109500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1vpva7nkvq3s3auz70l0pfj28e65tqlkajydw9j0f7cmsapmjgfls9u77yc",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "9071500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1uae6fch5rlzfg4ctnra6q2hqhw59ztsn5ghde574lvqcpecvzs7qz7q88l",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "8796000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1wpvwth47waanc4hmp4e56trdt4eefn4gfk5k0plmecc3cfn5rh8qu8ug27",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "8690000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1cv94kw4ttqwzyluzql2cc4trx5mze52qx8ys2pkd7jqg2yp6wzcq0lxaef",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "8663500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1990jyjqxpaphcr9fqmz6fdm9v4kzymtt8kkmnzz2hrdpk8n8ca2qygudv5",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "8444000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1478snw4amjfq0hnhpwl8de8yup2thh5f5uzmyu5g907az5sv6fpsuwfrma",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "8120000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1v93pkhwdq6uq4ujmw3625zkxegf9q6uzv2fepyalydg6tandy92qnxwsnp",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "8004500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1gg6twfxusn0xlnnzzfju53zzwjecm6jkr5r936favpxcjz9d8r6sp3spdn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7984500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1a970ajt3yvqs24e29wpfazvh9fhd0afrmhezd0yxemqntrmtnapqtphgz3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7884000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1hem4nza3a4935vjx6cu0ukft9y4cjyv6duddclqj2jsf9pgnf74sqevle3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7870000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qpyq03vzht2uwf9pzadx3rpa8w8y7pul2he0r5y3497j29ul7x3q7ac26j",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7811000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1q2l8pzuzenlq6quglrsy2879ettj2rkht2rt8hjfg37dg4zeqpjs65g66t",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7796500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1dwr96cxjzyc6532h2gjagegkm58ns4fdrwj6muhccgxn5ysuqg5qn9mzn6",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7771500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1l5dwydjks9s84n3rr52nwggsxfnrf65me7tjnwerse7xxn868ulqfmwwyg",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7608500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kvyj70vfnwjwg6je8tf3dunrwrafy9mlm2wtgqx95vwgnz2mrfcskpydtk",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7575500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1re75j8gejzdje5afrkdsl9xknheax4ymznewazk5jqy4msarp05qz7qqsp",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7559000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ff4lyf7ulfrwt0wfnr6dtpuk6tv0w522ef3pkm5ax8e9wv8crd3qe0a7re",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7488500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1lty50fwzq0wxaxwzxgjzt7y3r3mhn08eccs5ntz3y4sahd5jfxssnz6qzz",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7483000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1n0shgnl0qx006fz825pm7e9uhku7z7c4q9e4kze599ly276khgnqyxh4kf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7439500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1n36ek4z7vprh7xucnje6p5sr4s9mtr0ml9a3wz6xd2kp5v3hunasjn35t6",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7326500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kl3y0kz6jx5w0vxrcx9afkzthe88syuge0ytumakkce4nu969uhqdtj9hu",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7189000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1gqvmjyu2jg6d68f3zytk294re7wv47q98aacrkfx8kuq6f0hsmlqxyfm0t",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7069000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1nc9xdtq7vm8q6du2y7ckk58awmphz66jwa86wa3u3e8ru2q8pazqj6fukn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7062500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1m96tljuk8yjc9xwu4q2awulg8hrgpg0jp6d9al5dm7r2hue2u8ysphwe0u",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "7052000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1hm7d3gpykrggjrt5ckm987xdqkvtqrhac05rzz4e5gjg8m5hxmpqgcvv0s",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6902000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kkq8ezuwsast9zplk8ec0pa0me6u3wydkrg5jn5daycgppy63y7s9y0up7",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6896000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1gca9vvksmtl5ud5lxarqrts9cg72x84gxtcg9h2e085g6eth4cfqtg8j9n",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6863000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1grhexfxkzq9js7t6595mzcnpady60mjuph254rtef25j8x074pzs6s249e",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6835500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx18gzhlxuaafa5rqxlyrzn8n6ldud65ynm5tujhc0ql87f9myx5musf6wuje",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6779000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1rw4n2d4a3mrve8kfwuc8gvqnszd9m68lkqsum0dzk4j4ztlq2jpqrtcpy9",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6648500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1g7jahlldnp96n8dkaz3dygg56kef64q5m6lfjpgktutycdlgyksqdy7xxp",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6613000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx17grsj5sq8z9h02gnl92mpkajy6janxcnrcrg6mm3w5l232tx8j9sufzatk",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6496000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx13kmejc28rs4q53wnrhjw2xhyp2jqjzg78uhswqzy8fzv3reqtf8qvykjwr",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6445500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1r5yfa4n6neaym6mszkpaw0gpr27sv99ge9ketvn0rhl9a9z88kpsslxvwv",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6334500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1yc5f9qcevne2cnp86szf4nnpaxj5kns2nzsx8jgg3ssal39k0cqsrsaepl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6330000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1j3p8gtyajzh07ag8cv2y776h7axrwhvppckxxtltelz08dsaxfxqg6vlwr",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6289500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1nxd6hsaywy69qzx0yktv2v08yskmmq88nfy3l0shgfsp2mpr38cqx89xwm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6205500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qnh3zw2utltxdu9mut6atp326nujr6pmxxhtryn7lq089kv360dq64mj2w",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6187500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10t8nj6dkqmkat9tkatch273fj0lu4yj6xsz4jpsw50ur5rsnjvuspelwru",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "6077500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kgrc0207hk490v9uywllk02vxfx4skq2xn5h7qxuzqs7cxy5z3csuzpjpj",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5985000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ju6l29nxdkdapu9cqk8jf0nhvqc2qjzkecft4ysdtdd030ma8spqh0k5wh",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5790500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1zm2yrzm79wn8lt7uhvaxjy0mcezkxdjujcru9fwnwczl3y5r4hls79m9l2",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5748000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1j7ns20cea2havm328p28vxeyfdcv0yrhndl2h8735slc4u0q3fls6dz77y",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5700000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1q8d78sjm37uz4pps54q0mn4w3yjesr9jg2pprgww6mmput9rg2jqudrwzl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5687500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx16pnkxxv9mu42n7t4pte95ftduqz9ntrdd6u5epqnj5mkdn249wgsmkm77g",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5677000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1afht99ekwmgh9s9h043aygvtl8tmytx7ymgavn6lkdxxczrgjsmsqcx3je",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5657000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1cd3cxagh276743g404ga5u3ksjfz3frghh3ve8nt8a07d7cfvswsq2v7kj",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5543000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx129hgzhuh484dtlgz7y2r4dmc64hqzn4680z4dg8qq2gtwymfm3ksl283x6",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5522000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1hl8lnr4ddyyqynx5qj5psv63ah7atfrt67s9eszlck5dy5yy9aysylv93p",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5495500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1jvtkeetw6w09f6ru7sqp6e2kmfhhcza38ja275cr3w3nsq9w8wpsuvx3y3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5414500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx14ljztszex2rvwpnljuj5zuw4rv9pmdckfgq4n7xj3d6ek9flsqhq6nvu82",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5403000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ca49tk9sh9sdhz3fqcuax7qds4cl8xp4nmfudwz4zpyh70wgef5sz430c3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5278500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx109dcdg3eranmnkkj0x9gtrg3ak4y5s70nkmyp3y269ux5nc5p2zqsuzkry",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5254000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1guajyf4849dkedxpj2aqevkuc9a3u37fmg4hyqzmk4l02n37tfrsygnc5y",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5242000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ud485p4l6ctm6gf06tnlysev78r0rcd8xa2a42ys95x0xyztkz0st9cn6s",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5228500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx17h0euyts7h8ezaj053q5n9khurkay43s2tqfg3jf8sxrejuyj9cq4vtj60",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5197000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1f3ecr58txvmxjrlhnx3nw0wg7y7zdef73gcgjfrvcf8lgrdu3czsn4yx6z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5046500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1awrkcsjegqwa5wgghvcq0kanf24rw4dhmdvfxvgjnlvkkpugp2vqxsdv05",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5035000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1rp6q7eh4zye6494jpq9j6ft69ku2lqqlx363d4z7zspv7wqfqk2skevrl2",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "5033000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1shw36ys05ppa2jn68qy5s7jl5kzy050rqdk4pz8catr2wadnadmqh275ry",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4981000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1lgktvy0vqjnukfkhrm4vthrv86vwhunpwpkquklcavjexsxjgysqmf58sn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4943000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1935m33z20776s8cdrw6wxteazyc7qtcf4smm3mcfsf2xzmlex7sqfz5map",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4928500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1a2ytmujh3evrw2r8ljq6alul6drzqlrpa64ae9f5xp38kecen3hqcruxkg",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4914000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx12amu3muxtrrr54qkd6wr7xtawh2lare2aqptywufhl24rex2u94qzl4tgl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4887000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1tpyah2lre4lsclru42p8zqanwfukpu9n909p6pyrvlcd4mk0dr9ssahxe8",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4885000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1y0ream3up46cckzxl5tj0djvj7numxvrs2staw8zld5297xugz9szhfpq0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4876000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1fheacy3c48nkd0vgukeuqtldfzuxh2qhudhytshgctqe7sek25jqv99qqt",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4865000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qm7k9w4qmnqc2gufp59g6hypfx9gcvpnz5e0j25a66e4vhnztmyqn04u69",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4832500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1pv4hhmymzfvyn4my5vpptp9rdqx9ex6y60y63tgaxre05f3v99vsq7uvz9",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4741000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ks9t2rksthddy00395l48vaqc9rmjuznw0gyuta0jxpkzsce44qs3at8x4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4732000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1lghunzj070ysr4hd2alsujacc26t99zl3cv5qm03ttjaq4ugmvaqqfy920",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4666500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1r0e4s9r8jqvuvznv3vd5k4pfa5ahzgyn6lrgchwu4mpqlzgsx8mselfar7",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4664000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1aa7hmgy7dhsmkhsscp8vlk4y48jyntq0zndsd4lvn4ht0nrjk3vqrtn5mx",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4656000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1g73caa3h93ah6w09g4726rru8xa2nc8vzgsgwzk7pys92jg7p38qz88vlj",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4654500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx19zerahkctf5hxcrtdh2j5xjynl398ge4avn9nl4zsqw2hs9qe7csjqevda",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4632000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ptxl932ypfp3cl7fz506efjpw5wwkyfntvdfcvqa88v7849t64ssp2m4ym",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4623500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ywen6qnhge46fhjqwxtnyapckkakzv5m7gz8339j0kzkvzeev4fsex4z9j",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4591000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1uj0qhzeguf0zayyg2m9z794nrdlk7y7pnprt4w798s5yezgxgvuslzd94k",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4580500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1v2c3pk23x788qwmhh8dexn6mc94an2l3tgj4kp9th0ygz46997nq6xalyy",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4499500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1u9lr65e2v62cht733pjlz5dctk7esxmwaxwjew2xytr7gqgmtnuq3x22cc",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4465500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1wnkyn2ma6l2nnk80y44nrsqf9fdh27gtx60v3sdxvd9uzheruwfs5kf23g",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4413000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1cvga7mz30hh2dnutxpaupdfr4kflug45g695vke7jmnl2kj6jfhs70rvcr",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4402500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qqjqmgyqws0jk04frzf4e98ydd3pkcsfyv65g2t3lgnp9t8z4afq0kqpst",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4385500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1c8s4ve5fznca52l7w3rgyqjuh4sd55hnfrtp0tys77acmmtxdcksjnawr0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4365000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15vny85stuphrkemr4qj4asxyv57q5qhzzc0xyfycd3c59wdx30ssywkqqt",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4357500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1q3eh75hak0v9f9psa365zjypz62q8d0cwv2qrpwpj2hayfn6xfvq747gj4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4352500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx142lrptfxxp77w97ev74rev8qmrkykjf9cchghvhh8nr6dkt9zd8s2e55x6",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4345000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15tfvs7twvmtvpp4zvgpedz4suysu4fa88zuzjyj2yjrkpscme9msaye6tc",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4242500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1c0lcld738xys6rmr0wfyrtgpcvcm8szcst7w9c6cawgmpme6nh6sgtq35u",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4235500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1e3rlxd6da547vjhdswqp05z6tzx50afnmytanvjsuulmmd36yhcs4e6pp3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4217000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10ew79lhecezg2ewrj8l8egjtwmkffvs2jfl8rdgxy32arecyp5xqdryl8y",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4193500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1rs0lu6yh5uhp3pa8tl3dwz5ts392ua52kx5v3p8h5jrd0x68g8yqc6usm5",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4183500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1sp3fn6wkhmsum7jjspvdnj4696wyqc2jx7deaqpxtznus65jr05sg5pmu4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4138000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1s4pkkycenn7e0g0y4c3sz2yrkld7m98mlm8mc67y7lj4trw5se2qy4eq5z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4124000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1d39vgf387ct682mq7ua9vlxpjs8w47ennw69wp05atf65stht9wq5hkxpd",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4111000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx14xms6j4un330ca6y09r8ffag0d9gsw6dgka97c82k32d0qtkuu0svjvmgs",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4072500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10ewttsgpc2vq980wlk0ddtc505vp5edvusl8a388y76peautetfsyj3ej7",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4054500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx18dkl69sxx3wz5u69s59lp9d02qj6czg8h6yv3fzzfk7d2f2dqtas9dls85",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "4025500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx19zr02kj3reljd7fz6lrpwdqep9s2rah2nkcwtm77yxl3ja4sqvcqdxt8gf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3996000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx109nvzs3vhyjqm3l7g72fqdxyh465fedk4xjvy2rnhfmgrw5l8c4sex2mej",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3958000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1mlurm4px73xghkdn02u60qff4f795nnmt04e4as595tf4luvasmsggxmfk",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3924500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1dlc90a4x967re90nh8wzkup7j0rhwwdkp6x6sv0kz8uk7x4suzrs8gav7s",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3922500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1mylh2r9352klltxhjqpfj5jnfll6uqfeqp7xunarlg9cqufrhjvs28jrt3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3903000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1as0ezwhva4ch25cssuzrv8hr2vk4fyt8ycefdtx7dnwt5rgadcps7ezzc4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3898000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1n5w0atjthl70cnj3zll4ku3jl2w7cut8peqdkt04ck9annew2mfss5uu88",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3857500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1drdacsxd6ssaa44mauseapmf9cm0f8nah6tqpnw5hzs5r7vntafqqzqwzy",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3792000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1v35z3r8m5aenzfv9gjx0wcuk9zj5qu98asrr9qa868zrq7qncssq0lsclj",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3790000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kq7xc88lghdv0mu62585fck3ppnlmdxn3jwvhqpks73wc8vwc82sqzyhjq",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3689500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1l3p8ljlzzs2kzr2d992wmj6ru5t95azef4cfnp289zgezfppg34ss5pch4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3664500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ed9e542ggt95rk3ygc3xt29apzs2fsx384mwhqqwy30qs4wdhqgs9qh33j",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3664000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ujghjem0z63dnwrwa8tnswgn8uf2nn8gx26seg4te50wpfjw94pqjhktte",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3654500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1eztxn269lt6rfy0kzkrv9ra79su4ujrua0ukxjxktdgf4zdqnaqsu3xfqg",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3654000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10g3yj722j7psxapmpcusn3atzd2fd5r8pq5s9wmdszxweefexm0qzyjazd",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3644000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ghrrjcqpkwgj9z8e35eqytswrtrwzrtwnrs5sxnwtvezrtwk3k3qrjhlfp",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3581000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1z66g30cq7j7apzf29zmdsu28m5vrqw9x8m9jh2a3vddrxz7fsqcsh4gv0w",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3522000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1u4m0jmxu7avg5am34pjw3g9lwqys7vcfp6ah53w60626rywvrs4sjzl660",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3486000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qhj8xesct7vnc9zrqxj4f2rqrjtt056769mxtugz4h5f6pca8n8q8ghuku",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3207500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1j6nsqqj2g4cvdgf3r3y7e5f3wwvgyu6gh0e579xd2jsn0garhruqft7myr",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3189000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15n95rxf5c58taud2x06sgpldy3mazdyf2lf8cemmezp83hc5nzvqp3l3vr",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3146000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1pdlh0rj93akpwww8apmpfj5awd08ew8c7c8ce4lk2cfehypgj6js7a2eeh",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3117000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ygz7gwf3at3409ggncyfpsyp6cn0ralc4dhezcnkzsxly07x0tgs759304",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3091500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1mcsgnk9wd5wgausw8se9d50gv2m0dk0x8gg658xy76cnuegl850sklk8p9",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3091500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1g4f72rl89zhnxw5qg5fkc64slmmrd8cfakpa4w3xlxpt62s3gdeqhs05d5",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3076500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1zx4nmhzryn2j999yucpqttkmp4rm49gcmdzz5ze90wddg4459s8qf9clz5",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3073000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1tdzqj2k7uw97ta3x459s7mk5jt2uh6p8znxl7f7u38davexzk3xs6tktrp",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "3051500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx143jvevjx827ac7xrc7zx59a3hwd8nvu52khqa4365dk8ct3zff0q2ee25l",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2962000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1xm27rmtx3l7a00laujl97484grv5xqhrled5q7e3awlerfhe32yscwur2z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2934500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1jw4zf9sepfvnnnanj79mqd53pgx683trcms5hfny2nx2dtv9rvkqwhl0f0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2912500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15m60pxy8mjp03mmtf9aq8kajmrt8vrzltj8epytnsucts50fh03qhw98ql",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2903000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1hvdake6jsnu5qa92un6ucw70jsa89athx8egx7507eqjk3s9ujvsmzmgd4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2902500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qn07jmdsetg4k8gqvn3wmv9kqkrhrsvrmlc547zslku4grlunw9qqllens",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2881500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1j5qsf0gulds6ll7mm8aygj9xu52qhcaamadzak5k4c3smx9lajksjyvyzx",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2874000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1pj0uu0lna9r8rgw8ccn4nj4kudgwxchv4l0tjqpw2x97035a2v4qdye8a5",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2871500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1prxda0yejv5m4h6y4pgkzmutaxrd96zsnqss6aq5az6609dzatmq5jnv0e",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2855500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kt5wvvt7k9h6e5muyx3e9pcvpnakawpr7g940gggfgrktsd3pf6s0qnpuu",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2848500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ml4nf4gxrz7yc2uymnu6xdx2ssev2q6696ar90pyz72fgp8vxj7s472hym",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2824500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10px4lhql09zw5nlgn8m062d8zw0j6f75acpf000grqxsma5sg0qqj2d7ns",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2823000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1mjax0p84wdxsfdffhm5tu5fg3alt3zvam683qk0zu4jh6jredj4qqz6kk0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2794000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1na96yskrphrrswsg8rwe0e0gwpy4n360t37u6guxwa42a26wqa4sqpfm9s",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2780000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx19jlhmuspu5xz706c63vheckjl6z7qx9ne5rg9r7c2tq4vj8rt9aqj60yvy",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2772000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1q65hf2l3zdkl5hgvl38syuul0q0nlnt0pn69nqf7euqmxqelqwlq8eskrq",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2745000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1duvwvwf66cepnsng596tkjazant9t44v6fw7qv3umc05ehqcfmyszvzdu9",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2649500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx16y2cjvyxtwgkm5m0x2wy40g2lc59qcept4dqjakfygwghhxnsx4q5cg5xl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2639000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10a32q2xtl4pvm2trnjf8cgyswuyywg4allvc7j5pakau4adcdcnsvmsr0u",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2624500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kjc5re76v4htwy0393zxnut5jcutlewywd5udfgh6l4xh5ya3xps8sv4g3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2623000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ehmcg3t88xt37498wtca2geh2r0v2tzlzagk2jp5stc3heey0vesjefjzh",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2604500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1aeaukjyxfu6gk38swf6s29jrswc67nkra3n3wy5wsxt2fqmvknqq44kzkn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2589000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1d3vplkcw0pjqrpfr3cesjmvslk30p8qxhky5l4gdslclu70tql0qdqp9dn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2565000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1r2wcfugp9ugm44z03eed4ad0t5qhvg8ufc3p7pu40r7l5dkjurfquuahjs",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2533500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx13xgvpxumznaqj5mkhxc493nzhc2kf9w3ks9z99eaznesjrsln0eqgwclyq",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2485000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15hfmkxyxttvpt36w04e0h3sdgr5r25869jpxehj4h6mrt66kppvqp9npnm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2468500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ye76l4yxct7a2842mqa8vcf4q3jqryksu3s6xqvj3qdlaq47es6s2nt552",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2461500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx16f75q09hg545zuftzhkq9cx5sj3twpp2psj7uf5z2nh0vhuf3qxquss7h0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2448000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1js6nrvnl94rcgn8k80dx6uz2da2jj64utkrxqhmvcvuescmrpwwsvh2vna",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2433500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qq2w4yktpymxyhxck2s0z0grp8tlh2l5evsceycvx9af0x3xxhysd536em",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2429500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1tluhal45404w3qcd59uw08lwf28vq3hhmvvd9andxhjgumajl8rqk3jjd9",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2421500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1sy48eekchg24ywy0rp76avyhfd9hh7f8659tsrljz5tujekwm8pqhues99",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2412000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kx69pm743rshqac5lgcstlr8nq4t93hzm8gumkkxmp5y9fglnkes6ve09z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2402350000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kklq024f8w5p3963qd3ac3dz4a03l8g5ejnhqwqgqg0eq0p77hnqmzjuut",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2391000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1u7me3rp6kmfs57wzytrxjh843sypnl0l27unk0c2pzkuuhjhy03qfwcyqf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2383000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1fxxkthhcqf9ryfljy8xr9dcw4nq9q6mfetxx0dyqwq7qkv4vf4lql4qzgx",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2358000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1veepntjet7j6lw2sfx4p9e05day63l65wj2pa7g7cu6rusyzru2qktg3rn",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2322500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1nh05jetwxuhj79j9k4wx6ujsamseykk84383jtmfcpzu2f2hz4wqj4e25c",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2297000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15wphyfczn8lvfmj28gkhsneg8gserwef8ergm9dxm03ngy8adnys2ypvdm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2280500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1tsp5d79u8chvaa2agx55d0mrj69adu2d8ksensvrlwucas0gj86saafr3t",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2218000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1tqmjtpyuvj7ze5ke5qwpclm8zlt233n8japxhxa8jhg94m9gya9qsqxf7c",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2214500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx18h89t0y9m8cy8trcveul508ju6v3tnajz2hrhvcs8rm8pn23djesml7auc",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2198500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1va39vjz042a7czjkc84uyuej9zm06ns9xs0tv5uk3t87xpkssw9qfagvxr",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2196500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx19tp63ptrre654er8rkx5ntgt4z048tutqx4yplu7daxwm2tgk2gq8hp85z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2187500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1e2md0mf5cu5uxmme0hxt4apxg9nd7elstzcr7v393nxmgm0rvryqlr557x",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2152500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1fd7vl03g6xpj6r6c3w4kae4ht7zke6hk3ar0nzhzvjym9yc3v5ksr9knqs",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2149000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx12gqel8celwz6wxq32usd6ut8gejtl5nw705y5pecp0tpyszn80qsgzmptu",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2144500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1cl8r0pfpp2q8fmg2jjk52q8dvhnmf26vx0wwms00ty8xl4snhf3sg65sm2",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2140000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1nwdefg4c7dq34hhvykfzl2um6d6phkfqh22pg5d2q8nderf78n7suz5x6m",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2107500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1x40j0p3ss44jghrx2t0yqr9gqcr36xx9pjss4vvxwj60gkfvg2yqauewfw",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2092500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx136s9temfus3xkgz3ftwqkrg3kpw3nr67088u2ckhkfvazqknycdqe09z9d",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2071000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1lsgrc4ea32dg8zm35yg49a9xzanjav88wdvtvfgu28s92alec5sscmwzm0",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2071000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1krwuwd0xfqxq59rhnglkkduxw8wzq39axh99vtqsy0k6tnac0zcsw7fhj4",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2069000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx17l3xstvyx5rqxzqvswwvf27zz38ckt5q2030selhwe4elqzwe4hscxf06z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2064000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1l0hpmq7hfw4l5y6hfrer0xc980a3mhazzyc82eycvjaugj2d6sgqn349gp",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2063000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx10vl3ux6k9680dmv3fv6e2c3d2yamrlveshxfvnemlv2tlhxan8fsw5vq30",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2034500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1v607ksqyympga4xdpy0pjezyv2gayta3d3vym23jwx30e3ynl6jqwj3jqm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "2005500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx16h8zlf572dedtskx0krrajcrt6d86s0kgukd4rnm7ae9v8tmnvmqhqmdca",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1997500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1xr8hes0tgn95zf7y9zx6x649t84t5c4zas0cyf048rve723u9gaskvfmvc",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1992000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1lc7g4gueljhtkf7ffd3l0x747d8j9gk0z88e58zd9l6f7vh73mgsuzjvx3",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1923500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1n0hnw7qmwehhsz4qf576s0sv5ql6kyq9afgrgmuzzwzfr03ld82q0ta37g",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1923000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1xthtx2n39nvvjrrkfpshq2v6hltn82h36dnxyg942h6drj2q6snsxx32gu",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1912000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx139dxs6z0y9pgp2z4f9lhx8mczfhl6fenrlcpwefv8t7eklktwqzscw26ns",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1902000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kapvcp4xpfzu2ftekrkzwwdz4qtayu0zl7krddrrg6a43sngsnhqq6dl05",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1891000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1mzq54zkhcrww85glxx6kaqeeeeqckrwy0j9d377epmh7vrrssxsq8fel5y",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1870000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kxasqu6r7dsuqtzd4drllld6e6l55dxj54s3pgaxz23mdpvcqymqx84dvu",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1837000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1laf0fn2zjzf0en79t8qu7ecqrdqtxrcswenj4533y2s4hqq37gpqd5jjyt",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1815500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx18d8335fhancnvy2zs5wsq8gvcp0l57n3pejex92ndg6s6s3casaqalq6hf",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1810000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx12uthvnq3g2af96lc3un900pd2tyy8apf0fsqag68d7fxene639tsacu4zm",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1809500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1355xdy9zhgzd8k3grndkwdff9qr8qk8raucr93praws40s27fkrsjlz07p",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1804500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx176s94clt8j3rs0t52r7g906glc53gx8zukhet5ewzp3czz0fsgwqzjtz6c",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1800500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx15qatp4v00zymeq92dmz2sfee0twh36n7vutwp4kcjhdktye8zkjsqftneu",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1795500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx13vvj20fm6lwmjd3anw9cy9hxeq0pexln9h2n5qmmva4ts3q7sqhs39f7dl",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1791000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1kft6gj0a0upukl0dy3qlakx0pm4de4538v92l6saa79jsqkswzcqhjtu6e",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1769000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1g9fl4jus2fumcnkw0k8w9df5cln8yukhrk3kzwuzk5rg68ndmjyqftzc4p",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1760500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qg6du0mef5nz96gz7wa6f0ndmdhqnen0knwz3kw5ytf4kl9f89eq2kmrsw",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1746000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1gqsyr45tlv0t2ct76wqpxtd0asjjq5df8etlhdva8wfvt8facy7stqeq6c",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1743000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx17gfe96qhqt3ylhxxqj7x6qxjzvt8cen7s4ks6e0mt642dplug4vq652g57",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1739000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1gkwel33sdr4tgyfq55az5t5n8fzy3thum3v03jmw3q730ee6ajrs22jkde",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1724500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1g67zee4q9x4wp2s4lkfde4v2m05e90jgn0m42uxw35r22emk3r6qa8ttan",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1715500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx18evqre2xyqqzgspaam0sps0avu9xt7llz7t3r9wexelpy8jnws3s0u7sev",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1682500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1ahnruulrdycd5dr4xzjyymxgf7yp8n90r437ynysr2gz8n2vmpsqxk3kev",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1680000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1qfvy0zcwu0smhdtkkkygyyasjf2eplaurzkq2m2l4ngrnxgy0rpqq8swwy",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1671500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1advv0qlzm5l7whwluwdfspmqzwd2k3ra8rgqqvuj0m5hzy5taneqqy7hww",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1669500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1uq6ytg6v53lsy525m6352hznumufehsecaugpmyq36vezznyvzusmfpxm2",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1626000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1xeqvfd5a63j3j7vq287dvrjxyksw628azkn8u53sc6ftd4l8wr9q40v33w",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1622000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1umu7rghe9664www8lutl5fa03zv9c2gjwvv4ja9w7540zvnuuxvsyyf63z",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1613000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1h9l7sgtnyagj2zctlj0xmmn7275uqpss2dn8funllmgd7aj3auvqv0fy7q",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1611500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1g92fj7rug3g8430z3uz8w9ntlsssknz7vnmw2xwtwy7g0yu3c8js2ucv9s",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1610000000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx19taynglsa6ewczfug4pds0qy0cwstd600hwzel8y02dtn2k2esyshsxfa9",
      "contract": "mmx1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqdgytev",
      "amount": "1604500000",
      "memo": null
    }, {
      "__type": "mmx.txout_t",
      "address": "mmx1uskav6veu3nxfxr4zs6efdk8yth3tuz55zptp56rf62t0ftwy4nqpvarja",
      "contract": "mmx1qqqqqqqqqqqq
Download .txt
gitextract_ky7_skd4/

├── .dockerignore
├── .github/
│   └── workflows/
│       ├── debian.yml
│       ├── docker.yml
│       └── windows.yml
├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── CMakePresets.json
├── Dockerfile
├── LICENSE
├── README.md
├── activate.sh
├── clean_all.sh
├── cmake/
│   ├── build_version_json.cmake
│   ├── custom-triplets/
│   │   └── x64-windows-mmx.cmake
│   ├── debian/
│   │   ├── generic/
│   │   │   └── control
│   │   ├── mmx_node.desktop
│   │   ├── mmx_wallet.desktop
│   │   ├── ubuntu-20.04/
│   │   │   └── control
│   │   ├── ubuntu-22.04/
│   │   │   └── control
│   │   └── ubuntu-24.04/
│   │       └── control
│   ├── nsis/
│   │   └── NSIS.template.in
│   ├── product_version/
│   │   ├── LICENSE
│   │   ├── VersionInfo.in
│   │   ├── VersionResource.rc
│   │   └── generate_product_version.cmake
│   ├── use_cuda.cmake
│   └── win_pack.cmake
├── codegen.sh
├── config/
│   ├── default/
│   │   ├── Farmer.json
│   │   ├── Harvester.json
│   │   ├── HttpServer.json
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── TimeLord.json
│   │   ├── Wallet.json
│   │   ├── WebAPI.json
│   │   ├── mmx_farmer.json
│   │   ├── mmx_harvester.json
│   │   ├── mmx_node.json
│   │   ├── timelord
│   │   └── vnx/
│   │       ├── authentication.json
│   │       └── protected_config+
│   ├── farmer/
│   │   └── Proxy.json
│   ├── local_init/
│   │   ├── Farmer.json
│   │   ├── Harvester.json
│   │   ├── HttpServer.json
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── TimeLord.json
│   │   ├── Wallet.json
│   │   ├── allow_remote
│   │   ├── cuda.json
│   │   ├── opencl.json
│   │   ├── remote_compute
│   │   └── timelord
│   ├── mainnet/
│   │   ├── Router.json
│   │   ├── chain/
│   │   │   ├── params/
│   │   │   │   ├── escrow_binary
│   │   │   │   ├── nft_binary
│   │   │   │   ├── offer_binary
│   │   │   │   ├── plot_binary
│   │   │   │   ├── plot_nft_binary
│   │   │   │   ├── relay_binary
│   │   │   │   ├── swap_binary
│   │   │   │   ├── template_binary
│   │   │   │   ├── time_lock_binary
│   │   │   │   └── token_binary
│   │   │   └── params.json
│   │   └── parent
│   ├── mainnet-rc/
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── Wallet.json
│   │   ├── chain/
│   │   │   └── params.json
│   │   └── parent
│   ├── node/
│   │   └── .gitkeep
│   ├── server/
│   │   ├── HttpServer.json
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── TimeLord.json
│   │   └── wapi_threads
│   ├── slave/
│   │   ├── Node.json
│   │   ├── Router.json
│   │   └── farmer
│   ├── testnet12/
│   │   ├── Node.json
│   │   ├── Router.json
│   │   ├── Wallet.json
│   │   ├── chain/
│   │   │   └── params.json
│   │   └── parent
│   ├── testnet13/
│   │   ├── Router.json
│   │   ├── chain/
│   │   │   ├── params/
│   │   │   │   ├── escrow_binary
│   │   │   │   ├── nft_binary
│   │   │   │   ├── offer_binary
│   │   │   │   ├── plot_nft_binary
│   │   │   │   ├── relay_binary
│   │   │   │   ├── swap_binary
│   │   │   │   ├── template_binary
│   │   │   │   ├── time_lock_binary
│   │   │   │   └── token_binary
│   │   │   └── params.json
│   │   └── parent
│   ├── timelord/
│   │   └── Proxy.json
│   └── wallet/
│       └── Proxy.json
├── data/
│   ├── mainnet/
│   │   ├── project_relay.json
│   │   └── tx_testnet_rewards.json
│   ├── mainnet-rc/
│   │   ├── rewards.json
│   │   ├── rewards.txt
│   │   ├── timelord_rewards.json
│   │   └── timelord_rewards.txt
│   ├── testnet10/
│   │   ├── rewards.json
│   │   └── rewards.txt
│   ├── testnet12/
│   │   ├── rewards.json
│   │   └── rewards.txt
│   ├── testnet8/
│   │   ├── fix.js
│   │   ├── rewards.json
│   │   └── rewards.txt
│   └── testnet9/
│       ├── rewards.json
│       └── rewards.txt
├── docker-entrypoint.sh
├── docs/
│   ├── README.md
│   ├── TODO.txt
│   ├── astro.config.mjs
│   ├── package.json
│   ├── public/
│   │   ├── resources/
│   │   │   └── code/
│   │   │       └── timelord/
│   │   │           ├── architecture/
│   │   │           │   └── Intel_15th-gen_E-core/
│   │   │           │       └── sha256_ni_rec.cpp
│   │   │           └── optimize/
│   │   │               └── sample/
│   │   │                   └── sha256_ni_rec_sample.cpp
│   │   └── robots.txt
│   ├── security/
│   │   └── checklist.txt
│   ├── src/
│   │   ├── components/
│   │   │   ├── MMXCardGrid.astro
│   │   │   ├── MMXLEDBars.astro
│   │   │   ├── MMXLinkCard.astro
│   │   │   ├── MMXLinkCardT.astro
│   │   │   ├── MarkdownContent.astro
│   │   │   └── SocialIcons.astro
│   │   ├── content/
│   │   │   └── docs/
│   │   │       ├── articles/
│   │   │       │   ├── general/
│   │   │       │   │   ├── mmx-tldr.md
│   │   │       │   │   └── mmx-whitepaper.mdx
│   │   │       │   ├── plotting/
│   │   │       │   │   ├── plot-format.md
│   │   │       │   │   └── plot-size.mdx
│   │   │       │   ├── timelord/
│   │   │       │   │   ├── timelord-optimizations.md
│   │   │       │   │   └── timelord-predictions.md
│   │   │       │   └── wallets/
│   │   │       │       └── wallets-mnemonic-passphrase.md
│   │   │       ├── faq/
│   │   │       │   ├── general.md
│   │   │       │   ├── node.md
│   │   │       │   ├── plotting.md
│   │   │       │   ├── timelord.md
│   │   │       │   ├── vdf.md
│   │   │       │   ├── wallet.md
│   │   │       │   └── webgui.md
│   │   │       ├── guides/
│   │   │       │   ├── docker.md
│   │   │       │   ├── getting-started.md
│   │   │       │   ├── installation.md
│   │   │       │   ├── mmx-plotter.mdx
│   │   │       │   ├── optimize-vdf.md
│   │   │       │   └── remote-services.md
│   │   │       ├── index.mdx
│   │   │       ├── reference/
│   │   │       │   ├── MMX_wallet.md
│   │   │       │   ├── NFT_standard.md
│   │   │       │   ├── Token_standard.md
│   │   │       │   ├── blockchain.md
│   │   │       │   └── pooling_protocol.md
│   │   │       └── software/
│   │   │           ├── MMX_script.md
│   │   │           ├── RPC_protocol.md
│   │   │           ├── cli-commands.md
│   │   │           └── web_wallet_api.md
│   │   ├── content.config.ts
│   │   ├── pages/
│   │   │   └── tools/
│   │   │       └── time-calculator.astro
│   │   └── styles/
│   │       └── style.css
│   └── tsconfig.json
├── generated/
│   ├── contract/
│   │   ├── include/
│   │   │   └── mmx/
│   │   │       └── contract/
│   │   │           ├── Binary.hxx
│   │   │           ├── Data.hxx
│   │   │           ├── Executable.hxx
│   │   │           ├── MultiSig.hxx
│   │   │           ├── PubKey.hxx
│   │   │           ├── TokenBase.hxx
│   │   │           ├── WebData.hxx
│   │   │           ├── accept_generic.hxx
│   │   │           ├── method_t.hxx
│   │   │           └── package.hxx
│   │   └── src/
│   │       ├── Binary.cpp
│   │       ├── Data.cpp
│   │       ├── Executable.cpp
│   │       ├── MultiSig.cpp
│   │       ├── PubKey.cpp
│   │       ├── TokenBase.cpp
│   │       ├── WebData.cpp
│   │       ├── method_t.cpp
│   │       └── package.cpp
│   ├── include/
│   │   └── mmx/
│   │       ├── Block.hxx
│   │       ├── BlockHeader.hxx
│   │       ├── ChainParams.hxx
│   │       ├── Challenge.hxx
│   │       ├── Contract.hxx
│   │       ├── FarmInfo.hxx
│   │       ├── FarmerAsyncClient.hxx
│   │       ├── FarmerBase.hxx
│   │       ├── FarmerClient.hxx
│   │       ├── Farmer_get_farm_info.hxx
│   │       ├── Farmer_get_farm_info_return.hxx
│   │       ├── Farmer_get_farmer_keys.hxx
│   │       ├── Farmer_get_farmer_keys_return.hxx
│   │       ├── Farmer_get_mac_addr.hxx
│   │       ├── Farmer_get_mac_addr_return.hxx
│   │       ├── Farmer_get_partial_diff.hxx
│   │       ├── Farmer_get_partial_diff_return.hxx
│   │       ├── Farmer_get_partial_diffs.hxx
│   │       ├── Farmer_get_partial_diffs_return.hxx
│   │       ├── Farmer_sign_block.hxx
│   │       ├── Farmer_sign_block_return.hxx
│   │       ├── Farmer_sign_vote.hxx
│   │       ├── Farmer_sign_vote_return.hxx
│   │       ├── HarvesterAsyncClient.hxx
│   │       ├── HarvesterBase.hxx
│   │       ├── HarvesterClient.hxx
│   │       ├── Harvester_add_plot_dir.hxx
│   │       ├── Harvester_add_plot_dir_return.hxx
│   │       ├── Harvester_get_farm_info.hxx
│   │       ├── Harvester_get_farm_info_return.hxx
│   │       ├── Harvester_get_total_bytes.hxx
│   │       ├── Harvester_get_total_bytes_return.hxx
│   │       ├── Harvester_reload.hxx
│   │       ├── Harvester_reload_return.hxx
│   │       ├── Harvester_rem_plot_dir.hxx
│   │       ├── Harvester_rem_plot_dir_return.hxx
│   │       ├── IntervalRequest.hxx
│   │       ├── KeyFile.hxx
│   │       ├── LookupInfo.hxx
│   │       ├── NetworkInfo.hxx
│   │       ├── NodeAsyncClient.hxx
│   │       ├── NodeBase.hxx
│   │       ├── NodeClient.hxx
│   │       ├── Node_add_block.hxx
│   │       ├── Node_add_block_return.hxx
│   │       ├── Node_add_transaction.hxx
│   │       ├── Node_add_transaction_return.hxx
│   │       ├── Node_call_contract.hxx
│   │       ├── Node_call_contract_return.hxx
│   │       ├── Node_dump_storage.hxx
│   │       ├── Node_dump_storage_return.hxx
│   │       ├── Node_fetch_offers.hxx
│   │       ├── Node_fetch_offers_return.hxx
│   │       ├── Node_get_all_balances.hxx
│   │       ├── Node_get_all_balances_return.hxx
│   │       ├── Node_get_balance.hxx
│   │       ├── Node_get_balance_return.hxx
│   │       ├── Node_get_balances.hxx
│   │       ├── Node_get_balances_return.hxx
│   │       ├── Node_get_block.hxx
│   │       ├── Node_get_block_at.hxx
│   │       ├── Node_get_block_at_return.hxx
│   │       ├── Node_get_block_hash.hxx
│   │       ├── Node_get_block_hash_ex.hxx
│   │       ├── Node_get_block_hash_ex_return.hxx
│   │       ├── Node_get_block_hash_return.hxx
│   │       ├── Node_get_block_return.hxx
│   │       ├── Node_get_contract.hxx
│   │       ├── Node_get_contract_balances.hxx
│   │       ├── Node_get_contract_balances_return.hxx
│   │       ├── Node_get_contract_for.hxx
│   │       ├── Node_get_contract_for_return.hxx
│   │       ├── Node_get_contract_return.hxx
│   │       ├── Node_get_contracts.hxx
│   │       ├── Node_get_contracts_by.hxx
│   │       ├── Node_get_contracts_by_return.hxx
│   │       ├── Node_get_contracts_owned_by.hxx
│   │       ├── Node_get_contracts_owned_by_return.hxx
│   │       ├── Node_get_contracts_return.hxx
│   │       ├── Node_get_exec_history.hxx
│   │       ├── Node_get_exec_history_return.hxx
│   │       ├── Node_get_farmed_block_summary.hxx
│   │       ├── Node_get_farmed_block_summary_return.hxx
│   │       ├── Node_get_farmed_blocks.hxx
│   │       ├── Node_get_farmed_blocks_return.hxx
│   │       ├── Node_get_farmer_ranking.hxx
│   │       ├── Node_get_farmer_ranking_return.hxx
│   │       ├── Node_get_genesis_hash.hxx
│   │       ├── Node_get_genesis_hash_return.hxx
│   │       ├── Node_get_header.hxx
│   │       ├── Node_get_header_at.hxx
│   │       ├── Node_get_header_at_return.hxx
│   │       ├── Node_get_header_return.hxx
│   │       ├── Node_get_height.hxx
│   │       ├── Node_get_height_return.hxx
│   │       ├── Node_get_history.hxx
│   │       ├── Node_get_history_memo.hxx
│   │       ├── Node_get_history_memo_return.hxx
│   │       ├── Node_get_history_return.hxx
│   │       ├── Node_get_network_info.hxx
│   │       ├── Node_get_network_info_return.hxx
│   │       ├── Node_get_offer.hxx
│   │       ├── Node_get_offer_return.hxx
│   │       ├── Node_get_offers.hxx
│   │       ├── Node_get_offers_by.hxx
│   │       ├── Node_get_offers_by_return.hxx
│   │       ├── Node_get_offers_return.hxx
│   │       ├── Node_get_params.hxx
│   │       ├── Node_get_params_return.hxx
│   │       ├── Node_get_plot_nft_info.hxx
│   │       ├── Node_get_plot_nft_info_return.hxx
│   │       ├── Node_get_plot_nft_target.hxx
│   │       ├── Node_get_plot_nft_target_return.hxx
│   │       ├── Node_get_recent_offers.hxx
│   │       ├── Node_get_recent_offers_for.hxx
│   │       ├── Node_get_recent_offers_for_return.hxx
│   │       ├── Node_get_recent_offers_return.hxx
│   │       ├── Node_get_swap_equivalent_liquidity.hxx
│   │       ├── Node_get_swap_equivalent_liquidity_return.hxx
│   │       ├── Node_get_swap_fees_earned.hxx
│   │       ├── Node_get_swap_fees_earned_return.hxx
│   │       ├── Node_get_swap_history.hxx
│   │       ├── Node_get_swap_history_return.hxx
│   │       ├── Node_get_swap_info.hxx
│   │       ├── Node_get_swap_info_return.hxx
│   │       ├── Node_get_swap_liquidity_by.hxx
│   │       ├── Node_get_swap_liquidity_by_return.hxx
│   │       ├── Node_get_swap_trade_estimate.hxx
│   │       ├── Node_get_swap_trade_estimate_return.hxx
│   │       ├── Node_get_swap_user_info.hxx
│   │       ├── Node_get_swap_user_info_return.hxx
│   │       ├── Node_get_swaps.hxx
│   │       ├── Node_get_swaps_return.hxx
│   │       ├── Node_get_synced_height.hxx
│   │       ├── Node_get_synced_height_return.hxx
│   │       ├── Node_get_synced_vdf_height.hxx
│   │       ├── Node_get_synced_vdf_height_return.hxx
│   │       ├── Node_get_total_balance.hxx
│   │       ├── Node_get_total_balance_return.hxx
│   │       ├── Node_get_total_balances.hxx
│   │       ├── Node_get_total_balances_return.hxx
│   │       ├── Node_get_total_supply.hxx
│   │       ├── Node_get_total_supply_return.hxx
│   │       ├── Node_get_trade_history.hxx
│   │       ├── Node_get_trade_history_for.hxx
│   │       ├── Node_get_trade_history_for_return.hxx
│   │       ├── Node_get_trade_history_return.hxx
│   │       ├── Node_get_transaction.hxx
│   │       ├── Node_get_transaction_return.hxx
│   │       ├── Node_get_transactions.hxx
│   │       ├── Node_get_transactions_return.hxx
│   │       ├── Node_get_tx_height.hxx
│   │       ├── Node_get_tx_height_return.hxx
│   │       ├── Node_get_tx_ids.hxx
│   │       ├── Node_get_tx_ids_at.hxx
│   │       ├── Node_get_tx_ids_at_return.hxx
│   │       ├── Node_get_tx_ids_return.hxx
│   │       ├── Node_get_tx_ids_since.hxx
│   │       ├── Node_get_tx_ids_since_return.hxx
│   │       ├── Node_get_tx_info.hxx
│   │       ├── Node_get_tx_info_for.hxx
│   │       ├── Node_get_tx_info_for_return.hxx
│   │       ├── Node_get_tx_info_return.hxx
│   │       ├── Node_get_vdf_height.hxx
│   │       ├── Node_get_vdf_height_return.hxx
│   │       ├── Node_get_vdf_peak.hxx
│   │       ├── Node_get_vdf_peak_return.hxx
│   │       ├── Node_read_storage.hxx
│   │       ├── Node_read_storage_array.hxx
│   │       ├── Node_read_storage_array_return.hxx
│   │       ├── Node_read_storage_entry_addr.hxx
│   │       ├── Node_read_storage_entry_addr_return.hxx
│   │       ├── Node_read_storage_entry_string.hxx
│   │       ├── Node_read_storage_entry_string_return.hxx
│   │       ├── Node_read_storage_entry_var.hxx
│   │       ├── Node_read_storage_entry_var_return.hxx
│   │       ├── Node_read_storage_field.hxx
│   │       ├── Node_read_storage_field_return.hxx
│   │       ├── Node_read_storage_map.hxx
│   │       ├── Node_read_storage_map_return.hxx
│   │       ├── Node_read_storage_object.hxx
│   │       ├── Node_read_storage_object_return.hxx
│   │       ├── Node_read_storage_return.hxx
│   │       ├── Node_read_storage_var.hxx
│   │       ├── Node_read_storage_var_return.hxx
│   │       ├── Node_revert_sync.hxx
│   │       ├── Node_revert_sync_return.hxx
│   │       ├── Node_start_sync.hxx
│   │       ├── Node_start_sync_return.hxx
│   │       ├── Node_validate.hxx
│   │       ├── Node_validate_return.hxx
│   │       ├── Node_verify_partial.hxx
│   │       ├── Node_verify_partial_return.hxx
│   │       ├── Node_verify_plot_nft_target.hxx
│   │       ├── Node_verify_plot_nft_target_return.hxx
│   │       ├── Operation.hxx
│   │       ├── Partial.hxx
│   │       ├── PeerInfo.hxx
│   │       ├── PlotHeader.hxx
│   │       ├── ProofOfSpace.hxx
│   │       ├── ProofOfSpaceNFT.hxx
│   │       ├── ProofOfSpaceOG.hxx
│   │       ├── ProofOfTime.hxx
│   │       ├── ProofResponse.hxx
│   │       ├── ProofServerAsyncClient.hxx
│   │       ├── ProofServerBase.hxx
│   │       ├── ProofServerClient.hxx
│   │       ├── ProofServer_compute.hxx
│   │       ├── ProofServer_compute_return.hxx
│   │       ├── ReceiveNote.hxx
│   │       ├── Request.hxx
│   │       ├── Return.hxx
│   │       ├── RouterAsyncClient.hxx
│   │       ├── RouterBase.hxx
│   │       ├── RouterClient.hxx
│   │       ├── Router_discover.hxx
│   │       ├── Router_discover_return.hxx
│   │       ├── Router_fetch_block.hxx
│   │       ├── Router_fetch_block_at.hxx
│   │       ├── Router_fetch_block_at_return.hxx
│   │       ├── Router_fetch_block_return.hxx
│   │       ├── Router_get_blocks_at.hxx
│   │       ├── Router_get_blocks_at_return.hxx
│   │       ├── Router_get_connected_peers.hxx
│   │       ├── Router_get_connected_peers_return.hxx
│   │       ├── Router_get_id.hxx
│   │       ├── Router_get_id_return.hxx
│   │       ├── Router_get_info.hxx
│   │       ├── Router_get_info_return.hxx
│   │       ├── Router_get_known_peers.hxx
│   │       ├── Router_get_known_peers_return.hxx
│   │       ├── Router_get_peer_info.hxx
│   │       ├── Router_get_peer_info_return.hxx
│   │       ├── Router_get_peers.hxx
│   │       ├── Router_get_peers_return.hxx
│   │       ├── Router_kick_peer.hxx
│   │       ├── Router_kick_peer_return.hxx
│   │       ├── Router_sign_msg.hxx
│   │       ├── Router_sign_msg_return.hxx
│   │       ├── Solution.hxx
│   │       ├── TimeLordAsyncClient.hxx
│   │       ├── TimeLordBase.hxx
│   │       ├── TimeLordClient.hxx
│   │       ├── TimeLord_stop_vdf.hxx
│   │       ├── TimeLord_stop_vdf_return.hxx
│   │       ├── Transaction.hxx
│   │       ├── TransactionBase.hxx
│   │       ├── VDF_Point.hxx
│   │       ├── ValidatorVote.hxx
│   │       ├── WalletAsyncClient.hxx
│   │       ├── WalletBase.hxx
│   │       ├── WalletClient.hxx
│   │       ├── WalletFile.hxx
│   │       ├── Wallet_accept_offer.hxx
│   │       ├── Wallet_accept_offer_return.hxx
│   │       ├── Wallet_add_account.hxx
│   │       ├── Wallet_add_account_return.hxx
│   │       ├── Wallet_add_token.hxx
│   │       ├── Wallet_add_token_return.hxx
│   │       ├── Wallet_cancel_offer.hxx
│   │       ├── Wallet_cancel_offer_return.hxx
│   │       ├── Wallet_complete.hxx
│   │       ├── Wallet_complete_return.hxx
│   │       ├── Wallet_create_account.hxx
│   │       ├── Wallet_create_account_return.hxx
│   │       ├── Wallet_create_wallet.hxx
│   │       ├── Wallet_create_wallet_return.hxx
│   │       ├── Wallet_deploy.hxx
│   │       ├── Wallet_deploy_return.hxx
│   │       ├── Wallet_deposit.hxx
│   │       ├── Wallet_deposit_return.hxx
│   │       ├── Wallet_execute.hxx
│   │       ├── Wallet_execute_return.hxx
│   │       ├── Wallet_export_wallet.hxx
│   │       ├── Wallet_export_wallet_return.hxx
│   │       ├── Wallet_find_wallet_by_addr.hxx
│   │       ├── Wallet_find_wallet_by_addr_return.hxx
│   │       ├── Wallet_gather_inputs_for.hxx
│   │       ├── Wallet_gather_inputs_for_return.hxx
│   │       ├── Wallet_get_account.hxx
│   │       ├── Wallet_get_account_return.hxx
│   │       ├── Wallet_get_address.hxx
│   │       ├── Wallet_get_address_return.hxx
│   │       ├── Wallet_get_all_accounts.hxx
│   │       ├── Wallet_get_all_accounts_return.hxx
│   │       ├── Wallet_get_all_addresses.hxx
│   │       ├── Wallet_get_all_addresses_return.hxx
│   │       ├── Wallet_get_all_farmer_keys.hxx
│   │       ├── Wallet_get_all_farmer_keys_return.hxx
│   │       ├── Wallet_get_balance.hxx
│   │       ├── Wallet_get_balance_return.hxx
│   │       ├── Wallet_get_balances.hxx
│   │       ├── Wallet_get_balances_return.hxx
│   │       ├── Wallet_get_contract_balances.hxx
│   │       ├── Wallet_get_contract_balances_return.hxx
│   │       ├── Wallet_get_contracts.hxx
│   │       ├── Wallet_get_contracts_owned.hxx
│   │       ├── Wallet_get_contracts_owned_return.hxx
│   │       ├── Wallet_get_contracts_return.hxx
│   │       ├── Wallet_get_farmer_keys.hxx
│   │       ├── Wallet_get_farmer_keys_return.hxx
│   │       ├── Wallet_get_history.hxx
│   │       ├── Wallet_get_history_return.hxx
│   │       ├── Wallet_get_master_seed.hxx
│   │       ├── Wallet_get_master_seed_return.hxx
│   │       ├── Wallet_get_mnemonic_seed.hxx
│   │       ├── Wallet_get_mnemonic_seed_return.hxx
│   │       ├── Wallet_get_mnemonic_wordlist.hxx
│   │       ├── Wallet_get_mnemonic_wordlist_return.hxx
│   │       ├── Wallet_get_offers.hxx
│   │       ├── Wallet_get_offers_return.hxx
│   │       ├── Wallet_get_swap_liquidity.hxx
│   │       ├── Wallet_get_swap_liquidity_return.hxx
│   │       ├── Wallet_get_token_list.hxx
│   │       ├── Wallet_get_token_list_return.hxx
│   │       ├── Wallet_get_total_balances.hxx
│   │       ├── Wallet_get_total_balances_return.hxx
│   │       ├── Wallet_get_tx_log.hxx
│   │       ├── Wallet_get_tx_log_return.hxx
│   │       ├── Wallet_import_wallet.hxx
│   │       ├── Wallet_import_wallet_return.hxx
│   │       ├── Wallet_is_locked.hxx
│   │       ├── Wallet_is_locked_return.hxx
│   │       ├── Wallet_lock.hxx
│   │       ├── Wallet_lock_return.hxx
│   │       ├── Wallet_make_offer.hxx
│   │       ├── Wallet_make_offer_return.hxx
│   │       ├── Wallet_mark_spent.hxx
│   │       ├── Wallet_mark_spent_return.hxx
│   │       ├── Wallet_offer_trade.hxx
│   │       ├── Wallet_offer_trade_return.hxx
│   │       ├── Wallet_offer_withdraw.hxx
│   │       ├── Wallet_offer_withdraw_return.hxx
│   │       ├── Wallet_plotnft_create.hxx
│   │       ├── Wallet_plotnft_create_return.hxx
│   │       ├── Wallet_plotnft_exec.hxx
│   │       ├── Wallet_plotnft_exec_return.hxx
│   │       ├── Wallet_release.hxx
│   │       ├── Wallet_release_all.hxx
│   │       ├── Wallet_release_all_return.hxx
│   │       ├── Wallet_release_return.hxx
│   │       ├── Wallet_rem_token.hxx
│   │       ├── Wallet_rem_token_return.hxx
│   │       ├── Wallet_remove_account.hxx
│   │       ├── Wallet_remove_account_return.hxx
│   │       ├── Wallet_reserve.hxx
│   │       ├── Wallet_reserve_return.hxx
│   │       ├── Wallet_reset_cache.hxx
│   │       ├── Wallet_reset_cache_return.hxx
│   │       ├── Wallet_send.hxx
│   │       ├── Wallet_send_from.hxx
│   │       ├── Wallet_send_from_return.hxx
│   │       ├── Wallet_send_many.hxx
│   │       ├── Wallet_send_many_return.hxx
│   │       ├── Wallet_send_off.hxx
│   │       ├── Wallet_send_off_return.hxx
│   │       ├── Wallet_send_return.hxx
│   │       ├── Wallet_set_address_count.hxx
│   │       ├── Wallet_set_address_count_return.hxx
│   │       ├── Wallet_sign_msg.hxx
│   │       ├── Wallet_sign_msg_return.hxx
│   │       ├── Wallet_sign_off.hxx
│   │       ├── Wallet_sign_off_return.hxx
│   │       ├── Wallet_swap_add_liquid.hxx
│   │       ├── Wallet_swap_add_liquid_return.hxx
│   │       ├── Wallet_swap_rem_liquid.hxx
│   │       ├── Wallet_swap_rem_liquid_return.hxx
│   │       ├── Wallet_swap_trade.hxx
│   │       ├── Wallet_swap_trade_return.hxx
│   │       ├── Wallet_unlock.hxx
│   │       ├── Wallet_unlock_return.hxx
│   │       ├── Wallet_update_cache.hxx
│   │       ├── Wallet_update_cache_return.hxx
│   │       ├── WebAPIAsyncClient.hxx
│   │       ├── WebAPIBase.hxx
│   │       ├── WebAPIClient.hxx
│   │       ├── WebAPI_shutdown.hxx
│   │       ├── WebAPI_shutdown_return.hxx
│   │       ├── accept_generic.hxx
│   │       ├── account_info_t.hxx
│   │       ├── account_t.hxx
│   │       ├── balance_t.hxx
│   │       ├── block_index_t.hxx
│   │       ├── compile_flags_t.hxx
│   │       ├── error_code_e.hxx
│   │       ├── exec_entry_t.hxx
│   │       ├── exec_error_t.hxx
│   │       ├── exec_result_t.hxx
│   │       ├── farmed_block_info_t.hxx
│   │       ├── farmed_block_summary_t.hxx
│   │       ├── node_info_t.hxx
│   │       ├── node_type_e.hxx
│   │       ├── offer_data_t.hxx
│   │       ├── package.hxx
│   │       ├── peer_info_t.hxx
│   │       ├── permission_e.hxx
│   │       ├── plot_nft_info_t.hxx
│   │       ├── pooling_error_e.hxx
│   │       ├── pooling_info_t.hxx
│   │       ├── pooling_stats_t.hxx
│   │       ├── query_filter_t.hxx
│   │       ├── spend_options_t.hxx
│   │       ├── swap_entry_t.hxx
│   │       ├── swap_info_t.hxx
│   │       ├── swap_pool_info_t.hxx
│   │       ├── swap_user_info_t.hxx
│   │       ├── table_entry_t.hxx
│   │       ├── trade_entry_t.hxx
│   │       ├── trade_log_t.hxx
│   │       ├── tx_entry_t.hxx
│   │       ├── tx_index_t.hxx
│   │       ├── tx_info_t.hxx
│   │       ├── tx_log_entry_t.hxx
│   │       ├── tx_note_e.hxx
│   │       ├── tx_type_e.hxx
│   │       ├── txin_t.hxx
│   │       ├── txio_entry_t.hxx
│   │       ├── txio_t.hxx
│   │       ├── txout_t.hxx
│   │       ├── uint_fraction_t.hxx
│   │       ├── ulong_fraction_t.hxx
│   │       └── virtual_plot_info_t.hxx
│   ├── operation/
│   │   ├── include/
│   │   │   └── mmx/
│   │   │       └── operation/
│   │   │           ├── Deposit.hxx
│   │   │           ├── Execute.hxx
│   │   │           ├── accept_generic.hxx
│   │   │           └── package.hxx
│   │   └── src/
│   │       ├── Deposit.cpp
│   │       ├── Execute.cpp
│   │       └── package.cpp
│   ├── solution/
│   │   ├── include/
│   │   │   └── mmx/
│   │   │       └── solution/
│   │   │           ├── MultiSig.hxx
│   │   │           ├── PubKey.hxx
│   │   │           ├── accept_generic.hxx
│   │   │           └── package.hxx
│   │   └── src/
│   │       ├── MultiSig.cpp
│   │       ├── PubKey.cpp
│   │       └── package.cpp
│   ├── src/
│   │   ├── Block.cpp
│   │   ├── BlockHeader.cpp
│   │   ├── ChainParams.cpp
│   │   ├── Challenge.cpp
│   │   ├── Contract.cpp
│   │   ├── FarmInfo.cpp
│   │   ├── FarmerAsyncClient.cpp
│   │   ├── FarmerBase.cpp
│   │   ├── FarmerClient.cpp
│   │   ├── Farmer_get_farm_info.cpp
│   │   ├── Farmer_get_farm_info_return.cpp
│   │   ├── Farmer_get_farmer_keys.cpp
│   │   ├── Farmer_get_farmer_keys_return.cpp
│   │   ├── Farmer_get_mac_addr.cpp
│   │   ├── Farmer_get_mac_addr_return.cpp
│   │   ├── Farmer_get_partial_diff.cpp
│   │   ├── Farmer_get_partial_diff_return.cpp
│   │   ├── Farmer_get_partial_diffs.cpp
│   │   ├── Farmer_get_partial_diffs_return.cpp
│   │   ├── Farmer_sign_block.cpp
│   │   ├── Farmer_sign_block_return.cpp
│   │   ├── Farmer_sign_vote.cpp
│   │   ├── Farmer_sign_vote_return.cpp
│   │   ├── HarvesterAsyncClient.cpp
│   │   ├── HarvesterBase.cpp
│   │   ├── HarvesterClient.cpp
│   │   ├── Harvester_add_plot_dir.cpp
│   │   ├── Harvester_add_plot_dir_return.cpp
│   │   ├── Harvester_get_farm_info.cpp
│   │   ├── Harvester_get_farm_info_return.cpp
│   │   ├── Harvester_get_total_bytes.cpp
│   │   ├── Harvester_get_total_bytes_return.cpp
│   │   ├── Harvester_reload.cpp
│   │   ├── Harvester_reload_return.cpp
│   │   ├── Harvester_rem_plot_dir.cpp
│   │   ├── Harvester_rem_plot_dir_return.cpp
│   │   ├── IntervalRequest.cpp
│   │   ├── KeyFile.cpp
│   │   ├── LookupInfo.cpp
│   │   ├── NetworkInfo.cpp
│   │   ├── NodeAsyncClient.cpp
│   │   ├── NodeBase.cpp
│   │   ├── NodeClient.cpp
│   │   ├── Node_add_block.cpp
│   │   ├── Node_add_block_return.cpp
│   │   ├── Node_add_transaction.cpp
│   │   ├── Node_add_transaction_return.cpp
│   │   ├── Node_call_contract.cpp
│   │   ├── Node_call_contract_return.cpp
│   │   ├── Node_dump_storage.cpp
│   │   ├── Node_dump_storage_return.cpp
│   │   ├── Node_fetch_offers.cpp
│   │   ├── Node_fetch_offers_return.cpp
│   │   ├── Node_get_all_balances.cpp
│   │   ├── Node_get_all_balances_return.cpp
│   │   ├── Node_get_balance.cpp
│   │   ├── Node_get_balance_return.cpp
│   │   ├── Node_get_balances.cpp
│   │   ├── Node_get_balances_return.cpp
│   │   ├── Node_get_block.cpp
│   │   ├── Node_get_block_at.cpp
│   │   ├── Node_get_block_at_return.cpp
│   │   ├── Node_get_block_hash.cpp
│   │   ├── Node_get_block_hash_ex.cpp
│   │   ├── Node_get_block_hash_ex_return.cpp
│   │   ├── Node_get_block_hash_return.cpp
│   │   ├── Node_get_block_return.cpp
│   │   ├── Node_get_contract.cpp
│   │   ├── Node_get_contract_balances.cpp
│   │   ├── Node_get_contract_balances_return.cpp
│   │   ├── Node_get_contract_for.cpp
│   │   ├── Node_get_contract_for_return.cpp
│   │   ├── Node_get_contract_return.cpp
│   │   ├── Node_get_contracts.cpp
│   │   ├── Node_get_contracts_by.cpp
│   │   ├── Node_get_contracts_by_return.cpp
│   │   ├── Node_get_contracts_owned_by.cpp
│   │   ├── Node_get_contracts_owned_by_return.cpp
│   │   ├── Node_get_contracts_return.cpp
│   │   ├── Node_get_exec_history.cpp
│   │   ├── Node_get_exec_history_return.cpp
│   │   ├── Node_get_farmed_block_summary.cpp
│   │   ├── Node_get_farmed_block_summary_return.cpp
│   │   ├── Node_get_farmed_blocks.cpp
│   │   ├── Node_get_farmed_blocks_return.cpp
│   │   ├── Node_get_farmer_ranking.cpp
│   │   ├── Node_get_farmer_ranking_return.cpp
│   │   ├── Node_get_genesis_hash.cpp
│   │   ├── Node_get_genesis_hash_return.cpp
│   │   ├── Node_get_header.cpp
│   │   ├── Node_get_header_at.cpp
│   │   ├── Node_get_header_at_return.cpp
│   │   ├── Node_get_header_return.cpp
│   │   ├── Node_get_height.cpp
│   │   ├── Node_get_height_return.cpp
│   │   ├── Node_get_history.cpp
│   │   ├── Node_get_history_memo.cpp
│   │   ├── Node_get_history_memo_return.cpp
│   │   ├── Node_get_history_return.cpp
│   │   ├── Node_get_network_info.cpp
│   │   ├── Node_get_network_info_return.cpp
│   │   ├── Node_get_offer.cpp
│   │   ├── Node_get_offer_return.cpp
│   │   ├── Node_get_offers.cpp
│   │   ├── Node_get_offers_by.cpp
│   │   ├── Node_get_offers_by_return.cpp
│   │   ├── Node_get_offers_return.cpp
│   │   ├── Node_get_params.cpp
│   │   ├── Node_get_params_return.cpp
│   │   ├── Node_get_plot_nft_info.cpp
│   │   ├── Node_get_plot_nft_info_return.cpp
│   │   ├── Node_get_plot_nft_target.cpp
│   │   ├── Node_get_plot_nft_target_return.cpp
│   │   ├── Node_get_recent_offers.cpp
│   │   ├── Node_get_recent_offers_for.cpp
│   │   ├── Node_get_recent_offers_for_return.cpp
│   │   ├── Node_get_recent_offers_return.cpp
│   │   ├── Node_get_swap_equivalent_liquidity.cpp
│   │   ├── Node_get_swap_equivalent_liquidity_return.cpp
│   │   ├── Node_get_swap_fees_earned.cpp
│   │   ├── Node_get_swap_fees_earned_return.cpp
│   │   ├── Node_get_swap_history.cpp
│   │   ├── Node_get_swap_history_return.cpp
│   │   ├── Node_get_swap_info.cpp
│   │   ├── Node_get_swap_info_return.cpp
│   │   ├── Node_get_swap_liquidity_by.cpp
│   │   ├── Node_get_swap_liquidity_by_return.cpp
│   │   ├── Node_get_swap_trade_estimate.cpp
│   │   ├── Node_get_swap_trade_estimate_return.cpp
│   │   ├── Node_get_swap_user_info.cpp
│   │   ├── Node_get_swap_user_info_return.cpp
│   │   ├── Node_get_swaps.cpp
│   │   ├── Node_get_swaps_return.cpp
│   │   ├── Node_get_synced_height.cpp
│   │   ├── Node_get_synced_height_return.cpp
│   │   ├── Node_get_synced_vdf_height.cpp
│   │   ├── Node_get_synced_vdf_height_return.cpp
│   │   ├── Node_get_total_balance.cpp
│   │   ├── Node_get_total_balance_return.cpp
│   │   ├── Node_get_total_balances.cpp
│   │   ├── Node_get_total_balances_return.cpp
│   │   ├── Node_get_total_supply.cpp
│   │   ├── Node_get_total_supply_return.cpp
│   │   ├── Node_get_trade_history.cpp
│   │   ├── Node_get_trade_history_for.cpp
│   │   ├── Node_get_trade_history_for_return.cpp
│   │   ├── Node_get_trade_history_return.cpp
│   │   ├── Node_get_transaction.cpp
│   │   ├── Node_get_transaction_return.cpp
│   │   ├── Node_get_transactions.cpp
│   │   ├── Node_get_transactions_return.cpp
│   │   ├── Node_get_tx_height.cpp
│   │   ├── Node_get_tx_height_return.cpp
│   │   ├── Node_get_tx_ids.cpp
│   │   ├── Node_get_tx_ids_at.cpp
│   │   ├── Node_get_tx_ids_at_return.cpp
│   │   ├── Node_get_tx_ids_return.cpp
│   │   ├── Node_get_tx_ids_since.cpp
│   │   ├── Node_get_tx_ids_since_return.cpp
│   │   ├── Node_get_tx_info.cpp
│   │   ├── Node_get_tx_info_for.cpp
│   │   ├── Node_get_tx_info_for_return.cpp
│   │   ├── Node_get_tx_info_return.cpp
│   │   ├── Node_get_vdf_height.cpp
│   │   ├── Node_get_vdf_height_return.cpp
│   │   ├── Node_get_vdf_peak.cpp
│   │   ├── Node_get_vdf_peak_return.cpp
│   │   ├── Node_read_storage.cpp
│   │   ├── Node_read_storage_array.cpp
│   │   ├── Node_read_storage_array_return.cpp
│   │   ├── Node_read_storage_entry_addr.cpp
│   │   ├── Node_read_storage_entry_addr_return.cpp
│   │   ├── Node_read_storage_entry_string.cpp
│   │   ├── Node_read_storage_entry_string_return.cpp
│   │   ├── Node_read_storage_entry_var.cpp
│   │   ├── Node_read_storage_entry_var_return.cpp
│   │   ├── Node_read_storage_field.cpp
│   │   ├── Node_read_storage_field_return.cpp
│   │   ├── Node_read_storage_map.cpp
│   │   ├── Node_read_storage_map_return.cpp
│   │   ├── Node_read_storage_object.cpp
│   │   ├── Node_read_storage_object_return.cpp
│   │   ├── Node_read_storage_return.cpp
│   │   ├── Node_read_storage_var.cpp
│   │   ├── Node_read_storage_var_return.cpp
│   │   ├── Node_revert_sync.cpp
│   │   ├── Node_revert_sync_return.cpp
│   │   ├── Node_start_sync.cpp
│   │   ├── Node_start_sync_return.cpp
│   │   ├── Node_validate.cpp
│   │   ├── Node_validate_return.cpp
│   │   ├── Node_verify_partial.cpp
│   │   ├── Node_verify_partial_return.cpp
│   │   ├── Node_verify_plot_nft_target.cpp
│   │   ├── Node_verify_plot_nft_target_return.cpp
│   │   ├── Operation.cpp
│   │   ├── Partial.cpp
│   │   ├── PeerInfo.cpp
│   │   ├── PlotHeader.cpp
│   │   ├── ProofOfSpace.cpp
│   │   ├── ProofOfSpaceNFT.cpp
│   │   ├── ProofOfSpaceOG.cpp
│   │   ├── ProofOfTime.cpp
│   │   ├── ProofResponse.cpp
│   │   ├── ProofServerAsyncClient.cpp
│   │   ├── ProofServerBase.cpp
│   │   ├── ProofServerClient.cpp
│   │   ├── ProofServer_compute.cpp
│   │   ├── ProofServer_compute_return.cpp
│   │   ├── ReceiveNote.cpp
│   │   ├── Request.cpp
│   │   ├── Return.cpp
│   │   ├── RouterAsyncClient.cpp
│   │   ├── RouterBase.cpp
│   │   ├── RouterClient.cpp
│   │   ├── Router_discover.cpp
│   │   ├── Router_discover_return.cpp
│   │   ├── Router_fetch_block.cpp
│   │   ├── Router_fetch_block_at.cpp
│   │   ├── Router_fetch_block_at_return.cpp
│   │   ├── Router_fetch_block_return.cpp
│   │   ├── Router_get_blocks_at.cpp
│   │   ├── Router_get_blocks_at_return.cpp
│   │   ├── Router_get_connected_peers.cpp
│   │   ├── Router_get_connected_peers_return.cpp
│   │   ├── Router_get_id.cpp
│   │   ├── Router_get_id_return.cpp
│   │   ├── Router_get_info.cpp
│   │   ├── Router_get_info_return.cpp
│   │   ├── Router_get_known_peers.cpp
│   │   ├── Router_get_known_peers_return.cpp
│   │   ├── Router_get_peer_info.cpp
│   │   ├── Router_get_peer_info_return.cpp
│   │   ├── Router_get_peers.cpp
│   │   ├── Router_get_peers_return.cpp
│   │   ├── Router_kick_peer.cpp
│   │   ├── Router_kick_peer_return.cpp
│   │   ├── Router_sign_msg.cpp
│   │   ├── Router_sign_msg_return.cpp
│   │   ├── Solution.cpp
│   │   ├── TimeLordAsyncClient.cpp
│   │   ├── TimeLordBase.cpp
│   │   ├── TimeLordClient.cpp
│   │   ├── TimeLord_stop_vdf.cpp
│   │   ├── TimeLord_stop_vdf_return.cpp
│   │   ├── Transaction.cpp
│   │   ├── TransactionBase.cpp
│   │   ├── VDF_Point.cpp
│   │   ├── ValidatorVote.cpp
│   │   ├── WalletAsyncClient.cpp
│   │   ├── WalletBase.cpp
│   │   ├── WalletClient.cpp
│   │   ├── WalletFile.cpp
│   │   ├── Wallet_accept_offer.cpp
│   │   ├── Wallet_accept_offer_return.cpp
│   │   ├── Wallet_add_account.cpp
│   │   ├── Wallet_add_account_return.cpp
│   │   ├── Wallet_add_token.cpp
│   │   ├── Wallet_add_token_return.cpp
│   │   ├── Wallet_cancel_offer.cpp
│   │   ├── Wallet_cancel_offer_return.cpp
│   │   ├── Wallet_complete.cpp
│   │   ├── Wallet_complete_return.cpp
│   │   ├── Wallet_create_account.cpp
│   │   ├── Wallet_create_account_return.cpp
│   │   ├── Wallet_create_wallet.cpp
│   │   ├── Wallet_create_wallet_return.cpp
│   │   ├── Wallet_deploy.cpp
│   │   ├── Wallet_deploy_return.cpp
│   │   ├── Wallet_deposit.cpp
│   │   ├── Wallet_deposit_return.cpp
│   │   ├── Wallet_execute.cpp
│   │   ├── Wallet_execute_return.cpp
│   │   ├── Wallet_export_wallet.cpp
│   │   ├── Wallet_export_wallet_return.cpp
│   │   ├── Wallet_find_wallet_by_addr.cpp
│   │   ├── Wallet_find_wallet_by_addr_return.cpp
│   │   ├── Wallet_gather_inputs_for.cpp
│   │   ├── Wallet_gather_inputs_for_return.cpp
│   │   ├── Wallet_get_account.cpp
│   │   ├── Wallet_get_account_return.cpp
│   │   ├── Wallet_get_address.cpp
│   │   ├── Wallet_get_address_return.cpp
│   │   ├── Wallet_get_all_accounts.cpp
│   │   ├── Wallet_get_all_accounts_return.cpp
│   │   ├── Wallet_get_all_addresses.cpp
│   │   ├── Wallet_get_all_addresses_return.cpp
│   │   ├── Wallet_get_all_farmer_keys.cpp
│   │   ├── Wallet_get_all_farmer_keys_return.cpp
│   │   ├── Wallet_get_balance.cpp
│   │   ├── Wallet_get_balance_return.cpp
│   │   ├── Wallet_get_balances.cpp
│   │   ├── Wallet_get_balances_return.cpp
│   │   ├── Wallet_get_contract_balances.cpp
│   │   ├── Wallet_get_contract_balances_return.cpp
│   │   ├── Wallet_get_contracts.cpp
│   │   ├── Wallet_get_contracts_owned.cpp
│   │   ├── Wallet_get_contracts_owned_return.cpp
│   │   ├── Wallet_get_contracts_return.cpp
│   │   ├── Wallet_get_farmer_keys.cpp
│   │   ├── Wallet_get_farmer_keys_return.cpp
│   │   ├── Wallet_get_history.cpp
│   │   ├── Wallet_get_history_return.cpp
│   │   ├── Wallet_get_master_seed.cpp
│   │   ├── Wallet_get_master_seed_return.cpp
│   │   ├── Wallet_get_mnemonic_seed.cpp
│   │   ├── Wallet_get_mnemonic_seed_return.cpp
│   │   ├── Wallet_get_mnemonic_wordlist.cpp
│   │   ├── Wallet_get_mnemonic_wordlist_return.cpp
│   │   ├── Wallet_get_offers.cpp
│   │   ├── Wallet_get_offers_return.cpp
│   │   ├── Wallet_get_swap_liquidity.cpp
│   │   ├── Wallet_get_swap_liquidity_return.cpp
│   │   ├── Wallet_get_token_list.cpp
│   │   ├── Wallet_get_token_list_return.cpp
│   │   ├── Wallet_get_total_balances.cpp
│   │   ├── Wallet_get_total_balances_return.cpp
│   │   ├── Wallet_get_tx_log.cpp
│   │   ├── Wallet_get_tx_log_return.cpp
│   │   ├── Wallet_import_wallet.cpp
│   │   ├── Wallet_import_wallet_return.cpp
│   │   ├── Wallet_is_locked.cpp
│   │   ├── Wallet_is_locked_return.cpp
│   │   ├── Wallet_lock.cpp
│   │   ├── Wallet_lock_return.cpp
│   │   ├── Wallet_make_offer.cpp
│   │   ├── Wallet_make_offer_return.cpp
│   │   ├── Wallet_mark_spent.cpp
│   │   ├── Wallet_mark_spent_return.cpp
│   │   ├── Wallet_offer_trade.cpp
│   │   ├── Wallet_offer_trade_return.cpp
│   │   ├── Wallet_offer_withdraw.cpp
│   │   ├── Wallet_offer_withdraw_return.cpp
│   │   ├── Wallet_plotnft_create.cpp
│   │   ├── Wallet_plotnft_create_return.cpp
│   │   ├── Wallet_plotnft_exec.cpp
│   │   ├── Wallet_plotnft_exec_return.cpp
│   │   ├── Wallet_release.cpp
│   │   ├── Wallet_release_all.cpp
│   │   ├── Wallet_release_all_return.cpp
│   │   ├── Wallet_release_return.cpp
│   │   ├── Wallet_rem_token.cpp
│   │   ├── Wallet_rem_token_return.cpp
│   │   ├── Wallet_remove_account.cpp
│   │   ├── Wallet_remove_account_return.cpp
│   │   ├── Wallet_reserve.cpp
│   │   ├── Wallet_reserve_return.cpp
│   │   ├── Wallet_reset_cache.cpp
│   │   ├── Wallet_reset_cache_return.cpp
│   │   ├── Wallet_send.cpp
│   │   ├── Wallet_send_from.cpp
│   │   ├── Wallet_send_from_return.cpp
│   │   ├── Wallet_send_many.cpp
│   │   ├── Wallet_send_many_return.cpp
│   │   ├── Wallet_send_off.cpp
│   │   ├── Wallet_send_off_return.cpp
│   │   ├── Wallet_send_return.cpp
│   │   ├── Wallet_set_address_count.cpp
│   │   ├── Wallet_set_address_count_return.cpp
│   │   ├── Wallet_sign_msg.cpp
│   │   ├── Wallet_sign_msg_return.cpp
│   │   ├── Wallet_sign_off.cpp
│   │   ├── Wallet_sign_off_return.cpp
│   │   ├── Wallet_swap_add_liquid.cpp
│   │   ├── Wallet_swap_add_liquid_return.cpp
│   │   ├── Wallet_swap_rem_liquid.cpp
│   │   ├── Wallet_swap_rem_liquid_return.cpp
│   │   ├── Wallet_swap_trade.cpp
│   │   ├── Wallet_swap_trade_return.cpp
│   │   ├── Wallet_unlock.cpp
│   │   ├── Wallet_unlock_return.cpp
│   │   ├── Wallet_update_cache.cpp
│   │   ├── Wallet_update_cache_return.cpp
│   │   ├── WebAPIAsyncClient.cpp
│   │   ├── WebAPIBase.cpp
│   │   ├── WebAPIClient.cpp
│   │   ├── WebAPI_shutdown.cpp
│   │   ├── WebAPI_shutdown_return.cpp
│   │   ├── account_info_t.cpp
│   │   ├── account_t.cpp
│   │   ├── balance_t.cpp
│   │   ├── block_index_t.cpp
│   │   ├── compile_flags_t.cpp
│   │   ├── error_code_e.cpp
│   │   ├── exec_entry_t.cpp
│   │   ├── exec_error_t.cpp
│   │   ├── exec_result_t.cpp
│   │   ├── farmed_block_info_t.cpp
│   │   ├── farmed_block_summary_t.cpp
│   │   ├── node_info_t.cpp
│   │   ├── node_type_e.cpp
│   │   ├── offer_data_t.cpp
│   │   ├── package.cpp
│   │   ├── peer_info_t.cpp
│   │   ├── permission_e.cpp
│   │   ├── plot_nft_info_t.cpp
│   │   ├── pooling_error_e.cpp
│   │   ├── pooling_info_t.cpp
│   │   ├── pooling_stats_t.cpp
│   │   ├── query_filter_t.cpp
│   │   ├── spend_options_t.cpp
│   │   ├── swap_entry_t.cpp
│   │   ├── swap_info_t.cpp
│   │   ├── swap_pool_info_t.cpp
│   │   ├── swap_user_info_t.cpp
│   │   ├── table_entry_t.cpp
│   │   ├── trade_entry_t.cpp
│   │   ├── trade_log_t.cpp
│   │   ├── tx_entry_t.cpp
│   │   ├── tx_index_t.cpp
│   │   ├── tx_info_t.cpp
│   │   ├── tx_log_entry_t.cpp
│   │   ├── tx_note_e.cpp
│   │   ├── tx_type_e.cpp
│   │   ├── txin_t.cpp
│   │   ├── txio_entry_t.cpp
│   │   ├── txio_t.cpp
│   │   ├── txout_t.cpp
│   │   ├── uint_fraction_t.cpp
│   │   ├── ulong_fraction_t.cpp
│   │   └── virtual_plot_info_t.cpp
│   └── vm/
│       ├── include/
│       │   └── mmx/
│       │       └── vm/
│       │           ├── accept_generic.hxx
│       │           └── package.hxx
│       └── src/
│           └── package.cpp
├── include/
│   ├── cuda_sha512.h
│   ├── hmac_sha512.h
│   ├── mmx/
│   │   ├── DataBase.h
│   │   ├── ECDSA_Wallet.h
│   │   ├── Farmer.h
│   │   ├── Harvester.h
│   │   ├── Node.h
│   │   ├── OCL_VDF.h
│   │   ├── ProofServer.h
│   │   ├── Qt_GUI.h
│   │   ├── Router.h
│   │   ├── TimeLord.h
│   │   ├── TimeLordRewards.h
│   │   ├── Wallet.h
│   │   ├── WebAPI.h
│   │   ├── WebRender.h
│   │   ├── addr_t.hpp
│   │   ├── balance_cache_t.h
│   │   ├── bls_pubkey_t.hpp
│   │   ├── bls_signature_t.hpp
│   │   ├── bytes_t.hpp
│   │   ├── exception.h
│   │   ├── fixed128.hpp
│   │   ├── hash_512_t.hpp
│   │   ├── hash_t.hpp
│   │   ├── helpers.h
│   │   ├── hmac_sha512.hpp
│   │   ├── http_request.h
│   │   ├── mnemonic.h
│   │   ├── multi_table.h
│   │   ├── pos/
│   │   │   ├── Prover.h
│   │   │   ├── config.h
│   │   │   ├── cuda_recompute.h
│   │   │   ├── encoding.h
│   │   │   ├── mem_hash.h
│   │   │   ├── util.h
│   │   │   └── verify.h
│   │   ├── pubkey_t.hpp
│   │   ├── secp256k1.hpp
│   │   ├── signature_t.hpp
│   │   ├── skey_t.hpp
│   │   ├── table.h
│   │   ├── tree_hash.h
│   │   ├── tx_entry_t.hpp
│   │   ├── txio_entry_t.hpp
│   │   ├── txio_t.hpp
│   │   ├── uint128.hpp
│   │   ├── utils.h
│   │   ├── vm/
│   │   │   ├── Compiler.h
│   │   │   ├── Engine.h
│   │   │   ├── Storage.h
│   │   │   ├── StorageCache.h
│   │   │   ├── StorageDB.h
│   │   │   ├── StorageProxy.h
│   │   │   ├── StorageRAM.h
│   │   │   ├── instr_t.h
│   │   │   ├── var_t.h
│   │   │   └── varptr_t.hpp
│   │   ├── vm_interface.h
│   │   └── write_bytes.h
│   ├── sha256_arm.h
│   ├── sha256_avx2.h
│   ├── sha256_ni.h
│   ├── sha512.h
│   └── upnp_mapper.h
├── interface/
│   ├── Block.vni
│   ├── BlockHeader.vni
│   ├── ChainParams.vni
│   ├── Challenge.vni
│   ├── Contract.vni
│   ├── FarmInfo.vni
│   ├── IntervalRequest.vni
│   ├── KeyFile.vni
│   ├── LookupInfo.vni
│   ├── NetworkInfo.vni
│   ├── Operation.vni
│   ├── Partial.vni
│   ├── PeerInfo.vni
│   ├── PlotHeader.vni
│   ├── ProofOfSpace.vni
│   ├── ProofOfSpaceNFT.vni
│   ├── ProofOfSpaceOG.vni
│   ├── ProofOfTime.vni
│   ├── ProofResponse.vni
│   ├── ReceiveNote.vni
│   ├── Request.vni
│   ├── Return.vni
│   ├── Solution.vni
│   ├── Transaction.vni
│   ├── TransactionBase.vni
│   ├── VDF_Point.vni
│   ├── ValidatorVote.vni
│   ├── WalletFile.vni
│   ├── account_info_t.vni
│   ├── account_t.vni
│   ├── balance_t.vni
│   ├── block_index_t.vni
│   ├── compile_flags_t.vni
│   ├── contract/
│   │   ├── Binary.vni
│   │   ├── Data.vni
│   │   ├── Executable.vni
│   │   ├── MultiSig.vni
│   │   ├── PubKey.vni
│   │   ├── TokenBase.vni
│   │   ├── WebData.vni
│   │   └── method_t.vni
│   ├── error_code_e.vni
│   ├── exec_entry_t.vni
│   ├── exec_error_t.vni
│   ├── exec_result_t.vni
│   ├── farmed_block_info_t.vni
│   ├── farmed_block_summary_t.vni
│   ├── node_info_t.vni
│   ├── node_type_e.vni
│   ├── offer_data_t.vni
│   ├── operation/
│   │   ├── Deposit.vni
│   │   └── Execute.vni
│   ├── package.vni
│   ├── peer_info_t.vni
│   ├── permission_e.vni
│   ├── plot_nft_info_t.vni
│   ├── pooling_error_e.vni
│   ├── pooling_info_t.vni
│   ├── pooling_stats_t.vni
│   ├── query_filter_t.vni
│   ├── solution/
│   │   ├── MultiSig.vni
│   │   └── PubKey.vni
│   ├── spend_options_t.vni
│   ├── swap_entry_t.vni
│   ├── swap_info_t.vni
│   ├── swap_pool_info_t.vni
│   ├── swap_user_info_t.vni
│   ├── table_entry_t.vni
│   ├── trade_entry_t.vni
│   ├── trade_log_t.vni
│   ├── tx_entry_t.vni
│   ├── tx_index_t.vni
│   ├── tx_info_t.vni
│   ├── tx_log_entry_t.vni
│   ├── tx_note_e.vni
│   ├── tx_type_e.vni
│   ├── txin_t.vni
│   ├── txio_entry_t.vni
│   ├── txio_t.vni
│   ├── txout_t.vni
│   ├── uint_fraction_t.vni
│   ├── ulong_fraction_t.vni
│   ├── virtual_plot_info_t.vni
│   └── vm/
│       └── package.vni
├── kernel/
│   ├── rsha256.cl
│   └── sha256.cl
├── lib/
│   ├── .gitignore
│   ├── bip-0039/
│   │   ├── english.txt
│   │   └── generate_cpp.sh
│   └── make_all.sh
├── make_Debug.cmd
├── make_RelWithDebInfo.cmd
├── make_Release.cmd
├── make_Release_pack.cmd
├── make_coverage.sh
├── make_debian.sh
├── make_debug.sh
├── make_devel.sh
├── make_release.sh
├── modules/
│   ├── Farmer.vni
│   ├── Harvester.vni
│   ├── Node.vni
│   ├── ProofServer.vni
│   ├── Router.vni
│   ├── TimeLord.vni
│   ├── Wallet.vni
│   └── WebAPI.vni
├── run_farmer.sh
├── run_gdb_node.sh
├── run_harvester.sh
├── run_node.sh
├── run_timelord.sh
├── run_valgrind_node.sh
├── run_wallet.sh
├── run_wallet_gui.sh
├── scripts/
│   ├── bench/
│   │   └── test_iops.sh
│   ├── docker/
│   │   └── mmx-testnet/
│   │       ├── README.md
│   │       ├── compose.yml
│   │       └── nvidia.yml
│   ├── gen_coverage.sh
│   ├── gen_seed_peers.js
│   ├── genesis_setup.sh
│   ├── kill_high_mem.sh
│   ├── move_storage.sh
│   ├── reset_coverage.sh
│   ├── show_log_stats.sh
│   ├── stats/
│   │   └── max_space_fork_len.sh
│   └── win/
│       ├── activate.cmd
│       ├── mmx_cmd.cmd
│       ├── mmx_help.cmd
│       ├── run_farmer.cmd
│       ├── run_harvester.cmd
│       ├── run_node.cmd
│       ├── run_timelord.cmd
│       └── run_wallet.cmd
├── src/
│   ├── Block.cpp
│   ├── BlockHeader.cpp
│   ├── ChainParams.cpp
│   ├── Contract.cpp
│   ├── DataBase.cpp
│   ├── Farmer.cpp
│   ├── Harvester.cpp
│   ├── Node.cpp
│   ├── Node_api.cpp
│   ├── Node_control.cpp
│   ├── Node_tests.cpp
│   ├── Node_update.cpp
│   ├── Node_validate.cpp
│   ├── Node_verify.cpp
│   ├── OCL_VDF.cpp
│   ├── Operation.cpp
│   ├── Partial.cpp
│   ├── ProofOfSpace.cpp
│   ├── ProofOfSpaceNFT.cpp
│   ├── ProofOfSpaceOG.cpp
│   ├── ProofOfTime.cpp
│   ├── ProofResponse.cpp
│   ├── ProofServer.cpp
│   ├── Qt_GUI.cpp
│   ├── Router.cpp
│   ├── Solution.cpp
│   ├── TimeLord.cpp
│   ├── Transaction.cpp
│   ├── VDF_Point.cpp
│   ├── ValidatorVote.cpp
│   ├── Wallet.cpp
│   ├── WebAPI.cpp
│   ├── account_info_t.cpp
│   ├── addr_t.cpp
│   ├── contract/
│   │   ├── Binary.cpp
│   │   ├── Data.cpp
│   │   ├── Executable.cpp
│   │   ├── MultiSig.cpp
│   │   ├── PubKey.cpp
│   │   ├── TokenBase.cpp
│   │   ├── WebData.cpp
│   │   ├── crypto_horse_race.js
│   │   ├── escrow.js
│   │   ├── fixed_price_liquid_token.js
│   │   ├── fixed_price_token.js
│   │   ├── method_t.cpp
│   │   ├── nft.js
│   │   ├── nft_offer.js
│   │   ├── offer.js
│   │   ├── plot_nft.js
│   │   ├── poker.js
│   │   ├── relay.js
│   │   ├── smart_wallet.js
│   │   ├── swap.js
│   │   ├── template.js
│   │   ├── time_lock.js
│   │   ├── token.js
│   │   ├── transfer.js
│   │   └── virtual_plot.js
│   ├── exec_error_t.cpp
│   ├── exec_result_t.cpp
│   ├── fixed128.cpp
│   ├── hash_512_t.cpp
│   ├── hash_t.cpp
│   ├── hmac_sha512.cpp
│   ├── http_request.cpp
│   ├── mmx.cpp
│   ├── mmx_farmer.cpp
│   ├── mmx_harvester.cpp
│   ├── mmx_node.cpp
│   ├── mmx_timelord.cpp
│   ├── mmx_wallet.cpp
│   ├── mnemonic.cpp
│   ├── offer_data_t.cpp
│   ├── operation/
│   │   ├── Deposit.cpp
│   │   └── Execute.cpp
│   ├── pos/
│   │   ├── Prover.cpp
│   │   ├── cuda_recompute.cu
│   │   ├── encoding.cpp
│   │   ├── mem_hash.cpp
│   │   ├── verify.cpp
│   │   └── verify_full.cpp
│   ├── pubkey_t.cpp
│   ├── secp256k1.cpp
│   ├── sha256_64_x8.cpp
│   ├── sha256_arm.cpp
│   ├── sha256_arm_rec.cpp
│   ├── sha256_avx2.cpp
│   ├── sha256_ni.cpp
│   ├── sha256_ni_rec.cpp
│   ├── sha512.cpp
│   ├── signature_t.cpp
│   ├── solution/
│   │   ├── MultiSig.cpp
│   │   └── PubKey.cpp
│   ├── table.cpp
│   ├── uint128.cpp
│   ├── upnp_mapper.cpp
│   ├── utils.cpp
│   ├── vm/
│   │   ├── Compiler.cpp
│   │   ├── Engine.cpp
│   │   ├── StorageCache.cpp
│   │   ├── StorageDB.cpp
│   │   ├── StorageProxy.cpp
│   │   ├── StorageRAM.cpp
│   │   ├── instr_t.cpp
│   │   ├── std/
│   │   │   ├── compare.js
│   │   │   ├── compile.sh
│   │   │   ├── embedded.h
│   │   │   ├── equals.js
│   │   │   ├── reverse.js
│   │   │   └── sort.js
│   │   ├── var_t.cpp
│   │   └── varptr_t.cpp
│   ├── vm_interface.cpp
│   └── wordlist_en.cpp
├── start_harvester.sh
├── start_node.sh
├── start_wallet.sh
├── stop_harvester.sh
├── stop_node.sh
├── stop_wallet.sh
├── test/
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── attacks/
│   │   └── cross_site_access.html
│   ├── code/
│   │   ├── contract_01.js
│   │   ├── contract_02.js
│   │   ├── instr_loop.js
│   │   └── test.js
│   ├── contracts/
│   │   ├── MMX_USDM_swap.json
│   │   ├── MultiSig.json
│   │   ├── PlotNFT.json
│   │   ├── TEST_token.json
│   │   ├── contract_01.json
│   │   ├── contract_02.json
│   │   ├── fixed_price_token.json
│   │   └── test_Data.json
│   ├── database_fill.cpp
│   ├── http/
│   │   └── test_pipeline.txt
│   ├── mmx_tests.cpp
│   ├── test_challenge_grind.cpp
│   ├── test_compiler.cpp
│   ├── test_cuda_recompute.cpp
│   ├── test_database.cpp
│   ├── test_database_reads.cpp
│   ├── test_encoding.cpp
│   ├── test_engine.cpp
│   ├── test_hash_vdl.cpp
│   ├── test_mem_hash.cpp
│   ├── test_mnemonic.cpp
│   ├── test_pos_compute.cpp
│   ├── test_proof_grind.cpp
│   ├── test_score_target.cpp
│   ├── test_secp256k1.cpp
│   ├── test_space_diff.cpp
│   ├── test_swap_algo.cpp
│   ├── test_transactions.cpp
│   ├── test_validation.cpp
│   ├── test_write_bytes_vitest_gen.cpp
│   └── vm/
│       ├── AFL/
│       │   ├── compile_all.sh
│       │   └── inputs/
│       │       ├── js/
│       │       │   ├── compiler_tests.js
│       │       │   ├── engine_tests.js
│       │       │   └── test_plot_nft.js
│       │       └── json/
│       │           └── engine_tests.js.json
│       ├── compiler_tests.js
│       ├── contract_tests.sh
│       ├── engine_tests.cpp
│       ├── engine_tests.js
│       ├── engine_tests.sh
│       ├── fails/
│       │   ├── assert.js
│       │   ├── assert_code.js
│       │   ├── assert_msg.js
│       │   ├── commit_out_of_gas.js
│       │   ├── div_by_zero.js
│       │   ├── endless_loop.js
│       │   ├── erase_recursion_overflow.js
│       │   ├── integer_overflow_0.js
│       │   ├── integer_overflow_1.js
│       │   ├── integer_overflow_2.js
│       │   ├── invalid_array_index.js
│       │   ├── invalid_bech32_0.js
│       │   ├── invalid_bech32_1.js
│       │   ├── invalid_binary_and.js
│       │   ├── invalid_binary_hex.js
│       │   ├── invalid_binary_or.js
│       │   ├── invalid_binary_xor.js
│       │   ├── invalid_bitwise_and.js
│       │   ├── invalid_bitwise_and2.js
│       │   ├── invalid_bitwise_not.js
│       │   ├── invalid_bitwise_or.js
│       │   ├── invalid_bitwise_or2.js
│       │   ├── invalid_bitwise_xor.js
│       │   ├── invalid_bitwise_xor2.js
│       │   ├── invalid_concat_0.js
│       │   ├── invalid_concat_1.js
│       │   ├── invalid_conv_integer_256_bit.js
│       │   ├── invalid_conv_integer_negative.js
│       │   ├── invalid_conv_integer_string_10.js
│       │   ├── invalid_conv_integer_string_11.js
│       │   ├── invalid_conv_integer_string_16.js
│       │   ├── invalid_conv_integer_string_2.js
│       │   ├── invalid_erase.js
│       │   ├── invalid_fail.js
│       │   ├── invalid_greater_equal.js
│       │   ├── invalid_greater_than.js
│       │   ├── invalid_hex_string_0.js
│       │   ├── invalid_hex_string_1.js
│       │   ├── invalid_less_equal.js
│       │   ├── invalid_less_than.js
│       │   ├── invalid_mint.js
│       │   ├── invalid_neg_0.js
│       │   ├── invalid_neg_1.js
│       │   ├── invalid_op_add.js
│       │   ├── invalid_op_div.js
│       │   ├── invalid_op_mod.js
│       │   ├── invalid_op_mul.js
│       │   ├── invalid_op_set.js
│       │   ├── invalid_op_sub.js
│       │   ├── invalid_rcall.js
│       │   ├── invalid_read.js
│       │   ├── invalid_send_0.js
│       │   ├── invalid_send_1.js
│       │   ├── invalid_size.js
│       │   ├── key_size_overflow.js
│       │   ├── mod_by_zero.js
│       │   ├── modify_balance.js
│       │   ├── modify_user.js
│       │   ├── null_map_key.js
│       │   ├── out_of_bounds_array_set.js
│       │   ├── out_of_bounds_memcpy.js
│       │   ├── read_fail.js
│       │   ├── recursive_loop.js
│       │   └── value_size_overflow.js
│       ├── storage_tests.cpp
│       ├── test_execute.cpp
│       ├── test_nft.js
│       ├── test_nft_n.js
│       ├── test_offer.js
│       ├── test_plot_nft.js
│       ├── test_poker.js
│       └── test_std.js
├── test_all.sh
├── tools/
│   ├── CMakeLists.txt
│   ├── calc_test_rewards.cpp
│   ├── dump_binary.cpp
│   ├── dump_table.cpp
│   ├── generate_passwd.cpp
│   ├── mmx_compile.cpp
│   ├── mmx_posbench.cpp
│   ├── mmx_postool.cpp
│   └── tx_bench.cpp
├── update.sh
├── vcpkg.json
└── www/
    ├── .gitignore
    ├── explorer/
    │   └── public/
    │       ├── assets/
    │       │   └── fonts/
    │       │       ├── material-icons/
    │       │       │   └── material-icons.css
    │       │       └── roboto/
    │       │           └── roboto.css
    │       ├── explorer.js
    │       ├── i18n.utils.js
    │       ├── index.html
    │       ├── index.js
    │       ├── locales/
    │       │   ├── common.js
    │       │   └── en.js
    │       └── mount.js
    ├── old/
    │   └── explorer/
    │       ├── index.js
    │       ├── package.json
    │       ├── public/
    │       │   └── js/
    │       │       ├── bootstrap.bundle.js
    │       │       ├── bootstrap.js
    │       │       └── theme_switcher.js
    │       └── views/
    │           ├── address.ejs
    │           ├── block.ejs
    │           ├── index.ejs
    │           ├── recent.ejs
    │           ├── recent_transactions.ejs
    │           └── transaction.ejs
    ├── pool-server/
    │   ├── README.md
    │   ├── account.js
    │   ├── config.js
    │   ├── package.json
    │   ├── schema.js
    │   ├── server.js
    │   ├── start.sh
    │   ├── utils.js
    │   └── verify.js
    ├── rpc-server/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.js
    │   ├── package.json
    │   └── start.sh
    └── web-gui/
        └── public/
            ├── assets/
            │   └── fonts/
            │       ├── material-icons/
            │       │   └── material-icons.css
            │       └── roboto/
            │           └── roboto.css
            ├── components/
            │   └── seed.js
            ├── explorer.js
            ├── farmer.js
            ├── i18n.utils.js
            ├── index.html
            ├── index.js
            ├── locales/
            │   ├── common.js
            │   ├── de.json
            │   ├── en.js
            │   ├── es.json
            │   ├── id.json
            │   ├── nl.json
            │   ├── pt.json
            │   ├── ru.json
            │   ├── template.json
            │   ├── uk.json
            │   └── zh.json
            ├── market.js
            ├── mount.js
            ├── node.js
            ├── robots.txt
            ├── settings.js
            ├── swap.js
            ├── vue-plotly.js
            └── wallet.js
Download .txt
Showing preview only (922K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (10792 symbols across 1121 files)

FILE: docs/public/resources/code/timelord/architecture/Intel_15th-gen_E-core/sha256_ni_rec.cpp
  function recursive_sha256_ni (line 27) | void recursive_sha256_ni(uint8_t* hash, const uint64_t num_iters)
  function recursive_sha256_ni_x2 (line 194) | void recursive_sha256_ni_x2(uint8_t* hash, const uint64_t num_iters)
  function recursive_sha256_ni (line 439) | void recursive_sha256_ni(uint8_t* hash, const uint64_t num_iters) {
  function recursive_sha256_ni_x2 (line 443) | void recursive_sha256_ni_x2(uint8_t* hash, const uint64_t num_iters) {

FILE: generated/contract/include/mmx/contract/Binary.hxx
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
      class MMX_CONTRACT_EXPORT (line 18) | class MMX_CONTRACT_EXPORT
      function Binary (line 38) | Binary() {}
  type vnx (line 102) | namespace vnx {

FILE: generated/contract/include/mmx/contract/Data.hxx
  type mmx (line 14) | namespace mmx {
    type contract (line 15) | namespace contract {
      class MMX_CONTRACT_EXPORT (line 17) | class MMX_CONTRACT_EXPORT
      function Data (line 29) | Data() {}
  type vnx (line 82) | namespace vnx {

FILE: generated/contract/include/mmx/contract/Executable.hxx
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
      class MMX_CONTRACT_EXPORT (line 18) | class MMX_CONTRACT_EXPORT
      function Executable (line 33) | Executable() {}
  type vnx (line 97) | namespace vnx {

FILE: generated/contract/include/mmx/contract/MultiSig.hxx
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
      class MMX_CONTRACT_EXPORT (line 18) | class MMX_CONTRACT_EXPORT
      function MultiSig (line 31) | MultiSig() {}
  type vnx (line 87) | namespace vnx {

FILE: generated/contract/include/mmx/contract/PubKey.hxx
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
      class MMX_CONTRACT_EXPORT (line 18) | class MMX_CONTRACT_EXPORT
      function PubKey (line 30) | PubKey() {}
  type vnx (line 86) | namespace vnx {

FILE: generated/contract/include/mmx/contract/TokenBase.hxx
  type mmx (line 14) | namespace mmx {
    type contract (line 15) | namespace contract {
      class MMX_CONTRACT_EXPORT (line 17) | class MMX_CONTRACT_EXPORT
      function TokenBase (line 32) | TokenBase() {}
  type vnx (line 88) | namespace vnx {

FILE: generated/contract/include/mmx/contract/WebData.hxx
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
      class MMX_CONTRACT_EXPORT (line 18) | class MMX_CONTRACT_EXPORT
      function WebData (line 31) | WebData() {}
  type vnx (line 86) | namespace vnx {

FILE: generated/contract/include/mmx/contract/accept_generic.hxx
  type vnx (line 16) | namespace vnx {
    function accept_generic (line 19) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::contract:...
    function accept_generic (line 28) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::contract:...
    function accept_generic (line 37) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::contract:...
    function accept_generic (line 46) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::contract:...
    function accept_generic (line 55) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::contract:...
    function accept_generic (line 64) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::contract:...
    function accept_generic (line 77) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::contract:...

FILE: generated/contract/include/mmx/contract/method_t.hxx
  type mmx (line 11) | namespace mmx {
    type contract (line 12) | namespace contract {
      type MMX_CONTRACT_EXPORT (line 14) | struct MMX_CONTRACT_EXPORT
      function method_t (line 31) | method_t() {}
  type vnx (line 85) | namespace vnx {
    type is_equivalent<::mmx::contract::method_t> (line 88) | struct is_equivalent<::mmx::contract::method_t> {

FILE: generated/contract/include/mmx/contract/package.hxx
  type mmx (line 21) | namespace mmx {
    type contract (line 22) | namespace contract {
      class Binary (line 27) | class Binary
      class Data (line 28) | class Data
      class Executable (line 29) | class Executable
      class MultiSig (line 30) | class MultiSig
      class PubKey (line 31) | class PubKey
      class TokenBase (line 32) | class TokenBase
      class WebData (line 33) | class WebData
      type method_t (line 34) | struct method_t
  type vnx (line 49) | namespace vnx {
    type type<::mmx::contract::Binary> (line 113) | struct type<::mmx::contract::Binary> {
      method read (line 114) | void read(TypeInput& in, ::mmx::contract::Binary& value, const TypeC...
      method write (line 117) | void write(TypeOutput& out, const ::mmx::contract::Binary& value, co...
      method read (line 120) | void read(std::istream& in, ::mmx::contract::Binary& value) {
      method write (line 123) | void write(std::ostream& out, const ::mmx::contract::Binary& value) {
      method accept (line 126) | void accept(Visitor& visitor, const ::mmx::contract::Binary& value) {
    type type<::mmx::contract::Data> (line 136) | struct type<::mmx::contract::Data> {
      method read (line 137) | void read(TypeInput& in, ::mmx::contract::Data& value, const TypeCod...
      method write (line 140) | void write(TypeOutput& out, const ::mmx::contract::Data& value, cons...
      method read (line 143) | void read(std::istream& in, ::mmx::contract::Data& value) {
      method write (line 146) | void write(std::ostream& out, const ::mmx::contract::Data& value) {
      method accept (line 149) | void accept(Visitor& visitor, const ::mmx::contract::Data& value) {
    type type<::mmx::contract::Executable> (line 159) | struct type<::mmx::contract::Executable> {
      method read (line 160) | void read(TypeInput& in, ::mmx::contract::Executable& value, const T...
      method write (line 163) | void write(TypeOutput& out, const ::mmx::contract::Executable& value...
      method read (line 166) | void read(std::istream& in, ::mmx::contract::Executable& value) {
      method write (line 169) | void write(std::ostream& out, const ::mmx::contract::Executable& val...
      method accept (line 172) | void accept(Visitor& visitor, const ::mmx::contract::Executable& val...
    type type<::mmx::contract::MultiSig> (line 182) | struct type<::mmx::contract::MultiSig> {
      method read (line 183) | void read(TypeInput& in, ::mmx::contract::MultiSig& value, const Typ...
      method write (line 186) | void write(TypeOutput& out, const ::mmx::contract::MultiSig& value, ...
      method read (line 189) | void read(std::istream& in, ::mmx::contract::MultiSig& value) {
      method write (line 192) | void write(std::ostream& out, const ::mmx::contract::MultiSig& value) {
      method accept (line 195) | void accept(Visitor& visitor, const ::mmx::contract::MultiSig& value) {
    type type<::mmx::contract::PubKey> (line 205) | struct type<::mmx::contract::PubKey> {
      method read (line 206) | void read(TypeInput& in, ::mmx::contract::PubKey& value, const TypeC...
      method write (line 209) | void write(TypeOutput& out, const ::mmx::contract::PubKey& value, co...
      method read (line 212) | void read(std::istream& in, ::mmx::contract::PubKey& value) {
      method write (line 215) | void write(std::ostream& out, const ::mmx::contract::PubKey& value) {
      method accept (line 218) | void accept(Visitor& visitor, const ::mmx::contract::PubKey& value) {
    type type<::mmx::contract::TokenBase> (line 228) | struct type<::mmx::contract::TokenBase> {
      method read (line 229) | void read(TypeInput& in, ::mmx::contract::TokenBase& value, const Ty...
      method write (line 232) | void write(TypeOutput& out, const ::mmx::contract::TokenBase& value,...
      method read (line 235) | void read(std::istream& in, ::mmx::contract::TokenBase& value) {
      method write (line 238) | void write(std::ostream& out, const ::mmx::contract::TokenBase& valu...
      method accept (line 241) | void accept(Visitor& visitor, const ::mmx::contract::TokenBase& valu...
    type type<::mmx::contract::WebData> (line 251) | struct type<::mmx::contract::WebData> {
      method read (line 252) | void read(TypeInput& in, ::mmx::contract::WebData& value, const Type...
      method write (line 255) | void write(TypeOutput& out, const ::mmx::contract::WebData& value, c...
      method read (line 258) | void read(std::istream& in, ::mmx::contract::WebData& value) {
      method write (line 261) | void write(std::ostream& out, const ::mmx::contract::WebData& value) {
      method accept (line 264) | void accept(Visitor& visitor, const ::mmx::contract::WebData& value) {
    type type<::mmx::contract::method_t> (line 274) | struct type<::mmx::contract::method_t> {
      method read (line 275) | void read(TypeInput& in, ::mmx::contract::method_t& value, const Typ...
      method write (line 278) | void write(TypeOutput& out, const ::mmx::contract::method_t& value, ...
      method read (line 281) | void read(std::istream& in, ::mmx::contract::method_t& value) {
      method write (line 284) | void write(std::ostream& out, const ::mmx::contract::method_t& value) {
      method accept (line 287) | void accept(Visitor& visitor, const ::mmx::contract::method_t& value) {

FILE: generated/contract/src/Binary.cpp
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
  type vnx (line 297) | namespace vnx {
    function read (line 299) | void read(TypeInput& in, ::mmx::contract::Binary& value, const TypeCod...
    function write (line 352) | void write(TypeOutput& out, const ::mmx::contract::Binary& value, cons...
    function read (line 378) | void read(std::istream& in, ::mmx::contract::Binary& value) {
    function write (line 382) | void write(std::ostream& out, const ::mmx::contract::Binary& value) {
    function accept (line 386) | void accept(Visitor& visitor, const ::mmx::contract::Binary& value) {

FILE: generated/contract/src/Data.cpp
  type mmx (line 14) | namespace mmx {
    type contract (line 15) | namespace contract {
  type vnx (line 165) | namespace vnx {
    function read (line 167) | void read(TypeInput& in, ::mmx::contract::Data& value, const TypeCode*...
    function write (line 212) | void write(TypeOutput& out, const ::mmx::contract::Data& value, const ...
    function read (line 230) | void read(std::istream& in, ::mmx::contract::Data& value) {
    function write (line 234) | void write(std::ostream& out, const ::mmx::contract::Data& value) {
    function accept (line 238) | void accept(Visitor& visitor, const ::mmx::contract::Data& value) {

FILE: generated/contract/src/Executable.cpp
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
  type vnx (line 281) | namespace vnx {
    function read (line 283) | void read(TypeInput& in, ::mmx::contract::Executable& value, const Typ...
    function write (line 337) | void write(TypeOutput& out, const ::mmx::contract::Executable& value, ...
    function read (line 362) | void read(std::istream& in, ::mmx::contract::Executable& value) {
    function write (line 366) | void write(std::ostream& out, const ::mmx::contract::Executable& value) {
    function accept (line 370) | void accept(Visitor& visitor, const ::mmx::contract::Executable& value) {

FILE: generated/contract/src/MultiSig.cpp
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
  type vnx (line 182) | namespace vnx {
    function read (line 184) | void read(TypeInput& in, ::mmx::contract::MultiSig& value, const TypeC...
    function write (line 232) | void write(TypeOutput& out, const ::mmx::contract::MultiSig& value, co...
    function read (line 251) | void read(std::istream& in, ::mmx::contract::MultiSig& value) {
    function write (line 255) | void write(std::ostream& out, const ::mmx::contract::MultiSig& value) {
    function accept (line 259) | void accept(Visitor& visitor, const ::mmx::contract::MultiSig& value) {

FILE: generated/contract/src/PubKey.cpp
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
  type vnx (line 166) | namespace vnx {
    function read (line 168) | void read(TypeInput& in, ::mmx::contract::PubKey& value, const TypeCod...
    function write (line 213) | void write(TypeOutput& out, const ::mmx::contract::PubKey& value, cons...
    function read (line 231) | void read(std::istream& in, ::mmx::contract::PubKey& value) {
    function write (line 235) | void write(std::ostream& out, const ::mmx::contract::PubKey& value) {
    function accept (line 239) | void accept(Visitor& visitor, const ::mmx::contract::PubKey& value) {

FILE: generated/contract/src/TokenBase.cpp
  type mmx (line 14) | namespace mmx {
    type contract (line 15) | namespace contract {
  type vnx (line 214) | namespace vnx {
    function read (line 216) | void read(TypeInput& in, ::mmx::contract::TokenBase& value, const Type...
    function write (line 266) | void write(TypeOutput& out, const ::mmx::contract::TokenBase& value, c...
    function read (line 287) | void read(std::istream& in, ::mmx::contract::TokenBase& value) {
    function write (line 291) | void write(std::ostream& out, const ::mmx::contract::TokenBase& value) {
    function accept (line 295) | void accept(Visitor& visitor, const ::mmx::contract::TokenBase& value) {

FILE: generated/contract/src/WebData.cpp
  type mmx (line 15) | namespace mmx {
    type contract (line 16) | namespace contract {
  type vnx (line 182) | namespace vnx {
    function read (line 184) | void read(TypeInput& in, ::mmx::contract::WebData& value, const TypeCo...
    function write (line 230) | void write(TypeOutput& out, const ::mmx::contract::WebData& value, con...
    function read (line 249) | void read(std::istream& in, ::mmx::contract::WebData& value) {
    function write (line 253) | void write(std::ostream& out, const ::mmx::contract::WebData& value) {
    function accept (line 257) | void accept(Visitor& visitor, const ::mmx::contract::WebData& value) {

FILE: generated/contract/src/method_t.cpp
  type mmx (line 10) | namespace mmx {
    type contract (line 11) | namespace contract {
  type vnx (line 248) | namespace vnx {
    function read (line 250) | void read(TypeInput& in, ::mmx::contract::method_t& value, const TypeC...
    function write (line 309) | void write(TypeOutput& out, const ::mmx::contract::method_t& value, co...
    function read (line 333) | void read(std::istream& in, ::mmx::contract::method_t& value) {
    function write (line 337) | void write(std::ostream& out, const ::mmx::contract::method_t& value) {
    function accept (line 341) | void accept(Visitor& visitor, const ::mmx::contract::method_t& value) {

FILE: generated/contract/src/package.cpp
  type vnx (line 18) | namespace vnx {
    function TypeCode (line 20) | const TypeCode* type<::mmx::contract::Binary>::get_type_code() {
    function TypeCode (line 32) | const TypeCode* type<::mmx::contract::Data>::get_type_code() {
    function TypeCode (line 44) | const TypeCode* type<::mmx::contract::Executable>::get_type_code() {
    function TypeCode (line 56) | const TypeCode* type<::mmx::contract::MultiSig>::get_type_code() {
    function TypeCode (line 68) | const TypeCode* type<::mmx::contract::PubKey>::get_type_code() {
    function TypeCode (line 80) | const TypeCode* type<::mmx::contract::TokenBase>::get_type_code() {
    function TypeCode (line 92) | const TypeCode* type<::mmx::contract::WebData>::get_type_code() {
    function TypeCode (line 104) | const TypeCode* type<::mmx::contract::method_t>::get_type_code() {
  type mmx (line 120) | namespace mmx {
    type contract (line 121) | namespace contract {
      function register_all_types (line 124) | void register_all_types() {
      type vnx_static_init (line 135) | struct vnx_static_init {
        method vnx_static_init (line 136) | vnx_static_init() {

FILE: generated/include/mmx/Block.hxx
  type mmx (line 15) | namespace mmx {
    class MMX_EXPORT (line 17) | class MMX_EXPORT
    function Block (line 29) | Block() {}
  type vnx (line 124) | namespace vnx {

FILE: generated/include/mmx/BlockHeader.hxx
  type mmx (line 19) | namespace mmx {
    class MMX_EXPORT (line 21) | class MMX_EXPORT
    function BlockHeader (line 73) | BlockHeader() {}
  type vnx (line 169) | namespace vnx {

FILE: generated/include/mmx/ChainParams.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function ChainParams (line 86) | ChainParams() {}
  type vnx (line 194) | namespace vnx {

FILE: generated/include/mmx/Challenge.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Challenge (line 28) | Challenge() {}
  type vnx (line 77) | namespace vnx {

FILE: generated/include/mmx/Contract.hxx
  type mmx (line 16) | namespace mmx {
    class MMX_EXPORT (line 18) | class MMX_EXPORT
    function Contract (line 30) | Contract() {}
  type vnx (line 85) | namespace vnx {

FILE: generated/include/mmx/FarmInfo.hxx
  type mmx (line 15) | namespace mmx {
    class MMX_EXPORT (line 17) | class MMX_EXPORT
    function FarmInfo (line 39) | FarmInfo() {}
  type vnx (line 96) | namespace vnx {

FILE: generated/include/mmx/FarmerAsyncClient.hxx
  type mmx (line 21) | namespace mmx {
    class FarmerAsyncClient (line 23) | class FarmerAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/FarmerBase.hxx
  type mmx (line 21) | namespace mmx {
    class MMX_EXPORT (line 23) | class MMX_EXPORT
    function handle (line 81) | virtual void handle(std::shared_ptr<const ::mmx::FarmInfo> _value) {}
    function handle (line 82) | virtual void handle(std::shared_ptr<const ::mmx::ProofResponse> _value...
    function handle (line 83) | virtual void handle(std::shared_ptr<const ::mmx::Partial> _value) {}
  type vnx (line 112) | namespace vnx {

FILE: generated/include/mmx/FarmerClient.hxx
  type mmx (line 21) | namespace mmx {
    class FarmerClient (line 23) | class FarmerClient : public vnx::Client {

FILE: generated/include/mmx/Farmer_get_farm_info.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Farmer_get_farm_info (line 24) | Farmer_get_farm_info() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_farm_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_get_farm_info_return (line 26) | Farmer_get_farm_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_farmer_keys.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Farmer_get_farmer_keys (line 24) | Farmer_get_farmer_keys() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_farmer_keys_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_get_farmer_keys_return (line 26) | Farmer_get_farmer_keys_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_mac_addr.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Farmer_get_mac_addr (line 24) | Farmer_get_mac_addr() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_mac_addr_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_get_mac_addr_return (line 26) | Farmer_get_mac_addr_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_partial_diff.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_get_partial_diff (line 26) | Farmer_get_partial_diff() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_partial_diff_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Farmer_get_partial_diff_return (line 25) | Farmer_get_partial_diff_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_partial_diffs.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_get_partial_diffs (line 26) | Farmer_get_partial_diffs() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_get_partial_diffs_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_get_partial_diffs_return (line 26) | Farmer_get_partial_diffs_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_sign_block.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_sign_block (line 26) | Farmer_sign_block() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_sign_block_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_sign_block_return (line 26) | Farmer_sign_block_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_sign_vote.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_sign_vote (line 26) | Farmer_sign_vote() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Farmer_sign_vote_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Farmer_sign_vote_return (line 26) | Farmer_sign_vote_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/HarvesterAsyncClient.hxx
  type mmx (line 17) | namespace mmx {
    class HarvesterAsyncClient (line 19) | class HarvesterAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/HarvesterBase.hxx
  type mmx (line 17) | namespace mmx {
    class MMX_EXPORT (line 19) | class MMX_EXPORT
    function handle (line 82) | virtual void handle(std::shared_ptr<const ::mmx::Challenge> _value) {}
  type vnx (line 122) | namespace vnx {

FILE: generated/include/mmx/HarvesterClient.hxx
  type mmx (line 17) | namespace mmx {
    class HarvesterClient (line 19) | class HarvesterClient : public vnx::Client {

FILE: generated/include/mmx/Harvester_add_plot_dir.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_add_plot_dir (line 25) | Harvester_add_plot_dir() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Harvester_add_plot_dir_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_add_plot_dir_return (line 24) | Harvester_add_plot_dir_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Harvester_get_farm_info.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_get_farm_info (line 24) | Harvester_get_farm_info() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Harvester_get_farm_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Harvester_get_farm_info_return (line 26) | Harvester_get_farm_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Harvester_get_total_bytes.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_get_total_bytes (line 24) | Harvester_get_total_bytes() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Harvester_get_total_bytes_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_get_total_bytes_return (line 25) | Harvester_get_total_bytes_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Harvester_reload.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_reload (line 24) | Harvester_reload() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Harvester_reload_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_reload_return (line 24) | Harvester_reload_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Harvester_rem_plot_dir.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_rem_plot_dir (line 25) | Harvester_rem_plot_dir() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Harvester_rem_plot_dir_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Harvester_rem_plot_dir_return (line 24) | Harvester_rem_plot_dir_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/IntervalRequest.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function IntervalRequest (line 30) | IntervalRequest() {}
  type vnx (line 81) | namespace vnx {

FILE: generated/include/mmx/KeyFile.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function KeyFile (line 27) | KeyFile() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/LookupInfo.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function LookupInfo (line 34) | LookupInfo() {}
  type vnx (line 89) | namespace vnx {

FILE: generated/include/mmx/NetworkInfo.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function NetworkInfo (line 43) | NetworkInfo() {}
  type vnx (line 107) | namespace vnx {

FILE: generated/include/mmx/NodeAsyncClient.hxx
  type mmx (line 46) | namespace mmx {
    class NodeAsyncClient (line 48) | class NodeAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/NodeBase.hxx
  type mmx (line 46) | namespace mmx {
    class MMX_EXPORT (line 48) | class MMX_EXPORT
    function handle (line 213) | virtual void handle(std::shared_ptr<const ::mmx::Block> _value) {}
    function handle (line 214) | virtual void handle(std::shared_ptr<const ::mmx::Transaction> _value) {}
    function handle (line 215) | virtual void handle(std::shared_ptr<const ::mmx::ProofOfTime> _value) {}
    function handle (line 216) | virtual void handle(std::shared_ptr<const ::mmx::ProofResponse> _value...
    function handle (line 217) | virtual void handle(std::shared_ptr<const ::mmx::VDF_Point> _value) {}
    function handle (line 218) | virtual void handle(std::shared_ptr<const ::mmx::ValidatorVote> _value...
  type vnx (line 289) | namespace vnx {

FILE: generated/include/mmx/NodeClient.hxx
  type mmx (line 46) | namespace mmx {
    class NodeClient (line 48) | class NodeClient : public vnx::Client {

FILE: generated/include/mmx/Node_add_block.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_add_block (line 26) | Node_add_block() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_add_block_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_add_block_return (line 24) | Node_add_block_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_add_transaction.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_add_transaction (line 27) | Node_add_transaction() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_add_transaction_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_add_transaction_return (line 24) | Node_add_transaction_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_call_contract.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Node_call_contract (line 32) | Node_call_contract() {}
  type vnx (line 80) | namespace vnx {

FILE: generated/include/mmx/Node_call_contract_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_call_contract_return (line 26) | Node_call_contract_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_dump_storage.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_dump_storage (line 27) | Node_dump_storage() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_dump_storage_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_dump_storage_return (line 26) | Node_dump_storage_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_fetch_offers.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_fetch_offers (line 28) | Node_fetch_offers() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_fetch_offers_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_fetch_offers_return (line 26) | Node_fetch_offers_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_all_balances.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_all_balances (line 28) | Node_get_all_balances() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_get_all_balances_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_all_balances_return (line 27) | Node_get_all_balances_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_balance.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_balance (line 27) | Node_get_balance() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_balance_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_balance_return (line 26) | Node_get_balance_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_balances.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_balances (line 28) | Node_get_balances() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_get_balances_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_balances_return (line 27) | Node_get_balances_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_block.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_block (line 26) | Node_get_block() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_block_at.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_block_at (line 25) | Node_get_block_at() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_block_at_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_block_at_return (line 26) | Node_get_block_at_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_block_hash.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_block_hash (line 25) | Node_get_block_hash() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_block_hash_ex.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_block_hash_ex (line 25) | Node_get_block_hash_ex() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_block_hash_ex_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_block_hash_ex_return (line 26) | Node_get_block_hash_ex_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_block_hash_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_block_hash_return (line 26) | Node_get_block_hash_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_block_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_block_return (line 26) | Node_get_block_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contract.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contract (line 26) | Node_get_contract() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contract_balances.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contract_balances (line 28) | Node_get_contract_balances() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_get_contract_balances_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_contract_balances_return (line 27) | Node_get_contract_balances_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_contract_for.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contract_for (line 26) | Node_get_contract_for() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contract_for_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contract_for_return (line 26) | Node_get_contract_for_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contract_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contract_return (line 26) | Node_get_contract_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contracts.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contracts (line 26) | Node_get_contracts() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contracts_by.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_contracts_by (line 28) | Node_get_contracts_by() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Node_get_contracts_by_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contracts_by_return (line 26) | Node_get_contracts_by_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contracts_owned_by.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_contracts_owned_by (line 28) | Node_get_contracts_owned_by() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Node_get_contracts_owned_by_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contracts_owned_by_return (line 26) | Node_get_contracts_owned_by_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_contracts_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_contracts_return (line 26) | Node_get_contracts_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_exec_history.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_exec_history (line 28) | Node_get_exec_history() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_get_exec_history_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_exec_history_return (line 26) | Node_get_exec_history_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_farmed_block_summary.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_farmed_block_summary (line 27) | Node_get_farmed_block_summary() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_farmed_block_summary_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_farmed_block_summary_return (line 26) | Node_get_farmed_block_summary_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_farmed_blocks.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_farmed_blocks (line 29) | Node_get_farmed_blocks() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/Node_get_farmed_blocks_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_farmed_blocks_return (line 26) | Node_get_farmed_blocks_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_farmer_ranking.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_farmer_ranking (line 25) | Node_get_farmer_ranking() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_farmer_ranking_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_farmer_ranking_return (line 26) | Node_get_farmer_ranking_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_genesis_hash.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_genesis_hash (line 24) | Node_get_genesis_hash() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_genesis_hash_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_genesis_hash_return (line 26) | Node_get_genesis_hash_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_header.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_header (line 26) | Node_get_header() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_header_at.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_header_at (line 25) | Node_get_header_at() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_header_at_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_header_at_return (line 26) | Node_get_header_at_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_header_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_header_return (line 26) | Node_get_header_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_height.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_height (line 24) | Node_get_height() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_height_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_height_return (line 25) | Node_get_height_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_history.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_history (line 28) | Node_get_history() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Node_get_history_memo.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_history_memo (line 29) | Node_get_history_memo() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Node_get_history_memo_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_history_memo_return (line 26) | Node_get_history_memo_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_history_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_history_return (line 26) | Node_get_history_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_network_info.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_network_info (line 24) | Node_get_network_info() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_network_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_network_info_return (line 26) | Node_get_network_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_offer.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_offer (line 26) | Node_get_offer() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_offer_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_offer_return (line 26) | Node_get_offer_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_offers.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_offers (line 26) | Node_get_offers() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_offers_by.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_offers_by (line 27) | Node_get_offers_by() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_offers_by_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_offers_by_return (line 26) | Node_get_offers_by_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_offers_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_offers_return (line 26) | Node_get_offers_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_params.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_params (line 24) | Node_get_params() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_params_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_params_return (line 26) | Node_get_params_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_plot_nft_info.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_plot_nft_info (line 26) | Node_get_plot_nft_info() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_plot_nft_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_plot_nft_info_return (line 26) | Node_get_plot_nft_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_plot_nft_target.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_plot_nft_target (line 27) | Node_get_plot_nft_target() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_plot_nft_target_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_plot_nft_target_return (line 26) | Node_get_plot_nft_target_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_recent_offers.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_recent_offers (line 26) | Node_get_recent_offers() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_recent_offers_for.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_recent_offers_for (line 31) | Node_get_recent_offers_for() {}
  type vnx (line 79) | namespace vnx {

FILE: generated/include/mmx/Node_get_recent_offers_for_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_recent_offers_for_return (line 26) | Node_get_recent_offers_for_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_recent_offers_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_recent_offers_return (line 26) | Node_get_recent_offers_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_equivalent_liquidity.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_equivalent_liquidity (line 27) | Node_get_swap_equivalent_liquidity() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_equivalent_liquidity_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_equivalent_liquidity_return (line 26) | Node_get_swap_equivalent_liquidity_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_fees_earned.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_fees_earned (line 27) | Node_get_swap_fees_earned() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_fees_earned_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_fees_earned_return (line 26) | Node_get_swap_fees_earned_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_history.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_history (line 27) | Node_get_swap_history() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_history_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_history_return (line 26) | Node_get_swap_history_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_info.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_info (line 26) | Node_get_swap_info() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_info_return (line 26) | Node_get_swap_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_liquidity_by.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_liquidity_by (line 26) | Node_get_swap_liquidity_by() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_liquidity_by_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_swap_liquidity_by_return (line 27) | Node_get_swap_liquidity_by_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_trade_estimate.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_swap_trade_estimate (line 30) | Node_get_swap_trade_estimate() {}
  type vnx (line 77) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_trade_estimate_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_trade_estimate_return (line 26) | Node_get_swap_trade_estimate_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_user_info.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_user_info (line 27) | Node_get_swap_user_info() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_swap_user_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swap_user_info_return (line 26) | Node_get_swap_user_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_swaps.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swaps (line 29) | Node_get_swaps() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/Node_get_swaps_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_swaps_return (line 26) | Node_get_swaps_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_synced_height.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_synced_height (line 24) | Node_get_synced_height() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_synced_height_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_synced_height_return (line 25) | Node_get_synced_height_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_synced_vdf_height.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_synced_vdf_height (line 24) | Node_get_synced_vdf_height() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_synced_vdf_height_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_synced_vdf_height_return (line 25) | Node_get_synced_vdf_height_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_total_balance.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_total_balance (line 27) | Node_get_total_balance() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_total_balance_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_total_balance_return (line 26) | Node_get_total_balance_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_total_balances.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_total_balances (line 28) | Node_get_total_balances() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_get_total_balances_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_get_total_balances_return (line 27) | Node_get_total_balances_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_total_supply.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_total_supply (line 26) | Node_get_total_supply() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_total_supply_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_total_supply_return (line 26) | Node_get_total_supply_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_trade_history.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_trade_history (line 26) | Node_get_trade_history() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Node_get_trade_history_for.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_trade_history_for (line 29) | Node_get_trade_history_for() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/Node_get_trade_history_for_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_trade_history_for_return (line 26) | Node_get_trade_history_for_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_trade_history_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_trade_history_return (line 26) | Node_get_trade_history_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_transaction.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_transaction (line 27) | Node_get_transaction() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_get_transaction_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_transaction_return (line 26) | Node_get_transaction_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_transactions.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_transactions (line 26) | Node_get_transactions() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_transactions_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_transactions_return (line 26) | Node_get_transactions_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_height.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_height (line 26) | Node_get_tx_height() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_height_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_tx_height_return (line 25) | Node_get_tx_height_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_ids.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_tx_ids (line 25) | Node_get_tx_ids() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_ids_at.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_tx_ids_at (line 25) | Node_get_tx_ids_at() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_ids_at_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_ids_at_return (line 26) | Node_get_tx_ids_at_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_ids_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_ids_return (line 26) | Node_get_tx_ids_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_ids_since.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_tx_ids_since (line 25) | Node_get_tx_ids_since() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_ids_since_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_ids_since_return (line 26) | Node_get_tx_ids_since_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_info.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_info (line 26) | Node_get_tx_info() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_info_for.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_info_for (line 26) | Node_get_tx_info_for() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_info_for_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_info_for_return (line 26) | Node_get_tx_info_for_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_tx_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_tx_info_return (line 26) | Node_get_tx_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_get_vdf_height.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_vdf_height (line 24) | Node_get_vdf_height() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_vdf_height_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_vdf_height_return (line 25) | Node_get_vdf_height_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_get_vdf_peak.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_get_vdf_peak (line 24) | Node_get_vdf_peak() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_get_vdf_peak_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_get_vdf_peak_return (line 26) | Node_get_vdf_peak_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage (line 27) | Node_read_storage() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_array.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_array (line 28) | Node_read_storage_array() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_array_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_array_return (line 26) | Node_read_storage_array_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_entry_addr.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_entry_addr (line 29) | Node_read_storage_entry_addr() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_entry_addr_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_entry_addr_return (line 26) | Node_read_storage_entry_addr_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_entry_string.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_entry_string (line 29) | Node_read_storage_entry_string() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_entry_string_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_entry_string_return (line 26) | Node_read_storage_entry_string_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_entry_var.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_entry_var (line 29) | Node_read_storage_entry_var() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_entry_var_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_entry_var_return (line 26) | Node_read_storage_entry_var_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_field.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_field (line 28) | Node_read_storage_field() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_field_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_field_return (line 26) | Node_read_storage_field_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_map.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_map (line 28) | Node_read_storage_map() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_map_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_map_return (line 26) | Node_read_storage_map_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_object.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_object (line 28) | Node_read_storage_object() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_object_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_object_return (line 26) | Node_read_storage_object_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_return (line 26) | Node_read_storage_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_var.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_var (line 28) | Node_read_storage_var() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Node_read_storage_var_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_read_storage_var_return (line 26) | Node_read_storage_var_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_revert_sync.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_revert_sync (line 25) | Node_revert_sync() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_revert_sync_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_revert_sync_return (line 24) | Node_revert_sync_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_start_sync.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_start_sync (line 25) | Node_start_sync() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Node_start_sync_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Node_start_sync_return (line 24) | Node_start_sync_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Node_validate.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_validate (line 26) | Node_validate() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_validate_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_validate_return (line 26) | Node_validate_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_verify_partial.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Node_verify_partial (line 28) | Node_verify_partial() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Node_verify_partial_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_verify_partial_return (line 26) | Node_verify_partial_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Node_verify_plot_nft_target.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_verify_plot_nft_target (line 27) | Node_verify_plot_nft_target() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Node_verify_plot_nft_target_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Node_verify_plot_nft_target_return (line 26) | Node_verify_plot_nft_target_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Operation.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Operation (line 31) | Operation() {}
  type vnx (line 84) | namespace vnx {

FILE: generated/include/mmx/Partial.hxx
  type mmx (line 15) | namespace mmx {
    class MMX_EXPORT (line 17) | class MMX_EXPORT
    function Partial (line 37) | Partial() {}
  type vnx (line 94) | namespace vnx {

FILE: generated/include/mmx/PeerInfo.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function PeerInfo (line 26) | PeerInfo() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/PlotHeader.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function PlotHeader (line 50) | PlotHeader() {}
  type vnx (line 119) | namespace vnx {

FILE: generated/include/mmx/ProofOfSpace.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function ProofOfSpace (line 31) | ProofOfSpace() {}
  type vnx (line 87) | namespace vnx {

FILE: generated/include/mmx/ProofOfSpaceNFT.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function ProofOfSpaceNFT (line 30) | ProofOfSpaceNFT() {}
  type vnx (line 90) | namespace vnx {

FILE: generated/include/mmx/ProofOfSpaceOG.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function ProofOfSpaceOG (line 28) | ProofOfSpaceOG() {}
  type vnx (line 87) | namespace vnx {

FILE: generated/include/mmx/ProofOfTime.hxx
  type mmx (line 15) | namespace mmx {
    class MMX_EXPORT (line 17) | class MMX_EXPORT
    function ProofOfTime (line 41) | ProofOfTime() {}
  type vnx (line 107) | namespace vnx {

FILE: generated/include/mmx/ProofResponse.hxx
  type mmx (line 15) | namespace mmx {
    class MMX_EXPORT (line 17) | class MMX_EXPORT
    function ProofResponse (line 36) | ProofResponse() {}
  type vnx (line 95) | namespace vnx {

FILE: generated/include/mmx/ProofServerAsyncClient.hxx
  type mmx (line 13) | namespace mmx {
    class ProofServerAsyncClient (line 15) | class ProofServerAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/ProofServerBase.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/ProofServerClient.hxx
  type mmx (line 13) | namespace mmx {
    class ProofServerClient (line 15) | class ProofServerClient : public vnx::Client {

FILE: generated/include/mmx/ProofServer_compute.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function ProofServer_compute (line 29) | ProofServer_compute() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/ProofServer_compute_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function ProofServer_compute_return (line 26) | ProofServer_compute_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/ReceiveNote.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function ReceiveNote (line 27) | ReceiveNote() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Request.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Request (line 26) | Request() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Return (line 26) | Return() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/RouterAsyncClient.hxx
  type mmx (line 27) | namespace mmx {
    class RouterAsyncClient (line 29) | class RouterAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/RouterBase.hxx
  type mmx (line 27) | namespace mmx {
    class MMX_EXPORT (line 29) | class MMX_EXPORT
    function handle (line 127) | virtual void handle(std::shared_ptr<const ::mmx::Block> _value) {}
    function handle (line 128) | virtual void handle(std::shared_ptr<const ::mmx::Transaction> _value) {}
    function handle (line 129) | virtual void handle(std::shared_ptr<const ::mmx::ProofOfTime> _value) {}
    function handle (line 130) | virtual void handle(std::shared_ptr<const ::mmx::ProofResponse> _value...
    function handle (line 131) | virtual void handle(std::shared_ptr<const ::mmx::VDF_Point> _value) {}
    function handle (line 132) | virtual void handle(std::shared_ptr<const ::mmx::ValidatorVote> _value...
  type vnx (line 211) | namespace vnx {

FILE: generated/include/mmx/RouterClient.hxx
  type mmx (line 27) | namespace mmx {
    class RouterClient (line 29) | class RouterClient : public vnx::Client {

FILE: generated/include/mmx/Router_discover.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_discover (line 24) | Router_discover() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_discover_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_discover_return (line 24) | Router_discover_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_fetch_block.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_fetch_block (line 27) | Router_fetch_block() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Router_fetch_block_at.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_fetch_block_at (line 26) | Router_fetch_block_at() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Router_fetch_block_at_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_fetch_block_at_return (line 26) | Router_fetch_block_at_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Router_fetch_block_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_fetch_block_return (line 26) | Router_fetch_block_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Router_get_blocks_at.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_blocks_at (line 25) | Router_get_blocks_at() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Router_get_blocks_at_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_get_blocks_at_return (line 26) | Router_get_blocks_at_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Router_get_connected_peers.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_connected_peers (line 24) | Router_get_connected_peers() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_get_connected_peers_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_connected_peers_return (line 25) | Router_get_connected_peers_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Router_get_id.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_id (line 24) | Router_get_id() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_get_id_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_get_id_return (line 26) | Router_get_id_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Router_get_info.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_info (line 24) | Router_get_info() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_get_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_get_info_return (line 26) | Router_get_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Router_get_known_peers.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_known_peers (line 24) | Router_get_known_peers() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_get_known_peers_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_known_peers_return (line 25) | Router_get_known_peers_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Router_get_peer_info.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_peer_info (line 24) | Router_get_peer_info() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_get_peer_info_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_get_peer_info_return (line 26) | Router_get_peer_info_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Router_get_peers.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_peers (line 25) | Router_get_peers() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Router_get_peers_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_get_peers_return (line 25) | Router_get_peers_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Router_kick_peer.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_kick_peer (line 25) | Router_kick_peer() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Router_kick_peer_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Router_kick_peer_return (line 24) | Router_kick_peer_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Router_sign_msg.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Router_sign_msg (line 26) | Router_sign_msg() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Router_sign_msg_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Router_sign_msg_return (line 27) | Router_sign_msg_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Solution.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Solution (line 27) | Solution() {}
  type vnx (line 78) | namespace vnx {

FILE: generated/include/mmx/TimeLordAsyncClient.hxx
  type mmx (line 14) | namespace mmx {
    class TimeLordAsyncClient (line 16) | class TimeLordAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/TimeLordBase.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function handle (line 63) | virtual void handle(std::shared_ptr<const ::mmx::IntervalRequest> _val...
  type vnx (line 87) | namespace vnx {

FILE: generated/include/mmx/TimeLordClient.hxx
  type mmx (line 14) | namespace mmx {
    class TimeLordClient (line 16) | class TimeLordClient : public vnx::Client {

FILE: generated/include/mmx/TimeLord_stop_vdf.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function TimeLord_stop_vdf (line 24) | TimeLord_stop_vdf() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/TimeLord_stop_vdf_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function TimeLord_stop_vdf_return (line 24) | TimeLord_stop_vdf_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Transaction.hxx
  type mmx (line 24) | namespace mmx {
    class MMX_EXPORT (line 26) | class MMX_EXPORT
    function Transaction (line 54) | Transaction() {}
  type vnx (line 136) | namespace vnx {

FILE: generated/include/mmx/TransactionBase.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function TransactionBase (line 27) | TransactionBase() {}
  type vnx (line 78) | namespace vnx {

FILE: generated/include/mmx/VDF_Point.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function VDF_Point (line 37) | VDF_Point() {}
  type vnx (line 96) | namespace vnx {

FILE: generated/include/mmx/ValidatorVote.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function ValidatorVote (line 31) | ValidatorVote() {}
  type vnx (line 84) | namespace vnx {

FILE: generated/include/mmx/WalletAsyncClient.hxx
  type mmx (line 33) | namespace mmx {
    class WalletAsyncClient (line 35) | class WalletAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/WalletBase.hxx
  type mmx (line 33) | namespace mmx {
    class MMX_EXPORT (line 35) | class MMX_EXPORT
  type vnx (line 180) | namespace vnx {

FILE: generated/include/mmx/WalletClient.hxx
  type mmx (line 33) | namespace mmx {
    class WalletClient (line 35) | class WalletClient : public vnx::Client {

FILE: generated/include/mmx/WalletFile.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function WalletFile (line 26) | WalletFile() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Wallet_accept_offer.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_accept_offer (line 32) | Wallet_accept_offer() {}
  type vnx (line 80) | namespace vnx {

FILE: generated/include/mmx/Wallet_accept_offer_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_accept_offer_return (line 26) | Wallet_accept_offer_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_add_account.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_add_account (line 28) | Wallet_add_account() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Wallet_add_account_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_add_account_return (line 24) | Wallet_add_account_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_add_token.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_add_token (line 26) | Wallet_add_token() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_add_token_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_add_token_return (line 24) | Wallet_add_token_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_cancel_offer.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_cancel_offer (line 29) | Wallet_cancel_offer() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Wallet_cancel_offer_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_cancel_offer_return (line 26) | Wallet_cancel_offer_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_complete.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_complete (line 29) | Wallet_complete() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Wallet_complete_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_complete_return (line 26) | Wallet_complete_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_create_account.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_create_account (line 27) | Wallet_create_account() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Wallet_create_account_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_create_account_return (line 24) | Wallet_create_account_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_create_wallet.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_create_wallet (line 28) | Wallet_create_wallet() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Wallet_create_wallet_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_create_wallet_return (line 24) | Wallet_create_wallet_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_deploy.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_deploy (line 29) | Wallet_deploy() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Wallet_deploy_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_deploy_return (line 26) | Wallet_deploy_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_deposit.hxx
  type mmx (line 15) | namespace mmx {
    class MMX_EXPORT (line 17) | class MMX_EXPORT
    function Wallet_deposit (line 35) | Wallet_deposit() {}
  type vnx (line 85) | namespace vnx {

FILE: generated/include/mmx/Wallet_deposit_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_deposit_return (line 26) | Wallet_deposit_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_execute.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_execute (line 33) | Wallet_execute() {}
  type vnx (line 82) | namespace vnx {

FILE: generated/include/mmx/Wallet_execute_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_execute_return (line 26) | Wallet_execute_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_export_wallet.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_export_wallet (line 25) | Wallet_export_wallet() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_export_wallet_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_export_wallet_return (line 26) | Wallet_export_wallet_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_find_wallet_by_addr.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_find_wallet_by_addr (line 26) | Wallet_find_wallet_by_addr() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_find_wallet_by_addr_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_find_wallet_by_addr_return (line 25) | Wallet_find_wallet_by_addr_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_gather_inputs_for.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_gather_inputs_for (line 31) | Wallet_gather_inputs_for() {}
  type vnx (line 78) | namespace vnx {

FILE: generated/include/mmx/Wallet_gather_inputs_for_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_gather_inputs_for_return (line 26) | Wallet_gather_inputs_for_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_account.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_account (line 25) | Wallet_get_account() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_account_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_account_return (line 26) | Wallet_get_account_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_address.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_address (line 26) | Wallet_get_address() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_address_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_address_return (line 26) | Wallet_get_address_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_all_accounts.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_all_accounts (line 24) | Wallet_get_all_accounts() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_all_accounts_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_all_accounts_return (line 26) | Wallet_get_all_accounts_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_all_addresses.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_all_addresses (line 25) | Wallet_get_all_addresses() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_all_addresses_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_all_addresses_return (line 26) | Wallet_get_all_addresses_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_all_farmer_keys.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_all_farmer_keys (line 24) | Wallet_get_all_farmer_keys() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_all_farmer_keys_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_all_farmer_keys_return (line 27) | Wallet_get_all_farmer_keys_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_balance.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_balance (line 27) | Wallet_get_balance() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_balance_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_balance_return (line 26) | Wallet_get_balance_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_balances.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_balances (line 26) | Wallet_get_balances() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_balances_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_balances_return (line 27) | Wallet_get_balances_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_contract_balances.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_contract_balances (line 26) | Wallet_get_contract_balances() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_contract_balances_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_contract_balances_return (line 27) | Wallet_get_contract_balances_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_contracts.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_contracts (line 28) | Wallet_get_contracts() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_contracts_owned.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_contracts_owned (line 28) | Wallet_get_contracts_owned() {}
  type vnx (line 74) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_contracts_owned_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_contracts_owned_return (line 27) | Wallet_get_contracts_owned_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_contracts_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_contracts_return (line 27) | Wallet_get_contracts_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_farmer_keys.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_farmer_keys (line 25) | Wallet_get_farmer_keys() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_farmer_keys_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_farmer_keys_return (line 27) | Wallet_get_farmer_keys_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_history.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_history (line 27) | Wallet_get_history() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_history_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_history_return (line 26) | Wallet_get_history_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_master_seed.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_master_seed (line 25) | Wallet_get_master_seed() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_master_seed_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_master_seed_return (line 26) | Wallet_get_master_seed_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_mnemonic_seed.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_mnemonic_seed (line 25) | Wallet_get_mnemonic_seed() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_mnemonic_seed_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_mnemonic_seed_return (line 25) | Wallet_get_mnemonic_seed_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_mnemonic_wordlist.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_mnemonic_wordlist (line 25) | Wallet_get_mnemonic_wordlist() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_mnemonic_wordlist_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_mnemonic_wordlist_return (line 25) | Wallet_get_mnemonic_wordlist_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_offers.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_offers (line 26) | Wallet_get_offers() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_offers_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_offers_return (line 26) | Wallet_get_offers_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_swap_liquidity.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_swap_liquidity (line 25) | Wallet_get_swap_liquidity() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_swap_liquidity_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_swap_liquidity_return (line 27) | Wallet_get_swap_liquidity_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_token_list.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_token_list (line 24) | Wallet_get_token_list() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_token_list_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_token_list_return (line 26) | Wallet_get_token_list_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_total_balances.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_total_balances (line 26) | Wallet_get_total_balances() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_total_balances_return.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_get_total_balances_return (line 27) | Wallet_get_total_balances_return() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_tx_log.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_get_tx_log (line 26) | Wallet_get_tx_log() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_get_tx_log_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_get_tx_log_return (line 26) | Wallet_get_tx_log_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_import_wallet.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_import_wallet (line 29) | Wallet_import_wallet() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Wallet_import_wallet_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_import_wallet_return (line 24) | Wallet_import_wallet_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_is_locked.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_is_locked (line 25) | Wallet_is_locked() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_is_locked_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_is_locked_return (line 25) | Wallet_is_locked_return() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_lock.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_lock (line 25) | Wallet_lock() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_lock_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_lock_return (line 24) | Wallet_lock_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_make_offer.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_make_offer (line 34) | Wallet_make_offer() {}
  type vnx (line 84) | namespace vnx {

FILE: generated/include/mmx/Wallet_make_offer_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_make_offer_return (line 26) | Wallet_make_offer_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_mark_spent.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_mark_spent (line 28) | Wallet_mark_spent() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Wallet_mark_spent_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_mark_spent_return (line 24) | Wallet_mark_spent_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_offer_trade.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_offer_trade (line 33) | Wallet_offer_trade() {}
  type vnx (line 82) | namespace vnx {

FILE: generated/include/mmx/Wallet_offer_trade_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_offer_trade_return (line 26) | Wallet_offer_trade_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_offer_withdraw.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_offer_withdraw (line 29) | Wallet_offer_withdraw() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Wallet_offer_withdraw_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_offer_withdraw_return (line 26) | Wallet_offer_withdraw_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_plotnft_create.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_plotnft_create (line 29) | Wallet_plotnft_create() {}
  type vnx (line 76) | namespace vnx {

FILE: generated/include/mmx/Wallet_plotnft_create_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_plotnft_create_return (line 26) | Wallet_plotnft_create_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_plotnft_exec.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_plotnft_exec (line 31) | Wallet_plotnft_exec() {}
  type vnx (line 78) | namespace vnx {

FILE: generated/include/mmx/Wallet_plotnft_exec_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_plotnft_exec_return (line 26) | Wallet_plotnft_exec_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_release.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_release (line 28) | Wallet_release() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Wallet_release_all.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_release_all (line 24) | Wallet_release_all() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_release_all_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_release_all_return (line 24) | Wallet_release_all_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_release_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_release_return (line 24) | Wallet_release_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_rem_token.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_rem_token (line 26) | Wallet_rem_token() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_rem_token_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_rem_token_return (line 24) | Wallet_rem_token_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_remove_account.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_remove_account (line 26) | Wallet_remove_account() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_remove_account_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_remove_account_return (line 24) | Wallet_remove_account_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_reserve.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_reserve (line 28) | Wallet_reserve() {}
  type vnx (line 73) | namespace vnx {

FILE: generated/include/mmx/Wallet_reserve_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_reserve_return (line 24) | Wallet_reserve_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_reset_cache.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_reset_cache (line 25) | Wallet_reset_cache() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_reset_cache_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_reset_cache_return (line 24) | Wallet_reset_cache_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_send.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_send (line 32) | Wallet_send() {}
  type vnx (line 80) | namespace vnx {

FILE: generated/include/mmx/Wallet_send_from.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_send_from (line 33) | Wallet_send_from() {}
  type vnx (line 82) | namespace vnx {

FILE: generated/include/mmx/Wallet_send_from_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_send_from_return (line 26) | Wallet_send_from_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_send_many.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_send_many (line 31) | Wallet_send_many() {}
  type vnx (line 78) | namespace vnx {

FILE: generated/include/mmx/Wallet_send_many_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_send_many_return (line 26) | Wallet_send_many_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_send_off.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_send_off (line 27) | Wallet_send_off() {}
  type vnx (line 72) | namespace vnx {

FILE: generated/include/mmx/Wallet_send_off_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_send_off_return (line 24) | Wallet_send_off_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_send_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_send_return (line 26) | Wallet_send_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_set_address_count.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_set_address_count (line 26) | Wallet_set_address_count() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_set_address_count_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_set_address_count_return (line 24) | Wallet_set_address_count_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_sign_msg.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_sign_msg (line 29) | Wallet_sign_msg() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Wallet_sign_msg_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_sign_msg_return (line 26) | Wallet_sign_msg_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_sign_off.hxx
  type mmx (line 13) | namespace mmx {
    class MMX_EXPORT (line 15) | class MMX_EXPORT
    function Wallet_sign_off (line 29) | Wallet_sign_off() {}
  type vnx (line 75) | namespace vnx {

FILE: generated/include/mmx/Wallet_sign_off_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_sign_off_return (line 26) | Wallet_sign_off_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_swap_add_liquid.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_swap_add_liquid (line 32) | Wallet_swap_add_liquid() {}
  type vnx (line 80) | namespace vnx {

FILE: generated/include/mmx/Wallet_swap_add_liquid_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_swap_add_liquid_return (line 26) | Wallet_swap_add_liquid_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_swap_rem_liquid.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_swap_rem_liquid (line 31) | Wallet_swap_rem_liquid() {}
  type vnx (line 78) | namespace vnx {

FILE: generated/include/mmx/Wallet_swap_rem_liquid_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_swap_rem_liquid_return (line 26) | Wallet_swap_rem_liquid_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_swap_trade.hxx
  type mmx (line 14) | namespace mmx {
    class MMX_EXPORT (line 16) | class MMX_EXPORT
    function Wallet_swap_trade (line 34) | Wallet_swap_trade() {}
  type vnx (line 84) | namespace vnx {

FILE: generated/include/mmx/Wallet_swap_trade_return.hxx
  type mmx (line 12) | namespace mmx {
    class MMX_EXPORT (line 14) | class MMX_EXPORT
    function Wallet_swap_trade_return (line 26) | Wallet_swap_trade_return() {}
  type vnx (line 70) | namespace vnx {

FILE: generated/include/mmx/Wallet_unlock.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_unlock (line 26) | Wallet_unlock() {}
  type vnx (line 71) | namespace vnx {

FILE: generated/include/mmx/Wallet_unlock_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_unlock_return (line 24) | Wallet_unlock_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/Wallet_update_cache.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_update_cache (line 25) | Wallet_update_cache() {}
  type vnx (line 69) | namespace vnx {

FILE: generated/include/mmx/Wallet_update_cache_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function Wallet_update_cache_return (line 24) | Wallet_update_cache_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/WebAPIAsyncClient.hxx
  type mmx (line 18) | namespace mmx {
    class WebAPIAsyncClient (line 20) | class WebAPIAsyncClient : public vnx::AsyncClient {

FILE: generated/include/mmx/WebAPIBase.hxx
  type mmx (line 18) | namespace mmx {
    class MMX_EXPORT (line 20) | class MMX_EXPORT
    function handle (line 71) | virtual void handle(std::shared_ptr<const ::mmx::Block> _value) {}
    function handle (line 72) | virtual void handle(std::shared_ptr<const ::mmx::ProofResponse> _value...
    function handle (line 73) | virtual void handle(std::shared_ptr<const ::vnx::LogMsg> _value) {}
  type vnx (line 105) | namespace vnx {

FILE: generated/include/mmx/WebAPIClient.hxx
  type mmx (line 18) | namespace mmx {
    class WebAPIClient (line 20) | class WebAPIClient : public vnx::Client {

FILE: generated/include/mmx/WebAPI_shutdown.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function WebAPI_shutdown (line 24) | WebAPI_shutdown() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/WebAPI_shutdown_return.hxx
  type mmx (line 11) | namespace mmx {
    class MMX_EXPORT (line 13) | class MMX_EXPORT
    function WebAPI_shutdown_return (line 24) | WebAPI_shutdown_return() {}
  type vnx (line 67) | namespace vnx {

FILE: generated/include/mmx/accept_generic.hxx
  type vnx (line 364) | namespace vnx {
    function accept_generic (line 367) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Block> va...
    function accept_generic (line 376) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::BlockHead...
    function accept_generic (line 389) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ChainPara...
    function accept_generic (line 398) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Challenge...
    function accept_generic (line 407) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Contract>...
    function accept_generic (line 416) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::FarmInfo>...
    function accept_generic (line 425) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 434) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 443) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 452) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 461) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 470) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 479) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 488) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 497) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 506) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_ge...
    function accept_generic (line 515) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_si...
    function accept_generic (line 524) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_si...
    function accept_generic (line 533) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_si...
    function accept_generic (line 542) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Farmer_si...
    function accept_generic (line 551) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 560) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 569) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 578) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 587) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 596) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 605) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 614) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 623) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 632) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Harvester...
    function accept_generic (line 641) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::IntervalR...
    function accept_generic (line 650) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::KeyFile> ...
    function accept_generic (line 659) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::LookupInf...
    function accept_generic (line 668) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::NetworkIn...
    function accept_generic (line 677) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_add_...
    function accept_generic (line 686) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_add_...
    function accept_generic (line 695) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_add_...
    function accept_generic (line 704) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_add_...
    function accept_generic (line 713) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_call...
    function accept_generic (line 722) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_call...
    function accept_generic (line 731) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_dump...
    function accept_generic (line 740) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_dump...
    function accept_generic (line 749) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_fetc...
    function accept_generic (line 758) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_fetc...
    function accept_generic (line 767) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 776) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 785) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 794) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 803) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 812) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 821) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 830) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 839) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 848) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 857) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 866) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 875) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 884) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 893) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 902) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 911) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 920) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 929) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 938) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 947) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 956) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 965) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 974) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 983) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 992) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1001) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1010) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1019) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1028) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1037) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1046) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1055) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1064) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1073) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1082) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1091) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1100) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1109) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1118) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1127) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1136) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1145) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1154) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1163) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1172) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1181) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1190) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1199) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1208) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1217) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1226) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1235) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1244) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1253) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1262) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1271) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1280) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1289) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1298) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1307) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1316) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1325) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1334) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1343) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1352) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1361) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1370) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1379) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1388) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1397) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1406) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1415) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1424) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1433) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1442) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1451) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1460) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1469) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1478) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1487) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1496) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1505) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1514) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1523) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1532) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1541) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1550) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1559) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1568) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1577) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1586) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1595) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1604) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1613) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1622) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1631) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1640) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1649) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1658) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1667) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1676) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1685) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1694) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1703) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1712) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1721) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1730) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1739) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1748) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1757) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1766) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1775) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1784) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_get_...
    function accept_generic (line 1793) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1802) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1811) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1820) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1829) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1838) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1847) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1856) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1865) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1874) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1883) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1892) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1901) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1910) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1919) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1928) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1937) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1946) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_read...
    function accept_generic (line 1955) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_reve...
    function accept_generic (line 1964) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_reve...
    function accept_generic (line 1973) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_star...
    function accept_generic (line 1982) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_star...
    function accept_generic (line 1991) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_vali...
    function accept_generic (line 2000) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_vali...
    function accept_generic (line 2009) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_veri...
    function accept_generic (line 2018) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_veri...
    function accept_generic (line 2027) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_veri...
    function accept_generic (line 2036) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Node_veri...
    function accept_generic (line 2045) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Operation...
    function accept_generic (line 2054) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Partial> ...
    function accept_generic (line 2063) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::PeerInfo>...
    function accept_generic (line 2072) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::PlotHeade...
    function accept_generic (line 2081) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ProofOfSp...
    function accept_generic (line 2096) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ProofOfSp...
    function accept_generic (line 2105) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ProofOfSp...
    function accept_generic (line 2114) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ProofOfTi...
    function accept_generic (line 2123) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ProofResp...
    function accept_generic (line 2132) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ProofServ...
    function accept_generic (line 2141) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ProofServ...
    function accept_generic (line 2150) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::ReceiveNo...
    function accept_generic (line 2159) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Request> ...
    function accept_generic (line 2168) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Return> v...
    function accept_generic (line 2177) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_di...
    function accept_generic (line 2186) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_di...
    function accept_generic (line 2195) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_fe...
    function accept_generic (line 2204) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_fe...
    function accept_generic (line 2213) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_fe...
    function accept_generic (line 2222) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_fe...
    function accept_generic (line 2231) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2240) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2249) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2258) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2267) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2276) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2285) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2294) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2303) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2312) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2321) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2330) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2339) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2348) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ge...
    function accept_generic (line 2357) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ki...
    function accept_generic (line 2366) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_ki...
    function accept_generic (line 2375) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_si...
    function accept_generic (line 2384) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Router_si...
    function accept_generic (line 2393) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Solution>...
    function accept_generic (line 2402) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::TimeLord_...
    function accept_generic (line 2411) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::TimeLord_...
    function accept_generic (line 2420) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Transacti...
    function accept_generic (line 2429) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Transacti...
    function accept_generic (line 2442) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::VDF_Point...
    function accept_generic (line 2451) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Validator...
    function accept_generic (line 2460) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ac...
    function accept_generic (line 2469) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ac...
    function accept_generic (line 2478) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ad...
    function accept_generic (line 2487) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ad...
    function accept_generic (line 2496) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ad...
    function accept_generic (line 2505) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ad...
    function accept_generic (line 2514) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ca...
    function accept_generic (line 2523) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ca...
    function accept_generic (line 2532) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_co...
    function accept_generic (line 2541) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_co...
    function accept_generic (line 2550) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_cr...
    function accept_generic (line 2559) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_cr...
    function accept_generic (line 2568) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_cr...
    function accept_generic (line 2577) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_cr...
    function accept_generic (line 2586) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_de...
    function accept_generic (line 2595) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_de...
    function accept_generic (line 2604) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_de...
    function accept_generic (line 2613) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_de...
    function accept_generic (line 2622) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ex...
    function accept_generic (line 2631) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ex...
    function accept_generic (line 2640) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ex...
    function accept_generic (line 2649) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ex...
    function accept_generic (line 2658) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_fi...
    function accept_generic (line 2667) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_fi...
    function accept_generic (line 2676) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ga...
    function accept_generic (line 2685) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ga...
    function accept_generic (line 2694) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2703) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2712) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2721) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2730) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2739) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2748) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2757) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2766) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2775) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2784) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2793) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2802) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2811) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2820) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2829) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2838) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2847) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2856) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2865) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2874) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2883) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2892) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2901) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2910) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2919) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2928) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2937) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2946) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2955) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2964) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2973) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2982) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 2991) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 3000) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 3009) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 3018) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 3027) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 3036) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 3045) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ge...
    function accept_generic (line 3054) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_im...
    function accept_generic (line 3063) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_im...
    function accept_generic (line 3072) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_is...
    function accept_generic (line 3081) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_is...
    function accept_generic (line 3090) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_lo...
    function accept_generic (line 3099) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_lo...
    function accept_generic (line 3108) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ma...
    function accept_generic (line 3117) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ma...
    function accept_generic (line 3126) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ma...
    function accept_generic (line 3135) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_ma...
    function accept_generic (line 3144) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_of...
    function accept_generic (line 3153) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_of...
    function accept_generic (line 3162) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_of...
    function accept_generic (line 3171) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_of...
    function accept_generic (line 3180) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_pl...
    function accept_generic (line 3189) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_pl...
    function accept_generic (line 3198) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_pl...
    function accept_generic (line 3207) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_pl...
    function accept_generic (line 3216) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3225) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3234) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3243) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3252) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3261) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3270) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3279) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3288) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3297) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3306) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3315) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_re...
    function accept_generic (line 3324) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3333) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3342) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3351) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3360) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3369) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3378) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3387) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3396) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3405) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_se...
    function accept_generic (line 3414) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_si...
    function accept_generic (line 3423) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_si...
    function accept_generic (line 3432) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_si...
    function accept_generic (line 3441) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_si...
    function accept_generic (line 3450) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_sw...
    function accept_generic (line 3459) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_sw...
    function accept_generic (line 3468) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_sw...
    function accept_generic (line 3477) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_sw...
    function accept_generic (line 3486) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_sw...
    function accept_generic (line 3495) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_sw...
    function accept_generic (line 3504) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_un...
    function accept_generic (line 3513) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_un...
    function accept_generic (line 3522) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_up...
    function accept_generic (line 3531) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::Wallet_up...
    function accept_generic (line 3540) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::WalletFil...
    function accept_generic (line 3549) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::WebAPI_sh...
    function accept_generic (line 3558) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::WebAPI_sh...
    function accept_generic (line 3567) | void accept_generic(V& visitor, std::shared_ptr<const ::mmx::tx_info_t...

FILE: generated/include/mmx/account_info_t.hxx
  type mmx (line 12) | namespace mmx {
    type MMX_EXPORT (line 14) | struct MMX_EXPORT
    function account_info_t (line 27) | account_info_t() {}
  type vnx (line 81) | namespace vnx {
    type is_equivalent<::mmx::account_info_t> (line 84) | struct is_equivalent<::mmx::account_info_t> {

FILE: generated/include/mmx/account_t.hxx
  type mmx (line 11) | namespace mmx {
    type MMX_EXPORT (line 13) | struct MMX_EXPORT
    function account_t (line 29) | account_t() {}
  type vnx (line 79) | namespace vnx {
    type is_equivalent<::mmx::account_t> (line 82) | struct is_equivalent<::mmx::account_t> {

FILE: generated/include/mmx/balance_t.hxx
  type mmx (line 12) | namespace mmx {
    type MMX_EXPORT (line 14) | struct MMX_EXPORT
    function balance_t (line 28) | balance_t() {}
  type vnx (line 76) | namespace vnx {
    type is_equivalent<::mmx::balance_t> (line 79) | struct is_equivalent<::mmx::balance_t> {

FILE: generated/include/mmx/block_index_t.hxx
  type mmx (line 12) | namespace mmx {
    type MMX_EXPORT (line 14) | struct MMX_EXPORT
    function block_index_t (line 28) | block_index_t() {}
  type vnx (line 76) | namespace vnx {
    type is_equivalent<::mmx::block_index_t> (line 79) | struct is_equivalent<::mmx::block_index_t> {

FILE: generated/include/mmx/compile_flags_t.hxx
  type mmx (line 11) | namespace mmx {
    type MMX_EXPORT (line 13) | struct MMX_EXPORT
    function compile_flags_t (line 25) | compile_flags_t() {}
  type vnx (line 71) | namespace vnx {
    type is_equivalent<::mmx::compile_flags_t> (line 74) | struct is_equivalent<::mmx::compile_flags_t> {

FILE: generated/include/mmx/error_code_e.hxx
  type mmx (line 11) | namespace mmx {
    function error_code_e (line 13) | struct MMX_EXPORT error_code_e {
  type vnx (line 90) | namespace vnx {
    type is_equivalent<::mmx::error_code_e> (line 115) | struct is_equivalent<::mmx::error_code_e> {

FILE: generated/include/mmx/exec_entry_t.hxx
  type mmx (line 15) | namespace mmx {
    type MMX_EXPORT (line 17) | struct MMX_EXPORT
    function exec_entry_t (line 33) | exec_entry_t() {}
  type vnx (line 83) | namespace vnx {
    type is_equivalent<::mmx::exec_entry_t> (line 86) | struct is_equivalent<::mmx::exec_entry_t> {

FILE: generated/include/mmx/exec_error_t.hxx
  type mmx (line 12) | namespace mmx {
    type MMX_EXPORT (line 14) | struct MMX_EXPORT
    function exec_error_t (line 29) | exec_error_t() {}
  type vnx (line 80) | namespace vnx {
    type is_equivalent<::mmx::exec_error_t> (line 83) | struct is_equivalent<::mmx::exec_error_t> {

FILE: generated/include/mmx/exec_result_t.hxx
  type mmx (line 16) | namespace mmx {
    type MMX_EXPORT (line 18) | struct MMX_EXPORT
    function exec_result_t (line 33) | exec_result_t() {}
  type vnx (line 87) | namespace vnx {
    type is_equivalent<::mmx::exec_result_t> (line 90) | struct is_equivalent<::mmx::exec_result_t> {

FILE: generated/include/mmx/farmed_block_info_t.hxx
  type mmx (line 12) | namespace mmx {
    type MMX_EXPORT (line 14) | struct MMX_EXPORT
    function farmed_block_info_t (line 26) | farmed_block_info_t() {}
  type vnx (line 72) | namespace vnx {
    type is_equivalent<::mmx::farmed_block_info_t> (line 75) | struct is_equivalent<::mmx::farmed_block_info_t> {

FILE: generated/include/mmx/farmed_block_summary_t.hxx
  type mmx (line 12) | namespace mmx {
    type MMX_EXPORT (line 14) | struct MMX_EXPORT
    function farmed_block_summary_t (line 27) | farmed_block_summary_t() {}
  type vnx (line 74) | namespace vnx {
    type is_equivalent<::mmx::farmed_block_summary_t> (line 77) | struct is_equivalent<::mmx::farmed_block_summary_t> {

FILE: generated/include/mmx/node_info_t.hxx
  type mmx (line 13) | namespace mmx {
    type MMX_EXPORT (line 15) | struct MMX_EXPORT
    function node_info_t (line 27) | node_info_t() {}
  type vnx (line 73) | namespace vnx {
    type is_equivalent<::mmx::node_info_t> (line 76) | struct is_equivalent<::mmx::node_info_t> {

FILE: generated/include/mmx/node_type_e.hxx
  type mmx (line 11) | namespace mmx {
    function node_type_e (line 13) | struct MMX_EXPORT node_type_e {
  type vnx (line 87) | namespace vnx {
    type is_equivalent<::mmx::node_type_e> (line 112) | struct is_equivalent<::mmx::node_type_e> {

FILE: generated/include/mmx/offer_data_t.hxx
  type mmx (line 13) | namespace mmx {
    type MMX_EXPORT (line 15) | struct MMX_EXPORT
    function offer_data_t (line 37) | offer_data_t() {}
  type vnx (line 99) | namespace vnx {
    type is_equivalent<::mmx::offer_data_t> (line 102) | struct is_equivalent<::mmx::offer_data_t> {

FILE: generated/include/mmx/package.hxx
  type mmx (line 22) | namespace mmx {
    class Block (line 27) | class Block
    class BlockHeader (line 28) | class BlockHeader
    class ChainParams (line 29) | class ChainParams
    class Challenge (line 30) | class Challenge
    class Contract (line 31) | class Contract
    class FarmInfo (line 32) | class FarmInfo
    class FarmerBase (line 33) | class FarmerBase
    class Farmer_get_farm_info (line 34) | class Farmer_get_farm_info
    class Farmer_get_farm_info_return (line 35) | class Farmer_get_farm_info_return
    class Farmer_get_farmer_keys (line 36) | class Farmer_get_farmer_keys
    class Farmer_get_farmer_keys_return (line 37) | class Farmer_get_farmer_keys_return
    class Farmer_get_mac_addr (line 38) | class Farmer_get_mac_addr
    class Farmer_get_mac_addr_return (line 39) | class Farmer_get_mac_addr_return
    class Farmer_get_partial_diff (line 40) | class Farmer_get_partial_diff
    class Farmer_get_partial_diff_return (line 41) | class Farmer_get_partial_diff_return
    class Farmer_get_partial_diffs (line 42) | class Farmer_get_partial_diffs
    class Farmer_get_partial_diffs_return (line 43) | class Farmer_get_partial_diffs_return
    class Farmer_sign_block (line 44) | class Farmer_sign_block
    class Farmer_sign_block_return (line 45) | class Farmer_sign_block_return
    class Farmer_sign_vote (line 46) | class Farmer_sign_vote
    class Farmer_sign_vote_return (line 47) | class Farmer_sign_vote_return
    class HarvesterBase (line 48) | class HarvesterBase
    class Harvester_add_plot_dir (line 49) | class Harvester_add_plot_dir
    class Harvester_add_plot_dir_return (line 50) | class Harvester_add_plot_dir_return
    class Harvester_get_farm_info (line 51) | class Harvester_get_farm_info
    class Harvester_get_farm_info_return (line 52) | class Harvester_get_farm_info_return
    class Harvester_get_total_bytes (line 53) | class Harvester_get_total_bytes
    class Harvester_get_total_bytes_return (line 54) | class Harvester_get_total_bytes_return
    class Harvester_reload (line 55) | class Harvester_reload
    class Harvester_reload_return (line 56) | class Harvester_reload_return
    class Harvester_rem_plot_dir (line 57) | class Harvester_rem_plot_dir
    class Harvester_rem_plot_dir_return (line 58) | class Harvester_rem_plot_dir_return
    class IntervalRequest (line 59) | class IntervalRequest
    class KeyFile (line 60) | class KeyFile
    class LookupInfo (line 61) | class LookupInfo
    class NetworkInfo (line 62) | class NetworkInfo
    class NodeBase (line 63) | class NodeBase
    class Node_add_block (line 64) | class Node_add_block
    class Node_add_block_return (line 65) | class Node_add_block_return
    class Node_add_transaction (line 66) | class Node_add_transaction
    class Node_add_transaction_return (line 67) | class Node_add_transaction_return
    class Node_call_contract (line 68) | class Node_call_contract
    class Node_call_contract_return (line 69) | class Node_call_contract_return
    class Node_dump_storage (line 70) | class Node_dump_storage
    class Node_dump_storage_return (line 71) | class Node_dump_storage_return
    class Node_fetch_offers (line 72) | class Node_fetch_offers
    class Node_fetch_offers_return (line 73) | class Node_fetch_offers_return
    class Node_get_all_balances (line 74) | class Node_get_all_balances
    class Node_get_all_balances_return (line 75) | class Node_get_all_balances_return
    class Node_get_balance (line 76) | class Node_get_balance
    class Node_get_balance_return (line 77) | class Node_get_balance_return
    class Node_get_balances (line 78) | class Node_get_balances
    class Node_get_balances_return (line 79) | class Node_get_balances_return
    class Node_get_block (line 80) | class Node_get_block
    class Node_get_block_return (line 81) | class Node_get_block_return
    class Node_get_block_at (line 82) | class Node_get_block_at
    class Node_get_block_at_return (line 83) | class Node_get_block_at_return
    class Node_get_block_hash (line 84) | class Node_get_block_hash
    class Node_get_block_hash_return (line 85) | class Node_get_block_hash_return
    class Node_get_block_hash_ex (line 86) | class Node_get_block_hash_ex
    class Node_get_block_hash_ex_return (line 87) | class Node_get_block_hash_ex_return
    class Node_get_contract (line 88) | class Node_get_contract
    class Node_get_contract_return (line 89) | class Node_get_contract_return
    class Node_get_contract_balances (line 90) | class Node_get_contract_balances
    class Node_get_contract_balances_return (line 91) | class Node_get_contract_balances_return
    class Node_get_contract_for (line 92) | class Node_get_contract_for
    class Node_get_contract_for_return (line 93) | class Node_get_contract_for_return
    class Node_get_contracts (line 94) | class Node_get_contracts
    class Node_get_contracts_return (line 95) | class Node_get_contracts_return
    class Node_get_contracts_by (line 96) | class Node_get_contracts_by
    class Node_get_contracts_by_return (line 97) | class Node_get_contracts_by_return
    class Node_get_contracts_owned_by (line 98) | class Node_get_contracts_owned_by
    class Node_get_contracts_owned_by_return (line 99) | class Node_get_contracts_owned_by_return
    class Node_get_exec_history (line 100) | class Node_get_exec_history
    class Node_get_exec_history_return (line 101) | class Node_get_exec_history_return
    class Node_get_farmed_block_summary (line 102) | class Node_get_farmed_block_summary
    class Node_get_farmed_block_summary_return (line 103) | class Node_get_farmed_block_summary_return
    class Node_get_farmed_blocks (line 104) | class Node_get_farmed_blocks
    class Node_get_farmed_blocks_return (line 105) | class Node_get_farmed_blocks_return
    class Node_get_farmer_ranking (line 106) | class Node_get_farmer_ranking
    class Node_get_farmer_ranking_return (line 107) | class Node_get_farmer_ranking_return
    class Node_get_genesis_hash (line 108) | class Node_get_genesis_hash
    class Node_get_genesis_hash_return (line 109) | class Node_get_genesis_hash_return
    class Node_get_header (line 110) | class Node_get_header
    class Node_get_header_return (line 111) | class Node_get_header_return
    class Node_get_header_at (line 112) | class Node_get_header_at
    class Node_get_header_at_return (line 113) | class Node_get_header_at_return
    class Node_get_height (line 114) | class Node_get_height
    class Node_get_height_return (line 115) | class Node_get_height_return
    class Node_get_history (line 116) | class Node_get_history
    class Node_get_history_return (line 117) | class Node_get_history_return
    class Node_get_history_memo (line 118) | class Node_get_history_memo
    class Node_get_history_memo_return (line 119) | class Node_get_history_memo_return
    class Node_get_network_info (line 120) | class Node_get_network_info
    class Node_get_network_info_return (line 121) | class Node_get_network_info_return
    class Node_get_offer (line 122) | class Node_get_offer
    class Node_get_offer_return (line 123) | class Node_get_offer_return
    class Node_get_offers (line 124) | class Node_get_offers
    class Node_get_offers_return (line 125) | class Node_get_offers_return
    class Node_get_offers_by (line 126) | class Node_get_offers_by
    class Node_get_offers_by_return (line 127) | class Node_get_offers_by_return
    class Node_get_params (line 128) | class Node_get_params
    class Node_get_params_return (line 129) | class Node_get_params_return
    class Node_get_plot_nft_info (line 130) | class Node_get_plot_nft_info
    class Node_get_plot_nft_info_return (line 131) | class Node_get_plot_nft_info_return
    class Node_get_plot_nft_target (line 132) | class Node_get_plot_nft_target
    class Node_get_plot_nft_target_return (line 133) | class Node_get_plot_nft_target_return
    class Node_get_recent_offers (line 134) | class Node_get_recent_offers
    class Node_get_recent_offers_return (line 135) | class Node_get_recent_offers_return
    class Node_get_recent_offers_for (line 136) | class Node_get_recent_offers_for
    class Node_get_recent_offers_for_return (line 137) | class Node_get_recent_offers_for_return
    class Node_get_swap_equivalent_liquidity (line 138) | class Node_get_swap_equivalent_liquidity
    class Node_get_swap_equivalent_liquidity_return (line 139) | class Node_get_swap_equivalent_liquidity_return
    class Node_get_swap_fees_earned (line 140) | class Node_get_swap_fees_earned
    class Node_get_swap_fees_earned_return (line 141) | class Node_get_swap_fees_earned_return
    class Node_get_swap_history (line 142) | class Node_get_swap_history
    class Node_get_swap_history_return (line 143) | class Node_get_swap_history_return
    class Node_get_swap_info (line 144) | class Node_get_swap_info
    class Node_get_swap_info_return (line 145) | class Node_get_swap_info_return
    class Node_get_swap_liquidity_by (line 146) | class Node_get_swap_liquidity_by
    class Node_get_swap_liquidity_by_return (line 147) | class Node_get_swap_liquidity_by_return
    class Node_get_swap_trade_estimate (line 148) | class Node_get_swap_trade_estimate
    class Node_get_swap_trade_estimate_return (line 149) | class Node_get_swap_trade_estimate_return
    class Node_get_swap_user_info (line 150) | class Node_get_swap_user_info
    class Node_get_swap_user_info_return (line 151) | class Node_get_swap_user_info_return
    class Node_get_swaps (line 152) | class Node_get_swaps
    class Node_get_swaps_return (line 153) | class Node_get_swaps_return
    class Node_get_synced_height (line 154) | class Node_get_synced_height
    class Node_get_synced_height_return (line 155) | class Node_get_synced_height_return
    class Node_get_synced_vdf_height (line 156) | class Node_get_synced_vdf_height
    class Node_get_synced_vdf_height_return (line 157) | class Node_get_synced_vdf_height_return
    class Node_get_total_balance (line 158) | class Node_get_total_balance
    class Node_get_total_balance_return (line 159) | class Node_get_total_balance_return
    class Node_get_total_balances (line 160) | class Node_get_total_balances
    class Node_get_total_balances_return (line 161) | class Node_get_total_balances_return
    class Node_get_total_supply (line 162) | class Node_get_total_supply
    class Node_get_total_supply_return (line 163) | class Node_get_total_supply_return
    class Node_get_trade_history (line 164) | class Node_get_trade_history
    class Node_get_trade_history_return (line 165) | class Node_get_trade_history_return
    class Node_get_trade_history_for (line 166) | class Node_get_trade_history_for
    class Node_get_trade_history_for_return (line 167) | class Node_get_trade_history_for_return
    class Node_get_transaction (line 168) | class Node_get_transaction
    class Node_get_transaction_return (line 169) | class Node_get_transaction_return
    class Node_get_transactions (line 170) | class Node_get_transactions
    class Node_get_transactions_return (line 171) | class Node_get_transactions_return
    class Node_get_tx_height (line 172) | class Node_get_tx_height
    class Node_get_tx_height_return (line 173) | class Node_get_tx_height_return
    class Node_get_tx_ids (line 174) | class Node_get_tx_ids
    class Node_get_tx_ids_return (line 175) | class Node_get_tx_ids_return
    class Node_get_tx_ids_at (line 176) | class Node_get_tx_ids_at
    class Node_get_tx_ids_at_return (line 177) | class Node_get_tx_ids_at_return
    class Node_get_tx_ids_since (line 178) | class Node_get_tx_ids_since
    class Node_get_tx_ids_since_return (line 179) | class Node_get_tx_ids_since_return
    class Node_get_tx_info (line 180) | class Node_get_tx_info
    class Node_get_tx_info_return (line 181) | class Node_get_tx_info_return
    class Node_get_tx_info_for (line 182) | class Node_get_tx_info_for
    class Node_get_tx_info_for_return (line 183) | class Node_get_tx_info_for_return
    class Node_get_vdf_height (line 184) | class Node_get_vdf_height
    class Node_get_vdf_height_return (line 185) | class Node_get_vdf_height_return
    class Node_get_vdf_peak (line 186) | class Node_get_vdf_peak
    class Node_get_vdf_peak_return (line 187) | class Node_get_vdf_peak_return
    class Node_read_storage (line 188) | class Node_read_storage
    class Node_read_storage_return (line 189) | class Node_read_storage_return
    class Node_read_storage_array (line 190) | class Node_read_storage_array
    class Node_read_storage_array_return (line 191) | class Node_read_storage_array_return
    class Node_read_storage_entry_addr (line 192) | class Node_read_storage_entry_addr
    class Node_read_storage_entry_addr_return (line 193) | class Node_read_storage_entry_addr_return
    class Node_read_storage_entry_string (line 194) | class Node_read_storage_entry_string
    class Node_read_storage_entry_string_return (line 195) | class Node_read_storage_entry_string_return
    class Node_read_storage_entry_var (line 196) | class Node_read_storage_entry_var
    class Node_read_storage_entry_var_return (line 197) | class Node_read_storage_entry_var_return
    class Node_read_storage_field (line 198) | class Node_read_storage_field
    class Node_read_storage_field_return (line 199) | class Node_read_storage_field_return
    class Node_read_storage_map (line 200) | class Node_read_storage_map
    class Node_read_storage_map_return (line 201) | class Node_read_storage_map_return
    class Node_read_storage_object (line 202) | class Node_read_storage_object
    class Node_read_storage_object_return (line 203) | class Node_read_storage_object_return
    class Node_read_storage_var (line 204) | class Node_read_storage_var
    class Node_read_storage_var_return (line 205) | class Node_read_storage_var_return
    class Node_revert_sync (line 206) | class Node_revert_sync
    class Node_revert_sync_return (line 207) | class Node_revert_sync_return
    class Node_start_sync (line 208) | class Node_start_sync
    class Node_start_sync_return (line 209) | class Node_start_sync_return
    class Node_validate (line 210) | class Node_validate
    class Node_validate_return (line 211) | class Node_validate_return
    class Node_verify_partial (line 212) | class Node_verify_partial
    class Node_verify_partial_return (line 213) | class Node_verify_partial_return
    class Node_verify_plot_nft_target (line 214) | class Node_verify_plot_nft_target
    class Node_verify_plot_nft_target_return (line 215) | class Node_verify_plot_nft_target_return
    class Operation (line 216) | class Operation
    class Partial (line 217) | class Partial
    class PeerInfo (line 218) | class PeerInfo
    class PlotHeader (line 219) | class PlotHeader
    class ProofOfSpace (line 220) | class ProofOfSpace
    class ProofOfSpaceNFT (line 221) | class ProofOfSpaceNFT
    class ProofOfSpaceOG (line 222) | class ProofOfSpaceOG
    class ProofOfTime (line 223) | class ProofOfTime
    class ProofResponse (line 224) | class ProofResponse
    class ProofServerBase (line 225) | class ProofServerBase
    class ProofServer_compute (line 226) | class ProofServer_compute
    class ProofServer_compute_return (line 227) | class ProofServer_compute_return
    class ReceiveNote (line 228) | class ReceiveNote
    class Request (line 229) | class Request
    class Return (line 230) | class Return
    class RouterBase (line 231) | class RouterBase
    class Router_discover (line 232) | class Router_discover
    class Router_discover_return (line 233) | class Router_discover_return
    class Router_fetch_block (line 234) | class Router_fetch_block
    class Router_fetch_block_return (line 235) | class Router_fetch_block_return
    class Router_fetch_block_at (line 236) | class Router_fetch_block_at
    class Router_fetch_block_at_return (line 237) | class Router_fetch_block_at_return
    class Router_get_blocks_at (line 238) | class Router_get_blocks_at
    class Router_get_blocks_at_return (line 239) | class Router_get_blocks_at_return
    class Router_get_connected_peers (line 240) | class Router_get_connected_peers
    class Router_get_connected_peers_return (line 241) | class Router_get_connected_peers_return
    class Router_get_id (line 242) | class Router_get_id
    class Router_get_id_return (line 243) | class Router_get_id_return
    class Router_get_info (line 244) | class Router_get_info
    class Router_get_info_return (line 245) | class Router_get_info_return
    class Router_get_known_peers (line 246) | class Router_get_known_peers
    class Router_get_known_peers_return (line 247) | class Router_get_known_peers_return
    class Router_get_peer_info (line 248) | class Router_get_peer_info
    class Router_get_peer_info_return (line 249) | class Router_get_peer_info_return
    class Router_get_peers (line 250) | class Router_get_peers
    class Router_get_peers_return (line 251) | class Router_get_peers_return
    class Router_kick_peer (line 252) | class Router_kick_peer
    class Router_kick_peer_return (line 253) | class Router_kick_peer_return
    class Router_sign_msg (line 254) | class Router_sign_msg
    class Router_sign_msg_return (line 255) | class Router_sign_msg_return
    class Solution (line 256) | class Solution
    class TimeLordBase (line 257) | class TimeLordBase
    class TimeLord_stop_vdf (line 258) | class TimeLord_stop_vdf
    class TimeLord_stop_vdf_return (line 259) | class TimeLord_stop_vdf_return
    class Transaction (line 260) | class Transaction
    class TransactionBase (line 261) | class TransactionBase
    class VDF_Point (line 262) | class VDF_Point
    class ValidatorVote (line 263) | class ValidatorVote
    class WalletBase (line 264) | class WalletBase
    class Wallet_accept_offer (line 265) | class Wallet_accept_offer
    class Wallet_accept_offer_return (line 266) | class Wallet_accept_offer_return
    class Wallet_add_account (line 267) | class Wallet_add_account
    class Wallet_add_account_return (line 268) | class Wallet_add_account_return
    class Wallet_add_token (line 269) | class Wallet_add_token
    class Wallet_add_token_return (line 270) | class Wallet_add_token_return
    class Wallet_cancel_offer (line 271) | class Wallet_cancel_offer
    class Wallet_cancel_offer_return (line 272) | class Wallet_cancel_offer_return
    class Wallet_complete (line 273) | class Wallet_complete
    class Wallet_complete_return (line 274) | class Wallet_complete_return
    class Wallet_create_account (line 275) | class Wallet_create_account
    class Wallet_create_account_return (line 276) | class Wallet_create_account_return
    class Wallet_create_wallet (line 277) | class Wallet_create_wallet
    class Wallet_create_wallet_return (line 278) | class Wallet_create_wallet_return
    class Wallet_deploy (line 279) | class Wallet_deploy
    class Wallet_deploy_return (line 280) | class Wallet_deploy_return
    class Wallet_deposit (line 281) | class Wallet_deposit
    class Wallet_deposit_return (line 282) | class Wallet_deposit_return
    class Wallet_execute (line 283) | class Wallet_execute
    class Wallet_execute_return (line 284) | class Wallet_execute_return
    class Wallet_export_wallet (line 285) | class Wallet_export_wallet
    class Wallet_export_wallet_return (line 286) | class Wallet_export_wallet_return
    class Wallet_find_wallet_by_addr (line 287) | class Wallet_find_wallet_by_addr
    class Wallet_find_wallet_by_addr_return (line 288) | class Wallet_find_wallet_by_addr_return
    class Wallet_gather_inputs_for (line 289) | class Wallet_gather_inputs_for
    class Wallet_gather_inputs_for_return (line 290) | class Wallet_gather_inputs_for_return
    class Wallet_get_account (line 291) | class Wallet_get_account
    class Wallet_get_account_return (line 292) | class Wallet_get_account_return
    class Wallet_get_address (line 293) | class Wallet_get_address
    class Wallet_get_address_return (line 294) | class Wallet_get_address_return
    class Wallet_get_all_accounts (line 295) | class Wallet_get_all_accounts
    class Wallet_get_all_accounts_return (line 296) | class Wallet_get_all_accounts_return
    class Wallet_get_all_addresses (line 297) | class Wallet_get_all_addresses
    class Wallet_get_all_addresses_return (line 298) | class Wallet_get_all_addresses_return
    class Wallet_get_all_farmer_keys (line 299) | class Wallet_get_all_farmer_keys
    class Wallet_get_all_farmer_keys_return (line 300) | class Wallet_get_all_farmer_keys_return
    class Wallet_get_balance (line 301) | class Wallet_get_balance
    class Wallet_get_balance_return (line 302) | class Wallet_get_balance_return
    class Wallet_get_balances (line 303) | class Wallet_get_balances
    class Wallet_get_balances_return (line 304) | class Wallet_get_balances_return
    class Wallet_get_contract_balances (line 305) | class Wallet_get_contract_balances
    class Wallet_get_contract_balances_return (line 306) | class Wallet_get_contract_balances_return
    class Wallet_get_contracts (line 307) | class Wallet_get_contracts
    class Wallet_get_contracts_return (line 308) | class Wallet_get_contracts_return
    class Wallet_get_contracts_owned (line 309) | class Wallet_get_contracts_owned
    class Wallet_get_contracts_owned_return (line 310) | class Wallet_get_contracts_owned_return
    class Wallet_get_farmer_keys (line 311) | class Wallet_get_farmer_keys
    class Wallet_get_farmer_keys_return (line 312) | class Wallet_get_farmer_keys_return
    class Wallet_get_history (line 313) | class Wallet_get_history
    class Wallet_get_history_return (line 314) | class Wallet_get_history_return
    class Wallet_get_master_seed (line 315) | class Wallet_get_master_seed
    class Wallet_get_master_seed_return (line 316) | class Wallet_get_master_seed_return
    class Wallet_get_mnemonic_seed (line 317) | class Wallet_get_mnemonic_seed
    class Wallet_get_mnemonic_seed_return (line 318) | class Wallet_get_mnemonic_seed_return
    class Wallet_get_mnemonic_wordlist (line 319) | class Wallet_get_mnemonic_wordlist
    class Wallet_get_mnemonic_wordlist_return (line 320) | class Wallet_get_mnemonic_wordlist_return
    class Wallet_get_offers (line 321) | class Wallet_get_offers
    class Wallet_get_offers_return (line 322) | class Wallet_get_offers_return
    class Wallet_get_swap_liquidity (line 323) | class Wallet_get_swap_liquidity
    class Wallet_get_swap_liquidity_return (line 324) | class Wallet_get_swap_liquidity_return
    class Wallet_get_token_list (line 325) | class Wallet_get_token_list
    class Wallet_get_token_list_return (line 326) | class Wallet_get_token_list_return
    class Wallet_get_total_balances (line 327) | class Wallet_get_total_balances
    class Wallet_get_total_balances_return (line 328) | class Wallet_get_total_balances_return
    class Wallet_get_tx_log (line 329) | class Wallet_get_tx_log
    class Wallet_get_tx_log_return (line 330) | class Wallet_get_tx_log_return
    class Wallet_import_wallet (line 331) | class Wallet_import_wallet
    class Wallet_import_wallet_return (line 332) | class Wallet_import_wallet_return
    class Wallet_is_locked (line 333) | class Wallet_is_locked
    class Wallet_is_locked_return (line 334) | class Wallet_is_locked_return
    class Wallet_lock (line 335) | class Wallet_lock
    class Wallet_lock_return (line 336) | class Wallet_lock_return
    class Wallet_make_offer (line 337) | class Wallet_make_offer
    class Wallet_make_offer_return (line 338) | class Wallet_make_offer_return
    class Wallet_mark_spent (line 339) | class Wallet_mark_spent
    class Wallet_mark_spent_return (line 340) | class Wallet_mark_spent_return
    class Wallet_offer_trade (line 341) | class Wallet_offer_trade
    class Wallet_offer_trade_return (line 342) | class Wallet_offer_trade_return
    class Wallet_offer_withdraw (line 343) | class Wallet_offer_withdraw
    class Wallet_offer_withdraw_return (line 344) | class Wallet_offer_withdraw_return
    class Wallet_plotnft_create (line 345) | class Wallet_plotnft_create
    class Wallet_plotnft_create_return (line 346) | class Wallet_plotnft_create_return
    class Wallet_plotnft_exec (line 347) | class Wallet_plotnft_exec
    class Wallet_plotnft_exec_return (line 348) | class Wallet_plotnft_exec_return
    class Wallet_release (line 349) | class Wallet_release
    class Wallet_release_return (line 350) | class Wallet_release_return
    class Wallet_release_all (line 351) | class Wallet_release_all
    class Wallet_release_all_return (line 352) | class Wallet_release_all_return
    class Wallet_rem_token (line 353) | class Wallet_rem_token
    class Wallet_rem_token_return (line 354) | class Wallet_rem_token_return
    class Wallet_remove_account (line 355) | class Wallet_remove_account
    class Wallet_remove_account_return (line 356) | class Wallet_remove_account_return
    class Wallet_reserve (line 357) | class Wallet_reserve
    class Wallet_reserve_return (line 358) | class Wallet_reserve_return
    class Wallet_reset_cache (line 359) | class Wallet_reset_cache
    class Wallet_reset_cache_return (line 360) | class Wallet_reset_cache_return
    class Wallet_send (line 361) | class Wallet_send
    class Wallet_send_return (line 362) | class Wallet_send_return
    class Wallet_send_from (line 363) | class Wallet_send_from
    class Wallet_send_from_return (line 364) | class Wallet_send_from_return
    class Wallet_send_many (line 365) | class Wallet_send_many
    class Wallet_send_many_return (line 366) | class Wallet_send_many_return
    class Wallet_send_off (line 367) | class Wallet_send_off
    class Wallet_send_off_return (line 368) | class Wallet_send_off_return
    class Wallet_set_address_count (line 369) | class Wallet_set_address_count
    class Wallet_set_address_count_return (line 370) | class Wallet_set_address_count_return
    class Wallet_sign_msg (line 371) | class Wallet_sign_msg
    class Wallet_sign_msg_return (line 372) | class Wallet_sign_msg_return
    class Wallet_sign_off (line 373) | class Wallet_sign_off
    class Wallet_sign_off_return (line 374) | class Wallet_sign_off_return
    class Wallet_swap_add_liquid (line 375) | class Wallet_swap_add_liquid
    class Wallet_swap_add_liquid_return (line 376) | class Wallet_swap_add_liquid_return
    class Wallet_swap_rem_liquid (line 377) | class Wallet_swap_rem_liquid
    class Wallet_swap_rem_liquid_return (line 378) | class Wallet_swap_rem_liquid_return
    class Wallet_swap_trade (line 379) | class Wallet_swap_trade
    class Wallet_swap_trade_return (line 380) | class Wallet_swap_trade_return
    class Wallet_unlock (line 381) | class Wallet_unlock
    class Wallet_unlock_return (line 382) | class Wallet_unlock_return
    class Wallet_update_cache (line 383) | class Wallet_update_cache
    class Wallet_update_cache_return (line 384) | class Wallet_update_cache_return
    class WalletFile (line 385) | class WalletFile
    class WebAPIBase (line 386) | class WebAPIBase
    class WebAPI_shutdown (line 387) | class WebAPI_shutdown
    class WebAPI_shutdown_return (line 388) | class WebAPI_shutdown_return
    type account_info_t (line 389) | struct account_info_t
    type account_t (line 390) | struct account_t
    class addr_t (line 391) | class addr_t
    type balance_t (line 392) | struct balance_t
    type block_index_t (line 393) | struct block_index_t
    type compile_flags_t (line 394) | struct compile_flags_t
    type error_code_e (line 395) | struct error_code_e
    type exec_entry_t (line 396) | struct exec_entry_t
    type exec_error_t (line 397) | struct exec_error_t
    type exec_result_t (line 398) | struct exec_result_t
    type farmed_block_info_t (line 399) | struct farmed_block_info_t
    type farmed_block_summary_t (line 400) | struct farmed_block_summary_t
    class fixed128 (line 401) | class fixed128
    class hash_512_t (line 402) | class hash_512_t
    class hash_t (line 403) | class hash_t
    type node_info_t (line 404) | struct node_info_t
    type node_type_e (line 405) | struct node_type_e
    type offer_data_t (line 406) | struct offer_data_t
    type peer_info_t (line 407) | struct peer_info_t
    type permission_e (line 408) | struct permission_e
    type plot_nft_info_t (line 409) | struct plot_nft_info_t
    type pooling_error_e (line 410) | struct pooling_error_e
    type pooling_info_t (line 411) | struct pooling_info_t
    type pooling_stats_t (line 412) | struct pooling_stats_t
    class pubkey_t (line 413) | class pubkey_t
    type query_filter_t (line 414) | struct query_filter_t
    class signature_t (line 415) | class signature_t
    class skey_t (line 416) | class skey_t
    type spend_options_t (line 417) | struct spend_options_t
    type swap_entry_t (line 418) | struct swap_entry_t
    type swap_info_t (line 419) | struct swap_info_t
    type swap_pool_info_t (line 420) | struct swap_pool_info_t
    type swap_user_info_t (line 421) | struct swap_user_info_t
    type table_entry_t (line 422) | struct table_entry_t
    type trade_entry_t (line 423) | struct trade_entry_t
    type trade_log_t (line 424) | struct trade_log_t
    type tx_entry_t (line 425) | struct tx_entry_t
    type tx_index_t (line 426) | struct tx_index_t
    class tx_info_t (line 427) | class tx_info_t
    type tx_log_entry_t (line 428) | struct tx_log_entry_t
    type tx_note_e (line 429) | struct tx_note_e
    type tx_type_e (line 430) | struct tx_type_e
    type txin_t (line 431) | struct txin_t
    type txio_entry_t (line 432) | struct txio_entry_t
    type txio_t (line 433) | struct txio_t
    type txout_t (line 434) | struct txout_t
    class uint128 (line 435) | class uint128
    type uint_fraction_t (line 436) | struct uint_fraction_t
    type ulong_fraction_t (line 437) | struct ulong_fraction_t
    type virtual_plot_info_t (line 438) | struct virtual_plot_info_t
  type vnx (line 848) | namespace vnx {
    type type<::mmx::Block> (line 3628) | struct type<::mmx::Block> {
      method read (line 3629) | void read(TypeInput& in, ::mmx::Block& value, const TypeCode* type_c...
      method write (line 3632) | void write(TypeOutput& out, const ::mmx::Block& value, const TypeCod...
      method read (line 3635) | void read(std::istream& in, ::mmx::Block& value) {
      method write (line 3638) | void write(std::ostream& out, const ::mmx::Block& value) {
      method accept (line 3641) | void accept(Visitor& visitor, const ::mmx::Block& value) {
    type type<::mmx::BlockHeader> (line 3651) | struct type<::mmx::BlockHeader> {
      method read (line 3652) | void read(TypeInput& in, ::mmx::BlockHeader& value, const TypeCode* ...
      method write (line 3655) | void write(TypeOutput& out, const ::mmx::BlockHeader& value, const T...
      method read (line 3658) | void read(std::istream& in, ::mmx::BlockHeader& value) {
      method write (line 3661) | void write(std::ostream& out, const ::mmx::BlockHeader& value) {
      method accept (line 3664) | void accept(Visitor& visitor, const ::mmx::BlockHeader& value) {
    type type<::mmx::ChainParams> (line 3674) | struct type<::mmx::ChainParams> {
      method read (line 3675) | void read(TypeInput& in, ::mmx::ChainParams& value, const TypeCode* ...
      method write (line 3678) | void write(TypeOutput& out, const ::mmx::ChainParams& value, const T...
      method read (line 3681) | void read(std::istream& in, ::mmx::ChainParams& value) {
      method write (line 3684) | void write(std::ostream& out, const ::mmx::ChainParams& value) {
      method accept (line 3687) | void accept(Visitor& visitor, const ::mmx::ChainParams& value) {
    type type<::mmx::Challenge> (line 3697) | struct type<::mmx::Challenge> {
      method read (line 3698) | void read(TypeInput& in, ::mmx::Challenge& value, const TypeCode* ty...
      method write (line 3701) | void write(TypeOutput& out, const ::mmx::Challenge& value, const Typ...
      method read (line 3704) | void read(std::istream& in, ::mmx::Challenge& value) {
      method write (line 3707) | void write(std::ostream& out, const ::mmx::Challenge& value) {
      method accept (line 3710) | void accept(Visitor& visitor, const ::mmx::Challenge& value) {
    type type<::mmx::Contract> (line 3720) | struct type<::mmx::Contract> {
      method read (line 3721) | void read(TypeInput& in, ::mmx::Contract& value, const TypeCode* typ...
      method write (line 3724) | void write(TypeOutput& out, const ::mmx::Contract& value, const Type...
      method read (line 3727) | void read(std::istream& in, ::mmx::Contract& value) {
      method write (line 3730) | void write(std::ostream& out, const ::mmx::Contract& value) {
      method accept (line 3733) | void accept(Visitor& visitor, const ::mmx::Contract& value) {
    type type<::mmx::FarmInfo> (line 3743) | struct type<::mmx::FarmInfo> {
      method read (line 3744) | void read(TypeInput& in, ::mmx::FarmInfo& value, const TypeCode* typ...
      method write (line 3747) | void write(TypeOutput& out, const ::mmx::FarmInfo& value, const Type...
      method read (line 3750) | void read(std::istream& in, ::mmx::FarmInfo& value) {
      method write (line 3753) | void write(std::ostream& out, const ::mmx::FarmInfo& value) {
      method accept (line 3756) | void accept(Visitor& visitor, const ::mmx::FarmInfo& value) {
    type type<::mmx::FarmerBase> (line 3766) | struct type<::mmx::FarmerBase> {
      method read (line 3767) | void read(TypeInput& in, ::mmx::FarmerBase& value, const TypeCode* t...
      method write (line 3770) | void write(TypeOutput& out, const ::mmx::FarmerBase& value, const Ty...
      method read (line 3773) | void read(std::istream& in, ::mmx::FarmerBase& value) {
      method write (line 3776) | void write(std::ostream& out, const ::mmx::FarmerBase& value) {
      method accept (line 3779) | void accept(Visitor& visitor, const ::mmx::FarmerBase& value) {
    type type<::mmx::Farmer_get_farm_info> (line 3786) | struct type<::mmx::Farmer_get_farm_info> {
      method read (line 3787) | void read(TypeInput& in, ::mmx::Farmer_get_farm_info& value, const T...
      method write (line 3790) | void write(TypeOutput& out, const ::mmx::Farmer_get_farm_info& value...
      method read (line 3793) | void read(std::istream& in, ::mmx::Farmer_get_farm_info& value) {
      method write (line 3796) | void write(std::ostream& out, const ::mmx::Farmer_get_farm_info& val...
      method accept (line 3799) | void accept(Visitor& visitor, const ::mmx::Farmer_get_farm_info& val...
    type type<::mmx::Farmer_get_farm_info_return> (line 3809) | struct type<::mmx::Farmer_get_farm_info_return> {
      method read (line 3810) | void read(TypeInput& in, ::mmx::Farmer_get_farm_info_return& value, ...
      method write (line 3813) | void write(TypeOutput& out, const ::mmx::Farmer_get_farm_info_return...
      method read (line 3816) | void read(std::istream& in, ::mmx::Farmer_get_farm_info_return& valu...
      method write (line 3819) | void write(std::ostream& out, const ::mmx::Farmer_get_farm_info_retu...
      method accept (line 3822) | void accept(Visitor& visitor, const ::mmx::Farmer_get_farm_info_retu...
    type type<::mmx::Farmer_get_farmer_keys> (line 3832) | struct type<::mmx::Farmer_get_farmer_keys> {
      method read (line 3833) | void read(TypeInput& in, ::mmx::Farmer_get_farmer_keys& value, const...
      method write (line 3836) | void write(TypeOutput& out, const ::mmx::Farmer_get_farmer_keys& val...
      method read (line 3839) | void read(std::istream& in, ::mmx::Farmer_get_farmer_keys& value) {
      method write (line 3842) | void write(std::ostream& out, const ::mmx::Farmer_get_farmer_keys& v...
      method accept (line 3845) | void accept(Visitor& visitor, const ::mmx::Farmer_get_farmer_keys& v...
    type type<::mmx::Farmer_get_farmer_keys_return> (line 3855) | struct type<::mmx::Farmer_get_farmer_keys_return> {
      method read (line 3856) | void read(TypeInput& in, ::mmx::Farmer_get_farmer_keys_return& value...
      method write (line 3859) | void write(TypeOutput& out, const ::mmx::Farmer_get_farmer_keys_retu...
      method read (line 3862) | void read(std::istream& in, ::mmx::Farmer_get_farmer_keys_return& va...
      method write (line 3865) | void write(std::ostream& out, const ::mmx::Farmer_get_farmer_keys_re...
      method accept (line 3868) | void accept(Visitor& visitor, const ::mmx::Farmer_get_farmer_keys_re...
    type type<::mmx::Farmer_get_mac_addr> (line 3878) | struct type<::mmx::Farmer_get_mac_addr> {
      method read (line 3879) | void read(TypeInput& in, ::mmx::Farmer_get_mac_addr& value, const Ty...
      method write (line 3882) | void write(TypeOutput& out, const ::mmx::Farmer_get_mac_addr& value,...
      method read (line 3885) | void read(std::istream& in, ::mmx::Farmer_get_mac_addr& value) {
      method write (line 3888) | void write(std::ostream& out, const ::mmx::Farmer_get_mac_addr& valu...
      method accept (line 3891) | void accept(Visitor& visitor, const ::mmx::Farmer_get_mac_addr& valu...
    type type<::mmx::Farmer_get_mac_addr_return> (line 3901) | struct type<::mmx::Farmer_get_mac_addr_return> {
      method read (line 3902) | void read(TypeInput& in, ::mmx::Farmer_get_mac_addr_return& value, c...
      method write (line 3905) | void write(TypeOutput& out, const ::mmx::Farmer_get_mac_addr_return&...
      method read (line 3908) | void read(std::istream& in, ::mmx::Farmer_get_mac_addr_return& value) {
      method write (line 3911) | void write(std::ostream& out, const ::mmx::Farmer_get_mac_addr_retur...
      method accept (line 3914) | void accept(Visitor& visitor, const ::mmx::Farmer_get_mac_addr_retur...
    type type<::mmx::Farmer_get_partial_diff> (line 3924) | struct type<::mmx::Farmer_get_partial_diff> {
      method read (line 3925) | void read(TypeInput& in, ::mmx::Farmer_get_partial_diff& value, cons...
      method write (line 3928) | void write(TypeOutput& out, const ::mmx::Farmer_get_partial_diff& va...
      method read (line 3931) | void read(std::istream& in, ::mmx::Farmer_get_partial_diff& value) {
      method write (line 3934) | void write(std::ostream& out, const ::mmx::Farmer_get_partial_diff& ...
      method accept (line 3937) | void accept(Visitor& visitor, const ::mmx::Farmer_get_partial_diff& ...
    type type<::mmx::Farmer_get_partial_diff_return> (line 3947) | struct type<::mmx::Farmer_get_partial_diff_return> {
      method read (line 3948) | void read(TypeInput& in, ::mmx::Farmer_get_partial_diff_return& valu...
      method write (line 3951) | void write(TypeOutput& out, const ::mmx::Farmer_get_partial_diff_ret...
      method read (line 3954) | void read(std::istream& in, ::mmx::Farmer_get_partial_diff_return& v...
      method write (line 3957) | void write(std::ostream& out, const ::mmx::Farmer_get_partial_diff_r...
      method accept (line 3960) | void accept(Visitor& visitor, const ::mmx::Farmer_get_partial_diff_r...
    type type<::mmx::Farmer_get_partial_diffs> (line 3970) | struct type<::mmx::Farmer_get_partial_diffs> {
      method read (line 3971) | void read(TypeInput& in, ::mmx::Farmer_get_partial_diffs& value, con...
      method write (line 3974) | void write(TypeOutput& out, const ::mmx::Farmer_get_partial_diffs& v...
      method read (line 3977) | void read(std::istream& in, ::mmx::Farmer_get_partial_diffs& value) {
      method write (line 3980) | void write(std::ostream& out, const ::mmx::Farmer_get_partial_diffs&...
      method accept (line 3983) | void accept(Visitor& visitor, const
Copy disabled (too large) Download .json
Condensed preview — 1559 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,296K chars).
[
  {
    "path": ".dockerignore",
    "chars": 7,
    "preview": "/build\n"
  },
  {
    "path": ".github/workflows/debian.yml",
    "chars": 1649,
    "preview": "name: Debian\n\non:\n  push:\n    branches:\n      - '**'\n    tags:\n      - '**'\n\nconcurrency:\n  group: ${{ github.workflow }"
  },
  {
    "path": ".github/workflows/docker.yml",
    "chars": 2613,
    "preview": "name: Docker\n\non:\n  push:\n    branches:\n      - '**'\n    tags:\n      - '**'\n\n# Automatically cancel previous runs for th"
  },
  {
    "path": ".github/workflows/windows.yml",
    "chars": 4914,
    "preview": "name: Windows\n\non:\n  push:\n    branches:\n      - '**'\n    tags:\n      - '**'\n#   schedule:\n#       - cron: \"0 4 * * *\"\n\n"
  },
  {
    "path": ".gitignore",
    "chars": 567,
    "preview": "# Prerequisites\n*.d\n\n# Compiled Object files\n*.slo\n*.lo\n*.o\n*.obj\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Compiled Dynamic"
  },
  {
    "path": ".gitmodules",
    "chars": 659,
    "preview": "[submodule \"secp256k1\"]\n\tpath = lib/secp256k1\n\turl = https://github.com/bitcoin-core/secp256k1.git\n[submodule \"uint256_t"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 11199,
    "preview": "cmake_minimum_required(VERSION 3.13)\nproject(mmx-node C CXX ASM)\n\ninclude(FetchContent)\n\nset(CMAKE_POSITION_INDEPENDENT_"
  },
  {
    "path": "CMakePresets.json",
    "chars": 1570,
    "preview": "{\r\n    \"version\": 4,\r\n    \"cmakeMinimumRequired\": {\r\n        \"major\": 3,\r\n        \"minor\": 11,\r\n        \"patch\": 0\r\n    "
  },
  {
    "path": "Dockerfile",
    "chars": 1924,
    "preview": "FROM nvidia/cuda:11.8.0-devel-ubuntu22.04 AS builder\nARG DEBIAN_FRONTEND=noninteractive\nRUN apt-get update && apt-get -y"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 6894,
    "preview": "# mmx-node\n\n_“ MMX &ndash; fast, low cost, feature rich, decentralized &ndash; with tokenomics of an actual currency ”_\n"
  },
  {
    "path": "activate.sh",
    "chars": 1425,
    "preview": "#!/bin/bash\n\nset -e\n\nexport PATH=$PATH:$PWD/bin:$PWD/build:$PWD/build/tools:$PWD/build/vnx-base/tools:/usr/share/mmx-nod"
  },
  {
    "path": "clean_all.sh",
    "chars": 45,
    "preview": "#!/bin/bash\n\nrm -rf build\nrm -rf lib/.cache\n\n"
  },
  {
    "path": "cmake/build_version_json.cmake",
    "chars": 1220,
    "preview": "\r\nfind_package(Git)\r\n\r\nexecute_process(\r\n  COMMAND ${GIT_EXECUTABLE} describe --tags --match \"v[0-9]*.[0-9]*.[0-9]*\"\r\n  "
  },
  {
    "path": "cmake/custom-triplets/x64-windows-mmx.cmake",
    "chars": 213,
    "preview": "set(VCPKG_TARGET_ARCHITECTURE x64)\r\nset(VCPKG_CRT_LINKAGE dynamic)\r\nset(VCPKG_LIBRARY_LINKAGE dynamic)\r\nset(VCPKG_BUILD_"
  },
  {
    "path": "cmake/debian/generic/control",
    "chars": 278,
    "preview": "Package: mmx-node\nSection: base\nPriority: optional\nDepends: curl, screen, zenity, libminiupnpc-dev, libjemalloc-dev, lib"
  },
  {
    "path": "cmake/debian/mmx_node.desktop",
    "chars": 269,
    "preview": "[Desktop Entry]\nType=Application\nName=MMX Node\nExec=sh -c \"MMX_HOME=~/.mmx/ /usr/share/mmx-node/run_node.sh --gui\"\nPath="
  },
  {
    "path": "cmake/debian/mmx_wallet.desktop",
    "chars": 271,
    "preview": "[Desktop Entry]\nType=Application\nName=MMX Wallet\nExec=sh -c \"MMX_HOME=~/.mmx/ /usr/share/mmx-node/run_wallet_gui.sh\"\nPat"
  },
  {
    "path": "cmake/debian/ubuntu-20.04/control",
    "chars": 276,
    "preview": "Package: mmx-node\nSection: base\nPriority: optional\nDepends: curl, screen, zenity, libminiupnpc17, libjemalloc2, libzstd1"
  },
  {
    "path": "cmake/debian/ubuntu-22.04/control",
    "chars": 276,
    "preview": "Package: mmx-node\nSection: base\nPriority: optional\nDepends: curl, screen, zenity, libminiupnpc17, libjemalloc2, libzstd1"
  },
  {
    "path": "cmake/debian/ubuntu-24.04/control",
    "chars": 276,
    "preview": "Package: mmx-node\nSection: base\nPriority: optional\nDepends: curl, screen, zenity, libminiupnpc17, libjemalloc2, libzstd1"
  },
  {
    "path": "cmake/nsis/NSIS.template.in",
    "chars": 30678,
    "preview": "; CPack install script designed for a nmake build\n\n;--------------------------------\n; You must define these values\n\n  "
  },
  {
    "path": "cmake/product_version/LICENSE",
    "chars": 1109,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2015, by [halex2005](mailto:akharlov@gmail.com)\n\nPermission is hereby granted, free"
  },
  {
    "path": "cmake/product_version/VersionInfo.in",
    "chars": 2795,
    "preview": "#pragma once\r\n\r\n#ifndef PRODUCT_VERSION_MAJOR\r\n#define PRODUCT_VERSION_MAJOR @PRODUCT_VERSION_MAJOR@\r\n#endif\r\n\r\n#ifndef "
  },
  {
    "path": "cmake/product_version/VersionResource.rc",
    "chars": 1190,
    "preview": "#include \"VersionInfo_@PRODUCT_NAME@.h\"\r\n#include \"winres.h\"\r\n\r\n#ifdef PRODUCT_ICON\r\nIDI_ICON1               ICON       "
  },
  {
    "path": "cmake/product_version/generate_product_version.cmake",
    "chars": 4508,
    "preview": "include (CMakeParseArguments)\r\n\r\nset (GenerateProductVersionCurrentDir ${CMAKE_CURRENT_LIST_DIR})\r\n\r\n# generate_product_"
  },
  {
    "path": "cmake/use_cuda.cmake",
    "chars": 299,
    "preview": "\nfind_package(CUDA)\n\nif(NOT MSVC)\n\tset(CUDA_NVCC_FLAGS \"${CUDA_NVCC_FLAGS} -Xcompiler ,-fPIC\")\nendif()\n\nset(CUDA_NVCC_FL"
  },
  {
    "path": "cmake/win_pack.cmake",
    "chars": 8603,
    "preview": "set(NETWORK \"mainnet\")\r\nset(CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/;${CMAKE_MODULE_PATH}\")\r\n\r\nfunctio"
  },
  {
    "path": "codegen.sh",
    "chars": 831,
    "preview": "#!/bin/bash\n\ncd $(dirname \"$0\")\n\n./vnx-base/codegen.sh\n./vnx-addons/codegen.sh ../vnx-base/interface/\n\nvnxcppcodegen --c"
  },
  {
    "path": "config/default/Farmer.json",
    "chars": 28,
    "preview": "{\n\t\"harvester_timeout\": 30\n}"
  },
  {
    "path": "config/default/Harvester.json",
    "chars": 174,
    "preview": "{\n\t\"num_threads\": 32,\n\t\"max_queue_ms\": 30000,\n\t\"config_path\": \"config/local/\",\n\t\"dir_blacklist\": [\n\t\t\".\", \"..\", \"lost+fo"
  },
  {
    "path": "config/default/HttpServer.json",
    "chars": 77,
    "preview": "{\n\t\"port\": 11380,\n\t\"stats_interval_ms\": 60000,\n\t\"default_access\": \"NETWORK\"\n}"
  },
  {
    "path": "config/default/Node.json",
    "chars": 198,
    "preview": "{\n\t\"num_sync_retries\": 5,\n\t\"sync_loss_delay\": 300,\n\t\"max_future_sync\": 18,\n\t\"max_sync_ahead\": 10000,\n\t\"max_sync_jobs\": 1"
  },
  {
    "path": "config/default/Router.json",
    "chars": 484,
    "preview": "{\n\t\"host\": \"0.0.0.0\",\n\t\"open_port\": true,\n\t\"min_sync_peers\": 5,\n\t\"num_peers_out\": 8,\n\t\"max_peer_set\": 100,\n\t\"max_connect"
  },
  {
    "path": "config/default/TimeLord.json",
    "chars": 26,
    "preview": "{\n\t\"enable_reward\": true\n}"
  },
  {
    "path": "config/default/Wallet.json",
    "chars": 70,
    "preview": "{\n\t\"key_files\": [\n\t\t\"wallet.dat\"\n\t],\n\t\"config_path\": \"config/local/\"\n}"
  },
  {
    "path": "config/default/WebAPI.json",
    "chars": 35,
    "preview": "{\n\t\"config_path\": \"config/local/\"\n}"
  },
  {
    "path": "config/default/mmx_farmer.json",
    "chars": 56,
    "preview": "{\n\t\"log_file_level\": 3,\n\t\"log_file_name\": \"mmx_farmer\"\n}"
  },
  {
    "path": "config/default/mmx_harvester.json",
    "chars": 59,
    "preview": "{\n\t\"log_file_level\": 3,\n\t\"log_file_name\": \"mmx_harvester\"\n}"
  },
  {
    "path": "config/default/mmx_node.json",
    "chars": 54,
    "preview": "{\n\t\"log_file_level\": 3,\n\t\"log_file_name\": \"mmx_node\"\n}"
  },
  {
    "path": "config/default/timelord",
    "chars": 5,
    "preview": "false"
  },
  {
    "path": "config/default/vnx/authentication.json",
    "chars": 849,
    "preview": "{\n\t\"permissions\": {\n\t\t\"ADMIN\": [\n\t\t\t\"!PROTECTED_CONFIG\",\n\t\t\t\"mmx.permission_e.PUBLIC\",\n\t\t\t\"mmx.permission_e.REMOTE\",\n\t\t\t"
  },
  {
    "path": "config/default/vnx/protected_config+",
    "chars": 38,
    "preview": "[\n\t\"passwd\",\n\t\"HttpServer.token_map\"\n]"
  },
  {
    "path": "config/farmer/Proxy.json",
    "chars": 35,
    "preview": "{\n\t\"export_list\": [\"vnx.log_out\"]\n}"
  },
  {
    "path": "config/local_init/Farmer.json",
    "chars": 24,
    "preview": "{\n\t\"reward_addr\": null\n}"
  },
  {
    "path": "config/local_init/Harvester.json",
    "chars": 94,
    "preview": "{\n\t\"num_threads\": 32,\n\t\"reload_interval\": 3600,\n\t\"recursive_search\": true,\n\t\"plot_dirs\": []\n}\n"
  },
  {
    "path": "config/local_init/HttpServer.json",
    "chars": 42,
    "preview": "{\n\t\"host\": \"localhost\",\n\t\"token_map\": []\n}"
  },
  {
    "path": "config/local_init/Node.json",
    "chars": 51,
    "preview": "{\n\t\"opencl_device\": 0,\n\t\"metalsdev_api_key\": null\n}"
  },
  {
    "path": "config/local_init/Router.json",
    "chars": 129,
    "preview": "{\n\t\"open_port\": true,\n\t\"num_peers_out\": 8,\n\t\"max_connections\": 100,\n\t\"fixed_peers\": [],\n\t\"seed_peers+\": [],\n\t\"block_peer"
  },
  {
    "path": "config/local_init/TimeLord.json",
    "chars": 24,
    "preview": "{\n\t\"reward_addr\": null\n}"
  },
  {
    "path": "config/local_init/Wallet.json",
    "chars": 46,
    "preview": "{\n\t\"key_files+\": [],\n\t\"token_whitelist+\": []\n}"
  },
  {
    "path": "config/local_init/allow_remote",
    "chars": 5,
    "preview": "false"
  },
  {
    "path": "config/local_init/cuda.json",
    "chars": 35,
    "preview": "{\n\t\"enable\": true,\n\t\"devices\": []\n}"
  },
  {
    "path": "config/local_init/opencl.json",
    "chars": 22,
    "preview": "{\n\t\"platform\": null\n}\n"
  },
  {
    "path": "config/local_init/remote_compute",
    "chars": 5,
    "preview": "false"
  },
  {
    "path": "config/local_init/timelord",
    "chars": 5,
    "preview": "false"
  },
  {
    "path": "config/mainnet/Router.json",
    "chars": 981,
    "preview": "{\n\t\"seed_peers\": [\n\t    \"104.157.124.160\",\n\t    \"108.12.226.21\",\n\t    \"109.198.29.98\",\n\t    \"119.6.178.16\",\n\t    \"135.13"
  },
  {
    "path": "config/mainnet/chain/params/escrow_binary",
    "chars": 63,
    "preview": "mmx1wlwl4tgfdjl5nmntd4sj77mcgfn47sapztnwaf2u2cqmzrcppvrqxhx0st\n"
  },
  {
    "path": "config/mainnet/chain/params/nft_binary",
    "chars": 63,
    "preview": "mmx1hzz9tgs2dz9366t3p4ep8trmaejx7tk9al9ah3md2u37pkesa3qqfyepyw\n"
  },
  {
    "path": "config/mainnet/chain/params/offer_binary",
    "chars": 63,
    "preview": "mmx18rcdx8nhh56twmr2gq3h22kwj00slsn23ejan8qp00rqqw8yl4jq6ccysq\n"
  },
  {
    "path": "config/mainnet/chain/params/plot_binary",
    "chars": 63,
    "preview": "mmx19pv69aafsdjrzg8fe7aj2svgx2kwq72dqm5lj36m5h4vmmhcuj8qn9pn8y\n"
  },
  {
    "path": "config/mainnet/chain/params/plot_nft_binary",
    "chars": 63,
    "preview": "mmx1cw4nwrhceunjd82tdcauy8yeg8ccygsrx3r4kzr8v35prv482qvqdvz80z\n"
  },
  {
    "path": "config/mainnet/chain/params/relay_binary",
    "chars": 63,
    "preview": "mmx199hvcn9fzr5r9wx9jd4ppzgnerqtt0kfg6c3cgz674y60sw7kwnqznlqvp\n"
  },
  {
    "path": "config/mainnet/chain/params/swap_binary",
    "chars": 63,
    "preview": "mmx15qd3lrqm7d7jyqx3rrwqav09n8sq2xlwpehq9ydxfn8peyh367lsxfsfqd\n"
  },
  {
    "path": "config/mainnet/chain/params/template_binary",
    "chars": 63,
    "preview": "mmx18z4ts7p5437st05zw0pl4geprzm5wt8ssvcd4t2jfkdfq4k6xc2qwc2dwy\n"
  },
  {
    "path": "config/mainnet/chain/params/time_lock_binary",
    "chars": 63,
    "preview": "mmx1g9h53asl8ekmp38ejr2kpuumxz3mw5w2yth6cyvj6qjuaa4aaa3sqm5lc2\n"
  },
  {
    "path": "config/mainnet/chain/params/token_binary",
    "chars": 63,
    "preview": "mmx17pzl9cgmesyjur7rvvev70fx7f55rvyv7549cvrtf7chjml4qh4sryu9yl\n"
  },
  {
    "path": "config/mainnet/chain/params.json",
    "chars": 1257,
    "preview": "{\n\t\"port\": 11337,\n\t\"network\": \"mainnet\",\n\t\"plot_filter\": 4,\n\t\"post_filter\": 10,\n\t\"min_ksize\": 29,\n\t\"infuse_delay\": 1,\n\t\""
  },
  {
    "path": "config/mainnet/parent",
    "chars": 11,
    "preview": "../default/"
  },
  {
    "path": "config/mainnet-rc/Node.json",
    "chars": 90,
    "preview": "{\n\t\"mmx_usd_swap_addr\": \"mmx19c86u6ppjcw5cd4ghxzpzpf5zartly0j9q27k7pamavdt4mrg3dq7nujt7\"\n}"
  },
  {
    "path": "config/mainnet-rc/Router.json",
    "chars": 981,
    "preview": "{\n\t\"seed_peers\": [\n\t    \"104.157.124.160\",\n\t    \"108.12.226.21\",\n\t    \"109.198.29.98\",\n\t    \"119.6.178.16\",\n\t    \"135.13"
  },
  {
    "path": "config/mainnet-rc/Wallet.json",
    "chars": 96,
    "preview": "{\n\t\"token_whitelist\": [\n\t\t\"mmx1gk9s4xg265yxdujagqzu4tzsy3gygycy3nksr9ux8qxj8hs6zgys4shv5n\"\n\t]\n}\n"
  },
  {
    "path": "config/mainnet-rc/chain/params.json",
    "chars": 1108,
    "preview": "{\n\t\"port\": 10337,\n\t\"network\": \"mainnet-rc\",\n\t\"plot_filter\": 4,\n\t\"min_ksize\": 26,\n\t\"infuse_delay\": 3,\n\t\"challenge_delay\":"
  },
  {
    "path": "config/mainnet-rc/parent",
    "chars": 11,
    "preview": "../default/"
  },
  {
    "path": "config/node/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "config/server/HttpServer.json",
    "chars": 96,
    "preview": "{\n\t\"num_threads\": 16,\n\t\"deflate_level\": 3,\n\t\"max_connections\": 200,\n\t\"allow_anon_login\": false\n}"
  },
  {
    "path": "config/server/Node.json",
    "chars": 69,
    "preview": "{\n\t\"num_threads\": 32,\n\t\"num_api_threads\": 32,\n\t\"max_history\": 10000\n}"
  },
  {
    "path": "config/server/Router.json",
    "chars": 27,
    "preview": "{\n\t\"max_connections\": 400\n}"
  },
  {
    "path": "config/server/TimeLord.json",
    "chars": 27,
    "preview": "{\n\t\"enable_reward\": false\n}"
  },
  {
    "path": "config/server/wapi_threads",
    "chars": 2,
    "preview": "16"
  },
  {
    "path": "config/slave/Node.json",
    "chars": 27,
    "preview": "{\n\t\"vdf_slave_mode\": true\n}"
  },
  {
    "path": "config/slave/Router.json",
    "chars": 129,
    "preview": "{\n\t\"master_nodes+\": [\n\t\t\"mmx-th-1.mmx.network\",\n\t\t\"mmx-th-2.mmx.network\",\n\t\t\"mmx-us-1.mmx.network\",\n\t\t\"mmx-si-1.mmx.netw"
  },
  {
    "path": "config/slave/farmer",
    "chars": 5,
    "preview": "false"
  },
  {
    "path": "config/testnet12/Node.json",
    "chars": 90,
    "preview": "{\n\t\"mmx_usd_swap_addr\": \"mmx1uyyxl7xt8ev0sel7fh756kmqmwze0uzqemuz87560s9w5g23vrxqp4c7vy\"\n}"
  },
  {
    "path": "config/testnet12/Router.json",
    "chars": 1473,
    "preview": "{\n\t\"seed_peers\": [\n\t\t\"69.197.174.72\", \"49.231.43.170\", \"110.164.184.5\", \"89.116.184.19\",\n\t\t\"101.207.207.237\", \"104.157.1"
  },
  {
    "path": "config/testnet12/Wallet.json",
    "chars": 96,
    "preview": "{\n\t\"token_whitelist\": [\n\t\t\"mmx14tmh82zku65h7wsq0hlt0xayzcjznvu8zgdat92lluwrvx9mfupsqenjla\"\n\t]\n}\n"
  },
  {
    "path": "config/testnet12/chain/params.json",
    "chars": 1092,
    "preview": "{\n\t\"port\": 12342,\n\t\"block_time\": 10,\n\t\"plot_filter\": 4,\n\t\"min_ksize\": 26,\n\t\"infuse_delay\": 3,\n\t\"challenge_delay\": 6,\n\t\"c"
  },
  {
    "path": "config/testnet12/parent",
    "chars": 11,
    "preview": "../default/"
  },
  {
    "path": "config/testnet13/Router.json",
    "chars": 1003,
    "preview": "{\n\t\"min_sync_peers\": 1,\n\t\"seed_peers\": [\n\t    \"104.157.124.160\",\n\t    \"108.12.226.21\",\n\t    \"109.198.29.98\",\n\t    \"119.6"
  },
  {
    "path": "config/testnet13/chain/params/escrow_binary",
    "chars": 63,
    "preview": "mmx1whsrvcreuh086puc4jn7dyaxuhljzpp7eju8cda8xpuf78t74n3sjctwxw\n"
  },
  {
    "path": "config/testnet13/chain/params/nft_binary",
    "chars": 63,
    "preview": "mmx1hzp7su7e62c0ax9feyp0ef2rmdfx93xc7hu32xnhspqsrjehy5rs9fwfh2\n"
  },
  {
    "path": "config/testnet13/chain/params/offer_binary",
    "chars": 63,
    "preview": "mmx1egu9gtwwg0tg7vk6x5huup5kx830e6588w8qu7kexj7ememg2mgq9xxe3d\n"
  },
  {
    "path": "config/testnet13/chain/params/plot_nft_binary",
    "chars": 63,
    "preview": "mmx1s7xtqedy4aq2wazhdl66pfr0ycrkhvj9460zfqgtpt5cmaa3weescvuavg\n"
  },
  {
    "path": "config/testnet13/chain/params/relay_binary",
    "chars": 63,
    "preview": "mmx1wx2z0d8626mjweez8j5um0zdfu3uwuvg2tg7fvuxfcezvk9qmets6hac84\n"
  },
  {
    "path": "config/testnet13/chain/params/swap_binary",
    "chars": 63,
    "preview": "mmx1jllzzps6vdc43p7pnst3zn390p3g0c2gf8ckl5fe0eaf5yr70mms8663ya\n"
  },
  {
    "path": "config/testnet13/chain/params/template_binary",
    "chars": 63,
    "preview": "mmx1dmw9j67xsw50n9ax02u6khr64km84tmly35sjwz6ra9jakvav6dqqsn23k\n"
  },
  {
    "path": "config/testnet13/chain/params/time_lock_binary",
    "chars": 63,
    "preview": "mmx1m4gxzmwu7gthp7kl50v34yx555mejmkwaxcy36jy39k0kcxt32xqhznyqv\n"
  },
  {
    "path": "config/testnet13/chain/params/token_binary",
    "chars": 63,
    "preview": "mmx1xeuf6m70xk3n208qn5yncsnfunexg0862vhk9z9c479fs0axgvgsqdgexm\n"
  },
  {
    "path": "config/testnet13/chain/params.json",
    "chars": 1254,
    "preview": "{\n\t\"port\": 12343,\n\t\"network\": \"testnet13\",\n\t\"plot_filter\": 4,\n\t\"post_filter\": 10,\n\t\"min_ksize\": 26,\n\t\"infuse_delay\": 1,\n"
  },
  {
    "path": "config/testnet13/parent",
    "chars": 11,
    "preview": "../default/"
  },
  {
    "path": "config/timelord/Proxy.json",
    "chars": 35,
    "preview": "{\n\t\"export_list\": [\"vnx.log_out\"]\n}"
  },
  {
    "path": "config/wallet/Proxy.json",
    "chars": 77,
    "preview": "{\n\t\"import_list\": [\"node.verified_blocks\"],\n\t\"export_list\": [\"vnx.log_out\"]\n}"
  },
  {
    "path": "data/mainnet/project_relay.json",
    "chars": 232,
    "preview": "{\n\t\"__type\": \"mmx.contract.Executable\",\n\t\"name\": \"Project Reward Relay\",\n\t\"binary\": \"mmx199hvcn9fzr5r9wx9jd4ppzgnerqtt0k"
  },
  {
    "path": "data/mainnet/tx_testnet_rewards.json",
    "chars": 256915,
    "preview": "{\n  \"__type\": \"mmx.Transaction\",\n  \"id\": \"F07579B58CACA3CBF7EB9A3BE2BFCB40D8EEAAFAAD1673504AA81B78D1D66D2D\",\n  \"version\""
  },
  {
    "path": "data/mainnet-rc/rewards.json",
    "chars": 20942,
    "preview": "[[\"mmx133vuztyunrfyrds4nxxyjyx9fq3ssy934pyjeh8atm9emesy5sqsua5jyx\", 302], [\"mmx10luguxfgx4rfd4nft0ee6ydk9dcedc4gvvwhknp0"
  },
  {
    "path": "data/mainnet-rc/rewards.txt",
    "chars": 20428,
    "preview": "mmx1t49g9vz555dcm6dvrxt9hxua58jf57w5rmnjnaynnclww8lmagdqc76mnv\t9409\t4704.5\nmmx1l3g7hjrczlhsvnshj4jtccavmrrm9chue6ha29hmd"
  },
  {
    "path": "data/mainnet-rc/timelord_rewards.json",
    "chars": 370,
    "preview": "[[\"mmx1d0xr746m7nqek3rplkuv6xjk2ne7ul0q45cjgp8gtjkut4eh8apsht6yzk\", 56618], [\"mmx1z3wfe3x5ahnzflnankn8qjc7dlcfld79n65zz8"
  },
  {
    "path": "data/mainnet-rc/timelord_rewards.txt",
    "chars": 368,
    "preview": "mmx1d0xr746m7nqek3rplkuv6xjk2ne7ul0q45cjgp8gtjkut4eh8apsht6yzk\t56618\t566.18\nmmx1hyfskfa3wpxgtajdfskdmgljj3tr7wna6jyqxqde"
  },
  {
    "path": "data/testnet10/rewards.json",
    "chars": 34094,
    "preview": "[[\"mmx1j7njmgtzmqr49n9lyacawww0uv2sjgxs7d04xu2ns6k62hfqycqsh33u92\", 37], [\"mmx1k9lslhl4wmhs7ray9lfh47cxkz0j5vr827vypyalt"
  },
  {
    "path": "data/testnet10/rewards.txt",
    "chars": 33677,
    "preview": "mmx17dhvxq6fekkfqtvjwle2pwcyr6f76uhz3vsq6ldkc9r0uzs7nrpqvzh7zs\t213202\t106601\nmmx1eavt4k3qfgc30z5wqtk99f93fq8xhtr82f47v6r"
  },
  {
    "path": "data/testnet12/rewards.json",
    "chars": 24464,
    "preview": "[[\"mmx1yc5f9qcevne2cnp86szf4nnpaxj5kns2nzsx8jgg3ssal39k0cqsrsaepl\", 12660], [\"mmx133vuztyunrfyrds4nxxyjyx9fq3ssy934pyjeh"
  },
  {
    "path": "data/testnet12/rewards.txt",
    "chars": 24203,
    "preview": "mmx1t49g9vz555dcm6dvrxt9hxua58jf57w5rmnjnaynnclww8lmagdqc76mnv\t184022\t92011\nmmx12wn9qtfzagz6z6ztxld2hka8cgvwr0nz55l3qjvk"
  },
  {
    "path": "data/testnet8/fix.js",
    "chars": 42663,
    "preview": "\nconst data = [[\"mmx1aepsfj9c4nqqcew5qk8rw5sqqkwer5pnmwx9y4elcdm9gy332vqq7flngz\", 12250000], [\"mmx1grznkf6d33xtkhee5899x"
  },
  {
    "path": "data/testnet8/rewards.json",
    "chars": 38400,
    "preview": "[[\"mmx1aepsfj9c4nqqcew5qk8rw5sqqkwer5pnmwx9y4elcdm9gy332vqq7flngz\",49],[\"mmx1grznkf6d33xtkhee5899xa2jg8v3ktupude206jt7pz"
  },
  {
    "path": "data/testnet8/rewards.txt",
    "chars": 38663,
    "preview": "mmx1w7dfqwgrq4v8uyg2kpcda5ec44hnvdeww48zysxue2mttd04tz8qdpt88v 25191 12595.5\nmmx1guzl6jcsz7hkxwvtf8p9nskzg4uefcr6w3qmdg7"
  },
  {
    "path": "data/testnet9/rewards.json",
    "chars": 45368,
    "preview": "[[\"mmx1pfyewvtg6l24q40kx74cm2t9epm9wqwx27rph2l8uehnpzhrlqqqupy35q\", 58], [\"mmx1j7njmgtzmqr49n9lyacawww0uv2sjgxs7d04xu2ns"
  },
  {
    "path": "data/testnet9/rewards.txt",
    "chars": 44618,
    "preview": "mmx1w7dfqwgrq4v8uyg2kpcda5ec44hnvdeww48zysxue2mttd04tz8qdpt88v\t67450\t33725\nmmx17dhvxq6fekkfqtvjwle2pwcyr6f76uhz3vsq6ldkc"
  },
  {
    "path": "docker-entrypoint.sh",
    "chars": 965,
    "preview": "#!/bin/bash\n\nif [ \"${MMX_NETWORK_OVERRIDE}\" ]; then\n  echo \"${MMX_NETWORK_OVERRIDE}\" > \"${MMX_HOME}NETWORK\"\nfi\n\nsource ."
  },
  {
    "path": "docs/README.md",
    "chars": 2727,
    "preview": "# Contributing to MMX Documentation\n\nIf you would like to contribute to MMX Documentation, you can do so by following th"
  },
  {
    "path": "docs/TODO.txt",
    "chars": 710,
    "preview": "- Multisig wallet support\n- GUI settings tabs\n- Swap warning for one-sided pool\n- unsafe_add() / unsafe_sub() / unsafe_m"
  },
  {
    "path": "docs/astro.config.mjs",
    "chars": 2510,
    "preview": "// @ts-check\nimport { defineConfig } from 'astro/config';\nimport starlight from '@astrojs/starlight';\nimport rehypeSlug "
  },
  {
    "path": "docs/package.json",
    "chars": 435,
    "preview": "{\n  \"name\": \"mmx\",\n  \"type\": \"module\",\n  \"version\": \"0.0.1\",\n  \"scripts\": {\n    \"dev\": \"astro dev\",\n    \"start\": \"astro "
  },
  {
    "path": "docs/public/resources/code/timelord/architecture/Intel_15th-gen_E-core/sha256_ni_rec.cpp",
    "chars": 19539,
    "preview": "/*\n * sha256_ni_rec.cpp\n *\n *  Created on: Jan 29, 2025\n *      Author: mad, voidxno\n *\n *  NOTE: Non-official architect"
  },
  {
    "path": "docs/public/resources/code/timelord/optimize/sample/sha256_ni_rec_sample.cpp",
    "chars": 4647,
    "preview": "/*\n * sha256_ni_rec_sample.cpp\n *\n *  Created on: Feb 17, 2025\n *      Author: mad, voidxno\n *\n *  NOTE: Educational sam"
  },
  {
    "path": "docs/public/robots.txt",
    "chars": 109,
    "preview": "# Allow crawling of all content\nUser-agent: *\nDisallow: \nSitemap: https://docs.mmx.network/sitemap-index.xml\n"
  },
  {
    "path": "docs/security/checklist.txt",
    "chars": 396,
    "preview": "\nall fields are hashed, except signatures\nnull pointers are handled everywhere\nfile permissions on sensitive files are o"
  },
  {
    "path": "docs/src/components/MMXCardGrid.astro",
    "chars": 620,
    "preview": "---\ninterface Props {\n\tstagger?: boolean;\n}\n\nconst { stagger = false } = Astro.props;\n---\n\n<div class:list={['mmx-card-g"
  },
  {
    "path": "docs/src/components/MMXLEDBars.astro",
    "chars": 3385,
    "preview": "<div>\n  <div class=\"mmxledbars-bg\">\n    <div class=\"mmxledbars\" id=\"mmxledbars\"></div>\n  </div>\n</div>\n\n<style>\n:root {\n"
  },
  {
    "path": "docs/src/components/MMXLinkCard.astro",
    "chars": 3759,
    "preview": "---\r\nimport { Icon } from '@astrojs/starlight/components';\r\nimport { type StarlightIcon } from '@astrojs/starlight/types"
  },
  {
    "path": "docs/src/components/MMXLinkCardT.astro",
    "chars": 1816,
    "preview": "---\r\nimport { Icon } from '@astrojs/starlight/components';\r\nimport { type StarlightIcon } from '@astrojs/starlight/types"
  },
  {
    "path": "docs/src/components/MarkdownContent.astro",
    "chars": 3274,
    "preview": "---\nimport Default from '@astrojs/starlight/components/MarkdownContent.astro';\nimport { Image } from 'astro:assets';\n\nco"
  },
  {
    "path": "docs/src/components/SocialIcons.astro",
    "chars": 660,
    "preview": "---\nimport Default from '@astrojs/starlight/components/SocialIcons.astro';\n---\n\n<a href=\"https://mmx.network/\" rel=\"me\" "
  },
  {
    "path": "docs/src/content/docs/articles/general/mmx-tldr.md",
    "chars": 7250,
    "preview": "---\ntitle: MMX TLDR;\ndescription: What is the MMX blockchain ?\nprev: false\nnext: false\n\narticlePublished: 2025-03-14\nart"
  },
  {
    "path": "docs/src/content/docs/articles/general/mmx-whitepaper.mdx",
    "chars": 799,
    "preview": "---\ntitle: Whitepaper, MMX\ndescription: Whitepaper for the MMX Blockchain & Currency\nprev: false\nnext: false\n\narticlePub"
  },
  {
    "path": "docs/src/content/docs/articles/plotting/plot-format.md",
    "chars": 5187,
    "preview": "---\ntitle: Plot format\ndescription: Plot format for MMX (mainnet), introduced with testnet11\nprev: false\nnext: false\n\nar"
  },
  {
    "path": "docs/src/content/docs/articles/plotting/plot-size.mdx",
    "chars": 14992,
    "preview": "---\ntitle: Plot size\ndescription: Plot sizes for MMX\nprev: false\nnext: false\n\narticlePublished: 2026-03-04\narticleUpdate"
  },
  {
    "path": "docs/src/content/docs/articles/timelord/timelord-optimizations.md",
    "chars": 20239,
    "preview": "---\ntitle: TimeLord Optimizations\ndescription: How to optimize MMX timelord speed\nprev: false\nnext: false\n\narticlePublis"
  },
  {
    "path": "docs/src/content/docs/articles/timelord/timelord-predictions.md",
    "chars": 6748,
    "preview": "---\ntitle: TimeLord Predictions\ndescription: State and predictions of MMX timelord speeds\nprev: false\nnext: false\n\nartic"
  },
  {
    "path": "docs/src/content/docs/articles/wallets/wallets-mnemonic-passphrase.md",
    "chars": 12577,
    "preview": "---\ntitle: Wallets, mnemonic and passphrase\ndescription: A look at MMX wallets, mnemonic and passphrase\nprev: false\nnext"
  },
  {
    "path": "docs/src/content/docs/faq/general.md",
    "chars": 5223,
    "preview": "---\ntitle: General FAQ\ndescription: Frequently asked questions about MMX blockchain.\n---\n\n### What is the MMX blockchain"
  },
  {
    "path": "docs/src/content/docs/faq/node.md",
    "chars": 7168,
    "preview": "---\ntitle: Node FAQ\ndescription: Frequently asked questions about MMX node.\n---\n\n### How do I get started with a node\n\n["
  },
  {
    "path": "docs/src/content/docs/faq/plotting.md",
    "chars": 5284,
    "preview": "---\ntitle: Plotting FAQ\ndescription: Frequently asked questions about MMX plotting.\n---\n\n### What plot sizes are support"
  },
  {
    "path": "docs/src/content/docs/faq/timelord.md",
    "chars": 2395,
    "preview": "---\ntitle: TimeLord FAQ\ndescription: Frequently asked questions about MMX timelord.\n---\n\n### Do I need to run a timelord"
  },
  {
    "path": "docs/src/content/docs/faq/vdf.md",
    "chars": 3840,
    "preview": "---\ntitle: VDF FAQ\ndescription: Frequently asked questions about MMX verified delay function (VDF).\n---\n\n### Why do I ne"
  },
  {
    "path": "docs/src/content/docs/faq/wallet.md",
    "chars": 675,
    "preview": "---\ntitle: Wallet FAQ\ndescription: Frequently asked questions about MMX wallet.\n---\n\n### Warning of \"no wallet available"
  },
  {
    "path": "docs/src/content/docs/faq/webgui.md",
    "chars": 2251,
    "preview": "---\ntitle: WebGUI FAQ\ndescription: Frequently asked questions about MMX web interface (WebGUI).\n---\n\n### How do I access"
  },
  {
    "path": "docs/src/content/docs/guides/docker.md",
    "chars": 6516,
    "preview": "---\ntitle: Docker Usage\ndescription: Examples for using pre-built docker images\n---\n\n## Node Containers\n\nDocker images a"
  },
  {
    "path": "docs/src/content/docs/guides/getting-started.md",
    "chars": 7718,
    "preview": "---\ntitle: Getting Started\ndescription: Getting started with MMX.\n---\n\n**[Install](../installation/) MMX-Node.**\n\n## GUI"
  },
  {
    "path": "docs/src/content/docs/guides/installation.md",
    "chars": 3691,
    "preview": "---\ntitle: Installation Guide\ndescription: How to install MMX Node.\n---\n\n## Windows\n\nWindows installers are available he"
  },
  {
    "path": "docs/src/content/docs/guides/mmx-plotter.mdx",
    "chars": 8282,
    "preview": "---\ntitle: Plotting Guide\ndescription: MMX Plotter is a tool for creating plots for the MMX blockchain.\n---\n\nimport { Ta"
  },
  {
    "path": "docs/src/content/docs/guides/optimize-vdf.md",
    "chars": 4043,
    "preview": "---\ntitle: OpenCL Setup\ndescription: How to improve VDF verification speed.\n---\n\nUsing OpenCL is an optional but highly "
  },
  {
    "path": "docs/src/content/docs/guides/remote-services.md",
    "chars": 2346,
    "preview": "---\ntitle: Remote Services\ndescription: How to setup and use remote mmx services.\n---\n\nThe following steps are provided "
  },
  {
    "path": "docs/src/content/docs/index.mdx",
    "chars": 2092,
    "preview": "---\ntitle: MMX Docs\ndescription: Learn about MMX.\ntemplate: splash\nprev: false\nnext: false\neditUrl: false\nlastUpdated: f"
  },
  {
    "path": "docs/src/content/docs/reference/MMX_wallet.md",
    "chars": 766,
    "preview": "---\ntitle: MMX Wallet\ndescription: Important information for developing a wallet for MMX.\n---\n\n## MMX Wallet / Address F"
  },
  {
    "path": "docs/src/content/docs/reference/NFT_standard.md",
    "chars": 782,
    "preview": "---\ntitle: NFT Standard\n---\n\nNFTs on MMX are instances of the [nft.js](https://github.com/madMAx43v3r/mmx-node/blob/mast"
  },
  {
    "path": "docs/src/content/docs/reference/Token_standard.md",
    "chars": 663,
    "preview": "---\ntitle: Token Standard\n---\n\nEvery smart contract has the following hard coded fields:\n- `name`: Full name (with white"
  },
  {
    "path": "docs/src/content/docs/reference/blockchain.md",
    "chars": 2203,
    "preview": "---\ntitle: Blockchain\ndescription: Introduction to the MMX Blockchain.\n---\n\nA blockchain written from scratch, doing mos"
  },
  {
    "path": "docs/src/content/docs/reference/pooling_protocol.md",
    "chars": 7087,
    "preview": "---\ntitle: Pooling Protocol\ndescription: MMX Pooling Protocol reference.\n---\n\n## Notes\n- MMX addresses are encoded via b"
  },
  {
    "path": "docs/src/content/docs/software/MMX_script.md",
    "chars": 22128,
    "preview": "---\ntitle: MMX Script\ndescription: MMX Script smart contract language reference.\n---\n\nThe MMX smart contract language is"
  },
  {
    "path": "docs/src/content/docs/software/RPC_protocol.md",
    "chars": 13229,
    "preview": "---\ntitle: RPC Protocol\ndescription: MMX Node RPC Protocol.\n---\n\nEvery node exposes a HTTP endpoint on `localhost:11380`"
  },
  {
    "path": "docs/src/content/docs/software/cli-commands.md",
    "chars": 7752,
    "preview": "---\ntitle: CLI Commands\ndescription: MMX Node CLI Command Reference.\n---\n\nWhen compiled from source:\n```bash frame=\"none"
  },
  {
    "path": "docs/src/content/docs/software/web_wallet_api.md",
    "chars": 1538,
    "preview": "---\ntitle: Web Wallet API\ndescription: API to interact with the web wallet (extension).\n---\n\nThe MMX Web Wallet can be a"
  },
  {
    "path": "docs/src/content.config.ts",
    "chars": 515,
    "preview": "import { defineCollection, z } from 'astro:content';\nimport { docsLoader } from '@astrojs/starlight/loaders';\nimport { d"
  },
  {
    "path": "docs/src/pages/tools/time-calculator.astro",
    "chars": 28734,
    "preview": "---\nimport StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';\nimport AnchorHeading from '@astrojs/s"
  },
  {
    "path": "docs/src/styles/style.css",
    "chars": 3545,
    "preview": ":root {\n\t--sl-color-white: hsl(0, 0%, 100%);\n\t--sl-color-gray-1: hsl(232, 0%, 94%);\n\t--sl-color-gray-2: hsl(232, 0%, 77%"
  },
  {
    "path": "docs/tsconfig.json",
    "chars": 109,
    "preview": "{\n  \"extends\": \"astro/tsconfigs/strict\",\n  \"include\": [\".astro/types.d.ts\", \"**/*\"],\n  \"exclude\": [\"dist\"]\n}\n"
  },
  {
    "path": "generated/contract/include/mmx/contract/Binary.hxx",
    "chars": 3541,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_Binary_HXX_\n#define INCLUDE_mmx_contract_Binary_HXX_\n\n"
  },
  {
    "path": "generated/contract/include/mmx/contract/Data.hxx",
    "chars": 2429,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_Data_HXX_\n#define INCLUDE_mmx_contract_Data_HXX_\n\n#inc"
  },
  {
    "path": "generated/contract/include/mmx/contract/Executable.hxx",
    "chars": 3432,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_Executable_HXX_\n#define INCLUDE_mmx_contract_Executabl"
  },
  {
    "path": "generated/contract/include/mmx/contract/MultiSig.hxx",
    "chars": 2836,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_MultiSig_HXX_\n#define INCLUDE_mmx_contract_MultiSig_HX"
  },
  {
    "path": "generated/contract/include/mmx/contract/PubKey.hxx",
    "chars": 2774,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_PubKey_HXX_\n#define INCLUDE_mmx_contract_PubKey_HXX_\n\n"
  },
  {
    "path": "generated/contract/include/mmx/contract/TokenBase.hxx",
    "chars": 2739,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_TokenBase_HXX_\n#define INCLUDE_mmx_contract_TokenBase_"
  },
  {
    "path": "generated/contract/include/mmx/contract/WebData.hxx",
    "chars": 2664,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_WebData_HXX_\n#define INCLUDE_mmx_contract_WebData_HXX_"
  },
  {
    "path": "generated/contract/include/mmx/contract/accept_generic.hxx",
    "chars": 2023,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_ACCEPT_GENERIC_HXX_\n#define INCLUDE_mmx_contract_ACCEP"
  },
  {
    "path": "generated/contract/include/mmx/contract/method_t.hxx",
    "chars": 2656,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_method_t_HXX_\n#define INCLUDE_mmx_contract_method_t_HX"
  },
  {
    "path": "generated/contract/include/mmx/contract/package.hxx",
    "chars": 13454,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_contract_PACKAGE_HXX_\n#define INCLUDE_mmx_contract_PACKAGE_HXX_"
  },
  {
    "path": "generated/contract/src/Binary.cpp",
    "chars": 11775,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/Binary.hxx>\n#include <mm"
  },
  {
    "path": "generated/contract/src/Data.cpp",
    "chars": 6331,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/Data.hxx>\n#include <mmx/"
  },
  {
    "path": "generated/contract/src/Executable.cpp",
    "chars": 11309,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/Executable.hxx>\n#include"
  },
  {
    "path": "generated/contract/src/MultiSig.cpp",
    "chars": 7264,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/MultiSig.hxx>\n#include <"
  },
  {
    "path": "generated/contract/src/PubKey.cpp",
    "chars": 6474,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/PubKey.hxx>\n#include <mm"
  },
  {
    "path": "generated/contract/src/TokenBase.cpp",
    "chars": 8492,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/TokenBase.hxx>\n#include "
  },
  {
    "path": "generated/contract/src/WebData.cpp",
    "chars": 7166,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/WebData.hxx>\n#include <m"
  },
  {
    "path": "generated/contract/src/method_t.cpp",
    "chars": 10309,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/package.hxx>\n#include <mmx/contract/method_t.hxx>\n\n#include "
  },
  {
    "path": "generated/contract/src/package.cpp",
    "chars": 5745,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#include <mmx/contract/Binary.hxx>\n#include <mmx/contract/Data.hxx>\n#include <mmx/c"
  },
  {
    "path": "generated/include/mmx/Block.hxx",
    "chars": 5530,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Block_HXX_\n#define INCLUDE_mmx_Block_HXX_\n\n#include <mmx/packag"
  },
  {
    "path": "generated/include/mmx/BlockHeader.hxx",
    "chars": 6958,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_BlockHeader_HXX_\n#define INCLUDE_mmx_BlockHeader_HXX_\n\n#include"
  },
  {
    "path": "generated/include/mmx/ChainParams.hxx",
    "chars": 8737,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_ChainParams_HXX_\n#define INCLUDE_mmx_ChainParams_HXX_\n\n#include"
  },
  {
    "path": "generated/include/mmx/Challenge.hxx",
    "chars": 2288,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Challenge_HXX_\n#define INCLUDE_mmx_Challenge_HXX_\n\n#include <mm"
  },
  {
    "path": "generated/include/mmx/Contract.hxx",
    "chars": 2704,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Contract_HXX_\n#define INCLUDE_mmx_Contract_HXX_\n\n#include <mmx/"
  },
  {
    "path": "generated/include/mmx/FarmInfo.hxx",
    "chars": 3371,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_FarmInfo_HXX_\n#define INCLUDE_mmx_FarmInfo_HXX_\n\n#include <mmx/"
  },
  {
    "path": "generated/include/mmx/FarmerAsyncClient.hxx",
    "chars": 7915,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_ASYNC_CLIENT_HXX_\n#define INCLUDE_mmx_Farmer_ASYNC_CLIEN"
  },
  {
    "path": "generated/include/mmx/FarmerBase.hxx",
    "chars": 4401,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_FarmerBase_HXX_\n#define INCLUDE_mmx_FarmerBase_HXX_\n\n#include <"
  },
  {
    "path": "generated/include/mmx/FarmerClient.hxx",
    "chars": 1935,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_CLIENT_HXX_\n#define INCLUDE_mmx_Farmer_CLIENT_HXX_\n\n#inc"
  },
  {
    "path": "generated/include/mmx/Farmer_get_farm_info.hxx",
    "chars": 1992,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_get_farm_info_HXX_\n#define INCLUDE_mmx_Farmer_get_farm_i"
  },
  {
    "path": "generated/include/mmx/Farmer_get_farm_info_return.hxx",
    "chars": 2205,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_get_farm_info_return_HXX_\n#define INCLUDE_mmx_Farmer_get"
  },
  {
    "path": "generated/include/mmx/Farmer_get_farmer_keys.hxx",
    "chars": 2014,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_get_farmer_keys_HXX_\n#define INCLUDE_mmx_Farmer_get_farm"
  },
  {
    "path": "generated/include/mmx/Farmer_get_farmer_keys_return.hxx",
    "chars": 2217,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_get_farmer_keys_return_HXX_\n#define INCLUDE_mmx_Farmer_g"
  },
  {
    "path": "generated/include/mmx/Farmer_get_mac_addr.hxx",
    "chars": 1981,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_get_mac_addr_HXX_\n#define INCLUDE_mmx_Farmer_get_mac_add"
  },
  {
    "path": "generated/include/mmx/Farmer_get_mac_addr_return.hxx",
    "chars": 2167,
    "preview": "\n// AUTO GENERATED by vnxcppcodegen\n\n#ifndef INCLUDE_mmx_Farmer_get_mac_addr_return_HXX_\n#define INCLUDE_mmx_Farmer_get_"
  }
]

// ... and 1359 more files (download for full content)

About this extraction

This page contains the full source code of the madMAx43v3r/mmx-node GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1559 files (9.0 MB), approximately 2.4M tokens, and a symbol index with 10792 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!