chia-blockchain 2.5.1rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1042) hide show
  1. chia/__init__.py +10 -0
  2. chia/__main__.py +5 -0
  3. chia/_tests/README.md +53 -0
  4. chia/_tests/__init__.py +0 -0
  5. chia/_tests/blockchain/__init__.py +0 -0
  6. chia/_tests/blockchain/blockchain_test_utils.py +195 -0
  7. chia/_tests/blockchain/config.py +4 -0
  8. chia/_tests/blockchain/test_augmented_chain.py +145 -0
  9. chia/_tests/blockchain/test_blockchain.py +4202 -0
  10. chia/_tests/blockchain/test_blockchain_transactions.py +1031 -0
  11. chia/_tests/blockchain/test_build_chains.py +59 -0
  12. chia/_tests/blockchain/test_get_block_generator.py +72 -0
  13. chia/_tests/blockchain/test_lookup_fork_chain.py +194 -0
  14. chia/_tests/build-init-files.py +92 -0
  15. chia/_tests/build-job-matrix.py +204 -0
  16. chia/_tests/check_pytest_monitor_output.py +34 -0
  17. chia/_tests/check_sql_statements.py +72 -0
  18. chia/_tests/chia-start-sim +42 -0
  19. chia/_tests/clvm/__init__.py +0 -0
  20. chia/_tests/clvm/benchmark_costs.py +23 -0
  21. chia/_tests/clvm/coin_store.py +149 -0
  22. chia/_tests/clvm/test_chialisp_deserialization.py +101 -0
  23. chia/_tests/clvm/test_clvm_step.py +37 -0
  24. chia/_tests/clvm/test_condition_codes.py +13 -0
  25. chia/_tests/clvm/test_curry_and_treehash.py +55 -0
  26. chia/_tests/clvm/test_message_conditions.py +184 -0
  27. chia/_tests/clvm/test_program.py +150 -0
  28. chia/_tests/clvm/test_puzzle_compression.py +143 -0
  29. chia/_tests/clvm/test_puzzle_drivers.py +45 -0
  30. chia/_tests/clvm/test_puzzles.py +242 -0
  31. chia/_tests/clvm/test_singletons.py +540 -0
  32. chia/_tests/clvm/test_spend_sim.py +181 -0
  33. chia/_tests/cmds/__init__.py +0 -0
  34. chia/_tests/cmds/cmd_test_utils.py +469 -0
  35. chia/_tests/cmds/config.py +3 -0
  36. chia/_tests/cmds/conftest.py +23 -0
  37. chia/_tests/cmds/test_click_types.py +200 -0
  38. chia/_tests/cmds/test_cmd_framework.py +620 -0
  39. chia/_tests/cmds/test_cmds_util.py +97 -0
  40. chia/_tests/cmds/test_daemon.py +92 -0
  41. chia/_tests/cmds/test_dev_gh.py +131 -0
  42. chia/_tests/cmds/test_farm_cmd.py +66 -0
  43. chia/_tests/cmds/test_show.py +116 -0
  44. chia/_tests/cmds/test_sim.py +207 -0
  45. chia/_tests/cmds/test_timelock_args.py +75 -0
  46. chia/_tests/cmds/test_tx_config_args.py +154 -0
  47. chia/_tests/cmds/testing_classes.py +59 -0
  48. chia/_tests/cmds/wallet/__init__.py +0 -0
  49. chia/_tests/cmds/wallet/test_consts.py +47 -0
  50. chia/_tests/cmds/wallet/test_dao.py +565 -0
  51. chia/_tests/cmds/wallet/test_did.py +403 -0
  52. chia/_tests/cmds/wallet/test_nft.py +471 -0
  53. chia/_tests/cmds/wallet/test_notifications.py +124 -0
  54. chia/_tests/cmds/wallet/test_offer.toffer +1 -0
  55. chia/_tests/cmds/wallet/test_tx_decorators.py +27 -0
  56. chia/_tests/cmds/wallet/test_vcs.py +400 -0
  57. chia/_tests/cmds/wallet/test_wallet.py +1125 -0
  58. chia/_tests/cmds/wallet/test_wallet_check.py +109 -0
  59. chia/_tests/conftest.py +1419 -0
  60. chia/_tests/connection_utils.py +125 -0
  61. chia/_tests/core/__init__.py +0 -0
  62. chia/_tests/core/cmds/__init__.py +0 -0
  63. chia/_tests/core/cmds/test_beta.py +382 -0
  64. chia/_tests/core/cmds/test_keys.py +1734 -0
  65. chia/_tests/core/cmds/test_wallet.py +126 -0
  66. chia/_tests/core/config.py +3 -0
  67. chia/_tests/core/consensus/__init__.py +0 -0
  68. chia/_tests/core/consensus/test_block_creation.py +54 -0
  69. chia/_tests/core/consensus/test_pot_iterations.py +117 -0
  70. chia/_tests/core/custom_types/__init__.py +0 -0
  71. chia/_tests/core/custom_types/test_coin.py +107 -0
  72. chia/_tests/core/custom_types/test_proof_of_space.py +144 -0
  73. chia/_tests/core/custom_types/test_spend_bundle.py +70 -0
  74. chia/_tests/core/daemon/__init__.py +0 -0
  75. chia/_tests/core/daemon/config.py +4 -0
  76. chia/_tests/core/daemon/test_daemon.py +2128 -0
  77. chia/_tests/core/daemon/test_daemon_register.py +109 -0
  78. chia/_tests/core/daemon/test_keychain_proxy.py +101 -0
  79. chia/_tests/core/data_layer/__init__.py +0 -0
  80. chia/_tests/core/data_layer/config.py +5 -0
  81. chia/_tests/core/data_layer/conftest.py +106 -0
  82. chia/_tests/core/data_layer/test_data_cli.py +56 -0
  83. chia/_tests/core/data_layer/test_data_layer.py +83 -0
  84. chia/_tests/core/data_layer/test_data_layer_util.py +218 -0
  85. chia/_tests/core/data_layer/test_data_rpc.py +3847 -0
  86. chia/_tests/core/data_layer/test_data_store.py +2424 -0
  87. chia/_tests/core/data_layer/test_data_store_schema.py +381 -0
  88. chia/_tests/core/data_layer/test_plugin.py +91 -0
  89. chia/_tests/core/data_layer/util.py +233 -0
  90. chia/_tests/core/farmer/__init__.py +0 -0
  91. chia/_tests/core/farmer/config.py +3 -0
  92. chia/_tests/core/farmer/test_farmer_api.py +103 -0
  93. chia/_tests/core/full_node/__init__.py +0 -0
  94. chia/_tests/core/full_node/config.py +4 -0
  95. chia/_tests/core/full_node/dos/__init__.py +0 -0
  96. chia/_tests/core/full_node/dos/config.py +3 -0
  97. chia/_tests/core/full_node/full_sync/__init__.py +0 -0
  98. chia/_tests/core/full_node/full_sync/config.py +4 -0
  99. chia/_tests/core/full_node/full_sync/test_full_sync.py +443 -0
  100. chia/_tests/core/full_node/ram_db.py +27 -0
  101. chia/_tests/core/full_node/stores/__init__.py +0 -0
  102. chia/_tests/core/full_node/stores/config.py +4 -0
  103. chia/_tests/core/full_node/stores/test_block_store.py +590 -0
  104. chia/_tests/core/full_node/stores/test_coin_store.py +897 -0
  105. chia/_tests/core/full_node/stores/test_full_node_store.py +1219 -0
  106. chia/_tests/core/full_node/stores/test_hint_store.py +229 -0
  107. chia/_tests/core/full_node/stores/test_sync_store.py +135 -0
  108. chia/_tests/core/full_node/test_address_manager.py +588 -0
  109. chia/_tests/core/full_node/test_block_height_map.py +556 -0
  110. chia/_tests/core/full_node/test_conditions.py +556 -0
  111. chia/_tests/core/full_node/test_full_node.py +2700 -0
  112. chia/_tests/core/full_node/test_generator_tools.py +82 -0
  113. chia/_tests/core/full_node/test_hint_management.py +104 -0
  114. chia/_tests/core/full_node/test_node_load.py +34 -0
  115. chia/_tests/core/full_node/test_performance.py +179 -0
  116. chia/_tests/core/full_node/test_subscriptions.py +492 -0
  117. chia/_tests/core/full_node/test_transactions.py +203 -0
  118. chia/_tests/core/full_node/test_tx_processing_queue.py +155 -0
  119. chia/_tests/core/large_block.py +2388 -0
  120. chia/_tests/core/make_block_generator.py +70 -0
  121. chia/_tests/core/mempool/__init__.py +0 -0
  122. chia/_tests/core/mempool/config.py +4 -0
  123. chia/_tests/core/mempool/test_mempool.py +3255 -0
  124. chia/_tests/core/mempool/test_mempool_fee_estimator.py +104 -0
  125. chia/_tests/core/mempool/test_mempool_fee_protocol.py +55 -0
  126. chia/_tests/core/mempool/test_mempool_item_queries.py +190 -0
  127. chia/_tests/core/mempool/test_mempool_manager.py +2084 -0
  128. chia/_tests/core/mempool/test_mempool_performance.py +64 -0
  129. chia/_tests/core/mempool/test_singleton_fast_forward.py +567 -0
  130. chia/_tests/core/node_height.py +28 -0
  131. chia/_tests/core/server/__init__.py +0 -0
  132. chia/_tests/core/server/config.py +3 -0
  133. chia/_tests/core/server/flood.py +84 -0
  134. chia/_tests/core/server/serve.py +135 -0
  135. chia/_tests/core/server/test_api_protocol.py +21 -0
  136. chia/_tests/core/server/test_capabilities.py +66 -0
  137. chia/_tests/core/server/test_dos.py +319 -0
  138. chia/_tests/core/server/test_event_loop.py +109 -0
  139. chia/_tests/core/server/test_loop.py +294 -0
  140. chia/_tests/core/server/test_node_discovery.py +73 -0
  141. chia/_tests/core/server/test_rate_limits.py +482 -0
  142. chia/_tests/core/server/test_server.py +226 -0
  143. chia/_tests/core/server/test_upnp.py +8 -0
  144. chia/_tests/core/services/__init__.py +0 -0
  145. chia/_tests/core/services/config.py +3 -0
  146. chia/_tests/core/services/test_services.py +188 -0
  147. chia/_tests/core/ssl/__init__.py +0 -0
  148. chia/_tests/core/ssl/config.py +3 -0
  149. chia/_tests/core/ssl/test_ssl.py +202 -0
  150. chia/_tests/core/test_coins.py +33 -0
  151. chia/_tests/core/test_cost_calculation.py +313 -0
  152. chia/_tests/core/test_crawler.py +175 -0
  153. chia/_tests/core/test_crawler_rpc.py +53 -0
  154. chia/_tests/core/test_daemon_rpc.py +24 -0
  155. chia/_tests/core/test_db_conversion.py +130 -0
  156. chia/_tests/core/test_db_validation.py +162 -0
  157. chia/_tests/core/test_farmer_harvester_rpc.py +505 -0
  158. chia/_tests/core/test_filter.py +35 -0
  159. chia/_tests/core/test_full_node_rpc.py +768 -0
  160. chia/_tests/core/test_merkle_set.py +343 -0
  161. chia/_tests/core/test_program.py +47 -0
  162. chia/_tests/core/test_rpc_util.py +86 -0
  163. chia/_tests/core/test_seeder.py +420 -0
  164. chia/_tests/core/test_setproctitle.py +13 -0
  165. chia/_tests/core/util/__init__.py +0 -0
  166. chia/_tests/core/util/config.py +4 -0
  167. chia/_tests/core/util/test_block_cache.py +44 -0
  168. chia/_tests/core/util/test_cached_bls.py +57 -0
  169. chia/_tests/core/util/test_config.py +337 -0
  170. chia/_tests/core/util/test_file_keyring_synchronization.py +105 -0
  171. chia/_tests/core/util/test_files.py +391 -0
  172. chia/_tests/core/util/test_jsonify.py +146 -0
  173. chia/_tests/core/util/test_keychain.py +522 -0
  174. chia/_tests/core/util/test_keyring_wrapper.py +491 -0
  175. chia/_tests/core/util/test_lockfile.py +380 -0
  176. chia/_tests/core/util/test_log_exceptions.py +187 -0
  177. chia/_tests/core/util/test_lru_cache.py +56 -0
  178. chia/_tests/core/util/test_significant_bits.py +40 -0
  179. chia/_tests/core/util/test_streamable.py +883 -0
  180. chia/_tests/db/__init__.py +0 -0
  181. chia/_tests/db/test_db_wrapper.py +566 -0
  182. chia/_tests/environments/__init__.py +0 -0
  183. chia/_tests/environments/common.py +35 -0
  184. chia/_tests/environments/full_node.py +47 -0
  185. chia/_tests/environments/wallet.py +429 -0
  186. chia/_tests/ether.py +19 -0
  187. chia/_tests/farmer_harvester/__init__.py +0 -0
  188. chia/_tests/farmer_harvester/config.py +3 -0
  189. chia/_tests/farmer_harvester/test_farmer.py +1264 -0
  190. chia/_tests/farmer_harvester/test_farmer_harvester.py +292 -0
  191. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +131 -0
  192. chia/_tests/farmer_harvester/test_third_party_harvesters.py +528 -0
  193. chia/_tests/farmer_harvester/test_third_party_harvesters_data.json +29 -0
  194. chia/_tests/fee_estimation/__init__.py +0 -0
  195. chia/_tests/fee_estimation/config.py +3 -0
  196. chia/_tests/fee_estimation/test_fee_estimation_integration.py +262 -0
  197. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +287 -0
  198. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +144 -0
  199. chia/_tests/fee_estimation/test_mempoolitem_height_added.py +146 -0
  200. chia/_tests/generator/__init__.py +0 -0
  201. chia/_tests/generator/puzzles/__init__.py +0 -0
  202. chia/_tests/generator/puzzles/test_generator_deserialize.clsp +3 -0
  203. chia/_tests/generator/puzzles/test_generator_deserialize.clsp.hex +1 -0
  204. chia/_tests/generator/puzzles/test_multiple_generator_input_arguments.clsp +19 -0
  205. chia/_tests/generator/puzzles/test_multiple_generator_input_arguments.clsp.hex +1 -0
  206. chia/_tests/generator/test_compression.py +201 -0
  207. chia/_tests/generator/test_generator_types.py +44 -0
  208. chia/_tests/generator/test_rom.py +180 -0
  209. chia/_tests/plot_sync/__init__.py +0 -0
  210. chia/_tests/plot_sync/config.py +3 -0
  211. chia/_tests/plot_sync/test_delta.py +101 -0
  212. chia/_tests/plot_sync/test_plot_sync.py +618 -0
  213. chia/_tests/plot_sync/test_receiver.py +451 -0
  214. chia/_tests/plot_sync/test_sender.py +116 -0
  215. chia/_tests/plot_sync/test_sync_simulated.py +451 -0
  216. chia/_tests/plot_sync/util.py +68 -0
  217. chia/_tests/plotting/__init__.py +0 -0
  218. chia/_tests/plotting/config.py +3 -0
  219. chia/_tests/plotting/test_plot_manager.py +781 -0
  220. chia/_tests/plotting/util.py +12 -0
  221. chia/_tests/pools/__init__.py +0 -0
  222. chia/_tests/pools/config.py +5 -0
  223. chia/_tests/pools/test_pool_cli_parsing.py +128 -0
  224. chia/_tests/pools/test_pool_cmdline.py +1001 -0
  225. chia/_tests/pools/test_pool_config.py +42 -0
  226. chia/_tests/pools/test_pool_puzzles_lifecycle.py +397 -0
  227. chia/_tests/pools/test_pool_rpc.py +1123 -0
  228. chia/_tests/pools/test_pool_wallet.py +205 -0
  229. chia/_tests/pools/test_wallet_pool_store.py +161 -0
  230. chia/_tests/process_junit.py +348 -0
  231. chia/_tests/rpc/__init__.py +0 -0
  232. chia/_tests/rpc/test_rpc_client.py +138 -0
  233. chia/_tests/rpc/test_rpc_server.py +183 -0
  234. chia/_tests/simulation/__init__.py +0 -0
  235. chia/_tests/simulation/config.py +6 -0
  236. chia/_tests/simulation/test_simulation.py +501 -0
  237. chia/_tests/simulation/test_simulator.py +232 -0
  238. chia/_tests/simulation/test_start_simulator.py +107 -0
  239. chia/_tests/testconfig.py +13 -0
  240. chia/_tests/timelord/__init__.py +0 -0
  241. chia/_tests/timelord/config.py +3 -0
  242. chia/_tests/timelord/test_new_peak.py +437 -0
  243. chia/_tests/timelord/test_timelord.py +11 -0
  244. chia/_tests/tools/1315537.json +170 -0
  245. chia/_tests/tools/1315544.json +160 -0
  246. chia/_tests/tools/1315630.json +150 -0
  247. chia/_tests/tools/300000.json +105 -0
  248. chia/_tests/tools/442734.json +140 -0
  249. chia/_tests/tools/466212.json +130 -0
  250. chia/_tests/tools/__init__.py +0 -0
  251. chia/_tests/tools/config.py +5 -0
  252. chia/_tests/tools/test-blockchain-db.sqlite +0 -0
  253. chia/_tests/tools/test_full_sync.py +30 -0
  254. chia/_tests/tools/test_legacy_keyring.py +82 -0
  255. chia/_tests/tools/test_run_block.py +128 -0
  256. chia/_tests/tools/test_virtual_project.py +591 -0
  257. chia/_tests/util/__init__.py +0 -0
  258. chia/_tests/util/benchmark_cost.py +170 -0
  259. chia/_tests/util/benchmarks.py +153 -0
  260. chia/_tests/util/bip39_test_vectors.json +148 -0
  261. chia/_tests/util/blockchain.py +134 -0
  262. chia/_tests/util/blockchain_mock.py +132 -0
  263. chia/_tests/util/build_network_protocol_files.py +302 -0
  264. chia/_tests/util/clvm_generator.bin +0 -0
  265. chia/_tests/util/config.py +3 -0
  266. chia/_tests/util/constants.py +20 -0
  267. chia/_tests/util/db_connection.py +37 -0
  268. chia/_tests/util/full_sync.py +253 -0
  269. chia/_tests/util/gen_ssl_certs.py +114 -0
  270. chia/_tests/util/generator_tools_testing.py +45 -0
  271. chia/_tests/util/get_name_puzzle_conditions.py +52 -0
  272. chia/_tests/util/key_tool.py +36 -0
  273. chia/_tests/util/misc.py +675 -0
  274. chia/_tests/util/network_protocol_data.py +1072 -0
  275. chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
  276. chia/_tests/util/protocol_messages_json.py +2701 -0
  277. chia/_tests/util/rpc.py +26 -0
  278. chia/_tests/util/run_block.py +163 -0
  279. chia/_tests/util/setup_nodes.py +481 -0
  280. chia/_tests/util/spend_sim.py +492 -0
  281. chia/_tests/util/split_managers.py +102 -0
  282. chia/_tests/util/temp_file.py +14 -0
  283. chia/_tests/util/test_action_scope.py +144 -0
  284. chia/_tests/util/test_async_pool.py +366 -0
  285. chia/_tests/util/test_build_job_matrix.py +42 -0
  286. chia/_tests/util/test_build_network_protocol_files.py +7 -0
  287. chia/_tests/util/test_chia_version.py +50 -0
  288. chia/_tests/util/test_collection.py +11 -0
  289. chia/_tests/util/test_condition_tools.py +229 -0
  290. chia/_tests/util/test_config.py +426 -0
  291. chia/_tests/util/test_dump_keyring.py +60 -0
  292. chia/_tests/util/test_errors.py +10 -0
  293. chia/_tests/util/test_full_block_utils.py +279 -0
  294. chia/_tests/util/test_installed.py +20 -0
  295. chia/_tests/util/test_limited_semaphore.py +53 -0
  296. chia/_tests/util/test_logging_filter.py +42 -0
  297. chia/_tests/util/test_misc.py +445 -0
  298. chia/_tests/util/test_network.py +73 -0
  299. chia/_tests/util/test_network_protocol_files.py +578 -0
  300. chia/_tests/util/test_network_protocol_json.py +267 -0
  301. chia/_tests/util/test_network_protocol_test.py +256 -0
  302. chia/_tests/util/test_paginator.py +71 -0
  303. chia/_tests/util/test_pprint.py +17 -0
  304. chia/_tests/util/test_priority_mutex.py +488 -0
  305. chia/_tests/util/test_recursive_replace.py +116 -0
  306. chia/_tests/util/test_replace_str_to_bytes.py +137 -0
  307. chia/_tests/util/test_service_groups.py +15 -0
  308. chia/_tests/util/test_ssl_check.py +31 -0
  309. chia/_tests/util/test_testnet_overrides.py +19 -0
  310. chia/_tests/util/test_tests_misc.py +38 -0
  311. chia/_tests/util/test_timing.py +37 -0
  312. chia/_tests/util/test_trusted_peer.py +51 -0
  313. chia/_tests/util/time_out_assert.py +191 -0
  314. chia/_tests/wallet/__init__.py +0 -0
  315. chia/_tests/wallet/cat_wallet/__init__.py +0 -0
  316. chia/_tests/wallet/cat_wallet/config.py +4 -0
  317. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +468 -0
  318. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +69 -0
  319. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +1826 -0
  320. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +291 -0
  321. chia/_tests/wallet/cat_wallet/test_trades.py +2600 -0
  322. chia/_tests/wallet/clawback/__init__.py +0 -0
  323. chia/_tests/wallet/clawback/config.py +3 -0
  324. chia/_tests/wallet/clawback/test_clawback_decorator.py +78 -0
  325. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +292 -0
  326. chia/_tests/wallet/clawback/test_clawback_metadata.py +50 -0
  327. chia/_tests/wallet/config.py +4 -0
  328. chia/_tests/wallet/conftest.py +278 -0
  329. chia/_tests/wallet/dao_wallet/__init__.py +0 -0
  330. chia/_tests/wallet/dao_wallet/config.py +3 -0
  331. chia/_tests/wallet/dao_wallet/test_dao_clvm.py +1330 -0
  332. chia/_tests/wallet/dao_wallet/test_dao_wallets.py +3488 -0
  333. chia/_tests/wallet/db_wallet/__init__.py +0 -0
  334. chia/_tests/wallet/db_wallet/config.py +3 -0
  335. chia/_tests/wallet/db_wallet/test_db_graftroot.py +141 -0
  336. chia/_tests/wallet/db_wallet/test_dl_offers.py +491 -0
  337. chia/_tests/wallet/db_wallet/test_dl_wallet.py +823 -0
  338. chia/_tests/wallet/did_wallet/__init__.py +0 -0
  339. chia/_tests/wallet/did_wallet/config.py +4 -0
  340. chia/_tests/wallet/did_wallet/test_did.py +2284 -0
  341. chia/_tests/wallet/nft_wallet/__init__.py +0 -0
  342. chia/_tests/wallet/nft_wallet/config.py +4 -0
  343. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +1493 -0
  344. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +1024 -0
  345. chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +375 -0
  346. chia/_tests/wallet/nft_wallet/test_nft_offers.py +1209 -0
  347. chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +172 -0
  348. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +2584 -0
  349. chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +70 -0
  350. chia/_tests/wallet/rpc/__init__.py +0 -0
  351. chia/_tests/wallet/rpc/config.py +4 -0
  352. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +285 -0
  353. chia/_tests/wallet/rpc/test_wallet_rpc.py +3153 -0
  354. chia/_tests/wallet/simple_sync/__init__.py +0 -0
  355. chia/_tests/wallet/simple_sync/config.py +3 -0
  356. chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +718 -0
  357. chia/_tests/wallet/sync/__init__.py +0 -0
  358. chia/_tests/wallet/sync/config.py +4 -0
  359. chia/_tests/wallet/sync/test_wallet_sync.py +1692 -0
  360. chia/_tests/wallet/test_address_type.py +189 -0
  361. chia/_tests/wallet/test_bech32m.py +45 -0
  362. chia/_tests/wallet/test_clvm_streamable.py +244 -0
  363. chia/_tests/wallet/test_coin_management.py +354 -0
  364. chia/_tests/wallet/test_coin_selection.py +588 -0
  365. chia/_tests/wallet/test_conditions.py +400 -0
  366. chia/_tests/wallet/test_debug_spend_bundle.py +218 -0
  367. chia/_tests/wallet/test_new_wallet_protocol.py +1174 -0
  368. chia/_tests/wallet/test_nft_store.py +192 -0
  369. chia/_tests/wallet/test_notifications.py +196 -0
  370. chia/_tests/wallet/test_offer_parsing_performance.py +48 -0
  371. chia/_tests/wallet/test_puzzle_store.py +132 -0
  372. chia/_tests/wallet/test_sign_coin_spends.py +159 -0
  373. chia/_tests/wallet/test_signer_protocol.py +947 -0
  374. chia/_tests/wallet/test_singleton.py +122 -0
  375. chia/_tests/wallet/test_singleton_lifecycle_fast.py +772 -0
  376. chia/_tests/wallet/test_singleton_store.py +152 -0
  377. chia/_tests/wallet/test_taproot.py +19 -0
  378. chia/_tests/wallet/test_transaction_store.py +945 -0
  379. chia/_tests/wallet/test_util.py +185 -0
  380. chia/_tests/wallet/test_wallet.py +2139 -0
  381. chia/_tests/wallet/test_wallet_action_scope.py +85 -0
  382. chia/_tests/wallet/test_wallet_blockchain.py +111 -0
  383. chia/_tests/wallet/test_wallet_coin_store.py +1002 -0
  384. chia/_tests/wallet/test_wallet_interested_store.py +43 -0
  385. chia/_tests/wallet/test_wallet_key_val_store.py +40 -0
  386. chia/_tests/wallet/test_wallet_node.py +780 -0
  387. chia/_tests/wallet/test_wallet_retry.py +95 -0
  388. chia/_tests/wallet/test_wallet_state_manager.py +259 -0
  389. chia/_tests/wallet/test_wallet_test_framework.py +275 -0
  390. chia/_tests/wallet/test_wallet_trade_store.py +218 -0
  391. chia/_tests/wallet/test_wallet_user_store.py +34 -0
  392. chia/_tests/wallet/test_wallet_utils.py +156 -0
  393. chia/_tests/wallet/vc_wallet/__init__.py +0 -0
  394. chia/_tests/wallet/vc_wallet/config.py +3 -0
  395. chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +70 -0
  396. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +883 -0
  397. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +830 -0
  398. chia/_tests/wallet/wallet_block_tools.py +327 -0
  399. chia/_tests/weight_proof/__init__.py +0 -0
  400. chia/_tests/weight_proof/config.py +3 -0
  401. chia/_tests/weight_proof/test_weight_proof.py +528 -0
  402. chia/apis.py +19 -0
  403. chia/clvm/__init__.py +0 -0
  404. chia/cmds/__init__.py +0 -0
  405. chia/cmds/beta.py +184 -0
  406. chia/cmds/beta_funcs.py +137 -0
  407. chia/cmds/check_wallet_db.py +420 -0
  408. chia/cmds/chia.py +151 -0
  409. chia/cmds/cmd_classes.py +323 -0
  410. chia/cmds/cmd_helpers.py +242 -0
  411. chia/cmds/cmds_util.py +488 -0
  412. chia/cmds/coin_funcs.py +275 -0
  413. chia/cmds/coins.py +182 -0
  414. chia/cmds/completion.py +49 -0
  415. chia/cmds/configure.py +332 -0
  416. chia/cmds/dao.py +1064 -0
  417. chia/cmds/dao_funcs.py +598 -0
  418. chia/cmds/data.py +708 -0
  419. chia/cmds/data_funcs.py +385 -0
  420. chia/cmds/db.py +87 -0
  421. chia/cmds/db_backup_func.py +77 -0
  422. chia/cmds/db_upgrade_func.py +452 -0
  423. chia/cmds/db_validate_func.py +184 -0
  424. chia/cmds/dev.py +18 -0
  425. chia/cmds/farm.py +100 -0
  426. chia/cmds/farm_funcs.py +200 -0
  427. chia/cmds/gh.py +275 -0
  428. chia/cmds/init.py +63 -0
  429. chia/cmds/init_funcs.py +367 -0
  430. chia/cmds/installers.py +131 -0
  431. chia/cmds/keys.py +527 -0
  432. chia/cmds/keys_funcs.py +863 -0
  433. chia/cmds/netspace.py +50 -0
  434. chia/cmds/netspace_funcs.py +54 -0
  435. chia/cmds/options.py +32 -0
  436. chia/cmds/param_types.py +238 -0
  437. chia/cmds/passphrase.py +131 -0
  438. chia/cmds/passphrase_funcs.py +292 -0
  439. chia/cmds/peer.py +51 -0
  440. chia/cmds/peer_funcs.py +129 -0
  441. chia/cmds/plotnft.py +260 -0
  442. chia/cmds/plotnft_funcs.py +405 -0
  443. chia/cmds/plots.py +230 -0
  444. chia/cmds/plotters.py +18 -0
  445. chia/cmds/rpc.py +208 -0
  446. chia/cmds/show.py +72 -0
  447. chia/cmds/show_funcs.py +215 -0
  448. chia/cmds/signer.py +296 -0
  449. chia/cmds/sim.py +225 -0
  450. chia/cmds/sim_funcs.py +509 -0
  451. chia/cmds/start.py +24 -0
  452. chia/cmds/start_funcs.py +109 -0
  453. chia/cmds/stop.py +62 -0
  454. chia/cmds/units.py +9 -0
  455. chia/cmds/wallet.py +1901 -0
  456. chia/cmds/wallet_funcs.py +1874 -0
  457. chia/consensus/__init__.py +0 -0
  458. chia/consensus/block_body_validation.py +562 -0
  459. chia/consensus/block_creation.py +546 -0
  460. chia/consensus/block_header_validation.py +1059 -0
  461. chia/consensus/block_record.py +31 -0
  462. chia/consensus/block_rewards.py +53 -0
  463. chia/consensus/blockchain.py +1087 -0
  464. chia/consensus/blockchain_interface.py +56 -0
  465. chia/consensus/coinbase.py +30 -0
  466. chia/consensus/condition_costs.py +9 -0
  467. chia/consensus/constants.py +49 -0
  468. chia/consensus/cost_calculator.py +15 -0
  469. chia/consensus/default_constants.py +89 -0
  470. chia/consensus/deficit.py +55 -0
  471. chia/consensus/difficulty_adjustment.py +412 -0
  472. chia/consensus/find_fork_point.py +111 -0
  473. chia/consensus/full_block_to_block_record.py +167 -0
  474. chia/consensus/get_block_challenge.py +106 -0
  475. chia/consensus/get_block_generator.py +27 -0
  476. chia/consensus/make_sub_epoch_summary.py +210 -0
  477. chia/consensus/multiprocess_validation.py +268 -0
  478. chia/consensus/pos_quality.py +19 -0
  479. chia/consensus/pot_iterations.py +67 -0
  480. chia/consensus/puzzles/__init__.py +0 -0
  481. chia/consensus/puzzles/chialisp_deserialisation.clsp +69 -0
  482. chia/consensus/puzzles/chialisp_deserialisation.clsp.hex +1 -0
  483. chia/consensus/puzzles/rom_bootstrap_generator.clsp +37 -0
  484. chia/consensus/puzzles/rom_bootstrap_generator.clsp.hex +1 -0
  485. chia/consensus/vdf_info_computation.py +156 -0
  486. chia/daemon/__init__.py +0 -0
  487. chia/daemon/client.py +252 -0
  488. chia/daemon/keychain_proxy.py +502 -0
  489. chia/daemon/keychain_server.py +365 -0
  490. chia/daemon/server.py +1606 -0
  491. chia/daemon/windows_signal.py +56 -0
  492. chia/data_layer/__init__.py +0 -0
  493. chia/data_layer/data_layer.py +1291 -0
  494. chia/data_layer/data_layer_api.py +33 -0
  495. chia/data_layer/data_layer_errors.py +50 -0
  496. chia/data_layer/data_layer_server.py +170 -0
  497. chia/data_layer/data_layer_util.py +985 -0
  498. chia/data_layer/data_layer_wallet.py +1311 -0
  499. chia/data_layer/data_store.py +2267 -0
  500. chia/data_layer/dl_wallet_store.py +407 -0
  501. chia/data_layer/download_data.py +389 -0
  502. chia/data_layer/puzzles/__init__.py +0 -0
  503. chia/data_layer/puzzles/graftroot_dl_offers.clsp +100 -0
  504. chia/data_layer/puzzles/graftroot_dl_offers.clsp.hex +1 -0
  505. chia/data_layer/s3_plugin_config.yml +33 -0
  506. chia/data_layer/s3_plugin_service.py +468 -0
  507. chia/data_layer/util/__init__.py +0 -0
  508. chia/data_layer/util/benchmark.py +107 -0
  509. chia/data_layer/util/plugin.py +40 -0
  510. chia/farmer/__init__.py +0 -0
  511. chia/farmer/farmer.py +923 -0
  512. chia/farmer/farmer_api.py +820 -0
  513. chia/full_node/__init__.py +0 -0
  514. chia/full_node/bitcoin_fee_estimator.py +85 -0
  515. chia/full_node/block_height_map.py +271 -0
  516. chia/full_node/block_store.py +576 -0
  517. chia/full_node/bundle_tools.py +19 -0
  518. chia/full_node/coin_store.py +647 -0
  519. chia/full_node/fee_estimate.py +54 -0
  520. chia/full_node/fee_estimate_store.py +24 -0
  521. chia/full_node/fee_estimation.py +92 -0
  522. chia/full_node/fee_estimator.py +90 -0
  523. chia/full_node/fee_estimator_constants.py +38 -0
  524. chia/full_node/fee_estimator_interface.py +42 -0
  525. chia/full_node/fee_history.py +25 -0
  526. chia/full_node/fee_tracker.py +564 -0
  527. chia/full_node/full_node.py +3327 -0
  528. chia/full_node/full_node_api.py +2025 -0
  529. chia/full_node/full_node_store.py +1033 -0
  530. chia/full_node/hint_management.py +56 -0
  531. chia/full_node/hint_store.py +93 -0
  532. chia/full_node/mempool.py +589 -0
  533. chia/full_node/mempool_check_conditions.py +146 -0
  534. chia/full_node/mempool_manager.py +853 -0
  535. chia/full_node/pending_tx_cache.py +112 -0
  536. chia/full_node/puzzles/__init__.py +0 -0
  537. chia/full_node/puzzles/block_program_zero.clsp +14 -0
  538. chia/full_node/puzzles/block_program_zero.clsp.hex +1 -0
  539. chia/full_node/puzzles/decompress_coin_spend_entry.clsp +5 -0
  540. chia/full_node/puzzles/decompress_coin_spend_entry.clsp.hex +1 -0
  541. chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp +7 -0
  542. chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp.hex +1 -0
  543. chia/full_node/puzzles/decompress_puzzle.clsp +6 -0
  544. chia/full_node/puzzles/decompress_puzzle.clsp.hex +1 -0
  545. chia/full_node/signage_point.py +16 -0
  546. chia/full_node/subscriptions.py +247 -0
  547. chia/full_node/sync_store.py +146 -0
  548. chia/full_node/tx_processing_queue.py +78 -0
  549. chia/full_node/util/__init__.py +0 -0
  550. chia/full_node/weight_proof.py +1720 -0
  551. chia/harvester/__init__.py +0 -0
  552. chia/harvester/harvester.py +272 -0
  553. chia/harvester/harvester_api.py +380 -0
  554. chia/introducer/__init__.py +0 -0
  555. chia/introducer/introducer.py +122 -0
  556. chia/introducer/introducer_api.py +70 -0
  557. chia/legacy/__init__.py +0 -0
  558. chia/legacy/keyring.py +155 -0
  559. chia/plot_sync/__init__.py +0 -0
  560. chia/plot_sync/delta.py +61 -0
  561. chia/plot_sync/exceptions.py +56 -0
  562. chia/plot_sync/receiver.py +386 -0
  563. chia/plot_sync/sender.py +340 -0
  564. chia/plot_sync/util.py +43 -0
  565. chia/plotters/__init__.py +0 -0
  566. chia/plotters/bladebit.py +388 -0
  567. chia/plotters/chiapos.py +63 -0
  568. chia/plotters/madmax.py +224 -0
  569. chia/plotters/plotters.py +577 -0
  570. chia/plotters/plotters_util.py +133 -0
  571. chia/plotting/__init__.py +0 -0
  572. chia/plotting/cache.py +213 -0
  573. chia/plotting/check_plots.py +283 -0
  574. chia/plotting/create_plots.py +278 -0
  575. chia/plotting/manager.py +436 -0
  576. chia/plotting/util.py +336 -0
  577. chia/pools/__init__.py +0 -0
  578. chia/pools/pool_config.py +110 -0
  579. chia/pools/pool_puzzles.py +459 -0
  580. chia/pools/pool_wallet.py +933 -0
  581. chia/pools/pool_wallet_info.py +118 -0
  582. chia/pools/puzzles/__init__.py +0 -0
  583. chia/pools/puzzles/pool_member_innerpuz.clsp +70 -0
  584. chia/pools/puzzles/pool_member_innerpuz.clsp.hex +1 -0
  585. chia/pools/puzzles/pool_waitingroom_innerpuz.clsp +69 -0
  586. chia/pools/puzzles/pool_waitingroom_innerpuz.clsp.hex +1 -0
  587. chia/protocols/__init__.py +0 -0
  588. chia/protocols/farmer_protocol.py +102 -0
  589. chia/protocols/full_node_protocol.py +219 -0
  590. chia/protocols/harvester_protocol.py +216 -0
  591. chia/protocols/introducer_protocol.py +25 -0
  592. chia/protocols/pool_protocol.py +177 -0
  593. chia/protocols/protocol_message_types.py +139 -0
  594. chia/protocols/protocol_state_machine.py +87 -0
  595. chia/protocols/protocol_timing.py +8 -0
  596. chia/protocols/shared_protocol.py +86 -0
  597. chia/protocols/timelord_protocol.py +93 -0
  598. chia/protocols/wallet_protocol.py +401 -0
  599. chia/py.typed +0 -0
  600. chia/rpc/__init__.py +0 -0
  601. chia/rpc/crawler_rpc_api.py +80 -0
  602. chia/rpc/data_layer_rpc_api.py +644 -0
  603. chia/rpc/data_layer_rpc_client.py +188 -0
  604. chia/rpc/data_layer_rpc_util.py +58 -0
  605. chia/rpc/farmer_rpc_api.py +365 -0
  606. chia/rpc/farmer_rpc_client.py +86 -0
  607. chia/rpc/full_node_rpc_api.py +959 -0
  608. chia/rpc/full_node_rpc_client.py +292 -0
  609. chia/rpc/harvester_rpc_api.py +141 -0
  610. chia/rpc/harvester_rpc_client.py +54 -0
  611. chia/rpc/rpc_client.py +164 -0
  612. chia/rpc/rpc_server.py +521 -0
  613. chia/rpc/timelord_rpc_api.py +32 -0
  614. chia/rpc/util.py +93 -0
  615. chia/rpc/wallet_request_types.py +904 -0
  616. chia/rpc/wallet_rpc_api.py +4943 -0
  617. chia/rpc/wallet_rpc_client.py +1814 -0
  618. chia/seeder/__init__.py +0 -0
  619. chia/seeder/crawl_store.py +425 -0
  620. chia/seeder/crawler.py +410 -0
  621. chia/seeder/crawler_api.py +135 -0
  622. chia/seeder/dns_server.py +593 -0
  623. chia/seeder/peer_record.py +146 -0
  624. chia/seeder/start_crawler.py +92 -0
  625. chia/server/__init__.py +0 -0
  626. chia/server/address_manager.py +658 -0
  627. chia/server/address_manager_store.py +237 -0
  628. chia/server/api_protocol.py +116 -0
  629. chia/server/capabilities.py +24 -0
  630. chia/server/chia_policy.py +346 -0
  631. chia/server/introducer_peers.py +76 -0
  632. chia/server/node_discovery.py +714 -0
  633. chia/server/outbound_message.py +33 -0
  634. chia/server/rate_limit_numbers.py +214 -0
  635. chia/server/rate_limits.py +153 -0
  636. chia/server/server.py +741 -0
  637. chia/server/signal_handlers.py +120 -0
  638. chia/server/ssl_context.py +32 -0
  639. chia/server/start_data_layer.py +151 -0
  640. chia/server/start_farmer.py +98 -0
  641. chia/server/start_full_node.py +112 -0
  642. chia/server/start_harvester.py +93 -0
  643. chia/server/start_introducer.py +81 -0
  644. chia/server/start_service.py +316 -0
  645. chia/server/start_timelord.py +89 -0
  646. chia/server/start_wallet.py +113 -0
  647. chia/server/upnp.py +118 -0
  648. chia/server/ws_connection.py +766 -0
  649. chia/simulator/__init__.py +0 -0
  650. chia/simulator/add_blocks_in_batches.py +54 -0
  651. chia/simulator/block_tools.py +2054 -0
  652. chia/simulator/full_node_simulator.py +794 -0
  653. chia/simulator/keyring.py +128 -0
  654. chia/simulator/setup_services.py +506 -0
  655. chia/simulator/simulator_constants.py +13 -0
  656. chia/simulator/simulator_full_node_rpc_api.py +99 -0
  657. chia/simulator/simulator_full_node_rpc_client.py +60 -0
  658. chia/simulator/simulator_protocol.py +29 -0
  659. chia/simulator/simulator_test_tools.py +164 -0
  660. chia/simulator/socket.py +24 -0
  661. chia/simulator/ssl_certs.py +114 -0
  662. chia/simulator/ssl_certs_1.py +697 -0
  663. chia/simulator/ssl_certs_10.py +697 -0
  664. chia/simulator/ssl_certs_2.py +697 -0
  665. chia/simulator/ssl_certs_3.py +697 -0
  666. chia/simulator/ssl_certs_4.py +697 -0
  667. chia/simulator/ssl_certs_5.py +697 -0
  668. chia/simulator/ssl_certs_6.py +697 -0
  669. chia/simulator/ssl_certs_7.py +697 -0
  670. chia/simulator/ssl_certs_8.py +697 -0
  671. chia/simulator/ssl_certs_9.py +697 -0
  672. chia/simulator/start_simulator.py +143 -0
  673. chia/simulator/wallet_tools.py +246 -0
  674. chia/ssl/__init__.py +0 -0
  675. chia/ssl/chia_ca.crt +19 -0
  676. chia/ssl/chia_ca.key +28 -0
  677. chia/ssl/create_ssl.py +249 -0
  678. chia/ssl/dst_root_ca.pem +20 -0
  679. chia/timelord/__init__.py +0 -0
  680. chia/timelord/iters_from_block.py +50 -0
  681. chia/timelord/timelord.py +1226 -0
  682. chia/timelord/timelord_api.py +138 -0
  683. chia/timelord/timelord_launcher.py +190 -0
  684. chia/timelord/timelord_state.py +244 -0
  685. chia/timelord/types.py +22 -0
  686. chia/types/__init__.py +0 -0
  687. chia/types/aliases.py +35 -0
  688. chia/types/block_protocol.py +20 -0
  689. chia/types/blockchain_format/__init__.py +0 -0
  690. chia/types/blockchain_format/classgroup.py +5 -0
  691. chia/types/blockchain_format/coin.py +28 -0
  692. chia/types/blockchain_format/foliage.py +8 -0
  693. chia/types/blockchain_format/pool_target.py +5 -0
  694. chia/types/blockchain_format/program.py +269 -0
  695. chia/types/blockchain_format/proof_of_space.py +135 -0
  696. chia/types/blockchain_format/reward_chain_block.py +6 -0
  697. chia/types/blockchain_format/serialized_program.py +5 -0
  698. chia/types/blockchain_format/sized_bytes.py +11 -0
  699. chia/types/blockchain_format/slots.py +9 -0
  700. chia/types/blockchain_format/sub_epoch_summary.py +5 -0
  701. chia/types/blockchain_format/tree_hash.py +72 -0
  702. chia/types/blockchain_format/vdf.py +86 -0
  703. chia/types/clvm_cost.py +13 -0
  704. chia/types/coin_record.py +43 -0
  705. chia/types/coin_spend.py +115 -0
  706. chia/types/condition_opcodes.py +73 -0
  707. chia/types/condition_with_args.py +16 -0
  708. chia/types/eligible_coin_spends.py +365 -0
  709. chia/types/end_of_slot_bundle.py +5 -0
  710. chia/types/fee_rate.py +38 -0
  711. chia/types/full_block.py +5 -0
  712. chia/types/generator_types.py +13 -0
  713. chia/types/header_block.py +5 -0
  714. chia/types/internal_mempool_item.py +18 -0
  715. chia/types/mempool_inclusion_status.py +9 -0
  716. chia/types/mempool_item.py +85 -0
  717. chia/types/mempool_submission_status.py +30 -0
  718. chia/types/mojos.py +7 -0
  719. chia/types/peer_info.py +64 -0
  720. chia/types/signing_mode.py +29 -0
  721. chia/types/spend_bundle.py +30 -0
  722. chia/types/spend_bundle_conditions.py +7 -0
  723. chia/types/transaction_queue_entry.py +55 -0
  724. chia/types/unfinished_block.py +5 -0
  725. chia/types/unfinished_header_block.py +37 -0
  726. chia/types/validation_state.py +14 -0
  727. chia/types/weight_proof.py +49 -0
  728. chia/util/__init__.py +0 -0
  729. chia/util/action_scope.py +168 -0
  730. chia/util/async_pool.py +226 -0
  731. chia/util/augmented_chain.py +134 -0
  732. chia/util/batches.py +42 -0
  733. chia/util/bech32m.py +126 -0
  734. chia/util/beta_metrics.py +119 -0
  735. chia/util/block_cache.py +56 -0
  736. chia/util/byte_types.py +12 -0
  737. chia/util/check_fork_next_block.py +33 -0
  738. chia/util/chia_logging.py +144 -0
  739. chia/util/chia_version.py +33 -0
  740. chia/util/collection.py +17 -0
  741. chia/util/condition_tools.py +201 -0
  742. chia/util/config.py +367 -0
  743. chia/util/cpu.py +22 -0
  744. chia/util/db_synchronous.py +23 -0
  745. chia/util/db_version.py +32 -0
  746. chia/util/db_wrapper.py +430 -0
  747. chia/util/default_root.py +27 -0
  748. chia/util/dump_keyring.py +93 -0
  749. chia/util/english.txt +2048 -0
  750. chia/util/errors.py +353 -0
  751. chia/util/file_keyring.py +469 -0
  752. chia/util/files.py +97 -0
  753. chia/util/full_block_utils.py +345 -0
  754. chia/util/generator_tools.py +72 -0
  755. chia/util/hash.py +31 -0
  756. chia/util/initial-config.yaml +694 -0
  757. chia/util/inline_executor.py +26 -0
  758. chia/util/ints.py +19 -0
  759. chia/util/ip_address.py +39 -0
  760. chia/util/json_util.py +37 -0
  761. chia/util/keychain.py +676 -0
  762. chia/util/keyring_wrapper.py +327 -0
  763. chia/util/limited_semaphore.py +41 -0
  764. chia/util/lock.py +49 -0
  765. chia/util/log_exceptions.py +32 -0
  766. chia/util/logging.py +36 -0
  767. chia/util/lru_cache.py +31 -0
  768. chia/util/math.py +20 -0
  769. chia/util/network.py +182 -0
  770. chia/util/paginator.py +48 -0
  771. chia/util/path.py +31 -0
  772. chia/util/permissions.py +20 -0
  773. chia/util/prev_transaction_block.py +21 -0
  774. chia/util/priority_mutex.py +95 -0
  775. chia/util/profiler.py +197 -0
  776. chia/util/recursive_replace.py +24 -0
  777. chia/util/safe_cancel_task.py +16 -0
  778. chia/util/service_groups.py +47 -0
  779. chia/util/setproctitle.py +22 -0
  780. chia/util/significant_bits.py +32 -0
  781. chia/util/ssl_check.py +213 -0
  782. chia/util/streamable.py +642 -0
  783. chia/util/task_referencer.py +59 -0
  784. chia/util/task_timing.py +382 -0
  785. chia/util/timing.py +67 -0
  786. chia/util/vdf_prover.py +30 -0
  787. chia/util/virtual_project_analysis.py +540 -0
  788. chia/util/ws_message.py +66 -0
  789. chia/wallet/__init__.py +0 -0
  790. chia/wallet/cat_wallet/__init__.py +0 -0
  791. chia/wallet/cat_wallet/cat_constants.py +75 -0
  792. chia/wallet/cat_wallet/cat_info.py +47 -0
  793. chia/wallet/cat_wallet/cat_outer_puzzle.py +120 -0
  794. chia/wallet/cat_wallet/cat_utils.py +164 -0
  795. chia/wallet/cat_wallet/cat_wallet.py +855 -0
  796. chia/wallet/cat_wallet/dao_cat_info.py +28 -0
  797. chia/wallet/cat_wallet/dao_cat_wallet.py +669 -0
  798. chia/wallet/cat_wallet/lineage_store.py +74 -0
  799. chia/wallet/cat_wallet/puzzles/__init__.py +0 -0
  800. chia/wallet/cat_wallet/puzzles/cat_truths.clib +31 -0
  801. chia/wallet/cat_wallet/puzzles/cat_v2.clsp +397 -0
  802. chia/wallet/cat_wallet/puzzles/cat_v2.clsp.hex +1 -0
  803. chia/wallet/cat_wallet/puzzles/delegated_tail.clsp +25 -0
  804. chia/wallet/cat_wallet/puzzles/delegated_tail.clsp.hex +1 -0
  805. chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp +15 -0
  806. chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp.hex +1 -0
  807. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp +26 -0
  808. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp.hex +1 -0
  809. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp +42 -0
  810. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp.hex +1 -0
  811. chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp +24 -0
  812. chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp.hex +1 -0
  813. chia/wallet/coin_selection.py +188 -0
  814. chia/wallet/conditions.py +1512 -0
  815. chia/wallet/dao_wallet/__init__.py +0 -0
  816. chia/wallet/dao_wallet/dao_info.py +61 -0
  817. chia/wallet/dao_wallet/dao_utils.py +811 -0
  818. chia/wallet/dao_wallet/dao_wallet.py +2119 -0
  819. chia/wallet/db_wallet/__init__.py +0 -0
  820. chia/wallet/db_wallet/db_wallet_puzzles.py +111 -0
  821. chia/wallet/derivation_record.py +30 -0
  822. chia/wallet/derive_keys.py +146 -0
  823. chia/wallet/did_wallet/__init__.py +0 -0
  824. chia/wallet/did_wallet/did_info.py +39 -0
  825. chia/wallet/did_wallet/did_wallet.py +1494 -0
  826. chia/wallet/did_wallet/did_wallet_puzzles.py +221 -0
  827. chia/wallet/did_wallet/puzzles/__init__.py +0 -0
  828. chia/wallet/did_wallet/puzzles/did_innerpuz.clsp +135 -0
  829. chia/wallet/did_wallet/puzzles/did_innerpuz.clsp.hex +1 -0
  830. chia/wallet/driver_protocol.py +26 -0
  831. chia/wallet/key_val_store.py +55 -0
  832. chia/wallet/lineage_proof.py +58 -0
  833. chia/wallet/nft_wallet/__init__.py +0 -0
  834. chia/wallet/nft_wallet/metadata_outer_puzzle.py +92 -0
  835. chia/wallet/nft_wallet/nft_info.py +120 -0
  836. chia/wallet/nft_wallet/nft_puzzles.py +305 -0
  837. chia/wallet/nft_wallet/nft_wallet.py +1687 -0
  838. chia/wallet/nft_wallet/ownership_outer_puzzle.py +101 -0
  839. chia/wallet/nft_wallet/puzzles/__init__.py +0 -0
  840. chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp +6 -0
  841. chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp.hex +1 -0
  842. chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp +6 -0
  843. chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp.hex +1 -0
  844. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp +30 -0
  845. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp.hex +1 -0
  846. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp +28 -0
  847. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp.hex +1 -0
  848. chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp +100 -0
  849. chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp.hex +1 -0
  850. chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp +78 -0
  851. chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp.hex +1 -0
  852. chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp +74 -0
  853. chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp.hex +1 -0
  854. chia/wallet/nft_wallet/singleton_outer_puzzle.py +101 -0
  855. chia/wallet/nft_wallet/transfer_program_puzzle.py +82 -0
  856. chia/wallet/nft_wallet/uncurry_nft.py +217 -0
  857. chia/wallet/notification_manager.py +117 -0
  858. chia/wallet/notification_store.py +178 -0
  859. chia/wallet/outer_puzzles.py +84 -0
  860. chia/wallet/payment.py +33 -0
  861. chia/wallet/puzzle_drivers.py +118 -0
  862. chia/wallet/puzzles/__init__.py +0 -0
  863. chia/wallet/puzzles/augmented_condition.clsp +13 -0
  864. chia/wallet/puzzles/augmented_condition.clsp.hex +1 -0
  865. chia/wallet/puzzles/clawback/__init__.py +0 -0
  866. chia/wallet/puzzles/clawback/drivers.py +188 -0
  867. chia/wallet/puzzles/clawback/metadata.py +38 -0
  868. chia/wallet/puzzles/clawback/puzzle_decorator.py +67 -0
  869. chia/wallet/puzzles/condition_codes.clib +77 -0
  870. chia/wallet/puzzles/curry-and-treehash.clib +102 -0
  871. chia/wallet/puzzles/curry.clib +135 -0
  872. chia/wallet/puzzles/curry_by_index.clib +16 -0
  873. chia/wallet/puzzles/dao_cat_eve.clsp +17 -0
  874. chia/wallet/puzzles/dao_cat_eve.clsp.hex +1 -0
  875. chia/wallet/puzzles/dao_cat_launcher.clsp +36 -0
  876. chia/wallet/puzzles/dao_cat_launcher.clsp.hex +1 -0
  877. chia/wallet/puzzles/dao_finished_state.clsp +35 -0
  878. chia/wallet/puzzles/dao_finished_state.clsp.hex +1 -0
  879. chia/wallet/puzzles/dao_finished_state.clsp.hex.sha256tree +1 -0
  880. chia/wallet/puzzles/dao_lockup.clsp +288 -0
  881. chia/wallet/puzzles/dao_lockup.clsp.hex +1 -0
  882. chia/wallet/puzzles/dao_lockup.clsp.hex.sha256tree +1 -0
  883. chia/wallet/puzzles/dao_proposal.clsp +377 -0
  884. chia/wallet/puzzles/dao_proposal.clsp.hex +1 -0
  885. chia/wallet/puzzles/dao_proposal.clsp.hex.sha256tree +1 -0
  886. chia/wallet/puzzles/dao_proposal_timer.clsp +78 -0
  887. chia/wallet/puzzles/dao_proposal_timer.clsp.hex +1 -0
  888. chia/wallet/puzzles/dao_proposal_timer.clsp.hex.sha256tree +1 -0
  889. chia/wallet/puzzles/dao_proposal_validator.clsp +87 -0
  890. chia/wallet/puzzles/dao_proposal_validator.clsp.hex +1 -0
  891. chia/wallet/puzzles/dao_proposal_validator.clsp.hex.sha256tree +1 -0
  892. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp +240 -0
  893. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex +1 -0
  894. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex.sha256tree +1 -0
  895. chia/wallet/puzzles/dao_treasury.clsp +115 -0
  896. chia/wallet/puzzles/dao_treasury.clsp.hex +1 -0
  897. chia/wallet/puzzles/dao_update_proposal.clsp +44 -0
  898. chia/wallet/puzzles/dao_update_proposal.clsp.hex +1 -0
  899. chia/wallet/puzzles/deployed_puzzle_hashes.json +67 -0
  900. chia/wallet/puzzles/json.clib +25 -0
  901. chia/wallet/puzzles/load_clvm.py +161 -0
  902. chia/wallet/puzzles/merkle_utils.clib +18 -0
  903. chia/wallet/puzzles/notification.clsp +7 -0
  904. chia/wallet/puzzles/notification.clsp.hex +1 -0
  905. chia/wallet/puzzles/p2_1_of_n.clsp +22 -0
  906. chia/wallet/puzzles/p2_1_of_n.clsp.hex +1 -0
  907. chia/wallet/puzzles/p2_conditions.clsp +3 -0
  908. chia/wallet/puzzles/p2_conditions.clsp.hex +1 -0
  909. chia/wallet/puzzles/p2_conditions.py +26 -0
  910. chia/wallet/puzzles/p2_delegated_conditions.clsp +18 -0
  911. chia/wallet/puzzles/p2_delegated_conditions.clsp.hex +1 -0
  912. chia/wallet/puzzles/p2_delegated_conditions.py +21 -0
  913. chia/wallet/puzzles/p2_delegated_puzzle.clsp +19 -0
  914. chia/wallet/puzzles/p2_delegated_puzzle.clsp.hex +1 -0
  915. chia/wallet/puzzles/p2_delegated_puzzle.py +34 -0
  916. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp +91 -0
  917. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp.hex +1 -0
  918. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +160 -0
  919. chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp +108 -0
  920. chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp.hex +1 -0
  921. chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +21 -0
  922. chia/wallet/puzzles/p2_parent.clsp +19 -0
  923. chia/wallet/puzzles/p2_parent.clsp.hex +1 -0
  924. chia/wallet/puzzles/p2_puzzle_hash.clsp +18 -0
  925. chia/wallet/puzzles/p2_puzzle_hash.clsp.hex +1 -0
  926. chia/wallet/puzzles/p2_puzzle_hash.py +27 -0
  927. chia/wallet/puzzles/p2_singleton.clsp +30 -0
  928. chia/wallet/puzzles/p2_singleton.clsp.hex +1 -0
  929. chia/wallet/puzzles/p2_singleton_aggregator.clsp +81 -0
  930. chia/wallet/puzzles/p2_singleton_aggregator.clsp.hex +1 -0
  931. chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp +50 -0
  932. chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp.hex +1 -0
  933. chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp +47 -0
  934. chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp.hex +1 -0
  935. chia/wallet/puzzles/puzzle_utils.py +34 -0
  936. chia/wallet/puzzles/settlement_payments.clsp +49 -0
  937. chia/wallet/puzzles/settlement_payments.clsp.hex +1 -0
  938. chia/wallet/puzzles/sha256tree.clib +11 -0
  939. chia/wallet/puzzles/singleton_launcher.clsp +16 -0
  940. chia/wallet/puzzles/singleton_launcher.clsp.hex +1 -0
  941. chia/wallet/puzzles/singleton_top_layer.clsp +177 -0
  942. chia/wallet/puzzles/singleton_top_layer.clsp.hex +1 -0
  943. chia/wallet/puzzles/singleton_top_layer.py +296 -0
  944. chia/wallet/puzzles/singleton_top_layer_v1_1.clsp +107 -0
  945. chia/wallet/puzzles/singleton_top_layer_v1_1.clsp.hex +1 -0
  946. chia/wallet/puzzles/singleton_top_layer_v1_1.py +345 -0
  947. chia/wallet/puzzles/singleton_truths.clib +21 -0
  948. chia/wallet/puzzles/tails.py +348 -0
  949. chia/wallet/puzzles/utility_macros.clib +48 -0
  950. chia/wallet/signer_protocol.py +125 -0
  951. chia/wallet/singleton.py +106 -0
  952. chia/wallet/singleton_record.py +30 -0
  953. chia/wallet/trade_manager.py +1102 -0
  954. chia/wallet/trade_record.py +67 -0
  955. chia/wallet/trading/__init__.py +0 -0
  956. chia/wallet/trading/offer.py +702 -0
  957. chia/wallet/trading/trade_status.py +13 -0
  958. chia/wallet/trading/trade_store.py +526 -0
  959. chia/wallet/transaction_record.py +158 -0
  960. chia/wallet/transaction_sorting.py +14 -0
  961. chia/wallet/uncurried_puzzle.py +17 -0
  962. chia/wallet/util/__init__.py +0 -0
  963. chia/wallet/util/address_type.py +55 -0
  964. chia/wallet/util/blind_signer_tl.py +164 -0
  965. chia/wallet/util/clvm_streamable.py +203 -0
  966. chia/wallet/util/compute_hints.py +66 -0
  967. chia/wallet/util/compute_memos.py +43 -0
  968. chia/wallet/util/curry_and_treehash.py +91 -0
  969. chia/wallet/util/debug_spend_bundle.py +232 -0
  970. chia/wallet/util/merkle_tree.py +100 -0
  971. chia/wallet/util/merkle_utils.py +102 -0
  972. chia/wallet/util/new_peak_queue.py +82 -0
  973. chia/wallet/util/notifications.py +12 -0
  974. chia/wallet/util/peer_request_cache.py +174 -0
  975. chia/wallet/util/pprint.py +39 -0
  976. chia/wallet/util/puzzle_compression.py +95 -0
  977. chia/wallet/util/puzzle_decorator.py +100 -0
  978. chia/wallet/util/puzzle_decorator_type.py +7 -0
  979. chia/wallet/util/query_filter.py +59 -0
  980. chia/wallet/util/transaction_type.py +23 -0
  981. chia/wallet/util/tx_config.py +158 -0
  982. chia/wallet/util/wallet_sync_utils.py +351 -0
  983. chia/wallet/util/wallet_types.py +72 -0
  984. chia/wallet/vc_wallet/__init__.py +0 -0
  985. chia/wallet/vc_wallet/cr_cat_drivers.py +664 -0
  986. chia/wallet/vc_wallet/cr_cat_wallet.py +877 -0
  987. chia/wallet/vc_wallet/cr_outer_puzzle.py +102 -0
  988. chia/wallet/vc_wallet/cr_puzzles/__init__.py +0 -0
  989. chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp +3 -0
  990. chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp.hex +1 -0
  991. chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp +304 -0
  992. chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp.hex +1 -0
  993. chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp +45 -0
  994. chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp.hex +1 -0
  995. chia/wallet/vc_wallet/vc_drivers.py +838 -0
  996. chia/wallet/vc_wallet/vc_puzzles/__init__.py +0 -0
  997. chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp +30 -0
  998. chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp.hex +1 -0
  999. chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp +75 -0
  1000. chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp.hex +1 -0
  1001. chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp +32 -0
  1002. chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp.hex +1 -0
  1003. chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp +80 -0
  1004. chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp.hex +1 -0
  1005. chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp +163 -0
  1006. chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp.hex +1 -0
  1007. chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp +16 -0
  1008. chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp.hex +1 -0
  1009. chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp +74 -0
  1010. chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp.hex +1 -0
  1011. chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp +23 -0
  1012. chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp.hex +1 -0
  1013. chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp +64 -0
  1014. chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp.hex +1 -0
  1015. chia/wallet/vc_wallet/vc_store.py +263 -0
  1016. chia/wallet/vc_wallet/vc_wallet.py +638 -0
  1017. chia/wallet/wallet.py +698 -0
  1018. chia/wallet/wallet_action_scope.py +96 -0
  1019. chia/wallet/wallet_blockchain.py +244 -0
  1020. chia/wallet/wallet_coin_record.py +72 -0
  1021. chia/wallet/wallet_coin_store.py +351 -0
  1022. chia/wallet/wallet_info.py +35 -0
  1023. chia/wallet/wallet_interested_store.py +188 -0
  1024. chia/wallet/wallet_nft_store.py +279 -0
  1025. chia/wallet/wallet_node.py +1765 -0
  1026. chia/wallet/wallet_node_api.py +207 -0
  1027. chia/wallet/wallet_pool_store.py +119 -0
  1028. chia/wallet/wallet_protocol.py +90 -0
  1029. chia/wallet/wallet_puzzle_store.py +396 -0
  1030. chia/wallet/wallet_retry_store.py +70 -0
  1031. chia/wallet/wallet_singleton_store.py +259 -0
  1032. chia/wallet/wallet_spend_bundle.py +25 -0
  1033. chia/wallet/wallet_state_manager.py +2819 -0
  1034. chia/wallet/wallet_transaction_store.py +496 -0
  1035. chia/wallet/wallet_user_store.py +110 -0
  1036. chia/wallet/wallet_weight_proof_handler.py +126 -0
  1037. chia_blockchain-2.5.1rc1.dist-info/LICENSE +201 -0
  1038. chia_blockchain-2.5.1rc1.dist-info/METADATA +156 -0
  1039. chia_blockchain-2.5.1rc1.dist-info/RECORD +1042 -0
  1040. chia_blockchain-2.5.1rc1.dist-info/WHEEL +4 -0
  1041. chia_blockchain-2.5.1rc1.dist-info/entry_points.txt +17 -0
  1042. mozilla-ca/cacert.pem +3611 -0
