MCPcopy Create free account
hub / github.com/ElementsProject/elements / run_test

Method run_test

test/functional/wallet_fallbackfee.py:20–57  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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
59if __name__ == '__main__':
60 WalletRBFTest().main()

Callers

nothing calls this directly

Calls 4

assert_raises_rpc_errorFunction · 0.90
rpc_portFunction · 0.90
generateMethod · 0.45
restart_nodeMethod · 0.45

Tested by

no test coverage detected