chia-blockchain 2.4.4rc2__py3-none-any.whl → 2.5.0__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.
- chia/_tests/cmds/wallet/test_coins.py +13 -5
- chia/_tests/conftest.py +5 -5
- chia/_tests/core/full_node/test_generator_tools.py +1 -1
- chia/_tests/core/mempool/test_mempool.py +80 -2
- chia/_tests/core/mempool/test_mempool_manager.py +1 -0
- chia/_tests/core/ssl/test_ssl.py +4 -2
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -1
- chia/_tests/util/test_condition_tools.py +2 -2
- chia/_tests/util/test_replace_str_to_bytes.py +1 -1
- chia/_tests/util/test_testnet_overrides.py +1 -1
- chia/_tests/wallet/rpc/test_wallet_rpc.py +82 -0
- chia/cmds/coin_funcs.py +9 -0
- chia/cmds/coins.py +3 -0
- chia/cmds/sim_funcs.py +3 -3
- chia/consensus/default_constants.py +3 -3
- chia/full_node/full_node.py +4 -3
- chia/full_node/mempool_check_conditions.py +3 -3
- chia/rpc/wallet_rpc_api.py +17 -12
- chia/util/initial-config.yaml +2 -2
- {chia_blockchain-2.4.4rc2.dist-info → chia_blockchain-2.5.0.dist-info}/METADATA +3 -3
- {chia_blockchain-2.4.4rc2.dist-info → chia_blockchain-2.5.0.dist-info}/RECORD +24 -24
- {chia_blockchain-2.4.4rc2.dist-info → chia_blockchain-2.5.0.dist-info}/WHEEL +1 -1
- {chia_blockchain-2.4.4rc2.dist-info → chia_blockchain-2.5.0.dist-info}/LICENSE +0 -0
- {chia_blockchain-2.4.4rc2.dist-info → chia_blockchain-2.5.0.dist-info}/entry_points.txt +0 -0
|
@@ -67,6 +67,7 @@ def test_coins_combine(capsys: object, get_test_cli_clients: Tuple[TestRpcClient
|
|
|
67
67
|
|
|
68
68
|
inst_rpc_client = CoinsCombineRpcClient() # pylint: disable=no-value-for-parameter
|
|
69
69
|
test_rpc_clients.wallet_rpc_client = inst_rpc_client
|
|
70
|
+
assert sum(coin.amount for coin in STD_TX.removals) < 500_000_000_000
|
|
70
71
|
command_args = [
|
|
71
72
|
"wallet",
|
|
72
73
|
"coins",
|
|
@@ -74,7 +75,7 @@ def test_coins_combine(capsys: object, get_test_cli_clients: Tuple[TestRpcClient
|
|
|
74
75
|
FINGERPRINT_ARG,
|
|
75
76
|
"-i1",
|
|
76
77
|
"--largest-first",
|
|
77
|
-
"-m0.
|
|
78
|
+
"-m0.5",
|
|
78
79
|
"--min-amount",
|
|
79
80
|
"0.1",
|
|
80
81
|
"--max-amount",
|
|
@@ -91,11 +92,13 @@ def test_coins_combine(capsys: object, get_test_cli_clients: Tuple[TestRpcClient
|
|
|
91
92
|
"150",
|
|
92
93
|
]
|
|
93
94
|
# these are various things that should be in the output
|
|
95
|
+
assert_list = ["Fee is >= the amount of coins selected. To continue, please use --override flag."]
|
|
96
|
+
run_cli_command_and_assert(capsys, root_dir, command_args, assert_list)
|
|
94
97
|
assert_list = [
|
|
95
98
|
"Transactions would combine up to 500 coins",
|
|
96
99
|
f"To get status, use command: chia wallet get_transaction -f {FINGERPRINT} -tx 0x{STD_TX.name.hex()}",
|
|
97
100
|
]
|
|
98
|
-
run_cli_command_and_assert(capsys, root_dir, command_args, assert_list)
|
|
101
|
+
run_cli_command_and_assert(capsys, root_dir, command_args + ["--override"], assert_list)
|
|
99
102
|
expected_tx_config = TXConfig(
|
|
100
103
|
min_coin_amount=uint64(100_000_000_000),
|
|
101
104
|
max_coin_amount=uint64(200_000_000_000),
|
|
@@ -109,13 +112,18 @@ def test_coins_combine(capsys: object, get_test_cli_clients: Tuple[TestRpcClient
|
|
|
109
112
|
largest_first=True,
|
|
110
113
|
target_coin_ids=[bytes32([0] * 32)],
|
|
111
114
|
target_coin_amount=uint64(1_000_000_000_000),
|
|
112
|
-
fee=uint64(
|
|
115
|
+
fee=uint64(500_000_000_000),
|
|
113
116
|
push=False,
|
|
114
117
|
)
|
|
115
118
|
expected_calls: logType = {
|
|
116
|
-
"get_wallets": [(None,)],
|
|
117
|
-
"get_synced": [()],
|
|
119
|
+
"get_wallets": [(None,)] * 2,
|
|
120
|
+
"get_synced": [()] * 2,
|
|
118
121
|
"combine_coins": [
|
|
122
|
+
(
|
|
123
|
+
expected_request,
|
|
124
|
+
expected_tx_config,
|
|
125
|
+
test_condition_valid_times,
|
|
126
|
+
),
|
|
119
127
|
(
|
|
120
128
|
expected_request,
|
|
121
129
|
expected_tx_config,
|
chia/_tests/conftest.py
CHANGED
|
@@ -197,12 +197,12 @@ def get_keychain():
|
|
|
197
197
|
class ConsensusMode(ComparableEnum):
|
|
198
198
|
PLAIN = 0
|
|
199
199
|
HARD_FORK_2_0 = 1
|
|
200
|
-
|
|
200
|
+
SOFT_FORK_6 = 2
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
@pytest.fixture(
|
|
204
204
|
scope="session",
|
|
205
|
-
params=[ConsensusMode.PLAIN, ConsensusMode.HARD_FORK_2_0, ConsensusMode.
|
|
205
|
+
params=[ConsensusMode.PLAIN, ConsensusMode.HARD_FORK_2_0, ConsensusMode.SOFT_FORK_6],
|
|
206
206
|
)
|
|
207
207
|
def consensus_mode(request):
|
|
208
208
|
return request.param
|
|
@@ -218,9 +218,9 @@ def blockchain_constants(consensus_mode: ConsensusMode) -> ConsensusConstants:
|
|
|
218
218
|
PLOT_FILTER_64_HEIGHT=uint32(15),
|
|
219
219
|
PLOT_FILTER_32_HEIGHT=uint32(20),
|
|
220
220
|
)
|
|
221
|
-
if consensus_mode >= ConsensusMode.
|
|
221
|
+
if consensus_mode >= ConsensusMode.SOFT_FORK_6:
|
|
222
222
|
ret = ret.replace(
|
|
223
|
-
|
|
223
|
+
SOFT_FORK6_HEIGHT=uint32(2),
|
|
224
224
|
)
|
|
225
225
|
return ret
|
|
226
226
|
|
|
@@ -269,7 +269,7 @@ def db_version(request) -> int:
|
|
|
269
269
|
return request.param
|
|
270
270
|
|
|
271
271
|
|
|
272
|
-
SOFTFORK_HEIGHTS = [1000000, 5496000, 5496100, 5716000,
|
|
272
|
+
SOFTFORK_HEIGHTS = [1000000, 5496000, 5496100, 5716000, 6800000]
|
|
273
273
|
|
|
274
274
|
|
|
275
275
|
@pytest.fixture(scope="function", params=SOFTFORK_HEIGHTS)
|
|
@@ -67,7 +67,7 @@ spends: List[SpendConditions] = [
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
def test_tx_removals_and_additions() -> None:
|
|
70
|
-
conditions = SpendBundleConditions(spends, uint64(0), uint32(0), uint64(0), None, None, [], uint64(0), 0, 0)
|
|
70
|
+
conditions = SpendBundleConditions(spends, uint64(0), uint32(0), uint64(0), None, None, [], uint64(0), 0, 0, False)
|
|
71
71
|
expected_rems = [coin_ids[0], coin_ids[1]]
|
|
72
72
|
expected_additions = []
|
|
73
73
|
for spend in spends:
|
|
@@ -6,9 +6,10 @@ import random
|
|
|
6
6
|
from typing import Callable, Dict, List, Optional, Tuple
|
|
7
7
|
|
|
8
8
|
import pytest
|
|
9
|
-
from chia_rs import G1Element, G2Element
|
|
9
|
+
from chia_rs import G1Element, G2Element, get_flags_for_height_and_constants
|
|
10
10
|
from clvm.casts import int_to_bytes
|
|
11
11
|
from clvm_tools import binutils
|
|
12
|
+
from clvm_tools.binutils import assemble
|
|
12
13
|
|
|
13
14
|
from chia._tests.blockchain.blockchain_test_utils import _validate_and_add_block
|
|
14
15
|
from chia._tests.connection_utils import add_dummy_connection, connect_and_get_peer
|
|
@@ -27,6 +28,7 @@ from chia._tests.util.misc import BenchmarkRunner, invariant_check_mempool
|
|
|
27
28
|
from chia._tests.util.time_out_assert import time_out_assert
|
|
28
29
|
from chia.consensus.condition_costs import ConditionCost
|
|
29
30
|
from chia.consensus.cost_calculator import NPCResult
|
|
31
|
+
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
30
32
|
from chia.full_node.bitcoin_fee_estimator import create_bitcoin_fee_estimator
|
|
31
33
|
from chia.full_node.fee_estimation import EmptyMempoolInfo, MempoolInfo
|
|
32
34
|
from chia.full_node.full_node_api import FullNodeAPI
|
|
@@ -107,7 +109,7 @@ def make_item(
|
|
|
107
109
|
return MempoolItem(
|
|
108
110
|
SpendBundle([], G2Element()),
|
|
109
111
|
fee,
|
|
110
|
-
SpendBundleConditions([], 0, 0, 0, None, None, [], cost, 0, 0),
|
|
112
|
+
SpendBundleConditions([], 0, 0, 0, None, None, [], cost, 0, 0, False),
|
|
111
113
|
spend_bundle_name,
|
|
112
114
|
uint32(0),
|
|
113
115
|
assert_height,
|
|
@@ -3178,3 +3180,79 @@ def test_get_puzzle_and_solution_for_coin_failure() -> None:
|
|
|
3178
3180
|
ValueError, match=f"Failed to get puzzle and solution for coin {TEST_COIN}, error: \\('coin not found', '80'\\)"
|
|
3179
3181
|
):
|
|
3180
3182
|
get_puzzle_and_solution_for_coin(BlockGenerator(SerializedProgram.to(None), []), TEST_COIN, 0, test_constants)
|
|
3183
|
+
|
|
3184
|
+
|
|
3185
|
+
# TODO: import this from chia_rs once we bump the version we depend on
|
|
3186
|
+
ENABLE_KECCAK = 0x200
|
|
3187
|
+
ENABLE_KECCAK_OPS_OUTSIDE_GUARD = 0x100
|
|
3188
|
+
|
|
3189
|
+
|
|
3190
|
+
def test_flags_for_height() -> None:
|
|
3191
|
+
|
|
3192
|
+
# the keccak operator is supposed to be enabled at soft-fork 6 height
|
|
3193
|
+
flags = get_flags_for_height_and_constants(DEFAULT_CONSTANTS.SOFT_FORK6_HEIGHT, DEFAULT_CONSTANTS)
|
|
3194
|
+
print(f"{flags:x}")
|
|
3195
|
+
assert (flags & ENABLE_KECCAK) != 0
|
|
3196
|
+
|
|
3197
|
+
flags = get_flags_for_height_and_constants(DEFAULT_CONSTANTS.SOFT_FORK6_HEIGHT - 1, DEFAULT_CONSTANTS)
|
|
3198
|
+
print(f"{flags:x}")
|
|
3199
|
+
assert (flags & ENABLE_KECCAK) == 0
|
|
3200
|
+
|
|
3201
|
+
|
|
3202
|
+
def test_keccak() -> None:
|
|
3203
|
+
|
|
3204
|
+
# the keccak operator is 62. The assemble() function doesn't support it
|
|
3205
|
+
# (yet)
|
|
3206
|
+
|
|
3207
|
+
# keccak256 is available when the softfork has activated
|
|
3208
|
+
keccak_prg = Program.to(
|
|
3209
|
+
assemble(
|
|
3210
|
+
"(softfork (q . 1134) (q . 1) (q a (i "
|
|
3211
|
+
"(= "
|
|
3212
|
+
'(62 (q . "foobar"))'
|
|
3213
|
+
"(q . 0x38d18acb67d25c8bb9942764b62f18e17054f66a817bd4295423adf9ed98873e))"
|
|
3214
|
+
"(q . 0) (q x)) (q . ())) (q . ()))"
|
|
3215
|
+
)
|
|
3216
|
+
)
|
|
3217
|
+
|
|
3218
|
+
cost, ret = keccak_prg.run_with_flags(1215, ENABLE_KECCAK, [])
|
|
3219
|
+
assert cost == 1215
|
|
3220
|
+
assert ret.atom == b""
|
|
3221
|
+
|
|
3222
|
+
# keccak is ignored when the softfork has not activated
|
|
3223
|
+
cost, ret = keccak_prg.run_with_flags(1215, 0, [])
|
|
3224
|
+
assert cost == 1215
|
|
3225
|
+
assert ret.atom == b""
|
|
3226
|
+
|
|
3227
|
+
# make sure keccak is actually executed, by comparing with the wrong output
|
|
3228
|
+
keccak_prg = Program.to(
|
|
3229
|
+
assemble(
|
|
3230
|
+
"(softfork (q . 1134) (q . 1) (q a (i "
|
|
3231
|
+
'(= (62 (q . "foobar")) '
|
|
3232
|
+
"(q . 0x58d18acb67d25c8bb9942764b62f18e17054f66a817bd4295423adf9ed98873e))"
|
|
3233
|
+
"(q . 0) (q x)) (q . ())) (q . ()))"
|
|
3234
|
+
)
|
|
3235
|
+
)
|
|
3236
|
+
with pytest.raises(ValueError, match="clvm raise"):
|
|
3237
|
+
keccak_prg.run_with_flags(1215, ENABLE_KECCAK, [])
|
|
3238
|
+
|
|
3239
|
+
# keccak is ignored when the softfork has not activated
|
|
3240
|
+
cost, ret = keccak_prg.run_with_flags(1215, 0, [])
|
|
3241
|
+
assert cost == 1215
|
|
3242
|
+
assert ret.atom == b""
|
|
3243
|
+
|
|
3244
|
+
# === HARD FORK ===
|
|
3245
|
+
# new operators *outside* the softfork guard
|
|
3246
|
+
# keccak256 is available outside the guard with the appropriate flag
|
|
3247
|
+
keccak_prg = Program.to(
|
|
3248
|
+
assemble(
|
|
3249
|
+
"(a (i (= "
|
|
3250
|
+
'(62 (q . "foobar")) '
|
|
3251
|
+
"(q . 0x38d18acb67d25c8bb9942764b62f18e17054f66a817bd4295423adf9ed98873e)) "
|
|
3252
|
+
"(q . 0) (q x)) (q . ()))"
|
|
3253
|
+
)
|
|
3254
|
+
)
|
|
3255
|
+
|
|
3256
|
+
cost, ret = keccak_prg.run_with_flags(994, ENABLE_KECCAK | ENABLE_KECCAK_OPS_OUTSIDE_GUARD, [])
|
|
3257
|
+
assert cost == 994
|
|
3258
|
+
assert ret.atom == b""
|
chia/_tests/core/ssl/test_ssl.py
CHANGED
|
@@ -151,8 +151,10 @@ class TestSSL:
|
|
|
151
151
|
|
|
152
152
|
ssl_context = ssl_context_for_client(ca_private_crt_path, ca_private_key_path, pub_crt, pub_key)
|
|
153
153
|
caplog.clear()
|
|
154
|
-
with
|
|
155
|
-
|
|
154
|
+
with (
|
|
155
|
+
pytest.raises(Exception),
|
|
156
|
+
ignore_ssl_cert_error(),
|
|
157
|
+
caplog.at_level(logging.DEBUG, logger="asyncio"),
|
|
156
158
|
):
|
|
157
159
|
await establish_connection(farmer_server, self_hostname, ssl_context)
|
|
158
160
|
|
|
@@ -42,7 +42,7 @@ def make_mempoolitem() -> MempoolItem:
|
|
|
42
42
|
|
|
43
43
|
fee = uint64(10000000)
|
|
44
44
|
spends: List[SpendConditions] = []
|
|
45
|
-
conds = SpendBundleConditions(spends, 0, 0, 0, None, None, [], cost, 0, 0)
|
|
45
|
+
conds = SpendBundleConditions(spends, 0, 0, 0, None, None, [], cost, 0, 0, False)
|
|
46
46
|
mempool_item = MempoolItem(
|
|
47
47
|
spend_bundle,
|
|
48
48
|
fee,
|
|
@@ -53,7 +53,7 @@ def mk_agg_sig_conditions(
|
|
|
53
53
|
agg_sig_puzzle_amount=agg_sig_data if opcode == ConditionOpcode.AGG_SIG_PUZZLE_AMOUNT else [],
|
|
54
54
|
flags=0,
|
|
55
55
|
)
|
|
56
|
-
return SpendBundleConditions([spend], 0, 0, 0, None, None, agg_sig_unsafe_data, 0, 0, 0)
|
|
56
|
+
return SpendBundleConditions([spend], 0, 0, 0, None, None, agg_sig_unsafe_data, 0, 0, 0, False)
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
@pytest.mark.parametrize(
|
|
@@ -100,7 +100,7 @@ def test_pkm_pairs_vs_for_conditions_dict(opcode: ConditionOpcode) -> None:
|
|
|
100
100
|
|
|
101
101
|
class TestPkmPairs:
|
|
102
102
|
def test_empty_list(self) -> None:
|
|
103
|
-
conds = SpendBundleConditions([], 0, 0, 0, None, None, [], 0, 0, 0)
|
|
103
|
+
conds = SpendBundleConditions([], 0, 0, 0, None, None, [], 0, 0, 0, False)
|
|
104
104
|
pks, msgs = pkm_pairs(conds, b"foobar")
|
|
105
105
|
assert pks == []
|
|
106
106
|
assert msgs == []
|
|
@@ -56,7 +56,7 @@ test_constants = ConsensusConstants(
|
|
|
56
56
|
MAX_GENERATOR_SIZE=uint32(1000000),
|
|
57
57
|
MAX_GENERATOR_REF_LIST_SIZE=uint32(512),
|
|
58
58
|
POOL_SUB_SLOT_ITERS=uint64(37600000000),
|
|
59
|
-
|
|
59
|
+
SOFT_FORK6_HEIGHT=uint32(6800000),
|
|
60
60
|
HARD_FORK_HEIGHT=uint32(5496000),
|
|
61
61
|
PLOT_FILTER_128_HEIGHT=uint32(10542000),
|
|
62
62
|
PLOT_FILTER_64_HEIGHT=uint32(15592000),
|
|
@@ -3022,3 +3022,85 @@ async def test_combine_coins(wallet_environments: WalletTestFramework) -> None:
|
|
|
3022
3022
|
)
|
|
3023
3023
|
]
|
|
3024
3024
|
)
|
|
3025
|
+
|
|
3026
|
+
|
|
3027
|
+
@pytest.mark.parametrize(
|
|
3028
|
+
"wallet_environments",
|
|
3029
|
+
[
|
|
3030
|
+
{
|
|
3031
|
+
"num_environments": 1,
|
|
3032
|
+
"blocks_needed": [2],
|
|
3033
|
+
"trusted": True, # irrelevant
|
|
3034
|
+
"reuse_puzhash": True, # irrelevant
|
|
3035
|
+
}
|
|
3036
|
+
],
|
|
3037
|
+
indirect=True,
|
|
3038
|
+
)
|
|
3039
|
+
@pytest.mark.limit_consensus_modes(reason="irrelevant")
|
|
3040
|
+
@pytest.mark.anyio
|
|
3041
|
+
async def test_fee_bigger_than_selection_coin_combining(wallet_environments: WalletTestFramework) -> None:
|
|
3042
|
+
"""
|
|
3043
|
+
This tests the case where the coins we would otherwise select are not enough to pay the fee.
|
|
3044
|
+
"""
|
|
3045
|
+
|
|
3046
|
+
env = wallet_environments.environments[0]
|
|
3047
|
+
env.wallet_aliases = {
|
|
3048
|
+
"xch": 1,
|
|
3049
|
+
"cat": 2,
|
|
3050
|
+
}
|
|
3051
|
+
|
|
3052
|
+
# Should have 4 coins, two 1.75 XCH, two 0.25 XCH
|
|
3053
|
+
|
|
3054
|
+
# Grab one of the 0.25 ones to specify
|
|
3055
|
+
async with env.wallet_state_manager.new_action_scope(wallet_environments.tx_config) as action_scope:
|
|
3056
|
+
target_coin = list(await env.xch_wallet.select_coins(uint64(250_000_000_000), action_scope))[0]
|
|
3057
|
+
assert target_coin.amount == 250_000_000_000
|
|
3058
|
+
|
|
3059
|
+
fee = uint64(1_750_000_000_000)
|
|
3060
|
+
# Under standard circumstances we would select the small coins, but this is not enough to pay the fee
|
|
3061
|
+
# Instead, we will grab the big coin first and combine it with one of the smaller coins
|
|
3062
|
+
xch_combine_request = CombineCoins(
|
|
3063
|
+
wallet_id=uint32(1),
|
|
3064
|
+
number_of_coins=uint16(2),
|
|
3065
|
+
fee=fee,
|
|
3066
|
+
largest_first=False,
|
|
3067
|
+
push=True,
|
|
3068
|
+
)
|
|
3069
|
+
|
|
3070
|
+
# First test an error where fee selection causes too many coins to be selected
|
|
3071
|
+
with pytest.raises(ResponseFailureError, match="without selecting more coins than specified: 3"):
|
|
3072
|
+
await env.rpc_client.combine_coins(
|
|
3073
|
+
dataclasses.replace(xch_combine_request, fee=uint64(2_250_000_000_000)),
|
|
3074
|
+
wallet_environments.tx_config,
|
|
3075
|
+
)
|
|
3076
|
+
|
|
3077
|
+
await env.rpc_client.combine_coins(
|
|
3078
|
+
xch_combine_request,
|
|
3079
|
+
wallet_environments.tx_config,
|
|
3080
|
+
)
|
|
3081
|
+
|
|
3082
|
+
await wallet_environments.process_pending_states(
|
|
3083
|
+
[
|
|
3084
|
+
WalletStateTransition(
|
|
3085
|
+
pre_block_balance_updates={
|
|
3086
|
+
"xch": {
|
|
3087
|
+
"unconfirmed_wallet_balance": -fee,
|
|
3088
|
+
"spendable_balance": -2_000_000_000_000,
|
|
3089
|
+
"pending_change": 250_000_000_000,
|
|
3090
|
+
"max_send_amount": -2_000_000_000_000,
|
|
3091
|
+
"pending_coin_removal_count": 2,
|
|
3092
|
+
}
|
|
3093
|
+
},
|
|
3094
|
+
post_block_balance_updates={
|
|
3095
|
+
"xch": {
|
|
3096
|
+
"confirmed_wallet_balance": -fee,
|
|
3097
|
+
"spendable_balance": 250_000_000_000,
|
|
3098
|
+
"pending_change": -250_000_000_000,
|
|
3099
|
+
"max_send_amount": 250_000_000_000,
|
|
3100
|
+
"pending_coin_removal_count": -2,
|
|
3101
|
+
"unspent_coin_count": -1, # combine 2 into 1
|
|
3102
|
+
}
|
|
3103
|
+
},
|
|
3104
|
+
)
|
|
3105
|
+
]
|
|
3106
|
+
)
|
chia/cmds/coin_funcs.py
CHANGED
|
@@ -128,6 +128,7 @@ async def async_combine(
|
|
|
128
128
|
largest_first: bool,
|
|
129
129
|
push: bool,
|
|
130
130
|
condition_valid_times: ConditionValidTimes,
|
|
131
|
+
override: bool,
|
|
131
132
|
) -> List[TransactionRecord]:
|
|
132
133
|
async with get_wallet_client(wallet_rpc_port, fingerprint) as (wallet_client, fingerprint, config):
|
|
133
134
|
try:
|
|
@@ -167,6 +168,14 @@ async def async_combine(
|
|
|
167
168
|
timelock_info=condition_valid_times,
|
|
168
169
|
)
|
|
169
170
|
|
|
171
|
+
if (
|
|
172
|
+
not override
|
|
173
|
+
and wallet_id == 1
|
|
174
|
+
and fee >= sum(coin.amount for tx in resp.transactions for coin in tx.removals)
|
|
175
|
+
):
|
|
176
|
+
print("Fee is >= the amount of coins selected. To continue, please use --override flag.")
|
|
177
|
+
return []
|
|
178
|
+
|
|
170
179
|
print(f"Transactions would combine up to {number_of_coins} coins.")
|
|
171
180
|
if push:
|
|
172
181
|
cli_confirm("Would you like to Continue? (y/n): ")
|
chia/cmds/coins.py
CHANGED
|
@@ -108,6 +108,7 @@ def list_cmd(
|
|
|
108
108
|
default=False,
|
|
109
109
|
help="Sort coins from largest to smallest or smallest to largest.",
|
|
110
110
|
)
|
|
111
|
+
@click.option("--override", help="Submits transaction without checking for unusual values", is_flag=True, default=False)
|
|
111
112
|
@tx_out_cmd()
|
|
112
113
|
def combine_cmd(
|
|
113
114
|
wallet_rpc_port: Optional[int],
|
|
@@ -125,6 +126,7 @@ def combine_cmd(
|
|
|
125
126
|
reuse: bool,
|
|
126
127
|
push: bool,
|
|
127
128
|
condition_valid_times: ConditionValidTimes,
|
|
129
|
+
override: bool,
|
|
128
130
|
) -> List[TransactionRecord]:
|
|
129
131
|
from .coin_funcs import async_combine
|
|
130
132
|
|
|
@@ -145,6 +147,7 @@ def combine_cmd(
|
|
|
145
147
|
largest_first=largest_first,
|
|
146
148
|
push=push,
|
|
147
149
|
condition_valid_times=condition_valid_times,
|
|
150
|
+
override=override,
|
|
148
151
|
)
|
|
149
152
|
)
|
|
150
153
|
|
chia/cmds/sim_funcs.py
CHANGED
|
@@ -130,10 +130,10 @@ def create_chia_directory(
|
|
|
130
130
|
# get fork heights then write back to config
|
|
131
131
|
if "HARD_FORK_HEIGHT" not in sim_config: # this meh code is done so that we also write to the config file.
|
|
132
132
|
sim_config["HARD_FORK_HEIGHT"] = 0
|
|
133
|
-
if "
|
|
134
|
-
sim_config["
|
|
133
|
+
if "SOFT_FORK6_HEIGHT" not in sim_config:
|
|
134
|
+
sim_config["SOFT_FORK6_HEIGHT"] = 0
|
|
135
135
|
simulator_consts["HARD_FORK_HEIGHT"] = sim_config["HARD_FORK_HEIGHT"]
|
|
136
|
-
simulator_consts["
|
|
136
|
+
simulator_consts["SOFT_FORK6_HEIGHT"] = sim_config["SOFT_FORK6_HEIGHT"]
|
|
137
137
|
|
|
138
138
|
# save config and return the config
|
|
139
139
|
save_config(chia_root, "config.yaml", config)
|
|
@@ -72,7 +72,7 @@ DEFAULT_CONSTANTS = ConsensusConstants(
|
|
|
72
72
|
MAX_GENERATOR_SIZE=uint32(1000000),
|
|
73
73
|
MAX_GENERATOR_REF_LIST_SIZE=uint32(512), # Number of references allowed in the block generator ref list
|
|
74
74
|
POOL_SUB_SLOT_ITERS=uint64(37600000000), # iters limit * NUM_SPS
|
|
75
|
-
|
|
75
|
+
SOFT_FORK6_HEIGHT=uint32(6800000),
|
|
76
76
|
# June 2024
|
|
77
77
|
HARD_FORK_HEIGHT=uint32(5496000),
|
|
78
78
|
# June 2027
|
|
@@ -86,5 +86,5 @@ DEFAULT_CONSTANTS = ConsensusConstants(
|
|
|
86
86
|
|
|
87
87
|
def update_testnet_overrides(network_id: str, overrides: Dict[str, Any]) -> None:
|
|
88
88
|
if network_id == "testnet11":
|
|
89
|
-
if "
|
|
90
|
-
overrides["
|
|
89
|
+
if "SOFT_FORK6_HEIGHT" not in overrides:
|
|
90
|
+
overrides["SOFT_FORK6_HEIGHT"] = 2000000
|
chia/full_node/full_node.py
CHANGED
|
@@ -1838,9 +1838,10 @@ class FullNode:
|
|
|
1838
1838
|
return await self.add_block(new_block, peer, bls_cache)
|
|
1839
1839
|
state_change_summary: Optional[StateChangeSummary] = None
|
|
1840
1840
|
ppp_result: Optional[PeakPostProcessingResult] = None
|
|
1841
|
-
async with
|
|
1842
|
-
self.
|
|
1843
|
-
|
|
1841
|
+
async with (
|
|
1842
|
+
self.blockchain.priority_mutex.acquire(priority=BlockchainMutexPriority.high),
|
|
1843
|
+
enable_profiler(self.profile_block_validation) as pr,
|
|
1844
|
+
):
|
|
1844
1845
|
# After acquiring the lock, check again, because another asyncio thread might have added it
|
|
1845
1846
|
if self.blockchain.contains_block(header_hash):
|
|
1846
1847
|
return None
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
from typing import Dict, List, Optional
|
|
5
5
|
|
|
6
|
-
from chia_rs import MEMPOOL_MODE, get_flags_for_height_and_constants
|
|
6
|
+
from chia_rs import DONT_VALIDATE_SIGNATURE, MEMPOOL_MODE, G2Element, get_flags_for_height_and_constants
|
|
7
7
|
from chia_rs import get_puzzle_and_solution_for_coin2 as get_puzzle_and_solution_for_coin_rust
|
|
8
8
|
from chia_rs import run_block_generator, run_block_generator2, run_chia_program
|
|
9
9
|
|
|
@@ -36,7 +36,7 @@ def get_name_puzzle_conditions(
|
|
|
36
36
|
height: uint32,
|
|
37
37
|
constants: ConsensusConstants,
|
|
38
38
|
) -> NPCResult:
|
|
39
|
-
flags = get_flags_for_height_and_constants(height, constants)
|
|
39
|
+
flags = get_flags_for_height_and_constants(height, constants) | DONT_VALIDATE_SIGNATURE
|
|
40
40
|
|
|
41
41
|
if mempool_mode:
|
|
42
42
|
flags = flags | MEMPOOL_MODE
|
|
@@ -48,7 +48,7 @@ def get_name_puzzle_conditions(
|
|
|
48
48
|
|
|
49
49
|
try:
|
|
50
50
|
block_args = generator.generator_refs
|
|
51
|
-
err, result = run_block(bytes(generator.program), block_args, max_cost, flags, constants)
|
|
51
|
+
err, result = run_block(bytes(generator.program), block_args, max_cost, flags, G2Element(), None, constants)
|
|
52
52
|
assert (err is None) != (result is None)
|
|
53
53
|
if err is not None:
|
|
54
54
|
return NPCResult(uint16(err), None)
|
chia/rpc/wallet_rpc_api.py
CHANGED
|
@@ -1204,18 +1204,22 @@ class WalletRpcApi:
|
|
|
1204
1204
|
async with action_scope.use() as interface:
|
|
1205
1205
|
interface.side_effects.selected_coins.extend(coins)
|
|
1206
1206
|
|
|
1207
|
-
# Next let's select enough coins to meet the target if there is one
|
|
1208
|
-
if request.target_coin_amount is
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
amount=uint64(fungible_amount_needed - amount_selected), action_scope=action_scope
|
|
1217
|
-
)
|
|
1207
|
+
# Next let's select enough coins to meet the target + fee if there is one
|
|
1208
|
+
fungible_amount_needed = uint64(0) if request.target_coin_amount is None else request.target_coin_amount
|
|
1209
|
+
if isinstance(wallet, Wallet):
|
|
1210
|
+
fungible_amount_needed = uint64(fungible_amount_needed + request.fee)
|
|
1211
|
+
amount_selected = sum(c.amount for c in coins)
|
|
1212
|
+
if amount_selected < fungible_amount_needed: # implicit fungible_amount_needed > 0 here
|
|
1213
|
+
coins.extend(
|
|
1214
|
+
await wallet.select_coins(
|
|
1215
|
+
amount=uint64(fungible_amount_needed - amount_selected), action_scope=action_scope
|
|
1218
1216
|
)
|
|
1217
|
+
)
|
|
1218
|
+
|
|
1219
|
+
if len(coins) > request.number_of_coins:
|
|
1220
|
+
raise ValueError(
|
|
1221
|
+
f"Options specified cannot be met without selecting more coins than specified: {len(coins)}"
|
|
1222
|
+
)
|
|
1219
1223
|
|
|
1220
1224
|
# Now let's select enough coins to get to the target number to combine
|
|
1221
1225
|
if len(coins) < request.number_of_coins:
|
|
@@ -1243,6 +1247,7 @@ class WalletRpcApi:
|
|
|
1243
1247
|
uint64(sum(c.amount for c in coins)) if request.target_coin_amount is None else request.target_coin_amount
|
|
1244
1248
|
)
|
|
1245
1249
|
if isinstance(wallet, Wallet):
|
|
1250
|
+
primary_output_amount = uint64(primary_output_amount - request.fee)
|
|
1246
1251
|
await wallet.generate_signed_transaction(
|
|
1247
1252
|
primary_output_amount,
|
|
1248
1253
|
await wallet.get_puzzle_hash(new=action_scope.config.tx_config.reuse_puzhash),
|
|
@@ -1569,7 +1574,7 @@ class WalletRpcApi:
|
|
|
1569
1574
|
excluded_coin_amounts = []
|
|
1570
1575
|
excluded_coins_input: Optional[Dict[str, Dict[str, Any]]] = request.get("excluded_coins")
|
|
1571
1576
|
if excluded_coins_input is not None:
|
|
1572
|
-
excluded_coins = [Coin.from_json_dict(json_coin) for json_coin in excluded_coins_input]
|
|
1577
|
+
excluded_coins = [Coin.from_json_dict(json_coin) for json_coin in excluded_coins_input.values()]
|
|
1573
1578
|
else:
|
|
1574
1579
|
excluded_coins = []
|
|
1575
1580
|
excluded_coin_ids_input: Optional[List[str]] = request.get("excluded_coin_ids")
|
chia/util/initial-config.yaml
CHANGED
|
@@ -37,7 +37,7 @@ network_overrides: &network_overrides
|
|
|
37
37
|
SUB_SLOT_ITERS_STARTING: 67108864
|
|
38
38
|
# Forks activated from the beginning on this network
|
|
39
39
|
HARD_FORK_HEIGHT: 0
|
|
40
|
-
|
|
40
|
+
SOFT_FORK6_HEIGHT: 2000000
|
|
41
41
|
PLOT_FILTER_128_HEIGHT: 6029568
|
|
42
42
|
PLOT_FILTER_64_HEIGHT: 11075328
|
|
43
43
|
PLOT_FILTER_32_HEIGHT: 16121088
|
|
@@ -672,4 +672,4 @@ simulator:
|
|
|
672
672
|
|
|
673
673
|
# Fork Settings
|
|
674
674
|
HARD_FORK_HEIGHT: 0
|
|
675
|
-
|
|
675
|
+
SOFT_FORK6_HEIGHT: 0
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: chia-blockchain
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
4
4
|
Summary: Chia blockchain full node, farmer, timelord, and wallet.
|
|
5
5
|
Home-page: https://chia.net/
|
|
6
6
|
License: Apache License
|
|
7
7
|
Keywords: chia,blockchain,node
|
|
8
8
|
Author: Mariano Sorgente
|
|
9
9
|
Author-email: mariano@chia.net
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.9,<3.13
|
|
11
11
|
Classifier: License :: Other/Proprietary License
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.9
|
|
@@ -26,7 +26,7 @@ Requires-Dist: bitstring (==4.1.4)
|
|
|
26
26
|
Requires-Dist: black (==24.8.0) ; extra == "dev"
|
|
27
27
|
Requires-Dist: boto3 (==1.34.143)
|
|
28
28
|
Requires-Dist: build (==1.2.1) ; extra == "dev"
|
|
29
|
-
Requires-Dist: chia_rs (==0.
|
|
29
|
+
Requires-Dist: chia_rs (==0.16.0)
|
|
30
30
|
Requires-Dist: chiabip158 (==1.5.1)
|
|
31
31
|
Requires-Dist: chiapos (==2.0.4)
|
|
32
32
|
Requires-Dist: chiavdf (==1.1.6)
|
|
@@ -44,7 +44,7 @@ chia/_tests/cmds/test_timelock_args.py,sha256=n0pI6YtOV7G17Ub0Q0lJJnARSbjEAJOHXQ
|
|
|
44
44
|
chia/_tests/cmds/test_tx_config_args.py,sha256=hGEnXC52E14U_JcVusiqCmP1j0xLxmlfmvm6SRkiF48,4730
|
|
45
45
|
chia/_tests/cmds/testing_classes.py,sha256=IkHerldmsrGQJCSvnLEyV0IOdr2a9XjvQKY6YrfYGjw,1810
|
|
46
46
|
chia/_tests/cmds/wallet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
-
chia/_tests/cmds/wallet/test_coins.py,sha256=
|
|
47
|
+
chia/_tests/cmds/wallet/test_coins.py,sha256=p1HF734KqBdFkaTVKPh1S3Ku4F-MdxRfWU-ce9QTxTg,7016
|
|
48
48
|
chia/_tests/cmds/wallet/test_consts.py,sha256=suv54GTIHGwCjIeq-zkwWu8NqGO8AIMmxxhN1GNHfLo,1662
|
|
49
49
|
chia/_tests/cmds/wallet/test_dao.py,sha256=egWxijpvOImXopxmo7Q8cFbHPsH7_9ThKpzjHJ1_alM,21017
|
|
50
50
|
chia/_tests/cmds/wallet/test_did.py,sha256=S0iB3dEMxlVAxiH75qDgmWeoAsHCCt1csJVJv6L1KyY,16490
|
|
@@ -55,7 +55,7 @@ chia/_tests/cmds/wallet/test_tx_decorators.py,sha256=cKOn8yDwqhyTS2jSMxl_NN4bRCC
|
|
|
55
55
|
chia/_tests/cmds/wallet/test_vcs.py,sha256=8MkP-JltyjW8ttgzt4XFSFKq5-4oKQtH0jWnXCEhX88,14300
|
|
56
56
|
chia/_tests/cmds/wallet/test_wallet.py,sha256=VxR6126Sj9HuiEHnvv5KU2j52Z2stz6dc-rwQz-vnag,47464
|
|
57
57
|
chia/_tests/cmds/wallet/test_wallet_check.py,sha256=mv9VjNTAEPtPm8n0cmMF4OppBJdsr7Y1czyavufv2VY,3424
|
|
58
|
-
chia/_tests/conftest.py,sha256=
|
|
58
|
+
chia/_tests/conftest.py,sha256=vuZvXvt7A-csJYtbTYbUHI0XqOtBe2v3XvE425LkD4c,46475
|
|
59
59
|
chia/_tests/connection_utils.py,sha256=WTqtp7gGLHizPlPZxvzLnbSBOZ0Fel8yO0tm_Bzi-Uc,4784
|
|
60
60
|
chia/_tests/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
61
|
chia/_tests/core/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -108,7 +108,7 @@ chia/_tests/core/full_node/test_address_manager.py,sha256=7upvRvanWrS4bQwVQVlGfu
|
|
|
108
108
|
chia/_tests/core/full_node/test_block_height_map.py,sha256=9gCq7PrgnbzxhW9ebhgwATxwnAT8_TgySNB7mpdYzls,24824
|
|
109
109
|
chia/_tests/core/full_node/test_conditions.py,sha256=LbnXffRiQvR5BLlNLBMtZ3ARWmTcNXc4L-4MbxAO_CM,25705
|
|
110
110
|
chia/_tests/core/full_node/test_full_node.py,sha256=gI2jf5wTz1I3DOtpd0-1v6MnPQkQaaHmEDryIIPzWCo,110363
|
|
111
|
-
chia/_tests/core/full_node/test_generator_tools.py,sha256=
|
|
111
|
+
chia/_tests/core/full_node/test_generator_tools.py,sha256=K9UO6WfF_H21tRiRrvcEqZyH2zMDQxdytFzMrrLpx0o,2139
|
|
112
112
|
chia/_tests/core/full_node/test_hint_management.py,sha256=KWSM0V73fy_T_TrESIeXxu1EU3xq7PayOEC-arvAY-Y,4577
|
|
113
113
|
chia/_tests/core/full_node/test_node_load.py,sha256=RN7fcRVMqBIRj0uEtmfjJW1QFEqFm0xhmVzlBDMw-yk,1473
|
|
114
114
|
chia/_tests/core/full_node/test_performance.py,sha256=W89Asahq0PdfO_5stNvCG3rCBrbp8EPBg3pxQG-PvGY,7470
|
|
@@ -119,11 +119,11 @@ chia/_tests/core/large_block.py,sha256=Ifi3lzBcwtBHDI7no3OTemhJMQZc5LlKC32QFNZwM
|
|
|
119
119
|
chia/_tests/core/make_block_generator.py,sha256=Rth0n0lYoVxWSY_rYz3jlBCszO9VP6gzvlwcAN2r2Oo,2884
|
|
120
120
|
chia/_tests/core/mempool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
121
|
chia/_tests/core/mempool/config.py,sha256=-GncDnWBQwvk5MHfOhjQ4DnUD3VlxrD8lLrt8Gd2D5c,86
|
|
122
|
-
chia/_tests/core/mempool/test_mempool.py,sha256
|
|
122
|
+
chia/_tests/core/mempool/test_mempool.py,sha256=-Oq9tN5OoH5WTUshAYhXBzMwbhg82y4cuJAMXypbdJw,140741
|
|
123
123
|
chia/_tests/core/mempool/test_mempool_fee_estimator.py,sha256=K6yjcyR4I6CHGbx8DhKrwDaOLcJj3hFRinhPO1NDnPA,3635
|
|
124
124
|
chia/_tests/core/mempool/test_mempool_fee_protocol.py,sha256=7CQZE8F5CY4EtQsX5KHhPXWA6mJodzV2JOTbobbdKx0,2172
|
|
125
125
|
chia/_tests/core/mempool/test_mempool_item_queries.py,sha256=KWtgC0h2u23t9XNQs3ThyXJ6TVTF6tE55z_ITogbZZk,7048
|
|
126
|
-
chia/_tests/core/mempool/test_mempool_manager.py,sha256=
|
|
126
|
+
chia/_tests/core/mempool/test_mempool_manager.py,sha256=ykgVsp_LHbzS9T2_qZ8mwZoD271rruV9xSoXTCHFfh0,95326
|
|
127
127
|
chia/_tests/core/mempool/test_mempool_performance.py,sha256=l1-ztaCYO33L-MoSZ_T6KKTFLN3NWUvW7wfTeXgs4tY,2777
|
|
128
128
|
chia/_tests/core/mempool/test_singleton_fast_forward.py,sha256=U2_5d15O-l9WwEUXX-F30EmausUli3XCKCTggvIpUs0,29178
|
|
129
129
|
chia/_tests/core/node_height.py,sha256=MHC8fEZXvDCU-7zCWXwnSaWx-iECEvyl51OpitIMQIE,912
|
|
@@ -144,7 +144,7 @@ chia/_tests/core/services/config.py,sha256=JXqJ5YOTYOREo99xAEDk-S_IfMZ8BDT6MzqVA
|
|
|
144
144
|
chia/_tests/core/services/test_services.py,sha256=zBIt3aM_QEkOY7niu0qhlFUTaAuDFi78NLAc8QXz3YU,6666
|
|
145
145
|
chia/_tests/core/ssl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
146
|
chia/_tests/core/ssl/config.py,sha256=fTDhByaME5cEDbtyTKCWUf69F4kajs75aTQewZMjxak,69
|
|
147
|
-
chia/_tests/core/ssl/test_ssl.py,sha256=
|
|
147
|
+
chia/_tests/core/ssl/test_ssl.py,sha256=alUhFnbxrJuBKXEWsq76zQ54OEQ6rIchV_7wWOhXkjg,8424
|
|
148
148
|
chia/_tests/core/test_coins.py,sha256=O40e-VYgH0grm5p_DU3OSEf1PVgUB_PhWfB60xV5rZ8,901
|
|
149
149
|
chia/_tests/core/test_cost_calculation.py,sha256=WNstGlois6cUgpWD_77KUnaYcMuERtsg4l7z3yNfRKU,12304
|
|
150
150
|
chia/_tests/core/test_crawler.py,sha256=Y1n6AEl1of2ZTT-PuhVbgY_qf0PeXIODtLeuNa9DYo8,6458
|
|
@@ -191,7 +191,7 @@ chia/_tests/farmer_harvester/test_third_party_harvesters.py,sha256=iPToNfa340tP1
|
|
|
191
191
|
chia/_tests/farmer_harvester/test_third_party_harvesters_data.json,sha256=wVdG-0MN_zrZVLhFvTBd-baWnZ-T0uOYqyxPi815_bo,14109
|
|
192
192
|
chia/_tests/fee_estimation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
193
193
|
chia/_tests/fee_estimation/config.py,sha256=fTDhByaME5cEDbtyTKCWUf69F4kajs75aTQewZMjxak,69
|
|
194
|
-
chia/_tests/fee_estimation/test_fee_estimation_integration.py,sha256=
|
|
194
|
+
chia/_tests/fee_estimation/test_fee_estimation_integration.py,sha256=kGKmpVSX6PQpKIjQhrplcQCevfDSm2gyf7adXagemHA,10587
|
|
195
195
|
chia/_tests/fee_estimation/test_fee_estimation_rpc.py,sha256=6mu5L2J9IHGfoZ8NVq_Bd9nFs7tPJ8vxmS7vqNICkb0,11517
|
|
196
196
|
chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py,sha256=9s_L_p3NtsEjz2yQrzakr7ExlQpHzmpqeKTq59BqTio,5265
|
|
197
197
|
chia/_tests/fee_estimation/test_mempoolitem_height_added.py,sha256=NpOAqEBuqd2JvWWNHdUzeVSUHObCL_h0VTEOJaWPljY,5915
|
|
@@ -279,7 +279,7 @@ chia/_tests/util/test_build_job_matrix.py,sha256=MdaerPq7De4t-OSVs-Oonp0IBnkJ1mV
|
|
|
279
279
|
chia/_tests/util/test_build_network_protocol_files.py,sha256=Tgqh_tHAdEkIhi0Obk7dqp63ljFKMD1w67kkK3WEPFM,161
|
|
280
280
|
chia/_tests/util/test_chia_version.py,sha256=_4MvXiXcIHmOwLLckisGFfPF4u9PF9yr2-PH52GUMEM,1416
|
|
281
281
|
chia/_tests/util/test_collection.py,sha256=5TtHGYlT5Pm9B_ceeaob6u142pjal6HNNkaogL3m0b8,353
|
|
282
|
-
chia/_tests/util/test_condition_tools.py,sha256=
|
|
282
|
+
chia/_tests/util/test_condition_tools.py,sha256=b-BK0n0jnakEXppCFU6NxgA2AWDz12tI6O_XlVkC6wM,10142
|
|
283
283
|
chia/_tests/util/test_config.py,sha256=WbISKYYpMo2DXFq0dzSQ4-xYgIOUhy2-ehZFCubNjC8,12399
|
|
284
284
|
chia/_tests/util/test_dump_keyring.py,sha256=8ickcg6DCn7mC2tbVd8uFMXmSTS1qX42vZSdfvFWE74,1595
|
|
285
285
|
chia/_tests/util/test_errors.py,sha256=j2biSRFKUkMaOdnbZFWOZiTBTGHDlatq13CulAHXP7E,321
|
|
@@ -296,10 +296,10 @@ chia/_tests/util/test_paginator.py,sha256=ur8m76q9qYZY6dzNNI4nhkoijHZJnwL_bO_KL0
|
|
|
296
296
|
chia/_tests/util/test_pprint.py,sha256=M3eNs5rje0zemmmQkFmmK7i1kklHYNaF3NRp_0ARVKk,653
|
|
297
297
|
chia/_tests/util/test_priority_mutex.py,sha256=lbpewnI0rouH6KpRJmgYmtWa_WHC8ShjcsPJj21PUTM,16144
|
|
298
298
|
chia/_tests/util/test_recursive_replace.py,sha256=SGMqPzvswO4PZWiatHUXmd73LEX_63Ty9c2ut41Okw0,3575
|
|
299
|
-
chia/_tests/util/test_replace_str_to_bytes.py,sha256=
|
|
299
|
+
chia/_tests/util/test_replace_str_to_bytes.py,sha256=Drl5H8Uer8PaCJjEFZBVT2thSEPx959p39gYb-mMq-s,5899
|
|
300
300
|
chia/_tests/util/test_service_groups.py,sha256=y_3cERNInZigI2FM-NKm6o6byLC-G4os03x2NU4Bz6k,403
|
|
301
301
|
chia/_tests/util/test_ssl_check.py,sha256=tI4ByhfG6t101VMMsYl_gsiKedN391kxvFLfjw4ZAKw,934
|
|
302
|
-
chia/_tests/util/test_testnet_overrides.py,sha256=
|
|
302
|
+
chia/_tests/util/test_testnet_overrides.py,sha256=px0UG5ptT9p0pNpnRcW28f33OlpR-4oplSYczv1MlrM,469
|
|
303
303
|
chia/_tests/util/test_tests_misc.py,sha256=-OZTLfSFRrjdIe1-bP9YTCytBGzgUPmLzhD7X67D3ag,891
|
|
304
304
|
chia/_tests/util/test_timing.py,sha256=B8VUBMSMC3OV-BgDTVfxUIC6CtmdAKFr6GE7CRf7bzE,1035
|
|
305
305
|
chia/_tests/util/test_trusted_peer.py,sha256=MoqwfAplARimvmSeq7kJghU8PX1D302e8Rbz5126VFY,2461
|
|
@@ -343,7 +343,7 @@ chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py,sha256=Dwxiw0mxO9E6
|
|
|
343
343
|
chia/_tests/wallet/rpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
344
344
|
chia/_tests/wallet/rpc/config.py,sha256=zk46Xu_ueEcDUY3PcNCD0xqHppG_bvKmwBKH5-yuJtw,86
|
|
345
345
|
chia/_tests/wallet/rpc/test_dl_wallet_rpc.py,sha256=mANfG9wIzaYJ5izNArkqHZjQzRqJf-ypLqhcs3ucGbw,12880
|
|
346
|
-
chia/_tests/wallet/rpc/test_wallet_rpc.py,sha256=
|
|
346
|
+
chia/_tests/wallet/rpc/test_wallet_rpc.py,sha256=ounbkLval_yz_gas-oSRimIu-pHWV1gEJd_8KAMEO7c,149327
|
|
347
347
|
chia/_tests/wallet/simple_sync/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
348
348
|
chia/_tests/wallet/simple_sync/config.py,sha256=fTDhByaME5cEDbtyTKCWUf69F4kajs75aTQewZMjxak,69
|
|
349
349
|
chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py,sha256=6t9_lo6Me5PshMZxZbCrxWLGrvOO01bw1pExJSnB6n4,32861
|
|
@@ -400,8 +400,8 @@ chia/cmds/check_wallet_db.py,sha256=9Fl2xgFYwwF99TCwxWk-8VeKQg_BzhqbV57FvwsqXmM,
|
|
|
400
400
|
chia/cmds/chia.py,sha256=de76G_CbsKaN8jDKqA250dRRHD3hLzRKi_CVsX08tCs,4654
|
|
401
401
|
chia/cmds/cmd_classes.py,sha256=kePzeJZ4i8njXVFQflzZNi-PJ3ieR4tHkHj_oS8Zcmw,11518
|
|
402
402
|
chia/cmds/cmds_util.py,sha256=ksEBRBpPp9LW0fmRZHZ_dJBaa9sW_HLfXKYWt2OFSj0,19576
|
|
403
|
-
chia/cmds/coin_funcs.py,sha256=
|
|
404
|
-
chia/cmds/coins.py,sha256=
|
|
403
|
+
chia/cmds/coin_funcs.py,sha256=y2JYVauYnK799_rWoxD6Irv-XkmkV5Sf5trP6ESlarg,10651
|
|
404
|
+
chia/cmds/coins.py,sha256=f68Vlxz7IkJjuhMTs-nAx8bWjaCnTuJo3ffL3vr0lgs,6727
|
|
405
405
|
chia/cmds/completion.py,sha256=Ph1WSKtqCNO84Kw0-Ws2vVtIAg0lk5at0nnW8jKe94w,1387
|
|
406
406
|
chia/cmds/configure.py,sha256=gEtnA377ADTM4yubG5eHTfbB2GIFMkM1LirmgmNYsW8,14772
|
|
407
407
|
chia/cmds/dao.py,sha256=hQk8S4Y0CAgdy0oHCJegBkBjAebfMwdlKVAXa0zfyCM,30522
|
|
@@ -437,7 +437,7 @@ chia/cmds/show.py,sha256=Mtha6B2L64AHaOpFP9F2oZ1JSVgEy25_iV9NMRy5vKY,2443
|
|
|
437
437
|
chia/cmds/show_funcs.py,sha256=BM33hf4k2of8LTpPy5ZRLctAzmLOjzUAqoyyAWK4tuc,9865
|
|
438
438
|
chia/cmds/signer.py,sha256=pBFJrPPYb3qhyOoO5E-9ZMPzXug5mgiUMLZ_igsB6WQ,11597
|
|
439
439
|
chia/cmds/sim.py,sha256=FTcOiu-d_55LZ7hyY2o3ZzhAnhO9OR7to-tveXKDM2U,7671
|
|
440
|
-
chia/cmds/sim_funcs.py,sha256=
|
|
440
|
+
chia/cmds/sim_funcs.py,sha256=g2N-fvPoZNVXKnGHf4wfulKLLfcEIjPorB9ADhwNL4I,22638
|
|
441
441
|
chia/cmds/start.py,sha256=rdnU6cnZEBrW4b3WJKsSORx0PK-Mu96woY1xWSBxc88,923
|
|
442
442
|
chia/cmds/start_funcs.py,sha256=ekRxT6rzSZmUlhEdyziLSWn3lKtBaf_NRWWYSAc_Hdg,4038
|
|
443
443
|
chia/cmds/stop.py,sha256=CgbG3bGm6RrYHCKYyrX1RxDqjRwAW1dYb_geMMRlJ1U,2055
|
|
@@ -457,7 +457,7 @@ chia/consensus/coinbase.py,sha256=Oy1xPsXZqNxLR31qWjp5JPc4P96-GN7l-XsP-7aAc0w,12
|
|
|
457
457
|
chia/consensus/condition_costs.py,sha256=MKra0MQHb_B7uoH-6THMPZWAJRrB9KSUjxkH7VZRRRs,228
|
|
458
458
|
chia/consensus/constants.py,sha256=26j1y_pG71fPIlFv5btWdSbDmptrCHTJcE4rFhFxGhU,2412
|
|
459
459
|
chia/consensus/cost_calculator.py,sha256=2RMZrB2IlCX7eMUBiPy2WPURt7y74DONNCvU2d8D1K0,396
|
|
460
|
-
chia/consensus/default_constants.py,sha256=
|
|
460
|
+
chia/consensus/default_constants.py,sha256=y7zIfnE3G27WYJlDz80YrDjYT-dXzcxctKfQOndWcU4,4994
|
|
461
461
|
chia/consensus/deficit.py,sha256=tjaMJ9eNrdq9WCoP0A4bX76Nk6wjh6sKe_it9R_h25U,2183
|
|
462
462
|
chia/consensus/difficulty_adjustment.py,sha256=lP2y8VJHjwfh-9NZs8NPR9rQTvtrisqq3SiMnVQ_DP8,18526
|
|
463
463
|
chia/consensus/find_fork_point.py,sha256=2YrYWNNDbd4JI2JwFQbR04tDzZv1rxE94rjZDrEl-lI,3351
|
|
@@ -515,13 +515,13 @@ chia/full_node/fee_estimator_constants.py,sha256=GsQfI9Z7YzPWGEe6ghJeYvzbG87C86K
|
|
|
515
515
|
chia/full_node/fee_estimator_interface.py,sha256=GoeD5RVmIsb4_qW-9AGttglwcDIpdIxFrEhqLUXp-Mw,1606
|
|
516
516
|
chia/full_node/fee_history.py,sha256=1kdclEEbh6VwBKEY76PvqdJOXcRNYrv-evebpKBfNCg,610
|
|
517
517
|
chia/full_node/fee_tracker.py,sha256=INckyeeug86VcQkJLLV5tXMq9uZci3A_295QJA5KYYU,22651
|
|
518
|
-
chia/full_node/full_node.py,sha256=
|
|
518
|
+
chia/full_node/full_node.py,sha256=VKNjPpc7FhWqnNxARCkBX4d2YI4pm2Y7Sa4qGX5KtxI,152305
|
|
519
519
|
chia/full_node/full_node_api.py,sha256=PsjdBbJmgogXMGvVYZ1LRqbBQA-n5KMP0JAxspSlcMY,95851
|
|
520
520
|
chia/full_node/full_node_store.py,sha256=uMozylFHpsMcaLrOtNh56kZiJf2yBGXFx87zYnW74xY,47424
|
|
521
521
|
chia/full_node/hint_management.py,sha256=0osI7EkcodmaHg-dIobka7Vd8ZNlBUjF0q_GlE6SXTI,2323
|
|
522
522
|
chia/full_node/hint_store.py,sha256=0v9hveG9eM3nbUwugOEPUZSPKNag1EWShv-Co9QzQhY,3724
|
|
523
523
|
chia/full_node/mempool.py,sha256=5wS7wXx9F_z1cZFHHAdMcX2ZorcHCTgXzAx5zQrPPT0,24854
|
|
524
|
-
chia/full_node/mempool_check_conditions.py,sha256=
|
|
524
|
+
chia/full_node/mempool_check_conditions.py,sha256=55CzIDKZnwZAKGSr54Z_ZgtvxltWcKYbXcVHudcbnhU,6948
|
|
525
525
|
chia/full_node/mempool_manager.py,sha256=3CH1AeeK2MkcCqpu3nd15JIq5i_E55R6EUIPORxngbY,38765
|
|
526
526
|
chia/full_node/pending_tx_cache.py,sha256=iC3jG4mKuEdHb0ZGA_B9THtIrmmqLqgDxBg-1_cFPTE,3674
|
|
527
527
|
chia/full_node/puzzles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -603,7 +603,7 @@ chia/rpc/rpc_server.py,sha256=dtV2Axb3qo4bz4jK3DSJkAZWz3E3PAf54ajNo7clV6I,17489
|
|
|
603
603
|
chia/rpc/timelord_rpc_api.py,sha256=zGnywbUjwNGuw_z9187BOu9vQirYdpJ5HHFOHbJ7VY8,863
|
|
604
604
|
chia/rpc/util.py,sha256=Risg5n2ecHKiLJBvfP47NxHiWfadflvaRxg_92DVuzo,13533
|
|
605
605
|
chia/rpc/wallet_request_types.py,sha256=ZVDKxnkLn_7pDlR8TtLalKKgBcZfs7xc4uBr6RCKDQQ,16318
|
|
606
|
-
chia/rpc/wallet_rpc_api.py,sha256=
|
|
606
|
+
chia/rpc/wallet_rpc_api.py,sha256=fiMx0NVpQQVHvAmxxY7c0x07mY1s0j05sS2Bu3XEsKA,224442
|
|
607
607
|
chia/rpc/wallet_rpc_client.py,sha256=D9B9gGXzvnjZfLXlMRwYuw_32lgFbjDhanx7dHug_aQ,75590
|
|
608
608
|
chia/seeder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
609
609
|
chia/seeder/crawl_store.py,sha256=HgUTTGP9X1P3WNWmfoV0f6Oy8xauerQzpgBYdJOxzsE,16851
|
|
@@ -742,7 +742,7 @@ chia/util/files.py,sha256=VaBLOAsHEjOs8Hh4Ctijfy6YPGLur4RbX7PcaJLRPxg,3251
|
|
|
742
742
|
chia/util/full_block_utils.py,sha256=EDqZI5hG1peyCgsMapGM7nDxnKs0lalmIRhyaIR0_kc,12028
|
|
743
743
|
chia/util/generator_tools.py,sha256=9McN-tQqxFUWDU-MaCqoHQD1uIdu21jrB7gV673Vkh8,2068
|
|
744
744
|
chia/util/hash.py,sha256=e8YIRDR7MzgeCo4JxETqO9J_OKPlkHGaFHkh0wQ13fM,842
|
|
745
|
-
chia/util/initial-config.yaml,sha256=
|
|
745
|
+
chia/util/initial-config.yaml,sha256=e3_OIqKkkFPsyC7IG5gSoAwFqbrOcHy2_M-BMitVylM,25449
|
|
746
746
|
chia/util/inline_executor.py,sha256=VLLpUJ-yDbhTOBK4GnLODoI1Q4kZDCCmHlxLFmWsr70,646
|
|
747
747
|
chia/util/ints.py,sha256=oO7jYDASXTJdjyGVEuyik6AAfLF1nXHER62A0OvNBRI,408
|
|
748
748
|
chia/util/json_util.py,sha256=1j0DHNyji6clH71TTjYaSGnEx1mTcxrYTnctRwMLAho,1102
|
|
@@ -1021,8 +1021,8 @@ chia/wallet/wallet_transaction_store.py,sha256=Irw8k8ZqufsIDRR_uSWRV0nEOkr7m-Iz1
|
|
|
1021
1021
|
chia/wallet/wallet_user_store.py,sha256=Ce6Gg9A7LX9f7aKdVhLe6st0o-KFPI1hl9FLro6PuCk,4090
|
|
1022
1022
|
chia/wallet/wallet_weight_proof_handler.py,sha256=XlzDsTULQPljbAN7BVLo133aEc--aq0U_k4owSj3Os8,4932
|
|
1023
1023
|
mozilla-ca/cacert.pem,sha256=GJ089tEDGF-6BtdsGvkVJjxtQiJUgaF1noU7M6yFdUA,234847
|
|
1024
|
-
chia_blockchain-2.
|
|
1025
|
-
chia_blockchain-2.
|
|
1026
|
-
chia_blockchain-2.
|
|
1027
|
-
chia_blockchain-2.
|
|
1028
|
-
chia_blockchain-2.
|
|
1024
|
+
chia_blockchain-2.5.0.dist-info/LICENSE,sha256=QsHs53_We_JTOMH_GprgI5-zMC9KC7D-Vws6Zi4efPM,11347
|
|
1025
|
+
chia_blockchain-2.5.0.dist-info/METADATA,sha256=6m0lL2gzckZNpJZKhT0ucr_dVpvBPGZGazL9ObgfDEA,10936
|
|
1026
|
+
chia_blockchain-2.5.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
1027
|
+
chia_blockchain-2.5.0.dist-info/entry_points.txt,sha256=GL2-UvicPVdKz72IP4shnmV3XImfoD5pMzoURfoAYk4,742
|
|
1028
|
+
chia_blockchain-2.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|