hacking on integrating real proposal creation

This commit is contained in:
bumi 2017-05-05 20:28:05 +02:00
parent f0d58084b6
commit 4b86a351ff
3 changed files with 48 additions and 5 deletions

View File

@ -10,6 +10,5 @@
"hubot-seen",
"hubot-rss-reader",
"hubot-incoming-webhook",
"hubot-yubikey-invalidation",
"hubot-kredits"
"hubot-yubikey-invalidation"
]

View File

@ -29,7 +29,14 @@
"hubot-shipit": "^0.2.0",
"hubot-tell": "^1.2.3",
"hubot-yubikey-invalidation": "0.0.3",
"request": "2.30.0"
"request": "2.30.0",
"node-fetch": "^1.6.3",
"request": "2.30.0",
"ethereumjs-wallet": "mvayngrib/ethereumjs-wallet",
"kredits-contracts": "67p/kredits-contracts",
"node-fetch": "^1.6.3",
"web3": "^0.18.4",
"web3-provider-engine": "^12.0.3"
},
"engines": {
"node": "6.x.x",

View File

@ -10,6 +10,39 @@
// const fs = require('fs');
const fetch = require('node-fetch');
const kreditsContracts = require('kredits-contracts');
const fs = require('fs');
const ProviderEngine = require('web3-provider-engine');
const Wallet = require('ethereumjs-wallet');
const WalletSubprovider = require('ethereumjs-wallet/provider-engine');
const Web3Subprovider = require('web3-provider-engine/subproviders/web3.js');
const Web3 = require('web3');
let engine = new ProviderEngine();
let walletPath = process.env.KREDITS_WALLET_PATH || './wallet.json';
let walletJson = fs.readFileSync(walletPath);
let wallet = Wallet.fromV3(JSON.parse(walletJson), process.env.KREDITS_WALLET_PASSWORD);
let providerUrl = process.env.KREDITS_PROVIDER_URL || 'http://localhost:8545';
let hubotWalletAddress = '0x' + wallet.getAddress().toString('hex');
engine.addProvider(new WalletSubprovider(wallet, {}));
engine.addProvider(new Web3Subprovider(new Web3.providers.HttpProvider(providerUrl)));
engine.start();
let web3 = new Web3(engine);
web3.eth.defaultAccount = hubotWalletAddress;
let contracts = kreditsContracts(web3, {'Kredits': '0x722956CE1fB83dD88d3e56Cf446f9c7e34D1Fc52'});
let Kredits = contracts['Kredits'];
let Token = contracts['Token'];
console.log('[HUBOT-KREDITS] wallet address: ' + hubotWalletAddress);
web3.eth.getBalance('eee2de74de31d2e3ef24cb0f6959fd88b59267bd', function (err, balance) {
if (err) { console.log('[HUBOT-KREDITS] error checking balance'); return; }
if (!balance > 0) {
console.log('[HUBOT-KREDITS] Hubot is broke. Please sond some eth to ' + hubotWalletAddress);
}
});
(function() {
"use strict";
@ -44,8 +77,11 @@ const fetch = require('node-fetch');
// TODO write metaData to IPFS
console.log(`Creating proposal to issue ${amount}₭S to ${recipient} for ${url}...`);
// robot.messageRoom(process.env.KREDITS_ROOM, message);
resolve();
recipient = '0x74d05F57e14b16018938F60F78a4a687586A484d';
Kredits.addProposal(address, amount, url, '', function (err, response) {
robot.messageRoom(process.env.KREDITS_ROOM, `new proposal: ${amount} for ${recipient} - https://kredits.kosmos.org`);
resolve();
});
});
}
@ -125,3 +161,4 @@ const fetch = require('node-fetch');
};
}());