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
+ MIIDKTCCAhGgAwIBAgIUZnoqyaLGQMl08azdwpafGGfEGR0wDQYJKoZIhvcNAQEL
5
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
6
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMB4XDTIyMDMyMzE3MjkyMFoXDTMyMDMy
7
+ MDE3MjkyMFowRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8G
8
+ A1UECwwYT3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMIIBIjANBgkqhkiG9w0BAQEF
9
+ AAOCAQ8AMIIBCgKCAQEAmal1SzZpSVae9RShUcN1MjM/B8rJD47K0c49Uxj/YUD7
10
+ oGuSKWpYw/nM7aylODTqfJt660KN+Q5AeiZemKZ+YfbiQJ+1YUZazTcjoqOghXFl
11
+ E70KM6xyOiTr1SBSS1zf161BHPvTmbBQpkqsUStSZISBKaqU4lhJnBsllei8eFFN
12
+ mHEO+bgGQbTnjVWwHS+xgdajMiemK+Cql+pIpaoduTTtNyfwp9m2wF45EUT4DyUu
13
+ cU8En3NOOrarkPPG7x+FEANo0/UrqJwozY91Qsv6EPkhFUbBvF8l/p7uNCK0CIBK
14
+ yTOoPkeHvEeWX+LZlbICpdJQXIdiZJAqIu56yOPqAQIDAQABoxMwETAPBgNVHRMB
15
+ Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBiRATAkJaW55BPdZ6TKMYfSFlJ
16
+ 9lO3K0eS6miuX6HG7OI6DHCBf18fjDLxg7O/HeVxSgI5txB4iEulRBcv35veDti+
17
+ R6PuebE1+g0QTMlw0WXlRMg+6bVaV2XwXoWQhhSnDexdQtcDPKd4xC6VGfK3sPjQ
18
+ ZSriMmrerVhGL9d1pYBtxolDbk9e/AwrnWKLPUDrR8W5DA+yJ/lL+k5pPrACNR82
19
+ cljDU3YA+bE+9LpNtfatPZwceaM7GupXJy9lngwlNAM42XFvWsTjH8Uy7ZJFOi0B
20
+ +3rLUOIXxCdpb88qeUGBN6BAUMhItoflSktN813vgKkiV7I0gNoU3XnUqG7w
21
+ -----END CERTIFICATE-----
22
+ """
23
+
24
+ SSL_TEST_PRIVATE_CA_KEY = b"""-----BEGIN PRIVATE KEY-----
25
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCZqXVLNmlJVp71
26
+ FKFRw3UyMz8HyskPjsrRzj1TGP9hQPuga5IpaljD+cztrKU4NOp8m3rrQo35DkB6
27
+ Jl6Ypn5h9uJAn7VhRlrNNyOio6CFcWUTvQozrHI6JOvVIFJLXN/XrUEc+9OZsFCm
28
+ SqxRK1JkhIEpqpTiWEmcGyWV6Lx4UU2YcQ75uAZBtOeNVbAdL7GB1qMyJ6Yr4KqX
29
+ 6kilqh25NO03J/Cn2bbAXjkRRPgPJS5xTwSfc046tquQ88bvH4UQA2jT9SuonCjN
30
+ j3VCy/oQ+SEVRsG8XyX+nu40IrQIgErJM6g+R4e8R5Zf4tmVsgKl0lBch2JkkCoi
31
+ 7nrI4+oBAgMBAAECggEAFZu+4tTD+Yw0zkIYbWcPFAAg3PenTojF/LsD5KufPg3l
32
+ VKnL5AcQdH6sUr/0e/L1BpDWuD6juGJIruS2aMEBBMWzC2NqHkPGgRU/7Z8U867+
33
+ h8gNpzaY2ZRXlaD18aMd1zaF8Y14NCSXMstNcByneXsorrNOPIYt08X9gxc3abPN
34
+ Zrln8Prqr3FcAhmdjSCCPjAnag4m9urlV5zX81pdlwpnq5LxrsAn3jXfci2bF4HE
35
+ kBKDL7IXZPVg86rSUrs6lTiqsbrqIcC0H7Mspqjp1eJhkbm64nWPfQaTZX9CRP40
36
+ lIOc1yWIrmmaaNQoesOLyjD2b52XsCNBOWMIHDsAAQKBgQDMfXuYlHb947kwcaHP
37
+ ndAj5H19xvsOINPujcz+uPxUr6yTmjmGpCcP7lHLL0fdRVN5fAMhrIzbdykSYkUI
38
+ FnhxGfP5PXVlno/1Ewht8/E7qigsVyIfIeMwa84Z0fXgyP1qwFrylK2GU80X3MdD
39
+ Y66hLhUFyU+uaJAUZF9AFyr8UQKBgQDAXlNG/vPR220syjaNpMKuiiuoPwUCkaor
40
+ +EaiXQ8XqjMNcmoLvsIF+hx+jEr1UCDtWf0hHBZAWIgZ0ek+6g3RufhTvlfjdxR7
41
+ t6h2lyTzxLL4oPC6tZU9DqW07+ENy/FGoCysB8ICob+VHHsbHTwWa2KbcqlHKJXT
42
+ K8ZMfhSWsQKBgQCqCi4cUlggBpyXi+XhnnjVX8p6LFvXA7U3SPKNXYV1Zh87HaN4
43
+ MkfJF4MsUcSQWnVvL4/rEHCQjiW5A74jW4wLgGk/d7uHJLLQN2NrCs4trvB47nuR
44
+ J7yjJwHatpyeroMLoaf+z2L7r/N7RDrt7pXnsUoJ5bw8avZj/pK12I4GAQKBgQCg
45
+ 2j6oTudxwxk3Kp8TMYHYkJCQzqFR1JuGyMPHYCkOkLK/u7wQtiFm/gx1hLnpBmeC
46
+ EI0o8mNoyp6DeJKgmPWVOPv8ilzTRu9Jw/iJsTik3QUKAQlKFiwEMgs9kJePAclu
47
+ VOEFuDbyHG4mMPp/YaKs3H5HnUkOx1EAksntjD+LAQKBgQCo2BKFm+NNWwXPWFEp
48
+ M98luElmx6qq437HKkkxnKhgkc0XlSuTlgQHIdADMAhwxjOxK+oZBsMrbZRU/8jd
49
+ qpzP0kB/WyXqmv4oZE94i6ZU4+ywowiE/7GK89zIr1sKOsmKKvH5NKJHLXr3yl2n
50
+ 50PAWFxodEEV/oUmDHAUeAz0bA==
51
+ -----END PRIVATE KEY-----
52
+ """
53
+
54
+ SSL_TEST_FULLNODE_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
55
+ MIIDLDCCAhSgAwIBAgIUT5GDbvyrLH9Vkb7sFWPi1uFfhnEwDQYJKoZIhvcNAQEL
56
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
57
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMFoYDzIxMDAw
58
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
59
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
60
+ A4IBDwAwggEKAoIBAQC8vFVDrrbPlVphmwXld9chzAuCt6cUwFYBTxaIW01Ex5Ft
61
+ sJvGti6ve5BFx+B+wwA19Y1t6QOOnOn56x0Phm5/NqYidqYCBcrrHK28OH3kBhiO
62
+ NZiJi+tybGhxg2kjZldPBmoVA2r9MU1qA0PrRpozYi1mH8W2f/7yCstAHaYxZcjn
63
+ T70KkjWc7jMpV2g/6wLUaKJEgryQWqMr1Ru6BR2Q7IVIe688ptO53JRutPj/Fh6t
64
+ J9jWyF7b0EwoYc0Un2lRrzYgGQ0gGXGJCax3pWjZAokvVG5PQEPqK9TXqWVj/J+c
65
+ aA9jPEQcfivNW0nU8LmKHZyOaG/q39Y1wd9EhfOtAgMBAAGjFzAVMBMGA1UdEQQM
66
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAvyyCobTP0LbxqcCcNhY+3
67
+ /GPpUfYgjZdRy4uRtSLjcY3v604Azyuv07rMlT8qkvyYTuTzGXqpqVN1XJnllklH
68
+ psdkdA4uhlzx2ewhZw6usGV8QZEcOl6kMUeZK7TDMRkE10EnH2Qzg7R24coy9cEr
69
+ anGHgti6QrTK62aNT7aBGIDmteI3BRXc8Pb3BClDKLPpOC8DwRPD7nmQ/0awF3nN
70
+ B7caCwX4NCUuL1/Kbpz5Nt8wZepCcnXwF8BrSsiBFoUI01tGTm4BQVc1mufCmAlX
71
+ G8mCVW2JuymC6yia/bAUbvFhowbUrX55/z8SVEKQTLRQK2CglORjOTko0UbUcgN+
72
+ -----END CERTIFICATE-----
73
+ """
74
+
75
+ SSL_TEST_FULLNODE_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
76
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8vFVDrrbPlVph
77
+ mwXld9chzAuCt6cUwFYBTxaIW01Ex5FtsJvGti6ve5BFx+B+wwA19Y1t6QOOnOn5
78
+ 6x0Phm5/NqYidqYCBcrrHK28OH3kBhiONZiJi+tybGhxg2kjZldPBmoVA2r9MU1q
79
+ A0PrRpozYi1mH8W2f/7yCstAHaYxZcjnT70KkjWc7jMpV2g/6wLUaKJEgryQWqMr
80
+ 1Ru6BR2Q7IVIe688ptO53JRutPj/Fh6tJ9jWyF7b0EwoYc0Un2lRrzYgGQ0gGXGJ
81
+ Cax3pWjZAokvVG5PQEPqK9TXqWVj/J+caA9jPEQcfivNW0nU8LmKHZyOaG/q39Y1
82
+ wd9EhfOtAgMBAAECggEAWcRt/YIk+zi7Qz9bn5fPYAjP1L2LH4iXn4nBWtuqNbOC
83
+ DRz6CppuPBLWPQpjUYdoG0IOoZ85jOQ/ORpFuTOkbKdOf4fVT5L3v7nlPGfWINVx
84
+ ano9cfZ15vd++baaFDdCAZk4bYQxp/mCK5EgBdCP2S6yDye/fx0D4pWVtIolmMpR
85
+ dViuWmLF+nPP1n8K6Gi5G6d0X/I0FVtKfNG/vTLCNUbKR/RgPrLlkNbcFECDuVEn
86
+ 98XVsrcv+xsuPgG6Ayz2CO35wxFy6wl2g/qdaTlnoyjlV1mylvfnURyk2zUBtNvj
87
+ Qxqo1C42D2MiCz2tl3lk4xHRrvtC59IzMwuo0UFCoQKBgQD0CYvX+ChKhxQRRhGK
88
+ KgysySbQ4Dn/HCumnyVw5hRUCEvZUP6UU1pXiG3HJQ64TVzNA9dKZ+KjFCtt8ebS
89
+ 7E8xhQNbKB1z/PI6VFu8yqaCKY0WpEGIaH/zk25gxJ/oA57uL6HCpm79ksOXMDuY
90
+ RAbRyxUuQ+mF7kcQG7R3la7UtQKBgQDF/MzTFd7KhzK4luUs5DFJ+fCicb13wXiE
91
+ Q7jaUIQQOHzNUiTbe8nkTvZg/C6JFTj1muk+gqIz1OPOyadAhFqfLsGY2O26GW8y
92
+ KvAi17Qd6VzSSzginOPKZZKXXaaw4TgmyyXpzLfFxf4T4kTytVyvEO7ZoA6IELV+
93
+ YstAmWE2GQKBgDNta5YIytzh2H3HaVzXfbJP9akhB7fWRPCpKye+pNwMn4ddhTjW
94
+ 0/wMWS4VhiOa0gq2W4FnoSBC2OAjkUQz3oCOCmYEbyiJTrayHl8Lyck2XnA+Dz1i
95
+ 4EwBbspfxV8MnEqPqSQvFMbFTgindnehJlrB1GXak/TQgRNI82AcICrdAoGAVbDV
96
+ weKsW8HqTQRaSnS1dIwt/1D1LTjafXyGLE8+6XpZYdBUzX4lYqBeeJmNVp2N2pdi
97
+ rkCCDabttlmG/yCJzG3DMvFo6uwJOZBmAN6VQYD4QLh3olt/J+GQcd0BwXqo//la
98
+ /ncxbvMDxf1f1CB07fyJND3XLEL3Gq2NxPbdoTkCgYEAntyUO95C6BQL46heCu7R
99
+ 6ZvexdGTyRcOpRONSWyNTWbh/cPxkjHv4TrjFUETFcd10zH1BiInm5WRw0HpTGGm
100
+ mqWwk+grKPx28NNh4L3xmb9MWXQH8/iJjwPfD9EQ39zy3ahg6nLz/SSCnazOWIN5
101
+ APGqKKOj0t5FGbG9NZgAkwg=
102
+ -----END PRIVATE KEY-----
103
+ """
104
+
105
+ SSL_TEST_FULLNODE_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
106
+ MIIDLDCCAhSgAwIBAgIUBV+nxo/NCVdtZFyXlpmq8HplFQQwDQYJKoZIhvcNAQEL
107
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
108
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMFoYDzIxMDAw
109
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
110
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
111
+ A4IBDwAwggEKAoIBAQDXf+htQ1YfVlp2jqHJ+EUmB6bhxE1tYl5i2VaZVanzjYgA
112
+ 9LDKeRhvUnaOWvLkGQbyzqvnAylXHXSNe9KAZrphoxDP40Ogu4IEGatxkAKafJ0s
113
+ KKAB3QwJlnOm2NJNuH9vOirw66ihkpz6Ydg7hmdWCF7bJgG82qwzQvEtIABUxZeq
114
+ EMJHLuTlVC5fyuIyggzzU1h+ss3bleM6oqT54yxJPoZYmvy067jeLGiyPg95EP+s
115
+ nuxLFhzeW1OZHMGmniDvO0zKGr9chiXKUSgugtT3MHUndociVCmc2OQaqjmWKwGr
116
+ O0mU5+lMgP2SojC7wpItyHSfn62YTLQ5VduDd5+fAgMBAAGjFzAVMBMGA1UdEQQM
117
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBeYWzDc79lXdOi2iopi50n
118
+ Hoc+91TiUr9Ubbd8lHWhidHcRYYWo1vFwM3of3eJ4rhAKPgwx9aclkryUEcZ05U9
119
+ tzs5OrmYsgnzdoX+zJenx/7NwuMO7Oe+XBAd16/4vGgSU9vPge1Ny4zN+zA1vn2V
120
+ zVlSBuGzmJI1ugPOVK9e0XAzJNsG5/pPRB29mbWWrrmFBmHvf33+PJms19aSfKrV
121
+ lJXYQV4Q9/xt5ehTPo20HF2r2CDiEjhV+P9QVRnwymuE/Zap+e1v+N+iWJVUB9hR
122
+ il4RskorFB1oY+FcNvDlsfO2bl29hGX3nNBQ0o8k1fjvuLz55MUNyGTeeqBGKkU2
123
+ -----END CERTIFICATE-----
124
+ """
125
+
126
+ SSL_TEST_FULLNODE_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
127
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDXf+htQ1YfVlp2
128
+ jqHJ+EUmB6bhxE1tYl5i2VaZVanzjYgA9LDKeRhvUnaOWvLkGQbyzqvnAylXHXSN
129
+ e9KAZrphoxDP40Ogu4IEGatxkAKafJ0sKKAB3QwJlnOm2NJNuH9vOirw66ihkpz6
130
+ Ydg7hmdWCF7bJgG82qwzQvEtIABUxZeqEMJHLuTlVC5fyuIyggzzU1h+ss3bleM6
131
+ oqT54yxJPoZYmvy067jeLGiyPg95EP+snuxLFhzeW1OZHMGmniDvO0zKGr9chiXK
132
+ USgugtT3MHUndociVCmc2OQaqjmWKwGrO0mU5+lMgP2SojC7wpItyHSfn62YTLQ5
133
+ VduDd5+fAgMBAAECggEAOrRYX7NxOZYvjI5sWnWseKCrAGOWaA7dAXaNVbX1Vyid
134
+ /QyrQGzekCzZqQvzkNmUf/5267Z7w4R9pLEvddUGPuTKBqe1W4rY7z8C6iu92dHK
135
+ iyYB+J/70HzQwoncOFnjNSyWWA0KYgFri/WtjwGdEt2y4WYoIQc807YPtyg5jt3I
136
+ hz4wcXbj2crI9gyN97IrIAuoXkRxA8v/YqmVJpHp0mhDIyj9/4i8XevZQJ8sxZak
137
+ rYwO4ulK8AhLL4YXg60vjAFn5HcEbynZ3Da16wUhUt8php+lmJVDPo9rUIhC+nXn
138
+ QQW2KVnBJskHIrmrK5spM5PW7hX4A0XiCKJJ+H0XEQKBgQD+CNiObbyzBM+WH7uz
139
+ gFRJtZkwnkWBiMW4YdpEpBuoPyTJ8QgyJ70+7aI5pLlib7Rn9wjuaqZ6lB1+Qvk1
140
+ +SiwdlUDQpHg/VCGt9yddsiKd9gOU9obgR6zJaQNggkNrBNYMxC8GcaXICLd47ud
141
+ QmhaR7mjMeD1XFFZ7U1YM2oW1wKBgQDZKrzcMrQfXpgzO2ftoohYxL/XsTXUXyFl
142
+ pJaJFdM2B2dNzJ7rhj7AvN9BrD+csXD6tI6oeNxMrffeX3SXSAp+UkF485GERnv/
143
+ mn+jfE4J2xEofyK0f7bVqr8r6nhea+h2BV22dj3dBxGJ3pTt79kNbeh3qmMwuWUk
144
+ 1SQqMm1MeQKBgDenjHo3xH2b8ja7oQ3EcbLsXDFwm12zr02j8oPTSFPl8ZNkgR0r
145
+ 46Qjv8TNN+g+/NFCJ+zD5NE6HfQJjDus6KMwaZObRAZ8uOWq5mSBH5JmiykoacJY
146
+ 2Xb6KiTjdkROjLZoCaSMKRv26GygdfwQDnio+hys0tIudYw0FxvZt8ZlAoGAa5TC
147
+ bosntAqWd3rMZ2qHBQKizuVY91YRI1s/v7VyJmfQgzgE2kRsvepS5yO/d45nm6rq
148
+ qQcGi237Rswe4/qqSB3TlWmEAvUv5FXTOVgRCMzfWSJyPNyv5HVrswO6kXv/csgB
149
+ vqwgxWgFBjmfqaeR7RcvfGiKLs8JDhAQlF7aynECgYEAhYFtUuphLMVnPObGE90a
150
+ Ly00uCPeJ2RUA746+7B/hEuK6Vq0lx5sjkAcC4lljtczMYqytNfRlj+Pm5i49qsD
151
+ LSTPIGleWHgW/GzAUL5HYaIAxdckKpcvY321szR2CiYjG52H/iB+sJSJ3iY0S1gA
152
+ uqiteEzAks8NoZnUpvLK1LA=
153
+ -----END PRIVATE KEY-----
154
+ """
155
+
156
+ SSL_TEST_WALLET_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
157
+ MIIDLDCCAhSgAwIBAgIUXxPjAJgu/kDoq+EOobX/wSYZjW4wDQYJKoZIhvcNAQEL
158
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
159
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMFoYDzIxMDAw
160
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
161
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
162
+ A4IBDwAwggEKAoIBAQCzYrIdaNeAReJVfaMXpHtY1JgjpAAP3XipZfrmRj0SY4pS
163
+ zHfEDSZByX7LLwde8B2ivQHDDmmIgDhL9TZ3pZlYmk2Vq0BQHJMciaI/fzF1+FNQ
164
+ imkccmvsC+LXft3SMG61ldFszMkVWGOLdflBzBudGa7z034czq3/Ucj2mE4jEsPI
165
+ OxnFH06DBadMDtGfaiyFPvEc1Ywr+LdJQ24LVrih1IZ2dmQtS40n2K77UUsvUs3s
166
+ jNx27qISfUI/tspa8DnKujuY/9x9AIzo5ldq8N20Ccns6kXxSewsxX1vH2uNH9RP
167
+ ReReTFsZU3z8xicFx8SBE4VcRXXTTsqm974QMYJlAgMBAAGjFzAVMBMGA1UdEQQM
168
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQA52jQ4+CoZILaTRP3mFYpg
169
+ 1OmD/bwzBsHbDZhB1co6d6lWel07fj3uNekBigyHgnciMGvXm2wSJIxEvsMoXIPh
170
+ yyBjdLb8IwaZRldnLPewUuTuA6WQx6eNwA+qEn6vT9tBVLMO0pRNXy1201c7oeCj
171
+ QCJQzn+tZweNdGuX06xgPX5q196gFS+BZDw/sn3ctQ/xCXC6gno21NRqyM2VdSCM
172
+ UIzCBQLoL9DVvpmC0atV9BO7LTvOYlEuCF58IXpBBi7P+3i1Q2z4SLamsKKcU1Pp
173
+ dJkK0lA+FfIYEGsUV09ddxGXRghU7YV0kU4iPMRs/ckin95kPiUOQx4lLo3N6u8+
174
+ -----END CERTIFICATE-----
175
+ """
176
+
177
+ SSL_TEST_WALLET_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
178
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzYrIdaNeAReJV
179
+ faMXpHtY1JgjpAAP3XipZfrmRj0SY4pSzHfEDSZByX7LLwde8B2ivQHDDmmIgDhL
180
+ 9TZ3pZlYmk2Vq0BQHJMciaI/fzF1+FNQimkccmvsC+LXft3SMG61ldFszMkVWGOL
181
+ dflBzBudGa7z034czq3/Ucj2mE4jEsPIOxnFH06DBadMDtGfaiyFPvEc1Ywr+LdJ
182
+ Q24LVrih1IZ2dmQtS40n2K77UUsvUs3sjNx27qISfUI/tspa8DnKujuY/9x9AIzo
183
+ 5ldq8N20Ccns6kXxSewsxX1vH2uNH9RPReReTFsZU3z8xicFx8SBE4VcRXXTTsqm
184
+ 974QMYJlAgMBAAECggEAT059DH+DdtRuofkvl45Cch1bPbaNyHXTmKDbcd7vtSeI
185
+ yd5XvLdLiJ46jj22doSVtZL2KnQ+t/hn6zz33aG6z+84CclyX3iimWVH8+aZyVwG
186
+ CX+HxOnZSLxgh4ExNHHxIBqiQgWviN5Q9CEuF6bTNntaW7XO9ZFyX4Sa4lqngN1W
187
+ 7eOlt11xwnTSd+7D4YODKeFsmNEGatL7Z/5rj2p8fYdKjEMQd4Am4tqnhvuy+/Ia
188
+ XUbrzloMaDH+aqwfE8leJq8VhBpVjUwFSKo0zHw1Rm3EVqFkiyPhJy7M7HqZWEO5
189
+ 0yWq18FnRzhp7Q4iZapYNHLHqQk4D77lE0TSAvG66QKBgQDmqiCEvRksmTxQjIEj
190
+ X9cQIrUM/Rxs5VM9I65gG7726vfoGFL1c8ZS3gzdgBgtxx+9X3CqiVnPfzXWRPUT
191
+ S+pYc2DJnsjZVY/rytbX6T4Xu9mV3ROFeuZPxBsfwgUaMbA8Qn8ETY5inqvrABoB
192
+ DYuvyvTxvRd6Bktthf56hf1z0wKBgQDHFrHQbq6rLrvP9vn86s/pLf9dIgYRjAKs
193
+ CoeKQMFfbZB5Oinkx53N/cwUebFLtU5hnRdO6jmiJ5ITkMdjwiHoMnWFz7wvI/Zp
194
+ V3XjgDR/lIhAUnF8jEwkKnbD/2sqDJiXBGxGqx0nvlreMGmjs2HBtCGvj7Ep3FNR
195
+ YEo0FG2l5wKBgQDa0jIfOrUTFhud3mzz/gusBwDy3XuF4tfgfGUET84NuEKOL+Uj
196
+ bT2Lh5N03fwSEYEOyee8IKjOq8OLDcfhEneyiWIcY0Huy7jI25iNI3wAT/jOrvfB
197
+ /SFYMpX4vrrQaqrhv8N3dYvKCvTU7ze8H/mQP123pscKv8X2lNMhsNMMeQKBgQCp
198
+ tcTaAp/OuMXM36H2YUveYCGBCJHXv1w/v7IOvmiYqlMvo882gJsaj7C5+4qRGPq5
199
+ 5ymJUczTV5wEJbRya3hv8SORb6XhIWzaG34Y8p7N6pXDDwRCwW3ennwjU8XMUHR6
200
+ t4B9NTxjNrdLFEXZD/7TGnRkrb6+ClzTz5sxjgByHQKBgEzWqkA8UPHV+QhRzq4K
201
+ vn4ImY3nZ2O42Hk9CQG6g3hL1z3yUpZeL6p5Wuw0p8NLn73YTY7iIqBZ31oJHOrH
202
+ Gr/SYiBP7dAtSPzhLJfGWuStXRCJTfEyudAv8KMXlxspdyLFu4iVN8rCiqlGP+KB
203
+ OEAo20EYspmrDR5Xq4hJtsM3
204
+ -----END PRIVATE KEY-----
205
+ """
206
+
207
+ SSL_TEST_WALLET_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
208
+ MIIDLDCCAhSgAwIBAgIUIlcBc0KB9zljlWlercBlXSmz7i8wDQYJKoZIhvcNAQEL
209
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
210
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
211
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
212
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
213
+ A4IBDwAwggEKAoIBAQDFXFmZ+JAM+10oeWht8WutI9nkQRV2oMtCwmdJYerOQXEx
214
+ NGNAsUZAYQi7pUi3WFfKIOXcr+hwCFdCaoXG8A07kpAXnKlFYO8agYCwcyiYGx1Z
215
+ raB2UtUik/6j1/N6bluG4uMljojWRIAK5umAVALAmEHj4Qu0QSsv2Bi9cjqlPn80
216
+ /mM0iMqXhuQ3u+ae3t8yxbI8pQ2Zt6WJV1q9idiu6JB1ZBkm1VSO2m80rVIia4JS
217
+ nK5y/psDK5xzhi2NMp6WrCAc9ll0uNEysW2c+1ZZ5K5Sx6aEuOJadDGmZwxaHBdg
218
+ EUxrKtCTFRppHmgsr/pBwwXtI1g6rHY/Zm/8SRsDAgMBAAGjFzAVMBMGA1UdEQQM
219
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAn8BB5RX1ZvKsKEY+UMEEZ
220
+ 7u/yoXiocrxFsRyHGgjaB3Lh4ArMsFM6I3xIbeKjojidci2d5IxWACM4V4A2MQoG
221
+ FTiX192lg0a0VgutjcylGfXQuQuC4vQux+WaShksDTYn+CKl4vSDaZIkGi6j/MNb
222
+ lqgULuMUuilLJyNPqGobz/b1jE2N6uqMD6YUJHakD4ph/oVKOcxyvlcV9jGIdOgd
223
+ UlEk/zn3PPC6CadBQ3diEm9LYoLi3QPcsLYIFRSt2YcmdvMSl/9+uLAlP2Ja7RQr
224
+ 8KPvq4WWGh7S/9tblPBrPeab+Zw405qBc3RfAYuLvk4+DXA0iXIBO5yNSDpXzN3U
225
+ -----END CERTIFICATE-----
226
+ """
227
+
228
+ SSL_TEST_WALLET_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
229
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFXFmZ+JAM+10o
230
+ eWht8WutI9nkQRV2oMtCwmdJYerOQXExNGNAsUZAYQi7pUi3WFfKIOXcr+hwCFdC
231
+ aoXG8A07kpAXnKlFYO8agYCwcyiYGx1ZraB2UtUik/6j1/N6bluG4uMljojWRIAK
232
+ 5umAVALAmEHj4Qu0QSsv2Bi9cjqlPn80/mM0iMqXhuQ3u+ae3t8yxbI8pQ2Zt6WJ
233
+ V1q9idiu6JB1ZBkm1VSO2m80rVIia4JSnK5y/psDK5xzhi2NMp6WrCAc9ll0uNEy
234
+ sW2c+1ZZ5K5Sx6aEuOJadDGmZwxaHBdgEUxrKtCTFRppHmgsr/pBwwXtI1g6rHY/
235
+ Zm/8SRsDAgMBAAECggEBAI0bZzDP5+ZwPf33N/QLfWoQTPSGmBr2Af3cUs7DxIbt
236
+ gUml5CTX2pujBQRsu13jOvlYpiAwYSbgv8rLsJQ5A60JMB7BssDY+ntgBiuiWm7O
237
+ TCDXI/gVZy/O0mxAtWNeze/V/oPWsf1IgqfIy0AmUMV01v9f4udhBMizX5TrvARy
238
+ M41moISNV51S9CvVyKto4ojA9G4xkritKMJ0lsh4Pgs7Jp+/dIpWm1pZ8/bi0YEs
239
+ cJhxNswOfIM191G8u1Qr13/279aCauObqY9t6a1zuCeG9nqdbJJVK/OmjxX5W1Uk
240
+ vnKmxRyzxyw59kmnO5Gm63YE5gLZ99K/3qrVod0RZ+kCgYEA/+xtdwM5r0bwOaIT
241
+ bsVNO44Hn/9k+igkjXFNrt2e3nE0bOKwZY1lfhTknGBpVdHe4Tw+VJ1NA/nCAlXx
242
+ vlsVFjdyekC3gSAfsVyS2/F5BTMOPOf8ixcHXE759pyyXtKyTzhBZyJLXD6ge15U
243
+ SZkZhsetTKTkcFsFK+eYT4tLdM8CgYEAxWtxlFFbtyOfE8uIgRv9gnBS2bPusXHZ
244
+ MWnd/W1PtDgXdwWli1L2mFMbrY2UtKae20SiSZGRkjg8qZK+KedR7yxGu+AiUXte
245
+ fWnerz3UGIWbD5uPfTmpQBvBdXSZ0WTGTqsiqZawajpd7y0oOc/2HuBBKGpMped9
246
+ XgHrHKP1K40CgYEAk+8bu47OumXcGMR6TS6ZnVJVUAQ2X2/y6RvUlr8exWBUuJg0
247
+ 9Q7N2xrCpy4H1YbSOgoz0X939FNb9TOu4KUPxF7aupZMPMTP7Rsg/ShRF1NS6JwE
248
+ 3HW8WHyCey5K4QsT7T0MeUxWmYTOCWIWgNCR89nacBJkxhmnHKDr5xcSz/sCgYB8
249
+ 1+lHhfud4OTkO73jB7RVHHsIOQUlKX3UBcLgVJQmv6H3HpcFeD2BLm0+X14+r2+d
250
+ 8dU++NM5yF50Tdv729CwkytX+/E33fBvFtg/sbXCnBrmz9T5t9EUPXklscrj4/qU
251
+ HR0aabS+OJLWgZQCm0RlWiNaT36RG8boAAaSYgzUsQKBgHsZ9rP2HRruZvKKIx3u
252
+ BeNhXvrT/uyCgmGZ6DfncWsobF9HKjCd1e47wjhoPBJsKq0u79DZc5mhb6NyGa8e
253
+ qz8qD09ZqK3uVvxtZwDGFy4LR3vo6kLKnnJL+pstMrBGKyRBHryMF3srhMzS9guL
254
+ JzcZQSFoJRcYc82gq29lDJVe
255
+ -----END PRIVATE KEY-----
256
+ """
257
+
258
+ SSL_TEST_FARMER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
259
+ MIIDLDCCAhSgAwIBAgIUH4ybLZJDdYBBZEXa7rRC0r1WLYUwDQYJKoZIhvcNAQEL
260
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
261
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
262
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
263
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
264
+ A4IBDwAwggEKAoIBAQCr67MRDiKgPiH15yQ6ZJeEcghZEoYXb98sCwHKTk7cDMp+
265
+ 9Q92IP761jOmqXn1BTXNZQc62a1kZ0yIBUdqCxH5R3+BGF31fDwK0VPQhSh7Np85
266
+ iv3SHlrJBmNF+JX6A+aiKf0f6Zaq0pK1NiTaY7mfXMynSVdxJwwTgqQR0qfvqXEm
267
+ XWBeARhXpUelIyUexXHrGpXumAWY4wn1YEW+SpcGNXElidd/HLbJ/OHkCExd0nge
268
+ yKDQBabCAiIb6fm0wmL6HcD++mqsEt9II8U1qoUPfpUWxFpUSWBoZWcATqrPIPYu
269
+ LeHPvl3ZctQCuTthWHvum1zRK3G8YUXcTWwWsNBHAgMBAAGjFzAVMBMGA1UdEQQM
270
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAb3eNfxvPPv3QjmDEIcOhv
271
+ fyGS8orMzygz0eCtX0ODKsIWEBZw7bSym6fhEYvkltSf41KkeBInjDJnqiCJ2Yef
272
+ VvXcGLyHw/klmkafcvcVCoa95TNTuKb9ElJbdIuoQ3EWk4uQEK0ARH4K+mXA5lzh
273
+ RVbG9EWvmdYXaG9BrnX9Hr/lCEPXynGtbgKvglpFn8mAWz2ru44BsrkiZgMFBpPF
274
+ R6VJV3SRCTib0nsYXkLXyRgG5JcH/VPpFfyS+sLi/98AIG2mTWXTpj4dT5f9epTr
275
+ Cn00kytB4+9ZUvCMUrg0BciQkCz6lr46gcOwbMpzoxXWnK+cwPcr9zu+LLEs1NiZ
276
+ -----END CERTIFICATE-----
277
+ """
278
+
279
+ SSL_TEST_FARMER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
280
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCr67MRDiKgPiH1
281
+ 5yQ6ZJeEcghZEoYXb98sCwHKTk7cDMp+9Q92IP761jOmqXn1BTXNZQc62a1kZ0yI
282
+ BUdqCxH5R3+BGF31fDwK0VPQhSh7Np85iv3SHlrJBmNF+JX6A+aiKf0f6Zaq0pK1
283
+ NiTaY7mfXMynSVdxJwwTgqQR0qfvqXEmXWBeARhXpUelIyUexXHrGpXumAWY4wn1
284
+ YEW+SpcGNXElidd/HLbJ/OHkCExd0ngeyKDQBabCAiIb6fm0wmL6HcD++mqsEt9I
285
+ I8U1qoUPfpUWxFpUSWBoZWcATqrPIPYuLeHPvl3ZctQCuTthWHvum1zRK3G8YUXc
286
+ TWwWsNBHAgMBAAECggEAeYUdCY0oRIQmlR5QqUW5I9FGvU8uoRpecU9GcK1xaHFS
287
+ IPMvfpxMHxmRYNiib+LC6O/kcGC1AydRHUQ9+mLgzYcQRTvoDkFGX48e42F7/7vY
288
+ SGBKkV8LZNSzDx5rRFHFkBKF7Sy7Zvt438XpvsSGzHJX5lcdC8pB6viI6GAyfF/r
289
+ wG5ikvh7Jh8+UoWVI3VhwEKm6H4E8G5V2pUlIcG6avhIEcWsb8af4inMAncTIHuJ
290
+ 1NifePOv+Jeq3COFIj70eaHyuzhy0ESWvE6h/nu3e487ZnXZxC0w3b2QlOmVe53o
291
+ AkFpwzUBaVjeNtRwBiWpC3IUY2VbCqNR0/7NfIC2gQKBgQDcRd8sM2e6VHiyjkBv
292
+ qtiHFGZvZz7kd7sE1zV8KuLlT9sTsY+HQTC4cMtreZzdescTB3oHUOmfOmJXxrst
293
+ v1TfbE9ihfvfvndrlFovGv/KtllnK6Ku1MS8p3I5W5+g7MPndcO+VS2QPBgvLAUq
294
+ mIhWn77Cx/sF4q64nugek+7B9wKBgQDHzifuyvoywqLMYwQti2MhDbikd3MNBbpS
295
+ TdTYFTaCW/M0nQog6B1g3edD/gsGEQ2BEvX6a0OBD/40X1DgOCmuIBAKnwq2HiGi
296
+ yAc5ln2Zs/Ay8vjRfFc62TU84dY3xJdZ1TW0fDr3IyTi9LUiCMawbpC81+g2Wxw2
297
+ PNbv8YPQMQKBgCOZp1gddsZGoLs7Am8JzbUHNwcKSL/kGfXOUnae98zX+zBToj7Z
298
+ 6mXk1PupzBB/p20L6E0GZru1U++bzuS156G0f6AMx4iB4AsjDvBODMlWb1ydUM2w
299
+ 1Zsn9O4QQNxhZ8gg4GICojqNe9sj4jHgNSjK6KnSaF+rI1HzXNCUWCJBAoGASzcp
300
+ QzR38Wnh3S0dIoQJYiUHMCqjTfCtDlSsXlfF+Fbi/Bht+qtGe/OtHqRgw/zhZ4ia
301
+ vpVoiQpbOJ31FSMvVZROVaE/aAV5xgyk46HqUFUzhAqBbmLvd4DTEMM3YDEKhM/F
302
+ ctcdX3GEbkeOdGx3V22X4O8qRGQR/7zxcMwrQdECgYAg658h3apvIUbFaV3kOlZN
303
+ vZE+3uCFvFgrpI1eTmbMo50oDpzktr168MVu2fSZ8hB//ip+2AAIdNhzH8hi04fO
304
+ Xzesu+4/RgTv7wStTxMJS1rWUA4gGqb9Y7ZGMVuXkbEnG2EjFPQIrcESPytK7CT2
305
+ leydrAQ8338JrQG6x4jLmg==
306
+ -----END PRIVATE KEY-----
307
+ """
308
+
309
+ SSL_TEST_FARMER_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
310
+ MIIDLDCCAhSgAwIBAgIUQv7oQqnVOgMJxwGj1o9mVlDjSV8wDQYJKoZIhvcNAQEL
311
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
312
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
313
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
314
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
315
+ A4IBDwAwggEKAoIBAQDWc6RPgLnigv9641Ig8ro/KxVnUM3ORHs2hgp9Cj4lljnn
316
+ 3Pl1IOlZu4pI8nQ0MGNVaiRTH5iqi1PmxfngFSsCAKjLFjty/Av2HpFiuYXQPxrC
317
+ suMPbF+KTpxi0QyxM/04inX9sZZpAPXbRtJ7XuFq71jB1mHvvyq/7/0mzTMwdUnX
318
+ LRfTMSN8TKVc+x0nGaQynIQbFxW2UcWLShaeNpfk0++2MeHOqrJo1LRta3uN8MBT
319
+ tdd7ISMv85gbwBajJ833BeE5/hxbDuohWnN6NOko+lKf+iaiVZG6LIqg4YLO8nEC
320
+ 3eCtPSqZDeMcojF2TpfAs7RYy/uPTnrurq1I3M1VAgMBAAGjFzAVMBMGA1UdEQQM
321
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBQPItY6FjeAmX7cpd0BPdo
322
+ lWYb1yYOUVdVkHV5S160tGhLCcipZF511IOvjH+UUh/YVRUPyAhb+tCURTxWMAmz
323
+ xKiMESk5uJWoxWKZYOTkEE1SzTHdOLIO4gVz+z5ewovgSHOQ6R95AtCCeFNf+G8K
324
+ JZux2BbxkHZTiUK21UiarheTIOvdwn4W3NaGnDaxgIQncptLlLUSHKcc5FbLNhU9
325
+ 4dlPe/VMglwI6R7euYFBdcJCpAnyhkeGGiEGZMPgu7oG8AY/PnbiAq4EFQa5rwB9
326
+ KtZGtuEvHhChxuCJrdhS3arkhq7qNPQc2iYRUeAnzK+CqVMMP+j9SqJA47YEoLKN
327
+ -----END CERTIFICATE-----
328
+ """
329
+
330
+ SSL_TEST_FARMER_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
331
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDWc6RPgLnigv96
332
+ 41Ig8ro/KxVnUM3ORHs2hgp9Cj4lljnn3Pl1IOlZu4pI8nQ0MGNVaiRTH5iqi1Pm
333
+ xfngFSsCAKjLFjty/Av2HpFiuYXQPxrCsuMPbF+KTpxi0QyxM/04inX9sZZpAPXb
334
+ RtJ7XuFq71jB1mHvvyq/7/0mzTMwdUnXLRfTMSN8TKVc+x0nGaQynIQbFxW2UcWL
335
+ ShaeNpfk0++2MeHOqrJo1LRta3uN8MBTtdd7ISMv85gbwBajJ833BeE5/hxbDuoh
336
+ WnN6NOko+lKf+iaiVZG6LIqg4YLO8nEC3eCtPSqZDeMcojF2TpfAs7RYy/uPTnru
337
+ rq1I3M1VAgMBAAECggEAKxheIqPptv1APf/El15v0xXjXTm9wf+9Cv3wyaPvTTpd
338
+ NJ0RfFo6yo+HgJVIiNxYeee0mQe2dD8/gxax2jgmxmY/hWBYXgkMlk8aRE6n92tX
339
+ A11Th9vtbyvQ/YKpHEsoTd51S6AOa9eHkKMw1R4CCq1CluFwGO+/tYaSxuNhsBDj
340
+ dQfz/MMWlIOYxs+NQc6cqgJlIULch8KhQ+DxTnkBYFBVCeo/kTRHfw+kB5OYevzQ
341
+ cUE+mli14Ifv84BOvz/t9+/tV3XT9tUvUM8uprxhl00/ZQ60oIOdvGrgIsWb2BDa
342
+ MjCGMvlzpgNW9d45aI3k8rJuGBTTJfeZBlpQwUv9GQKBgQD72XuhG1e3gx7UCRIt
343
+ Ky1CXIZowQSdgDB/qJT8cG710ftkBp217aBqf2xyIlSU4O9yPd8rysh7CAkVj/DN
344
+ 1k+4JC/d9AaCGsz2BcyDPw2JTWErQAr9cjbNTBUmmIVeN6ZGXLjVKzlQbUfe0dA5
345
+ uXpDIR4DOklms0Q0AsUvp7HBDwKBgQDZ/GIFEavfIer239GwKWk+VIe4TUgzWXwb
346
+ WFfGuRE6jzd0gsSy8hwciee2gnTdI8kj01PQ5r9dD9D/bXE86aNiX5veMoGf1hpp
347
+ 3SX+bCgbUz41cSeJnb8WiTcQaq7SGho+kn+KkK2c1a6sDwFpKdAkP/YW7RSdl17G
348
+ UeWyvfYDWwKBgFmkdKPIlrVEH5H7VJPtPWPUiSb6JQlmmlymBbnAz04CGsfkrvgV
349
+ h7bAejo5y/9d/Pyd1zTALhHUr18UZ/LsKF3zy3HmLPbcUT30nHHO3KOVflOlrQO/
350
+ RpBWV2TwfvAlQLLkyAlgJDtjWmSOK96QDVudixA9C+lZP5p/re4jc1qzAoGBAIoy
351
+ vL3z9x/uc/Vx7pGdn3B5zNWmgUi0yb7YYkXFnMugcor2QNgmMHZTY8jMqmRsxJ9m
352
+ 4jOFpvrMBTd63hi9Eu1SKhJTuORpq7NEFktXrJGuU7kz9NoFXVlfQr6wtAbVr5/N
353
+ 5vglQzw0KJpCpSVT8faZal4cjj5e8iIPV+3bCvYTAoGBAMwzbamlJ/bYK/1rDtVB
354
+ bY4kcjf7bYvIvtIKpAOooY+ecOXIq0vP+wqJCjNtltKZUcVvPQMkw0ykhabuKsPj
355
+ hx2mcPHE7koN3UUmMfYdr9GI8DpACImSI5OgAUn+0U9kX59oSGxxMF0ZTjJLp+sN
356
+ UMYmnIWCoC9PGLsfs9Gt9E/p
357
+ -----END PRIVATE KEY-----
358
+ """
359
+
360
+ SSL_TEST_HARVESTER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
361
+ MIIDLDCCAhSgAwIBAgIUCg9lMTGr9/8DyLNEaafobyIYAS0wDQYJKoZIhvcNAQEL
362
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
363
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
364
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
365
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
366
+ A4IBDwAwggEKAoIBAQC7v3qmcCjmcREbWhZbtKpeZEwUPVkFpHg9yd0YQW0ZACZf
367
+ BZsJn5S9fkpfpJ9E758wRqvntAoKUwh0yntqjSNVEF+IwPs8eVV85yJLjZWzRlYN
368
+ FyZnr4ihtKAleDkXnSwDKKuWI3tm68GCmGlvzRvv8gR9/8Wut01JB4LjUslzaL5B
369
+ dM36gzjWGSxUD1A0gdG6leCMbJkRV6VQDLKMzMqfkrkleNZMfarrh4y2odaxGSlt
370
+ YGvIkeJg4R/vhUdWWnSCSZk8EtPZTC2ic/dMh0TZTw6zsaq0kkSf17a9HQ7exjgj
371
+ AMzTl4/O2mPQ1/j6t3nLqxXAMKRmQwe0RhW47fCzAgMBAAGjFzAVMBMGA1UdEQQM
372
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBSd5/DP0a3Pi7gQeYounMW
373
+ 9qa/ZCn2JyIlCSKPiQ2lRJeFLzXzG/e1hEiNtSBWS0oMi5HtyhsBSbmPeEp4Enl4
374
+ Ri7UR4OhyEOddOAI98IEPtditV7YVczQi0h8a3/518yxvqVcUUOmIsABIvNWWtB+
375
+ jov5sHygh2gQ9LK/9SXWxguvI4U0AiFteJvLKSFqqcUWbNXQn09fJNyM8Cx6mnTG
376
+ 5pba3FCnr39CdRgzn21Zp+plodI6xu2T/VmvkBcU4jFVY/i36LJkJ0EBjcaUiE3h
377
+ /1+POQXMivBuERizoRvtIx/xmsfKaFSp26iBW0I/AkQjCAJiVS+RF4DfaHLzg8jT
378
+ -----END CERTIFICATE-----
379
+ """
380
+
381
+ SSL_TEST_HARVESTER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
382
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7v3qmcCjmcREb
383
+ WhZbtKpeZEwUPVkFpHg9yd0YQW0ZACZfBZsJn5S9fkpfpJ9E758wRqvntAoKUwh0
384
+ yntqjSNVEF+IwPs8eVV85yJLjZWzRlYNFyZnr4ihtKAleDkXnSwDKKuWI3tm68GC
385
+ mGlvzRvv8gR9/8Wut01JB4LjUslzaL5BdM36gzjWGSxUD1A0gdG6leCMbJkRV6VQ
386
+ DLKMzMqfkrkleNZMfarrh4y2odaxGSltYGvIkeJg4R/vhUdWWnSCSZk8EtPZTC2i
387
+ c/dMh0TZTw6zsaq0kkSf17a9HQ7exjgjAMzTl4/O2mPQ1/j6t3nLqxXAMKRmQwe0
388
+ RhW47fCzAgMBAAECggEARnkheMgxEg7u9O1j5xhxuuy7Af3lJJEP8WGMdEZaxT+h
389
+ J5nbEEmuc1KsaCpK/n1Tq7NbY6XY/vcb/XrjyKMh2BRFR/foVlLVHAVGgkWrI5gL
390
+ RO6jo9fn2YsLcgUmqQ5+LtFdVwYKlB96i6LaMPU0v2SA+yq+8U4s3HTNVLcGlyLc
391
+ v4eBAdGBIElWMK4ucH4IXmeVvxpvOHiC/mfMTu/LH6xk0lb6qTdM3zIzsPXjhjEp
392
+ dmnPMrS1AKOZ/abw/Yvi+4kuG6iLjeQWB+Z+BZQ0VJ82u1KRVxiH1USJo3Rm2lls
393
+ OB806LFcgOrk3TCErceglIzSixJP8LYLP1W7JcDBQQKBgQDwVRUx6Tvhc5cpYOu8
394
+ LrB6fIpdDTGccnLeoC8flqY7ou+ddYuvQTFlsPP4FLMcFuPJjbqbXPjwFRLcZFjn
395
+ aZE5VOVYlP5EzN2MQNZl3GNsKquUK/HqZ8hmacAknagDDad3Dxr/a+2hUDNrLHPr
396
+ YtQ5jabUfCi1eHz9FL3/RRyhdQKBgQDH/NApKnpYHYyvAr6vl8uWYm01VkS+pqON
397
+ wPyD/USCAU3lAPlr+Yt6hphhEQ67+aZZ4kcZIrYWdIJ6JNjNxVtqjcEPu72m3/qz
398
+ 56/9CmIEDEKfIoBDvNOJUS/O+u4SEuLpMGreuO+POw7PQ9iA1PMrTXH9lTwEivlz
399
+ NwpEnvwchwKBgQC+SI9EekcIBQ4tG+jpkQn3oP2oGRcrqE4cyDUnTI8HbsVLJVNY
400
+ ikSDIGy6AiGh3tmxrn6OHjmXVQge6XCeoK3z96yyyxza+l17e6aE9c7eSJaa9YRP
401
+ tKYtuBMCqrTo3fm2wYX9r8Vw0GA1vfd16kTf4LCzUi6lJ+XGN5MLNvwpNQKBgCoW
402
+ 8jSHxSIAbhhzSnCoUOfApV1hX6yEY820vTCGQEHgRmWZE+V+qrVJ2I4tSd2UCEfI
403
+ kNAgdxQ4xzEvyhVcoQXG+cf26k5Ru3DbpTVrVv+lGOxnFXmsJxUyag50z2Asa2dK
404
+ kmN3pquNcWt7yvgqWVdWwFPvcac/HIr8HYQdtc/HAoGACSOB38Pq/wsud66os5i+
405
+ 4TBx5wK46uSRWXpLbjL8afuFLhrCiOmtqiOVmTVmVYnASPcpiny2jLtanPlu9WZl
406
+ PqdUO50/a4zLcGuJ8grnNn+YplngmZTtZJVHn72XAIphdQO8rt1UFjozyiHxYPkX
407
+ q0cBfURX9v88SepGlqqyMaI=
408
+ -----END PRIVATE KEY-----
409
+ """
410
+
411
+ SSL_TEST_TIMELORD_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
412
+ MIIDLDCCAhSgAwIBAgIUZZmj3NMn41MJf/JZnA19S7GWBEcwDQYJKoZIhvcNAQEL
413
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
414
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
415
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
416
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
417
+ A4IBDwAwggEKAoIBAQDiAHh3GaeWWIKsNlwDE6s8EfKs8AKvq7ThxFGtTAbZs1MT
418
+ ckyg/7/phaihOVXmpdl9Lhul9nUxr3pFkW3pDuCXWeF/QB4pJqbbDUdOl1fu1g6z
419
+ 8H3hLIKK8+yKm8SliLKGlYlm0lrCh+bR1gn46ACImMxs2PiLJydaG6TH/rnQZo8k
420
+ 8S8unwpjrI09dwnwdhTGG6F3789bEHyZbwzmitHRrzYUKDviazaWvyspDNg6CJ9x
421
+ +ufdVyY3vTAVsQZaGyTZMqxE/3cLtT3CHCGZaMddlVmicEIkgKh4vCYV//6suVbW
422
+ cQnzBXYCbAC0jp+TaHFoLztoB++ODJbQ02kI6xylAgMBAAGjFzAVMBMGA1UdEQQM
423
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCMUxFYqgEUN06caqVcTTZ5
424
+ rW3V8oRETxkCZ5okxRnKKJk6L9YhdkiL4Mjsbn+9ZwmWwEZJjlqOGUC8uZZgrRjr
425
+ fqyftmYjvRVMZNZoh1wqp3kcEDXPLOqM7ixpK/D/ScOZc8G0EpiTykj4lmgF8/7t
426
+ 11fCyv6vHYLqsDFNC3BJ8g8E09Zej2bEBwTXp6g52J/YCuJ2xpu9g8mOF2xs3ECv
427
+ M74JEGlF0eNjuAQ+R5J5DaNwojHDoVYMYT5X/KaPxmLLl6b6n7ZvKuCZHs1CoLFn
428
+ 1Jg1JGLOczrHvHnRPr4zLqffdnq/SFQP1MLFs+QUORLpHved+PPZJogSbRn7HzGQ
429
+ -----END CERTIFICATE-----
430
+ """
431
+
432
+ SSL_TEST_TIMELORD_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
433
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDiAHh3GaeWWIKs
434
+ NlwDE6s8EfKs8AKvq7ThxFGtTAbZs1MTckyg/7/phaihOVXmpdl9Lhul9nUxr3pF
435
+ kW3pDuCXWeF/QB4pJqbbDUdOl1fu1g6z8H3hLIKK8+yKm8SliLKGlYlm0lrCh+bR
436
+ 1gn46ACImMxs2PiLJydaG6TH/rnQZo8k8S8unwpjrI09dwnwdhTGG6F3789bEHyZ
437
+ bwzmitHRrzYUKDviazaWvyspDNg6CJ9x+ufdVyY3vTAVsQZaGyTZMqxE/3cLtT3C
438
+ HCGZaMddlVmicEIkgKh4vCYV//6suVbWcQnzBXYCbAC0jp+TaHFoLztoB++ODJbQ
439
+ 02kI6xylAgMBAAECggEAOAKJ2GqBQB97cxadwx1yyJZiID3zTHovf+xZmatH31gz
440
+ 9JPVLel0NHmtixdclKbxubZdn8nuzXuBwBAEv0eynY/m9NR9JRGxNISb8XxMjKJ8
441
+ TlgBunZ/e9RsAQYNvECejgAtZ1AmsiNgLwzut8M3rqK/txImtsXjWM+VDQOyJVVu
442
+ SZRVCZvjSjmLKZE7GPVqzyi8MWo8LaY8i7H3iCko1/QVzA39Y+HPq6od2QPboTmU
443
+ gpIfLgbQqjS4FbIhNg8NCen7nshGybmCjP3wXPMoqVA46H8w/iOid0KM1tBdQw0P
444
+ YT8xRmhr9Yfkk62GSsaeu6lrJD1ZI9aOYN1G74MzGQKBgQD3wRJHZBrG74u92MtO
445
+ Xhz8b4jr/qkqYqkCGiZZLWzlrijPmWUll4zdsbFAlgzlmT1/mWEGAe0zfQ3hbmxf
446
+ toqCLF4r6shOqd5fSMT17If9aKwjhYc7DHARda5aE4rkyRy1k+6u7MKRosC+HG2y
447
+ Y5AqGtI7mgKwF6zRUr92WCVElwKBgQDphhBK5qb85ySqZiVu743WSbgC1E7o76pu
448
+ RGwNPzy8fVn88AghtLRdiXOF9z+NK1m1Q4STlSYRWox4MccceD96NzNs09VpObSh
449
+ Z9ZgfoPVRB1pCwj4AUN9hu5Vzr2KT2J2elv7zJQfIjuKSOjAq9/R//iuAeZlfgHs
450
+ ZrmC1W6kIwKBgQDp+n/Nxl93gyFhIM4Ya89KI/eWkMGoUta0MogG7lyKqSjHrmGU
451
+ 2ARkFn2EtnDloQwwZmT37HfciXzDaqqU1esHNumU5j1X9Rsat7mzWzeu/dycC24E
452
+ OSHZi18mmJAyszAW1+excc3rBl6q7GQ49chfy0bCnRduwF0ortI87M/9bwKBgQDF
453
+ RI0K2OGDjrb4gyVoG1FUDh41taebOqpcT8x/PEZQbAvSkeosnvwmb/B44K580HwN
454
+ laWvDjWEP1ueRV6P/DyTP4JfkmsbYrXmC1ObXAR96fZ2P+4poteieJNpRSX0aq8g
455
+ qqh9gwo1arOlU4XbDNYcDgHC7LP2VIXHb9eSYD4AxQKBgHjHyFvTfm6ZRv6WHcTJ
456
+ LTp50k9l2sdXe14kBnblEBTvo5DMbN+d0JJWGCywj0s9Zhdo7W9Lu72NKDnp/rM0
457
+ 8e2meBI5lz27JJ1Iggozulu5xiYkHQmt2FvceZ2ROlvrCVkP/r0AXr77T1veIWTr
458
+ vGxAJJJJPWNb/rpmosGSnnt/
459
+ -----END PRIVATE KEY-----
460
+ """
461
+
462
+ SSL_TEST_TIMELORD_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
463
+ MIIDLDCCAhSgAwIBAgIUCo4bPbI2+6ucwAKVWOVvza/5Ve0wDQYJKoZIhvcNAQEL
464
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
465
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
466
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
467
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
468
+ A4IBDwAwggEKAoIBAQDTrCQBeTfXl3xKstyCxQpGelFNEagDRZLaJe/dPLN9FiBq
469
+ N25JmL0mMiJfSSI1HQQoMMM0ayilEU8epeqWkWLi+Pw2aR7nuayPzlqfY411pOVy
470
+ I0lZWi/M+w+ytyHA+/ORZHqSUf3Zccs8PouexC7bU4ScLHo6X7bOSiLfezNsqPAc
471
+ RngI9C1rPLrzQQHUd1m2aQOhvMmbXfawaofZzSRZT/Ipdhm6TsTy4325XM8BtoXm
472
+ CQtEUyM8xgmOkQF/4m/N51/+7Jnchcb3pBP1RujmibOwH4fAlDwu6A5kwe1oFMaq
473
+ ql15KdElfkRvzbVDdyAVjUnW2j0WZ3WnumM0uTSbAgMBAAGjFzAVMBMGA1UdEQQM
474
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBGVJ1SnI7UT7M9BSt6Sfnu
475
+ noJa96HgjVJTwMBkGIP7phGY8sm2B9OSVlaVUC6tZkJaXSPDqejdHRFleFrMn+yS
476
+ eY3apM70u+GHRIjozf6FtQQ8D9AWY3sL1eDVfoNh/w6UPaLtt0GtvLXhR9gCvPgH
477
+ WKNJ7/5hSsJHRVKBRZtuLwrU4nIwrdvcFHh9btAeNU+ZQ9BPx+jD7G0b3MC4aePg
478
+ M/mUQkCBShhQPFIuPO5B5hYmyqvSfKfRCCXz3yObo0/DmEk1XlWu5fUStUXMoBRl
479
+ JQ8AxL5aH9GLLkdhMqzInZiiEgFEEEF9OjeA0FpwG7qmRMwL0d6Mp/VfyMV3CwqT
480
+ -----END CERTIFICATE-----
481
+ """
482
+
483
+ SSL_TEST_TIMELORD_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
484
+ MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDTrCQBeTfXl3xK
485
+ styCxQpGelFNEagDRZLaJe/dPLN9FiBqN25JmL0mMiJfSSI1HQQoMMM0ayilEU8e
486
+ peqWkWLi+Pw2aR7nuayPzlqfY411pOVyI0lZWi/M+w+ytyHA+/ORZHqSUf3Zccs8
487
+ PouexC7bU4ScLHo6X7bOSiLfezNsqPAcRngI9C1rPLrzQQHUd1m2aQOhvMmbXfaw
488
+ aofZzSRZT/Ipdhm6TsTy4325XM8BtoXmCQtEUyM8xgmOkQF/4m/N51/+7Jnchcb3
489
+ pBP1RujmibOwH4fAlDwu6A5kwe1oFMaqql15KdElfkRvzbVDdyAVjUnW2j0WZ3Wn
490
+ umM0uTSbAgMBAAECggEBAKXCtmeY/8wLS0BMFTcrCsLqYuSRoRr+zuOatd5w/LZG
491
+ L5g+VFW6ENXqiNRJt0oUsP6wQQ25pRivF2CO2ciTjfbkuM37QEKDOsla9ci/8zVf
492
+ rnbVf0lDwQ8qxL5Vf09bfwAqyXnwT3SLEnbZHAl25KLJIp4Sjp1L+yJNGEYeesTp
493
+ kUb1CwxMqGwtTRZ9AVjeH03OYC/mE3l461q9Wh8yc4tE94ASm/DRLOacd/+gGzRx
494
+ X8lN7P8bUsH/G0bpBfaSj8NuOO2Uo+vyRP4nPyLakm+HcgDhnElhrs+IHEuzMq8O
495
+ CI69sj8/rIoDBt4HQ7VhZ6IR3NDC6N0SnPLT602UTVECgYEA/Wo1m9QEkMYJUUos
496
+ o34xTfUrrefMYRNXiQOy6u/ExLGFJ44kgttpLHrZ0JYrJT+auoT65SukChXftOna
497
+ vPIN6rI5IGhb93uyGxiTRj7+hhCne3gMHsmDwJB0veKGBS843AFRwbsxbv9HJc/b
498
+ 01rZ4BKWSRF0s+U/6Mb1aXO3WocCgYEA1dTr1BHH/iD8vJgKKeSB4eo2q7hU5FvJ
499
+ 3lud8JeQ/AOmlXfXusm4w4mPJ7whCeBfobR850VdrEZYcT7DbpsYjmBG+4+sbjg2
500
+ cPrEt+nZ8Vr6JRpbyq1j3P2osrnDpErusZ+gxX9zGh9alKsRVC7hmiOzCmAFAf6H
501
+ Gj5zrbzRtk0CgYEA4uuBV6lx8SW0YDtYX4p3ogRBebdQVzkXsFREmYXcn/kKcBIj
502
+ dZ39vtu/Qb3GotMivZSoiiAbAwD1Ui36NilV9uxipTdt6t2z7fmCn2t3RRuSrcgg
503
+ qkzukreIIiS+t9PCSZdQ23bBXFBxKFXJ1afL448hTgq4gwJsyQen6Ca7b+8CgYEA
504
+ xbDabvAZhBufTgUKsHxwkBrnfI8o/Q7XbVoqhPq7siL16g4oRqqkxTLyRPwrV2Q3
505
+ RdsF9xMsbU+ECP7L1ABUDZ15Qq4r7qLNwlo1cQsk0X0Y8yCRaKoxP2jMhKA1/jjA
506
+ wTshejZAhhAiwHv/w2KsdMM4jgkD2DonUd4XOLLu96kCgYEA6qvaeKQulvy8GjN8
507
+ eZdxPHvZxEc6bncv27dTBTCfJAwvQnAM17XGuYpL+wpmBWT5NyMQhqR8ufTjCaTZ
508
+ mYQ8D+fbP1dzXsNCWy2ULXQyDp4iBr8DD+yhxXe0T/osEC2w9GOpHhTskriyjrDr
509
+ jMdzq9sbblgFm6dKe56DLvc4z/c=
510
+ -----END PRIVATE KEY-----
511
+ """
512
+
513
+ SSL_TEST_CRAWLER_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
514
+ MIIDLDCCAhSgAwIBAgIUZXUt4iAbkAXAUd0mDEZSMXmcl3YwDQYJKoZIhvcNAQEL
515
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
516
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
517
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
518
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
519
+ A4IBDwAwggEKAoIBAQDxVh9zMP+GF0XYDAqC3vehKpK2gTXSZTdgQWn0YMOkKQFZ
520
+ NNHHkWAtePO5p7wSbysSUnurh9GlYtsK4kDnkj1eVBCWfVyPM/0cfkbhIcv5Jpkr
521
+ qKABv+6b3v1mikl+erJ2SE3GEWY7wThZuPvNh8kDAYs7MuN766jQ59wSIxvCPlpp
522
+ cObzbz21dHRrxDl8zCzNOk2z41sY12sGvtR1fWTIByqxnNy7mfa15/uEtY5qVaVz
523
+ uQBm+gYV+lRoW3sHBJz9TEH92s+VnSpZj/hHbL8kpN8y0zichH9vG17E78LcCfCR
524
+ B6fd/Civ8mZZNhH1cCGlm26w8y7qM2PnEwvsVJ/xAgMBAAGjFzAVMBMGA1UdEQQM
525
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAyQKtGaSz4s/U85m3zSqTm
526
+ fykoZVo9+BhqPEK3bqiA/wQ4RnQushPEuaLqdD/qI9l6h6jKgnx3hyJ0Ht8CYo4r
527
+ KAEhRVSoImdqW8TpFIOG2vNgK09HuI0ahwT3NfmXz8uI87IkzHco+QS/i7AMvU7V
528
+ vjyFXSjWWQYmnzb7gWw/LEcpqScMB6/4UOam3G/xznMiFCmUDn9CEh/VNFaE6YK5
529
+ 9VcfE2mcOftm8/jstoOgz5a/XduxJGObE/esMf2XeLLvfhIJV5yL+AkyVUrgESeB
530
+ /SVfSH0gcu98o+jp3fT8zKF6Q53D4Uyf28HUY261pvvvZFnshprKR3Tzfjo+LcpW
531
+ -----END CERTIFICATE-----
532
+ """
533
+
534
+ SSL_TEST_CRAWLER_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
535
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDxVh9zMP+GF0XY
536
+ DAqC3vehKpK2gTXSZTdgQWn0YMOkKQFZNNHHkWAtePO5p7wSbysSUnurh9GlYtsK
537
+ 4kDnkj1eVBCWfVyPM/0cfkbhIcv5JpkrqKABv+6b3v1mikl+erJ2SE3GEWY7wThZ
538
+ uPvNh8kDAYs7MuN766jQ59wSIxvCPlppcObzbz21dHRrxDl8zCzNOk2z41sY12sG
539
+ vtR1fWTIByqxnNy7mfa15/uEtY5qVaVzuQBm+gYV+lRoW3sHBJz9TEH92s+VnSpZ
540
+ j/hHbL8kpN8y0zichH9vG17E78LcCfCRB6fd/Civ8mZZNhH1cCGlm26w8y7qM2Pn
541
+ EwvsVJ/xAgMBAAECggEAaPItnPb6twHZ0nhx/bUd9AzCXfDUSdjP+uCXRbjqerGG
542
+ L5ejfeg+7adCPUKuq0mCbmZF9zKJvSS+4f2/gbP7UdC2oeqD3JYcBE75XZ9HxuG9
543
+ C9o5MmmXRlry0KtkCEcs4fjRMUeRsHx2l7W0cg0RIWiDdkvL1rCE6ctZzN1Njeqd
544
+ UuX9K4ruErxZOO2GXlkEheK/6C9ezvt5qGUNpr2rcpBHCVoOmOuQeIzwfdPrjlNE
545
+ SFq0wG+kTE7z1ucwc81OIuHlQX1IGuMXtFHEnB9iuAqZ/8Y9J5a9vj5EEZTAIcKa
546
+ 4UeJvKon9UtP+kp5PNBYso/Fq+uCYQgnKo31Hjte7QKBgQD4nHqIqF0kzcSCnqTW
547
+ Ys4tDab7KNNTkPf38OMiF0S798jzMEZLDA4m0AaP2pSk0bSbvjCp3fLz74sjEmZO
548
+ NKob1nWPFP+yuLhS9PdupnLpHLj+LCT4pmvwg5gvM2Z3EOFrNJNrdR4ei682Z4vC
549
+ bMII0JCQcA3aMqx2MmIh7dmQvwKBgQD4gkt2JY7IFwy1wgf5sJpTzQ5hGIw5q17G
550
+ S0Ee7TuvV4IROVck+feJ+Zysz0leEIqqVVz1ku6c+rQ3Cod00ZVMG1TaBq7QOGia
551
+ tevvLhYY52IHbtxXUWy5T0+am8vXz/wBbFmMSqZ3cu5emFh0daGf03v1jHB2Xtgo
552
+ cBRdgHdLTwKBgQDVUh9qJ11U+SLHGa1DL6DN08sV85/xMpEzNIUQeXrG9wR8d025
553
+ k2yJLTKUOPAWxMH+aSGEgCe53C89NsqGDHZyUICq90+4YPv4Yq31SemL0NODdQl8
554
+ OgCgbaolxisDu35Q6Nod+G6RszXyrsKjX4LW4W9KIHwiYBzPhsfhaR+oLQKBgHPd
555
+ bAmd4UBxXr+vw8ArEwlXZgjnRRnuSLXziF0/BsDt7/rP3U2kLkHqW55G11JALCbW
556
+ vgzRgOc4DKZNBnL09MMTSzCMRR1X742SnHpb5nmeCBqnGZysniCYVekkEpqAomKX
557
+ ffjnJU40C+eW6EcEQWMfW4BVBmpqNiZEe3pM11IJAoGBAMHxD5Waq3fg//mCKmhg
558
+ Ud0FqKksa6lqYnUIFfUqiq2YwRYOBLGEYjheG2bgALZ/rHCWjdL1HvhCKl4PJTSA
559
+ 3Ut8Yx1fyexZQ/aBzLpvWbWRIcj97gDMniVoOSMnCSilrK0ASr9JUCGo08d20fSK
560
+ EuQE6iLXGSX27W02kzBke/Q0
561
+ -----END PRIVATE KEY-----
562
+ """
563
+
564
+ SSL_TEST_DAEMON_PRIVATE_CRT = b"""-----BEGIN CERTIFICATE-----
565
+ MIIDLDCCAhSgAwIBAgIUQBjubkcEz8Ame+evhVR/P+08N7IwDQYJKoZIhvcNAQEL
566
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
567
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
568
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
569
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
570
+ A4IBDwAwggEKAoIBAQClp3iVfH6FLpZut6UdSrfkIfqED7h0aj8rkUi934BDFQiP
571
+ I87MuuAl7N3Nj3U3my+vppp3se0kt4cro79KStORGGuKm6EftkWJj9PIx/UKU0jv
572
+ PmtU2T7jzmohwM0RFwXSUUpAnInGUptSNlngbDJSQo92KYqCnCCw2Kllh8tSnaqn
573
+ /cVeBeOQ6ippM6YwJGs4rVMzS0v93aUvTXsKHaqq+wLe7Jcbiy2iAZT2HWZcuIt/
574
+ uhWDTRiDMxFsSl53O2dtG5tlvxS+kjZ0YOZbhJMcddHBNg0fX6oPeEzMB0DMs7Nj
575
+ 3Q4CDrPXYIaLryMccGDljrF8xZ1+rlOLar1A8pufAgMBAAGjFzAVMBMGA1UdEQQM
576
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQCKnK69Hada53vK4LIQS8mk
577
+ PqMiGLkrNsdqo+8/zm31wWQaL+XfWEzdEWfpSy4nPAKN8PriBafoRJynxUzNKNfP
578
+ YwzSpdwh49I/hQXgTg43Ps/Ud8eMAOwZ8hQFjtpxwMN5KMCNUZ2WkN7gyHN4eCFL
579
+ Vi52fq0zSvKIgCiB/G5oauC+4oesD3KhNFNdGDM+u4cZowfJP0ytetW9YRppUDyL
580
+ Di8vN8lRfLQmt/yvEF0Qgxuz1w/4D090mSHNwkiQFvu1+A21PEkk/FGsOqaEXyjN
581
+ a/hVuQii73GQQJgDCbeBECbmNz32rXYhzm0/Gg2QQ3B592qNnyDfU0Jxsq/IJtcU
582
+ -----END CERTIFICATE-----
583
+ """
584
+
585
+ SSL_TEST_DAEMON_PRIVATE_KEY = b"""-----BEGIN PRIVATE KEY-----
586
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQClp3iVfH6FLpZu
587
+ t6UdSrfkIfqED7h0aj8rkUi934BDFQiPI87MuuAl7N3Nj3U3my+vppp3se0kt4cr
588
+ o79KStORGGuKm6EftkWJj9PIx/UKU0jvPmtU2T7jzmohwM0RFwXSUUpAnInGUptS
589
+ NlngbDJSQo92KYqCnCCw2Kllh8tSnaqn/cVeBeOQ6ippM6YwJGs4rVMzS0v93aUv
590
+ TXsKHaqq+wLe7Jcbiy2iAZT2HWZcuIt/uhWDTRiDMxFsSl53O2dtG5tlvxS+kjZ0
591
+ YOZbhJMcddHBNg0fX6oPeEzMB0DMs7Nj3Q4CDrPXYIaLryMccGDljrF8xZ1+rlOL
592
+ ar1A8pufAgMBAAECggEBAJgRbu67hGG6bLpit552Mu2oC5Mj405rImZaTo6PF+18
593
+ 54iPdI4Ylx/5m3vSz+Yl/dafeHmcynfESr/S6A3JNwKhikeJqpWz+43WjLJqbRX3
594
+ cqK9iEYx0DvMBz3JAfdITT3PBfzeNtPqjU8hOcx9RoyhMZVleROBQ7lUi9z6lbnW
595
+ LJneYPx4fgyaRX8ah44GQPtPVMytOIyl4MMrXyWGaYR4wyqnuWFnvzWmd+71bMd5
596
+ jpvfuRqnbgQYGANQM21N2G7Zs3Z6NbiD5UfQLNlxgnTaPBjVQT1/F838ZeR91Dm8
597
+ 8PLzF2juYTc3Sgyp8P4jkxl1mobzEMqeh+CpI2/YtbECgYEA1yZUeyYAy+3QVdDW
598
+ PcYP/AmTnL+3L5QSp9WrtuZ2kVhLFLgIo7aZOVGBz7s0RjPnH/bL/s+OLiXvAgIH
599
+ KZuC/H4Z2vrQcQX9E7rB1iBk2ZFxHl2gdzREG37wXdgKvI3YCicDRpulr+ZG7dA0
600
+ 1k2vxWhvDm/eSGuEHt5JkC2REv0CgYEAxRtWTUMNMSWA8zN5eONYPZQ4GkuA0kEr
601
+ 0q7p4a7zvR44Pf+g3QzBi3paugQSmQLcRTlDYBOp6LlODQji2V2VPtsD9FjduFjX
602
+ uuQ3ze/ZKnT3ECflO9VExohX2bUaxJGS4KqGAowChknCO4BoSygBrkijIWa7b+AU
603
+ gJM4QXiI0csCgYA3WWkKdXBnBjs+mIdFRRr/oAcVoEykNNfHzbRrTUbbhXdrUR0H
604
+ 4QXyNQHMS0DbfqbLFlbMquDNBn1CavskvRkpk9da+oN9UCkXVkhfqd3ICx6qzTNm
605
+ 908+M53qxpWchHE7y2WQWKJ7aiZ9L78oErxRcNiBQk5RGzfWKSGLse1MkQKBgQCd
606
+ 4pfuq5cVlwUDymey/ejg6qlF5tT5llqUGKgfrxRumJZUkz830c/2+btS5ZBAIJpw
607
+ mL3vZ9DiKgzrRALyOpQiFS3FvKld0Ux81/Ibc9RwveBpgIuOsfa1UOGN8hPPAQy2
608
+ CeHuiFg9WTfMkb749MLj6CtDxha+NrA1jbeyOereoQKBgQCysqn3E91OkbpjguGE
609
+ EXU7t8/YhP/xohYw0I+hNNuGSFQuVihFd/iEqlhGelaSe10ap6PRurUgG3z2PcsX
610
+ wosAbh3TOHIRCUW5xaJ93vqys4/DrSPzoA4jHb0M2MP1EBM7OkMS+CntHsfj9trN
611
+ ypymj8/PSQTf9TC4KL55sXK34Q==
612
+ -----END PRIVATE KEY-----
613
+ """
614
+
615
+ SSL_TEST_INTRODUCER_PUBLIC_CRT = b"""-----BEGIN CERTIFICATE-----
616
+ MIIDLDCCAhSgAwIBAgIUbJaDX38rnF2BylBTXCWNjn1E4kkwDQYJKoZIhvcNAQEL
617
+ BQAwRDENMAsGA1UECgwEQ2hpYTEQMA4GA1UEAwwHQ2hpYSBDQTEhMB8GA1UECwwY
618
+ T3JnYW5pYyBGYXJtaW5nIERpdmlzaW9uMCAXDTIyMDMyMjEwMjkyMVoYDzIxMDAw
619
+ ODAyMDAwMDAwWjBBMQ0wCwYDVQQDDARDaGlhMQ0wCwYDVQQKDARDaGlhMSEwHwYD
620
+ VQQLDBhPcmdhbmljIEZhcm1pbmcgRGl2aXNpb24wggEiMA0GCSqGSIb3DQEBAQUA
621
+ A4IBDwAwggEKAoIBAQDfTXQTHHDgCbBC8m1oybg5od+wH7Pfh4duI9m/I1JZLZoz
622
+ 74GaQZlDG2bTHwwa3ccXDF5N3BbVG5BWGhFKquy37Od5mB88pDLngazumte0DaRC
623
+ MvM542TUwBVwLruT2jNDIPtXFZ5b7XMZh+dyLXHbvP9wyEUUBKcSi5kRgp02OYJC
624
+ g053dKazEAFtmOHoPNlCWlqqjfpMAXsbiFUBCoXmqYcyRBnNpzV1ET0nZC9W6Don
625
+ racpKDIvCGQPvZ6PL1iP/SLGx2n8QQ6y+MwRO+f4A+5dabTJHgLBQ6s3nL8ijPUU
626
+ V8jLUAkP4Yzrg127RqfHRolf644d3RqMyxGabOlPAgMBAAGjFzAVMBMGA1UdEQQM
627
+ MAqCCGNoaWEubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQBKXvslWP38FdHCrH4uZq6C
628
+ r38iUHhM83Bd5PWOWpJLSepoDuAuV6FaLsDVqjQxI8M1sv6uLfBbfsCBZY6e61QM
629
+ vWI8vzDiCaUicntxozI02gSedAOyecUksADYkoL0xTPWlWHoD3EwASbwTC9Giip6
630
+ 0A3Aja5mgDxB6vwRjhXs2hX0ERTJ0kmXG4As2gPhuqoXYKo5E2y+z8PkvEkjEeUx
631
+ laMTDrnaYZjfk1Vq5qED49CwAZljaIghe+Bad84JtEOckAEUteoCtsG7Th2/nQ9t
632
+ Qs81jLixhO1sYJmhoYxM8kwtv8/hC18u9qvKxZfqZfa178G3eePvbYNeS3LRlhg6
633
+ -----END CERTIFICATE-----
634
+ """
635
+
636
+ SSL_TEST_INTRODUCER_PUBLIC_KEY = b"""-----BEGIN PRIVATE KEY-----
637
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDfTXQTHHDgCbBC
638
+ 8m1oybg5od+wH7Pfh4duI9m/I1JZLZoz74GaQZlDG2bTHwwa3ccXDF5N3BbVG5BW
639
+ GhFKquy37Od5mB88pDLngazumte0DaRCMvM542TUwBVwLruT2jNDIPtXFZ5b7XMZ
640
+ h+dyLXHbvP9wyEUUBKcSi5kRgp02OYJCg053dKazEAFtmOHoPNlCWlqqjfpMAXsb
641
+ iFUBCoXmqYcyRBnNpzV1ET0nZC9W6DonracpKDIvCGQPvZ6PL1iP/SLGx2n8QQ6y
642
+ +MwRO+f4A+5dabTJHgLBQ6s3nL8ijPUUV8jLUAkP4Yzrg127RqfHRolf644d3RqM
643
+ yxGabOlPAgMBAAECggEAPXeclAYoLAN+uW7yHv4n7/VXFawkX0t3RCIqNisK5/Fd
644
+ mR48lrGn9oj8bPEG6/5QZ0/IRbZnspG70XeretpB/v7/WME/F/o66O8RIz0MU0vO
645
+ A0rzGOQ3RTj6rb6vc6uEoN3bUcVpqfRa0pROaWeJB+umhO0b1r7RHpG+uMsza1E1
646
+ b/nrZs9H61Saj0IcZcjA9YRvevuwP7xRN/XJL/HCrkdYtqdyOI58Rs2TmHB5cj53
647
+ bHwlvy88zgObh+t18VYi3kx6TftpIT8Oft/0PEp9infCspffvw/1LrSBXyqo5MQx
648
+ CUFCgM6Q8nFyiQZi1trgyWfoCkBKpXo5ydrJChEQQQKBgQD8UxWV6hrVi39hfhQN
649
+ yjgHDKHcI1+Wcm9MxFp0oFvuqXU68r91JZtadMhz82aLnIC9+FQJC3PDaN2c4fVt
650
+ 7slD4yR9hWCl4pqcC1cbEyV2C/zQW1AVdBiqKkaeJsAeM5aeKia61XVZbpsYGIDx
651
+ FR1zGH5xUJ3uhGJ+Wno2OeimywKBgQDijiV4g2+hxwELgMPlmgdzNqp1rmqDP3O+
652
+ HdzqoI4V0cfIIf/OUfvksHMY0AfUgWppwH+d9ImwxXrntenS5mLXpihU9UIcIUD1
653
+ sU2jbDm5tph4V1I9CLxnBsmCZi0A+/IOhZNQdPzVFD4ZLJFpZV7Lf1FwdyyhrLWK
654
+ UKz/ouYzDQKBgDQFzUWDZtTwVer725acQsDxUc3ZXTPflCL3uM6i4VFrjsgAlIjK
655
+ oCUePtXpMRNHySNht7HFsrBvRoG59Kgdu1FL25Illa+d8NKLZAIpCGg2QIGU0gYa
656
+ UZuD69tfkeyoJj2l4yZSLEesDj4Bj1QlTlUUj709KdKraMM0VE4p0lXRAoGAf0pK
657
+ d1mx4P2E8seYSWqvgOZYA+LJaZC/ITR6KUGoU04Yp7OinHOnyafyIyDPJXDJLz2+
658
+ 9iqtKirqkUG+bIaRRoTO6F0cld2BOAo0ivuFu3iCVisJw80ivegsVB3Ab2sfZ1VZ
659
+ nbz9SWMkONS3prYT+tZAFaZ/5x64qUwGx2LpYAkCgYA3NbPLd4OmQhaANknb6QKL
660
+ BIBhiZzKHRiFkQ2KiYd2/lILEBnOmiYcjtWRmUdLMZidodpSpFbVNVc3U+BjEjgc
661
+ p0aVjmQpCXDRpWFQQ/Ak0XYeHECW0uwWKp5GuMkwks0dDCys4Z+Gf4kJSWmtu5OG
662
+ NR6RKo206k2HeqrAQC0L0A==
663
+ -----END PRIVATE KEY-----
664
+ """
665
+
666
+ SSL_TEST_PRIVATE_CA_CERT_AND_KEY_1: tuple[bytes, bytes] = (SSL_TEST_PRIVATE_CA_CRT, SSL_TEST_PRIVATE_CA_KEY)
667
+
668
+ SSL_TEST_NODE_CERTS_AND_KEYS_1: 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
+ }