UNPKG

newpay-wallet-js

Version:

320 lines (247 loc) 13.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _bitsharesjsWs = require("bitsharesjs-ws"); var _es = require("bitsharesjs/es"); var _idbInstance = require("./idb-instance.js"); var _idbInstance2 = _interopRequireDefault(_idbInstance); var _WalletDb = require("./WalletDb.js"); var _WalletDb2 = _interopRequireDefault(_WalletDb); var _WalletManagerStore = require("./WalletManagerStore.js"); var _WalletManagerStore2 = _interopRequireDefault(_WalletManagerStore); var _WalletActions = require("./WalletActions.js"); var _WalletActions2 = _interopRequireDefault(_WalletActions); var _AccountStore = require("./AccountStore.js"); var _AccountStore2 = _interopRequireDefault(_AccountStore); var _ApplicationApi = require("./ApplicationApi.js"); var _ApplicationApi2 = _interopRequireDefault(_ApplicationApi); var _PrivateKeyStore = require("./PrivateKeyStore.js"); var _PrivateKeyStore2 = _interopRequireDefault(_PrivateKeyStore); var _Transfer = require("./Transfer.js"); var _Transfer2 = _interopRequireDefault(_Transfer); var _QueryChainStore = require("./QueryChainStore.js"); var _QueryChainStore2 = _interopRequireDefault(_QueryChainStore); var _utils = require("./lib/common/utils.js"); var _utils2 = _interopRequireDefault(_utils); var _immutable = require("immutable"); var _immutable2 = _interopRequireDefault(_immutable); var _AccountRefsStore = require("./AccountRefsStore.js"); var _AccountRefsStore2 = _interopRequireDefault(_AccountRefsStore); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var newpay_password = "newpaypassword987654321"; var NewpayInstance = function () { function NewpayInstance() { _classCallCheck(this, NewpayInstance); } _createClass(NewpayInstance, null, [{ key: "init", // static getInstance() { // if (!NewpayInstance.instance) { // NewpayInstance.instance = new NewpayInstance(); // } // return NewpayInstance.instance; // } //初始化 value: function init(connection_url) { var urls = [connection_url]; var connectionManager = new _bitsharesjsWs.Manager({ url: connection_url, urls: urls }); return connectionManager.connectWithFallback(true).then(function () { _idbInstance2.default.close(); var db = _idbInstance2.default.init_instance(indexedDB).init_promise; return Promise.all([db]).then(function () { return Promise.all([_PrivateKeyStore2.default.onLoadDbData().then(function () { _AccountRefsStore2.default.loadDbData(); }), _WalletDb2.default.loadDbData(), _WalletManagerStore2.default.init()]).then(function () { return _es.ChainStore.init().then(function () { return Promise.all([_AccountStore2.default.loadDbData(_bitsharesjsWs.Apis.instance().chainId)]).then(function () { return _AccountStore2.default.tryToSetCurrentAccount(); }).catch(function (error) { console.log("[NewpayInstance.js] ----- ERROR ----->", error); return Promise.reject(error); }); }).catch(function (error) { console.log("[NewpayInstance.js] ----- ChainStore.init error ----->", error); return Promise.reject(error); }); }); }); }); } //创建钱包和账户 }, { key: "createWalletAndAccount", value: function createWalletAndAccount(walletName, accountName, faucet_url) { var password = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; if (password == '') { password = newpay_password; } var key = "__graphene__" + _AccountStore2.default._getCurrentAccountKey(); var databaseName = _QueryChainStore2.default.getDatabaseName(); _idbInstance2.default.impl.deleteDatabase(databaseName); localStorage.removeItem(key); _idbInstance2.default.close(); return _idbInstance2.default.init_instance().init_promise.then(function () { var setRoot1 = _idbInstance2.default.root.setProperty("wallet_names", []); var setRoot2 = _idbInstance2.default.root.setProperty("current_wallet", ""); var setRoot3 = _idbInstance2.default.root.setProperty("AddressIndex", null); return Promise.all([setRoot1, setRoot2, setRoot3]).then(function () { return _WalletManagerStore2.default.init().then(function () { return _WalletManagerStore2.default.onSetWallet(walletName, password).then(function () { //钱包的名字 ,钱包的密码六位密码 console.log("Congratulations, your wallet was successfully created."); return _WalletActions2.default.createAccount(accountName, null, null, 0, null, faucet_url).then(_AccountStore2.default.onCreateAccount(accountName)).then(function () { return (0, _es.FetchChain)("getAccount", name); }).catch(function (error) { console.log("ERROR AccountActions.createAccount", error); var error_msg = error.base && error.base.length && error.base.length > 0 ? error.base[0] : "unknown error"; if (error.remote_ip) error_msg = error.remote_ip[0]; return Promise.reject(error_msg); }); }); }); }); }); // return WalletManagerStore.onSetWallet(walletName, newpay_password).then(()=> { //钱包的名字 ,钱包的密码六位密码 // console.log("Congratulations, your wallet was successfully created."); // return WalletActions.createAccount(accountName, null, null, 0, null).then( // AccountStore.onCreateAccount(accountName) // ).then( () =>{ // return FetchChain("getAccount", name) // }).catch(error =>{ // console.log("ERROR AccountActions.createAccount", error); // let error_msg = error.base && error.base.length && error.base.length > 0 ? error.base[0] : "unknown error"; // if (error.remote_ip) error_msg = error.remote_ip[0]; // return Promise.reject(error_msg); // }) // }) } //转账 }, { key: "transfer", value: function transfer(fromAccount, toAccount, amount, asset_id, memo) { var password = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : ''; if (password == '') { password = newpay_password; } if (_WalletDb2.default.validatePassword(password, true)) { var application_api = new _ApplicationApi2.default(); return application_api.transfer(fromAccount, toAccount, amount, //为用户输入的数字乘以此资产类型的精度 asset_id, memo).then(function (result) { console.log(result); return Promise.resolve(result); }).catch(function (error) { console.log(error); return Promise.reject(error); }); } else { return Promise.reject("验证密码错误!"); } } //导出脑钥 }, { key: "exportBrainKey", value: function exportBrainKey() { var password = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; if (password == '') { password = newpay_password; } if (_WalletDb2.default.validatePassword(password, true)) { return _WalletDb2.default.getBrainKey(); } else { return false; } } //导入脑钥 }, { key: "importBrainKey", value: function importBrainKey(walletName, brainkey_plaintext, callbackFun) { var password = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; if (password == '') { password = newpay_password; } return _QueryChainStore2.default.importBrainkey(walletName, password, brainkey_plaintext, callbackFun); } //查询余额 }, { key: "getAccountBalances", value: function getAccountBalances(name) { return _QueryChainStore2.default.listAccountBalances(name); } //查找用户是否存在 }, { key: "checkAccountExists", value: function checkAccountExists(name) { return _bitsharesjsWs.Apis.instance().db_api().exec("lookup_accounts", [name, 20]); } //查找当前用户local_storage }, { key: "getCurAccountLocalKey", value: function getCurAccountLocalKey() { var key = "__graphene__" + _AccountStore2.default._getCurrentAccountKey(); return JSON.parse(localStorage.getItem(key)); } //获取转账记录 }, { key: "getTransferList", value: function getTransferList(name, start) { return _QueryChainStore2.default.getTransferList(name, start); } //获取转账明细(返回时间和解析后的备注) }, { key: "getTransferInfo", value: function getTransferInfo(block_num, trx_in_block) { var password = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; var res_obj = {}; if (password == '') { password = newpay_password; } if (_WalletDb2.default.validatePassword(password, true)) { return _bitsharesjsWs.Apis.instance().db_api().exec("get_transaction", [block_num, trx_in_block]).then(function (res) { res_obj["expiration"] = res.expiration; if (res.operations[0][1].memo) { //解析备注 res_obj["memo"] = _PrivateKeyStore2.default.decodeMemo(res.operations[0][1].memo).text; } return res_obj; }); } else { return res_obj; } } //修改本地密码 }, { key: "changePassword", value: function changePassword(old_password, new_password) { if (old_password == '') { old_password = newpay_password; } if (new_password == '') { new_password = newpay_password; } return _WalletDb2.default.changePassword(old_password, new_password, true); } //验证密码 }, { key: "validatePassword", value: function validatePassword(password) { return _WalletDb2.default.validatePassword(password, true); } //检测用户名是否合法 }, { key: "validateAccountName", value: function validateAccountName(accountName) { var info = accountName === "" ? "请输入一个合法账户名称" : _QueryChainStore2.default.is_account_name_error(accountName); if (!info && !_QueryChainStore2.default.is_cheap_name(accountName)) { info = "这是高级账户名。高级账户名的注册需要花费更多,因为无法通过免费水龙头服务进行注册。请选择其他名字,包含至少一个横杠、数字或者不含元音字母"; } return info; } }]); return NewpayInstance; }(); //var NewpayInstanceWrapped = NewpayInstance.getInstance(); //export default NewpayInstanceWrapped exports.default = NewpayInstance;