MCPcopy Create free account
hub / github.com/LUX-Core/lux / RebuildRefundTransaction

Method RebuildRefundTransaction

src/miner.cpp:185–249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183}
184
185void BlockAssembler::RebuildRefundTransaction()
186{
187 if (!pblock->IsProofOfStake()) {
188 int refundtx=0; //0 for coinbase in PoW
189
190 CMutableTransaction contrTx(originalRewardTx);
191 CAmount powReward = GetProofOfWorkReward(0, nHeight);
192 CAmount totalReward = powReward + nFees;
193 CAmount devfeePayment = 0;
194 CAmount minerReward = 0;
195 CAmount mnReward = 0;
196 CScript mnPayee;
197 CScript devfeePayee;
198 devfeePayee = Params().GetDevfeeScript(nHeight);
199
200 if (nHeight >= chainParams.FirstSplitRewardBlock() && SelectMasternodePayee(mnPayee)) {
201 if (nHeight >= chainParams.StartDevfeeBlock()) {
202 contrTx.vout.resize(3);
203 } else {
204 contrTx.vout.resize(2);
205 }
206 // set masternode payee and 20%/25% reward, or mint
207 if (nHeight == chainParams.PreminePayment()) {
208 mnReward = powReward * 25000;
209 } else if (nHeight >= chainParams.StartDevfeeBlock() && nHeight < 6000000) {
210 mnReward = powReward * 0.25;
211 } else {
212 mnReward = powReward * 0.2;
213 }
214
215 contrTx.vout[1].scriptPubKey = mnPayee;
216 contrTx.vout[1].nValue = mnReward;
217
218 //set the devfee payment
219 if (nHeight >= chainParams.StartDevfeeBlock()) {
220 devfeePayment = powReward * 0.125;
221
222 contrTx.vout[2].scriptPubKey = devfeePayee;
223 contrTx.vout[2].nValue = devfeePayment;
224
225 } else {
226 devfeePayment = 0;
227 }
228
229 if (nHeight == chainParams.PreminePayment()) {
230 minerReward = powReward * 0.8;
231 } else {
232 minerReward = totalReward - mnReward - devfeePayment;
233 }
234 } else {
235 minerReward = totalReward;
236 }
237 minerReward -= bceResult.refundSender;
238 contrTx.vout[0].nValue = minerReward;
239
240 signed int i = contrTx.vout.size();
241 contrTx.vout.resize(contrTx.vout.size()+bceResult.refundOutputs.size());
242 for(CTxOut& vout : bceResult.refundOutputs){

Callers

nothing calls this directly

Calls 11

GetProofOfWorkRewardFunction · 0.85
SelectMasternodePayeeFunction · 0.85
GetDevfeeScriptMethod · 0.80
FirstSplitRewardBlockMethod · 0.80
StartDevfeeBlockMethod · 0.80
PreminePaymentMethod · 0.80
ParamsClass · 0.70
CTransactionClass · 0.70
IsProofOfStakeMethod · 0.45
resizeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected