gittoken-api-middleware
Version:
GitToken Express Middleware for GitHub Webhook Endpoints
74 lines (64 loc) • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createGitTokenContract;
var _bluebird = require('bluebird');
var _bluebird2 = _interopRequireDefault(_bluebird);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function createGitTokenContract() {
var _this = this;
return new _bluebird2.default(function (resolve, reject) {
var _gittokenContract = _this.gittokenContract,
abi = _gittokenContract.abi,
unlinked_binary = _gittokenContract.unlinked_binary;
var from = '0x' + _this.ks.getAddresses()[0];
_this.eth.getBalanceAsync(from).then(function (balance) {
if (balance.toNumber() < 18e14) {
console.log('call faucet');
return _this.faucet();
} else {
return null;
}
}).then(function () {
var _eth$contract$new;
var _config = _this.config,
contributor = _config.contributor,
name = _config.name,
username = _config.username,
organization = _config.organization,
symbol = _config.symbol,
decimals = _config.decimals;
var params = [contributor, name, username, organization, symbol, decimals];
// console.log('params', params)
return (_eth$contract$new = _this.eth.contract(abi).new).getData.apply(_eth$contract$new, params.concat([{
from: from,
data: unlinked_binary
}]));
}).then(function (data) {
return _this.signTransaction({
from: from,
data: data,
gasPrice: 1e9, // 10 Gwei
gasLimit: 6e6,
value: 0
});
}).then(function (signedTx) {
return _this.eth.sendRawTransactionAsync('0x' + signedTx);
}).then(function (txHash) {
return _this.getTransactionReceipt(txHash);
}).then(function (txReceipt) {
console.log('txReceipt', txReceipt);
_this.contractDetails = { txReceipt: txReceipt };
return _this.saveContractDetails({});
}).then(function (contractDetails) {
var contractAddress = contractDetails['txReceipt'].contractAddress;
return (0, _bluebird.join)(_this.configureAnalytics({ web3Provider: _this.web3Provider, contractAddress: contractAddress, abi: abi }), _this.configureAuction({ web3Provider: _this.web3Provider, contractAddress: contractAddress, abi: abi }));
}).then(function (configured) {
resolve(_this.contractDetails);
}).catch(function (error) {
// console.log('createGitTokenContract::error', error)
reject(error);
});
});
}