diff --git a/lib/pool.js b/lib/pool.js index 4c3cf373..de5bb691 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -297,7 +297,9 @@ var pool = module.exports = function pool(options, authorizeFn) { percent: percent / 100 }; try { - if (r.length === 40) { + if (options.coin.name === 'koto' || options.coin.name === 'koto_testnet') { + rObj.script = util.kotoAddressToScript(r); + } else if (r.length === 40) { rObj.script = util.miningKeyToScript(r); } else { rObj.script = util.addressToScript(options.network, r); @@ -468,11 +470,15 @@ var pool = module.exports = function pool(options, authorizeFn) { options.network = (options.testnet ? options.coin.testnet : options.coin.mainnet); options.poolAddressScript = (function () { - switch (options.coin.reward) { - case 'POS': - return util.pubkeyToScript(rpcResults.validateaddress.pubkey); - case 'POW': - return util.addressToScript(options.network, rpcResults.validateaddress.address); + 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); + } } })(); @@ -508,7 +514,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 () { diff --git a/lib/util.js b/lib/util.js index c72008a1..382c383f 100644 --- a/lib/util.js +++ b/lib/util.js @@ -201,7 +201,15 @@ exports.miningKeyToScript = function (key) { exports.addressToScript = function (network, addr) { if (typeof network !== 'undefined' && network !== null) { - return bitcoin.address.toOutputScript(addr, network); + return bitgoUtxoLib.address.toOutputScript(addr, network); + } else { + return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]); + } +}; + +exports.kotoAddressToScript = function (addr) { + if (typeof network !== 'undefined' && network !== null) { + return bitgoUtxoLib.address.toOutputScript(addr, network); } else { return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]); } @@ -333,7 +341,15 @@ exports.getKotoBlockSubsidy = function (nHeight) { exports.getFounderRewardScript = function (network, addr) { if (typeof network !== 'undefined' && network !== null) { - return bitcoin.address.toOutputScript(addr, network); + return bitgoUtxoLib.address.toOutputScript(addr, network); + } else { + return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]); + } +}; + +exports.getKotoFounderRewardScript = function (addr) { + if (typeof network !== 'undefined' && network !== null) { + return bitgoUtxoLib.address.toOutputScript(addr, network); } else { return Buffer.concat([Buffer.from([0x76, 0xa9, 0x14]), bitgoUtxoLib.address.fromBase58Check(addr).hash, Buffer.from([0x88, 0xac])]); }