diff --git a/package.json b/package.json index 6e89f6d..a9d4603 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "desktop": "webpack --config ./webpack.desktop.js", "mobile": "webpack --config ./webpack.mobile.js", "deploy:prod": "rm -f ./dist/.DS_Store && aws s3 sync ./dist s3://cebg.games.new --acl public-read --exclude \"pubgv4/*\" --exclude \"release/*\"", - "refresh:prod": "aws cloudfront create-invalidation --distribution-id EE4HC9OXEQC7Y --paths \"/*\"" + "refresh:prod": "aws cloudfront create-invalidation --distribution-id E34PEY4AGTMS0Y --paths \"/*\"" }, "author": "", "license": "ISC", diff --git a/src/desktop/img/nft/hero/hero7-d@2x.png b/src/desktop/img/nft/hero/hero7-d@2x.png index 56be97b..a6821e1 100755 Binary files a/src/desktop/img/nft/hero/hero7-d@2x.png and b/src/desktop/img/nft/hero/hero7-d@2x.png differ diff --git a/src/desktop/js/jcchain.js b/src/desktop/js/jcchain.js index 0ecd13a..d2c2ee3 100644 --- a/src/desktop/js/jcchain.js +++ b/src/desktop/js/jcchain.js @@ -143,7 +143,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocal\", function() { return setLocal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocal\", function() { return getLocal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeLocal\", function() { return removeLocal; });\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./json */ \"./node_modules/@walletconnect/browser-utils/dist/esm/json.js\");\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ \"./node_modules/@walletconnect/browser-utils/dist/esm/browser.js\");\n\n\nfunction setLocal(key, data) {\n var raw = Object(_json__WEBPACK_IMPORTED_MODULE_0__[\"safeJsonStringify\"])(data);\n var local = Object(_browser__WEBPACK_IMPORTED_MODULE_1__[\"getLocalStorage\"])();\n\n if (local) {\n local.setItem(key, raw);\n }\n}\nfunction getLocal(key) {\n var data = null;\n var raw = null;\n var local = Object(_browser__WEBPACK_IMPORTED_MODULE_1__[\"getLocalStorage\"])();\n\n if (local) {\n raw = local.getItem(key);\n }\n\n data = raw ? Object(_json__WEBPACK_IMPORTED_MODULE_0__[\"safeJsonParse\"])(raw) : raw;\n return data;\n}\nfunction removeLocal(key) {\n var local = Object(_browser__WEBPACK_IMPORTED_MODULE_1__[\"getLocalStorage\"])();\n\n if (local) {\n local.removeItem(key);\n }\n}\n\n//# sourceURL=webpack://jcchain/./node_modules/@walletconnect/browser-utils/dist/esm/local.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocal\", function() { return setLocal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocal\", function() { return getLocal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeLocal\", function() { return removeLocal; });\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./json */ \"./node_modules/@walletconnect/browser-utils/dist/esm/json.js\");\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ \"./node_modules/@walletconnect/browser-utils/dist/esm/browser.js\");\n\n\n\nvar Cookies = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/src/js.cookie.js\");\n\nfunction setLocal(key, data) {\n var raw = Object(_json__WEBPACK_IMPORTED_MODULE_0__[\"safeJsonStringify\"])(data);\n console.log('cookie save vale: ' + key + ' | ' + raw);\n console.log(Cookies);\n Cookies.set(key, raw); // const local = getLocalStorage();\n // if (local) {\n // local.setItem(key, raw);\n // }\n}\nfunction getLocal(key) {\n var data = null;\n var raw = Cookies.get(key); // const local = getLocalStorage();\n // if (local) {\n // raw = local.getItem(key);\n // }\n\n data = raw ? Object(_json__WEBPACK_IMPORTED_MODULE_0__[\"safeJsonParse\"])(raw) : raw;\n return data;\n}\nfunction removeLocal(key) {\n Cookies.remove(key); // const local = getLocalStorage();\n // if (local) {\n // local.removeItem(key);\n // }\n}\n\n//# sourceURL=webpack://jcchain/./node_modules/@walletconnect/browser-utils/dist/esm/local.js?"); /***/ }), @@ -5063,7 +5063,7 @@ eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __decorate = this && this.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __values = this && this.__values || function (o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Blockchain = void 0;\n\nvar web3_provider_1 = __importDefault(__webpack_require__(/*! @walletconnect/web3-provider */ \"./node_modules/@walletconnect/web3-provider/dist/esm/index.js\"));\n\nvar web3_1 = __importDefault(__webpack_require__(/*! web3 */ \"./node_modules/web3/dist/web3.min.js\"));\n\nvar config_chain_1 = __webpack_require__(/*! ../configs/config_chain */ \"./src/configs/config_chain.ts\");\n\nvar event_bus_1 = __webpack_require__(/*! ../utils/event-bus */ \"./src/utils/event-bus.ts\");\n\nvar chain_util_1 = __webpack_require__(/*! ../utils/chain.util */ \"./src/utils/chain.util.ts\");\n\nvar allchain_1 = __webpack_require__(/*! ../configs/allchain */ \"./src/configs/allchain.ts\");\n\nvar contracts_1 = __webpack_require__(/*! ../configs/contracts */ \"./src/configs/contracts.ts\");\n\nvar singleton_decorator_1 = __webpack_require__(/*! ../decorator/singleton.decorator */ \"./src/decorator/singleton.decorator.ts\");\n\nvar browser_1 = __webpack_require__(/*! ../utils/browser */ \"./src/utils/browser.ts\");\n\nvar UserModule_1 = __webpack_require__(/*! ../module/UserModule */ \"./src/module/UserModule.ts\");\n\nvar EIP721_DOMAIN_DATA = [{\n name: 'name',\n type: 'string'\n}, {\n name: 'version',\n type: 'string'\n}, {\n name: 'chainId',\n type: 'uint256'\n}, {\n name: 'verifyingContract',\n type: 'address'\n}];\nvar CACHE_KEY = 'cebg_chain_cache_key';\n\nvar Blockchain =\n/** @class */\nfunction () {\n function Blockchain() {\n var e_1, _a, e_2, _b;\n\n var _this = this;\n\n this.currentChain = 0; // 0: null, 1: metamask, 2: walletconnect\n\n this.walletType = 0;\n this.dataCached = false;\n this.chainMap = new Map();\n this.rpc = {};\n\n this.subscribeToEvents = function () {\n // Subscribe to accounts change\n _this.provider.on('accountsChanged', function (accounts) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.log('accountsChanged: ', accounts);\n if (!(accounts && accounts.length > 0)) return [3\n /*break*/\n , 2];\n if (!(UserModule_1.UserModule.accountId !== accounts[0])) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , UserModule_1.UserModule.LogOut()];\n\n case 1:\n _a.sent();\n\n location.reload();\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n }); // Subscribe to chainId change\n\n\n _this.provider.on('chainChanged', function (chainId) {\n return __awaiter(_this, void 0, void 0, function () {\n var chainIdNum;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n chainIdNum = parseInt(chainId);\n console.log('chainChanged', chainId, chainIdNum);\n return [4\n /*yield*/\n , this.checkChain(chainIdNum)];\n\n case 1:\n _a.sent();\n\n this.currentChain = chainIdNum;\n this.saveProvider();\n UserModule_1.UserModule.updateChainID(this.currentChain);\n return [2\n /*return*/\n ];\n }\n });\n });\n }); // Subscribe to session disconnection\n\n\n _this.provider.on('disconnect', function (err) {\n console.log('disconnect', err);\n });\n };\n\n var allChainMap = new Map();\n\n try {\n for (var AllChains_1 = __values(allchain_1.AllChains), AllChains_1_1 = AllChains_1.next(); !AllChains_1_1.done; AllChains_1_1 = AllChains_1.next()) {\n var d = AllChains_1_1.value;\n var id = d.id;\n this.rpc[id] = d.rpc;\n allChainMap.set(id, d);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (AllChains_1_1 && !AllChains_1_1.done && (_a = AllChains_1[\"return\"])) _a.call(AllChains_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n try {\n for (var AVAILABLE_CHAINS_1 = __values(config_chain_1.AVAILABLE_CHAINS), AVAILABLE_CHAINS_1_1 = AVAILABLE_CHAINS_1.next(); !AVAILABLE_CHAINS_1_1.done; AVAILABLE_CHAINS_1_1 = AVAILABLE_CHAINS_1.next()) {\n var id = AVAILABLE_CHAINS_1_1.value;\n this.chainMap.set(id, allChainMap.get(id));\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (AVAILABLE_CHAINS_1_1 && !AVAILABLE_CHAINS_1_1.done && (_b = AVAILABLE_CHAINS_1[\"return\"])) _b.call(AVAILABLE_CHAINS_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n this.loadCachedProvider();\n this.instanceCacheMap = new Map(); // UserModule.updateChainID(chainId)\n\n event_bus_1.EventBus.$on(event_bus_1.NEED_LOGIN, this.connect.bind(this));\n }\n\n Object.defineProperty(Blockchain.prototype, \"isWalletConnect\", {\n get: function get() {\n return !!this.walletType && !!this.currentChain;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Blockchain.prototype, \"mallAddress\", {\n get: function get() {\n var _a;\n\n return (_a = config_chain_1.CONTRACT_ADDRESS[this.currentChain]) === null || _a === void 0 ? void 0 : _a.mall;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Blockchain.prototype, \"hexChainId\", {\n get: function get() {\n return chain_util_1.toHexChainId(this.currentChain);\n },\n enumerable: false,\n configurable: true\n });\n\n Blockchain.prototype.chainSelected = function (id) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.chainMap.has(id)) {\n return [2\n /*return*/\n ];\n }\n\n this.currentChain = id;\n if (!this.provider) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.switchEthereumChain()];\n\n case 1:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.connectWallet(true)];\n\n case 3:\n _a.sent();\n\n _a.label = 4;\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Blockchain.prototype.connectWallet = function (isManual) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, chainId, accounts;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n console.log('begin connect to wallet: ', this.walletType, this.currentChain);\n if (!(this.walletType === 1)) return [3\n /*break*/\n , 2];\n _a = this;\n return [4\n /*yield*/\n , this.connectMetaMask()];\n\n case 1:\n _a.provider = _c.sent();\n return [3\n /*break*/\n , 4];\n\n case 2:\n if (!(this.walletType === 2)) return [3\n /*break*/\n , 4];\n _b = this;\n return [4\n /*yield*/\n , this.connectWalletConnect()];\n\n case 3:\n _b.provider = _c.sent();\n _c.label = 4;\n\n case 4:\n if (!this.provider) {\n return [2\n /*return*/\n ];\n }\n\n this.web3 = new web3_1[\"default\"](this.provider);\n return [4\n /*yield*/\n , this.web3.eth.getChainId() // await this.checkChain(chainId)\n ];\n\n case 5:\n chainId = _c.sent(); // await this.checkChain(chainId)\n\n this.subscribeToEvents();\n return [4\n /*yield*/\n , this.web3.eth.getAccounts()];\n\n case 6:\n accounts = _c.sent();\n\n if (accounts && accounts.length > 0) {\n UserModule_1.UserModule.updateAccount(accounts[0]);\n }\n\n if (!this.currentChain) this.currentChain = chainId;\n this.saveProvider();\n UserModule_1.UserModule.updateChainID(chainId);\n UserModule_1.UserModule.updateWalletStatus(true);\n console.log('current login chain: ', chainId);\n console.log('accountsLogin: ', accounts, UserModule_1.UserModule.accountId);\n\n if (isManual) {\n event_bus_1.EventBus.$emit(event_bus_1.NEED_NONCE);\n } else {\n UserModule_1.UserModule.updateStep(1);\n }\n\n return [2\n /*return*/\n , {\n account: accounts[0],\n chainId: chainId\n }];\n }\n });\n });\n };\n /**\n * check whether special chainId is supported by config\n * show chain picker when chainId is not supported and current wallet is meatmask\n * show message box when chainId is not supported and current wallet is wallet connect\n * @param {number} chainId\n * @return {Promise}\n * @private\n */\n\n\n Blockchain.prototype.checkChain = function (chainId) {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.chainMap.has(chainId)) return [3\n /*break*/\n , 5];\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 5]);\n\n return [4\n /*yield*/\n , this.selectChain()];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 3:\n err_1 = _a.sent();\n return [4\n /*yield*/\n , this.disconnect()];\n\n case 4:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Blockchain.prototype.connect = function (isManual) {\n if (isManual === void 0) {\n isManual = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!browser_1.isMobile()) return [3\n /*break*/\n , 1];\n\n if (chain_util_1.hasMetamask()) {\n this.walletType = 1;\n } else {\n this.walletType = 2;\n }\n\n return [3\n /*break*/\n , 5];\n\n case 1:\n if (!chain_util_1.hasMetamask()) return [3\n /*break*/\n , 4];\n if (!(isManual && !this.walletType)) return [3\n /*break*/\n , 3];\n _a = this;\n return [4\n /*yield*/\n , this.selectWallet()];\n\n case 2:\n _a.walletType = _b.sent();\n return [2\n /*return*/\n ];\n\n case 3:\n return [3\n /*break*/\n , 5];\n\n case 4:\n this.walletType = 2;\n _b.label = 5;\n\n case 5:\n if (!(isManual || this.isWalletConnect)) return [3\n /*break*/\n , 7];\n return [4\n /*yield*/\n , this.connectWallet(isManual)];\n\n case 6:\n _b.sent();\n\n _b.label = 7;\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * show wallet picker\n * @return {Promise}\n * @private\n */\n\n\n Blockchain.prototype.selectWallet = function () {\n return new Promise(function (resolve, reject) {\n event_bus_1.EventBus.$emit(event_bus_1.SHOW_CHAIN_MODAL, {\n confirm: function confirm(id) {\n console.log('select wallet: ', id);\n resolve && resolve(id);\n },\n cancel: function cancel(reason) {\n console.log('cancel select wallet: ', reason);\n reject && reject(reason);\n }\n });\n });\n };\n /**\n * show chain picker\n * @return {Promise}\n * @private\n */\n\n\n Blockchain.prototype.selectChain = function () {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n event_bus_1.EventBus.$emit(event_bus_1.NEED_CHANGE_CHAIN, {\n confirm: function confirm(id) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.log('select chain: ', id);\n this.currentChain = id;\n if (!this.provider) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.switchEthereumChain()];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n resolve && resolve(id);\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n cancel: function cancel(reason) {\n console.log('cancel select chain: ', reason);\n reject && reject(reason);\n }\n });\n });\n };\n\n Blockchain.prototype.connectMetaMask = function () {\n return __awaiter(this, void 0, void 0, function () {\n var provider, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n provider = null;\n if (!(typeof window.ethereum !== 'undefined')) return [3\n /*break*/\n , 5];\n provider = window.ethereum;\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , provider.request({\n method: 'eth_requestAccounts'\n })];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n error_1 = _a.sent();\n\n if (error_1.code === -32002) {\n // const hexChainId = toHexChainId(this.currentChain)\n // await provider.request({\n // method: 'wallet_switchEthereumChain',\n // params: [{ chainId: hexChainId }]\n // })\n throw new Error('MeatMask not login, Open MeatMask and login first');\n } else {\n throw new Error('User Rejected');\n }\n\n return [3\n /*break*/\n , 4];\n\n case 4:\n return [3\n /*break*/\n , 6];\n\n case 5:\n if (window.web3) {\n provider = window.web3.currentProvider;\n } else if (window.celo) {\n provider = window.celo;\n } else {\n throw new Error('No Web3 Provider found');\n }\n\n _a.label = 6;\n\n case 6:\n return [2\n /*return*/\n , provider];\n }\n });\n });\n };\n\n Blockchain.prototype.connectWalletConnect = function () {\n return __awaiter(this, void 0, void 0, function () {\n var provider, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n provider = new web3_provider_1[\"default\"]({\n infuraId: process.env.VUE_APP_WALLET_INFURAID,\n rpc: this.rpc\n });\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 5]);\n\n return [4\n /*yield*/\n , provider.enable()];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 3:\n err_2 = _a.sent();\n console.log('connect to wallet connect error: ', err_2);\n return [4\n /*yield*/\n , Promise.reject(err_2)];\n\n case 4:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n , provider];\n }\n });\n });\n };\n\n Blockchain.prototype.getContractInstance = function (address, abi) {\n if (abi === void 0) {\n abi = contracts_1.ERC20ABI;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var instance;\n return __generator(this, function (_a) {\n if (!this.instanceCacheMap.has(address)) {\n instance = new this.web3.eth.Contract(abi, address, {\n from: UserModule_1.UserModule.accountId\n });\n this.instanceCacheMap.set(address, instance);\n }\n\n return [2\n /*return*/\n , this.instanceCacheMap.get(address)];\n });\n });\n };\n\n Blockchain.prototype.clearCachedProvider = function () {\n console.log('clear cached provider');\n localStorage.removeItem(CACHE_KEY);\n };\n\n Blockchain.prototype.loadCachedProvider = function () {\n var dataStr = localStorage.getItem(CACHE_KEY);\n\n if (dataStr) {\n try {\n var data = JSON.parse(dataStr);\n this.walletType = data.walletType;\n\n if (this.chainMap.has(data.chainId)) {\n this.currentChain = data.chainId;\n }\n } catch (err) {\n console.log('err parse cached json');\n this.clearCachedProvider();\n }\n }\n };\n\n Blockchain.prototype.saveProvider = function () {\n var data = {\n walletType: this.walletType,\n chainId: this.currentChain\n };\n localStorage.setItem(CACHE_KEY, JSON.stringify(data));\n };\n\n Blockchain.prototype.disconnect = function () {\n var _a;\n\n return __awaiter(this, void 0, void 0, function () {\n var err_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 3,, 4]);\n\n return [4\n /*yield*/\n , UserModule_1.UserModule.LogOut()];\n\n case 1:\n _b.sent();\n\n return [4\n /*yield*/\n , (_a = this.provider) === null || _a === void 0 ? void 0 : _a.disconnect()];\n\n case 2:\n _b.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n err_3 = _b.sent();\n return [3\n /*break*/\n , 4];\n\n case 4:\n this.currentChain = 0;\n this.walletType = 0;\n this.instanceCacheMap.clear();\n this.clearCachedProvider();\n UserModule_1.UserModule.updateStep(0);\n UserModule_1.UserModule.updateChainID(0);\n UserModule_1.UserModule.updateNonce('');\n UserModule_1.UserModule.updateAccount('');\n UserModule_1.UserModule.updateWalletStatus(false);\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * change chain of metamask\n * @param {number} chainId\n * @param {() => void} cb\n * @return {Promise}\n */\n\n\n Blockchain.prototype.switchEthereumChain = function (chainId, cb) {\n return __awaiter(this, void 0, void 0, function () {\n var hexChainId, _onChainChange, e_3, data, addError_1;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n chainId = chainId || this.currentChain;\n hexChainId = chain_util_1.toHexChainId(chainId);\n\n _onChainChange = function onChainChange(chainId) {\n console.log('switchEthereumChain: ', chainId);\n\n _this.provider.removeListener('chainChanged', _onChainChange);\n\n cb && cb();\n };\n\n this.provider.on('chainChanged', _onChainChange);\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 8]);\n\n return [4\n /*yield*/\n , this.provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{\n chainId: hexChainId\n }]\n })];\n\n case 2:\n _a.sent();\n\n console.log('switch chain success');\n return [3\n /*break*/\n , 8];\n\n case 3:\n e_3 = _a.sent();\n console.log('switch chain error: ', e_3);\n if (!(e_3.code === 4902 || e_3.message.indexOf('Unrecognized chain ID') >= 0)) return [3\n /*break*/\n , 7];\n _a.label = 4;\n\n case 4:\n _a.trys.push([4, 6,, 7]);\n\n data = this.chainMap.get(chainId);\n return [4\n /*yield*/\n , this.provider.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: hexChainId,\n chainName: data.name,\n nativeCurrency: {\n name: data.symbol,\n symbol: data.symbol,\n decimals: data.decimals || 18\n },\n blockExplorerUrls: [data.explorerurl],\n rpcUrls: [data.rpc]\n }]\n })];\n\n case 5:\n _a.sent();\n\n console.log('add chain success');\n return [3\n /*break*/\n , 7];\n\n case 6:\n addError_1 = _a.sent();\n console.error('add chain error: ', addError_1);\n this.provider.removeListener('chainChanged', _onChainChange);\n return [3\n /*break*/\n , 7];\n\n case 7:\n return [3\n /*break*/\n , 8];\n\n case 8:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Blockchain.prototype.getTransactionReceipt = function (txHash) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , this.web3.eth.getTransactionReceipt(txHash)];\n });\n });\n };\n\n Blockchain.prototype.getTxConfirms = function (txhash) {\n return __awaiter(this, void 0, void 0, function () {\n var receipt, latest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.getTransactionReceipt(txhash)];\n\n case 1:\n receipt = _a.sent();\n return [4\n /*yield*/\n , this.web3.eth.getBlockNumber()];\n\n case 2:\n latest = _a.sent();\n return [2\n /*return*/\n , latest - receipt.blockNumber + 1];\n }\n });\n });\n };\n\n Blockchain.prototype.signPresale = function (_a) {\n var type = _a.type,\n paymentTokenAddress = _a.paymentTokenAddress,\n price = _a.price,\n buyerAddress = _a.buyerAddress,\n netId = _a.netId;\n return __awaiter(this, void 0, void 0, function () {\n var nonce, signMsg, _b, signObj, signature;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n nonce = Math.random() * 100000 | 0;\n signMsg = {\n item: type,\n token: paymentTokenAddress,\n price: price,\n salt: nonce\n };\n _b = netId;\n if (_b) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.web3.eth.getChainId()];\n\n case 1:\n _b = _c.sent();\n _c.label = 2;\n\n case 2:\n netId = _b;\n signObj = {\n types: {\n EIP712Domain: EIP721_DOMAIN_DATA,\n set: [{\n name: 'item',\n type: 'uint256'\n }, {\n name: 'token',\n type: 'address'\n }, {\n name: 'price',\n type: 'uint256'\n }, {\n name: 'salt',\n type: 'uint256'\n }]\n },\n primaryType: 'set',\n domain: {\n name: 'BEBoxMall',\n version: '1',\n chainId: netId,\n verifyingContract: this.mallAddress\n },\n message: signMsg\n };\n return [4\n /*yield*/\n , this.signData(signObj, buyerAddress)];\n\n case 3:\n signature = _c.sent();\n return [2\n /*return*/\n , {\n nonce: nonce,\n signature: signature\n }];\n }\n });\n });\n };\n\n Blockchain.prototype.increaseAllowance = function (address, price) {\n return __awaiter(this, void 0, void 0, function () {\n var coinInstance, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.getContractInstance(address)];\n\n case 1:\n coinInstance = _a.sent();\n return [4\n /*yield*/\n , coinInstance.methods.increaseAllowance(this.mallAddress, price).send({\n gas: 1000000\n })];\n\n case 2:\n res = _a.sent();\n console.log('increaseAllowance: ', res);\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * @param {string} address\n * @param {string | null} account\n * @return {Promise}\n */\n\n\n Blockchain.prototype.getBalance = function (address, account) {\n return __awaiter(this, void 0, void 0, function () {\n var coinInstance;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n account = account || UserModule_1.UserModule.accountId;\n return [4\n /*yield*/\n , this.getContractInstance(address)];\n\n case 1:\n coinInstance = _a.sent();\n return [4\n /*yield*/\n , coinInstance.methods.balanceOf(account).call()];\n\n case 2:\n return [2\n /*return*/\n , _a.sent()];\n }\n });\n });\n };\n\n Blockchain.prototype.transferToAccount = function (account, amount, address) {\n return __awaiter(this, void 0, void 0, function () {\n var amountBN, coinInstance;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n amountBN = this.web3.utils.toBN(this.web3.utils.toWei(amount + ''));\n return [4\n /*yield*/\n , this.getContractInstance(address)];\n\n case 1:\n coinInstance = _a.sent();\n return [2\n /*return*/\n , coinInstance.methods.transfer(account, amountBN).send({\n gas: 1000000\n })];\n }\n });\n });\n };\n\n Blockchain.prototype.signData = function (signObj, signer) {\n return __awaiter(this, void 0, void 0, function () {\n var msgParams, from, params, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n msgParams = JSON.stringify(signObj);\n from = signer;\n console.log('clicked, sending personal sign req', 'from', from, msgParams);\n params = [from, msgParams];\n return [4\n /*yield*/\n , this.sendCmd({\n method: 'eth_signTypedData_v4',\n params: params,\n from: from\n })];\n\n case 1:\n result = _a.sent();\n console.log(result);\n return [2\n /*return*/\n , result.result];\n }\n });\n });\n };\n\n Blockchain.prototype.sendCmd = function (_a) {\n var method = _a.method,\n params = _a.params,\n from = _a.from;\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n\n return __generator(this, function (_b) {\n return [2\n /*return*/\n , new Promise(function (resolve, reject) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n _this.web3.currentProvider.sendAsync({\n method: method,\n params: params,\n from: from\n }, function (err, result) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (err) {\n reject && reject(err);\n return [2\n /*return*/\n ];\n }\n\n resolve && resolve(result);\n return [2\n /*return*/\n ];\n });\n });\n });\n })];\n });\n });\n };\n\n Blockchain = __decorate([singleton_decorator_1.singleton], Blockchain);\n return Blockchain;\n}();\n\nexports.Blockchain = Blockchain;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://jcchain/./src/chain/blockchain.ts?"); +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __decorate = this && this.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __values = this && this.__values || function (o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Blockchain = void 0;\n\nvar web3_provider_1 = __importDefault(__webpack_require__(/*! @walletconnect/web3-provider */ \"./node_modules/@walletconnect/web3-provider/dist/esm/index.js\"));\n\nvar web3_1 = __importDefault(__webpack_require__(/*! web3 */ \"./node_modules/web3/dist/web3.min.js\"));\n\nvar config_chain_1 = __webpack_require__(/*! ../configs/config_chain */ \"./src/configs/config_chain.ts\");\n\nvar event_bus_1 = __webpack_require__(/*! ../utils/event-bus */ \"./src/utils/event-bus.ts\");\n\nvar chain_util_1 = __webpack_require__(/*! ../utils/chain.util */ \"./src/utils/chain.util.ts\");\n\nvar allchain_1 = __webpack_require__(/*! ../configs/allchain */ \"./src/configs/allchain.ts\");\n\nvar contracts_1 = __webpack_require__(/*! ../configs/contracts */ \"./src/configs/contracts.ts\");\n\nvar singleton_decorator_1 = __webpack_require__(/*! ../decorator/singleton.decorator */ \"./src/decorator/singleton.decorator.ts\");\n\nvar browser_1 = __webpack_require__(/*! ../utils/browser */ \"./src/utils/browser.ts\");\n\nvar UserModule_1 = __webpack_require__(/*! ../module/UserModule */ \"./src/module/UserModule.ts\");\n\nvar cookies_1 = __webpack_require__(/*! ../utils/cookies */ \"./src/utils/cookies.ts\");\n\nvar EIP721_DOMAIN_DATA = [{\n name: 'name',\n type: 'string'\n}, {\n name: 'version',\n type: 'string'\n}, {\n name: 'chainId',\n type: 'uint256'\n}, {\n name: 'verifyingContract',\n type: 'address'\n}];\nvar CACHE_KEY = 'cebg_chain_cache_key';\n\nvar Blockchain =\n/** @class */\nfunction () {\n function Blockchain() {\n var e_1, _a, e_2, _b;\n\n var _this = this;\n\n this.currentChain = 0; // 0: null, 1: metamask, 2: walletconnect\n\n this.walletType = 0;\n this.dataCached = false;\n this.chainMap = new Map();\n this.rpc = {};\n\n this.subscribeToEvents = function () {\n // Subscribe to accounts change\n _this.provider.on('accountsChanged', function (accounts) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.log('accountsChanged: ', accounts);\n if (!(accounts && accounts.length > 0)) return [3\n /*break*/\n , 2];\n if (!(UserModule_1.UserModule.accountId !== accounts[0])) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , UserModule_1.UserModule.LogOut()];\n\n case 1:\n _a.sent();\n\n location.reload();\n _a.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n }); // Subscribe to chainId change\n\n\n _this.provider.on('chainChanged', function (chainId) {\n return __awaiter(_this, void 0, void 0, function () {\n var chainIdNum;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n chainIdNum = parseInt(chainId);\n console.log('chainChanged', chainId, chainIdNum);\n return [4\n /*yield*/\n , this.checkChain(chainIdNum)];\n\n case 1:\n _a.sent();\n\n this.currentChain = chainIdNum;\n this.saveProvider();\n UserModule_1.UserModule.updateChainID(this.currentChain);\n return [2\n /*return*/\n ];\n }\n });\n });\n }); // Subscribe to session disconnection\n\n\n _this.provider.on('disconnect', function (err) {\n console.log('disconnect', err);\n });\n };\n\n var allChainMap = new Map();\n\n try {\n for (var AllChains_1 = __values(allchain_1.AllChains), AllChains_1_1 = AllChains_1.next(); !AllChains_1_1.done; AllChains_1_1 = AllChains_1.next()) {\n var d = AllChains_1_1.value;\n var id = d.id;\n this.rpc[id] = d.rpc;\n allChainMap.set(id, d);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (AllChains_1_1 && !AllChains_1_1.done && (_a = AllChains_1[\"return\"])) _a.call(AllChains_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n try {\n for (var AVAILABLE_CHAINS_1 = __values(config_chain_1.AVAILABLE_CHAINS), AVAILABLE_CHAINS_1_1 = AVAILABLE_CHAINS_1.next(); !AVAILABLE_CHAINS_1_1.done; AVAILABLE_CHAINS_1_1 = AVAILABLE_CHAINS_1.next()) {\n var id = AVAILABLE_CHAINS_1_1.value;\n this.chainMap.set(id, allChainMap.get(id));\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (AVAILABLE_CHAINS_1_1 && !AVAILABLE_CHAINS_1_1.done && (_b = AVAILABLE_CHAINS_1[\"return\"])) _b.call(AVAILABLE_CHAINS_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n this.loadCachedProvider();\n this.instanceCacheMap = new Map(); // UserModule.updateChainID(chainId)\n\n event_bus_1.EventBus.$on(event_bus_1.NEED_LOGIN, this.connect.bind(this));\n }\n\n Object.defineProperty(Blockchain.prototype, \"isWalletConnect\", {\n get: function get() {\n return !!this.walletType && !!this.currentChain;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Blockchain.prototype, \"mallAddress\", {\n get: function get() {\n var _a;\n\n return (_a = config_chain_1.CONTRACT_ADDRESS[this.currentChain]) === null || _a === void 0 ? void 0 : _a.mall;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Blockchain.prototype, \"hexChainId\", {\n get: function get() {\n return chain_util_1.toHexChainId(this.currentChain);\n },\n enumerable: false,\n configurable: true\n });\n\n Blockchain.prototype.chainSelected = function (id) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.chainMap.has(id)) {\n return [2\n /*return*/\n ];\n }\n\n this.currentChain = id;\n if (!this.provider) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.switchEthereumChain()];\n\n case 1:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , this.connectWallet(true)];\n\n case 3:\n _a.sent();\n\n _a.label = 4;\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Blockchain.prototype.connectWallet = function (isManual) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, chainId, accounts;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n console.log('begin connect to wallet: ', this.walletType, this.currentChain);\n if (!(this.walletType === 1)) return [3\n /*break*/\n , 2];\n _a = this;\n return [4\n /*yield*/\n , this.connectMetaMask()];\n\n case 1:\n _a.provider = _c.sent();\n return [3\n /*break*/\n , 4];\n\n case 2:\n if (!(this.walletType === 2)) return [3\n /*break*/\n , 4];\n _b = this;\n return [4\n /*yield*/\n , this.connectWalletConnect()];\n\n case 3:\n _b.provider = _c.sent();\n _c.label = 4;\n\n case 4:\n if (!this.provider) {\n return [2\n /*return*/\n ];\n }\n\n this.web3 = new web3_1[\"default\"](this.provider);\n return [4\n /*yield*/\n , this.web3.eth.getChainId() // await this.checkChain(chainId)\n ];\n\n case 5:\n chainId = _c.sent(); // await this.checkChain(chainId)\n\n this.subscribeToEvents();\n return [4\n /*yield*/\n , this.web3.eth.getAccounts()];\n\n case 6:\n accounts = _c.sent();\n\n if (accounts && accounts.length > 0) {\n UserModule_1.UserModule.updateAccount(accounts[0]);\n }\n\n if (!this.currentChain) this.currentChain = chainId;\n this.saveProvider();\n UserModule_1.UserModule.updateChainID(chainId);\n UserModule_1.UserModule.updateWalletStatus(true);\n console.log('current login chain: ', chainId);\n console.log('accountsLogin: ', accounts, UserModule_1.UserModule.accountId);\n\n if (isManual) {\n event_bus_1.EventBus.$emit(event_bus_1.NEED_NONCE);\n } else {\n UserModule_1.UserModule.updateStep(1);\n }\n\n return [2\n /*return*/\n , {\n account: accounts[0],\n chainId: chainId\n }];\n }\n });\n });\n };\n /**\n * check whether special chainId is supported by config\n * show chain picker when chainId is not supported and current wallet is meatmask\n * show message box when chainId is not supported and current wallet is wallet connect\n * @param {number} chainId\n * @return {Promise}\n * @private\n */\n\n\n Blockchain.prototype.checkChain = function (chainId) {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.chainMap.has(chainId)) return [3\n /*break*/\n , 5];\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 5]);\n\n return [4\n /*yield*/\n , this.selectChain()];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 3:\n err_1 = _a.sent();\n return [4\n /*yield*/\n , this.disconnect()];\n\n case 4:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Blockchain.prototype.connect = function (isManual) {\n if (isManual === void 0) {\n isManual = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!browser_1.isMobile()) return [3\n /*break*/\n , 1];\n\n if (chain_util_1.hasMetamask()) {\n this.walletType = 1;\n } else {\n this.walletType = 2;\n }\n\n return [3\n /*break*/\n , 5];\n\n case 1:\n if (!chain_util_1.hasMetamask()) return [3\n /*break*/\n , 4];\n if (!(isManual && !this.walletType)) return [3\n /*break*/\n , 3];\n _a = this;\n return [4\n /*yield*/\n , this.selectWallet()];\n\n case 2:\n _a.walletType = _b.sent();\n return [2\n /*return*/\n ];\n\n case 3:\n return [3\n /*break*/\n , 5];\n\n case 4:\n this.walletType = 2;\n _b.label = 5;\n\n case 5:\n if (!(isManual || this.isWalletConnect)) return [3\n /*break*/\n , 7];\n return [4\n /*yield*/\n , this.connectWallet(isManual)];\n\n case 6:\n _b.sent();\n\n _b.label = 7;\n\n case 7:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * show wallet picker\n * @return {Promise}\n * @private\n */\n\n\n Blockchain.prototype.selectWallet = function () {\n return new Promise(function (resolve, reject) {\n event_bus_1.EventBus.$emit(event_bus_1.SHOW_CHAIN_MODAL, {\n confirm: function confirm(id) {\n console.log('select wallet: ', id);\n resolve && resolve(id);\n },\n cancel: function cancel(reason) {\n console.log('cancel select wallet: ', reason);\n reject && reject(reason);\n }\n });\n });\n };\n /**\n * show chain picker\n * @return {Promise}\n * @private\n */\n\n\n Blockchain.prototype.selectChain = function () {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n event_bus_1.EventBus.$emit(event_bus_1.NEED_CHANGE_CHAIN, {\n confirm: function confirm(id) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.log('select chain: ', id);\n this.currentChain = id;\n if (!this.provider) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.switchEthereumChain()];\n\n case 1:\n _a.sent();\n\n _a.label = 2;\n\n case 2:\n resolve && resolve(id);\n return [2\n /*return*/\n ];\n }\n });\n });\n },\n cancel: function cancel(reason) {\n console.log('cancel select chain: ', reason);\n reject && reject(reason);\n }\n });\n });\n };\n\n Blockchain.prototype.connectMetaMask = function () {\n return __awaiter(this, void 0, void 0, function () {\n var provider, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n provider = null;\n if (!(typeof window.ethereum !== 'undefined')) return [3\n /*break*/\n , 5];\n provider = window.ethereum;\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , provider.request({\n method: 'eth_requestAccounts'\n })];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n error_1 = _a.sent();\n\n if (error_1.code === -32002) {\n // const hexChainId = toHexChainId(this.currentChain)\n // await provider.request({\n // method: 'wallet_switchEthereumChain',\n // params: [{ chainId: hexChainId }]\n // })\n throw new Error('MeatMask not login, Open MeatMask and login first');\n } else {\n throw new Error('User Rejected');\n }\n\n return [3\n /*break*/\n , 4];\n\n case 4:\n return [3\n /*break*/\n , 6];\n\n case 5:\n if (window.web3) {\n provider = window.web3.currentProvider;\n } else if (window.celo) {\n provider = window.celo;\n } else {\n throw new Error('No Web3 Provider found');\n }\n\n _a.label = 6;\n\n case 6:\n return [2\n /*return*/\n , provider];\n }\n });\n });\n };\n\n Blockchain.prototype.connectWalletConnect = function () {\n return __awaiter(this, void 0, void 0, function () {\n var provider, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n provider = new web3_provider_1[\"default\"]({\n infuraId: process.env.VUE_APP_WALLET_INFURAID,\n rpc: this.rpc\n });\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 5]);\n\n return [4\n /*yield*/\n , provider.enable()];\n\n case 2:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 3:\n err_2 = _a.sent();\n console.log('connect to wallet connect error: ', err_2);\n return [4\n /*yield*/\n , Promise.reject(err_2)];\n\n case 4:\n _a.sent();\n\n return [3\n /*break*/\n , 5];\n\n case 5:\n return [2\n /*return*/\n , provider];\n }\n });\n });\n };\n\n Blockchain.prototype.getContractInstance = function (address, abi) {\n if (abi === void 0) {\n abi = contracts_1.ERC20ABI;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var instance;\n return __generator(this, function (_a) {\n if (!this.instanceCacheMap.has(address)) {\n instance = new this.web3.eth.Contract(abi, address, {\n from: UserModule_1.UserModule.accountId\n });\n this.instanceCacheMap.set(address, instance);\n }\n\n return [2\n /*return*/\n , this.instanceCacheMap.get(address)];\n });\n });\n };\n\n Blockchain.prototype.clearCachedProvider = function () {\n console.log('clear cached provider');\n cookies_1.removeItem(CACHE_KEY);\n };\n\n Blockchain.prototype.loadCachedProvider = function () {\n var dataStr = cookies_1.getItem(CACHE_KEY);\n\n if (dataStr) {\n try {\n var data = JSON.parse(dataStr);\n this.walletType = data.walletType;\n\n if (this.chainMap.has(data.chainId)) {\n this.currentChain = data.chainId;\n }\n } catch (err) {\n console.log('err parse cached json');\n this.clearCachedProvider();\n }\n }\n };\n\n Blockchain.prototype.saveProvider = function () {\n var data = {\n walletType: this.walletType,\n chainId: this.currentChain\n };\n cookies_1.setItem(CACHE_KEY, JSON.stringify(data));\n };\n\n Blockchain.prototype.disconnect = function () {\n var _a;\n\n return __awaiter(this, void 0, void 0, function () {\n var err_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 3,, 4]);\n\n return [4\n /*yield*/\n , UserModule_1.UserModule.LogOut()];\n\n case 1:\n _b.sent();\n\n return [4\n /*yield*/\n , (_a = this.provider) === null || _a === void 0 ? void 0 : _a.disconnect()];\n\n case 2:\n _b.sent();\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n err_3 = _b.sent();\n return [3\n /*break*/\n , 4];\n\n case 4:\n this.currentChain = 0;\n this.walletType = 0;\n this.instanceCacheMap.clear();\n this.clearCachedProvider();\n UserModule_1.UserModule.updateStep(0);\n UserModule_1.UserModule.updateChainID(0);\n UserModule_1.UserModule.updateNonce('');\n UserModule_1.UserModule.updateAccount('');\n UserModule_1.UserModule.updateWalletStatus(false);\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * change chain of metamask\n * @param {number} chainId\n * @param {() => void} cb\n * @return {Promise}\n */\n\n\n Blockchain.prototype.switchEthereumChain = function (chainId, cb) {\n return __awaiter(this, void 0, void 0, function () {\n var hexChainId, _onChainChange, e_3, data, addError_1;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n chainId = chainId || this.currentChain;\n hexChainId = chain_util_1.toHexChainId(chainId);\n\n _onChainChange = function onChainChange(chainId) {\n console.log('switchEthereumChain: ', chainId);\n\n _this.provider.removeListener('chainChanged', _onChainChange);\n\n cb && cb();\n };\n\n this.provider.on('chainChanged', _onChainChange);\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 8]);\n\n return [4\n /*yield*/\n , this.provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{\n chainId: hexChainId\n }]\n })];\n\n case 2:\n _a.sent();\n\n console.log('switch chain success');\n return [3\n /*break*/\n , 8];\n\n case 3:\n e_3 = _a.sent();\n console.log('switch chain error: ', e_3);\n if (!(e_3.code === 4902 || e_3.message.indexOf('Unrecognized chain ID') >= 0)) return [3\n /*break*/\n , 7];\n _a.label = 4;\n\n case 4:\n _a.trys.push([4, 6,, 7]);\n\n data = this.chainMap.get(chainId);\n return [4\n /*yield*/\n , this.provider.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: hexChainId,\n chainName: data.name,\n nativeCurrency: {\n name: data.symbol,\n symbol: data.symbol,\n decimals: data.decimals || 18\n },\n blockExplorerUrls: [data.explorerurl],\n rpcUrls: [data.rpc]\n }]\n })];\n\n case 5:\n _a.sent();\n\n console.log('add chain success');\n return [3\n /*break*/\n , 7];\n\n case 6:\n addError_1 = _a.sent();\n console.error('add chain error: ', addError_1);\n this.provider.removeListener('chainChanged', _onChainChange);\n return [3\n /*break*/\n , 7];\n\n case 7:\n return [3\n /*break*/\n , 8];\n\n case 8:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Blockchain.prototype.getTransactionReceipt = function (txHash) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2\n /*return*/\n , this.web3.eth.getTransactionReceipt(txHash)];\n });\n });\n };\n\n Blockchain.prototype.getTxConfirms = function (txhash) {\n return __awaiter(this, void 0, void 0, function () {\n var receipt, latest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.getTransactionReceipt(txhash)];\n\n case 1:\n receipt = _a.sent();\n return [4\n /*yield*/\n , this.web3.eth.getBlockNumber()];\n\n case 2:\n latest = _a.sent();\n return [2\n /*return*/\n , latest - receipt.blockNumber + 1];\n }\n });\n });\n };\n\n Blockchain.prototype.signPresale = function (_a) {\n var type = _a.type,\n paymentTokenAddress = _a.paymentTokenAddress,\n price = _a.price,\n buyerAddress = _a.buyerAddress,\n netId = _a.netId;\n return __awaiter(this, void 0, void 0, function () {\n var nonce, signMsg, _b, signObj, signature;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n nonce = Math.random() * 100000 | 0;\n signMsg = {\n item: type,\n token: paymentTokenAddress,\n price: price,\n salt: nonce\n };\n _b = netId;\n if (_b) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.web3.eth.getChainId()];\n\n case 1:\n _b = _c.sent();\n _c.label = 2;\n\n case 2:\n netId = _b;\n signObj = {\n types: {\n EIP712Domain: EIP721_DOMAIN_DATA,\n set: [{\n name: 'item',\n type: 'uint256'\n }, {\n name: 'token',\n type: 'address'\n }, {\n name: 'price',\n type: 'uint256'\n }, {\n name: 'salt',\n type: 'uint256'\n }]\n },\n primaryType: 'set',\n domain: {\n name: 'BEBoxMall',\n version: '1',\n chainId: netId,\n verifyingContract: this.mallAddress\n },\n message: signMsg\n };\n return [4\n /*yield*/\n , this.signData(signObj, buyerAddress)];\n\n case 3:\n signature = _c.sent();\n return [2\n /*return*/\n , {\n nonce: nonce,\n signature: signature\n }];\n }\n });\n });\n };\n\n Blockchain.prototype.increaseAllowance = function (address, price) {\n return __awaiter(this, void 0, void 0, function () {\n var coinInstance, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.getContractInstance(address)];\n\n case 1:\n coinInstance = _a.sent();\n return [4\n /*yield*/\n , coinInstance.methods.increaseAllowance(this.mallAddress, price).send({\n gas: 1000000\n })];\n\n case 2:\n res = _a.sent();\n console.log('increaseAllowance: ', res);\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * @param {string} address\n * @param {string | null} account\n * @return {Promise}\n */\n\n\n Blockchain.prototype.getBalance = function (address, account) {\n return __awaiter(this, void 0, void 0, function () {\n var coinInstance;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n account = account || UserModule_1.UserModule.accountId;\n return [4\n /*yield*/\n , this.getContractInstance(address)];\n\n case 1:\n coinInstance = _a.sent();\n return [4\n /*yield*/\n , coinInstance.methods.balanceOf(account).call()];\n\n case 2:\n return [2\n /*return*/\n , _a.sent()];\n }\n });\n });\n };\n\n Blockchain.prototype.transferToAccount = function (account, amount, address) {\n return __awaiter(this, void 0, void 0, function () {\n var amountBN, coinInstance;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n amountBN = this.web3.utils.toBN(this.web3.utils.toWei(amount + ''));\n return [4\n /*yield*/\n , this.getContractInstance(address)];\n\n case 1:\n coinInstance = _a.sent();\n return [2\n /*return*/\n , coinInstance.methods.transfer(account, amountBN).send({\n gas: 1000000\n })];\n }\n });\n });\n };\n\n Blockchain.prototype.signData = function (signObj, signer) {\n return __awaiter(this, void 0, void 0, function () {\n var msgParams, from, params, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n msgParams = JSON.stringify(signObj);\n from = signer;\n console.log('clicked, sending personal sign req', 'from', from, msgParams);\n params = [from, msgParams];\n return [4\n /*yield*/\n , this.sendCmd({\n method: 'eth_signTypedData_v4',\n params: params,\n from: from\n })];\n\n case 1:\n result = _a.sent();\n console.log(result);\n return [2\n /*return*/\n , result.result];\n }\n });\n });\n };\n\n Blockchain.prototype.sendCmd = function (_a) {\n var method = _a.method,\n params = _a.params,\n from = _a.from;\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n\n return __generator(this, function (_b) {\n return [2\n /*return*/\n , new Promise(function (resolve, reject) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n _this.web3.currentProvider.sendAsync({\n method: method,\n params: params,\n from: from\n }, function (err, result) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (err) {\n reject && reject(err);\n return [2\n /*return*/\n ];\n }\n\n resolve && resolve(result);\n return [2\n /*return*/\n ];\n });\n });\n });\n })];\n });\n });\n };\n\n Blockchain = __decorate([singleton_decorator_1.singleton], Blockchain);\n return Blockchain;\n}();\n\nexports.Blockchain = Blockchain;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://jcchain/./src/chain/blockchain.ts?"); /***/ }), @@ -5171,7 +5171,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.removeToken = exports.setToken = exports.getToken = exports.setMini = exports.getMini = exports.setSize = exports.getSize = exports.setLanguage = exports.getLanguage = void 0;\n\nvar js_cookie_1 = __importDefault(__webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/src/js.cookie.js\"));\n\nvar languageKey = 'language';\n\nvar getLanguage = function getLanguage() {\n return js_cookie_1[\"default\"].get(languageKey);\n};\n\nexports.getLanguage = getLanguage;\n\nvar setLanguage = function setLanguage(language) {\n return js_cookie_1[\"default\"].set(languageKey, language);\n};\n\nexports.setLanguage = setLanguage;\nvar sizeKey = 'size';\n\nvar getSize = function getSize() {\n return js_cookie_1[\"default\"].get(sizeKey);\n};\n\nexports.getSize = getSize;\n\nvar setSize = function setSize(size) {\n return js_cookie_1[\"default\"].set(sizeKey, size);\n};\n\nexports.setSize = setSize;\nvar miniKey = 'mini';\n\nvar getMini = function getMini() {\n return js_cookie_1[\"default\"].get(miniKey);\n};\n\nexports.getMini = getMini;\n\nvar setMini = function setMini(mini) {\n return js_cookie_1[\"default\"].set(miniKey, mini);\n};\n\nexports.setMini = setMini; // User\n\nvar tokenKey = 'vue_typescript_access_token';\n\nvar getToken = function getToken() {\n return localStorage.getItem(tokenKey);\n};\n\nexports.getToken = getToken;\n\nvar setToken = function setToken(token) {\n return localStorage.setItem(tokenKey, token);\n};\n\nexports.setToken = setToken;\n\nvar removeToken = function removeToken() {\n return localStorage.removeItem(tokenKey);\n};\n\nexports.removeToken = removeToken;\n\n//# sourceURL=webpack://jcchain/./src/utils/cookies.ts?"); +eval("\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.removeItem = exports.setItem = exports.getItem = exports.removeToken = exports.setToken = exports.getToken = exports.setMini = exports.getMini = exports.setSize = exports.getSize = exports.setLanguage = exports.getLanguage = void 0;\n\nvar js_cookie_1 = __importDefault(__webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/src/js.cookie.js\"));\n\nvar languageKey = 'language';\n\nvar getLanguage = function getLanguage() {\n return js_cookie_1[\"default\"].get(languageKey);\n};\n\nexports.getLanguage = getLanguage;\n\nvar setLanguage = function setLanguage(language) {\n return js_cookie_1[\"default\"].set(languageKey, language);\n};\n\nexports.setLanguage = setLanguage;\nvar sizeKey = 'size';\n\nvar getSize = function getSize() {\n return js_cookie_1[\"default\"].get(sizeKey);\n};\n\nexports.getSize = getSize;\n\nvar setSize = function setSize(size) {\n return js_cookie_1[\"default\"].set(sizeKey, size);\n};\n\nexports.setSize = setSize;\nvar miniKey = 'mini';\n\nvar getMini = function getMini() {\n return js_cookie_1[\"default\"].get(miniKey);\n};\n\nexports.getMini = getMini;\n\nvar setMini = function setMini(mini) {\n return js_cookie_1[\"default\"].set(miniKey, mini);\n};\n\nexports.setMini = setMini; // User\n\nvar tokenKey = 'vue_typescript_access_token'; // export const getToken = () => localStorage.getItem(tokenKey)\n// export const setToken = (token: string) => localStorage.setItem(tokenKey, token)\n// export const removeToken = () => localStorage.removeItem(tokenKey)\n// export const getItem = (key: string) => localStorage.getItem(key)\n// export const setItem = (key: string, val: string) => localStorage.setItem(miniKey, val)\n// export const removeItem = (key: string) => localStorage.removeItem(key)\n\nvar getToken = function getToken() {\n return js_cookie_1[\"default\"].get(tokenKey);\n};\n\nexports.getToken = getToken;\n\nvar setToken = function setToken(token) {\n return js_cookie_1[\"default\"].set(tokenKey, token);\n};\n\nexports.setToken = setToken;\n\nvar removeToken = function removeToken() {\n return js_cookie_1[\"default\"].remove(tokenKey);\n};\n\nexports.removeToken = removeToken;\n\nvar getItem = function getItem(key) {\n return js_cookie_1[\"default\"].get(key);\n};\n\nexports.getItem = getItem;\n\nvar setItem = function setItem(key, val) {\n return js_cookie_1[\"default\"].set(key, val);\n};\n\nexports.setItem = setItem;\n\nvar removeItem = function removeItem(key) {\n return js_cookie_1[\"default\"].remove(key);\n};\n\nexports.removeItem = removeItem;\n\n//# sourceURL=webpack://jcchain/./src/utils/cookies.ts?"); /***/ }), diff --git a/src/desktop/privacy.html b/src/desktop/privacy.html index e1a0c8d..ab3616c 100755 --- a/src/desktop/privacy.html +++ b/src/desktop/privacy.html @@ -20,16 +20,16 @@ /> diff --git a/src/desktop/terms.html b/src/desktop/terms.html index e000619..78ebaf1 100755 --- a/src/desktop/terms.html +++ b/src/desktop/terms.html @@ -20,16 +20,16 @@ /> diff --git a/src/mobile/img/nft/hero/hero7-d@2x.png b/src/mobile/img/nft/hero/hero7-d@2x.png index 56be97b..a6821e1 100755 Binary files a/src/mobile/img/nft/hero/hero7-d@2x.png and b/src/mobile/img/nft/hero/hero7-d@2x.png differ diff --git a/src/mobile/privacy.html b/src/mobile/privacy.html index bd0da09..3faf416 100755 --- a/src/mobile/privacy.html +++ b/src/mobile/privacy.html @@ -21,19 +21,19 @@ diff --git a/src/mobile/terms.html b/src/mobile/terms.html index 5741eb6..b75c1de 100755 --- a/src/mobile/terms.html +++ b/src/mobile/terms.html @@ -20,19 +20,19 @@ Terms | CEBG: CRYPTO ELITEā€˜S BATTLEGROUNDS diff --git a/webpack.desktop.js b/webpack.desktop.js index 160a3a6..63d17b5 100644 --- a/webpack.desktop.js +++ b/webpack.desktop.js @@ -46,7 +46,16 @@ module.exports = { }, }, { - test: /\.(woff|ttf|svg|eot|ico)$/, + test: /\.ico$/i, + dependency: { not: ['url'] }, + loader: 'url-loader', + options: { + limit: 1, + name: '[name].[hash:5].[ext]', + }, + }, + { + test: /\.(woff|ttf|svg|eot)$/, use: ['url-loader'], }, { diff --git a/webpack.mobile.js b/webpack.mobile.js index 590f6d3..cabe2eb 100644 --- a/webpack.mobile.js +++ b/webpack.mobile.js @@ -47,7 +47,16 @@ module.exports = { }, }, { - test: /\.(woff|ttf|svg|eot|ico)$/, + test: /\.ico$/i, + dependency: { not: ['url'] }, + loader: 'url-loader', + options: { + limit: 1, + name: '[name].[hash:5].[ext]', + }, + }, + { + test: /\.(woff|ttf|svg|eot)$/, use: ['url-loader'], }, {