@@ -139,35 +139,26 @@ def generate_psbt(tmpl, reward_spk, *, blocktime=None):
139
139
140
140
return do_createpsbt (block , signme , spendme )
141
141
142
- def get_reward_address (args , height ):
143
- if args .address is not None :
144
- return args .address
145
-
146
- if '*' not in args .descriptor :
147
- addr = json .loads (args .bcli ("deriveaddresses" , args .descriptor ))[0 ]
148
- args .address = addr
149
- return addr
150
-
151
- remove = [k for k in args .derived_addresses .keys () if k + 20 <= height ]
152
- for k in remove :
153
- del args .derived_addresses [k ]
154
-
155
- addr = args .derived_addresses .get (height , None )
156
- if addr is None :
157
- addrs = json .loads (args .bcli ("deriveaddresses" , args .descriptor , "[%d,%d]" % (height , height + 20 )))
158
- addr = addrs [0 ]
159
- for k , a in enumerate (addrs ):
160
- args .derived_addresses [height + k ] = a
161
-
162
- return addr
163
-
164
142
def get_reward_addr_spk (args , height ):
165
143
assert args .address is not None or args .descriptor is not None
166
144
167
145
if hasattr (args , "reward_spk" ):
168
146
return args .address , args .reward_spk
169
147
170
- reward_addr = get_reward_address (args , height )
148
+ if args .address is not None :
149
+ reward_addr = args .address
150
+ elif '*' not in args .descriptor :
151
+ reward_addr = args .address = json .loads (args .bcli ("deriveaddresses" , args .descriptor ))[0 ]
152
+ else :
153
+ remove = [k for k in args .derived_addresses .keys () if k + 20 <= height ]
154
+ for k in remove :
155
+ del args .derived_addresses [k ]
156
+ if height not in args .derived_addresses :
157
+ addrs = json .loads (args .bcli ("deriveaddresses" , args .descriptor , "[%d,%d]" % (height , height + 20 )))
158
+ for k , a in enumerate (addrs ):
159
+ args .derived_addresses [height + k ] = a
160
+ reward_addr = args .derived_addresses [height ]
161
+
171
162
reward_spk = bytes .fromhex (json .loads (args .bcli ("getaddressinfo" , reward_addr ))["scriptPubKey" ])
172
163
if args .address is not None :
173
164
# will always be the same, so cache
0 commit comments