Skip to content

Commit 309056f

Browse files
Aoi EmeraudaAoi Emerauda
Aoi Emerauda
authored and
Aoi Emerauda
committed
Update founder reward script generation and address conversion
- Update the code to generate founder reward script for the Koto cryptocurrency. - Update the address conversion functions to handle Koto addresses. - Refactor the code to use the bs58check library for base58 dependency.
1 parent 1aec409 commit 309056f

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

lib/pool.js

+13-7
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,9 @@ var pool = module.exports = function pool(options, authorizeFn) {
297297
percent: percent / 100
298298
};
299299
try {
300-
if (r.length === 40) {
300+
if (options.coin.name === 'koto' || options.coin.name === 'koto_testnet') {
301+
rObj.script = util.kotoAddressToScript(r);
302+
} else if (r.length === 40) {
301303
rObj.script = util.miningKeyToScript(r);
302304
} else {
303305
rObj.script = util.addressToScript(options.network, r);
@@ -468,11 +470,15 @@ var pool = module.exports = function pool(options, authorizeFn) {
468470
options.network = (options.testnet ? options.coin.testnet : options.coin.mainnet);
469471

470472
options.poolAddressScript = (function () {
471-
switch (options.coin.reward) {
472-
case 'POS':
473-
return util.pubkeyToScript(rpcResults.validateaddress.pubkey);
474-
case 'POW':
475-
return util.addressToScript(options.network, rpcResults.validateaddress.address);
473+
if (options.coin.name === 'koto' || options.coin.name === 'koto_testnet') {
474+
return util.kotoAddressToScript(rpcResults.validateaddress.address);
475+
} else {
476+
switch (options.coin.reward) {
477+
case 'POS':
478+
return util.pubkeyToScript(rpcResults.validateaddress.pubkey);
479+
case 'POW':
480+
return util.addressToScript(options.network, rpcResults.validateaddress.address);
481+
}
476482
}
477483
})();
478484

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

509515
_this.stratumServer.on('started', function () {
510516
options.initStats.stratumPorts = Object.keys(options.ports);
511-
_this.stratumServer.broadcastMiningJobs(_this.jobManager.currentJob.getJobParams(), _this.jobManager.currentJob.getOdoKey());
517+
_this.stratumServer.broadcastMiningJobs( _this.jobManager.currentJob.getJobParams(), _this.jobManager.currentJob.getOdoKey());
512518
finishedCallback();
513519

514520
}).on('broadcastTimeout', function () {

lib/util.js

+18-2
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,15 @@ exports.miningKeyToScript = function (key) {
201201

202202
exports.addressToScript = function (network, addr) {
203203
if (typeof network !== 'undefined' && network !== null) {
204-
return bitcoin.address.toOutputScript(addr, network);
204+
return bitgoUtxoLib.address.toOutputScript(addr, network);
205+
} else {
206+
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
207+
}
208+
};
209+
210+
exports.kotoAddressToScript = function (addr) {
211+
if (typeof network !== 'undefined' && network !== null) {
212+
return bitgoUtxoLib.address.toOutputScript(addr, network);
205213
} else {
206214
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
207215
}
@@ -333,7 +341,15 @@ exports.getKotoBlockSubsidy = function (nHeight) {
333341

334342
exports.getFounderRewardScript = function (network, addr) {
335343
if (typeof network !== 'undefined' && network !== null) {
336-
return bitcoin.address.toOutputScript(addr, network);
344+
return bitgoUtxoLib.address.toOutputScript(addr, network);
345+
} else {
346+
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
347+
}
348+
};
349+
350+
exports.getKotoFounderRewardScript = function (addr) {
351+
if (typeof network !== 'undefined' && network !== null) {
352+
return bitgoUtxoLib.address.toOutputScript(addr, network);
337353
} else {
338354
return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]);
339355
}

0 commit comments

Comments
 (0)