Simplify CSE input format.

It was `((parent amount) (puzzle solution))`.
It is now `(parent puzzle amount solution . *spend_level_extras)`
This commit is contained in:
Richard Kiss
2021-04-18 22:57:00 -07:00
parent 17ff9166da
commit b3880d7ea7
14 changed files with 27 additions and 17 deletions
+4 -2
View File
@@ -17,8 +17,10 @@ def spend_bundle_to_coin_solution_entry_list(bundle: SpendBundle) -> List[Any]:
r = []
for coin_solution in bundle.coin_solutions:
entry = [
[coin_solution.coin.parent_coin_info, coin_solution.coin.amount],
[coin_solution.puzzle_reveal, coin_solution.solution],
coin_solution.coin.parent_coin_info,
coin_solution.puzzle_reveal,
coin_solution.coin.amount,
coin_solution.solution,
]
r.append(entry)
return r
@@ -1,6 +1,8 @@
(mod (deserialize decompress_puzzle puzzle_prefix suffix cse)
; decompress a single compressed standard transaction
(c (f cse) (c (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) suffix)) (r (f (r cse)))) ()))
(c (f cse) (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) suffix)) (c (f (r (f cse))) (r (f (r cse))))))
;; original: (c (f cse) (c (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) suffix)) (r (f (r cse)))) ()))
)
@@ -1 +1 @@
ff04ff4fffff04ffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff82012fffff04ff17ff808080808080ff8201af80ff808080
ff04ff4fffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff82012fffff04ff17ff808080808080ffff04ff82014fff8201af808080
@@ -1 +1 @@
5f5bd2fe143857ca65933b467bab298d6d11e525d4e51c27c96dc1cbf37796cf
9d98ed08770d31be4bd1bde4705dab388db5e7e9c349f5a76fc3c347aa3a0b79
@@ -1,6 +1,8 @@
(mod (deserialize decompress_puzzle puzzle_prefix cse)
; decompress a single compressed standard transaction
(c (f cse) (c (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) (q . 0xff018080))) (r (f (r cse)))) ()))
(c (f (f cse)) (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) (q . 0xff018080))) (c (f (r (f cse))) (r (f (r cse))))))
;; original: (c (f cse) (c (c (a decompress_puzzle (list deserialize puzzle_prefix (f (f (r cse))) (q . 0xff018080))) (r (f (r cse)))) ()))
)
@@ -1 +1 @@
ff04ff27ffff04ffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff8197ffff01ff84ff0180808080808080ff81d780ff808080
ff04ff47ffff04ffff02ff05ffff04ff02ffff04ff0bffff04ff8197ffff01ff84ff0180808080808080ffff04ff81a7ff81d7808080
@@ -1 +1 @@
69792020ee4bc07f9654aa784c0d14796e812d368d098a98a095ff9788e9f629
92aa4bc8060a8836355a1884075141b4791ce1b67ae6092bb166b2845954bc89
@@ -6,10 +6,14 @@
(sha256 2 (sha256tree1 (f TREE)) (sha256tree1 (r TREE)))
(sha256 1 TREE)))
(defun check_coin_solution ((parent puzzle amount solution) coinname)
(= (sha256 parent (sha256tree1 puzzle) amount) coinname)
)
(defun check_for_coinname (coin_solutions coinname)
(if coin_solutions
(if (= (sha256 (f (f (f coin_solutions))) (sha256tree1 (f (f (r (f coin_solutions))))) (f (r (f (f coin_solutions))))) coinname)
(list (f (f (r (f coin_solutions)))) (f (r (f (r (f coin_solutions))))))
(if (check_coin_solution (f coin_solutions) coinname)
(list (f (r (f coin_solutions))) (f (r (r (r (f coin_solutions))))))
(check_for_coinname (r coin_solutions) coinname)
)
(x)
@@ -1 +1 @@
ff02ffff01ff02ff04ffff04ff02ffff04ffff02ff05ff0b80ffff04ff17ff8080808080ffff04ffff01ffff02ffff03ff05ffff01ff02ffff03ffff09ffff0bff21ffff02ff06ffff04ff02ffff04ff49ff80808080ff5180ff0b80ffff01ff04ff49ffff04ff81a9ff808080ffff01ff02ff04ffff04ff02ffff04ff0dffff04ff0bff808080808080ff0180ffff01ff088080ff0180ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080
ff02ffff01ff02ff0affff04ff02ffff04ffff02ff05ff0b80ffff04ff17ff8080808080ffff04ffff01ffff09ffff0bff09ffff02ff0effff04ff02ffff04ff15ff80808080ff2d80ff0b80ffff02ffff03ff05ffff01ff02ffff03ffff02ff04ffff04ff02ffff04ff09ffff04ff0bff8080808080ffff01ff04ff29ffff04ff81b9ff808080ffff01ff02ff0affff04ff02ffff04ff0dffff04ff0bff808080808080ff0180ffff01ff088080ff0180ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff0effff04ff02ffff04ff09ff80808080ffff02ff0effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080
@@ -1 +1 @@
0672b5bfcd874cffecabe97d1f07fa73eb0c5ca2f0b8f832209fd4c48b54086b
8ea7edc47445c786702254ee6fb5ab2ee2f236a6020b339957f08c27f0967eab
@@ -18,7 +18,7 @@
)
)
(defun process_coin_solution (((parent amount) (puzzle solution)))
(defun process_coin_solution ((parent puzzle amount solution . *spend_level_extras*))
(list (list parent (sha256tree puzzle) amount) (a puzzle solution))
)
@@ -1 +1 @@
ff02ffff01ff02ff0affff04ff02ffff04ffff02ff05ffff04ff08ffff04ff13ff80808080ff80808080ffff04ffff01ffffff02ffff01ff05ffff02ff3effff04ff02ffff04ff05ff8080808080ffff04ffff01ffffff81ff7fff81df81bfffffff02ffff03ffff09ff0bffff01818080ffff01ff04ff80ffff04ff05ff808080ffff01ff02ffff03ffff0aff0bff1880ffff01ff02ff1affff04ff02ffff04ffff02ffff03ffff0aff0bff1c80ffff01ff02ffff03ffff0aff0bff1480ffff01ff0880ffff01ff04ffff0effff18ffff011fff0b80ffff0cff05ff80ffff01018080ffff04ffff0cff05ffff010180ff80808080ff0180ffff01ff04ffff18ffff013fff0b80ffff04ff05ff80808080ff0180ff80808080ffff01ff04ff0bffff04ff05ff80808080ff018080ff0180ff04ffff0cff15ff80ff0980ffff04ffff0cff15ff0980ff808080ffff04ffff04ff05ff1380ffff04ff2bff808080ffff02ff16ffff04ff02ffff04ff09ffff04ffff02ff3effff04ff02ffff04ff15ff80808080ff8080808080ff02ffff03ffff09ffff0cff05ff80ffff010180ff1080ffff01ff02ff2effff04ff02ffff04ffff02ff3effff04ff02ffff04ffff0cff05ffff010180ff80808080ff80808080ffff01ff02ff12ffff04ff02ffff04ffff0cff05ffff010180ffff04ffff0cff05ff80ffff010180ff808080808080ff0180ff018080ff04ffff04ff11ffff04ffff02ff0effff04ff02ffff04ff25ff80808080ffff04ff29ff80808080ffff04ffff02ff25ff5580ff808080ffff02ffff03ff05ffff01ff04ffff02ff0cffff04ff02ffff04ff09ff80808080ffff02ff0affff04ff02ffff04ff0dff8080808080ff8080ff0180ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff0effff04ff02ffff04ff09ff80808080ffff02ff0effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080
ff02ffff01ff02ff0affff04ff02ffff04ffff02ff05ffff04ff08ffff04ff13ff80808080ff80808080ffff04ffff01ffffff02ffff01ff05ffff02ff3effff04ff02ffff04ff05ff8080808080ffff04ffff01ffffff81ff7fff81df81bfffffff02ffff03ffff09ff0bffff01818080ffff01ff04ff80ffff04ff05ff808080ffff01ff02ffff03ffff0aff0bff1880ffff01ff02ff1affff04ff02ffff04ffff02ffff03ffff0aff0bff1c80ffff01ff02ffff03ffff0aff0bff1480ffff01ff0880ffff01ff04ffff0effff18ffff011fff0b80ffff0cff05ff80ffff01018080ffff04ffff0cff05ffff010180ff80808080ff0180ffff01ff04ffff18ffff013fff0b80ffff04ff05ff80808080ff0180ff80808080ffff01ff04ff0bffff04ff05ff80808080ff018080ff0180ff04ffff0cff15ff80ff0980ffff04ffff0cff15ff0980ff808080ffff04ffff04ff05ff1380ffff04ff2bff808080ffff02ff16ffff04ff02ffff04ff09ffff04ffff02ff3effff04ff02ffff04ff15ff80808080ff8080808080ff02ffff03ffff09ffff0cff05ff80ffff010180ff1080ffff01ff02ff2effff04ff02ffff04ffff02ff3effff04ff02ffff04ffff0cff05ffff010180ff80808080ff80808080ffff01ff02ff12ffff04ff02ffff04ffff0cff05ffff010180ffff04ffff0cff05ff80ffff010180ff808080808080ff0180ff018080ff04ffff04ff09ffff04ffff02ff0effff04ff02ffff04ff15ff80808080ffff04ff2dff80808080ffff04ffff02ff15ff5d80ff808080ffff02ffff03ff05ffff01ff04ffff02ff0cffff04ff02ffff04ff09ff80808080ffff02ff0affff04ff02ffff04ff0dff8080808080ff8080ff0180ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff0effff04ff02ffff04ff09ff80808080ffff02ff0effff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080
@@ -1 +1 @@
352859e971feb2bbea735c6fa05f06d6c30c495fa789bf4ec7310fd4c11a95d4
cd6cb71a93dd12c6966fd28a3a601c0872bf02b4d93dcdc5ab0ff7151b39c862
+2 -2
View File
@@ -125,8 +125,8 @@ class TestCostCalculation:
disassembly = binutils.disassemble(puzzle)
program = SerializedProgram.from_bytes(
binutils.assemble(
f"(q . (((0x3d2331635a58c0d49912bc1427d7db51afe3f20a7b4bcaffa17ee250dcbcbfaa 300)"
f" ({disassembly} (() (q . ((65 '00000000000000000000000000000000' 0x0cbba106e000))) ())))))"
f"(q . ((0x3d2331635a58c0d49912bc1427d7db51afe3f20a7b4bcaffa17ee250dcbcbfaa {disassembly} 300"
f" (() (q . ((65 '00000000000000000000000000000000' 0x0cbba106e000))) ()))))"
).as_bin()
)
generator = BlockGenerator(program, [])