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
+ MIIDKTCCAhGgAwIBAgIUS+xy2kGNomsBGfU0DEELWiHoSa4wDQYJKoZIhvcNAQEL
5
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
6
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMB4XDTIyMDMyMzE3MjkyNFoXDTMyMDMy
7
+ MDE3MjkyNFowRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8G
8
+ A1UECwwYT3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMIIBIjANBgkqhkiG9w0BAQEF
9
+ AAOCAQ8AMIIBCgKCAQEA9wgpBPIdclPot8ydp7C8EfKfZXve31sim/LBU9nViOTB
10
+ 2vZGWcnwmb8bBg9gAaCCeSRHF0FqEmU0hUMDD7AY9npBpIzA4SUjUL3++/kKlZa7
11
+ Yw6kWJoogcVXpCYvubeslpReXq7EhrrCwE83uqJ+gmz+pGkEaEoED42mw4xvNl+K
12
+ 8B+nfYJ9aYlErX3JjQGtby+RWUw9aH3xBDDZ1Fss3+289OQ4+4KV6jPXXKZgniD4
13
+ exnpss6LqdVhuRt6Wuhol7eoWl/kpcQfQ77fHr/8xTW1TsuFrHjsgJUXqGi73OuF
14
+ esOaijmYCLkgklocSND0LDeF9uzNjKEOXl86iHpOKwIDAQABoxMwETAPBgNVHRMB
15
+ Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDeZ8UXHc6TqZGkvrFIY6U6ycHP
16
+ YSH42ihMkqJApBYWEpb8wFM3vAJIOZV0BBYguat8/7gApRGiy+xnq1TFDJiMLRPu
17
+ Q1yDWbYXM1fsObgyh83K8ZNQ/nFr0w5o+HcShkjia6pWaNsX5OErrJ57iJefaADU
18
+ xnLvxHXPDvwvs9f1mLZIZgzYtv3go9oQVOCgeIKOyV7cFUAAgIeyOidcoQEN6Gvy
19
+ DzlkZdmRRkvvIddDG0kcURmhMJzqg3Tn3hmG29wzSbsw6LK9kwr7S9BKNv/bgxDi
20
+ DOLVn9LP8qDeRA7zQtbneTtcEU6saUQT8Q9JLyvGUjk+Qgwdj24M79L9s0MR
21
+ -----END CERTIFICATE-----
22
+ """
23
+
24
+ SSL_TEST_PRIVATE_CA_KEY = b"""-----BEGIN PRIVATE KEY-----
25
+ MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQD3CCkE8h1yU+i3
26
+ zJ2nsLwR8p9le97fWyKb8sFT2dWI5MHa9kZZyfCZvxsGD2ABoIJ5JEcXQWoSZTSF
27
+ QwMPsBj2ekGkjMDhJSNQvf77+QqVlrtjDqRYmiiBxVekJi+5t6yWlF5ersSGusLA
28
+ Tze6on6CbP6kaQRoSgQPjabDjG82X4rwH6d9gn1piUStfcmNAa1vL5FZTD1offEE
29
+ MNnUWyzf7bz05Dj7gpXqM9dcpmCeIPh7Gemyzoup1WG5G3pa6GiXt6haX+SlxB9D
30
+ vt8ev/zFNbVOy4WseOyAlReoaLvc64V6w5qKOZgIuSCSWhxI0PQsN4X27M2MoQ5e
31
+ XzqIek4rAgMBAAECggEBAIfHjnRPd+v9Pu63ovgm5lifGQm42jm+Z/l7ptOl6f7C
32
+ beMidmyn2H1JU1szXDvIs65OSFz58YmG4yVUPfyDeFURwb7mNqYJua2JoPtyWWT7
33
+ YqgBxkeFBDq/83ogGx9jW5OwnWZBfXfoc18sq58D7bFWo2hO6MNB25WI8F6PdBlX
34
+ uhtGtw67JwXRI9tdBp1sTRwQQqjaG19OBwdHQuE84VBBS+VXt+dOBS0JdkCfFEW9
35
+ yIsAFRndIfBKzAGGFZxtabNplDHN8IU52kU68GT7GqWlKxr6maAn8ycvs7RvjL0k
36
+ B0uVN//D3nDmDIkw6+fsHcsZ67AhkUdzG90JAyOWTfECgYEA/X2lyNnkqfYKFBeh
37
+ 47HjiY53hqEBlc6AOCzWZHa1E+12Mfbcyp8Lcto62f1oGlbUDlTIlEc04iUFCepu
38
+ 9BxccVuLUokiz8vXK/rfx1TOZnJRmKG6c5WGktAJjkoWp6PnjgFoslJ8E77EriZX
39
+ SHEOIOTL1arMA/uS+ZF5EYIqq70CgYEA+XolQQ6+EGRUcBLcWlUpsSS/1wgUuhj3
40
+ Asjz9qmtwS9ISCfcuYskpwNq40okEpee6RehdGRZhJT4Ks4TiTm8O+izw7wosmoM
41
+ Vl+s80K4PPyER23nYMjcS7zyiSd9du5KG35wnThaODLIh/mcMq8KAjta+24EuEaW
42
+ aH0ZGa8ZzAcCgYEA1zjF+Gkf3zoZxoNmHSec8961FuY+rU2dyZQwFy4+ggPclYFu
43
+ Zs5wbvxgeVLQ/4P3GY/cmSB4AwXBaHDV8Ybe6hP6j4IFv33nW9zuAJS9hXfMVZYC
44
+ 8z3h+2aMpnW7FGxyHjyOAtFLrYwL+3xsIQJ0J3N6qRgRjdQcLq7XpwjoZ9UCgYEA
45
+ miC9bWEXSXdCt27flitxM5DZuJa0f3i2+pB+MNEJmQWGKZX/Bt6RCWHSIpQGjzn/
46
+ IlDIHel1aLTEUWW5qhjyUyzkCrRvjDJ6Zs57QlrhCkST0LF0tlXBzETyrouoNtbn
47
+ D+9g0bEkA/5T57Xtq15614AmKJoC7nolqG5JGJYWYPcCgYEA+/mnN9vovnX+l7Lq
48
+ QEv4qvL2BMQc3WFb2Z+/grJBuMEgN8EtI2MaOu0ZAI3eDSj8SUs/4gVfGEn2T4qU
49
+ VRmRAAVgxHdf2nXKi7wEvx44KMlb6aTYfs+uRQW6G3ymZ+AysIBVwqd4b5ll9z5u
50
+ +CFwKYdV42KKgp87D/v9+oNDTjw=
51
+ -----END PRIVATE KEY-----
52
+ """
53
+
54
+ SSL_TEST_FULLNODE_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
55
+ MIIDLDCCAhSgAwIBAgIUcVyMMiaYY4UmD0lc+D0TSzOgx6AwDQYJKoZIhvcNAQEL
56
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
57
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNFoYDzIxMDAw
58
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
59
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
60
+ A4IBDwAwggEKAoIBAQCq6EP4SllvUyXjblM/2V88nxkpBwgC9ta7Ndd8pxIZR4Oy
61
+ lnNYiaes3gTVurf7HMAIZ0wHnlzRZghVvpZQ3eKGR1ETKYXaoRzlgwa1uZKGn8/a
62
+ DBU2bhioG31zYIOZ/QDf3ZcUR5JkcybdpY+Yj7YGowRkLT/GGN+5GgTA7tXJRWJQ
63
+ lpHNaIjFgjj5fKB+xXck6OhVHftl+rB2ZPrVgWaXPDBWjgpF1SJnxsbmOK9o4kB6
64
+ bw6zm2wuByZrOYg8ckuIqbJhDjINKesfcyb9qSk77h+8ILj9b11OzZUfX7PhvgO1
65
+ +W9se/RCYtfGgT4nSh9No7l2vA/IkwOnZOK7nBgDAgMBAAGjFzAVMBMGA1UdEQQM
66
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAHcwPIii2n0DabvcPo4Kfz
67
+ iiHQfxOxlnTovNmI3VIWNYoe+ElYkuzKUlwbYEve0dEJwu6mWazIEo+Qexgv1Cs3
68
+ Yn7djsmsC7q8pOvSmw+3t+6aOXGzeANcFUPJTgNIlxA0sucHoWwpROLsndBdqVWQ
69
+ LsV5IwgLJbcUt3tjaIsqfUXabqJMm/KleCd6uDzOuFlW7E1jdUyPomvbOKgc/jAt
70
+ /AxQimzkMt2uBRH/2IyOW1IS+035AxyyCfZgyhJIhf0l5oA6IiIvS47utLJ/DtWb
71
+ 93+WPiBYIgNofNr2qGrDtK8Pm6BjjJtBlFvu9gNcHn0E2mC6TKNg2ppFNxXdX70Q
72
+ -----END CERTIFICATE-----
73
+ """
74
+
75
+ SSL_TEST_FULLNODE_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
76
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq6EP4SllvUyXj
77
+ blM/2V88nxkpBwgC9ta7Ndd8pxIZR4OylnNYiaes3gTVurf7HMAIZ0wHnlzRZghV
78
+ vpZQ3eKGR1ETKYXaoRzlgwa1uZKGn8/aDBU2bhioG31zYIOZ/QDf3ZcUR5Jkcybd
79
+ pY+Yj7YGowRkLT/GGN+5GgTA7tXJRWJQlpHNaIjFgjj5fKB+xXck6OhVHftl+rB2
80
+ ZPrVgWaXPDBWjgpF1SJnxsbmOK9o4kB6bw6zm2wuByZrOYg8ckuIqbJhDjINKesf
81
+ cyb9qSk77h+8ILj9b11OzZUfX7PhvgO1+W9se/RCYtfGgT4nSh9No7l2vA/IkwOn
82
+ ZOK7nBgDAgMBAAECggEAaOQQAyyuYxKm6ERnt4ITX0NNz85O7nLMKy3KSOjIxNcN
83
+ Tufjdu1VCVVhpkLoc6ebfAzZrrtUv/ddGjLUUmE7i6ntalNLoXjMIVgfIBz6fsFK
84
+ ccqEollDrLjib5NGcZXDmaGH/ZxHjnrV2aao0LsyvjQCl/DleRD/Db2YOUjb0KBR
85
+ k4KD178M181wdQteNoG8hPoRyvcg5eX930HN23IBmiEcK/mbc+y/tyIWMMpvWdjX
86
+ 5zpzxZQVRiA9DPpJRubua+0uIfWBUG4SODDEjpHCFw2oRVjXX407yFVwdO/B98Qg
87
+ MxuftbYvie8mxTo+Ue+zFnHk4fIkg8uYyLciudspEQKBgQDeOtn7Mxo/5565XazK
88
+ Nzeahgr51srOT57CToQFCxRPK+roI+8hlcvkydyQaPDcIQIgrBkbSAqmHb5joz2H
89
+ ix+DZbPsrJ/KCT5OiUxTbUDDyZGGRZEKzTX2GJlsKs3KmJBrgGZ4Vaj67KNUNp9J
90
+ EmpxMhxVIdqh7JGf25Ehgi859QKBgQDE4N7/9kHH2W59FcxhHo2gSqiT9+wry45G
91
+ vn6X5B1mKYCR1IOYa1jj+j39MGDp+bQLSSv2jSjBuLjcXASrdkvI8h68JoocKVk7
92
+ kxCb499FgOz65mGsBZo9Vb1DRvp6Jh7xfC9XD1pHbcOVM9fNXWSK5bCwsirf46r0
93
+ Lum3apl3FwKBgB8zIgFrdkb8jMM3jJfDUtIl+YqEBmsasI5VGaHfoVVQNCWtTdho
94
+ QHz5fjbkFNTC6ZqOruOupJgX2vAALhZGiQEYmT8kKTbjP1UlX4ri7tHODdlNEQT0
95
+ NJw9beTKyaOk8bm2CCzi0duQt4mONaS7qigEQggNvbU4EmXgHKsYrOq1AoGATQ+H
96
+ ucB19veQW72QheMjpD4UxfYgpvPB+MbPXjyXlUlhXbNE3wAFhxaH9PZeuLZYVqKJ
97
+ ZrPR5CGdmgMagNKIz1qV1Sdwn50/pCXoNlx3JAlWuM48JMz8lk1dC1xY5j7Nlc/5
98
+ 56XGvHamO1xTd7q6g/NruX3Dcmb2nyVNrdE3yHkCgYBQC0bs0ndDcIJSzPzk5RoM
99
+ aVBU82sqLUEEbkoRkmVrafzaqOdR05hFbHVz2Cv073hi6S6vdVa2s0qnGePAnH4X
100
+ dqRb2sfAQTLnG2UAluLWZHv/W2GA5tRLvc+5qlwl6p7Md+XiKvTdhQdIAl5vB5+j
101
+ ngHm3mk51YQVAtLYCSCBIw==
102
+ -----END PRIVATE KEY-----
103
+ """
104
+
105
+ SSL_TEST_FULLNODE_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
106
+ MIIDLDCCAhSgAwIBAgIUIpT5MM70VeIvnygCEHRVsL6Aq80wDQYJKoZIhvcNAQEL
107
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
108
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNFoYDzIxMDAw
109
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
110
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
111
+ A4IBDwAwggEKAoIBAQDsxtOxdud/1pyMnhIdMYyqWmH80gO0Afp/ojKApcqzV3aB
112
+ KBFfQWLp4hc+CwykpAItx3vuTNXn/dQFxzC2NXrmq1OlPiPUcxorzctxqDNdoXlj
113
+ WTtxjkC+kxvvA2d7hgl+Huz3JxTWWMt+fM8eLTAOdVpPea7unW5GfQ4TwhdEMsGQ
114
+ 4AmUylw/vjJDUaiOHlKwwD2c4EakZNd35pCtRZfNjM3CF9BxdK2xysWp+xoOIY2C
115
+ G61UFfaXiVK+XkbZB1g0+nhNEsur03gFXkFEVmetXZvpfTvQ3J8a3f/sguzLqmYq
116
+ spKleR4utiP3llVrgnKPWpDiMvsx+xRbMlbSUMvHAgMBAAGjFzAVMBMGA1UdEQQM
117
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAV6jnHn5x8uYtbM9jN3cqQ
118
+ FK0OrZPSDsk+QJt1I0U0+HF8j2jMZ1RTxRhUCnjCoytqbh/fT/Xk+8s0N614lvja
119
+ 84fmW8dKq+asD2mWrPZeEgpipk+fzthUOrovNobAWtpdEqjKWEvQxMOICijEXFbv
120
+ 95V4kZS7JN+s3jAf5nXOK9EhGVI9214UyGNZZU/nzFKlOLcZFhGBibUAT7oA9bKi
121
+ BLbCPI4/CIdUnwaK7y8xF9z9KL+A24ZZzhLNVC35gl0zESgVqa0DN9XQ+GP0qC1S
122
+ 1Z6PF4qBDeta+3R28PtfPIiNpYJ6uHAOT/iDmIWBKTGC2Y6NVs2diNZSOlZXSzN6
123
+ -----END CERTIFICATE-----
124
+ """
125
+
126
+ SSL_TEST_FULLNODE_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
127
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDsxtOxdud/1pyM
128
+ nhIdMYyqWmH80gO0Afp/ojKApcqzV3aBKBFfQWLp4hc+CwykpAItx3vuTNXn/dQF
129
+ xzC2NXrmq1OlPiPUcxorzctxqDNdoXljWTtxjkC+kxvvA2d7hgl+Huz3JxTWWMt+
130
+ fM8eLTAOdVpPea7unW5GfQ4TwhdEMsGQ4AmUylw/vjJDUaiOHlKwwD2c4EakZNd3
131
+ 5pCtRZfNjM3CF9BxdK2xysWp+xoOIY2CG61UFfaXiVK+XkbZB1g0+nhNEsur03gF
132
+ XkFEVmetXZvpfTvQ3J8a3f/sguzLqmYqspKleR4utiP3llVrgnKPWpDiMvsx+xRb
133
+ MlbSUMvHAgMBAAECggEAY4fs4xOlmsJ/SkkEOkti4xVdTWaG8ftG7rIi4ptOyvbA
134
+ NOi/7LfSuZg1xvnkFa1v0QijGvgnjv7PSqKB4oY2pJJude7aJus/nBxFIgDfnsNL
135
+ AK045LI0myfBvUZEENO2V9LuL7K4+qWW3RPgCMJcCifgj7oKA/ofqffVnA6hsyOH
136
+ 5I6yB9xoKJKynIPUPCeTG/PW1VGsuC/hEZqDLMIRQ3TMlpBO9OeUGFI69nsT4CA1
137
+ rSC3aVhQq5J3ebwev/G0ooDKi0VlmOSQj4AaMrd4vtLbMvbJpjIm9CYanAbBx62L
138
+ airmzK1ZddEStoUHGO6wXVjHDif+mC6+sBL7kIOUUQKBgQD47sqhjHmDUkQ4UIWn
139
+ J8NXJHezVI5UF7alAh7upw1u2sMVC7rbgy9hK9g2y+mVImxsVQI8hyrMR/4EjOBB
140
+ DXvINpxzNmeTms3dW6tT3FFoaNlMp4XvecRsOFFeYgmXEK2RxeL+/MNQl2EC3M3X
141
+ JMeHCDPtK8cd6qpmQrA+MQajuQKBgQDzf6+9l8w5YmMdcaUqPZwCYeQsaspqXmXo
142
+ ekzE4ypqhVvH+gOC5As/m4fxNCdyQAlXIoCSzSAmsmy7iWTkIK3bGAxBIuX6F4Zw
143
+ 366xWbGJXtsG/ccLsTTA2n3/Xc0lYvmasvoI4QMiX+qMX0MjwhJqb4vspBiT5M+n
144
+ iXGDLHGrfwKBgQCTykm5Qco+wg/Ik13WUNAzo24BpRjfKjkAnFK7A6kBAJZDn3Qv
145
+ sSHnAf3bApNKPGa8pneucd1h7PgNwYm+dX/g7TNTX6B8zLKeUjdUkYAvidhBH1Bw
146
+ Tg3k5kbAz1m8O2WhHyhWlMBsz4MEDQ2URrzDGYair5QG2fSSw9MZCUhU2QKBgD5c
147
+ JRXZGmRX3ipcQIBg5uN1TopRjyVOp6qyJ5cE1ogRP0Ant15+KKNRoa8UPEX2QG4g
148
+ V+1Au0stxssAlOYXuG6z6e+EkIFMJRIjNwoUfnM/57gSpjdIWspJKpuL2k4I2wPT
149
+ clVzyumyxs7MVtWBjlXT23HvVJwLrWKqwHdnmnThAoGAIOVXvCHXlD4LQpJHboQT
150
+ 7oCP4Jofy5FKgM7vTu9/5lLuirDleK+XfZhAcVUOKbhMXdTJgm8JEqa9Iw02wApz
151
+ 2EUFTlvdOUEzBrkLHyX586ZiF7142w/wE2Zo6sca76e9n+iR7junUdcQSpR8/DmE
152
+ 93CjXWPBrmVS1IlmEtCGFP8=
153
+ -----END PRIVATE KEY-----
154
+ """
155
+
156
+ SSL_TEST_WALLET_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
157
+ MIIDLDCCAhSgAwIBAgIUBOIDJICHJA4JiPMdTj1KC19GQOgwDQYJKoZIhvcNAQEL
158
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
159
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
160
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
161
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
162
+ A4IBDwAwggEKAoIBAQDUjguITn4XjS5HDyHEP5Gmq+dgP1dxpYLMDWnJtHZatsYJ
163
+ 0x/rnEmDTReeQgiCbISO1oyK/TZ/L1IfzoRTm///uNns8uBnku2VmUDaTUd5K6ws
164
+ WqxN3YU+h3P5de6otb0DGkayANr3bMy3KQqGm/XxQB2VvXuo4nzbB4Tk5jDO6vtk
165
+ lG4184IbY+08nrj41L3YNCOynSnRDi+1ipfc/hrIKuCA5Giuf56S02hHapjEw8+W
166
+ Tvokx1drAlcJkFBLDVuPd146L7klCAhENaIYxJmoqLme9ZNOta2jmSEpeIHbsw1x
167
+ HPJNi+6n/Kh7k8Lsp0fE+jgQfPDEaqOXsnLCZOcxAgMBAAGjFzAVMBMGA1UdEQQM
168
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBXHURcU2ox80IFiBq8xEDO
169
+ cmHDZVOrQqpmOdygP+q/JRFoX9jF6X0nR17DBfDedgBz1ghax993nXwGJswvs1K+
170
+ 1DsTIKxO2HJefd/5iur6mxLFF8RXdku9as1tfNx7CZMm9WcML3XJu/u1/E+JRUFT
171
+ +QdoAX3+GnZGY6g+2MUSo11+3Ide9aaHvRUVDIXxqxDOZgLvy+EpIoQU4lkL7cuJ
172
+ CuFB0LYM9FMih1BX1uEu3wnCRhJq2nJuIObMEU8wQj8MmgPZTcJh5tyVR8OeDZ73
173
+ CACnvjXydwYvFmcB/NCMLpolQxxgrpYKrz8dx1NN8mZRNb+HUrM2tiLsWKAdFEid
174
+ -----END CERTIFICATE-----
175
+ """
176
+
177
+ SSL_TEST_WALLET_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
178
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDUjguITn4XjS5H
179
+ DyHEP5Gmq+dgP1dxpYLMDWnJtHZatsYJ0x/rnEmDTReeQgiCbISO1oyK/TZ/L1If
180
+ zoRTm///uNns8uBnku2VmUDaTUd5K6wsWqxN3YU+h3P5de6otb0DGkayANr3bMy3
181
+ KQqGm/XxQB2VvXuo4nzbB4Tk5jDO6vtklG4184IbY+08nrj41L3YNCOynSnRDi+1
182
+ ipfc/hrIKuCA5Giuf56S02hHapjEw8+WTvokx1drAlcJkFBLDVuPd146L7klCAhE
183
+ NaIYxJmoqLme9ZNOta2jmSEpeIHbsw1xHPJNi+6n/Kh7k8Lsp0fE+jgQfPDEaqOX
184
+ snLCZOcxAgMBAAECggEBANAk3VQ4kS+c+DFrtwRHv+i4NBbDUG0gyAnsJKj6CGBi
185
+ 1WGvlnWSEUb7ymIWheC6RcDehrhgp+o6O7Cb+mcpv7H6oaVwXaHvdqrlbWWZAaG9
186
+ y5ePn2WMxLtrx30FKJWbiqEsLQiI3+Qlbf76uK0Csv/xakdFS4AhcmTGYzQH2snz
187
+ 9s9iFwrpx2DBXT0o4pEvkVWuZVAjM2UzcXsRqQItVNod4CU4dO3bhdTkS6FX3Zm0
188
+ eitA5S93H/CNZMaiw5nGz3YNLjeBL9mzNSq4fmZ9tFPJNt178EQpIMTbt2BgNXa4
189
+ n0W5R5MlwmXaSO4pFQ+uFl/7QWgKuFwCHOAkiNW3cAECgYEA8n8AdakQ+Wnm/hHG
190
+ FWvBkYdvBpzuTPNppSpLevi2DDyIBvuIRkVUPJWsziBex9op51ShvFpUxS8fdqOU
191
+ gcXqdyc0PQju7iN9/qVz5XUepls6zjFovC7OWt95x9Tok6tD1SeFiTXyOlKHMyyg
192
+ GXaZ08V7xBkKW+fpQx9do52i3QECgYEA4GQ0RyEGH1OazbzbobY9kdyWn0lWkJhZ
193
+ 3GpbX9fcyhO3hPyBBRIZt4THeJ5j3mioATh4TVGESeIhDyxC12Cdm538sP72atIK
194
+ 1oB2QM5IK6UJc23TgHzih2J3cseR36pnn/mupy3ECYQLEsVpgdTp4h4AyHKgXHyB
195
+ Rw8uMi9GmjECgYA9syjHxzulale2v4j5/E/lGmOaeCV9+NUhjDBmWo/fbythM3DK
196
+ CGvVenPcgon7KbxNus/oH8e/4CyOQDLSDiyJIrV87h/1AZzWRPzHHlStGTtOKW4v
197
+ q20f3AqdWMPQhtwciRDGB67ZPhReZfVaZT3gjzfdfk2PcuN8C6gEsGA3AQKBgQCv
198
+ NQ6sy1hgdYNWSbSknAuPLNJfJYB1/r+Ln3Ahcgdvsd2F9TM4pl12MjMeN257ZvRn
199
+ n5QvqwrENdDibAj06velXsLD4RC/b6oOutea2nb3vTGX85VFqj2mwHfMI4//OKsY
200
+ +ngpCU8crwGGcqZjPcAxUoQB/56/GGhI9812WfuiwQKBgQDL8d69OdN9wKfpNnJg
201
+ HPesd9nyZkE7UjqDJXK1w1A2CbPZk8j8LGyIODvw9KPKkpJnU/JgVz7l0gjD7TaC
202
+ 6CWtOciuvFRsantzLbpVB8TAYuNqoUdmmVw8VLhb4XPbFUaeS/axDCHe1KKFOHF3
203
+ eFAr2KwjeIcF5kHccNakZDNEyA==
204
+ -----END PRIVATE KEY-----
205
+ """
206
+
207
+ SSL_TEST_WALLET_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
208
+ MIIDLDCCAhSgAwIBAgIUN7Hj/9zSlPgvmKSmTRU0Kd3ok3QwDQYJKoZIhvcNAQEL
209
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
210
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
211
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
212
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
213
+ A4IBDwAwggEKAoIBAQDgmG/ekJTb+4NZslwT7MXUZGuOOId95dTgXWrev88flfsE
214
+ +lEl1MvVKQLVi3F1I/mxZujYbCW4bRqmwEM/jwpLNxd6lzQjGLoePQWTURCBdnAY
215
+ RtslK1eetPhKRMJTTzaH21prkEEEwjqNb4he91O95VMApYSkEX1vOPd6LhxW2X5E
216
+ Z7rwZzgL+qwKtQy0VdnxYIcBnEXIKanNodC3vR6BRTU8vBvMM1wtxjKAAcs+fQVY
217
+ 6eyBu3Z450Fo2Ge1+orDgLdN1qSFEDw/DU98V7Xo8CzEoBV0vRxja7VU3kRqIMKk
218
+ EyVwjD6QBfm6CadVC0+vj3B8sbFF4C+w/gkZUkodAgMBAAGjFzAVMBMGA1UdEQQM
219
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQB0UQbCG+es9N/hKKbzG6+P
220
+ nXbd/c8LB0iJIPZ6xyPWoZsyzPmItMt3KFnYko7EbZ083Uuvfy+IyHSPcxihxQl4
221
+ qLGvjxHG+relpKexwnhYgRWuW7d8xI2WMjDT7Xs6q6npbCQjwpZXbKxe2Sr/WMu/
222
+ HitB3RwZ/CCeQL5oh8rm7TRWi6boqJXG6Yx6jjPRrs+f+V7deXNxHs2eV3RUKdBp
223
+ Lc6IiNoTtdkZm9MS+xsucm0HJa/Mf0/Gbos5A9oqB++q8FR18Rg7cEt6oTyPjlBF
224
+ xq/9SRUCLAeaIVufV+Be/bx/tX117/MUQth3cqSqlMkPfvyIYmZFbJbr2wlyQ4wS
225
+ -----END CERTIFICATE-----
226
+ """
227
+
228
+ SSL_TEST_WALLET_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
229
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDgmG/ekJTb+4NZ
230
+ slwT7MXUZGuOOId95dTgXWrev88flfsE+lEl1MvVKQLVi3F1I/mxZujYbCW4bRqm
231
+ wEM/jwpLNxd6lzQjGLoePQWTURCBdnAYRtslK1eetPhKRMJTTzaH21prkEEEwjqN
232
+ b4he91O95VMApYSkEX1vOPd6LhxW2X5EZ7rwZzgL+qwKtQy0VdnxYIcBnEXIKanN
233
+ odC3vR6BRTU8vBvMM1wtxjKAAcs+fQVY6eyBu3Z450Fo2Ge1+orDgLdN1qSFEDw/
234
+ DU98V7Xo8CzEoBV0vRxja7VU3kRqIMKkEyVwjD6QBfm6CadVC0+vj3B8sbFF4C+w
235
+ /gkZUkodAgMBAAECggEANZBlbcExn11WsDe3ehEIBWWFuT+GIOKFaJUe/czlCvVs
236
+ Dn3ciJc9nbLQODmvb26LCGIwuhzgyiFLL+W+pBPrMpELCnOxPYWSLdAD2mSE+TtT
237
+ 9JZBgZXaqcEjTiMj7VaA/Nm1sN2QhCAGcuDctzlpQWrF5uuSvMZnEfWWIA+LNrLp
238
+ 2zw+wYY3sAB4Yd1zIvigYiVC7H+NuIZsHNQ0EmYPeq+ZuPKtzQnbBjIIm2ULIxhR
239
+ bpnjbyJEjxDO/XAHMCacSgoeUWewjC/M9FRKUbQJ29bJyRc/L0x9amOYyFCiztTk
240
+ xnAQJaXRoX0w9KQtLG7J95VbDj+n205ZL995vIlXCQKBgQD3FT0YCAXOlMcT/W4U
241
+ 2odJ9DGq0RQuj8WzEFw6xEnJW87nn6ZA37NLRS12JAnuzhXPPlReueEbeqDG1C+C
242
+ 3qCuDabuk83lR6QgM2xCgMzAwsDwG3bjy/DdMttJ7lGfYfngXUy7F+jEb+xMynM0
243
+ CA25z1O4+RGiTpf6ex9t+I9BewKBgQDos3CS5KFVtZG7lpl3y3aFVIU5Y36WYjgw
244
+ eGkMIVd1PInaTFTeTW90+2HSL2QVTcmS00g+2d/dHfZR/XeVZrvl7/S0dSUdpizW
245
+ Cl0qoNTVPs69TTGTTPN6iCyFzflyXVvsvLA6n48lfcX5CMrdjmAMScoBSmLdngwW
246
+ +LuxXsETRwKBgQC4trX/my/MKklR1mpPSLdPQDFJRBjUXkMsBJUOkeOflvTtD9sY
247
+ MKQ3JzY/Vd3fG04OqsgkMM3q3xgGzGXgblKtDCO5w+FvAMngENFkPinUCUR3u/B7
248
+ h+E/XF+3u2RlxLcrVlSgodUv1YRQPCE3yrWILUinxfu63QqdBSKP8fwWtQKBgQCl
249
+ QXm6+B8TTUTXoZYPmzDqcyHBpcTqa4pX8cs4UB1aJsoHe5nx3bA/tZ68s+cxsfJr
250
+ ER0HdZcj4vlhNM5ODY13ODfiSCc5rR++SdHsSheb8WTEzyNb5pQq+rYTuDlkXKTB
251
+ tSa6G0J/b5i+yN25BjlzwJty2y7nECypy68PwakAVQKBgBZV0cLftqtdxmLAs79h
252
+ g8T3g9sip3kusxoNdxY1zAVJsHuQ6cg230ay2+fGgP330+tIktFue9bJCFwaEryp
253
+ dm0PKHmzD9W5Sy59zP7FLAjX4rc1IEQlzT171ey0hitHmt2LN/WDoCLjlb7AByzb
254
+ KxQF+djd9S/j6fxmhGItcJ6k
255
+ -----END PRIVATE KEY-----
256
+ """
257
+
258
+ SSL_TEST_FARMER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
259
+ MIIDLDCCAhSgAwIBAgIUH2fAuEi168jppWUawNNToTni7CQwDQYJKoZIhvcNAQEL
260
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
261
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
262
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
263
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
264
+ A4IBDwAwggEKAoIBAQDRJQfoJxErXVdwTU4sAQ+05EX8tC1REoYFJyB3hhB4LfOz
265
+ meCPe85X6FTYbcPdaL3NVevqEL2hzbqESD5Gf5Fvx9ctIdzwYv674P/tqPrIkTd+
266
+ cLshBKaR6CeSjPt5cFbWhg1hnmWy9Ta7SsYqOXh2aBQJKTRIK80U9b+8iVs407E+
267
+ NCMljerodAdePW5X13i0ca9ifwbTZkS2/c9nQEi7qldj18/MVax6qezY0aKqu/96
268
+ 8DSSTc6uUiNLKmRYP5xRJw06ggVooviX7snMzG6SgsbLK2tZJXeJj/EECOY4UrPc
269
+ FOkVmjxGBP3QD0oLoXnZpxvutS72ovUrcPxAMImxAgMBAAGjFzAVMBMGA1UdEQQM
270
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBSOIrT/3mFkZmuoQ/7UcPR
271
+ TOssC9o0xAwR0iRdziNQBZne2zLCxk6p32di+T6GIJahqYFqVU2cfDyyw9YUCr3P
272
+ nbMjuwsSrvor4LwJ9jlWKRRyBm/adCttg6OQIO3rYk/rX7XE+fBY1wYhqK+KcSCb
273
+ iRLqHIPEo9On/kpaSOWKFeSrGLMkj8nQWMNNtbzTNcdhQlxEGXcxPsVb3PGs2b0p
274
+ n63n55HTUbiL0UsHQvxR8gr0YiSpmlgJLi5pipDbyMiVHyCxj5j5vEovXckRliVd
275
+ iEbH235NTXPtJ9aBVEDsHW7W1AhzK5gh0Ev0xOC9vP98qTYR+4Oq/3Mz9r2jP5/d
276
+ -----END CERTIFICATE-----
277
+ """
278
+
279
+ SSL_TEST_FARMER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
280
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDRJQfoJxErXVdw
281
+ TU4sAQ+05EX8tC1REoYFJyB3hhB4LfOzmeCPe85X6FTYbcPdaL3NVevqEL2hzbqE
282
+ SD5Gf5Fvx9ctIdzwYv674P/tqPrIkTd+cLshBKaR6CeSjPt5cFbWhg1hnmWy9Ta7
283
+ SsYqOXh2aBQJKTRIK80U9b+8iVs407E+NCMljerodAdePW5X13i0ca9ifwbTZkS2
284
+ /c9nQEi7qldj18/MVax6qezY0aKqu/968DSSTc6uUiNLKmRYP5xRJw06ggVooviX
285
+ 7snMzG6SgsbLK2tZJXeJj/EECOY4UrPcFOkVmjxGBP3QD0oLoXnZpxvutS72ovUr
286
+ cPxAMImxAgMBAAECggEBAMGfV9ecO2/7JVUprIJepSzh3M1b/Uw+KucgVxVwf1TT
287
+ rfeLMPOFOf32cH5B+H/FVVqA/jyfLQBcFx4aR9U6iumCiHoXDJVcANrtLeLXev0u
288
+ O8MKGKQzywXveJtbfADseOh4CHFklGB+ViJE0nsK47QzHMFybR2Xt3B9Jvoj69kJ
289
+ rlvoxyKZOcqFdIHBDLmbzmV0BUo5m95T5oeAtTWpKZb7bH2MSt3Mlp2F+qs8NzLx
290
+ QGVrS6pqZd88EJ5J1xJEe2Va9z1HEFx21AWOTOELIYrgrZwEoQxrWtYJyv6QB3a5
291
+ qwShJN97gsw+BAZtLZ7uyX1+59spEORlasc24av9pWUCgYEA6+M3yUCA5AnIjU+Y
292
+ pxmdtRdEWHJi+Nn2Raaw3vdGlnfKFY8vUxXSrJUcPVVyqdFZb8PDcnDjZwvD4tk0
293
+ kxI3E+eXl7Yy3FKeZifQ9yuRRyk5p/HLp04xXqinw94DqeO0wwQWec8GhXAz2SbY
294
+ 6JJbb8vf6ud21Ld4ClHOSbuOON8CgYEA4voWiUN/0QlL+ePAcUaExF9S9MLkL5gm
295
+ H+9SORjbatTDi/kZ/FOUNWKBturN6vMycDpdJTXVL8j+fse6oZtzl3JQYbKTxLsi
296
+ /uG98M8t/LUReUq9ASWlxtcbYufXBn0TXbj36NHPM5S/QZy7ExcwaL44hGxbLLOE
297
+ 05lSUthZP28CgYEAxmEU7X/95coEjDNAomd8pmum4utwKPDFmNYTMbCsAKdFoNQG
298
+ bM2Rm+rbEQnnoMGbgc8VdA1UcbkHSKR6/qT3BRpj9wcXxwsEg81AhF5zk3EsN/21
299
+ 1EKCaqVUUflJA3uo7clmTZK6XUZ7lEiDazSLCX5gFmILIeIaZjNeVcwSU+kCgYEA
300
+ mstCCVTOW6pCdWa8vMQCEcaM1b4ATvEttwPJCIWKRn5Z6iD1dt8tKYdHvY6+5mf7
301
+ UwyKr7DZ9l/WKHJgNozEtVlRtn9KRZX2lOsxVYSF8V0vUJAG/DxHpabX14kTXSp5
302
+ xaY69D36WEwubznLX4amDhkEhFM9juvTP1fGDBfeLeMCgYBJ/8WI47aq0oPGfrUs
303
+ tV53EO12bF3wUcs/fmL7hLZnJ4h7yX0r8J+Vtd7ja/Y0QpKNir7PQcp22OBkuQva
304
+ 5wX6stuQF+DsbaGZahvSF9gITzFyc09YgozKgpbza6KMfzrIkRYcAUC/chmFTUJA
305
+ /QGRi14DETwITFBT8JK4ewINqg==
306
+ -----END PRIVATE KEY-----
307
+ """
308
+
309
+ SSL_TEST_FARMER_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
310
+ MIIDLDCCAhSgAwIBAgIUFPTg1QrNlWLRFn/hC78RXi0IOD8wDQYJKoZIhvcNAQEL
311
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
312
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
313
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
314
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
315
+ A4IBDwAwggEKAoIBAQDB7fCDqqnna6BfaJsv4xztP80jBCygHHhHdliSWbGX/tm0
316
+ lK716u0lBRiI3FmzPk9MqKMuV2Vvjsqm7gwLzG3oMHKaUPJUOiVf5v5/rXauNiAA
317
+ m/sfRAROef+ZVoVmU6rqwnGvTf6POI/MPdEbCPGIXu3bWjPXPq/BKzJ0KCJh7ekR
318
+ DaFWCkfQEs3Zilr2ehrdObzwHOxJh408t2qGeCQDlQeDXZYa5cTHo0tNoSWdfJIi
319
+ 1jNlEnvpo6ZV4fyKY1MiN42J/2swaxypdS3KxvPZzKWebgaloFaZoY3HziotiIva
320
+ EnJrUXNgQI1lW4/a7jooQ4c7A0t2XBidRS5Sohx7AgMBAAGjFzAVMBMGA1UdEQQM
321
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCAQP7xtLehAfWTp1k3E7IM
322
+ eMT0Qm2iBWQqB4RLxIJWgHyVHYeY7Lp7lS+BZFKHOkbVoc2J8cA3qGGDw3WrmQuF
323
+ uRxfL+bLC+HMSjEvPbXmnMWAqMKmVBzOvZf91VVKsFR0h4Gyt78EFteZVEHZI5bQ
324
+ jC2RLte2uCtht/Wum74z7jGzplx3fRV+zcig7Gka8IwTcHaRpfhhZa0wbbR3Kfe0
325
+ uXcCgDF18rwr2uIDNPBmJfy9C3nyQugWzNV/j/FDmrqHD94tagfDx5wYPb/ZFVpM
326
+ TRg94mZSL6OkgITfba9MkOBcVGbkCO15NckC8rm0p3ngbEgu62eW9FlwsE8b1bVK
327
+ -----END CERTIFICATE-----
328
+ """
329
+
330
+ SSL_TEST_FARMER_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
331
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDB7fCDqqnna6Bf
332
+ aJsv4xztP80jBCygHHhHdliSWbGX/tm0lK716u0lBRiI3FmzPk9MqKMuV2Vvjsqm
333
+ 7gwLzG3oMHKaUPJUOiVf5v5/rXauNiAAm/sfRAROef+ZVoVmU6rqwnGvTf6POI/M
334
+ PdEbCPGIXu3bWjPXPq/BKzJ0KCJh7ekRDaFWCkfQEs3Zilr2ehrdObzwHOxJh408
335
+ t2qGeCQDlQeDXZYa5cTHo0tNoSWdfJIi1jNlEnvpo6ZV4fyKY1MiN42J/2swaxyp
336
+ dS3KxvPZzKWebgaloFaZoY3HziotiIvaEnJrUXNgQI1lW4/a7jooQ4c7A0t2XBid
337
+ RS5Sohx7AgMBAAECggEBALBfiqL1EFlc1RpwtNM0pxZPNG5oWX205t93js5rrM0k
338
+ BzPpFcaqxssoe0vdu+b9AHoj1WVMLwDqyPxQ+7uvTTYi+dfHTt2zlFJIb6YHSSzg
339
+ JPLo6ddhsNj+s6vtuJ178rJX7bUWJjJzqrSCdC82TxVL4N/ihct5Q7dXZiemaL7O
340
+ XgH10NPmdnptvbp9gjx6LgcM97E91BslDeSYKKZ+Qxuh0Sysl+EzVX80/AfEm99d
341
+ ryZOwS4mef558HtuxLcaNO1Due4iKWJKoeZI418hRZh2ASjpyFKcoDswNYWyg9pt
342
+ XfNis9T9omox6gIfaM0S7nY2I6FOS/v0ODcACpyLUIECgYEA9t1LEBYZpG/YoRrd
343
+ mvLuyeGFJW2Hf/Bj6KZU7tTtnd07bdv4o0SIShtdu4rp4sq+yS9wd6XTgN9Rs6E3
344
+ CzWrK0OkbisuSVdm9fx5alMQKS3gE9959WJJ43wULGnHYlKZCCILMO4AZODnfQ5o
345
+ cdNvKaESv5KXytBYFliOj30DmUsCgYEAyRsosNqL3fBZi33oxifg0/EGFQ1tJbvn
346
+ ApKLc8eAe+cAz2qwidejzYEWbDqhQUKK3qHNFz6ACnbCyohqRr38dqjQxJ4KBHfG
347
+ 66iFl44qZKYi2fDvSTvlCCue73ArIIR2kLiO4OeRp/wbqVPv5F72Djz8wDRB3qXp
348
+ ZW9ezmdMO5ECgYBoQOp7X6nynN1ypCLkViXsEhalyMzJhh7bWKtTtY6n9Y8shRJK
349
+ +R1JlqcOFctSYOcTlbo8fUaGDUm2v6W8USz5d3aQpCHHDWdJCRfJhEy1507TdbRO
350
+ ofSsYnEulHmEl3dTTPVG86ws7iI02QnY0D8I6KI/T0xVdYlN3pZOGLCVYwKBgQCV
351
+ vB8D7vUM/pPthIX4ZGDF7UN2EVUfL1TFWY9zWSuVFV5JEUr4lxJjRKYJV24RRRZY
352
+ xWgK0oJLSDmoywE2QubjArbObk1PHk+BzywIt9Vgs0Jnuziu8mWJO9FOvdmekIIn
353
+ JwNa+ZA93zxJSzHme74Aw+/8u+v/dtDcsZuJWugrwQKBgQChIpOu89zL79WIcKvx
354
+ y0ErughaITTuXQ55c2wf3iFOnbk60FJwYjJqWwkmurc/w2NEm/G9tXQVeEw3YyrT
355
+ zDexl0Jtlbe3uG72aTVyHFERyaaZ9wkirHHHfN3b6zNpscgWDmjOrJthuOYl8NnE
356
+ 0gbyHge8dF2YFmhxtFAcEzlU3Q==
357
+ -----END PRIVATE KEY-----
358
+ """
359
+
360
+ SSL_TEST_HARVESTER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
361
+ MIIDLDCCAhSgAwIBAgIUC/PhYZPSyT/cH2+54Hfayu9ZXIQwDQYJKoZIhvcNAQEL
362
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
363
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
364
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
365
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
366
+ A4IBDwAwggEKAoIBAQCog5fCeSavpTI1/3mA/Jv9XJF6ZGRzmNJq8JdRPUd/V6dQ
367
+ eU5cOE7QGXbqBV1gQUOXIf8Ke9wgwcMPGRLBbhMQcd9CqWK/rZZOuczRBoqyEvQP
368
+ YhkyPWmIbRsNTLg6KYxghdCD9Ps75YWBpxb7uGwKgYadixPGGTDlbGw4m4T+xoSX
369
+ kkXcoCiYf+AnWdT/xYloEG+ovy0oBfOfv3q3ps7ECZRX/hZ+4RCRgA1IYi4z7VwL
370
+ JepZz87PH6zv9D1CmtraQVZUD3UJRfMGVsimLlH09r+mbZm3Ndu9cO7fLLkLzLP6
371
+ w9hhibZtnNAOyLDYrgOjl70bGjePzeodmqzPMY2zAgMBAAGjFzAVMBMGA1UdEQQM
372
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQB2/xNHBk4oXI5iOyhh4Kob
373
+ 7ZVFfnjnOFFVhoWYAHSL4rJy6Zk12VwqsvUh4viwkSgmpKkZxyjQR7rKGTyopzHJ
374
+ aUEV7mhHc6lpM1biTZyXHz9PIJAgiHe1J+CTm5qVx9STi1b1cJ1FlTYK+7TT/noZ
375
+ Pscg1KOw5rmUbTcJ6UnBF1EtSSl+JzPZDxE0/NKBKJey/vRZXj8l4WLiN7sZTr9v
376
+ n3AnByDua5653q+AOTjoWP6/U/w1JWa4QNCzk05qBnFLczWGmU/oAXuvIRkTZ+wq
377
+ L/VQNnOjmBDeN+LAVAjUxDuGxVJiuCQisUiV5KZVl2kAayCgJccEI5N+OYKO2oI+
378
+ -----END CERTIFICATE-----
379
+ """
380
+
381
+ SSL_TEST_HARVESTER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
382
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCog5fCeSavpTI1
383
+ /3mA/Jv9XJF6ZGRzmNJq8JdRPUd/V6dQeU5cOE7QGXbqBV1gQUOXIf8Ke9wgwcMP
384
+ GRLBbhMQcd9CqWK/rZZOuczRBoqyEvQPYhkyPWmIbRsNTLg6KYxghdCD9Ps75YWB
385
+ pxb7uGwKgYadixPGGTDlbGw4m4T+xoSXkkXcoCiYf+AnWdT/xYloEG+ovy0oBfOf
386
+ v3q3ps7ECZRX/hZ+4RCRgA1IYi4z7VwLJepZz87PH6zv9D1CmtraQVZUD3UJRfMG
387
+ VsimLlH09r+mbZm3Ndu9cO7fLLkLzLP6w9hhibZtnNAOyLDYrgOjl70bGjePzeod
388
+ mqzPMY2zAgMBAAECggEAbTHQThk5Q0n1jl38euO1pOit8DRLj0hw2RELzH277b17
389
+ 0r64UzO9hkVp890EE9JWnQFPhZibHLLR1d+2cpcETXysYkLmlTRDmMH3AV+O0jNL
390
+ 6Qf1McPvtZKVm/mhyzaPGyC67Db78WUaLNh8ISLxB6HE/CNZ7dz2/UNToR7NgFVP
391
+ 0A2fLST+2MhFaCXxekK4Ssg6HktvN2dUg3GyYA8PnFtgDzkcNIbFYvtqv+dXZwzI
392
+ w+teOrXdx8zIlKAyAZDuKYyN7dzhpQM1l0qGG40gBioap8ZG9PtKDXyj26k3Smbw
393
+ 1fmBcM6J+CouAjQ+3Tumiabct06XPWYmWqixZiK5gQKBgQDXG7BeU2Xb0GIooDGO
394
+ lQ8mvHBUxfYnUiOvHvph8tZGRZHMKi1iooO+/Lc3JVQ0lbaYO6cCrWr+SOV/pzQz
395
+ 5sBB0Xz3mGJiBBabPjQ3C2UEbQ0i5S+1QJoQCPVFeLSYq9n11rynZ5EvgZlb0JKC
396
+ krR31ir01UkPGiEvs4e4T8peQQKBgQDIjGKTQELgzLoZfvNo8G3TmZFaxpaFek/i
397
+ k3ruyjH1AubX2s/R47aK8Ou9zh3W570nI55b+aaY8jzBMibYCAm9cqFTPzHWJ3An
398
+ kjfQ2Jw5+UESGD3GA2VcW/qNr9BkTY+PJTOXtRMTnblnCfavaa1BJCgKWM9gXYeG
399
+ B8WQhuCW8wKBgQDMI4/eBIFu+TSeX2CIcrddSInGOdRf/pi00c5GdEGbkNxLiF9n
400
+ 8tjawFRTtk5SVR5jHIFjjhYy2hVKbvCgrMUZ8WgKRQhhAoY9r+u3rU2hxKgpzJzZ
401
+ A0TyIL47vtCM7tI7dx20NRpYnkJfGvJfjkBMVeiQT3U1KtQBw/vyE272wQKBgFYH
402
+ 8xmcDZSF/qeFUEIKMfL+A97fJh8oczCNd8UMNBYZIpIiqdguSVadN2P7Ec3pJ7ms
403
+ i/iExjUCZZGzQ/qUqCj/Dbm6eFSYIoK3NP6AjbRI+uMaRxW0yzytsHQrocgFhbow
404
+ iUthQEe/95L+MTbarJovOoYFxyBdvw9+MgBn+9yFAoGAC/X+58U1usmpZYeyinyX
405
+ PvcPyMbRIQQVezI6+wBPcTQzN8orTQn6j+r7VLDdABdaa2f3/pB5EWTYnmKRIoKn
406
+ PbShaxVYigIdVkNvr8WSssmfUdsUYiLYEP14hvYyMKu51ksYkqWsvVoxIcnVBlk1
407
+ zMMX9G1pTIPd77XmoutdzNA=
408
+ -----END PRIVATE KEY-----
409
+ """
410
+
411
+ SSL_TEST_TIMELORD_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
412
+ MIIDLDCCAhSgAwIBAgIUKXI5XpFZ30y1ouQq11Ke6CJYc80wDQYJKoZIhvcNAQEL
413
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
414
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
415
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
416
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
417
+ A4IBDwAwggEKAoIBAQC5cLVLbbFTsBDiYGEvK2t3V2I1o/OjEbX/xqAcfYasvNTo
418
+ E8q61KL3tjIB5kdKYp2Ywl0ibUSnM8M9Zm2uMz+Wrpc0YB1H6IEpoN796q36m6Xh
419
+ /O/lDpatgwZkRiBnKVAuvifGeVb868keNBKAZ2DNHdpQcRtbkG6jMKSNonmOh3Jx
420
+ nurvv01mvf7VR7iTc9o4kBIgO2lOnxB2dpFcPxdi/kIIGjrUgU7tzAh4SfQgKKVg
421
+ WwRDk4BrlLWLRGkPsIvvoUNkVuC0adqXOaX+8WRfalw1mNed3OpYQ+W0SjHWuw7S
422
+ CxrpcfvXMniy3CpEdBJmbtKyC8Somj41QxmRRZblAgMBAAGjFzAVMBMGA1UdEQQM
423
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBVYAjTaWQpR8Ke7zD5ahJg
424
+ G/UDUUh9ZhUGCc4E0e2+qVjDgkJMqNjXx+OUUvj+iKo0A0UI/QJYf5n7kxs6C0GP
425
+ JLqt/OHbxdqRji3GQvftRAMjaIQ0KmRUIgN0XwbDUvFJ7QHBdV33AeWvDh1wWvtD
426
+ DYmMDausznQQBlYApt5LDq/Y+96rmMiaPGOga1Lz1GWON5v8RU3qPLyc8GgCeoaV
427
+ zoVLKiGDVtrhUzaOBTsZ464ZH74hIzjEb/QDqyoQYgk4o1RSdewNhnzmwWmS6hXD
428
+ E11IwGGiy0ix9OWyL5WyXvjHqjtJ219KIYQuLsEV/lOdHsybBcAQygjVqgMkz5CL
429
+ -----END CERTIFICATE-----
430
+ """
431
+
432
+ SSL_TEST_TIMELORD_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
433
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5cLVLbbFTsBDi
434
+ YGEvK2t3V2I1o/OjEbX/xqAcfYasvNToE8q61KL3tjIB5kdKYp2Ywl0ibUSnM8M9
435
+ Zm2uMz+Wrpc0YB1H6IEpoN796q36m6Xh/O/lDpatgwZkRiBnKVAuvifGeVb868ke
436
+ NBKAZ2DNHdpQcRtbkG6jMKSNonmOh3Jxnurvv01mvf7VR7iTc9o4kBIgO2lOnxB2
437
+ dpFcPxdi/kIIGjrUgU7tzAh4SfQgKKVgWwRDk4BrlLWLRGkPsIvvoUNkVuC0adqX
438
+ OaX+8WRfalw1mNed3OpYQ+W0SjHWuw7SCxrpcfvXMniy3CpEdBJmbtKyC8Somj41
439
+ QxmRRZblAgMBAAECggEBAJMxd3Yr17mJ450My5dZa7AK2JWjUdx6TnB8BNMYgDHU
440
+ oVqleyHZbpIZOJBxbN0KcfWzMaIGAZyGZc7y4tSHMU41vyd/sz5Eu2GDo/0ArqBh
441
+ s8Yxs2mprsiDXCtzznyUOmUf4wqTfgy8S6OByb3KUPf/Xi7D2OdROcCm97bE5J/Q
442
+ YNR0gBPQCRh8eafT81J6/jS4yLurQqYfZN/dUIeNZMsq8Snn/Ppra8HDanFCPgqk
443
+ L1Oht9lkJMFufO39WdbjMbeZkdwBhX4RmpT9RnOY4dAL/QXgWQ7NLxMeVZvmtdQC
444
+ /zQ2k5PN/8s1BfLpCEGlA31rdq0+/O83gRt23S8P4/ECgYEA6HXaA82leiUklggc
445
+ aGEqpjMUgGH2kIk+WZDeiT6VLgWuF+DOPO7mbV1oHylQ7R27if4ouZAxv5xellMn
446
+ zoqpETYxe24/vXC3VFPHH7spAK67P8p9jzPwDs3MaT2zBfHwSp1+BhybiCqtGM5i
447
+ G/BZndHWb1vTH0DflCMEBlstxUMCgYEAzDfwWC5dKYgpS1T3XpLyQJnzL7D7VSHi
448
+ 0NhQymttu8+uyZ2JkjWkJFQtwfSTu7D6v6dS+JSTRPcJkFNI/lb7RZnnu5Jj5p4n
449
+ Nl67KfVw2C4MGLBUv3OZXYmS8Vwh9cRY+QsB7k4FV8ZS25yDr5entR1ethaDZeQx
450
+ jv16qFVY3LcCgYEAoJ9uOVqLkM7BbPnFx0n8kkKRU/RczppGftTfL64Snm5GUTGA
451
+ 0BGzHraAD6gYxv7Yaw03TqEX/vIpWW2z/79H+yCbKFKRsHCF/Lq2yHImbtZNhFKC
452
+ V8TnhxMkv0NmxCDcjHIudkKmJXx3hsB0giGdirNHnEKyqtHEqzNWwJ2YDskCgYBv
453
+ BqKGbn57y+kXaZQrOJy3/nq2HPQnborPnCsgQZOhHeIa/qkCcmNQ1OsjnYKL8kYA
454
+ 2ElFmBEQ13W9n2n5zPRC/M99rLLfeHA9IPeEckntXet5qLQKeiCRN/BJhBt6cEsm
455
+ 6pMcKhLBi7MUbl0xo7OrxdHuEQNS6+L9qFV9Gxl6tQKBgBcQk4Cd98y8Ulmt9+Un
456
+ rYds/FAO4q1SpnZpYVGHr93rIsL7EJO/4BViCXxT0YeqJp8tvSOrPMdT43OkIWwj
457
+ 0gb/qvk7eT4KhCTDa7WY3p2LKzwgiKnk9G8OwRHYXTDpmvASRSkXHEilCBMJdqtM
458
+ W6AxtaSOGNymAr+UMZYWxZb/
459
+ -----END PRIVATE KEY-----
460
+ """
461
+
462
+ SSL_TEST_TIMELORD_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
463
+ MIIDLDCCAhSgAwIBAgIURVoAXVmDtr+4fUDOOVA0ZXW+RTEwDQYJKoZIhvcNAQEL
464
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
465
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
466
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
467
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
468
+ A4IBDwAwggEKAoIBAQDZsq3BSwg/a/I3AlY+Uj3d4S+W8jIhWHI8XHX5Ud7k+auJ
469
+ gfKvA/D6PrYI/TunHFzTGdVaGOd2y2Ylw7KUFZ9YIjtfQfNI0UnuIEyovcmLBiw2
470
+ tCtQE7ItEgLkrEjgBX8DNWlQxGKZ8+HAeY5Ux3eRsLJJn3fBFAxOtC+cxF5hFFvt
471
+ EcGTMo1lYr/A/XKt5Klh8eoOLkE8JNbwuO7AQC5NQN1AP3ZP+3rOC6AU+xdECF33
472
+ 9H3gyfXeGk5ixLpV/d+Oz3VzRgmBCBt7+QLT/MSgm+xD3hO21MB2cBBIHJ6bzeTy
473
+ 4nwvidsnSPPn6RoHg5vTR6HFmLvALirbiA0arr3/AgMBAAGjFzAVMBMGA1UdEQQM
474
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBl4c1dN+9iucNMtM0bLiAq
475
+ qeGRLnjGhizrhXuI0PtO5zrgmWgPnuJ/gZUwoPrGczO5g8ZO2zQhDuz8QWXLCNby
476
+ UL5C0aQrMafIqawKd3oumnHFOotY5eW4hf1rKyYfCGJ15xisWDIXuVSHzf6YlNlk
477
+ avHfchtw3I6xPIt6ui08qnRjuxVeoHbKKgM3DOx3vfvWiOyjXI0pZt2uYdMHdX8s
478
+ kOqJVoEF7XvSheDLXjhF7iWeGDmqjuBHv6eRfnA20MOXbE2l26Oa7M9z4xzVZBvU
479
+ GxtQwVXfxwmo54EuxVSS23gTD2q85JRRfPWuZnOs+NUr7e8P9MkejuC7iuvA2P7G
480
+ -----END CERTIFICATE-----
481
+ """
482
+
483
+ SSL_TEST_TIMELORD_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
484
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZsq3BSwg/a/I3
485
+ AlY+Uj3d4S+W8jIhWHI8XHX5Ud7k+auJgfKvA/D6PrYI/TunHFzTGdVaGOd2y2Yl
486
+ w7KUFZ9YIjtfQfNI0UnuIEyovcmLBiw2tCtQE7ItEgLkrEjgBX8DNWlQxGKZ8+HA
487
+ eY5Ux3eRsLJJn3fBFAxOtC+cxF5hFFvtEcGTMo1lYr/A/XKt5Klh8eoOLkE8JNbw
488
+ uO7AQC5NQN1AP3ZP+3rOC6AU+xdECF339H3gyfXeGk5ixLpV/d+Oz3VzRgmBCBt7
489
+ +QLT/MSgm+xD3hO21MB2cBBIHJ6bzeTy4nwvidsnSPPn6RoHg5vTR6HFmLvALirb
490
+ iA0arr3/AgMBAAECggEAEOk7bC+K9XpKN5G75112Jt1OWBh6YnK/dQbtty9v9DOc
491
+ 6rKoioXw20+xzmL1llays0dndndGy8ijJ73bCnvfg/YszIqP/pEbgB8MNXOAy4bw
492
+ OlOmpbLR/YRPqzni81wZ8MLeaoLG8hSq7cvDjbxtAmlKgEOeBuaqyhZfOHtcpYfN
493
+ p5E3OGYR3nzI1kfwVvQ6E9YRI0DRTq36gnF5nua1LMhjbWYXRCjYkhEwLYEzCkrY
494
+ wwey9MqzhVwBEEADZfsr1kDECgBJNlTfEJyc6CVRQ5nM9rSYax6zYT5vWlsjYzZg
495
+ uHCi/qRGbsyKG2NdGAwcJVw4nC40rpBHQcIrb0I/oQKBgQDyZnWa9jleC3zl+BB6
496
+ lWJvbe99t1cepFEqSQaiqTL6jo9rnluBLFLDMjp2PcskP9CT/kjuBLQW3wUJh4VB
497
+ MMF/Zr/Bn35EfiTc05H1ZhXERC0CdP0N5KoN9lCqilJD7b16iwFLy6p8j7wLUL6T
498
+ dpLiomqlKnJqPnxms48JxnIDjwKBgQDl6W0YTSgjNFo+ZsftpFKBJz4P8y2YyaUN
499
+ B6QDW/m88o8J2vAK80eHvewakcZ5gO4RlkjAwxxxUnqsFBDgeyTZ+asePd1ufYc0
500
+ H76fXjPEBf2K/uxUoa+s6/FOeFKJ1Fe5D3YCnfAcUBjbHig9FFMFP4cm7PjrCaqi
501
+ g4UYx3SmkQKBgQDbWZ5o2RF2qfye+gindRD7dsc2wzbh8p3EHwsTHPuVwnXEVCvH
502
+ y30lSAmhQC/YoKq1kXEbekQhQjWDtw/9uwoOqMMziomvn1rqPcYiA/wEfBEi3Qy1
503
+ isvcEJ5UhREGiVdiUfGdTjL7vvHSZ4HdXXpz/bd1uOCKhfr60NfKZ7p6vwKBgHWm
504
+ 4xX5fd2uD7Q5InxAh5vh+gdteNrj7VtimpLBgWYodfwkFoxz/BnBnc3m5TsOOEW1
505
+ sxs5fRecjnv6dLx7J9uHwQJjxCmjgQmyaPji2vin3BxB4axZZS3HO5/dQNeZWx6v
506
+ g8NJETNb5axTnWHMQcPAw6euwp58Pt6VEQoiH1aRAoGAN9HLpUoxUGfK89b6ZvLm
507
+ xLdoBLUyroIleNZNaQuiiWSEBN3diusLZv78i5JuOyBqA3e74iHW4gpvcUMeMq/u
508
+ jaj5tGi3njXk/jP4VB4oWuNT+k8X/QHzS6A92UrcwX7/ZSAoDBrAiKZXwdKC1JLH
509
+ pWAOTyrQdQ9UkfF3OLKjh1E=
510
+ -----END PRIVATE KEY-----
511
+ """
512
+
513
+ SSL_TEST_CRAWLER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
514
+ MIIDLDCCAhSgAwIBAgIUGfJCme460FNV8uIRcAb2+fNOKnowDQYJKoZIhvcNAQEL
515
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
516
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
517
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
518
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
519
+ A4IBDwAwggEKAoIBAQC5pSuCco5DLrrC806I0t4XFEp/2HgHVve+xI3mIyl4A+mL
520
+ XXasrNMeVEo3MU1ADZBntZJcDl16PvHx01/sY5vo+0BwjzXIZyl96B5yH0ibxWeo
521
+ tZbkaU2FOg1/aR1sDL9guxQZ3JfrOA7AhFX+W5o36X9ySUsVcj9IFSuBd4WreAz+
522
+ lo/DCcsdNq6PvfpwR3Lz9VURBsYmRseO7cHdcASzr/UbfaIYFaJxYQzUkC127qXt
523
+ 6KEqaUKPwt6/pNSCx6PChTS9isqz7oTg8CH9Ku8M9lQz+w9J9T1/AmuFnKUhLAg6
524
+ MVvl7bGDG657ndawiUYLsFnAtCQBxjnhdhngv0LPAgMBAAGjFzAVMBMGA1UdEQQM
525
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCr3TlMTjaxIWlpeaHo0rcR
526
+ CmZNB01iJQKHhu6HEKJunILBf1eH8Gm/CLftytMtbxPfEUB/OG04CvDfCYAk+yVK
527
+ lVhlLXKU1MHNbjCEYYhL9Nai862dxvAMLI4PMbrhIl9qPYfQ2tZ/yRKKZIy0Jnsx
528
+ EQECv1dFXTDPFZOd8/ViNFmHNLR9cHAnEuTFKnM2NoTOYlRF+f01yTF3AAAgdNw5
529
+ ViGPO3v4Xv5XeLVmpxOqG4ZXdCE4ZfSkqmR3MuDpe5GsYYOeEClLSZJxX4kNwd7e
530
+ EK8qZ/rAt2Yk+/O/FKGa5C59qj3dKiVVTN5UPfFD+cPYFFjCNjy+GP+Mw8sKit+r
531
+ -----END CERTIFICATE-----
532
+ """
533
+
534
+ SSL_TEST_CRAWLER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
535
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5pSuCco5DLrrC
536
+ 806I0t4XFEp/2HgHVve+xI3mIyl4A+mLXXasrNMeVEo3MU1ADZBntZJcDl16PvHx
537
+ 01/sY5vo+0BwjzXIZyl96B5yH0ibxWeotZbkaU2FOg1/aR1sDL9guxQZ3JfrOA7A
538
+ hFX+W5o36X9ySUsVcj9IFSuBd4WreAz+lo/DCcsdNq6PvfpwR3Lz9VURBsYmRseO
539
+ 7cHdcASzr/UbfaIYFaJxYQzUkC127qXt6KEqaUKPwt6/pNSCx6PChTS9isqz7oTg
540
+ 8CH9Ku8M9lQz+w9J9T1/AmuFnKUhLAg6MVvl7bGDG657ndawiUYLsFnAtCQBxjnh
541
+ dhngv0LPAgMBAAECggEBAJtAJPXPhWdrseYNAXVtGywj3PWzexVwRnlz+NMoPqrO
542
+ YsYY4IEheuDXTsV/ZoIVldkVQJPZs5TjBQTeZ07SMnWRgN9g9HJmy40uzB9WSCt0
543
+ 1+6ABfN4mMq8tMMDjgZpVra3XOUP1MByPewD/8Jaqsrta5aQ8si5pXBLu/lmkhPF
544
+ P99XesSb9o0jRsohC+D9ClepfX2r3VZ8Vy3XOHOKbQlFToWYGqGlgbr1nZ1r1mg2
545
+ +PpkQ0LSc2Fojbje5uS/MZLP+8gJESca+W6ZOrvSLvsbpQrsuLb7uNMq3FJaFzCl
546
+ QWN2fPHA13toOW+hNLUXSBtdDhCVpGb1y/bS+Jk7tBkCgYEA9F6lF1boNGdhVu13
547
+ rvzyL+oqJMr6h21tCP0Lw3mMFssP81a9NcuzLFJvElSkgNFSBk6ot6k2h61lnAMk
548
+ 5adq8xosqyfFgYxSy0f5wysB5huHLGV/6iWgrTRfOpCNbSRQvbS6wdAuvkZxa4Ci
549
+ exgh8tK5wRkMj9sX7jXeEiWoNDMCgYEAwnsJWjXZ/Lfodykq1ZHnmv0btJiHvWah
550
+ K+38s2UPBBoKu+3fJIo6J3XLhR+hvl5C8M5QGTosWm4YfWkgEpArPyiTD75bbDuO
551
+ qZxjRF1RNLaMqT1/DAhHgS1Km/xxOMTdL/WD0/1KNVWQAv+j9VVIRZNguP+Gj1eG
552
+ HdYOwj2HevUCgYAzBxRoNECWuMOtuDaWtsEH2ljkh/Ial3H+P4DWV6o2FD8HbCRk
553
+ eF24spn49O3I7Gy5XnGCsHXvjPi7xDhPME935g5PyyVF8PxU8HmqFG/4EeV/Es7M
554
+ IQFVSatc+lRd5whpJLUexY8NMn56mUjUdWyZXQFm3gkufOyZVGxD09M02wKBgDxC
555
+ BwnOebZV/U8+kCkQRiS9m+H/CL/klreXy56CB38L2puT/nnB4nbrhp2+yUzExBT8
556
+ t9C5N5jlV+0zr15RETVGixprrsQASBnBfPhnuYuNrFOb3EuMHSunLuDZ/PLL/ISp
557
+ m6kJZ/7SfgaP0utm+zejjGqFsdmkEsgX1QbWLa4pAoGAcQSdwhtLP8Fhcfe7aOHo
558
+ Jpxdqh7l6HhLqKES6nURn9qNq9gu0P9x9Pj1C4mMFIP2Z7sjhF1qzk629FVxRujw
559
+ EshJTdj1syRNby9/XCh/uggCUHpD2NkVpcCnTmoN9ccnj8NwxZBOR8LQ81WyVzmU
560
+ 8cnuPKU82EyrqhH1afc4fz8=
561
+ -----END PRIVATE KEY-----
562
+ """
563
+
564
+ SSL_TEST_DAEMON_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
565
+ MIIDLDCCAhSgAwIBAgIUEfp1B/UPB0Hf5bcKFsJZ/Jg5ZUMwDQYJKoZIhvcNAQEL
566
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
567
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
568
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
569
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
570
+ A4IBDwAwggEKAoIBAQDAIc6vaGVenMWjN8uyIetlwtTXCVRK0aTwLj6HHXpcJCSF
571
+ bIhvsZRlZ7Fvu4VelVNzXH/kmZhpUXY59QQObspZ2z7TfVLgS0r4mAU8WqmCGi+F
572
+ 7cLVX7Du2E06jGhsBgKd9l6Ybud0SlW2/y8IzdIq75bW9qD7viAkbXg6sSR1zqwg
573
+ 2lFpoSKaf9TFvdbgtiCIeCbTQEwTZktYEEd3S+yY/HierG9RTcpXSJvC1Orcv/J8
574
+ iH89U+C8QfNjULCChEOWhaw+qol2fKOK3394JsujORUn/9eHeJt1otc3JWnyR0DG
575
+ ok4y62xxl/y529npRJEkwXO7zoZXQVm+PoWZvYHDAgMBAAGjFzAVMBMGA1UdEQQM
576
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCEugh4aiI6L9PbBZDEnc7o
577
+ tUU2boCKwOsI6igtPaBhZZcQhyTi/qlmPMKZm58TFS8s//oiKhD3q31+OhQIe/Ak
578
+ pvuwJwcJLe0r4iUzbtGJsn3aIpXP+GHqEDM+38tZhXMpxq5Kv8Zp8Nm7R7XidGHg
579
+ OOBXQ64UDTUAHYvs+n4ltYLgTsqCPPWsHxieABjC3YDBJAdGa/H4cRB/qU7vKNkN
580
+ uAyfhVLBzaAcyYtQBef9cuulTUaE+KA8mN1kJNbA/b3E2MCGYCqf4eNN6gRdmtxG
581
+ 16aP/7qxvVlgWh1mYfUvIlszazjI8TI2N1y1JZOWpmO4RoyWhvqhWdPXKC/HyVub
582
+ -----END CERTIFICATE-----
583
+ """
584
+
585
+ SSL_TEST_DAEMON_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
586
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDAIc6vaGVenMWj
587
+ N8uyIetlwtTXCVRK0aTwLj6HHXpcJCSFbIhvsZRlZ7Fvu4VelVNzXH/kmZhpUXY5
588
+ 9QQObspZ2z7TfVLgS0r4mAU8WqmCGi+F7cLVX7Du2E06jGhsBgKd9l6Ybud0SlW2
589
+ /y8IzdIq75bW9qD7viAkbXg6sSR1zqwg2lFpoSKaf9TFvdbgtiCIeCbTQEwTZktY
590
+ EEd3S+yY/HierG9RTcpXSJvC1Orcv/J8iH89U+C8QfNjULCChEOWhaw+qol2fKOK
591
+ 3394JsujORUn/9eHeJt1otc3JWnyR0DGok4y62xxl/y529npRJEkwXO7zoZXQVm+
592
+ PoWZvYHDAgMBAAECggEBAL2gIEfK91F71SwUI3x6McRLmJlrYcA+TVWnrprYIy3R
593
+ liIBTl8+msHCp8MpBqalJqnS/371gRFhDxiAlDJScnBhDQ7av/MTHLliALjimi4H
594
+ /iNm2EaTnSL+ZKqGbYFAJVEWGaLEwrdprlNgZGGCEg3CTdN3sscDjOGnEWSL9Po2
595
+ +nlHj3OFZJPZrTQkh8oRQXtf/cgtUDVKHBMaXeVZnNIvepaSW40y0clW4D70dEOy
596
+ NtYgPreUXgrkceXRz7TJbY5M6AwfvO7GYtMiER1zlWvnAK+AU6vUzCxek784hPQq
597
+ uiuhtJKf7H8dYxu9ShNWF+OITurFGx+qHnBk+u7Q4EECgYEA9T7hlIAkoq0ESOzl
598
+ 6PssluYZ51AIFiRr+74VRbDh+nTnZuRPvYzhjpx9CXFezn2LQT8k8+rK25fH1tEI
599
+ 0bv3b3K8LNytkE2KPk0tH8RitGq2cN/s7j2QK7yjCC/r/OCW3juSPIO42/QmFfgP
600
+ 2IhzP/hO4VQbnMufVLBapQI6/1ECgYEAyI6s1PajiAlKDbAqf2ha5HrKwFC6rsuP
601
+ 2RVmSKUdWnZLBO2ctzcKN8VuY+K8CGh1E3zL/OWWfnf0GLcnKiViDRgN5TSh4jv0
602
+ fJ4pSB+XFjetcHa1eGcrlbiXs538FkVzYLCFJgzOVwa17XcMP+CvtdaiGoSvlpAJ
603
+ eAz/e1n7ctMCgYEAyZvr7hx6AZGiWCEH0EPMIDEBUnskaq9+ZfGZozUKUM8R/C/s
604
+ rbLHKmnTEJQ2kCH8/KJgSnTWVzerfRlS2rhfbSsxLuArftl/sD/ZvKfBTPf9C0XK
605
+ jP/nKU1l6TEcG0K2Q/NNAJp4ubk4Jg9LV4K02/3ROsPd/0QVs5VWrxfqUEECgYAa
606
+ /CeBGBZ0zVsrcFKnhfEE4Qi6y6Hytu0J9nkmuSCz9UquxRHbDQrQ6j2qLu3B69wk
607
+ 3RvNUU7ogVdUpAAfCZyhymTEPEqz2AFTayx+ydFYafFqOm68XpVctdOjlVQ/4uRd
608
+ VCL2Na7lwr9jzirVxXOe8dwp2USO6556irUtcbQFhQKBgErhJh3hT8MaJITjkP+K
609
+ RBrvronn1x3iE4cApN2hOHtlaaf06HmazxGCBzElC3xmAac4kWqMXbE3e2nyiW6T
610
+ yBPH3fYzKH3SJhQ9vFcaMHmZgnSDR8NcrVeL3CMqxmhxgo7hnOG11fNsGpBxgyGg
611
+ GJygRZjw2nPID7SBUjH5vEq4
612
+ -----END PRIVATE KEY-----
613
+ """
614
+
615
+ SSL_TEST_INTRODUCER_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
616
+ MIIDLDCCAhSgAwIBAgIUQGJa9B0MRFmHuvjXjyCBbXypCBEwDQYJKoZIhvcNAQEL
617
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
618
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyNVoYDzIxMDAw
619
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
620
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
621
+ A4IBDwAwggEKAoIBAQDGNB8T3gN1kLSJ4QhzMcoS7UPLvoWxvxVqYUSEap+4EI//
622
+ LDKVlFKOl5icf808nVxGwb2XD7Io5wkX1kppBiqudri+WwHn9ayyhdpSi6eUsi3G
623
+ suPObKUTzNH9LOli6DA++GBaYoQUVXoOKWz3DVk8QMSCXgej5+09owdwIMHl8ytV
624
+ G36/LpPjH8Chr4y2MAUtz2Dc/Evyq8XfBIeD835Azhr2RXs3c/AOXVWXPt9A2BW8
625
+ sA7WvztNhYnqtL4EXpgG6H018aZTnCMEHEbil05fkfs+zRxgncqQ5BDSqARbkSDu
626
+ SeczaJtmW7E4yqRZTFZF2AnssyDuPQcl+qiYNNU1AgMBAAGjFzAVMBMGA1UdEQQM
627
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCFCSfOPoAbrIMBPLkiHGOv
628
+ a3OJmi/Kw9qfOp6iCVb4A0CE9ShzBZJqvSfZ/CnPeLsXy9zaRytrVHgkOXQyzbbv
629
+ uKiaBgwnLT1VFQlPorGBVJZisLl6uc+PIPK+9syqnOvaeilbI/UH1WrcESwrV2C1
630
+ 7CcV8ibj7a9WnWC0LvzNMDHFKqPyOUTmBZWHvS21fYHUXV/5abX19TmwOzJTOWuc
631
+ cms/M6RfeldLIgGhxGnqn1un2KLXJ9wGHqcTVkbp3Fvk3Sk/T2zxgmJCLLLzI7Ap
632
+ cvVw1It2vL4bmGfF/1CTjfawhEbmtvTl1NkY/e0c2AORZ1eCvz/ZQYuwZxCseP0u
633
+ -----END CERTIFICATE-----
634
+ """
635
+
636
+ SSL_TEST_INTRODUCER_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
637
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGNB8T3gN1kLSJ
638
+ 4QhzMcoS7UPLvoWxvxVqYUSEap+4EI//LDKVlFKOl5icf808nVxGwb2XD7Io5wkX
639
+ 1kppBiqudri+WwHn9ayyhdpSi6eUsi3GsuPObKUTzNH9LOli6DA++GBaYoQUVXoO
640
+ KWz3DVk8QMSCXgej5+09owdwIMHl8ytVG36/LpPjH8Chr4y2MAUtz2Dc/Evyq8Xf
641
+ BIeD835Azhr2RXs3c/AOXVWXPt9A2BW8sA7WvztNhYnqtL4EXpgG6H018aZTnCME
642
+ HEbil05fkfs+zRxgncqQ5BDSqARbkSDuSeczaJtmW7E4yqRZTFZF2AnssyDuPQcl
643
+ +qiYNNU1AgMBAAECggEAUpTg5fw44MEcF96lEKoMEfq9pqSJO9fr6lkAnVN3nM95
644
+ z83wfZZBF5xeP8aYEstV6T1L6yblClnI1h+4/S1Ol0ZsDxQIJUedXvyaTI5XkoLy
645
+ w7lBZX6rASbzz1LpIwavI22FZ+NoOLislD36Yq0zIwGxXsgi0s4NcQL+VF+xqkb8
646
+ 9Wc7wnV0LH7jsEk3DiUDVdlCvDCDVOuspOj63031H0aZR77OpcqzR3hqX/TYkMOs
647
+ 91F64owY4Ayda9zXg+nJvx5h8LyWTqeW4e2BRxxCWRcf3reQ/EeGbKwLVjjvQNyp
648
+ SiiIkAM6HkZ8P5bzrQYN5aqJvkjkg4ngeYrGBOrrgQKBgQDx6CK/2cW4k1X7I3YW
649
+ CSsqjaSp2zIyeU6wLWml1+xST8KXHosHZYAr7zZuhaafMiSqEj3rCVnVjwtcVLl+
650
+ oxB547rlU3BDKGTQpCeUn91NhPcXNK5nrV3wJwPen+cytxdPcf0c59gmigXV4BO1
651
+ xsI/5JzdJL0lzNgNy63n1oDzxQKBgQDRwC80chU5RUv0Q7IhAtIGwZMX27bds/MJ
652
+ RoZQdzzZpyu5HAkRxLOl81qPw1s7OTS1HutlrCRuuWHFGpULbysTiO+E9IA72zCr
653
+ cavggyOEacnaBzzXM9XU3JFjSNHnzrPjFaSStrTUxiERwnmDJroPq3XLXWCWriG3
654
+ TOGsVx3CsQKBgCfz9wlIpmc9rk20JaSuDvsQOcnz8e50KpLebTx+1QEjOzhKSxwF
655
+ n42iDJNkb4iLd5K/QIq5GKU04uN0+s33kJkRC6Ukir4MxdnPwtnBLYPIGiczBDsL
656
+ XyBy0SjLsBuoMallYjCL+h8jXKNeRuMW2K5Ey8OadcLweh6NLUPFIbchAoGBAMz5
657
+ v+fDuQPvuWsqoK/r3q2ljAabu5frHA2rcuS9saSN3oeWYzKPBHSfXZfydHxqyhxZ
658
+ 6/a/BBeEaIxDDvZOnE0J2/AVNB/Kc0SH4EyWOyZSb2T2/7jauhO7vQTGjAK5mEfJ
659
+ xbtue0cXnAeMAk1tkhRwHbwwM4zs/JvxsPRHahjxAoGAAlRSSamCk3Pig02/6bO0
660
+ ASWDksoRfp81GqsocXof+sea4jnNOtOyM9xTAEIgbooGVyakCxNSnEnTdWtrNkxy
661
+ 7JrD6xdelPw8BxpxJMd/kJhj+YQQDiVNxm2I99r1MAHG1bq/evaXm071jP5hvS/e
662
+ d8a1rEOCndTj7T9DNTBfYl0=
663
+ -----END PRIVATE KEY-----
664
+ """
665
+
666
+ SSL_TEST_PRIVATE_CA_CERT_AND_KEY_4: tuple[bytes, bytes] = (SSL_TEST_PRIVATE_CA_CRT, SSL_TEST_PRIVATE_CA_KEY)
667
+
668
+ SSL_TEST_NODE_CERTS_AND_KEYS_4: 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
+ }