Skip to content

Commit

Permalink
Update founder reward script generation
Browse files Browse the repository at this point in the history
  • Loading branch information
Aoi Emerauda authored and Aoi Emerauda committed Nov 5, 2024
1 parent a8fe80c commit 1aec409
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 41 deletions.
2 changes: 1 addition & 1 deletion lib/jobManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ var JobManager = module.exports = function JobManager(options) {
founders.push({
percent: 0,
value: rpcData.coinbasetxn.foundersreward,
script: util.getKotoFounderRewardScript(founder.address)
script: util.getFounderRewardScript(founder.address)
});
} catch (e) {
emitErrorLog('Error generating transaction output script for ' + founder.address + ' in rewardRecipients');
Expand Down
20 changes: 7 additions & 13 deletions lib/pool.js
Original file line number Diff line number Diff line change
Expand Up @@ -297,9 +297,7 @@ var pool = module.exports = function pool(options, authorizeFn) {
percent: percent / 100
};
try {
if (options.coin.name === 'koto' || options.coin.name === 'koto_testnet') {
rObj.script = util.kotoAddressToScript(r);
} else if (r.length === 40) {
if (r.length === 40) {
rObj.script = util.miningKeyToScript(r);
} else {
rObj.script = util.addressToScript(options.network, r);
Expand Down Expand Up @@ -470,15 +468,11 @@ var pool = module.exports = function pool(options, authorizeFn) {
options.network = (options.testnet ? options.coin.testnet : options.coin.mainnet);

options.poolAddressScript = (function () {
if (options.coin.name === 'koto' || options.coin.name === 'koto_testnet') {
return util.kotoAddressToScript(rpcResults.validateaddress.address);
} else {
switch (options.coin.reward) {
case 'POS':
return util.pubkeyToScript(rpcResults.validateaddress.pubkey);
case 'POW':
return util.addressToScript(options.network, rpcResults.validateaddress.address);
}
switch (options.coin.reward) {
case 'POS':
return util.pubkeyToScript(rpcResults.validateaddress.pubkey);
case 'POW':
return util.addressToScript(options.network, rpcResults.validateaddress.address);
}
})();

Expand Down Expand Up @@ -514,7 +508,7 @@ var pool = module.exports = function pool(options, authorizeFn) {

_this.stratumServer.on('started', function () {
options.initStats.stratumPorts = Object.keys(options.ports);
_this.stratumServer.broadcastMiningJobs( _this.jobManager.currentJob.getJobParams(), _this.jobManager.currentJob.getOdoKey());
_this.stratumServer.broadcastMiningJobs(_this.jobManager.currentJob.getJobParams(), _this.jobManager.currentJob.getOdoKey());
finishedCallback();

}).on('broadcastTimeout', function () {
Expand Down
30 changes: 6 additions & 24 deletions lib/util.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
var crypto = require('crypto');
var base58 = require('bs58check');
var bitcoin = require('bitcoinjs-lib');
var zcash = require('@exodus/bitcoinjs-lib-zcash');
var bitgoUtxoLib = require('@bitgo/utxo-lib');

exports.addressFromEx = function (exAddress, ripdm160Key) {
try {
var versionByte = exports.getVersionByte(exAddress);
var addrBase = Buffer.concat([versionByte, Buffer.from(ripdm160Key, 'hex')]);
var checksum = exports.sha256d(addrBase).slice(0, 4);
var address = Buffer.concat([addrBase, checksum]);
return base58.encode(address);
return bitgoUtxoLib.address.fromBase58Check(address);
} catch (e) {
return null;
}
};

exports.getVersionByte = function (addr) {
var versionByte = base58.decode(addr).slice(0, 1);
var versionByte = bitgoUtxoLib.address.toBase58Check(addr).slice(0, 1);
return versionByte;
};

Expand Down Expand Up @@ -205,21 +203,13 @@ exports.addressToScript = function (network, addr) {
if (typeof network !== 'undefined' && network !== null) {
return bitcoin.address.toOutputScript(addr, network);
} else {
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitcoin.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
}
};

exports.kotoAddressToScript = function (addr) {
if (typeof network !== 'undefined' && network !== null) {
return zcash.address.toOutputScript(addr, network);
} else {
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), zcash.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
}
};

exports.getReadableHashRateString = function (hashrate) {
var i = -1;
var byteUnits = [' KHash', ' MHash', ' GHash', ' THash', ' PHash', ' EHash', ' ZHash', ' YHash'];
var byteUnits = [' KH', ' MH', ' GH', ' TH', ' PH', ' EH', ' ZH', ' YH'];
do {
hashrate = hashrate / 1024;
i++;
Expand Down Expand Up @@ -345,14 +335,6 @@ exports.getFounderRewardScript = function (network, addr) {
if (typeof network !== 'undefined' && network !== null) {
return bitcoin.address.toOutputScript(addr, network);
} else {
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitcoin.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
}
};

exports.getKotoFounderRewardScript = function (addr) {
if (typeof network !== 'undefined' && network !== null) {
return zcash.address.toOutputScript(addr, network);
} else {
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), zcash.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
}
};
4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,8 @@
"url": "https://github.com/ROZ-MOFUMOFU-ME/node-stratum-pool.git"
},
"dependencies": {
"@exodus/bitcoinjs-lib-zcash": "^0.0.13",
"async": "^3.2.6",
"bitcoinjs-lib": "^7.0.0-rc.0",
"bs58check": "^3.0.1",
"@bitgo/utxo-lib": "^11.0.1",
"multi-hashing": "git+https://github.com/ROZ-MOFUMOFU-ME/node-multi-hashing.git"
},
"engines": {
Expand Down

0 comments on commit 1aec409

Please sign in to comment.