(self)
| 18 | self.skip_if_no_wallet() |
| 19 | |
| 20 | def run_test(self): |
| 21 | self.generate(self.nodes[0], COINBASE_MATURITY + 1, sync_fun=self.no_op) |
| 22 | |
| 23 | # sending a transaction without fee estimations must be possible by default on regtest |
| 24 | self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 1) |
| 25 | |
| 26 | # test sending a tx with disabled fallback fee (must fail) |
| 27 | self.restart_node(0, extra_args=["-fallbackfee=0"]) |
| 28 | assert_raises_rpc_error(-6, "Fee estimation failed", lambda: self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 1)) |
| 29 | assert_raises_rpc_error(-4, "Fee estimation failed", lambda: self.nodes[0].fundrawtransaction(self.nodes[0].createrawtransaction([], [{self.nodes[0].getnewaddress(): 1}]))) |
| 30 | assert_raises_rpc_error(-6, "Fee estimation failed", lambda: self.nodes[0].sendmany("", {self.nodes[0].getnewaddress(): 1})) |
| 31 | |
| 32 | # ELEMENTS: test claimpegin with fallback fee set to zero |
| 33 | # getpeginaddress does not work with descriptor wallets yet |
| 34 | if not self.options.descriptors: |
| 35 | extra_args = [ |
| 36 | '-fallbackfee=0', |
| 37 | '-mainchainrpchost=127.0.0.1', |
| 38 | '-mainchainrpcport=%s' % rpc_port(0), |
| 39 | '-parentgenesisblockhash=%s' % self.nodes[0].getblockhash(0), |
| 40 | '-con_parent_chain_signblockscript=51', |
| 41 | '-parentscriptprefix=75', |
| 42 | ] |
| 43 | self.restart_node(0) |
| 44 | self.restart_node(1, extra_args) |
| 45 | |
| 46 | addrs = self.nodes[1].getpeginaddress() |
| 47 | txid = self.nodes[0].sendtoaddress(addrs["mainchain_address"], 5) |
| 48 | raw = self.nodes[0].getrawtransaction(txid) |
| 49 | self.generate(self.nodes[0], 12, sync_fun=self.no_op) |
| 50 | proof = self.nodes[0].gettxoutproof([txid]) |
| 51 | assert_raises_rpc_error(-6, "Fee estimation failed", lambda: self.nodes[1].claimpegin(raw, proof)) |
| 52 | |
| 53 | # Try again with fallbackfee below the min relay fee. It should just work |
| 54 | # (will let the relay fee override the fallbackfee) |
| 55 | extra_args[0] = '-fallbackfee=0.00000001' |
| 56 | self.restart_node(1, extra_args) |
| 57 | self.nodes[1].claimpegin(raw, proof) |
| 58 | |
| 59 | if __name__ == '__main__': |
| 60 | WalletRBFTest().main() |
nothing calls this directly
no test coverage detected