@@ -0,0 +1,697 @@
1
+ from __future__ import annotations
2
+
3
+ SSL_TEST_PRIVATE_CA_CRT = b"""-----BEGIN CERTIFICATE-----
4
+ MIIDKTCCAhGgAwIBAgIUXU/nGxb+rZck2qIMztmDWKDZCBcwDQYJKoZIhvcNAQEL
5
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
6
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMB4XDTIyMDMyMzE3MjkyNloXDTMyMDMy
7
+ MDE3MjkyNlowRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8G
8
+ A1UECwwYT3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMIIBIjANBgkqhkiG9w0BAQEF
9
+ AAOCAQ8AMIIBCgKCAQEAm8r7ngBPSkz0U2XxFwI0gT3xt/yqKTI0AZiSicyyMNo0
10
+ oSHZHRVzIfzu/c+cI2SPFHA0n9ZaswiztWje38uzRjEqD30EmF1By54A6c5pDJgV
11
+ MVd6LXafbv7tWxSLdyLPJkoa8gcqAtR1tOFXRHRtKNa6g2thyU87/V/UXJ9+C4eQ
12
+ mmpq3goVzkA7ZRx0FbdXwijAGLcL5ZWStUPTaWjR+V3ApxUZYy8JV3tWybEm5FDK
13
+ JJOvdd0bJQgT5WTCYRKNYsXyjcRP2ypi/Ry2M1oQLBbqCIldrvvIyoUodbkV3Yc7
14
+ AFhg4gUKc/O6zcIO/3PXKgFOAMLangjIBwWc9yyNXwIDAQABoxMwETAPBgNVHRMB
15
+ Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCILSP1KclF/iLlNb7w2bE1hZ5/
16
+ IJcWsZJSec7vlZkF3AGxrUc2XzdT53gooZqpg5YIdMYqDZqCfPphvUbqGELbImfH
17
+ D7sWhD8jU0FsKc5ho6+Uwmj2I5H+xnSVSF8qEbSBk8nasAac+bXQ6cakqkG/cbO0
18
+ 9HBBHTd6V25KCeyvYN0kyuYMyT7GBfzOBmhyx5zf2L3oqoqVKAokbmC/9cvBXMUX
19
+ +1BWyowMjBVH5C5frOymcTF7b3ZlMuibFdl01lVa76QjVno/QMZ2bqnLaqDJA306
20
+ f7vTyuGSYJSoXnEh0UJ4IR2ct0F+6JvuTCL4p/b97C4Au+Lq9jt+2sGV9CAs
21
+ -----END CERTIFICATE-----
22
+ """
23
+
24
+ SSL_TEST_PRIVATE_CA_KEY = b"""-----BEGIN PRIVATE KEY-----
25
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCbyvueAE9KTPRT
26
+ ZfEXAjSBPfG3/KopMjQBmJKJzLIw2jShIdkdFXMh/O79z5wjZI8UcDSf1lqzCLO1
27
+ aN7fy7NGMSoPfQSYXUHLngDpzmkMmBUxV3otdp9u/u1bFIt3Is8mShryByoC1HW0
28
+ 4VdEdG0o1rqDa2HJTzv9X9Rcn34Lh5CaamreChXOQDtlHHQVt1fCKMAYtwvllZK1
29
+ Q9NpaNH5XcCnFRljLwlXe1bJsSbkUMokk6913RslCBPlZMJhEo1ixfKNxE/bKmL9
30
+ HLYzWhAsFuoIiV2u+8jKhSh1uRXdhzsAWGDiBQpz87rNwg7/c9cqAU4AwtqeCMgH
31
+ BZz3LI1fAgMBAAECggEActMdtuuFhT7IyXsWQZ4XcrZkJPYtuGVPHWoFf1kGcKkz
32
+ JxvaeOwpSoCw6RMOgquIJUk6ECCeAtzED033Dr2FKZPs6zN6oo4Bg4C2LZ07odOp
33
+ sw9FdqK6icWMzZeL30gho5f02jPbi/BpvOJlPogNOI9jMp9/mC81CN+LlqTa8sVW
34
+ jABAfUx/d2HzqO+EP0+ku9iJQva1vfDnXhwuFRC2uT1gyE4yYIwofwfG9T/wiwaE
35
+ s07C46JDY7q1ct+V365233efQnKyHNE1zKUjbfUqVOHErcGJeS7amUT+rDsrexbT
36
+ VqZpVru2t9bGs6/tdAXy7g45ws7tbHU7UtiB9usCGQKBgQDOZmwJ5MxMYnE1uSP9
37
+ nLmtT/7DKfmwWXrF/NePrhfRGLoLwAo0EjujVPjNKnxpQYcCDVIBbk4ZYLm9WAAK
38
+ sh8hagWmDlHH2XUSTJlVzNfS1uMtptB4DuPiscasosrfwcW1/uXIdegZWPnme+XG
39
+ uL231fTZyUGrPZbMlESJphsXNQKBgQDBOz62H7KEkjAsiqpJ4rq0+Ar05+ngzdB/
40
+ wsPvI5kPyqZV1GXPwfZomFtyHIsadqPQklKUf3exTzXBngujdSjBvW6r6p3P+e5/
41
+ YzLrMXAbbz7DDooeeSyztca8ZCMssG0uKiWPzc+LmWQpyzKl/SmycpXxwpileigi
42
+ h3YzJT5gwwKBgHFaHotwdCKfDb2LaBCoOfDMtgVI0C/hdGO3cEsgOUREaCh71x6x
43
+ xL72s405gAnuSs79scPHaGzXiipKYft9x0r6hw+jXZZ7/qeGGc/dJ8pK6YjwzByj
44
+ UNP2/j1hSjmImaRR0LA+0LDbBKNn99EjNE352vagaMg6ks7Xvqw55TbhAoGATaTe
45
+ uBPYicisLtmxP2spltosnOgrZDePVicO0CK/uEa3u7lTB75qovDFnf62LnYJsR96
46
+ q0zk7Yxkj15QUuga7m6N7+qgaxeErA9SQItm/r8euwY2nbQXMEcUilK6h5SE6o3o
47
+ 9fW/Ndr3Eowh1+z4Okos0i5dY/DH+8fuyPJoND0CgYBRp3/mQNwr8XBKSU16eohN
48
+ af1z84V5xvpnq74XtM+KuV5c9uE1DShdRbylVWcunNZZam71qbGVL/hri3v+VMTJ
49
+ hpPquyMmvlkG8OsgHAVzfO9dZjFtj2GcJE8tB9ElGG6s4lgQHIQOPKJdED1Y8dwi
50
+ GkpUY3wMbKPH+C8mN9NBHw==
51
+ -----END PRIVATE KEY-----
52
+ """
53
+
54
+ SSL_TEST_FULLNODE_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
55
+ MIIDLDCCAhSgAwIBAgIUPIoys/kxRUAxhIW+huwsgqplVZ0wDQYJKoZIhvcNAQEL
56
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
57
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNloYDzIxMDAw
58
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
59
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
60
+ A4IBDwAwggEKAoIBAQCpDfVovOj9fLjpheYdKVwV5V3hN/bUxqlYAW3s+zFU9Bpg
61
+ +SnI+5XuTW6SLpiPjx/5kZJsztqxI/Nr7BuTpHUOfbaCHkoJGBAcAkPdnOma8lH7
62
+ bpZ8CpVjONeHqmTvsDP2dgCg8QW6nqVksEHMtkOFadTifIODxdWJtsB4KjzKlV1U
63
+ aiF0hUIJmbvX08bArrzrsX5EgM3pQV6vgo1wYWM/X9zRjAd0xJDbhVqOsQpK4AJS
64
+ zAAfqCwxNf04EHhRFD35Uam4NiBOzR3T8rB4XGcpMBYLPC6reLHtOmxneJ081NWh
65
+ ZgVDhxPg8/30Bs3OhNhT9ZlfBJZvPW8ReT/JzHXtAgMBAAGjFzAVMBMGA1UdEQQM
66
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQA4hi9UEfJtPMsTjpI08Pdp
67
+ AMNa1ybci7kDVaMfcvKvMDcOtoCEt5K1t3fGWrYojfgnJnSRJLTSZIa7IdBbyZG7
68
+ e5ClNLzw6bCqiQ55mgyAFMFM0VUaYu39zRK5X6fA2qWXFYVbOGAbEgU8sFuOmBid
69
+ MjkEQKL561tiibAkVJucp0hLf1xzoH4dJZqFWyFiThH8RTUq4Gd4atH0pzk01Ts3
70
+ VbQyinIqEU/gwLAawnOGtdMYdFPNtll0F+lP1+h5AZYtsTcfilm18D9Th4/rfQay
71
+ Ob1SSSdL7MXqy0pR9sF/BiXTeXauOK6Y5DooJ32y68yrNKL+TfbEzcPSfqiaK3Tm
72
+ -----END CERTIFICATE-----
73
+ """
74
+
75
+ SSL_TEST_FULLNODE_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
76
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCpDfVovOj9fLjp
77
+ heYdKVwV5V3hN/bUxqlYAW3s+zFU9Bpg+SnI+5XuTW6SLpiPjx/5kZJsztqxI/Nr
78
+ 7BuTpHUOfbaCHkoJGBAcAkPdnOma8lH7bpZ8CpVjONeHqmTvsDP2dgCg8QW6nqVk
79
+ sEHMtkOFadTifIODxdWJtsB4KjzKlV1UaiF0hUIJmbvX08bArrzrsX5EgM3pQV6v
80
+ go1wYWM/X9zRjAd0xJDbhVqOsQpK4AJSzAAfqCwxNf04EHhRFD35Uam4NiBOzR3T
81
+ 8rB4XGcpMBYLPC6reLHtOmxneJ081NWhZgVDhxPg8/30Bs3OhNhT9ZlfBJZvPW8R
82
+ eT/JzHXtAgMBAAECggEAI/VoIeMs295PprxoegN2JuIm2eUBh7jKBIIpU6MKlztk
83
+ 8QOOs8Vv2sR1pHps0PxsnLUuJB7Lvaob+PS72Oe+TlrHG149+Tk5E/wXW2go+GBa
84
+ t9SKBdBqfjR1A9JmreUY6G+pKpKZ2VwtagFjvZt3OUWNlq9NehX2mdhZkDXLwHs0
85
+ WdoZ9oEd9zWI0nz1zAtXZCEANphvu0oiihmeU/Ijif+4XTz5SYrMoSnC0OzEnGyx
86
+ r8nvVitBLbvivXfITJgoaGyhUSFat8P53i0GUFYfAV9dAs9WBFDd27em8yoAwAw1
87
+ kRvSTbRZ4dxoDJtEZoQh7qW2o4YfabqPm5OTt9ivsQKBgQDV8TErf5WsooJVKSlG
88
+ mTLRtsuDBL5glTz2Q8G6t2lUEzFiH1e4Y3HE9gvq2soTmt9JcU/6zPxWqLtY4RcI
89
+ XMXHpkeIGiRpV1JYbUC+TXqUHfRS7nL+vZYGZ97NuuJsMz2hAtguVR3u0DEZT79I
90
+ hyJEQel96Wr56MuZ5Yod1Z1WkwKBgQDKScLYHzDg/BKgMwEHTEP0Uzqr/uJpcKGl
91
+ rifzKX9gtURmVKsLJYXPRrA8dBM6+zMTTF9QnXodgOS0xPe3IL1wN3lQc3z3OLvl
92
+ 50Qw8uY+csPortA5VpVHdfo9SoDRIzWykzdRNdYXEWFhNRO250rqsxKx4MLEalj6
93
+ viE+ZH5RfwKBgQCU16/IvoPITmt0iiWAS3cytgUSiwtUMJ/wCSXQHGh4KL4zsPCb
94
+ hPwS9sdFxp/OUfJEq0PkjhaEx/FHnZojpD+pbgLYKq/oZesRQDlJ7Kd6QvjHdcOl
95
+ fQrSPBOjeACtHF0lFtCGM4uWqVtva679654odN7YTbuyUIbN9AdKSGKlZwKBgQCJ
96
+ RLRrY/8PLP6WpwWzphUW3sOZo0SQuFV40E1bvHUrctYPerT2w2eh2B4PZ9UE2SE3
97
+ n0OuuK39B1IrON2/7v+d/obcCQJr4JvgzqZ/cNS827QFWVsDDbYO4AgHP19ai8IM
98
+ g8mt2hKFZM3n4NSX8SvtR8cP3a1NC72FqS9130u4kQKBgQDUvc/QkoOiqSBIETCw
99
+ dvJJy/aqjbfEpmxOp1jT0LPSIbzAyRqNF1tCRaPXmSapiOGX+CmCZZ+cHjFGbMiE
100
+ qIj6TYC9WaJL221iB2o/Bgl1q6rg438fmEB1c/IuhviZhEXvopxh4l5XKNE9fC1u
101
+ iMlD8UUZlIqy47a2hq2Er68Ezg==
102
+ -----END PRIVATE KEY-----
103
+ """
104
+
105
+ SSL_TEST_FULLNODE_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
106
+ MIIDLDCCAhSgAwIBAgIUJ/ehUeJz6rFUOj2Sq6rL4SW0Wf0wDQYJKoZIhvcNAQEL
107
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
108
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNloYDzIxMDAw
109
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
110
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
111
+ A4IBDwAwggEKAoIBAQCyjDKG7d7fU8ZdpnD0Ba5S3/F6FXpTvUBqxSRWOO9yI4tQ
112
+ hSqOJIP9x8u0aFhgmgMN8Rig3JZ6KfvCeQ1qO1xkcuZ1o3FoOOYkhZoj5OKjFQDk
113
+ 6g+cOSrvUe4QtIaPxlfNhtV0peVQuKQGSOakEyC7Z5amZL7Ypwjbt6Wr/N5gZ2Be
114
+ 2+UnoCOxYTVvUmOWl11Bre9eQZXYIM1D2oYht62HvGEMhoZD0NSoRsEiHPiJ5Hhi
115
+ ci+U/oO2XP9NrKK3LKr9A8NzWB6oHXqw7qidCQqGumY0zhE4MarACVzqJG6kCB4/
116
+ cL1I3eSjDT6iEUWwn1OLFc/sdTaB50LNfEI0DeL/AgMBAAGjFzAVMBMGA1UdEQQM
117
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCfYRU1NbezmtNTU1hvOHLn
118
+ Dcw1qrUujyl6XSE4kNPooKreJLQwtlV5EV1h9APIk11jrieiEkxo9IYVRzadyrrf
119
+ 3Dh4x2KFn+R/m+ybHWTICcBL2FvvHuvVx/ilFraM3e+Kv/s+pQRs3YvQuCYduBTq
120
+ SXz12aZO5ttTmG7LK2WcX5OgwC1kmSw9Km2DFb8zu/cNv/VQkRujsG0doVVrqxHa
121
+ 4/CkSlTBNCBJO2Brhtbpx4F6kKfK6u26i9pW6HHgvctpC5PORTeGofPVM26Hpsap
122
+ 6mHfYpFu1jIr1MhQcWZss369DEwsSy2nr5/3R4zIDWMlBXEKd8p3ey/wjUk6dD+p
123
+ -----END CERTIFICATE-----
124
+ """
125
+
126
+ SSL_TEST_FULLNODE_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
127
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyjDKG7d7fU8Zd
128
+ pnD0Ba5S3/F6FXpTvUBqxSRWOO9yI4tQhSqOJIP9x8u0aFhgmgMN8Rig3JZ6KfvC
129
+ eQ1qO1xkcuZ1o3FoOOYkhZoj5OKjFQDk6g+cOSrvUe4QtIaPxlfNhtV0peVQuKQG
130
+ SOakEyC7Z5amZL7Ypwjbt6Wr/N5gZ2Be2+UnoCOxYTVvUmOWl11Bre9eQZXYIM1D
131
+ 2oYht62HvGEMhoZD0NSoRsEiHPiJ5Hhici+U/oO2XP9NrKK3LKr9A8NzWB6oHXqw
132
+ 7qidCQqGumY0zhE4MarACVzqJG6kCB4/cL1I3eSjDT6iEUWwn1OLFc/sdTaB50LN
133
+ fEI0DeL/AgMBAAECggEADGHeqy7Z8wD7U8lUMggm08aGF6JfrmkEi6MKZxRhvreq
134
+ VLY3gk4T/Uia3vMRlfl4VsIupBFIOkapGA6PGJvvR2QUiXoBRmoTw9qkGvMnqImv
135
+ WzDETmBEkv5KlUv/vP7TXgSIzyMmKRf1AB6UKDLPZU/EydtYxOuomJw+2BOcVHEZ
136
+ H0pCdxUo7Kt9Y2bp7yvXSIx+G/HUchQkYQhXQAaxOl+NFzUBMNe+4on2IZC4C+EI
137
+ 6t+fvlDuQrXLEqBigLwNeJ4hFGKsiGg5J0ae/UVYPuv0PbPsNarsBVCA8sC6He6X
138
+ ITfL6C8MxlwSliUe2vmH2pu+FKQHdQJ8lq8qZTwC6QKBgQDpulwHsVmr2NGEJVwM
139
+ 4rYyIFR+zzchDzPf+OJhOytd+qtcNly+sIYnMxduoH8FoTpsDo1AwuDAiJeRMuPi
140
+ nKu0BGVpTlcFRvcpDbL7GRa8DafUhVImikR0YKWYi8NPe6xQi1wPNKve5rN9BKaN
141
+ UeSktbmBO1Qrx3AnfgRpdlyetQKBgQDDj8AIpP2Gq074mm9AOVPg0JdN8z9hW5B4
142
+ hRz3FlDCnuC4wReQYoRtOwJWMbMJWV4FH4mJuDmOBxKNV3o5pcQJduxS5+elAZQt
143
+ uucPz0qYlRyHkPJDBWSVfkhvMJrc4a+5qY1SjQQs+L2DFMmSkfa8WACgdIQ50H3j
144
+ bP8i5jlXYwKBgQCFeH+vgO6VPPbAgNklHp4u19mIpOp1fYoBH86e+bwVKd2LhhvG
145
+ ZWXmor2B1jNTUrPbGyA82Eyihh4Ps8EBGrjOzyfeT/dPsyvXjNQlojkiYKXzrcKw
146
+ 8YqP7tUB3OZG0HghcsO6hziSzKm4/dvind501LW/f9LcQULhuovoccgIdQKBgHvD
147
+ igDuihSkbgIfmrDGlzL8UAVhIId472GWvNITKWFCM245pbQW5UBLzBrIsUoFaN9N
148
+ KjoigSpFh5Qz/IJnSj3DKaT+ZzeiXCjk1D7JLaiLFdcmAGwyCYoitazI0flgS1nw
149
+ 2COaYz4i3a0LhtZf0gs4loz1sIj2TfWUkZOAqGGJAoGBAIk7JmrLFBcPTSPHEDMX
150
+ xvwQ+dy6WlYbSO9PjSNjGhHOvH/6gjUo7ZDpAW3IGMGJt/7AO5d80OOxqGhfwQHf
151
+ JBf6h8bh8In1Ybdo1yBHx6c996MqgLPBE1+j/okVwBWhWjuX6XBwUnivx3Upds/1
152
+ C3t2hlKCYatRJO8FMRbP6Pci
153
+ -----END PRIVATE KEY-----
154
+ """
155
+
156
+ SSL_TEST_WALLET_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
157
+ MIIDLDCCAhSgAwIBAgIUfnFEiDBphxztIz9efqOLOpYjA6YwDQYJKoZIhvcNAQEL
158
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
159
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNloYDzIxMDAw
160
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
161
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
162
+ A4IBDwAwggEKAoIBAQDkLNTI9jghjYaXRMvt/3oFVDZ8FUraVUU718V8vW5NF4Or
163
+ I7HYi7EgS4BnRh9CfU8r+mkPxPTYJ7kgjKOcdNGw1ARCiIIl95gw6ymjcXZ7isLC
164
+ F+79kJNQSKq6lQvrPoKoQpfy8dgjRaGY7gH3DeX/Oi/QFd3N0C5ZGpyzE7+VmONg
165
+ gzoGk5MyLbBCcKcOsBQUqOR7p2bEYXDDP/xl7+u3R2rhWVsp/E9W0eJJmtiVwYrJ
166
+ y6sbzcWBxjCM3Rv4NZs9tTH19EHWDJM4whHgnEiB7eXz03+0tELhnwkrrm+a0qC2
167
+ uVqzG9HZ2/hVY0VmPyPVprAihsAPLyJlnpArCs4ZAgMBAAGjFzAVMBMGA1UdEQQM
168
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBUBe8jhAQgvnojPHIVbZTy
169
+ HyzRwfN8bx6sRGMzRWR1nFuSgeYz9ngzanf6adVCh7K7O8O1dZwdaPPZB9RKPKUH
170
+ 0oPYPwhSyvmT6so2Xr/YB5Yx/KbrSK7dMlbxQ+9ct9saKkaioVfo7OvgOY3fFg9k
171
+ Qs0RwtRpE1TjaSJw7ScwlaUR7GYUrcIBuCKROcZJPTQaVSM537SOFQXqUn0M7Wfu
172
+ QM4545j1aULGnDzbP72fpk/icndS8ArmvAW3JpIe+HFk9IxBuzUh4HKHzO3Dny0l
173
+ rKOiVmeztN+a8mipfJRTveuZs/QykCugYkafg+nB9GOTjyBwZzTD6IfW1LO3UZLt
174
+ -----END CERTIFICATE-----
175
+ """
176
+
177
+ SSL_TEST_WALLET_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
178
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDkLNTI9jghjYaX
179
+ RMvt/3oFVDZ8FUraVUU718V8vW5NF4OrI7HYi7EgS4BnRh9CfU8r+mkPxPTYJ7kg
180
+ jKOcdNGw1ARCiIIl95gw6ymjcXZ7isLCF+79kJNQSKq6lQvrPoKoQpfy8dgjRaGY
181
+ 7gH3DeX/Oi/QFd3N0C5ZGpyzE7+VmONggzoGk5MyLbBCcKcOsBQUqOR7p2bEYXDD
182
+ P/xl7+u3R2rhWVsp/E9W0eJJmtiVwYrJy6sbzcWBxjCM3Rv4NZs9tTH19EHWDJM4
183
+ whHgnEiB7eXz03+0tELhnwkrrm+a0qC2uVqzG9HZ2/hVY0VmPyPVprAihsAPLyJl
184
+ npArCs4ZAgMBAAECggEAAr1zFLK4O9bqPdjKpiICQhwfx1+uFW8etLhDm9refziA
185
+ EUcNdK9AwkWF1jemWnMMx1dreZAA7LOVaoml0VQpzHjPUEk5XuFZR4Uba+YJ6TPi
186
+ YNhOu2bIDhfBTRpLGVkX0pNyJa23zbyhUyfQiDn3gBgfyNzqW/VbCSDjrtbW3yIA
187
+ ES2G6VFx1mr/FdWpPyr26rYFiqxdpI3igUZmDsucJcW39d+4gWz76Yjs1lC4Xm/Y
188
+ ScpZoMJaGlUxa9SID7Xuvaav5CtuiX5N0ZdYdmpGV30WPVfM8uDGWp+foAwuWCK9
189
+ Onc2uAsCS81n9qKmrrcoh9bKzan0Ntq+EGCMkdhaXQKBgQD9+jbNeTsgA6+MrF6e
190
+ sOKpjgpZ24P5bD0SlK0q6hq45yts7bunUJidEMrhJEBQ74Ajs5BjRNkfAu6/b+nI
191
+ dnxu+8lIet5xLw9SFXeYmE5W6mXknFoe1i8QR/T4v6Kt01NdQC84IqLsogHmYJpc
192
+ aF1LD6trGP74+3ZBoCo5yUofdwKBgQDl/gOH7TBjnNGS45IrOkcLpd3j2mUINNbu
193
+ O0p/H49H1Qg8igB3TGGifbRCxoOeXkw5/aCiO80Cp2fy5QRGvec3c+BZwEQZ3bBi
194
+ rSigZQPbjKhMBINeC9Mw2CBjJtK0VuvKY9q+8X73K5Z8ovAqlIqXEQR+dufG0Gbu
195
+ uD5bdUuC7wKBgHf19mqpB1dAxmtQg0S7UeQ6VgNJXxWxnUsodH6fos2RSv6hb5BA
196
+ zkTpyJn9EG/qIAE88EcjHta6AODlUGxCItYdEV6twmF9k+P2hc3Kqr386vHHM/36
197
+ trIe+sN/aKxn86lJBsSh/4h7oSAaou5g0SgCF7p3TP93bszihO9UdzFTAoGAX9DW
198
+ Wb+IBEfly6NBVv79cC3W5kErDCMvU6qh25ojUBLBTq9TiF/q4Q4rlhIr7UNt0E8I
199
+ p+3v9+YUWU3t3Sbqd+Cvm9SMypXgEQwAu+m5lLLhvmG29OxKPLQdshEPgRAhRX0a
200
+ OahUc9bV5/Ddy2982Xi+fY09/EcASv25BNM19UMCgYEAuTkovlDqkBvGponDZ7fc
201
+ jZjuxXAphxHKcV2CLigByylB23/baHZwHA6XbfbjTEJJJt/f1+GsMkJne/aVY4ZA
202
+ y90SrWL71u2PQXCEk+ZwsYw4giWzTJxZgjD+at2rl2XkLXsTVZ9vMTVIwGwJ4sWR
203
+ pZriXfsrE3WjsKTdKXlba28=
204
+ -----END PRIVATE KEY-----
205
+ """
206
+
207
+ SSL_TEST_WALLET_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
208
+ MIIDLDCCAhSgAwIBAgIUIYvyPYsDrigeLVIkFXsvpHrP/F4wDQYJKoZIhvcNAQEL
209
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
210
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNloYDzIxMDAw
211
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
212
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
213
+ A4IBDwAwggEKAoIBAQCpwUvZ+07XGeclurl24s5mocAP/pmlUQU50unzsPRWarrt
214
+ 4DIjFX4CUErlCnwGKff6sXkSNzJOCNQ4NQXIJ5imbEvx7d5V80z/5Phus2JsY4uf
215
+ IZ/LidOk4tSlUpLDuYURCziqy4fljEY4M58zfgCBHz2aBsLE6LJ7/WZSI6LcXcs6
216
+ p9UkVY74uSfnFjVN7W7ivNutdv/vo2qsWPHojn35yYV2JEBje5LMtw+7SDJ8ljMc
217
+ kkVh+67msxiLlmxhZadA1eTf31kyceW3PcXA2rGqTMIcdb7REjOhA4kPgKV9R3lA
218
+ C0wqWEvufnkh2FuiOjI0mcYguRdvRJQooqMDr8KhAgMBAAGjFzAVMBMGA1UdEQQM
219
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQC3nE/WNyDiL0+UqIamE2ER
220
+ Xii4bQkuOfIFQKn13ciD3hxBI25sDS1T7ssAk/XvKxgMij7jx7vtRV2vJg905c53
221
+ 2+QxDkkCOO1wrYsvJfCNJ5yz2JkO0eXG1RLmIViixLoyipjEDwSwPM7SpK2LngsL
222
+ teV/CKkQAmdOIXB6e3KMv7DvBHboGmm/cv3JrKdLxcQd80HigqNR29nPAJhBx4T2
223
+ VZneCNnrErYn+OsaM1TdlyIoTF15Aq5fJY5hfK3v5xLv7JP6X5XqXTVh8Bua/A9B
224
+ 7pWnFtxNcMr2NbC5Jfmu2Zgc7xTcB1M0bRVSLO4ytMFnBvm451K3Awhz25CRF5zg
225
+ -----END CERTIFICATE-----
226
+ """
227
+
228
+ SSL_TEST_WALLET_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
229
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpwUvZ+07XGecl
230
+ url24s5mocAP/pmlUQU50unzsPRWarrt4DIjFX4CUErlCnwGKff6sXkSNzJOCNQ4
231
+ NQXIJ5imbEvx7d5V80z/5Phus2JsY4ufIZ/LidOk4tSlUpLDuYURCziqy4fljEY4
232
+ M58zfgCBHz2aBsLE6LJ7/WZSI6LcXcs6p9UkVY74uSfnFjVN7W7ivNutdv/vo2qs
233
+ WPHojn35yYV2JEBje5LMtw+7SDJ8ljMckkVh+67msxiLlmxhZadA1eTf31kyceW3
234
+ PcXA2rGqTMIcdb7REjOhA4kPgKV9R3lAC0wqWEvufnkh2FuiOjI0mcYguRdvRJQo
235
+ oqMDr8KhAgMBAAECggEAaFt1ZvdQm3nIGPC2jXiXDI8JhIuvJuss/ERGINK7Etkg
236
+ O5ZlHB5dTczQjgepAR0R3qL13BXkrgZNeJRYDpkRBdZzxbHGyi39Ox8m/t72dc2o
237
+ itZf5v+/BZGQymV95icJv9WXK6Bd1ecrT+ekSkJ+yuJKu4LGf8jR2NmJ6psPxso9
238
+ oI2QdSpxCyCJvELbapgXlTxKEZ+6pzxf9Wx1/bjkZyuHRCEJ/+lNq7io+L4Tjvcu
239
+ 1wzpsqNJHsQkYIJAJBd/rf5M/obxv88jughmgJUQiau0QUjSt0Lq7sXopYLBzU82
240
+ ETnj1OTOQLsv42mc/oQauhFw/NeADPP/mIH5iO7cBQKBgQDdJZE+w7cThPO+V3li
241
+ 8gUb0W17qgiuSnAknY18JW2h7Rrtg5AnmGM3ao0aMyzOFAXuJ4bkiwHC9T9wB9On
242
+ VI2HwLzpJxHBmxD8griIo5Vjzi76oIvFkb3ibVkmLRnC6jSLYaz5P/BsXzxJAASt
243
+ U90N/jqEBBW7iZSz/TX39ExM9wKBgQDEgkT1oiFhrSn5G4hDDWSkIywWvrMzrfzh
244
+ o5X7OO8X8Vwe+wVqNwlZ6/6obbY4cBhEaMXpHMnspEx6X51gzKuR0fA8DUMXG1dO
245
+ eB7vODo/TEVXHKwHD4YEhclvoMY2qGRPW08ppA4487BDKkmPNVc+SdpJK2IDoTCJ
246
+ QvGW1Er/JwKBgB0f0HQapGa+sLcVoBfm1cNnHmsV5pTFmuVHlpWN/FVB+7TiCb8d
247
+ M5vdvX2A1drCClHmBL7ei7nYQKWJcldsLEN/n6F5Er6TpHYM5S6hlJATXF6HfEDl
248
+ w8MpMX90mxrva0Ib+ALPZ+Nt22ulw/frvoYUQDKYsyACq4HUzCG+m7nbAoGAFztf
249
+ c7rLP4T9ZVn/7g1zTIRr/fRls0JqlzKD1MOSYL5EKdV7emcvT9Y6sSbnWBzIga3x
250
+ V/HzXWq/L+iF7p/D2OV9BVx8BgtRcxF4dseq+zjFKdtV6y/GpFo8ylmzlVqrIUam
251
+ QUIH/Guy9v3U3H1t5wtMJ0JdwBgaaN/lN/O5OhkCgYAxhqU+/pe8kF/cK+W8R4Ea
252
+ JcN9pXg77e3WR6+1tKCutXqlbmzL9bBRyjxXtDvAt1EOL6yCE+qHFeoucjKnxyFT
253
+ ksw7ARTebaTDekf0ClkouZpRtyJ3mlL7it0bmm4ySZgbBplEFjYcY5cwDSR1heI/
254
+ DbL+N0f47P0O9Z3a1Uvxgg==
255
+ -----END PRIVATE KEY-----
256
+ """
257
+
258
+ SSL_TEST_FARMER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
259
+ MIIDLDCCAhSgAwIBAgIUSORAd4kBPC4fSPqHEQskE72Yt1kwDQYJKoZIhvcNAQEL
260
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
261
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNloYDzIxMDAw
262
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
263
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
264
+ A4IBDwAwggEKAoIBAQDLIIgg1ILQGtE9Rkza0ieGUNn6wDssvm0fkcpIZXhrYbow
265
+ ClydjwDMQrLHF295ZgfkqDEmD5MUeJTxBNznDlZtkvBIRjPN+M7ZnlGJCUTc9jex
266
+ U0a/KxrK6ygsaWNzQ8eNaTNOAR/l6j/kuAUC4vKoYKGzLCW45LlKVB9xQDWinpov
267
+ nXpA6S5UUI6YxqeriHr2IiLtXSZmqb1lqftTGXenvdnHrJEmer4iYjXHAfMhq+5/
268
+ yHCZmpy4IAX39zwAWA9FnYieGSE8KyEqZW4HfF1Fe3V9C6nsZ2gVL1k0sgAgJ8oW
269
+ 3CtM8tljHCmyxxD9EHSjJAkSnY3OqU5P2+XMbNcJAgMBAAGjFzAVMBMGA1UdEQQM
270
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAijxQXc6ndCfyUhP7DmFCr
271
+ OR3jfPd7Bvc5M306CepT4ZGxXrjgy5idkKS8PAdSTMFJ/h3ShkGatgnb/OoOqiMh
272
+ YV78dx0wr4/sdEauPHODkQXmtPj+u2Al9ZyYflTLeiMV7JOn8H4oEE+r0Ra3o89P
273
+ F9+GOd/jnF8BpO5GUDN0nN22tNid5kIepMNVG0L3iDMGSDMzcXbGE49a8FPc4CfK
274
+ 24Fd6BZ2YsUM4NWQ97lfGKtCsnZkChwNVkSkVXP38Zvz5H+sHaMyWQ+hiNBlB7Up
275
+ OrNw0uq/jvNv5IGwx/JEuYuXXfPd5CvPesk43ycsBvbjyYFSOsdzU55jEcivPQNW
276
+ -----END CERTIFICATE-----
277
+ """
278
+
279
+ SSL_TEST_FARMER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
280
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDLIIgg1ILQGtE9
281
+ Rkza0ieGUNn6wDssvm0fkcpIZXhrYbowClydjwDMQrLHF295ZgfkqDEmD5MUeJTx
282
+ BNznDlZtkvBIRjPN+M7ZnlGJCUTc9jexU0a/KxrK6ygsaWNzQ8eNaTNOAR/l6j/k
283
+ uAUC4vKoYKGzLCW45LlKVB9xQDWinpovnXpA6S5UUI6YxqeriHr2IiLtXSZmqb1l
284
+ qftTGXenvdnHrJEmer4iYjXHAfMhq+5/yHCZmpy4IAX39zwAWA9FnYieGSE8KyEq
285
+ ZW4HfF1Fe3V9C6nsZ2gVL1k0sgAgJ8oW3CtM8tljHCmyxxD9EHSjJAkSnY3OqU5P
286
+ 2+XMbNcJAgMBAAECggEAcRxGcXGk/llQlrxk450O4V54Y4dT7FCF14SJjdLjQXiE
287
+ A2hhtmMBYLzrbK4CJynHz25RIA6gKlATMDsy/38eZZnjL3vYMSQRm2DrqlF9BUYe
288
+ MSJcTOul2cUk88Yj2PWvU3F3XkKGDrNorOZD9B2IXnag1HMK9nB3NYquj5PfyhNk
289
+ tpgX8a8dnb2KQ7a/+3ESFjQTo7Hw+NQS5oQIf5KgKoCSunJPm575mrvozWYHmSuc
290
+ tAR+jIdZIrKR5D2y9JKuWlrywm8C59IbnFLGCqHnqLekawavA/lAsLqPqwrWGeSe
291
+ +ztTTscVnTRY043lthBOp3XWfR16c8LXEeeX87gDGQKBgQD2LrWgHpNtLYortEAp
292
+ FeIXu4gpmBYG/jK//Kex/t3rmCR8bRdnK49QHbIKfl+fl0u/B4dsrs2fOZ+qqLA1
293
+ Bgzkls+V396rNWzyzcHUzatZMu6B9lnw14Rbg/+ZjB2lKl1CJKAHB2WiUC0hlxtD
294
+ B+6MRdNQrpmMNpiwewi5bkJ0twKBgQDTOkR48BnooALz1rogO8SuWVp6A+FjfSMi
295
+ 4R/skUEBqf2j7hybOnhZexouRuN5KOcjVi5zNSitOtors4Iun62mFLFumgTxPk60
296
+ fzEHiBMUaabiXPZQW/k5s2kD36utvol/SnrH0LIKVMoXW+wNO1ZC8SD6QOKwT601
297
+ 0u0dgEzSPwKBgDDpdOKcUJRHkQU/6eN/2oz2kIYbFn1LMhAdBcCCr9roPo+OKTEx
298
+ YWb8j2wwUZVmvQD2YPzB+k6hZ0zD+UZ/rj4YjKPtd9MyaTQQl2tNdbbiPKsLpDEK
299
+ 0NxR7I24Xgd71E2Y80aSPKo0HdNnr13xDH9IPETye8V0739Y4pHdC00fAoGAZCE7
300
+ 8kSHU6H+pE6G/t62Vpve6vZJ8tqQPGmRs5gLw9ksdnhasS8fe/OCLqvGC1pbb4Hc
301
+ FRr/BFdgstSugqGJNLCch7yVWTLbJm8g89wKh2OqC6Zb0S44T6T/xClUfdFT5raM
302
+ y4nfzEvzXO1jUcZuFt+tbVQy4bdzeY9afeCjCgsCgYEA6Ob83zzYHNW3XArnSFh/
303
+ rLB0PxEDVQmDRPxc3iZ6iu4bSfEejQskb6qi3QHrfwZIb0RIFsB5jFBnzOqAfnLU
304
+ NL87vGYucc1yTsS7sNuUl5Bzj3r/IpbtRyJwaiwhyRFFUzQN6SK+3d/F0i9y31Si
305
+ cpQmwDGhmx/5+eYyPVBMxqI=
306
+ -----END PRIVATE KEY-----
307
+ """
308
+
309
+ SSL_TEST_FARMER_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
310
+ MIIDLDCCAhSgAwIBAgIUPNbZirLECcLXWjdq7AF5vdOX4UowDQYJKoZIhvcNAQEL
311
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
312
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNloYDzIxMDAw
313
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
314
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
315
+ A4IBDwAwggEKAoIBAQCVE9/KTj19nPrT0DaIRmLQBhJCvvMsJnY8Fa8R0hfM+g41
316
+ jHKzvriwD0yArxbdj+eKr00ZWM9PCG/TpnUkW33PSya+VQ4iADUTcD36F/5p0sfe
317
+ psu1+tUf7MdMGERrRnNwG/xTAo47whrJ7QoIYWjhtiOREjImBjWXRgatT4uLuNsj
318
+ wguPTFQklEH53mxunBago7qJLwJTFVJ+hrxMuHAwYHxhdNKA18oVKVcg1zE3JTwH
319
+ wcY/n8kvUXK6L8GJ3Cororn53ej4KBUbvrsAs6AXtpwUUQy/H0s1ZkuF7r1nmUH/
320
+ zGvzrPTMnFvtRA3yyXxpjG2mJvx0svwqVAVV0HpDAgMBAAGjFzAVMBMGA1UdEQQM
321
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCPL//viWfMURAJWiGJZSNH
322
+ uy1UWUkt/Ga5zIdr+22nHPEXTE6H4+TbDKomVa7xJebZ/Pr0zG4Y41wk/l65Qq4C
323
+ 5FBNiGoLTO3T+6aSCF7iwUoWRW3leCL29TZrX3AG+R3CnYJnJtGpH+vmqb4lp10c
324
+ duCxdd/1Foe3V2Hc1QhFRwd3uG9wYJ1VL4ifjghT03Kp8UcPDYY3w4A3/QEjVMsl
325
+ A0pgj34t7oiT/K54bWtkWphbDu5jX8JP8+A01CXS9njXU1OXEnRKq/x2OhIFEAKS
326
+ eKywXcUoqfNpX0qmTKSahTslCZu3kUtOgyHQMOJIceot1AZ2hgzDmmEL3+DD2gZ9
327
+ -----END CERTIFICATE-----
328
+ """
329
+
330
+ SSL_TEST_FARMER_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
331
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCVE9/KTj19nPrT
332
+ 0DaIRmLQBhJCvvMsJnY8Fa8R0hfM+g41jHKzvriwD0yArxbdj+eKr00ZWM9PCG/T
333
+ pnUkW33PSya+VQ4iADUTcD36F/5p0sfepsu1+tUf7MdMGERrRnNwG/xTAo47whrJ
334
+ 7QoIYWjhtiOREjImBjWXRgatT4uLuNsjwguPTFQklEH53mxunBago7qJLwJTFVJ+
335
+ hrxMuHAwYHxhdNKA18oVKVcg1zE3JTwHwcY/n8kvUXK6L8GJ3Cororn53ej4KBUb
336
+ vrsAs6AXtpwUUQy/H0s1ZkuF7r1nmUH/zGvzrPTMnFvtRA3yyXxpjG2mJvx0svwq
337
+ VAVV0HpDAgMBAAECggEAFb5zWte0oli+QRzSh2f0y7DHAxNE9sCZaEQlZ+0D6bLj
338
+ Va4poMwFtjBVEUP4itKNjC3rifHpMvbhELbrySTLIewtN3/CcvUiyLYLZCoRwq+q
339
+ 1W/wsJdodKKdoxy7BgadmdGLKTRrOI4kSCWZ3AURPjLJ10QXKnKnaGwfVzIOAY/4
340
+ 77w/gkoBUxKu0IIz/7lrR+P9nZNQgRQOTNM4Ihj4awoPATzxU8StJ/PHqBk9ak+R
341
+ Awj16+EYMqHC9S4E2ApqXuh5JFvPFDkiGPhysAKzTsVNGusQHdMbbZw+T6B0y8zq
342
+ cRutfJsiMszxfM6mbDozlFB3Bh4747z7h6disfQqEQKBgQDGeK7bbqNw0JuX0PZQ
343
+ cSbfV8izp6zITPcgkoHVkLYUCNAl1nRjajIpEAjEMEUdj3rIvza8peWhPVvQuwG2
344
+ xMUkuuosa2K6jEuBTE21TuzivRpfQaOlK1YOTSdysifDGWHe5hykzYePiqM1qbRS
345
+ u20OvX/Xvu07Bo90RHXVOSJEOwKBgQDASf0dJvdd5xswP1JqnwRHuEjDFTmKb9Wi
346
+ kPMeq+k5vZrxMhAxXauTjyG1kiS3TJV/uG9ftLH8Wlpk4k99r40Pop5ArDWehqMR
347
+ 5IfEvPXdo6cWVS1IfM1NRyqTag1LH7SU/icLdbkElHR+yC1wUB3mXERqPAjF2Y+c
348
+ qbhPaPTpmQKBgQCkTuTz5PSKQSmO1gAVOJfl7tbJZNc2PAGbha7XD6atj15C9PgG
349
+ FbTRKeUYBp4xiscryqGWLAGfKx0IAMm6dcyAS/3yKDTkG6GmuXTb1StnywY6Ni00
350
+ YFwuGtG9sqAYdLsBvZ+ZEE5aF3xmwMf4dhIjUd60zeu4IgZBSywCCfrEYQKBgQCR
351
+ 7ZSxswi3stPnYabiU5uj8i8GHe11KjovDWH0PPLaZxJXSW8Qh83WRiGG8kn68Zvj
352
+ Oc0MDM2mfctsFHPPJpMe8oK3AfoPPI403gJLRDwy4CfFww6CnHQR2ZhuF2XPRVh+
353
+ WgK3p7epyiA+txwEyEhosk0ZckYWIG3krsi5OyXiwQKBgCaxZcvbZd4oDC/Ym60s
354
+ rkfP/GfkGbMUMYEu+7T4VWaXRqhxhVXJBLabOzaRGgl0sQN9zGJtrBCKZO4Kznc+
355
+ SgpU0cHYnMVLwc0d1wUdoJvX1k7Q2hINuy2xK7iqP1M8UAIo4qx9GlIhah4c3+mz
356
+ biiy3W8TXzcBFVOybwpMeAQn
357
+ -----END PRIVATE KEY-----
358
+ """
359
+
360
+ SSL_TEST_HARVESTER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
361
+ MIIDLDCCAhSgAwIBAgIUa0HzW3fH6O0kNO3yGndcTG3+kX0wDQYJKoZIhvcNAQEL
362
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
363
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNloYDzIxMDAw
364
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
365
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
366
+ A4IBDwAwggEKAoIBAQCtlD5CM6r5C3//rZwWLmMHcIO3lDFfdSwrvONmMhwlkIDU
367
+ /FgLr20ZS6ny7DPSRVuU3jijL00Q6XZqpmmzsoN+RU6VITNuam/gB30E/WfF2yds
368
+ ifWtVpE9wM51V1SigEtAIviooNR/CrfXxaljw1wmReWjCAUP4MWJBBFGUymWpBlF
369
+ vEo+7VWZ5B4bfstRTZaFWRln/otMh8v3SOaJSmNafsDnulq1JXJz/i2hFfPjgfbo
370
+ rGp8bfCWpNmEzJSn+CY7aAyW9eKKR+unWzM7+PEnI2l+5rrq54BfxpMdfAFHlMK4
371
+ NpIrJNmnjMLm1VQpm2/RFxI3LP+IDedCJmWpXbRpAgMBAAGjFzAVMBMGA1UdEQQM
372
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBc3mZ5yN9pXLT/0Io6Ql2k
373
+ SxPSZc68538f/gjpnlXDxApiP0sk2RvAL3C3E3RCH1KeP0wjcRnOwE3J+BTaisGW
374
+ BbSQjQMnGm/zKtkwBaSIIjkKXSRCACEzneTMxPwEqCUgAWJMJ2/vzgmbZcQ7TxHQ
375
+ UZpOnDhjknCLmxxEk3cGk6+1SIAO9NQF4z4fL5grfQup6sBeyN+srl0WnUFWfBIi
376
+ d/pZHcUCKL+FmUrp6eCKGAFGQiM9TyJ62H4Cs/J0bR9e1asLOwSAunTB8+JnQa18
377
+ ug0LdcWQLjcoIMaZk5XIn2wlmFIsTqVXS5i2Os7w8tb/XtdxL+2Qi+Hk0oBmGffx
378
+ -----END CERTIFICATE-----
379
+ """
380
+
381
+ SSL_TEST_HARVESTER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
382
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCtlD5CM6r5C3//
383
+ rZwWLmMHcIO3lDFfdSwrvONmMhwlkIDU/FgLr20ZS6ny7DPSRVuU3jijL00Q6XZq
384
+ pmmzsoN+RU6VITNuam/gB30E/WfF2ydsifWtVpE9wM51V1SigEtAIviooNR/CrfX
385
+ xaljw1wmReWjCAUP4MWJBBFGUymWpBlFvEo+7VWZ5B4bfstRTZaFWRln/otMh8v3
386
+ SOaJSmNafsDnulq1JXJz/i2hFfPjgfborGp8bfCWpNmEzJSn+CY7aAyW9eKKR+un
387
+ WzM7+PEnI2l+5rrq54BfxpMdfAFHlMK4NpIrJNmnjMLm1VQpm2/RFxI3LP+IDedC
388
+ JmWpXbRpAgMBAAECggEACGCePJ23w7tNWy6q2Ns2Rlak1MhfNac3EYlVREpo11tJ
389
+ DH59VVsLHexr8GB8A8r7J40uGJog0w8hevY7JcQY2pBHwaTPkaWrbpmN7B660m7I
390
+ UVG7PLlv2xYiIMGtQQaGGztU2vagKt1+j/hnO3xjRymacqrha6nCfuFmYAmFeVKv
391
+ 115atZR/MRuDO6q0yAghUj1Vapb7DEKzzYdbHMPlytzqD1Th6jnjXA7Hd5Kfc2Lv
392
+ kei2eTHVWCzU53+K+WhgcAhINxtkHz0L5zoVC0SI6mGPTFTRXfvt7lE02eOPodfB
393
+ 1G2L3lilB/bVwaiXYlGeBH/D6jYBC5I7wTlOqILbAQKBgQDXSMomRZ8YFwR3mzdK
394
+ k/iP2YWu9UoA54/VcOrC+zq4PnYKQX2TY734lrs71BXEojsm3p8chKSsxjWyuaz9
395
+ UbD/1HaXEEwdGCuzJllQiM9JTT2rBTkg5HDhm/nbNaoboxBm7V1SwVEGy7mJtVt3
396
+ NOJzwb2/hX9T59ra7PpyAuJMSQKBgQDOaEA8vtpwiGa0aFPE0+ueehQHyyLN9M/Q
397
+ TfFPK2ZONu2v6Ws3PlG84i/2jCnyERaozEZqD2UF0RFCcmGtb76K+OSmtBmbJXNL
398
+ 01H9dhcbRb8VKpgtllffFr9uaHl5EzSpzK4BBUN8C9Sz7tZzQtNXq33fXMiFNzP+
399
+ Nn3zBHznIQKBgQDMoMZsrF51UmOPoHxkqdNoP9TeoQ4PYAsKUQMEBDIjMFOYmflX
400
+ oEXQxM0BKCzss1tQLejE/ZtdEiW2VOCGBCEeen+iRP5j5TacWUYp03Bb90w3g4Zy
401
+ qlBVUaGjaBXhoRQVEWdUIqX2tKwNpdFjtGPOrYfDRIvrYAVZdEj1F6Kr6QKBgAWq
402
+ ePDx8D8cj20uW/ZQNuyPv1MDcX4j1TyLly8sKs/E1Dt69dV7YXUE5HopGNGrRGr3
403
+ yIsKxyQkvAuN5j6DjcB02pn04asPmR2gvGRvxGycOoWTOMAvm1PlZPXb6lG3hD+Q
404
+ /cnLYjHahUk3Ki3ZzMFgVME34808WbIFvulX2zHhAoGBANYQhGmVub1/Q2dMFpnr
405
+ yoy0S3udcyoS/e+NqVN6uIH5f0YkoMrPhiayWvZY48lKCZkClvPcHwQmZspjKzqA
406
+ TXPR03c+XvrdhTkSEzqR7MRfYLkd8viJIVY5uRuDuEwFhCTR9oTJ3p1F4hnBUcPt
407
+ YB/7MK+H1kbqXiJzXBCzmRh+
408
+ -----END PRIVATE KEY-----
409
+ """
410
+
411
+ SSL_TEST_TIMELORD_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
412
+ MIIDLDCCAhSgAwIBAgIUfogbG84aJo97wy3P0ZHAkXShqO0wDQYJKoZIhvcNAQEL
413
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
414
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyN1oYDzIxMDAw
415
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
416
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
417
+ A4IBDwAwggEKAoIBAQCxBstxYtPbm7eb1iRbL4SZCF0xIueUH/gZ5nfj3Tbo9DIn
418
+ QcHVbNkr5XxH5MBtQcT8bgF/tgBkj7uuFTymT2EpBrtTbdLCTsZ2eMQIABOQ4APZ
419
+ NKDiYb6g95JC7vdmuLfuB6VyvlMCZ/Ffyvow+PCgpT7ElNjMiLf7y6mcvzgNKSLN
420
+ JYqrJCf7vT0a4W+isck6/fD9J1RUhE0Xkts5wmpwJQGsRYme2hNy/PmCcEY9rqpi
421
+ YOxWWeyLbdZ4nI4OH652JwXKUTijqCZYc6+BoXfjwZGq05WK5NhBZVnlYMd5ZFab
422
+ DnXGR1WC9ysv1xkFqpSfPlwSZdZcJzBnXXwhJ4qrAgMBAAGjFzAVMBMGA1UdEQQM
423
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCYInnIgvKBvmX65bVLmhNt
424
+ cEUickmBTKOEG4i1yovVcDPIPLGH+3p4Oxng+N9zJh6n4SyCeOou30tRuNEunHOC
425
+ PmixRUxM04iNm5lLLdS8dd+kErpX+EYT20amgbnN0HNDRi7+EANXTm2ld9HD7skb
426
+ M6lABrsQQdmepdNz6609G0HO/I9rdUy1GaXlwd2th21VyzKmmq28nIT7KidBoQNG
427
+ MhTjsnNrZekjW/k3sJA9nEhyERmdsApb/TlUV6A4ttQZOqPV3ClkumqQn04jLEhg
428
+ dBNTzK0UEqdVXrPRpJBa/gSkSsCWXjMhwY60pHDsDmnOQH0kLQ5KzPU7IF3x+l3M
429
+ -----END CERTIFICATE-----
430
+ """
431
+
432
+ SSL_TEST_TIMELORD_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
433
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCxBstxYtPbm7eb
434
+ 1iRbL4SZCF0xIueUH/gZ5nfj3Tbo9DInQcHVbNkr5XxH5MBtQcT8bgF/tgBkj7uu
435
+ FTymT2EpBrtTbdLCTsZ2eMQIABOQ4APZNKDiYb6g95JC7vdmuLfuB6VyvlMCZ/Ff
436
+ yvow+PCgpT7ElNjMiLf7y6mcvzgNKSLNJYqrJCf7vT0a4W+isck6/fD9J1RUhE0X
437
+ kts5wmpwJQGsRYme2hNy/PmCcEY9rqpiYOxWWeyLbdZ4nI4OH652JwXKUTijqCZY
438
+ c6+BoXfjwZGq05WK5NhBZVnlYMd5ZFabDnXGR1WC9ysv1xkFqpSfPlwSZdZcJzBn
439
+ XXwhJ4qrAgMBAAECggEBAJeSy8rv5ZpZgCKsfkCdNRma8cBKtKI9pT73+JtgI83e
440
+ mLrIMOE+68wMGBeuo5xo/fNtdVcWTMvNzdLGWEHGIdjw7KAInrbEoGV8Dc0T06zu
441
+ Qh1OVJrBOmm00MUCu052xvXGEkFm+MhMm3173DDmVZIXKuFC2UZ3oaC0xytxBtss
442
+ eo/VsopLA8hgjhXo6PEFErZA9qGCu50902kL0L0ZYI7ltVqvLS4p9te+AeFQ6uoL
443
+ aiC2ac5jjUqKWh9vEJFfsxzu4vNHZIAsoTMWlO38JOGxa3gh5RS/FI5a2lRr6ohn
444
+ ZT3NFllTEjBfH0jzj8re6duTtEQcbhEeykaK2BBMP/ECgYEA4IfDW/sr7E1GsNt1
445
+ x7lfr6MkV1Vvg01eSRY/OoPs+4YR0votS4aWbvkIBfHRhm1cBOiD3cXPVkMEf3q0
446
+ s/MjerEgR2hTaL6I9YW/2r5IwDsgc2pzxXUAvVdQVacmV9NQaKG+UcYQ4MshnST0
447
+ mkw/AMh2vGn+RqokaQnjpR7nkG8CgYEAydaTubt8jZoh9FqK4BSwN9o0CTvc38zd
448
+ eYDzmH6H6jf6Ejw5i/uQKcrpqEPq8fKCkPt4slCAPdc8SkqzCA/65S3mnhwECS3i
449
+ AZHWxJVIQytzs4kwXsJNgL5z1T9JGobfhXV5i8KitWlsWnsZtjdZsMnAlu0+e6Rp
450
+ aVVU+/BND4UCgYEAxLtQGnUOfEMNcIMqRPCQ/aT1f6w1RBfzSBi9F/lmGNDVJ0Xb
451
+ kDSB9QQw2nySeLWzjf1pJVVgIRYhh80tLgsZCDTQsqCfjMR93prtiq11szFbcqVQ
452
+ gS/OkRhDJHmLqCJYbwVha+ce/MgfUMCDrfqmrXn4R4ibqrEDrCFlHFXi0fMCgYAm
453
+ en/jMrkGDdJXUUOUgJ0vqKuu7vimudmnJkxKUCT9I/rKqyyVYToUnZh5+ai6w27c
454
+ 0PQrmmk4YOYfi6oh6Vn9gwiqL9EdJuAlSHZXN9Z0573BBnBwQD6iQqy2hMAdDIVk
455
+ Xgbz/AEk8Jo1ja5TLK4uo+fRXh1BWRC3ggsXlLI8OQKBgQCm3kD+lzjb79vGPHDz
456
+ kQ0w7bp4kn1g5tSBlSCL4HBHsF3OmZN/F+ZRtumDSrlEDiEWh+R2pCQ/HH0DdDjR
457
+ 7wE0a2jY0cp//+OEEK9tmzS6/hqQC/t8RHLRIxMQKO4umVS9LLNRD96+lcNGQ3kK
458
+ 4ft6j4a4gk8+6U8Kzn4VSjlM6A==
459
+ -----END PRIVATE KEY-----
460
+ """
461
+
462
+ SSL_TEST_TIMELORD_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
463
+ MIIDLDCCAhSgAwIBAgIUT43GvhVmx9CzguV2nwdektqBaZwwDQYJKoZIhvcNAQEL
464
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
465
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyN1oYDzIxMDAw
466
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
467
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
468
+ A4IBDwAwggEKAoIBAQDRiTszw1IkIr9n6KjMvgS/9I+p+La/NwfFPsIWkTE6cffr
469
+ LIi9H+yTMTM3tbNXM4JhvqdeN+c2mDAVjhoi+AAQH3gkpXitxD4ZjYzCCTtwd+q0
470
+ gpCKLPOmKxYjqCcNkmEc70g/QOs95HyDdvLL1G1sgMnhldGuc0a1HX0Te9nE7KkW
471
+ 40Etk6lhEKEa9o9rEjAL84Z6kizKELOtjgd5wM3FaAMB/UIhf+kDxB5vtAhsKewb
472
+ 2Uy8wMpXJW79cqfLxgjDhd7LEZwSba2Z+XRDD+B+NuC58cv8H8y6b69Rwjmya50X
473
+ K1gW5/aZA2+mo9NlSAMdlOM5ntgd2Cbh0zg4jDPTAgMBAAGjFzAVMBMGA1UdEQQM
474
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQC//83StmG2IlGISJqGVwSj
475
+ B+Jl/eodYO1iYuWtCfobI/WZEz7Noqtuth9U2Pjc/VDImy+w/x6XNPTTa0MgUnqi
476
+ /GHG1qRIefWrWp00C7fFbrJW1llYv/AFZfgYZB92Vr2X7RupnQOY2a/XwT8dzstU
477
+ ZPTNK5wV47MmUp+u7p2Q24ywS+GuQTK7IZnhQjP7ttKKBgdBp9evHuT4B3yl7qUK
478
+ JWb3nAreUSESWkumSXlted0sDQQ7ahilzHPkemRgJZotbQID9sV7WqHYMCRtZENX
479
+ 53jFAQFtxj7mjjacvwWs45XgEGsr37LjCBHUHujVEccfGXN9+LRrpS6pKiyJeMg1
480
+ -----END CERTIFICATE-----
481
+ """
482
+
483
+ SSL_TEST_TIMELORD_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
484
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDRiTszw1IkIr9n
485
+ 6KjMvgS/9I+p+La/NwfFPsIWkTE6cffrLIi9H+yTMTM3tbNXM4JhvqdeN+c2mDAV
486
+ jhoi+AAQH3gkpXitxD4ZjYzCCTtwd+q0gpCKLPOmKxYjqCcNkmEc70g/QOs95HyD
487
+ dvLL1G1sgMnhldGuc0a1HX0Te9nE7KkW40Etk6lhEKEa9o9rEjAL84Z6kizKELOt
488
+ jgd5wM3FaAMB/UIhf+kDxB5vtAhsKewb2Uy8wMpXJW79cqfLxgjDhd7LEZwSba2Z
489
+ +XRDD+B+NuC58cv8H8y6b69Rwjmya50XK1gW5/aZA2+mo9NlSAMdlOM5ntgd2Cbh
490
+ 0zg4jDPTAgMBAAECggEAH70guZOBcrXMtmmYgALcZ1MdG8rvq4EjbS43agGuKkMv
491
+ IXFKeRNH23fdYTflpXTI8BNX+L6RCET/K5StwtQ79jU+Fpb186RBH8/AHXgWh8+y
492
+ Pot0Z2mtsmLeZKJI4BZnHWHlWKd1updMgQFYf6V6ua+8ZK4z56/Qawi/dF8TOm+0
493
+ djKcpND3Y8OatslLv/HshAaXbRRTIDpP2WA+J056xmswlC4m+oJZ+qn9tNi7BA+d
494
+ 5rBSxXi81TG4tx3hlU08Mkbf9D9i3Cmgq7RQMYfwOcySqfslUq8GicOGUBF210nq
495
+ HuDY2bA9NLIpmZ42PArLRWXTptxjvU81FkHwRPw+0QKBgQDp1TJj8KQHkHjp4PlC
496
+ mbYp3SCycLFpK/O8TUsL/bEip6zMoOOyOPqtLXPPwWvmqzJg39vguKrrUBH6RQQd
497
+ w98CBGCCrwnLz3rnEEUO6pMJ21bqMANDtUZOvANkyD9vIGpBRsTt1JwKXnj3Ei1Q
498
+ qHdaDKNlVu/oKiBonKuSrVLnKwKBgQDlZmK62etR9J51vXUtA8IVCcnyCe+c5Sye
499
+ KB5FozECshePaqYAOZB9mMigM58egoRtFHn+PZsce5lMn7YVYsjxxIIQB+7FNcIK
500
+ P9JdTcGfOVrBOF5RCu8510Zay1QKHnRWgcxc8DxtP72Z+zvl1dQ2C64UeJ19LR+v
501
+ e0IKTO6R+QKBgHfvyaPnV0sl+E8F/PQDQaNhb5b3JJhsWd04zAh/fG7pEEH5ODE+
502
+ 9p0DFkb2z/CF2RZFXFN8hPajoET9R2o5AFbZheMiAuVOK5z/BFztRrQklAUU0WfW
503
+ QBS8bQUxjQ/j0Xxf3zyZ89uBr4wS/7lCX82Jc/nTyMQNb4gY7AwU6NP3AoGAfJ48
504
+ MClF7sWmd2uuhf+upWMl83h2VJMiw+AjYc0fSMmahux2tVSQK8qd4nlojVh1vBQN
505
+ mZG5+6UhSEDS15dMdho8VZ0ZlsR3Xr4A93LQJkEwDhsjEX+RKajKrXQbeUvGA2CL
506
+ tklDak3gIBAdH+QjXiDGNpS3aVLkDZ416AaW63ECgYAsbUnFFcjUbZBWo1eO94sj
507
+ gED0opmVfKY09FjEdnCv3CSCvU5lRHqHMZ8YXN9yJcF6IzkODAIbM6xGaERVZBjQ
508
+ Ba3A2mS91Ojb4Ub7CJ6HNKQy+KLCLjBcNmxk8g4ENIkINt07gZL0wlHUe1JDT24x
509
+ Urb8MwQ5SGZ9jZ+R336txA==
510
+ -----END PRIVATE KEY-----
511
+ """
512
+
513
+ SSL_TEST_CRAWLER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
514
+ MIIDLDCCAhSgAwIBAgIUaD0m6kjEe/kX8KV86Tm3JMOXw5gwDQYJKoZIhvcNAQEL
515
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
516
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyN1oYDzIxMDAw
517
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
518
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
519
+ A4IBDwAwggEKAoIBAQC6kaAaFDrrIxHCuID22AfMrV7fVrB9F5h0uQP5KSawigxJ
520
+ BHqs9gIjPi7ur9nFGxGFjh+cyFF7kkWbLOJpABEu6J1DC6+MPe67rnQjq3IEds8d
521
+ c4ToidqfP1/Pgl4uOfV0MJpYF77Vpc/P2SHApjRIl7wCPxBS50BZkPaXbobb5e9r
522
+ 3QSFpyLsvs0jeu1xp4w7DBdJsiHY/Qh3ekvUAH3A/tC/kQ97K9ZndgIQflW+OO89
523
+ FwWS9pKLXkYbKejhbaQ5D6wP2xcvY4C093B8kpaeMA9DCW8tUATGGTYaN6MUhNt9
524
+ d0LQZ0R58uolJW2o2Qv45TokYoHlsuGbDcc11ijDAgMBAAGjFzAVMBMGA1UdEQQM
525
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCaugeA7XZuF/JeC6T/cDGq
526
+ c5Y5pEBuhvNHj6aESm2FvuRIgXS6djo1YZF0McTiLVOtnUqDBSl1h/VH1e4n8zj3
527
+ MAVMPfXbAByexDGjbEIo0/aLmcUAAy3h/HQYmkX+Ge5Bm0MCszSbM/YqMPV30rSz
528
+ Gq/KfB8s8QQb7T2sS10VTlIBL54AjEgnyunR3vPjx0rqfnFRHdQoD7MdUwOEq3qE
529
+ 6FFzpmp/fUaValfF9FS8w4vDq13LUY7OhphmW8mJHJ6e7GcUxFPLKs1oNpsMMPJz
530
+ wd4te+SB/dQ8CH1o3xvvFirUiPNz1wXRziJSO6AqjNXBMe86qnELwfXohI5oxUl9
531
+ -----END CERTIFICATE-----
532
+ """
533
+
534
+ SSL_TEST_CRAWLER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
535
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC6kaAaFDrrIxHC
536
+ uID22AfMrV7fVrB9F5h0uQP5KSawigxJBHqs9gIjPi7ur9nFGxGFjh+cyFF7kkWb
537
+ LOJpABEu6J1DC6+MPe67rnQjq3IEds8dc4ToidqfP1/Pgl4uOfV0MJpYF77Vpc/P
538
+ 2SHApjRIl7wCPxBS50BZkPaXbobb5e9r3QSFpyLsvs0jeu1xp4w7DBdJsiHY/Qh3
539
+ ekvUAH3A/tC/kQ97K9ZndgIQflW+OO89FwWS9pKLXkYbKejhbaQ5D6wP2xcvY4C0
540
+ 93B8kpaeMA9DCW8tUATGGTYaN6MUhNt9d0LQZ0R58uolJW2o2Qv45TokYoHlsuGb
541
+ Dcc11ijDAgMBAAECggEBAJZNDTsVQyX9GajSNOsnvJjSrtSkJQiRwrt99cp7sXSV
542
+ sjH8zsuaYLx9sxeNSZY2KVZ72dHXu3UesL7DWR8X87/jnBXQSztjBXnjoCLAUtlv
543
+ 0Yk7cD5aGGskhg5JS5BYFvrk0OLZNl8t9o3Oshdejk5RFyCEJ6VyMXA2jcIPQ8vQ
544
+ QIHa98EnbtBgeW/eYEYLEpMvII9v47KfV9NsMYuLAe/m0/HHzORxo1cPO2MoMlg0
545
+ xJLmETf/r13LIh2SMD48zxDCCGvlXXibaUntFQhae03OxvFFnq3bisrXK1BU7aj2
546
+ Q7H6wS02+7uGe+aQVIuFSG1fMQBptBfJc6d+0INWGpkCgYEA2yFr6h+RzMyjMqsA
547
+ vMR66CHkPnu0OYa9wbam4iKImJgKKCGi+Sty9DSHmCvXyWtoQ/fvrytmVDTzXi0D
548
+ XvKhdoc141jojITsSIuRO0rHi1F+LUWaArVhNzQtZCEQs3qWDVipu5GACf3A/Elj
549
+ UwQW624ZckLNywaEI0K+qZGGXTUCgYEA2fWtpseMIFlHNY56Hx818Bxs11UuysP+
550
+ ebIIPEQ33qr9qxxvd9zI3H5RKorPVpygk0K8YgvNFr2Cb/zooDmvuXjX5t/QVjPS
551
+ a5OKqnMw030sIEbkKGiyaxIHy/uL1DiLvK6kJy/kBNJJ4AZRy+t6crm5YzuG35+N
552
+ 9N1bVGwixRcCgYBhJhUQzAQ4trTXnsaJ6dXPmk71gKRrKJhyDEc6VDMY67b9CcSW
553
+ ETQ6nhtLVIyraKnmEEK791K7nGoU44HuE0WQJeu3KlCXE8spcm7lyYZj9rIo4gWg
554
+ k8dQ0RoanSopV/y0WA2P8bbBNzXa47JcOKDsqXgwlvtjujTU6R9cT/8wzQKBgQCY
555
+ nzsY1RRfNoTxkLIdBtrbJtxkMIbSf0m7Z5nysYY5ypxUbFX1pcmU9HLbilXDfWvH
556
+ kmydb0wOR2eGCZ/PSnWtN1xfk4usQR9wKuFnl7+x6C208E8lqKJ+7SI+iQcR9QKM
557
+ ffH+ar+NTL9kOqieVWbp3Ple7jj0cCKUO0iPpiT2wwKBgQCMTSD04XOEcm1LBC1P
558
+ LxLYZgm0UC/Lwqd5exH9gDP8LT8KC9P46woAIj3jyTVVelQr+7YD5uarFOE3s48M
559
+ L2wuBOGt20Av7tQofrx+SoVi7S6yJOJ/bPv/VUj08+Sb1kq0fHo73t90GO/sMeEZ
560
+ 1ghMH6lVfEjpUpeZLj5iB+icmg==
561
+ -----END PRIVATE KEY-----
562
+ """
563
+
564
+ SSL_TEST_DAEMON_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
565
+ MIIDLDCCAhSgAwIBAgIUTYcm+E1jiGL7UEiopTFGmSwk3eQwDQYJKoZIhvcNAQEL
566
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
567
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyN1oYDzIxMDAw
568
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
569
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
570
+ A4IBDwAwggEKAoIBAQDD4xmVdRUqCRCDRebD9nds1h1mtyutoeHfruSn4PiEx30Q
571
+ YSzGRszSTvM+PwzL6jug6CVmlfWzLBC25unegeZhjlhoMkMkVavA1bZQ0sx2t2ll
572
+ wqFMhk0BvfQ0ftQ0BEgHpbll361gZGb7sLB0kuh1LhRE6uWpkg3WJT36DwzkCJ+R
573
+ YgAA63J11uLhMVk22bQ9UDIlmlL2Kd0M1sLrdPtF7h2wB77RirXpH9RxPilPWTwd
574
+ t63eHKetGMwmeCHP6VHWc3mtmnYCcEf851HXr/VYYdwn/Egbn5NWU9MkyG4U6Jw/
575
+ 7iVRvf8XIv6IGcwY+qB922OjrCxsHYCWUbfwiaFXAgMBAAGjFzAVMBMGA1UdEQQM
576
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBFYpf2hnFIOfEEKFkNni9T
577
+ QK//s9W2Bf2hwn59TC6tvpN0pIenfqZ5A/Evc8PnjaO8UY+rWsxRL2YZoDEABnQb
578
+ 3x0VfnZKQLKGju6JiVJWSn5F5Ilj2ntglHsAgQp4QBEMbIwfStW9AeaCwVoeD34B
579
+ /NFUoD33QM6E2yKuRetceeauBA+giBkSFaUA1jeSHfRGeWtuJmnNHvd9iA8cfrSg
580
+ gETkXKUyTYkS7Afi47oCMblmuy1pKOnQsirih8Vnic0Wn46bObLn8lt3k1d0+G0F
581
+ Nx37aAAP/ArHTyRh0ctfw99aTDgOm5v46NZNLPH9z7NPTtN0tz3r3C2nT4SUB+qq
582
+ -----END CERTIFICATE-----
583
+ """
584
+
585
+ SSL_TEST_DAEMON_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
586
+ MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDD4xmVdRUqCRCD
587
+ RebD9nds1h1mtyutoeHfruSn4PiEx30QYSzGRszSTvM+PwzL6jug6CVmlfWzLBC2
588
+ 5unegeZhjlhoMkMkVavA1bZQ0sx2t2llwqFMhk0BvfQ0ftQ0BEgHpbll361gZGb7
589
+ sLB0kuh1LhRE6uWpkg3WJT36DwzkCJ+RYgAA63J11uLhMVk22bQ9UDIlmlL2Kd0M
590
+ 1sLrdPtF7h2wB77RirXpH9RxPilPWTwdt63eHKetGMwmeCHP6VHWc3mtmnYCcEf8
591
+ 51HXr/VYYdwn/Egbn5NWU9MkyG4U6Jw/7iVRvf8XIv6IGcwY+qB922OjrCxsHYCW
592
+ UbfwiaFXAgMBAAECggEBAK/Sf3wvAzgfurqZW3A5ISiHZwxzDLlkvCDSElq9C1Pi
593
+ 2taA4nd1xRJf2uTcIthE/hCHTkqt/0M7IiWJThFx9x9JbQDZXHqYivki2enhy7Qj
594
+ HG9CKxVM1oHhxff4fu/Rh/WVQru18SC7/dOb3EZGNnA3U+ooDMwPVGwKMX7pU2C4
595
+ 6ofOzP7xqqmlsBA+oZ9ULCqN18bSefqHz0wrGlEFBeGyou+vFXLjnYNqejPri88T
596
+ BF49eEXtk4xK2ej0bNzoCuMSEgXOQ28+n4w6nCM5N5LPMWaQY/1sc8v2FsNakXL/
597
+ BUli4mgcZ2a0Vk90bJ9PM69arG4EKdORECU1rygXPUECgYEA530+XT37NfOLQgt2
598
+ ex4u8ZndpV46vZ/F/i/v/McMKCmuj/704+6hhpwyeen6dtRGuMJAF4TmW7kAq2rT
599
+ nonEueBcgAWudVoS7/gGO4FNr+dq5ckz6vqrkIu01BJayrjrCly2j9u0++/mSXkB
600
+ obH8C2SYaoPo7t7Rbpebb6vkCIsCgYEA2KDS4JG2/gj+9OOXoDzZpFHLvNbJdFhd
601
+ 6Lu2LYbn8Q6z4zBize0kXqdytUzIqNw2mh8Nye47lQ7xsvotzPkb9c+Yx+eiJyy5
602
+ nFmTlfs2h9E8TAbUkq9QDvC8cElTrfQz6n3nEsjd8ohbUsH3NlPvAbriIlfHUIcW
603
+ XkiioJIMl+UCgYEA0fibec3/r+cxuH1XQcOWBxVuo1H+bAOhfreSsjEGCOQN75Tu
604
+ IlVQdB339vdRdTmE0I95vRuSKz56qgGi49nI9GTa4lDE9rL2HG5XkN/vTI/XOYiw
605
+ LAKlXd4q7nWbnufuYh7IhWJfHmpy8s/st/MOUHM1gOAXh5vaUbr4hWlf1JMCgYEA
606
+ yCkZkGyzY9jWE1q0AFgZVY5KrWrc68a2xtOjCkAL0h2es35C3TmQEHGyOLkA852+
607
+ SfwFlp6sqRcM1y344dsPLbqq1ZM+renSexf9mWhsQ2RezXTGN98LHzLrOulWC3aH
608
+ /dRljWLSSUYa88XLcYRuY+/VAJyQyuR3E5kTw0APqM0CgYEAn2H7MD7O4llk911S
609
+ W016DVnG8tuOD2t3/thIYxU2YJYGnC/fcdGLzzUHhReveb9wRsDU/EHAeRJcaR8W
610
+ +yZ2oU3lQhN3WgXcQAdUrShSZ7CCX1yWPwF7HAJObuQOkJUdew27+dw4MFAzz6vh
611
+ ne+NcDLDQNP3iJoBJjKkQOldWDA=
612
+ -----END PRIVATE KEY-----
613
+ """
614
+
615
+ SSL_TEST_INTRODUCER_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
616
+ MIIDLDCCAhSgAwIBAgIUbtU04ozLF4XldtM40YPkF1DIMKEwDQYJKoZIhvcNAQEL
617
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
618
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyN1oYDzIxMDAw
619
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
620
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
621
+ A4IBDwAwggEKAoIBAQDnZYSeBOBGn94eiPAorxg9GdUoIGr4UUNxrtXTBmX8zZZp
622
+ LIu3m+2T+BO0ig6a4SZ7IxD4Ocbj2YP6sYl44F3fNXjvekvNzTE6LaeCvOh5myUj
623
+ 3h/cCZTMCV9Ja4CMg+xOCBLu+CjyWSkp5Z8kdYz86o7gKNh1eJT50a8pARqyNdWw
624
+ Q/YoYTTpfG80GQp31Zb3hzX9fl6dT6+gYuV1xkiPrSuxX4oZZ7ZH+ktIwiFoXGOh
625
+ sQu1cLaLHP0iImF1QCHh56RwV7j/RcgqMx/hdzz80rShbUost85ngl+0ss3jYm1+
626
+ Z5Ps8u8FRSdgN4H+HQL16q8OGrMZXdnRKUYEiCY3AgMBAAGjFzAVMBMGA1UdEQQM
627
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQDG/ltB2n5vOIPi90d+GikR
628
+ nGu1SR7ALScsbF4w4uIH8UvtMTu4nctlLJWPNuor3s7ylnwv0eMwumtuHYuIBSm3
629
+ 9umrUIGlwMedCdMNKpvQF/WkXevEQj1azfGmltta+ZrQBxwhHg069y8Ykb84SM8D
630
+ 5vEy0rJ+zmrvFYeKaxzAjA1sG4bjCiMMiwJ2rHXFjIFdQHMwwYcFQ1FeAPxEe/8T
631
+ PGYY561vOKVP6P86swKPOsQn+3MYR0Ehi8vdw5E4f3TcOkyxx5sPmiC/3pq0h4U4
632
+ kmLI+Ng3D1A3NzSel2J0mp7RiPmUhu//WZOE3G38+27jGp9GPEM/zlc1gL2EHN9w
633
+ -----END CERTIFICATE-----
634
+ """
635
+
636
+ SSL_TEST_INTRODUCER_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
637
+ MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDnZYSeBOBGn94e
638
+ iPAorxg9GdUoIGr4UUNxrtXTBmX8zZZpLIu3m+2T+BO0ig6a4SZ7IxD4Ocbj2YP6
639
+ sYl44F3fNXjvekvNzTE6LaeCvOh5myUj3h/cCZTMCV9Ja4CMg+xOCBLu+CjyWSkp
640
+ 5Z8kdYz86o7gKNh1eJT50a8pARqyNdWwQ/YoYTTpfG80GQp31Zb3hzX9fl6dT6+g
641
+ YuV1xkiPrSuxX4oZZ7ZH+ktIwiFoXGOhsQu1cLaLHP0iImF1QCHh56RwV7j/Rcgq
642
+ Mx/hdzz80rShbUost85ngl+0ss3jYm1+Z5Ps8u8FRSdgN4H+HQL16q8OGrMZXdnR
643
+ KUYEiCY3AgMBAAECggEBAI9LBnz0eA5EIcC2/EG1bEUqIh3fNV7gs+tKYY90fuO2
644
+ TFaFB2CEZvMixNEgTTsMAlBuvqt42/ltUZWFK6R3DKqU6nciPJ8NWla0vu7vHOdx
645
+ c+ZqP0B7jnFrvF4y/EAH0eXgihkCBBlPrXYMhCiHwu88MY4OvTzBlz+84cN6s5V3
646
+ I11Ui7buknOJMfKEcFkyklqvfXIGwbYniPUWEpmuZmv7TV9X+EYJDU2QrLbqA4Ds
647
+ 6c4KqVyjXaIdfk+ZbABTVLpQl/qhI/FcBRLhlrlP2nG+kWBgqWannrrmWF1Fg0D4
648
+ p/dn50Xqf3noA4VnMETUq7FMKXh5rUs8mphyYcZt4AECgYEA/Ls+Yyn8L5Zt0rcl
649
+ dpy2VX9e8wHmV2pt+HurkKrBMbvir1jvSElUWF8H9r9lwwRvq8QuCmdLM4xkWDoA
650
+ Dz09YESKn/ZTVh/q6CqOxT3GUqRdWfOhL+n31AO1na8TDoKbV0DTMi3rXnDPYD3/
651
+ AOwGS3JrT+KOIG7GZz0JlzJRigECgYEA6mOjQ+VZtVOwqiPk3+tAfRVwhjC0hCpL
652
+ itumyACOGKEDmgBLxkqXjzikDB/Zp1d1J1Hm+f4U/vLXuhG3q21A8hMCkqllIhzE
653
+ 25CUs0j3lzj2hTne0C9dl111vRquOiom3DUaROUePTzCGDGlN3hLzQYY6fcZE56R
654
+ wkdWeNIDgDcCgYEA5IKIjjDQDFb/RZ7DCNP5KKTZvO7izfc1J47qOQurUsSG2fSX
655
+ pcxnrt992+SCpinErpHa7x0mKZ2uvPb0RtMgQ4K1tJyMDTsesnyISl7oiqCCp2pZ
656
+ O3FY2yHffItnt57vxZyfWKecQO/PET3862B88Iqr7Lbzuu9uBLpziXm9sAECgYEA
657
+ nQQ4eCBpkzZIUAIRrguLvP+izNJN64fl6VSyCqOMjWU342+1U1Xe5/v6sYCYryjA
658
+ e6G7SNd0O0J1T9nUn8tlyYUAoT1HWa3KFohphR0pd62aP69/2xkP6nmaiR8Zfi+E
659
+ rtoICgUu17kfEVQYqOs2ZFdkUz/MFb+RR4PAotmVrMsCgYEAlcLcL82ILHLE+5IB
660
+ Df/QIDdw3quq6Xtn5u4+LlVHJclOWMH7imngVRIU21dKyxTrVwG/Fe7YntUGnc+Q
661
+ U4esDNFlYh2raWgsTa3oxrbQyPaq5P/Qzbp8QrUFW3eMwW3a95CjQRnscxO+1IN6
662
+ gqCQGe9wW+ZeGMo5qplhtJURjus=
663
+ -----END PRIVATE KEY-----
664
+ """
665
+
666
+ SSL_TEST_PRIVATE_CA_CERT_AND_KEY_5: tuple[bytes, bytes] = (SSL_TEST_PRIVATE_CA_CRT, SSL_TEST_PRIVATE_CA_KEY)
667
+
668
+ SSL_TEST_NODE_CERTS_AND_KEYS_5: dict[str, dict[str, dict[str, bytes]]] = {
669
+ "full_node": {
670
+ "private": {"crt": SSL_TEST_FULLNODE_PRIVATE_CRT, "key": SSL_TEST_FULLNODE_PRIVATE_KEY},
671
+ "public": {"crt": SSL_TEST_FULLNODE_PUBLIC_CRT, "key": SSL_TEST_FULLNODE_PUBLIC_KEY},
672
+ },
673
+ "wallet": {
674
+ "private": {"crt": SSL_TEST_WALLET_PRIVATE_CRT, "key": SSL_TEST_WALLET_PRIVATE_KEY},
675
+ "public": {"crt": SSL_TEST_WALLET_PUBLIC_CRT, "key": SSL_TEST_WALLET_PUBLIC_KEY},
676
+ },
677
+ "farmer": {
678
+ "private": {"crt": SSL_TEST_FARMER_PRIVATE_CRT, "key": SSL_TEST_FARMER_PRIVATE_KEY},
679
+ "public": {"crt": SSL_TEST_FARMER_PUBLIC_CRT, "key": SSL_TEST_FARMER_PUBLIC_KEY},
680
+ },
681
+ "harvester": {
682
+ "private": {"crt": SSL_TEST_HARVESTER_PRIVATE_CRT, "key": SSL_TEST_HARVESTER_PRIVATE_KEY},
683
+ },
684
+ "timelord": {
685
+ "private": {"crt": SSL_TEST_TIMELORD_PRIVATE_CRT, "key": SSL_TEST_TIMELORD_PRIVATE_KEY},
686
+ "public": {"crt": SSL_TEST_TIMELORD_PUBLIC_CRT, "key": SSL_TEST_TIMELORD_PUBLIC_KEY},
687
+ },
688
+ "crawler": {
689
+ "private": {"crt": SSL_TEST_CRAWLER_PRIVATE_CRT, "key": SSL_TEST_CRAWLER_PRIVATE_KEY},
690
+ },
691
+ "daemon": {
692
+ "private": {"crt": SSL_TEST_DAEMON_PRIVATE_CRT, "key": SSL_TEST_DAEMON_PRIVATE_KEY},
693
+ },
694
+ "introducer": {
695
+ "public": {"crt": SSL_TEST_INTRODUCER_PUBLIC_CRT, "key": SSL_TEST_INTRODUCER_PUBLIC_KEY},
696
+ },
697
+ }