首次放到 git
This commit is contained in:
60
Account.js
Normal file
60
Account.js
Normal file
@@ -0,0 +1,60 @@
|
||||
'use strict'
|
||||
const Coins = {}
|
||||
Coins.TIC = require('./tic.js').TIC;
|
||||
Coins.ETH = require('./eth.js').ETH;
|
||||
Coins.ERC20 = require('./eth.js').ERC20;
|
||||
Coins.BTC = require('./btc.js').BTC;
|
||||
|
||||
class Account {
|
||||
constructor(coinType,privateKey,contractAddress){
|
||||
if(coinType === 'tic' || coinType === 'btc' || coinType === 'eth')
|
||||
return new Coins[coinType.toUpperCase()](privateKey)
|
||||
else
|
||||
return new Coins.ERC20(privateKey,contractAddress)
|
||||
}
|
||||
static generateNewAccount(coinType){
|
||||
if(coinType === 'tic' || coinType === 'btc')
|
||||
return Coins[coinType.toUpperCase()].generateNewAccount()
|
||||
return Coins.ETH.generateNewAccount()
|
||||
}
|
||||
static fromMnemonic(coinType,mnemonic){
|
||||
if(coinType === 'tic' || coinType === 'btc' || coinType === 'eth')
|
||||
return Coins[coinType.toUpperCase()].fromMnemonic(mnemonic)
|
||||
return Coins.ETH.fromMnemonic(mnemonic)
|
||||
}
|
||||
static fromPrivateKey(coinType,privateKey,contractAddress){
|
||||
if(coinType === 'tic' || coinType === 'btc' || coinType === 'eth')
|
||||
return new Coins[coinType.toUpperCase()](privateKey)
|
||||
return new Coins.ERC20(privateKey,contractAddress)
|
||||
}
|
||||
static async fromOfficalWallet(encryptedWallet,key){
|
||||
return await Coins.ETH.fromEncryptedWallet(encryptedWallet,key)
|
||||
}
|
||||
static async getBalance(coinType,address,contractAddress){
|
||||
if(coinType === 'tic' || coinType === 'btc' || coinType === 'eth')
|
||||
return await Coins[coinType.toUpperCase()].getBalance(address)
|
||||
return await Coins.ERC20.getBalance(address,contractAddress)
|
||||
}
|
||||
static async getActions(coinType,address,contractAddress){
|
||||
if(coinType === 'tic' || coinType === 'btc' || coinType === 'eth')
|
||||
return await Coins[coinType.toUpperCase()].getActions(address)
|
||||
return await Coins.ERC20.getActions(address,contractAddress)
|
||||
}
|
||||
static decrypt(coinType,encryptedWallet,key){
|
||||
if(coinType === 'tic' || coinType === 'btc' || coinType === 'eth')
|
||||
return Coins[coinType.toUpperCase()].decrypt(encryptedWallet,key)
|
||||
return Coins.ETH.decrypt(encryptedWallet,key)
|
||||
}
|
||||
static isValidAddress(coinType, address){
|
||||
if(!coinType || !address) return null
|
||||
switch(coinType){
|
||||
case "tic": return Coins.TIC.isValidAddress(address)
|
||||
case "btc": return Coins.BTC.isValidAddress(address)
|
||||
default: return Coins.ETH.isValidAddress(address)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
Account
|
||||
}
|
||||
Reference in New Issue
Block a user