finishes send transaction rpc api for rate limited wallet

This commit is contained in:
Will Bendick 2020-07-28 05:05:37 -07:00 committed by Gene Hoffman
parent 3cea0e7d86
commit 4066cb7a73
3 changed files with 16 additions and 8 deletions

View File

@ -79,8 +79,8 @@ class WalletRpcApi:
rl_user = self.service.wallet_state_manager.wallets[wallet_id]
origin: Coin = request["origin"];
success = await rl_user.set_user_info(
request["interval"],
request["limit"],
uint64(request["interval"]),
uint64(request["limit"]),
origin.parent_coin_info.hex(),
origin.puzzle_hash.hex(),
origin.amount,

View File

@ -440,6 +440,7 @@ class RLWallet(AbstractWallet):
return spends
async def rl_generate_signed_transaction(self, amount, to_puzzle_hash):
self.rl_coin_record = await self.get_rl_coin_record()
if amount > self.rl_coin_record.coin.amount:
return None
transaction = await self.rl_generate_unsigned_transaction(
@ -629,3 +630,7 @@ class RLWallet(AbstractWallet):
amount = uint64(data["amount"])
puzzle_hash = bytes32(bytes.fromhex(data["puzzle_hash"]))
return await self.rl_generate_signed_transaction(amount, puzzle_hash)
async def push_transaction(self, tx: TransactionRecord) -> None:
""" Use this API to send transactions. """
await self.wallet_state_manager.add_pending_transaction(tx)

View File

@ -50,10 +50,10 @@ class TestCCWallet:
api_admin = WalletRpcApi(wallet_node)
val = await api_admin.create_new_wallet({'wallet_type': 'rl_wallet',
'rl_type': 'admin',
'interval': 3,
'limit': 100,
'interval': 2,
'limit': 1,
'pubkey': pubkey,
'amount': 1000})
'amount': 100})
assert isinstance(val, dict)
assert val['success']
assert val['type'] == 'RATE_LIMITED'
@ -63,15 +63,18 @@ class TestCCWallet:
origin = val['origin']
val = await api_user.rl_set_user_info({'wallet_id': 2,
'interval': 3,
'limit': 100,
'interval': 2,
'limit': 1,
'origin': origin,
'admin_pubkey': admin_pubkey})
assert val['success']
for i in range(0, 2*num_blocks):
await full_node_1.farm_new_block(FarmNewBlockProtocol(32 * b"\0"))
receiving_wallet = wallet_node_2.wallet_state_manager.main_wallet
puzzle_hash = await receiving_wallet.get_new_puzzlehash()
val = await api_user.send_transaction({'wallet_id': 2,
'amount': 1,
'puzzle_hash': puzzle_hash.hex()})
assert val['success']
assert val['status'] == 'SUCCESS'