forked from austintgriffith/clevis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
executable file
·81 lines (77 loc) · 2.59 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
const DEBUG = false
let params = {}
params.fs = require('fs')
params.commands = {
"help": [],
"init": [],
"version": [],
"update": [],
"accounts": [],
"new": ["password"],
"unlock": ["accountindex","password"],
"send":["amount","fromindex","toindex"],
"sendTo":["amount","fromindex","toaddress"],
"balance":["address"],
"sign":["string","accountindex","password"],
"recover":["string","signature"],
"sha3":["string"],
"sendData":["amount","fromindex","toaddress","data"],
"create": ["contractname"],
"compile": ["contractname"],
"deploy": ["contractname","accountindex"],
"explain": ["contractname"],
"contract": ["scriptname","contractname","[accountIndex]","[contractArguments...]"],
"test": ["testname"],
"wei": ["amount","symbol"],
"hex": ["asciistring"],
"ascii": ["hexstring"],
"blockNumber": [],
"block": ["blocknumber"],
"transaction": ["hash"],
"build": [],//build react site
"upload": ["[target]"],//upload react site to bucket target or target=IPFS
"invalidate": ["[target]"],//invalidate cloudfront
}
module.exports = (...args)=>{
params.args=args
let command = "help"
if(args[0]){ command=args[0]}
if(!params.commands[command]){
console.log("Unknown command: "+command)
return
}
let reqargArray = []
let reqargs = params.commands[command]
//count required args
for(let a in reqargs){
if(reqargs[a].indexOf("[")==0){
//this is not required don't add it to the list
}else{
reqargArray.push(reqargs[a])
}
params[reqargs[a].replace("[","").replace("]","")]=args[1+parseInt(a)];
}
// console.log("reqargs",reqargs)
// console.log("reqargArray",reqargArray)
//console.log("params.args",params.args)
if(typeof args[parseInt(reqargArray.length)] == "undefined"){
console.log("Missing argument "+(reqargArray.length)+" \""+reqargArray[reqargArray.length-1]+"\"")
return
}
if(DEBUG) console.log("🗜️ Clevis ["+command+"]")
if(command!="init"){
try{
params.config = JSON.parse(params.fs.readFileSync("clevis.json").toString())
}catch(e){
console.log("Error loading clevis.json, run 'clevis init'")
process.exit(1);
}
if(DEBUG) console.log("Connecting to "+params.config.provider)
let Web3 = require('web3')
params.web3 = new Web3(new Web3.providers.HttpProvider(params.config.provider));
params.config.gaspricegwei = params.web3.utils.toWei(""+Math.round(params.config.gasprice*1000)/1000,'gwei')
}
//let path = process.mainModule.filename.replace("index.js","commands/"+command+".js");
let path = "./commands/"+command+".js"
return require(path)(params)
}