This commit is contained in:
陆柯 2022-07-03 16:03:25 +08:00
parent 07a88d9bc7
commit 0bc2108351
3 changed files with 33 additions and 27 deletions

24
btc.js
View File

@ -3,15 +3,15 @@
const axios = require('axios') const axios = require('axios')
const HDNode = require('./utils/hdnode') const HDNode = require('./utils/hdnode')
const bitcoinjs = require('bitcoinjs-lib') const bitcoinjs = require('bitcoinjs-lib')
const Ticrypto = require('tic-crypto') const ticc = require('tic-crypto')
const BTC_NODE = require('./netConfig').BTC_NODE const BTC_NODE = require('./netConfig').BTC_NODE
const BTC_NODE2 = require('./netConfig').BTC_NODE2 const BTC_NODE2 = require('./netConfig').BTC_NODE2
const BTC_TXFEE = 30 const BTC_TXFEE = 30
class BTC { class BTC {
constructor (privateKey) { constructor (privateKey) {
if (!Ticrypto.isSeckey(privateKey)) throw new Error('Invalid PrivateKey') if (!ticc.is_seckey(privateKey)) throw new Error('Invalid PrivateKey')
var publicKey = Ticrypto.seckey2pubkey(privateKey) var publicKey = ticc.seckey_to_pubkey(privateKey)
Object.defineProperties(this, { Object.defineProperties(this, {
privateKey: { privateKey: {
enumerable: true, enumerable: true,
@ -21,12 +21,12 @@ class BTC {
publicKey: { publicKey: {
enumerable: true, enumerable: true,
writable: false, writable: false,
value: Ticrypto.seckey2pubkey(privateKey, { coin: 'BTC' }) value: ticc.seckey_to_pubkey({ seckey: privateKey, coin: 'BTC' })
}, },
address: { address: {
enumerable: true, enumerable: true,
writable: false, writable: false,
value: Ticrypto.pubkey2address(publicKey, { coin: 'BTC' }) value: ticc.pubkey_to_address({ pubkey: publicKey, coin: 'BTC' })
}, },
url: { url: {
enumerable: true, enumerable: true,
@ -57,16 +57,20 @@ class BTC {
this._defaultGasFee = BTC_TXFEE this._defaultGasFee = BTC_TXFEE
} }
static generateNewAccount () { static generateNewAccount () {
var mnemonic = Ticrypto.randomSecword() var mnemonic = ticc.randomize_secword()
return Object.assign( return Object.assign(
new BTC(Ticrypto.secword2keypair(mnemonic, { coin: 'BTC' }).seckey), new BTC(
ticc.secword_to_keypair({ secword: mnemonic, coin: 'BTC' }).seckey
),
{ mnemonic: mnemonic } { mnemonic: mnemonic }
) )
} }
static fromMnemonic (mnemonic) { static fromMnemonic (mnemonic) {
HDNode.isValidMnemonic(mnemonic) HDNode.isValidMnemonic(mnemonic)
return Object.assign( return Object.assign(
new BTC(Ticrypto.secword2keypair(mnemonic, { coin: 'BTC' }).seckey), new BTC(
ticc.secword_to_keypair({ secword: mnemonic, coin: 'BTC' }).seckey
),
{ mnemonic: mnemonic } { mnemonic: mnemonic }
) )
} }
@ -88,10 +92,10 @@ class BTC {
} }
static encrypt (data, key) { static encrypt (data, key) {
if (!data || !key) throw new Error('Required Params Missing') if (!data || !key) throw new Error('Required Params Missing')
return Ticrypto.encrypt(data, key) return ticc.encrypt(data, key)
} }
static decrypt (data, key) { static decrypt (data, key) {
return Ticrypto.decrypt(data, key, { format: 'json' }) //return null for wrong key return ticc.decrypt(data, key, { format: 'json' }) //return null for wrong key
} }
static isValidAddress (address) { static isValidAddress (address) {
return address.length == 34 && address[0] == '1' return address.length == 34 && address[0] == '1'

8
eth.js
View File

@ -2,7 +2,7 @@
const eth = require('etherscan-api').init('E3ZFFAEMNN33KX4HHVUZ4KF8XY1FXMR4BI') const eth = require('etherscan-api').init('E3ZFFAEMNN33KX4HHVUZ4KF8XY1FXMR4BI')
const secretStorage = require('./utils/secret-storage') const secretStorage = require('./utils/secret-storage')
const SigningKey = require('./utils/signing-key.js') const SigningKey = require('./utils/signing-key.js')
const Ticrypto = require('tic-crypto') const ticc = require('tic-crypto')
const HDNode = require('./utils/hdnode') const HDNode = require('./utils/hdnode')
const utils = require('./util.js') const utils = require('./util.js')
const axios = require('axios') const axios = require('axios')
@ -79,7 +79,7 @@ class ETH {
} }
static generateNewAccount (option = { path: defaultPath }) { static generateNewAccount (option = { path: defaultPath }) {
//major path as default path >/0'/0/0 //major path as default path >/0'/0/0
var mnemonic = Ticrypto.randomSecword() var mnemonic = ticc.randomize_secword()
return Object.assign(ETH.fromMnemonic(mnemonic, option), { return Object.assign(ETH.fromMnemonic(mnemonic, option), {
mnemonic, mnemonic,
mnemonic mnemonic
@ -233,10 +233,10 @@ class ETH {
} }
static encrypt (data, key) { static encrypt (data, key) {
if (!data || !key) throw new Error('Required Params Missing') if (!data || !key) throw new Error('Required Params Missing')
return Ticrypto.encrypt(data, key) return ticc.encrypt(data, key)
} }
static decrypt (data, key) { static decrypt (data, key) {
return Ticrypto.decrypt(data, key, { format: 'json' }) //return null for wrong key return ticc.decrypt(data, key, { format: 'json' }) //return null for wrong key
} }
static async estimateGasPrice () { static async estimateGasPrice () {
try { try {

28
tic.js
View File

@ -1,6 +1,6 @@
'use strict' 'use strict'
const axios = require('axios') const axios = require('axios')
const ticrypto = require('tic-crypto') const ticc = require('tic-crypto')
const ticActionTransfer = require('tic.action').ActionTransfer const ticActionTransfer = require('tic.action').ActionTransfer
const TIC_TXFEE = 10 const TIC_TXFEE = 10
@ -8,7 +8,7 @@ const TIC_NODE = require('./netConfig').TIC_NODE
class TIC { class TIC {
constructor (seckey, option = {}) { constructor (seckey, option = {}) {
if (!seckey || !ticrypto.isSeckey(seckey)) throw 'ERROR:Invalid Seckey' if (!seckey || !ticc.is_seckey(seckey)) throw 'ERROR:Invalid Seckey'
Object.defineProperties(this, { Object.defineProperties(this, {
seckey: { seckey: {
value: seckey, value: seckey,
@ -16,12 +16,14 @@ class TIC {
writable: false writable: false
}, },
pubkey: { pubkey: {
value: ticrypto.seckey2pubkey(seckey), value: ticc.seckey_to_pubkey({ seckey }),
enumerable: true, enumerable: true,
writable: false writable: false
}, },
address: { address: {
value: ticrypto.pubkey2address(ticrypto.seckey2pubkey(seckey)), value: ticc.pubkey_to_address({
pubkey: ticc.seckey_to_pubkey(seckey)
}),
enumerable: true, enumerable: true,
writable: false writable: false
} }
@ -45,14 +47,14 @@ class TIC {
} }
static generateNewAccount () { static generateNewAccount () {
var secword = ticrypto.randomSecword() var secword = ticc.randomize_secword()
return Object.assign(new TIC(ticrypto.secword2keypair(secword).seckey), { return Object.assign(new TIC(ticc.secword_to_keypair({ secword }).seckey), {
secword: secword secword: secword
}) })
} }
static fromMnemonic (secword) { static fromMnemonic (secword) {
if (!secword || !ticrypto.isSecword(secword)) throw 'ERROR:Invalid Secword' if (!secword || !ticc.is_secword(secword)) throw 'ERROR:Invalid Secword'
return new TIC(ticrypto.secword2keypair(secword).seckey) return new TIC(ticc.secword_to_keypair({ secword }).seckey)
} }
static async getBalance (address) { static async getBalance (address) {
if (!address) { if (!address) {
@ -84,14 +86,14 @@ class TIC {
} }
static encrypt (data, key) { static encrypt (data, key) {
if (!data || !key) throw new Error('Required Params Missing') if (!data || !key) throw new Error('Required Params Missing')
return ticrypto.encrypt(data, key) return ticc.encrypt(data, key)
} }
static decrypt (data, key) { static decrypt (data, key) {
return ticrypto.decrypt(data, key, { format: 'json' }) //return null for wrong key return ticc.decrypt(data, key, { format: 'json' }) //return null for wrong key
} }
static isValidAddress (address) { static isValidAddress (address) {
return ticrypto.isAddress(address) return ticc.is_chain_address({ address })
} }
async sendTransaction (toAddress, amount, option = { gasFee: TIC_TXFEE }) { async sendTransaction (toAddress, amount, option = { gasFee: TIC_TXFEE }) {
@ -142,10 +144,10 @@ class TIC {
} }
//default key for sign&encrypt is account's seckey,other keys are optional. //default key for sign&encrypt is account's seckey,other keys are optional.
sign (message, key = this.seckey) { sign (message, key = this.seckey) {
return ticrypto.sign({ data: message, seckey: key }) return ticc.sign({ data: message, seckey: key })
} }
verify (message, signature) { verify (message, signature) {
return ticrypto.sign({ data: message, signature, seckey: this.seckey }) return ticc.sign({ data: message, signature, seckey: this.seckey })
} }
encrypt (key) { encrypt (key) {
return TIC.encrypt(this, key) return TIC.encrypt(this, key)