rename all libs from xxx.yyy to xxx-yyy
This commit is contained in:
165
tic.js
165
tic.js
@@ -1,156 +1,155 @@
|
||||
"use strict";
|
||||
const axios = require("axios");
|
||||
const ticCrypto = require("tic.crypto");
|
||||
const ticActionTransfer = require("tic.action").ActionTransfer;
|
||||
'use strict'
|
||||
const axios = require('axios')
|
||||
const ticrypto = require('tic-crypto')
|
||||
const ticActionTransfer = require('tic.action').ActionTransfer
|
||||
|
||||
const TIC_TXFEE = 10;
|
||||
const TIC_NODE = require("./netConfig").TIC_NODE;
|
||||
const TIC_TXFEE = 10
|
||||
const TIC_NODE = require('./netConfig').TIC_NODE
|
||||
|
||||
class TIC {
|
||||
constructor(seckey, option = {}) {
|
||||
if (!seckey || !ticCrypto.isSeckey(seckey)) throw "ERROR:Invalid Seckey";
|
||||
constructor (seckey, option = {}) {
|
||||
if (!seckey || !ticrypto.isSeckey(seckey)) throw 'ERROR:Invalid Seckey'
|
||||
Object.defineProperties(this, {
|
||||
seckey: {
|
||||
value: seckey,
|
||||
enumerable: true,
|
||||
writable: false,
|
||||
writable: false
|
||||
},
|
||||
pubkey: {
|
||||
value: ticCrypto.seckey2pubkey(seckey),
|
||||
value: ticrypto.seckey2pubkey(seckey),
|
||||
enumerable: true,
|
||||
writable: false,
|
||||
writable: false
|
||||
},
|
||||
address: {
|
||||
value: ticCrypto.pubkey2address(ticCrypto.seckey2pubkey(seckey)),
|
||||
value: ticrypto.pubkey2address(ticrypto.seckey2pubkey(seckey)),
|
||||
enumerable: true,
|
||||
writable: false,
|
||||
},
|
||||
});
|
||||
writable: false
|
||||
}
|
||||
})
|
||||
Object.assign(this, {
|
||||
_url: option._url || TIC_NODE,
|
||||
_defaultFee: option.fee || TIC_TXFEE, //fee cannot be zero
|
||||
});
|
||||
_defaultFee: option.fee || TIC_TXFEE //fee cannot be zero
|
||||
})
|
||||
}
|
||||
get url() {
|
||||
return this._url;
|
||||
get url () {
|
||||
return this._url
|
||||
}
|
||||
set url(newURL) {
|
||||
this._url = newURL;
|
||||
set url (newURL) {
|
||||
this._url = newURL
|
||||
}
|
||||
get txfee() {
|
||||
return this._defaultFee;
|
||||
get txfee () {
|
||||
return this._defaultFee
|
||||
}
|
||||
set txfee(fee) {
|
||||
this._defaultFee = fee;
|
||||
set txfee (fee) {
|
||||
this._defaultFee = fee
|
||||
}
|
||||
|
||||
static generateNewAccount() {
|
||||
var secword = ticCrypto.randomSecword();
|
||||
return Object.assign(new TIC(ticCrypto.secword2keypair(secword).seckey), {
|
||||
secword: secword,
|
||||
});
|
||||
static generateNewAccount () {
|
||||
var secword = ticrypto.randomSecword()
|
||||
return Object.assign(new TIC(ticrypto.secword2keypair(secword).seckey), {
|
||||
secword: secword
|
||||
})
|
||||
}
|
||||
static fromMnemonic(secword) {
|
||||
if (!secword || !ticCrypto.isSecword(secword))
|
||||
throw "ERROR:Invalid Secword";
|
||||
return new TIC(ticCrypto.secword2keypair(secword).seckey);
|
||||
static fromMnemonic (secword) {
|
||||
if (!secword || !ticrypto.isSecword(secword)) throw 'ERROR:Invalid Secword'
|
||||
return new TIC(ticrypto.secword2keypair(secword).seckey)
|
||||
}
|
||||
static async getBalance(address) {
|
||||
static async getBalance (address) {
|
||||
if (!address) {
|
||||
throw new Error("Address is required");
|
||||
throw new Error('Address is required')
|
||||
}
|
||||
return (
|
||||
await axios.post(TIC_NODE + "/Account/getBalance", {
|
||||
await axios.post(TIC_NODE + '/Account/getBalance', {
|
||||
Account: {
|
||||
address: address,
|
||||
},
|
||||
address: address
|
||||
}
|
||||
})
|
||||
).data;
|
||||
).data
|
||||
}
|
||||
static async getActions(address) {
|
||||
static async getActions (address) {
|
||||
if (!address) {
|
||||
throw new Error("Address is required");
|
||||
throw new Error('Address is required')
|
||||
}
|
||||
return (
|
||||
await axios.post(TIC_NODE + "/Action/getActionList", {
|
||||
await axios.post(TIC_NODE + '/Action/getActionList', {
|
||||
Action: {
|
||||
actorAddress: address,
|
||||
toAddress: address,
|
||||
toAddress: address
|
||||
},
|
||||
config: {
|
||||
logic: "OR",
|
||||
},
|
||||
logic: 'OR'
|
||||
}
|
||||
})
|
||||
).data;
|
||||
).data
|
||||
}
|
||||
static encrypt(data, key) {
|
||||
if (!data || !key) throw new Error("Required Params Missing");
|
||||
return ticCrypto.encrypt(data, key);
|
||||
static encrypt (data, key) {
|
||||
if (!data || !key) throw new Error('Required Params Missing')
|
||||
return ticrypto.encrypt(data, key)
|
||||
}
|
||||
static decrypt(data, key) {
|
||||
return ticCrypto.decrypt(data, key, { format: "json" }); //return null for wrong key
|
||||
static decrypt (data, key) {
|
||||
return ticrypto.decrypt(data, key, { format: 'json' }) //return null for wrong key
|
||||
}
|
||||
|
||||
static isValidAddress(address) {
|
||||
return ticCrypto.isAddress(address);
|
||||
static isValidAddress (address) {
|
||||
return ticrypto.isAddress(address)
|
||||
}
|
||||
|
||||
async sendTransaction(toAddress, amount, option = { gasFee: TIC_TXFEE }) {
|
||||
async sendTransaction (toAddress, amount, option = { gasFee: TIC_TXFEE }) {
|
||||
if (!toAddress || !amount) {
|
||||
throw new Error("ERROR:RequiredParamsMissing");
|
||||
throw new Error('ERROR:RequiredParamsMissing')
|
||||
} //amount cannot be zero
|
||||
let action = new ticActionTransfer({
|
||||
amount: parseInt(amount),
|
||||
toAddress: toAddress,
|
||||
fee: option.gasFee,
|
||||
});
|
||||
fee: option.gasFee
|
||||
})
|
||||
//对交易数据签名,packMe 内的参数是交易发起人的keypair
|
||||
action.packMe({
|
||||
seckey: this.seckey,
|
||||
pubkey: this.pubkey,
|
||||
});
|
||||
pubkey: this.pubkey
|
||||
})
|
||||
let data = {
|
||||
Action: action,
|
||||
};
|
||||
Action: action
|
||||
}
|
||||
try {
|
||||
let res = (await axios.post(this._url + "/Action/prepare", data)).data;
|
||||
return res;
|
||||
let res = (await axios.post(this._url + '/Action/prepare', data)).data
|
||||
return res
|
||||
} catch (err) {
|
||||
return null;
|
||||
return null
|
||||
}
|
||||
}
|
||||
async getBalance() {
|
||||
return TIC.getBalance(this.address);
|
||||
async getBalance () {
|
||||
return TIC.getBalance(this.address)
|
||||
}
|
||||
async getActions() {
|
||||
return TIC.getActions(this.address);
|
||||
async getActions () {
|
||||
return TIC.getActions(this.address)
|
||||
}
|
||||
getSerializedTx(option) {
|
||||
getSerializedTx (option) {
|
||||
if (!option.toAddress || !option.amount) {
|
||||
throw new Error("ERROR:RequiredParamsMissing");
|
||||
throw new Error('ERROR:RequiredParamsMissing')
|
||||
}
|
||||
let action = new ticActionTransfer({
|
||||
amount: parseInt(option.amount),
|
||||
toAddress: option.toAddress,
|
||||
fee: option.fee || this._defaultFee,
|
||||
});
|
||||
fee: option.fee || this._defaultFee
|
||||
})
|
||||
//sign for txBody use function packMe, which needs actor's keypair as parameter
|
||||
action.packMe({
|
||||
seckey: this.seckey,
|
||||
pubkey: this.pubkey,
|
||||
});
|
||||
return action;
|
||||
pubkey: this.pubkey
|
||||
})
|
||||
return action
|
||||
}
|
||||
//default key for sign&encrypt is account's seckey,other keys are optional.
|
||||
sign(message, key = this.seckey) {
|
||||
return ticCrypto.sign({ data: message, seckey: key });
|
||||
sign (message, key = this.seckey) {
|
||||
return ticrypto.sign({ data: message, seckey: key })
|
||||
}
|
||||
verify(message, signature) {
|
||||
return ticCrypto.sign({ data: message, signature, seckey: this.seckey });
|
||||
verify (message, signature) {
|
||||
return ticrypto.sign({ data: message, signature, seckey: this.seckey })
|
||||
}
|
||||
encrypt(key) {
|
||||
return TIC.encrypt(this, key);
|
||||
encrypt (key) {
|
||||
return TIC.encrypt(this, key)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { TIC };
|
||||
module.exports = { TIC }
|
||||
|
||||
Reference in New Issue
Block a user