nel-neo-thinsdk
Version:
141 lines • 5.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
///<reference path="../lib.d.ts"/>
///<reference path="neo-ts.d.ts"/>
var fs = require("fs");
var path = require("path");
var readline = require("readline");
//输出一些nodejs 目录
console.log(process.execPath);
console.log(__dirname);
console.log(process.cwd());
//习惯了直接加载,require 只支持commonjs 不方便
function loadNormalJS(filename, namespace) {
var js = fs.readFileSync(path.join(__dirname, filename)).toString();
//我这样加一句把命名空间丢进global,对nodejs来说,就可以访问了
//global["fuck"] =fuck; 相当于在js文件后面加上这样一句
js += "\r\n global['" + namespace + "']=" + namespace;
eval(js);
}
function loadNormalJSs(filename, namespaces) {
var js = fs.readFileSync(__dirname + "\\" + filename).toString();
for (var i = 0; i < namespaces.length; i++) {
js += "\r\n global['" + namespaces[i] + "']=" + namespaces[i];
}
eval(js);
}
var mapTest = {};
function showMenu() {
console.log("=====Thinneo sdk TS for nodejs:menu=====");
for (var key in mapTest) {
console.log(key + " = " + mapTest[key].name);
}
}
function initMenu() {
mapTest["0"] = { name: "test load normal js", call: test_0 };
mapTest["1"] = { name: "Cryptography", call: test_1 };
mapTest["2"] = { name: "Hash2Address", call: test_2 };
mapTest["3"] = { name: "Test_Pubkey2Address", call: test_3 };
mapTest["4"] = { name: "WifDecode", call: test_4 };
mapTest["5"] = { name: "Sign&Vertify", call: test_5 };
mapTest["6"] = { name: "Nep2->Prikey", call: test_6 };
mapTest["7"] = { name: "PriKey->Nep2", call: test_7 };
}
function test_0() {
loadNormalJS("../lib.js", "fuck");
var a = new fuck.abc();
a.log();
console.log('Hello world');
}
function test_1() {
var addr = "ALjSnMZidJqd18iQaoCgFun6iqWRm2cVtj";
var uint8 = ThinNeo.Helper.GetPublicKeyScriptHash_FromAddress(addr);
var hexstr = uint8.reverse().toHexString();
console.log("addr=" + addr);
console.log("hex=" + hexstr);
}
function test_2() {
var hexstr = "0x0b193415c6f098b02e81a3b14d0e3b08e9c3f79a";
var hashrev = hexstr.hexToBytes();
var hash = hashrev.reverse();
var addr = ThinNeo.Helper.GetAddressFromScriptHash(hash);
console.log("hex=" + hexstr);
console.log("addr=" + addr);
}
function test_3() {
var pubkey = "02bf055764de0320c8221920d856d3d9b93dfc1dcbc759a560fd42553aa025ba5c";
var bytes = pubkey.hexToBytes();
var addr = ThinNeo.Helper.GetAddressFromPublicKey(bytes);
console.log("pubkey=" + pubkey);
console.log("addr=" + addr);
}
function test_4() {
var wif = "L2CmHCqgeNHL1i9XFhTLzUXsdr5LGjag4d56YY98FqEi4j5d83Mv";
var prikey = ThinNeo.Helper.GetPrivateKeyFromWIF(wif);
var pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(prikey);
var addr = ThinNeo.Helper.GetAddressFromPublicKey(pubkey);
console.log("wif=" + wif);
console.log("prikey=" + prikey.toHexString());
console.log("pubkey=" + pubkey.toHexString());
console.log("addr=" + addr);
}
function test_5() {
var wif = "L2CmHCqgeNHL1i9XFhTLzUXsdr5LGjag4d56YY98FqEi4j5d83Mv";
var prikey = ThinNeo.Helper.GetPrivateKeyFromWIF(wif);
var pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(prikey);
var addr = ThinNeo.Helper.GetAddressFromPublicKey(pubkey);
var signdata = "010203ff1122abcd";
var message = signdata.hexToBytes();
var data = ThinNeo.Helper.Sign(message, prikey);
console.log("wif=" + wif);
console.log("addr=" + addr);
console.log("sign=" + data.toHexString());
var b = ThinNeo.Helper.VerifySignature(message, data, pubkey);
console.log("verify=" + b);
}
function test_6() {
//這個需要把scrypt換掉
var nep2 = "6PYT8kA51ffcAv3bJzbfcT6Uuc32QS5wHEjneRdkPYFxZSrirVHRPEpVwN";
var n = 16384;
var r = 8;
var p = 8;
ThinNeo.Helper.GetPrivateKeyFromNep2(nep2, "1", n, r, p, function (info, result) {
console.log("info=" + info);
var prikey = result;
console.log("result=" + prikey.toHexString());
var pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(prikey);
var address = ThinNeo.Helper.GetAddressFromPublicKey(pubkey);
console.log("address=" + address);
});
}
function test_7() {
var n = 16384;
var r = 8;
var p = 8;
var prikey = "94b3335830392a3586c2d7072cfe49efc3ef048876f526cbb7061b30a2278012".hexToBytes();
ThinNeo.Helper.GetNep2FromPrivateKey(prikey, "1", n, r, p, function (info, result) {
console.log("info=" + info);
console.log("result=" + result);
});
}
function main() {
loadNormalJSs("neo-ts.js", ["Neo", "ThinNeo"]);
loadNormalJS("../neo-ts/3rdlib/scrypt-async.js", "scrypt");
initMenu();
showMenu();
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on("line", function (input) {
var cleanline = input.replace(" ", "");
if (cleanline == "?" || cleanline == "?") {
showMenu();
}
if (mapTest[cleanline] != undefined) {
mapTest[cleanline].call();
}
});
}
main();
//# sourceMappingURL=app.js.map