Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions benchmarks/mempool-long-lived.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@
from time import monotonic
from typing import Optional

from chia_rs import CoinSpend, G2Element, SpendBundle
from chia_rs import CoinRecord, CoinSpend, G2Element, SpendBundle
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint32, uint64

from chia.consensus.default_constants import DEFAULT_CONSTANTS
from chia.full_node.mempool_manager import MempoolManager
from chia.types.blockchain_format.coin import Coin
from chia.types.blockchain_format.serialized_program import SerializedProgram
from chia.types.coin_record import CoinRecord
from chia.types.condition_opcodes import ConditionOpcode
from chia.types.mempool_item import UnspentLineageInfo
from chia.util.casts import int_to_bytes
Expand Down
3 changes: 1 addition & 2 deletions benchmarks/mempool.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from time import monotonic
from typing import Optional

from chia_rs import SpendBundle
from chia_rs import CoinRecord, SpendBundle
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint32, uint64

Expand All @@ -18,7 +18,6 @@
from chia.full_node.mempool_manager import MempoolManager
from chia.simulator.wallet_tools import WalletTool
from chia.types.blockchain_format.coin import Coin
from chia.types.coin_record import CoinRecord
from chia.types.mempool_inclusion_status import MempoolInclusionStatus
from chia.types.mempool_item import UnspentLineageInfo
from chia.util.batches import to_batches
Expand Down
15 changes: 9 additions & 6 deletions chia/_tests/clvm/coin_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,17 @@

from collections import defaultdict
from collections.abc import Iterator
from dataclasses import dataclass, replace
from dataclasses import dataclass
from typing import Optional

from chia_rs import ConsensusConstants, SpendBundle
from chia_rs import CoinRecord, ConsensusConstants, SpendBundle, check_time_locks
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint32, uint64

from chia._tests.util.get_name_puzzle_conditions import get_name_puzzle_conditions
from chia.consensus.check_time_locks import check_time_locks
from chia.consensus.cost_calculator import NPCResult
from chia.full_node.bundle_tools import simple_solution_generator
from chia.types.blockchain_format.coin import Coin
from chia.types.coin_record import CoinRecord
from chia.util.errors import Err

