-
Notifications
You must be signed in to change notification settings - Fork 5
/
index.js
117 lines (117 loc) · 6.12 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
function log(message) {
$('#log').append($('<p>').text(message));
$('#log').scrollTop($('#log').prop('scrollHeight'));
}
function error(message) {
$('#log').append($('<p>').addClass('dark-red').text(message));
$('#log').scrollTop($('#log').prop('scrollHeight'));
}
function waitForReceipt(hash, cb) {
web3.eth.getTransactionReceipt(hash, function (err, receipt) {
if (err) {
error(err);
}
if (receipt !== null) {
// Transaction went through
if (cb) {
cb(receipt);
}
} else {
// Try again in 1 second
window.setTimeout(function () {
waitForReceipt(hash, cb);
}, 1000);
}
});
}
const address = "0xc4c9994c7b1f767050b94dccf975d0b4096580f6";
const abi = [{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"uuid","type":"string"}],"name":"createAsset","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"uuid","type":"string"}],"name":"transferAsset","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"uuid","type":"string"},{"indexed":false,"name":"manufacturer","type":"address"}],"name":"AssetCreate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"uuid","type":"string"},{"indexed":false,"name":"message","type":"string"}],"name":"RejectCreate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"uuid","type":"string"}],"name":"AssetTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"uuid","type":"string"},{"indexed":false,"name":"message","type":"string"}],"name":"RejectTransfer","type":"event"},{"constant":true,"inputs":[{"name":"uuid","type":"string"}],"name":"assetDescription","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"uuid","type":"string"}],"name":"assetLocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"uuid","type":"string"}],"name":"assetManufacturer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"uuid","type":"string"}],"name":"assetName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"}];
$(function () {
var supplychain;
$('#trackAsset').click(function (e) {
e.preventDefault();
supplychain.assetName.call(document.getElementById("trackUuid").value, function (err, result1) {
if (err) {
return error(err);
}
// The return value is a BigNumber object
document.getElementById("name").innerHTML = result1;
});
});
$('#trackAsset').click(function (e) {
e.preventDefault();
supplychain.assetDescription.call(document.getElementById("trackUuid").value, function (err, result2) {
if (err) {
return error(err);
}
// The return value is a BigNumber object
document.getElementById("description").innerHTML = result2;
});
});
$('#trackAsset').click(function (e) {
e.preventDefault();
supplychain.assetManufacturer.call(document.getElementById("trackUuid").value, function (err, result3) {
if (err) {
return error(err);
}
// The return value is a BigNumber object
document.getElementById("manufacturer").innerHTML = result3;
});
});
$('#trackAsset').click(function (e) {
e.preventDefault();
supplychain.assetLocation.call(document.getElementById("trackUuid").value, function (err, result4) {
if (err) {
return error(err);
}
// The return value is a BigNumber object
document.getElementById("location").innerHTML = result4;
});
});
$('#createAsset').click(function (e) {
e.preventDefault();
if(web3.eth.defaultAccount === undefined) {
return error("No accounts found. If you're using MetaMask, " +
"please unlock it first and reload the page.");
}
log("Transaction On its Way...");
supplychain.createAsset.sendTransaction(document.getElementById("assetName").value,document.getElementById("assetDescription").value,document.getElementById("assetUuid").value,function (err, hash) {
if (err) {
return error(err);
}
waitForReceipt(hash, function () {
log("Transaction succeeded.");
});
});
});
$('#transferAsset').click(function (e) {
e.preventDefault();
if(web3.eth.defaultAccount === undefined) {
return error("No accounts found. If you're using MetaMask, " +
"please unlock it first and reload the page.");
}
log("Transaction On its Way...");
supplychain.transferAsset.sendTransaction(document.getElementById("address").value,document.getElementById("Uuid").value,function (err, hash) {
if (err) {
return error(err);
}
waitForReceipt(hash, function () {
log("Transaction succeeded.");
});
});
});
if (typeof(web3) === "undefined") {
error("Unable to find web3. " +
"Please run MetaMask (or something else that injects web3).");
} else {
log("Found injected web3.");
web3 = new Web3(web3.currentProvider);
ethereum.enable();
if (web3.version.network != 3) {
error("Wrong network detected. Please switch to the Ropsten test network.");
} else {
log("Connected to the Ropsten test network.");
supplychain = web3.eth.contract(abi).at(address);
}
}
});