Fix tests.
This commit is contained in:
parent
3e23c22853
commit
a57db60697
|
@ -1,4 +1,4 @@
|
|||
from typing import List, Optional, Dict
|
||||
from typing import List, Optional, Dict, Tuple
|
||||
|
||||
from blspy import PrivateKey, AugSchemeMPL, G1Element, G2Element
|
||||
|
||||
|
@ -129,7 +129,7 @@ class WalletTool:
|
|||
condition_dic: Dict[ConditionOpcode, List[ConditionVarPair]],
|
||||
fee: int = 0,
|
||||
secretkey=None,
|
||||
) -> List[Tuple[Program, CoinSolution]]:
|
||||
) -> List[CoinSolution]:
|
||||
spends = []
|
||||
spend_value = coin.amount
|
||||
puzzle_hash = coin.puzzle_hash
|
||||
|
|
|
@ -69,7 +69,9 @@ def puzzle_for_pk(public_key: PublicKeyProgram) -> Program:
|
|||
return MOD.curry(public_key)
|
||||
|
||||
|
||||
def solution_with_delegated_puzzle(delegated_puzzle: Program, solution: Program) -> Program:
|
||||
def solution_with_delegated_puzzle(
|
||||
delegated_puzzle: Program, solution: Program
|
||||
) -> Program:
|
||||
return Program.to([[], delegated_puzzle, solution])
|
||||
|
||||
|
||||
|
|
|
@ -13,7 +13,10 @@ from src.util.condition_tools import (
|
|||
)
|
||||
from src.util.ints import uint64, uint32
|
||||
from src.wallet.abstract_wallet import AbstractWallet
|
||||
from src.wallet.puzzles.p2_delegated_puzzle import puzzle_for_pk, solution_for_conditions
|
||||
from src.wallet.puzzles.p2_delegated_puzzle import (
|
||||
puzzle_for_pk,
|
||||
solution_for_conditions,
|
||||
)
|
||||
from src.wallet.puzzles.puzzle_utils import (
|
||||
make_assert_my_coin_id_condition,
|
||||
make_assert_time_exceeds_condition,
|
||||
|
@ -273,9 +276,7 @@ class Wallet(AbstractWallet):
|
|||
def secret_key_for_public_key(self, public_key: G1Element) -> Optional[PrivateKey]:
|
||||
return self._pk2sk.get(bytes(public_key))
|
||||
|
||||
async def sign_transaction(
|
||||
self, coin_solutions: List[CoinSolution]
|
||||
) -> SpendBundle:
|
||||
async def sign_transaction(self, coin_solutions: List[CoinSolution]) -> SpendBundle:
|
||||
signatures = []
|
||||
|
||||
for coin_solution in coin_solutions:
|
||||
|
@ -288,7 +289,9 @@ class Wallet(AbstractWallet):
|
|||
coin_solution.solution
|
||||
)
|
||||
if err or conditions_dict is None:
|
||||
error_msg = f"Sign transaction failed, con:{conditions_dict}, error: {err}"
|
||||
error_msg = (
|
||||
f"Sign transaction failed, con:{conditions_dict}, error: {err}"
|
||||
)
|
||||
self.log.error(error_msg)
|
||||
raise ValueError(error_msg)
|
||||
|
||||
|
@ -298,8 +301,9 @@ class Wallet(AbstractWallet):
|
|||
):
|
||||
secret_key = self.secret_key_for_public_key(_)
|
||||
if secret_key is None:
|
||||
self.log.error(f"no secret key for {_}")
|
||||
return None
|
||||
e_msg = f"no secret key for {_}"
|
||||
self.log.error(e_msg)
|
||||
raise ValueError(e_msg)
|
||||
signature = AugSchemeMPL.sign(secret_key, msg)
|
||||
signatures.append(signature)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import asyncio
|
||||
from time import time
|
||||
from typing import List, Tuple
|
||||
from typing import List
|
||||
|
||||
import pytest
|
||||
|
||||
|
@ -9,7 +9,6 @@ from src.protocols import full_node_protocol
|
|||
from src.types.coin_solution import CoinSolution
|
||||
from src.types.condition_var_pair import ConditionVarPair
|
||||
from src.types.condition_opcodes import ConditionOpcode
|
||||
from src.types.program import Program
|
||||
from src.types.spend_bundle import SpendBundle
|
||||
from src.util.condition_tools import (
|
||||
conditions_for_solution,
|
||||
|
@ -868,25 +867,23 @@ class TestMempool:
|
|||
):
|
||||
pass
|
||||
|
||||
unsigned: List[
|
||||
Tuple[Program, CoinSolution]
|
||||
] = wallet_a.generate_unsigned_transaction(
|
||||
unsigned: List[CoinSolution] = wallet_a.generate_unsigned_transaction(
|
||||
1000, receiver_puzzlehash, block.get_coinbase(), {}, 0
|
||||
)
|
||||
assert len(unsigned) == 1
|
||||
coin_solution = unsigned[0]
|
||||
|
||||
puzzle, solution = unsigned[0]
|
||||
code_ = [puzzle, solution.solution]
|
||||
sexp = Program.to(code_)
|
||||
|
||||
err, con, cost = conditions_for_solution(sexp)
|
||||
err, con, cost = conditions_for_solution(coin_solution.solution)
|
||||
assert con is not None
|
||||
|
||||
puzzle, solution = list(coin_solution.solution.as_iter())
|
||||
conditions_dict = conditions_by_opcode(con)
|
||||
pkm_pairs = pkm_pairs_for_conditions_dict(conditions_dict, solution.coin.name())
|
||||
pkm_pairs = pkm_pairs_for_conditions_dict(
|
||||
conditions_dict, coin_solution.coin.name()
|
||||
)
|
||||
assert len(pkm_pairs) == 1
|
||||
|
||||
assert pkm_pairs[0][1] == solution.solution.first().get_tree_hash()
|
||||
assert pkm_pairs[0][1] == solution.first().get_tree_hash()
|
||||
|
||||
spend_bundle = wallet_a.sign_transaction(unsigned)
|
||||
assert spend_bundle is not None
|
||||
|
|
Loading…
Reference in New Issue