2018-07-17 15:48:09 -04:00
#!/usr/bin/env python3
2022-12-24 20:49:50 -03:00
# Copyright (c) 2018-2022 The Bitcoin Core developers
2018-07-17 15:48:09 -04:00
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
""" Test the estimatefee RPCs.
Test the following RPCs :
- estimatesmartfee
- estimaterawfee
"""
from test_framework . test_framework import BitcoinTestFramework
from test_framework . util import assert_raises_rpc_error
class EstimateFeeTest ( BitcoinTestFramework ) :
def set_test_params ( self ) :
self . num_nodes = 1
def run_test ( self ) :
# missing required params
assert_raises_rpc_error ( - 1 , " estimatesmartfee " , self . nodes [ 0 ] . estimatesmartfee )
assert_raises_rpc_error ( - 1 , " estimaterawfee " , self . nodes [ 0 ] . estimaterawfee )
# wrong type for conf_target
2022-09-12 10:04:15 -03:00
assert_raises_rpc_error ( - 3 , " JSON value of type string is not of expected type number " , self . nodes [ 0 ] . estimatesmartfee , ' foo ' )
assert_raises_rpc_error ( - 3 , " JSON value of type string is not of expected type number " , self . nodes [ 0 ] . estimaterawfee , ' foo ' )
2018-07-17 15:48:09 -04:00
# wrong type for estimatesmartfee(estimate_mode)
2022-09-12 10:04:15 -03:00
assert_raises_rpc_error ( - 3 , " JSON value of type number is not of expected type string " , self . nodes [ 0 ] . estimatesmartfee , 1 , 1 )
2020-11-10 08:29:01 -03:00
assert_raises_rpc_error ( - 8 , ' Invalid estimate_mode parameter, must be one of: " unset " , " economical " , " conservative " ' , self . nodes [ 0 ] . estimatesmartfee , 1 , ' foo ' )
2018-07-17 15:48:09 -04:00
# wrong type for estimaterawfee(threshold)
2022-09-12 10:04:15 -03:00
assert_raises_rpc_error ( - 3 , " JSON value of type string is not of expected type number " , self . nodes [ 0 ] . estimaterawfee , 1 , ' foo ' )
2018-07-17 15:48:09 -04:00
# extra params
assert_raises_rpc_error ( - 1 , " estimatesmartfee " , self . nodes [ 0 ] . estimatesmartfee , 1 , ' ECONOMICAL ' , 1 )
assert_raises_rpc_error ( - 1 , " estimaterawfee " , self . nodes [ 0 ] . estimaterawfee , 1 , 1 , 1 )
2023-06-22 09:27:38 -04:00
# max value of 1008 per src/policy/fees.h
assert_raises_rpc_error ( - 8 , " Invalid conf_target, must be between 1 and 1008 " , self . nodes [ 0 ] . estimaterawfee , 1009 )
2018-07-17 15:48:09 -04:00
# valid calls
self . nodes [ 0 ] . estimatesmartfee ( 1 )
# self.nodes[0].estimatesmartfee(1, None)
self . nodes [ 0 ] . estimatesmartfee ( 1 , ' ECONOMICAL ' )
2020-12-04 05:58:59 -03:00
self . nodes [ 0 ] . estimatesmartfee ( 1 , ' unset ' )
self . nodes [ 0 ] . estimatesmartfee ( 1 , ' conservative ' )
2018-07-17 15:48:09 -04:00
self . nodes [ 0 ] . estimaterawfee ( 1 )
self . nodes [ 0 ] . estimaterawfee ( 1 , None )
self . nodes [ 0 ] . estimaterawfee ( 1 , 1 )
if __name__ == ' __main__ ' :
2024-07-16 17:05:14 -04:00
EstimateFeeTest ( __file__ ) . main ( )