MAX_COST = 11000000000
Expand Down Expand Up @@ -114,8 +112,13 @@ def update_coin_store_for_spend_bundle(
self._add_coin_entry(new_coin, now)
for spent_coin in removals:
coin_name = spent_coin.name()
coin_record = self._db[coin_name]
self._db[coin_name] = replace(coin_record, spent_block_index=now.height)
self._db[coin_name] = CoinRecord(
self._db[coin_name].coin,
self._db[coin_name].confirmed_block_index,
now.height,
self._db[coin_name].coinbase,
self._db[coin_name].timestamp,
)
return additions, spend_bundle.coin_spends

def coins_for_puzzle_hash(self, puzzle_hash: bytes32) -> Iterator[Coin]:
Expand Down
3 changes: 1 addition & 2 deletions chia/_tests/cmds/cmd_test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from pathlib import Path
from typing import Any, Optional, cast

from chia_rs import BlockRecord, Coin, G1Element, G2Element
from chia_rs import BlockRecord, Coin, CoinRecord, G1Element, G2Element
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint8, uint16, uint32, uint64

Expand All @@ -22,7 +22,6 @@
from chia.full_node.full_node_rpc_client import FullNodeRpcClient
from chia.rpc.rpc_client import RpcClient
from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
from chia.types.coin_record import CoinRecord
from chia.types.signing_mode import SigningMode
from chia.util.bech32m import encode_puzzle_hash
from chia.util.config import load_config
Expand Down
3 changes: 1 addition & 2 deletions chia/_tests/core/full_node/stores/test_coin_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import aiosqlite
import pytest
from chia_rs import CoinState, FullBlock, additions_and_removals, get_flags_for_height_and_constants
from chia_rs import CoinRecord, CoinState, FullBlock, additions_and_removals, get_flags_for_height_and_constants
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint32, uint64

Expand All @@ -26,7 +26,6 @@
from chia.simulator.block_tools import BlockTools, test_constants
from chia.simulator.wallet_tools import WalletTool
from chia.types.blockchain_format.coin import Coin
from chia.types.coin_record import CoinRecord
from chia.types.mempool_item import UnspentLineageInfo
from chia.util.casts import int_to_bytes
from chia.util.db_wrapper import DBWrapper2
Expand Down
3 changes: 1 addition & 2 deletions chia/_tests/core/full_node/test_conditions.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from typing import Optional

import pytest
from chia_rs import AugSchemeMPL, FullBlock, G2Element, SpendBundle
from chia_rs import AugSchemeMPL, CoinRecord, FullBlock, G2Element, SpendBundle
from chia_rs.sized_ints import uint32, uint64
from clvm_tools.binutils import assemble

Expand All @@ -21,7 +21,6 @@
from chia.simulator.keyring import TempKeyring
from chia.types.blockchain_format.program import Program
from chia.types.blockchain_format.serialized_program import SerializedProgram
from chia.types.coin_record import CoinRecord
from chia.types.coin_spend import make_spend
from chia.types.condition_opcodes import ConditionOpcode
from chia.util.casts import int_to_bytes
Expand Down
2 changes: 1 addition & 1 deletion chia/_tests/core/full_node/test_full_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import pytest
from chia_rs import (
AugSchemeMPL,
CoinRecord,
ConsensusConstants,
Foliage,
FoliageTransactionBlock,
Expand Down Expand Up @@ -91,7 +92,6 @@
)
from chia.types.blockchain_format.serialized_program import SerializedProgram
from chia.types.blockchain_format.vdf import CompressibleVDFField, VDFProof
from chia.types.coin_record import CoinRecord
from chia.types.coin_spend import make_spend
from chia.types.condition_opcodes import ConditionOpcode
from chia.types.condition_with_args import ConditionWithArgs
Expand Down
29 changes: 18 additions & 11 deletions chia/_tests/core/mempool/test_mempool_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@
ELIGIBLE_FOR_DEDUP,
ELIGIBLE_FOR_FF,
AugSchemeMPL,
CoinRecord,
CoinSpend,
ConsensusConstants,
G2Element,
SpendBundle,
SpendBundleConditions,
SpendConditions,
check_time_locks,
get_conditions_from_spendbundle,
run_block_generator2,
)
Expand All @@ -27,7 +29,6 @@
from chia._tests.conftest import ConsensusMode
from chia._tests.util.misc import Marks, datacases, invariant_check_mempool
from chia._tests.util.setup_nodes import OldSimulatorsAndWallets, setup_simulators_and_wallets
from chia.consensus.check_time_locks import check_time_locks
from chia.consensus.condition_costs import ConditionCost
from chia.consensus.default_constants import DEFAULT_CONSTANTS
from chia.full_node.eligible_coin_spends import (
Expand Down Expand Up @@ -60,7 +61,6 @@
from chia.types.blockchain_format.program import DEFAULT_FLAGS, INFINITE_COST, Program
from chia.types.blockchain_format.serialized_program import SerializedProgram
from chia.types.clvm_cost import CLVMCost
from chia.types.coin_record import CoinRecord
from chia.types.coin_spend import make_spend
from chia.types.condition_opcodes import ConditionOpcode
from chia.types.condition_with_args import ConditionWithArgs
Expand Down Expand Up @@ -431,15 +431,16 @@ def test_conditions(
conds: SpendBundleConditions,
expected: Optional[Err],
) -> None:
assert (
check_time_locks(
dict(self.REMOVALS),
conds,
self.PREV_BLOCK_HEIGHT,
self.PREV_BLOCK_TIMESTAMP,
)
== expected
res: Optional[Union[int, Err]] = check_time_locks(
dict(self.REMOVALS),
conds,
self.PREV_BLOCK_HEIGHT,
self.PREV_BLOCK_TIMESTAMP,
)
if res is not None:
# TODO: remove when Rust errors and Python Errors are the same
res = Err(res)
assert res == expected


def expect(
Expand Down Expand Up @@ -2339,7 +2340,13 @@ def __init__(self, coins: list[Coin], lineage: dict[bytes32, Coin]) -> None:
self.lineage_info[ph] = UnspentLineageInfo(c.name(), c.parent_coin_info, bytes32([42] * 32))

def spend_coin(self, coin_id: bytes32, height: uint32 = uint32(10)) -> None:
self.coin_records[coin_id] = dataclasses.replace(self.coin_records[coin_id], spent_block_index=height)
self.coin_records[coin_id] = CoinRecord(
self.coin_records[coin_id].coin,
self.coin_records[coin_id].confirmed_block_index,
height,
self.coin_records[coin_id].coinbase,
self.coin_records[coin_id].timestamp,
)

def update_lineage(self, puzzle_hash: bytes32, coin: Optional[Coin]) -> None:
if coin is None:
Expand Down
3 changes: 2 additions & 1 deletion chia/_tests/util/coin_store.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from __future__ import annotations

from chia_rs import CoinRecord

from chia.consensus.coin_store_protocol import CoinStoreProtocol
from chia.types.coin_record import CoinRecord
from chia.util.db_wrapper import DBWrapper2


Expand Down
2 changes: 1 addition & 1 deletion chia/_tests/util/spend_sim.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import anyio
from chia_rs import (
DONT_VALIDATE_SIGNATURE,
CoinRecord,
CoinSpend,
ConsensusConstants,
G2Element,
Expand All @@ -34,7 +35,6 @@
from chia.full_node.mempool_manager import MempoolManager
from chia.types.blockchain_format.coin import Coin
from chia.types.blockchain_format.program import INFINITE_COST
from chia.types.coin_record import CoinRecord
from chia.types.generator_types import BlockGenerator
from chia.types.mempool_inclusion_status import MempoolInclusionStatus
from chia.types.mempool_item import MempoolItem
Expand Down
3 changes: 1 addition & 2 deletions chia/_tests/wallet/rpc/test_wallet_rpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

import aiosqlite
import pytest
from chia_rs import CoinSpend, G1Element, G2Element
from chia_rs import CoinRecord, CoinSpend, G1Element, G2Element
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint16, uint32, uint64, uint128

Expand Down Expand Up @@ -57,7 +57,6 @@
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.blockchain_format.coin import Coin, coin_as_list
from chia.types.blockchain_format.program import Program
from chia.types.coin_record import CoinRecord
from chia.types.coin_spend import make_spend
from chia.types.peer_info import PeerInfo
from chia.types.signing_mode import SigningMode
Expand Down
3 changes: 1 addition & 2 deletions chia/_tests/wallet/test_new_wallet_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from typing import Optional

import pytest
from chia_rs import AugSchemeMPL, Coin, CoinSpend, CoinState, Program, SpendBundle
from chia_rs import AugSchemeMPL, Coin, CoinRecord, CoinSpend, CoinState, Program, SpendBundle
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint8, uint16, uint32, uint64

Expand All @@ -26,7 +26,6 @@
from chia.simulator.block_tools import BlockTools
from chia.simulator.full_node_simulator import FullNodeSimulator
from chia.simulator.start_simulator import SimulatorFullNodeService
from chia.types.coin_record import CoinRecord
from chia.types.mempool_inclusion_status import MempoolInclusionStatus
from chia.util.hash import std_hash
from chia.wallet.wallet_service import WalletService
Expand Down
3 changes: 1 addition & 2 deletions chia/cmds/sim_funcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from typing import Any, Optional

from aiohttp import ClientConnectorError
from chia_rs import PrivateKey
from chia_rs import CoinRecord, PrivateKey
from chia_rs.sized_bytes import bytes32
from chia_rs.sized_ints import uint32

Expand All @@ -17,7 +17,6 @@
from chia.protocols.outbound_message import NodeType
from chia.server.resolve_peer_info import set_peer_info
from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
from chia.types.coin_record import CoinRecord
from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
from chia.util.config import load_config, save_config
from chia.util.errors import KeychainFingerprintExists
Expand Down
7 changes: 4 additions & 3 deletions chia/consensus/block_body_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@

from chia_rs import (
BlockRecord,
CoinRecord,
ConsensusConstants,
FullBlock,
SpendBundleConditions,
UnfinishedBlock,
check_time_locks,
compute_merkle_set_root,
is_canonical_serialization,
)
Expand All @@ -21,10 +23,8 @@

from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
from chia.consensus.blockchain_interface import BlockRecordsProtocol
from chia.consensus.check_time_locks import check_time_locks
from chia.consensus.coinbase import create_farmer_coin, create_pool_coin
from chia.types.blockchain_format.coin import Coin, hash_coin_ids
from chia.types.coin_record import CoinRecord
from chia.util.errors import Err
from chia.util.hash import std_hash

Expand Down Expand Up @@ -565,7 +565,8 @@ async def validate_block_body(
prev_transaction_block_timestamp,
)
if error is not None:
return error
# TODO: standardise errors across Rust and Python so cast is not necesary here
return Err(error)

# 22. Verify aggregated signature is done in pre-validation
if not block.transactions_info.aggregated_signature:
Expand Down
2 changes: 1 addition & 1 deletion chia/consensus/blockchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

from chia_rs import (
BlockRecord,
CoinRecord,
ConsensusConstants,
EndOfSubSlotBundle,
FullBlock,
Expand Down Expand Up @@ -38,7 +39,6 @@
from chia.full_node.block_store import BlockStore
from chia.types.blockchain_format.coin import Coin
from chia.types.blockchain_format.vdf import VDFInfo
from chia.types.coin_record import CoinRecord
from chia.types.generator_types import BlockGenerator
from chia.types.unfinished_header_block import UnfinishedHeaderBlock
from chia.types.validation_state import ValidationState
Expand Down
57 changes: 0 additions & 57 deletions chia/consensus/check_time_locks.py

This file was deleted.

Loading
Loading