Make the graftrooting recursive

This commit is contained in:
Matt Hauff 2022-07-11 10:33:51 -05:00
parent 56cf08b3ee
commit 6ec56911d1
No known key found for this signature in database
GPG Key ID: 3CBA6CFC81A00E46
3 changed files with 7 additions and 6 deletions

View File

@ -1,6 +1,6 @@
(mod
(
CONDITIONS
INNER_PUZZLE
SINGLETON_HASH_TO_CURRY ; Should be curried all the way except INNER_PUZZLE
METADATA_LAYER_HASH ; Should be curried all the way up to METADATA
VALUES_TO_PROVE
@ -8,6 +8,7 @@
new_metadata ; (root . etc)
new_metadata_updater
new_inner_puz
inner_solution
)
(include condition_codes.clvm)
@ -57,7 +58,7 @@
'$'
)
)
CONDITIONS
(a INNER_PUZZLE inner_solution)
)
)
)

View File

@ -1 +1 @@
ff02ffff01ff02ffff03ffff02ff3effff04ff02ffff04ff82013fffff04ff2fffff04ff5fff808080808080ffff01ff04ffff04ff10ffff04ffff0bffff02ff3affff04ff02ffff04ff0bffff04ffff02ff3affff04ff02ffff04ff17ffff04ff8202ffffff04ff82017fffff04ffff02ff16ffff04ff02ffff04ff81bfff80808080ff80808080808080ff8080808080ffff012480ff808080ff0580ffff01ff088080ff0180ffff04ffff01ffffff3f02ff04ff0101ffff02ffff02ffff03ff05ffff01ff02ff2affff04ff02ffff04ff0dffff04ffff0bff12ffff0bff2cff1480ffff0bff12ffff0bff12ffff0bff2cff3c80ff0980ffff0bff12ff0bffff0bff2cff8080808080ff8080808080ffff010b80ff0180ff0bff12ffff0bff2cff1880ffff0bff12ffff0bff12ffff0bff2cff3c80ff0580ffff0bff12ffff02ff2affff04ff02ffff04ff07ffff04ffff0bff2cff2c80ff8080808080ffff0bff2cff8080808080ffff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff16ffff04ff02ffff04ff09ff80808080ffff02ff16ffff04ff02ffff04ff0dff8080808080ffff01ff0bff2cff058080ff0180ffff02ffff03ff1bffff01ff02ff2effff04ff02ffff04ffff02ffff03ffff18ffff0101ff1380ffff01ff0bffff0100ff2bff0580ffff01ff0bffff0100ff05ff2b8080ff0180ffff04ffff04ffff17ff13ffff0181ff80ff3b80ff8080808080ffff010580ff0180ff02ffff03ff17ffff01ff02ffff03ffff09ff05ffff02ff2effff04ff02ffff04ff13ffff04ff27ff808080808080ffff01ff02ff3effff04ff02ffff04ff05ffff04ff1bffff04ff37ff808080808080ffff01ff088080ff0180ffff01ff010180ff0180ff018080
ff02ffff01ff02ffff03ffff02ff3effff04ff02ffff04ff82013fffff04ff2fffff04ff5fff808080808080ffff01ff04ffff04ff10ffff04ffff0bffff02ff3affff04ff02ffff04ff0bffff04ffff02ff3affff04ff02ffff04ff17ffff04ff8202ffffff04ff82017fffff04ffff02ff16ffff04ff02ffff04ff81bfff80808080ff80808080808080ff8080808080ffff012480ff808080ffff02ff05ff8205ff8080ffff01ff088080ff0180ffff04ffff01ffffff3f02ff04ff0101ffff02ffff02ffff03ff05ffff01ff02ff2affff04ff02ffff04ff0dffff04ffff0bff12ffff0bff2cff1480ffff0bff12ffff0bff12ffff0bff2cff3c80ff0980ffff0bff12ff0bffff0bff2cff8080808080ff8080808080ffff010b80ff0180ff0bff12ffff0bff2cff1880ffff0bff12ffff0bff12ffff0bff2cff3c80ff0580ffff0bff12ffff02ff2affff04ff02ffff04ff07ffff04ffff0bff2cff2c80ff8080808080ffff0bff2cff8080808080ffff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff16ffff04ff02ffff04ff09ff80808080ffff02ff16ffff04ff02ffff04ff0dff8080808080ffff01ff0bff2cff058080ff0180ffff02ffff03ff1bffff01ff02ff2effff04ff02ffff04ffff02ffff03ffff18ffff0101ff1380ffff01ff0bffff0100ff2bff0580ffff01ff0bffff0100ff05ff2b8080ff0180ffff04ffff04ffff17ff13ffff0181ff80ff3b80ff8080808080ffff010580ff0180ff02ffff03ff17ffff01ff02ffff03ffff09ff05ffff02ff2effff04ff02ffff04ff13ffff04ff27ff808080808080ffff01ff02ff3effff04ff02ffff04ff05ffff04ff1bffff04ff37ff808080808080ffff01ff088080ff0180ffff01ff010180ff0180ff018080

View File

@ -42,10 +42,10 @@ async def test_graftroot(setup_sim: Tuple[SpendSim, SimClient]) -> None:
try:
# Create the coin we're testing
all_row_hashes: List[bytes32] = [bytes32([x] * 32) for x in range(0, 100)]
conditions = Program.to([[51, ACS_PH, 0]]) # An coin to create to make sure this hits the blockchain
p2_conditions = Program.to((1, [[51, ACS_PH, 0]])) # An coin to create to make sure this hits the blockchain
desired_indexes = (13, 17)
desired_row_hashes: List[bytes32] = [h for i, h in enumerate(all_row_hashes) if i in desired_indexes]
graftroot_puzzle: Program = GRAFTROOT_MOD.curry(conditions, ACS_PH, ACS_PH, desired_row_hashes)
graftroot_puzzle: Program = GRAFTROOT_MOD.curry(p2_conditions, ACS_PH, ACS_PH, desired_row_hashes)
await sim.farm_block(graftroot_puzzle.get_tree_hash())
graftroot_coin: Coin = (await sim_client.get_coin_records_by_puzzle_hash(graftroot_puzzle.get_tree_hash()))[
0
@ -80,7 +80,7 @@ async def test_graftroot(setup_sim: Tuple[SpendSim, SimClient]) -> None:
graftroot_spend = CoinSpend(
graftroot_coin,
graftroot_puzzle,
Program.to([[proofs[filtered_hashes[i]] for i in desired_indexes], (root, None), NIL_PH, NIL_PH]),
Program.to([[proofs[filtered_hashes[i]] for i in desired_indexes], (root, None), NIL_PH, NIL_PH, []]),
)
final_bundle = SpendBundle([fake_spend, graftroot_spend], G2Element())