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