@@ -135,10 +135,37 @@ def test_import_rescan(self):
135
135
136
136
assert_approx (alice_wo .getbalance (), 10 , 0.0001 )
137
137
138
+ def test_rbf (self ):
139
+ self .log .info ("Check Silent Payments RBF" )
140
+
141
+ self .nodes [0 ].createwallet (wallet_name = "craig" , silent_payment = True )
142
+ wallet = self .nodes [0 ].get_wallet_rpc ("craig" )
143
+ address = wallet .getnewaddress (address_type = "silent-payment" )
144
+
145
+ txid = self .def_wallet .sendtoaddress (address , 49.99 , replaceable = True )
146
+ assert_equal (self .nodes [0 ].getrawmempool (), [txid ])
147
+ raw_tx = self .nodes [0 ].getrawtransaction (txid )
148
+ tx = self .nodes [0 ].decoderawtransaction (raw_tx )
149
+ assert_equal (len (tx ["vin" ]), 1 )
150
+
151
+ psbt = self .def_wallet .psbtbumpfee (txid , fee_rate = 10000 )["psbt" ]
152
+ decoded = self .nodes [0 ].decodepsbt (psbt )
153
+ assert_equal (len (decoded ["tx" ]["vin" ]), 2 )
154
+
155
+ res = self .def_wallet .walletprocesspsbt (psbt )
156
+ assert_equal (res ["complete" ], True )
157
+ txid = self .def_wallet .sendrawtransaction (res ["hex" ])
158
+ assert_equal (self .nodes [0 ].getrawmempool (), [txid ])
159
+
160
+ assert_equal (wallet .getbalance (), 0 )
161
+ self .generate (self .nodes [0 ], 1 )
162
+ assert_approx (wallet .getbalance (), 49.99 , 0.0001 )
163
+
138
164
def run_test (self ):
139
165
self .def_wallet = self .nodes [0 ].get_wallet_rpc (self .default_wallet_name )
140
- self .generate (self .nodes [0 ], 101 )
166
+ self .generate (self .nodes [0 ], 102 )
141
167
168
+ self .test_rbf ()
142
169
self .test_createwallet ()
143
170
self .test_encrypt_and_decrypt ()
144
171
self .test_encrypting_unencrypted ()
0 commit comments