UNPKG

gittoken-api-middleware

Version:

GitToken Express Middleware for GitHub Webhook Endpoints

72 lines (64 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = generateReward; var _bluebird = require("bluebird"); var _bluebird2 = _interopRequireDefault(_bluebird); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function generateReward(_ref) { var _this = this; var rewardType = _ref.rewardType, deliveryID = _ref.deliveryID, contributorUsername = _ref.contributorUsername, rewardBonus = _ref.rewardBonus, reservedType = _ref.reservedType; return new _bluebird2.default(function (resolve, reject) { var decimals = _this.config.decimals; var from = "0x" + _this.ks.getAddresses()[0]; var contributorAddress = void 0; _this.getSavedContract({ dirPath: _this.dirPath, contractFile: _this.contractFile }).then(function (contractDetails) { // console.log('generateReward::contractDetails', contractDetails) return _this.gittokenContract.rewardContributor.getData(contributorUsername, rewardType, reservedType, rewardBonus, deliveryID); }).then(function (data) { // console.log('generateReward::data', data) return _this.signTransaction({ to: _this.gittokenContract.address, from: from, value: 0, gasPrice: 1e9, gasLimit: 5e5, data: data }); }).then(function (signedTx) { // console.log('generateReward::signedTx', signedTx) return _this.eth.sendRawTransactionAsync("0x" + signedTx); }).then(function (txHash) { return _this.getTransactionReceipt(txHash); }).then(function (txReceipt) { // console.log('generateReward::txReceipt', txReceipt) return _this.gittokenContract.getContributorAddress.call(contributorUsername); }).then(function (_contributorAddress) { // console.log('generateReward::_contributorAddress', _contributorAddress) contributorAddress = _contributorAddress; if (!contributorAddress || contributorAddress == "0x") { return _this.gittokenContract.getUnclaimedRewards.call(contributorUsername); } else { return _this.gittokenContract.balanceOf.call(contributorAddress); } }).then(function (contributorBalance) { // console.log('contributorBalance', contributorBalance) resolve({ address: contributorAddress, username: contributorUsername, balance: contributorBalance.toNumber() / Math.pow(10, decimals), contract: _this.gittokenContract.address }); }).catch(function (error) { reject(error); }); }); }