embark/test_dapps/test_app/app/js/index.js

176 lines
5.8 KiB
JavaScript
Raw Normal View History

2017-02-10 00:38:02 +00:00
/*globals $, SimpleStorage, document*/
2018-01-17 15:45:55 +00:00
import React, { Component } from 'react';
2018-01-17 00:17:52 +00:00
import EmbarkJS from 'Embark/EmbarkJS';
import SimpleStorage from 'Embark/contracts/SimpleStorage';
2018-01-17 00:17:52 +00:00
import Test from 'Embark/contracts/Test';
//import Assert from 'Embark/contracts/Assert';
2018-01-17 00:17:52 +00:00
import SimpleStorageTest from 'Embark/contracts/SimpleStorageTest';
window.SimpleStorageTest = SimpleStorageTest
2018-01-17 00:17:52 +00:00
import ReactDOM from 'react-dom';
2017-12-14 00:24:20 +00:00
//import $ from './_vendor/jquery.min';
import $ from 'jquery';
2018-01-17 18:16:43 +00:00
//import 'bootstrap';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap/dist/css/bootstrap-theme.css';
//import 'bootstrap/dist/css/bootstrap.min.css';
2018-03-02 22:25:56 +00:00
import 'bootstrap/dist/js/bootstrap.min.js';
2017-12-13 22:36:24 +00:00
2018-01-17 18:16:43 +00:00
//import 'react-bootstrap/dist/react-bootstrap.min.js';
import { Navbar, Jumbotron, Button } from 'react-bootstrap';
2017-12-13 22:36:24 +00:00
window.EmbarkJS = EmbarkJS;
window.SimpleStorage = SimpleStorage;
2017-12-20 16:32:11 +00:00
window.Test = Test;
//window.Assert = Assert;
2017-12-13 22:36:24 +00:00
2018-01-17 00:17:52 +00:00
window.React = React;
2017-12-13 22:36:24 +00:00
import './foo.css';
2018-01-17 18:16:43 +00:00
import App from './app.js';
2018-01-17 00:17:52 +00:00
ReactDOM.render(<App />, document.getElementById('root'));
2017-02-10 00:38:02 +00:00
var addToLog = function(id, txt) {
$(id + " .logs").append("<br>" + txt);
};
// ===========================
// Blockchain example
// ===========================
$(document).ready(function() {
2017-12-13 22:36:24 +00:00
console.log([1,2,3].map(v => v + 1));
2017-02-10 00:38:02 +00:00
$("#blockchain button.set").click(function() {
var value = parseInt($("#blockchain input.text").val(), 10);
2017-10-08 01:02:05 +00:00
SimpleStorage.methods.set(value).send({from: web3.eth.defaultAccount, gas: 5300000});
addToLog("#blockchain", "SimpleStorage.methods.set(value).send({from: web3.eth.defaultAccount, gas: 5300000})");
2017-02-10 00:38:02 +00:00
});
$("#blockchain button.get").click(function() {
SimpleStorage.methods.get().call(function(err, value) {
$("#blockchain .value").html(value);
});
addToLog("#blockchain", "SimpleStorage.methods.get(console.log)");
2017-02-10 00:38:02 +00:00
});
});
// ===========================
// Storage (IPFS) example
// ===========================
$(document).ready(function() {
// automatic set if config/storage.json has "enabled": true and "provider": "ipfs"
//EmbarkJS.Storage.setProvider('ipfs',{server: 'localhost', port: '5001'});
2017-02-10 00:38:02 +00:00
2017-10-09 12:59:02 +00:00
$("#storage .error").hide();
2017-12-13 22:36:24 +00:00
//EmbarkJS.Storage.ipfsConnection.version()
// .then(function(){
2017-10-25 10:19:24 +00:00
$("#status-storage").addClass('status-online');
$("#storage-controls").show();
2017-12-13 22:36:24 +00:00
// })
// .catch(function(err) {
// if(err){
// console.log("IPFS Connection Error => " + err.message);
// $("#storage .error").show();
// $("#status-storage").addClass('status-offline');
// $("#storage-controls").hide();
// }
// });
2017-10-09 12:59:02 +00:00
$("#storage button.setIpfsText").click(function() {
var value = $("#storage input.ipfsText").val();
EmbarkJS.Storage.saveText(value).then(function(hash) {
$("span.textHash").html(hash);
$("input.textHash").val(hash);
addToLog("#storage", "EmbarkJS.Storage.saveText('" + value + "').then(function(hash) { })");
})
.catch(function(err) {
if(err){
console.log("IPFS saveText Error => " + err.message);
}
});
});
$("#storage button.loadIpfsHash").click(function() {
var value = $("#storage input.textHash").val();
EmbarkJS.Storage.get(value).then(function(content) {
$("span.ipfsText").html(content);
addToLog("#storage", "EmbarkJS.Storage.get('" + value + "').then(function(content) { })");
})
.catch(function(err) {
if(err){
console.log("IPFS get Error => " + err.message);
}
});
});
$("#storage button.uploadFile").click(function() {
var input = $("#storage input[type=file]");
EmbarkJS.Storage.uploadFile(input).then(function(hash) {
$("span.fileIpfsHash").html(hash);
$("input.fileIpfsHash").val(hash);
addToLog("#storage", "EmbarkJS.Storage.uploadFile($('input[type=file]')).then(function(hash) { })");
})
.catch(function(err) {
if(err){
console.log("IPFS uploadFile Error => " + err.message);
}
});
});
$("#storage button.loadIpfsFile").click(function() {
var hash = $("#storage input.fileIpfsHash").val();
var url = EmbarkJS.Storage.getUrl(hash);
var link = '<a href="' + url + '" target="_blank">' + url + '</a>';
$("span.ipfsFileUrl").html(link);
$(".ipfsImage").attr('src', url);
addToLog("#storage", "EmbarkJS.Storage.getUrl('" + hash + "')");
});
2017-02-10 00:38:02 +00:00
});
// ===========================
// Communication (Whisper) example
// ===========================
$(document).ready(function() {
2017-10-09 12:59:02 +00:00
$("#communication .error").hide();
$("#communication .errorVersion").hide();
if (EmbarkJS.Messages.providerName === 'whisper') {
EmbarkJS.Messages.getWhisperVersion(function(err, version) {
if (err) {
$("#communication .error").show();
$("#communication-controls").hide();
$("#status-communication").addClass('status-offline');
} else {
EmbarkJS.Messages.setProvider('whisper');
$("#status-communication").addClass('status-online');
}
});
}
$("#communication button.listenToChannel").click(function() {
var channel = $("#communication .listen input.channel").val();
$("#communication #subscribeList").append("<br> subscribed to " + channel + " now try sending a message");
EmbarkJS.Messages.listenTo({topic: [channel]}).then(function(message) {
$("#communication #messagesList").append("<br> channel: " + channel + " message: " + message);
});
addToLog("#communication", "EmbarkJS.Messages.listenTo({topic: ['" + channel + "']}).then(function(message) {})");
});
$("#communication button.sendMessage").click(function() {
var channel = $("#communication .send input.channel").val();
var message = $("#communication .send input.message").val();
EmbarkJS.Messages.sendMessage({topic: channel, data: message});
addToLog("#communication", "EmbarkJS.Messages.sendMessage({topic: '" + channel + "', data: '" + message + "'})");
});
2017-02-10 00:38:02 +00:00
});