{"version":3,"sources":["webpack:///./src/App/utils/shouldShowExplorer.ts","webpack:///./node_modules/qr.js/lib/mode.js","webpack:///./node_modules/qr.js/lib/ErrorCorrectLevel.js","webpack:///./node_modules/qr.js/lib/Polynomial.js","webpack:///./node_modules/qr.js/lib/math.js","webpack:///./node_modules/react-qr-svg/dist-modules/index.js","webpack:///./node_modules/react-qr-svg/dist-modules/components/qr-svg.js","webpack:///./node_modules/qr.js/lib/QRCode.js","webpack:///./node_modules/qr.js/lib/8BitByte.js","webpack:///./node_modules/qr.js/lib/RSBlock.js","webpack:///./node_modules/qr.js/lib/BitBuffer.js","webpack:///./node_modules/qr.js/lib/util.js","webpack:///./src/App/utils/toEther.ts","webpack:///./src/Address/components/Address/Address.tsx","webpack:///./src/Address/components/Address/Address.styles.ts","webpack:///./src/Address/containers/AddressPageContainer/AddressPageContainer.tsx","webpack:///./src/Address/containers/AddressPageContainer/AddressPageContainer.styles.ts","webpack:///./src/Transactions/containers/TransactionsPageContainer/TransactionsPageContainer.tsx","webpack:///./src/Transactions/containers/TransactionsPageContainer/TransactionsPageContainer.styles.ts"],"names":["whitelist","shouldShowExplorer","includes","window","location","host","module","exports","MODE_NUMBER","MODE_ALPHA_NUM","MODE_8BIT_BYTE","MODE_KANJI","L","M","Q","H","math","QRPolynomial","num","shift","undefined","length","Error","offset","this","Array","i","prototype","get","index","getLength","multiply","e","j","gexp","glog","mod","ratio","QRMath","n","LOG_TABLE","EXP_TABLE","_qrSvg","QRCode","Object","defineProperty","value","_extends","assign","target","arguments","source","key","hasOwnProperty","call","_react2","_interopRequireDefault","_propTypes2","obj","__esModule","default","_objectWithoutProperties","keys","indexOf","QRCodeImpl","ErrorCorrectLevel","_ref","_ref$value","_ref$level","level","_ref$bgColor","bgColor","_ref$fgColor","fgColor","_ref$cellClassPrefix","cellClassPrefix","otherProps","qrcode","addData","make","cells","modules","cellClassName","emptyCellClassName","filledCellClassName","cellIndex","createElement","shapeRendering","viewBox","join","map","row","rowIndex","cell","colIndex","className","classNameProp","fill","styleProp","style","height","width","x","y","propTypes","string","isRequired","size","number","oneOf","BitByte","RSBlock","BitBuffer","util","Polynomial","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","proto","data","newData","push","isDark","col","getModuleCount","rsBlocks","getRSBlocks","buffer","totalDataCount","dataCount","put","mode","getLengthInBits","write","makeImpl","getBestMaskPattern","test","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","c","minLostPoint","pattern","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","beginFill","moveTo","lineTo","endFill","pos","getPatternPosition","bits","getBCHTypeNumber","Math","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","max","rsPoly","getErrorCorrectPolynomial","modPoly","modIndex","totalCodeCount","QR8bitByte","charCodeAt","ECL","QRRSBlock","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","list","count","QRBitBuffer","bufIndex","bit","Mode","QRMaskPattern","QRUtil","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","d","getBCHDigit","digit","errorCorrectLength","a","type","qrCode","sameCount","darkCount","abs","toEther","wei","precision","stripEndingZeros","disableRound","match","replace","toString","amt","padStart","decimalIdx","precisionIdx","decimal","slice","parseInt","LightTooltip","theme","tooltip","backgroundColor","palette","common","white","color","boxShadow","shadows","fontSize","componentDidUpdate","componentWillUnmount","viewCode","hash","url","open","renderAddress","address","rows","title","id","content","RectLoader","numberStringWithComma","balance","isSmartContract","variant","href","onClick","Address","Responsive2ColumnTable","render","classes","retry","error","ErrorDisplay","square","elevation","injectIntl","_","chart","crumbs","Routes","Home","AddressInfo","transactionEl","state","addressState","loading","transactionState","hasMore","showPagination","fetchAddressData","setState","subscriber","unsubscribe","observable","subscribe","fetchTransactionData","queryParams","p","tid","transSubscriber","transactions","renderNavigation","intl","isIvoting","first","manyText","formatMessage","query","hideLast","totalPages","currentPage","reset","props","search","history","getPath","params","holdPosition","renderSmallButtons","xsDown","renderButtons","container","alignItems","justify","grid","button","label","viewInternalBtn","parse","ignoreQueryPrefix","getDerivedStateFromProps","componentDidMount","current","scrollIntoView","renderIvotingAddresspage","navigationComponent","hasTransaction","pageContainer","PageHeader","breadcrumbs","section","ref","TransactionsTable","disabledAddress","paginationContainer","buttons","addressInfoText","whiteSpace","mapStateToProps","toLowerCase","withRouteQuery","dispatch","addressActions","create","queryTransactions","spacing","breakpoints","padding","unit","marginBottom","justifyContent","marginLeft","minHeight","lineHeight","fontWeight","down","Transactions","queryTransaction","subscription","transactionActions","limit","blockNumber","Unconnected","flex","textAlign","margin","marginTop"],"mappings":"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","file":"static/js/Transactions.2f687d8d.chunk.js","sourcesContent":["const whitelist = [\n  'scan.thundercore.com',\n  'thunderscan.mainnet-dev.dev.tt-eng.com',\n  'localhost:3004',\n]\nexport const shouldShowExplorer = () =>\n  whitelist.includes(window.location.host)\n","module.exports = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n","module.exports = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n","var math = require('./math');\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= math.gexp(math.glog(this.get(i) ) + math.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = math.glog(this.get(0) ) - math.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= math.gexp(math.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\nmodule.exports = QRPolynomial;\n","var QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\nmodule.exports = QRMath;\n","\"use strict\";\n\nvar _qrSvg = require(\"./components/qr-svg\");\n\nmodule.exports = { QRCode: _qrSvg.QRCode };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.QRCode = QRCode;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar QRCodeImpl = require(\"qr.js/lib/QRCode\");\nvar ErrorCorrectLevel = require(\"qr.js/lib/ErrorCorrectLevel\");\n\nfunction QRCode() {\n    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    var _ref$value = _ref.value,\n        value = _ref$value === undefined ? \"\" : _ref$value,\n        _ref$level = _ref.level,\n        level = _ref$level === undefined ? \"L\" : _ref$level,\n        _ref$bgColor = _ref.bgColor,\n        bgColor = _ref$bgColor === undefined ? \"#FFFFFF\" : _ref$bgColor,\n        _ref$fgColor = _ref.fgColor,\n        fgColor = _ref$fgColor === undefined ? \"#000000\" : _ref$fgColor,\n        _ref$cellClassPrefix = _ref.cellClassPrefix,\n        cellClassPrefix = _ref$cellClassPrefix === undefined ? \"\" : _ref$cellClassPrefix,\n        otherProps = _objectWithoutProperties(_ref, [\"value\", \"level\", \"bgColor\", \"fgColor\", \"cellClassPrefix\"]);\n\n    // adapted from https://github.com/zpao/qrcode.react/blob/master/src/index.js\n    var qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n    qrcode.addData(value);\n    qrcode.make();\n\n    var cells = qrcode.modules;\n\n    var cellClassName = cellClassPrefix && cellClassPrefix + \"-cell\";\n    var emptyCellClassName = cellClassPrefix && cellClassName + \" \" + cellClassPrefix + \"-cell-empty\";\n    var filledCellClassName = cellClassPrefix && cellClassName + \" \" + cellClassPrefix + \"-cell-filled\";\n\n    var cellIndex = 0; // we use simple order as a key just to avoid the key warning here\n\n    return _react2.default.createElement(\n        \"svg\",\n        _extends({\n            shapeRendering: \"crispEdges\",\n            viewBox: [0, 0, cells.length, cells.length].join(\" \")\n        }, otherProps),\n        cells.map(function (row, rowIndex) {\n            return row.map(function (cell, colIndex) {\n                var className = cell ? filledCellClassName : emptyCellClassName;\n                var classNameProp = className ? { className: className } : null;\n\n                // Only use the fill if no cellClassPrefix was set. See https://github.com/no23reason/react-qr-svg/issues/136 for reasoning.\n                var fill = !classNameProp && (cell ? fgColor : bgColor);\n                var styleProp = fill ? { style: { fill: fill } } : null;\n                return _react2.default.createElement(\"rect\", _extends({\n                    height: 1,\n                    key: cellIndex++ // string was too slow here\n                }, styleProp, classNameProp, {\n                    width: 1,\n                    x: colIndex,\n                    y: rowIndex\n                }));\n            });\n        })\n    );\n}\n\nQRCode.propTypes = {\n    value: _propTypes2.default.string.isRequired,\n    size: _propTypes2.default.number,\n    level: _propTypes2.default.oneOf([\"L\", \"M\", \"Q\", \"H\"]),\n    bgColor: _propTypes2.default.string,\n    fgColor: _propTypes2.default.string,\n    cellClassPrefix: _propTypes2.default.string\n};","var BitByte = require('./8BitByte');\nvar RSBlock = require('./RSBlock');\nvar BitBuffer = require('./BitBuffer');\nvar util = require('./util');\nvar Polynomial = require('./Polynomial');\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = [];\n}\n\n// for client side minification\nvar proto = QRCode.prototype;\n\nproto.addData = function(data) {\n\tvar newData = new BitByte(data);\n\tthis.dataList.push(newData);\n\tthis.dataCache = null;\n};\n\nproto.isDark = function(row, col) {\n\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\tthrow new Error(row + \",\" + col);\n\t}\n\treturn this.modules[row][col];\n};\n\nproto.getModuleCount = function() {\n\treturn this.moduleCount;\n};\n\nproto.make = function() {\n\t// Calculate automatically typeNumber if provided is < 1\n\tif (this.typeNumber < 1 ){\n\t\tvar typeNumber = 1;\n\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\tvar buffer = new BitBuffer();\n\t\t\tvar totalDataCount = 0;\n\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\tvar data = this.dataList[i];\n\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\tdata.write(buffer);\n\t\t\t}\n\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.typeNumber = typeNumber;\n\t}\n\tthis.makeImpl(false, this.getBestMaskPattern() );\n};\n\nproto.makeImpl = function(test, maskPattern) {\n\t\n\tthis.moduleCount = this.typeNumber * 4 + 17;\n\tthis.modules = new Array(this.moduleCount);\n\t\n\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\n\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\n\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t}\n\t}\n\n\tthis.setupPositionProbePattern(0, 0);\n\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\tthis.setupPositionAdjustPattern();\n\tthis.setupTimingPattern();\n\tthis.setupTypeInfo(test, maskPattern);\n\t\n\tif (this.typeNumber >= 7) {\n\t\tthis.setupTypeNumber(test);\n\t}\n\n\tif (this.dataCache == null) {\n\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t}\n\n\tthis.mapData(this.dataCache, maskPattern);\n};\n\nproto.setupPositionProbePattern = function(row, col)  {\n\t\n\tfor (var r = -1; r <= 7; r++) {\n\t\t\n\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\n\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\n\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\n\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t}\n\t\t}\t\t\n\t}\t\t\n};\n\nproto.getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i++) {\n\t\t\n\t\tthis.makeImpl(true, i);\n\n\t\tvar lostPoint = util.getLostPoint(this);\n\n\t\tif (i == 0 || minLostPoint >  lostPoint) {\n\t\t\tminLostPoint = lostPoint;\n\t\t\tpattern = i;\n\t\t}\n\t}\n\n\treturn pattern;\n};\n\nproto.createMovieClip = function(target_mc, instance_name, depth) {\n\n\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\tvar cs = 1;\n\n\tthis.make();\n\n\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\n\t\tvar y = row * cs;\n\t\t\n\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\n\t\t\tvar x = col * cs;\n\t\t\tvar dark = this.modules[row][col];\n\t\t\n\t\t\tif (dark) {\n\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\tqr_mc.endFill();\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn qr_mc;\n};\n\nproto.setupTimingPattern = function() {\n\t\n\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\tif (this.modules[r][6] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\tif (this.modules[6][c] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[6][c] = (c % 2 == 0);\n\t}\n};\n\nproto.setupPositionAdjustPattern = function() {\n\n\tvar pos = util.getPatternPosition(this.typeNumber);\n\t\n\tfor (var i = 0; i < pos.length; i++) {\n\t\n\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\n\t\t\tvar row = pos[i];\n\t\t\tvar col = pos[j];\n\t\t\t\n\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\n\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\n\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nproto.setupTypeNumber = function(test) {\n\n\tvar bits = util.getBCHTypeNumber(this.typeNumber);\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n};\n\nproto.setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\tvar bits = util.getBCHTypeInfo(data);\n\n\t// vertical\t\t\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t\tif (i < 6) {\n\t\t\tthis.modules[i][8] = mod;\n\t\t} else if (i < 8) {\n\t\t\tthis.modules[i + 1][8] = mod;\n\t\t} else {\n\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t}\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\n\t\tif (i < 8) {\n\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t} else if (i < 9) {\n\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t} else {\n\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t}\n\t}\n\n\t// fixed module\n\tthis.modules[this.moduleCount - 8][8] = (!test);\n};\n\nproto.mapData = function(data, maskPattern) {\n\t\n\tvar inc = -1;\n\tvar row = this.moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\t\n\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\n\t\tif (col == 6) col--;\n\n\t\twhile (true) {\n\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\n\t\t\t\t\tvar dark = false;\n\n\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar mask = util.getMask(maskPattern, row, col - c);\n\n\t\t\t\t\tif (mask) {\n\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\tbitIndex--;\n\n\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\trow += inc;\n\n\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\trow -= inc;\n\t\t\t\tinc = -inc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new BitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+  totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n};\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = util.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n            var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n};\n\nmodule.exports = QRCode;\n\n","var mode = require('./mode');\n\nfunction QR8bitByte(data) {\n\tthis.mode = mode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\nmodule.exports = QR8bitByte;\n\n","// ErrorCorrectLevel\nvar ECL = require('./ErrorCorrectLevel');\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount  = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount  = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase ECL.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase ECL.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase ECL.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase ECL.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\nmodule.exports = QRRSBlock;\n","function QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n\nmodule.exports = QRBitBuffer;\n","var Mode = require('./mode');\nvar Polynomial = require('./Polynomial');\nvar math = require('./math');\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\nvar QRUtil = {\n\n    PATTERN_POSITION_TABLE : [\n\t    [],\n\t    [6, 18],\n\t    [6, 22],\n\t    [6, 26],\n\t    [6, 30],\n\t    [6, 34],\n\t    [6, 22, 38],\n\t    [6, 24, 42],\n\t    [6, 26, 46],\n\t    [6, 28, 50],\n\t    [6, 30, 54],\t\t\n\t    [6, 32, 58],\n\t    [6, 34, 62],\n\t    [6, 26, 46, 66],\n\t    [6, 26, 48, 70],\n\t    [6, 26, 50, 74],\n\t    [6, 30, 54, 78],\n\t    [6, 30, 56, 82],\n\t    [6, 30, 58, 86],\n\t    [6, 34, 62, 90],\n\t    [6, 28, 50, 72, 94],\n\t    [6, 26, 50, 74, 98],\n\t    [6, 30, 54, 78, 102],\n\t    [6, 28, 54, 80, 106],\n\t    [6, 32, 58, 84, 110],\n\t    [6, 30, 58, 86, 114],\n\t    [6, 34, 62, 90, 118],\n\t    [6, 26, 50, 74, 98, 122],\n\t    [6, 30, 54, 78, 102, 126],\n\t    [6, 26, 52, 78, 104, 130],\n\t    [6, 30, 56, 82, 108, 134],\n\t    [6, 34, 60, 86, 112, 138],\n\t    [6, 30, 58, 86, 114, 142],\n\t    [6, 34, 62, 90, 118, 146],\n\t    [6, 30, 54, 78, 102, 126, 150],\n\t    [6, 24, 50, 76, 102, 128, 154],\n\t    [6, 28, 54, 80, 106, 132, 158],\n\t    [6, 32, 58, 84, 110, 136, 162],\n\t    [6, 26, 54, 82, 110, 138, 166],\n\t    [6, 30, 58, 86, 114, 142, 170]\n    ],\n\n    G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n    G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n    G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n    getBCHTypeInfo : function(data) {\n\t    var d = data << 10;\n\t    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t    d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t    }\n\t    return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n    },\n\n    getBCHTypeNumber : function(data) {\n\t    var d = data << 12;\n\t    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t    d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t    }\n\t    return (data << 12) | d;\n    },\n\n    getBCHDigit : function(data) {\n\n\t    var digit = 0;\n\n\t    while (data != 0) {\n\t\t    digit++;\n\t\t    data >>>= 1;\n\t    }\n\n\t    return digit;\n    },\n\n    getPatternPosition : function(typeNumber) {\n\t    return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n    },\n\n    getMask : function(maskPattern, i, j) {\n\t    \n\t    switch (maskPattern) {\n\t\t    \n\t    case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t    case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t    case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t    case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t    case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t    case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t    case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t    case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t    default :\n\t\t    throw new Error(\"bad maskPattern:\" + maskPattern);\n\t    }\n    },\n\n    getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t    var a = new Polynomial([1], 0);\n\n\t    for (var i = 0; i < errorCorrectLength; i++) {\n\t\t    a = a.multiply(new Polynomial([1, math.gexp(i)], 0) );\n\t    }\n\n\t    return a;\n    },\n\n    getLengthInBits : function(mode, type) {\n\n\t    if (1 <= type && type < 10) {\n\n\t\t    // 1 - 9\n\n\t\t    switch(mode) {\n\t\t    case Mode.MODE_NUMBER \t: return 10;\n\t\t    case Mode.MODE_ALPHA_NUM \t: return 9;\n\t\t    case Mode.MODE_8BIT_BYTE\t: return 8;\n\t\t    case Mode.MODE_KANJI  \t: return 8;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else if (type < 27) {\n\n\t\t    // 10 - 26\n\n\t\t    switch(mode) {\n\t\t    case Mode.MODE_NUMBER \t: return 12;\n\t\t    case Mode.MODE_ALPHA_NUM \t: return 11;\n\t\t    case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t    case Mode.MODE_KANJI  \t: return 10;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else if (type < 41) {\n\n\t\t    // 27 - 40\n\n\t\t    switch(mode) {\n\t\t    case Mode.MODE_NUMBER \t: return 14;\n\t\t    case Mode.MODE_ALPHA_NUM\t: return 13;\n\t\t    case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t    case Mode.MODE_KANJI  \t: return 12;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else {\n\t\t    throw new Error(\"type:\" + type);\n\t    }\n    },\n\n    getLostPoint : function(qrCode) {\n\t    \n\t    var moduleCount = qrCode.getModuleCount();\n\t    \n\t    var lostPoint = 0;\n\t    \n\t    // LEVEL1\n\t    \n\t    for (var row = 0; row < moduleCount; row++) {\n\n\t\t    for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t    var sameCount = 0;\n\t\t\t    var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t    if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t    continue;\n\t\t\t\t    }\n\n\t\t\t\t    for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t    if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t    continue;\n\t\t\t\t\t    }\n\n\t\t\t\t\t    if (r == 0 && c == 0) {\n\t\t\t\t\t\t    continue;\n\t\t\t\t\t    }\n\n\t\t\t\t\t    if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t    sameCount++;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t    }\n\n\t\t\t    if (sameCount > 5) {\n\t\t\t\t    lostPoint += (3 + sameCount - 5);\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL2\n\n\t    for (var row = 0; row < moduleCount - 1; row++) {\n\t\t    for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t    var count = 0;\n\t\t\t    if (qrCode.isDark(row,     col    ) ) count++;\n\t\t\t    if (qrCode.isDark(row + 1, col    ) ) count++;\n\t\t\t    if (qrCode.isDark(row,     col + 1) ) count++;\n\t\t\t    if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t    if (count == 0 || count == 4) {\n\t\t\t\t    lostPoint += 3;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL3\n\n\t    for (var row = 0; row < moduleCount; row++) {\n\t\t    for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t    if (qrCode.isDark(row, col)\n\t\t\t\t\t    && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 2)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 3)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 4)\n\t\t\t\t\t    && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 6) ) {\n\t\t\t\t    lostPoint += 40;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    for (var col = 0; col < moduleCount; col++) {\n\t\t    for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t    if (qrCode.isDark(row, col)\n\t\t\t\t\t    && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 2, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 3, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 4, col)\n\t\t\t\t\t    && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 6, col) ) {\n\t\t\t\t    lostPoint += 40;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL4\n\t    \n\t    var darkCount = 0;\n\n\t    for (var col = 0; col < moduleCount; col++) {\n\t\t    for (var row = 0; row < moduleCount; row++) {\n\t\t\t    if (qrCode.isDark(row, col) ) {\n\t\t\t\t    darkCount++;\n\t\t\t    }\n\t\t    }\n\t    }\n\t    \n\t    var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t    lostPoint += ratio * 10;\n\n\t    return lostPoint;\t\t\n    }\n};\n\nmodule.exports = QRUtil;\n","import BN from 'bn.js'\n\nexport function toEther(\n  wei: string = '0',\n  precision: number,\n  stripEndingZeros?: boolean,\n  disableRound?: boolean\n): string {\n  if (wei.match(/^0x/)) {\n    wei = new BN(wei.replace('0x', ''), 16).toString()\n  }\n  const amt = wei.padStart(19, '0')\n  const decimalIdx = amt.length - 18\n  const precisionIdx = decimalIdx + precision\n  // round the next precision\n  const roundUp = amt.slice(precisionIdx, precisionIdx + 1) >= '5'\n  let decimal =\n    roundUp && !disableRound\n      ? amt.slice(decimalIdx, precisionIdx - 1) +\n        (parseInt(amt.slice(precisionIdx - 1, precisionIdx)) + 1).toString()\n      : amt.slice(decimalIdx, precisionIdx)\n  if (stripEndingZeros) {\n    decimal = decimal.replace(/(0+[1-9]+)(0+)|(^0*0$)/, '$1')\n  }\n  return amt.slice(0, decimalIdx) + (decimal ? '.' + decimal : '')\n}\n","import * as React from 'react'\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles'\nimport styles from './Address.styles'\nimport Paper from '@material-ui/core/Paper/Paper'\nimport { AddressRecord } from 'Address/types/address'\nimport ErrorDisplay from 'App/components/ErrorDisplay/ErrorDisplay'\nimport { numberStringWithComma } from 'App/utils/numberStringWithComma'\nimport { toEther } from 'App/utils/toEther'\nimport { Button, Tooltip } from '@material-ui/core'\nimport { QRCode } from 'react-qr-svg'\nimport { shouldShowExplorer } from 'App/utils/shouldShowExplorer'\nimport RectLoader from 'common/components/RectLoader/RectLoader'\nimport Responsive2ColumnTable from 'common/components/Responsive2ColumnTable/Responsive2ColumnTable'\nimport { FormattedMessage, WrappedComponentProps, injectIntl } from 'react-intl'\nimport { compose } from 'recompose'\n\n\ninterface IAddressProps extends WrappedComponentProps {\n  address?: AddressRecord\n  loading: boolean\n  error?: string\n  retry?(): any\n}\n\nconst LightTooltip = withStyles(theme => ({\n  tooltip: {\n    backgroundColor: theme.palette.common.white,\n    color: 'rgba(0, 0, 0, 1)',\n    boxShadow: theme.shadows[1],\n    fontSize: 11\n  }\n}))(Tooltip)\n\nclass Address extends React.PureComponent<IAddressProps & WithStyles> {\n  componentDidUpdate() {\n\n  }\n\n  componentWillUnmount() {\n\n  }\n\n  static viewCode(hash: string) {\n    const url = 'https://explorer-mainnet.thundercore.com/address/' + hash + '/contracts'\n    window.open(url)\n  }\n\n  static renderAddress(address?: AddressRecord) {\n    const rows = [\n      {\n        title: <FormattedMessage id=\"Address.components.Address.address\" />,\n        content: address ? (\n          <LightTooltip\n            title={\n              <>\n                <QRCode\n                  value={`thundertoken:${address.hash}`}\n                  bgColor=\"#FFFFFF\"\n                  fgColor=\"#000000\"\n                  level=\"Q\"\n                  style={{ width: 256 }}\n                />\n                <div>\n                  <FormattedMessage id=\"Address.components.Address.scan\" />\n                </div>\n              </>\n            }\n          >\n            <span>{address.hash}</span>\n          </LightTooltip>\n        ) : (\n          <RectLoader height={20} width={120} />\n        )\n      },\n      {\n        title: <FormattedMessage id=\"Address.components.Address.balance\" />,\n        content: address ? (\n          `${numberStringWithComma(toEther(address.balance, 3, true, true))} TT`\n        ) : (\n          <RectLoader height={20} width={50} />\n        )\n      }\n    ]\n    if (shouldShowExplorer() && address && address.isSmartContract) {\n      rows.push({\n        title: <FormattedMessage id=\"Address.components.Address.code\" />,\n        content: (\n          <Button\n            variant=\"outlined\"\n            href={`https://explorer-mainnet.thundercore.com/address/${address.hash}/contracts`}\n            target=\"_blank\"\n            onClick={() => Address.viewCode(address.hash)}\n          >\n            <FormattedMessage id=\"Address.components.Address.viewCode\" />\n          </Button>\n        )\n      })\n    }\n    return <Responsive2ColumnTable rows={rows} />\n  }\n\n  render() {\n    const { classes, address, retry, error } = this.props\n\n    return error ? (\n      <ErrorDisplay retry={retry} />\n    ) : (\n      <Paper square={true} elevation={0}>\n        {Address.renderAddress(address)}\n      </Paper>\n    )\n  }\n}\n\nexport const Unconnected = Address\n\nexport default compose<any, any>(injectIntl, withStyles(styles))(Address)\n","import createStyles from '@material-ui/core/styles/createStyles'\nimport { Theme } from '@material-ui/core'\n\nexport default (_: Theme) =>\n  createStyles({\n    chart: {\n      width: '100%',\n      height: 400\n    }\n  })\n","import React, { createRef, PureComponent } from 'react'\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles'\nimport styles from './AddressPageContainer.styles'\nimport { RouteComponentProps } from 'react-router'\nimport { compose } from 'recompose'\nimport { connect } from 'react-redux'\nimport { Routes } from 'App/constants/Routes'\nimport PageHeader from 'common/components/PageHeader/PageHeader'\nimport { bindActionCreators, Dispatch } from 'redux'\nimport { addressActions, addressSelectors } from 'Address/redux/addressStore'\nimport {\n  AddressRecord,\n  IAddressGetActionCreator,\n  IIAddressQueryTransactionCreator,\n} from 'Address/types/address'\nimport { IGlobalState } from 'configuration/reducers'\nimport { TransactionRecord } from 'Transactions/types/transactions'\nimport { List } from 'immutable'\nimport { Subscription } from 'rxjs'\nimport Address from 'Address/components/Address/Address'\nimport TransactionsTable from 'Transactions/components/TransactionsTable/TransactionsTable'\nimport Toolbar from '@material-ui/core/Toolbar/Toolbar'\nimport Typography from '@material-ui/core/Typography/Typography'\nimport withRouteQuery from 'common/hocs/withRouteQuery/withRouteQuery'\nimport Paginator from 'common/components/Pagination/Pagination'\nimport Icon from '@material-ui/core/Icon/Icon'\nimport Grid from '@material-ui/core/Grid/Grid'\nimport { IconButtonWithTracking } from 'tracking/components'\nimport { Button } from '@material-ui/core'\nimport withWidth, { WithWidth } from '@material-ui/core/withWidth'\nimport { shouldShowExplorer } from 'App/utils/shouldShowExplorer'\nimport Hidden from '@material-ui/core/Hidden'\nimport { FormattedMessage, WrappedComponentProps, injectIntl } from 'react-intl'\nimport qs from 'qs'\n\ninterface IAddressPageInputProps\n  extends RouteComponentProps<{ id: string }>,\n    WithStyles {}\n\ninterface IAddressPageContainerProps\n  extends IAddressPageInputProps,\n    WrappedComponentProps,\n    IStateProps,\n    IDispatchProps {\n  queryParams: {\n    p?: string\n    tid?: number\n  }\n}\n\ninterface IAddressPageContainerState {\n  addressState: {\n    loading: boolean\n    error: string\n  }\n  transactionState: {\n    loading: boolean\n    error: string\n    data?: List<TransactionRecord>\n    hasMore: boolean\n  }\n  showPagination: boolean\n  variant: 'lg' | 'sm'\n  rows: number\n}\n\nconst crumbs = [Routes.Home, Routes.AddressInfo]\n\nclass AddressPageContainer extends PureComponent<\n  IAddressPageContainerProps,\n  IAddressPageContainerState\n> {\n  static getDerivedStateFromProps(\n    { queryParams, width }: IAddressPageContainerProps & WithWidth,\n    { transactionState }: IAddressPageContainerState\n  ) {\n    const variant = width === 'xs' || width === 'sm' ? 'sm' : 'lg'\n    return {\n      showPagination: queryParams.p ? true : transactionState.hasMore,\n      rows: variant == 'sm' ? 10 : 25,\n      variant,\n    }\n  }\n  transactionEl = createRef<HTMLDivElement>()\n  subscriber?: Subscription\n  transSubscriber?: Subscription\n\n  state: IAddressPageContainerState = {\n    variant: 'lg',\n    rows: 25,\n    addressState: {\n      loading: true,\n      error: '',\n    },\n    transactionState: {\n      hasMore: false,\n      loading: true,\n      error: '',\n      data: undefined,\n    },\n    showPagination: false,\n  }\n\n  componentDidMount() {\n    this.fetchAddressData()\n    this.fetchTransactionData()\n  }\n\n  componentDidUpdate(\n    {\n      match: {\n        params: { id },\n      },\n      queryParams: { tid, p }\n    }: IAddressPageContainerProps,\n    { variant }: IAddressPageContainerState\n  ) {\n    if (this.props.match.params.id !== id) {\n      this.fetchAddressData()\n      this.fetchTransactionData()\n    } else if (\n      this.props.queryParams.tid !== tid ||\n      this.props.queryParams.p !== p\n    ) {\n      if (this.transactionEl.current) {\n        this.transactionEl.current.scrollIntoView()\n      }\n      this.fetchTransactionData()\n    } else if (variant !== this.state.variant) {\n      this.fetchTransactionData()\n    }\n  }\n\n  componentWillUnmount() {\n    this.subscriber && this.subscriber.unsubscribe()\n    this.transSubscriber && this.transSubscriber.unsubscribe()\n  }\n\n  fetchAddressData = () => {\n    const {\n      match: {\n        params: { id },\n      },\n    } = this.props\n    this.setState({ addressState: { loading: true, error: '' } })\n    this.subscriber && this.subscriber.unsubscribe()\n    const { observable } = this.props.addressActions.get({ key: id })\n    this.subscriber = observable.subscribe(\n      () => this.setState({ addressState: { loading: false, error: '' } }),\n      (error) => this.setState({ addressState: { loading: false, error } })\n    )\n  }\n\n  fetchTransactionData = () => {\n    const {\n      match: {\n        params: { id },\n      },\n      queryParams: { p, tid }\n    } = this.props\n\n    this.setState({\n      transactionState: {\n        loading: true,\n        data: undefined,\n        error: '',\n        hasMore: false,\n      },\n    })\n    this.transSubscriber && this.transSubscriber.unsubscribe()\n    const { observable } = this.props.addressActions.queryTransactions({\n      addressHash: id,\n      limit: this.state.rows,\n      tid: tid || 0,\n      p\n    })\n\n    this.transSubscriber = observable.subscribe(\n      ({ transactions, hasMore }) =>\n        this.setState({\n          transactionState: {\n            loading: false,\n            data: transactions,\n            error: '',\n            hasMore,\n          },\n        }),\n      (error) =>\n        this.setState({\n          transactionState: {\n            loading: false,\n            data: undefined,\n            error,\n            hasMore: false,\n          },\n        })\n    )\n  }\n  renderNavigation = () => {\n    const { queryParams, intl } = this.props\n    const { transactionState, showPagination } = this.state\n    const isIvoting = this.isIvoting()\n\n    if (!showPagination) {\n      return null\n    }\n\n\n    const tid =\n      queryParams.tid ||\n      (transactionState.data!.first() as TransactionRecord).tid\n\n    const manyText = intl.formatMessage({\n      id: 'Address.containers.AddressPageContainer.many',\n    })\n\n    return (\n      <Paginator\n        query={\n          isIvoting\n            ? {\n                type: 'ivoting',\n                'tid': tid,\n              }\n            : {\n              'tid': tid,\n              }\n        }\n        hideLast={true}\n        hasMore={transactionState.hasMore}\n        totalPages={manyText}\n        currentPage={parseInt(queryParams.p || '1', 10)}\n      />\n    )\n  }\n\n  reset = () => {\n    if (this.props.location.search) {\n      this.props.history.push(\n        Routes.AddressInfo.getPath({ id: this.props.match.params.id }),\n        { holdPosition: true }\n      )\n    }\n    this.fetchTransactionData()\n  }\n\n  renderSmallButtons = () =>\n    shouldShowExplorer() &&\n    this.props.address && (\n      <Button\n        variant=\"outlined\"\n        href={`https://explorer-mainnet.thundercore.com/address/${this.props.address.hash}/internal-transactions`}\n        target=\"_blank\"\n      >\n        <FormattedMessage id=\"Address.containers.AddressPageContainer.internal\" />\n        <Hidden xsDown>\n          {' '}\n          <FormattedMessage id=\"Address.containers.AddressPageContainer.transactions\" />\n        </Hidden>\n      </Button>\n    )\n\n  renderButtons = () => {\n    const { classes, address } = this.props\n    return (\n      <Grid\n        container={true}\n        alignItems=\"center\"\n        justify=\"space-between\"\n        className={classes.grid}\n      >\n        <div>\n          <IconButtonWithTracking\n            className={classes.button}\n            label=\"Retry Address Transaction\"\n            id=\"refresh\"\n            color=\"secondary\"\n            onClick={this.reset}\n          >\n            <Icon fontSize=\"small\">refresh</Icon>\n          </IconButtonWithTracking>\n\n          {shouldShowExplorer() && address && (\n            <Button\n              variant=\"outlined\"\n              className={classes.viewInternalBtn}\n              href={`https://explorer-mainnet.thundercore.com/address/${address.hash}/internal-transactions`}\n              target=\"_blank\"\n            >\n              <FormattedMessage id=\"Address.containers.AddressPageContainer.internalTxs\" />\n            </Button>\n          )}\n        </div>\n        {this.renderNavigation()}\n      </Grid>\n    )\n  }\n\n  isIvoting = (): boolean => {\n    const params = qs.parse(window.location.search, {\n      ignoreQueryPrefix: true,\n    })\n\n    return params.type === 'ivoting'\n  }\n\n  renderIvotingAddresspage() {\n    const { classes, address } = this.props\n    const { transactionState, rows, variant } = this.state\n    const navigationComponent = this.renderNavigation()\n    const hasTransaction = transactionState.data && !!transactionState.data.size\n    const addressInfoText = '所有投票'\n\n    return (\n      <div className={classes.pageContainer}>\n        <PageHeader\n          title={addressInfoText}\n          breadcrumbs={crumbs}\n          variant=\"open\"\n        />\n        <div className={classes.section} ref={this.transactionEl}>\n          <TransactionsTable\n            variant={variant}\n            error={transactionState.error}\n            retry={this.fetchTransactionData}\n            disabledAddress={address && address.hash}\n            rows={rows}\n            loading={transactionState.loading}\n            transactions={transactionState.data}\n          />\n          {hasTransaction && (\n            <Toolbar className={classes.paginationContainer}>\n              {navigationComponent}\n            </Toolbar>\n          )}\n        </div>\n      </div>\n    )\n  }\n\n  render() {\n    const { classes, address, intl } = this.props\n    const { transactionState, addressState, rows, variant } = this.state\n    const navigationComponent = this.renderNavigation()\n    const hasTransaction = transactionState.data && !!transactionState.data.size\n    const buttons =\n      hasTransaction &&\n      (variant === 'lg' ? this.renderButtons() : this.renderSmallButtons())\n\n    const isIvoting = this.isIvoting()\n    if (isIvoting) {\n      return this.renderIvotingAddresspage()\n    }\n\n    const addressInfoText = intl.formatMessage({\n      id: 'Address.containers.AddressPageContainer.addressInfo',\n    })\n\n    return (\n      <div className={classes.pageContainer}>\n        <PageHeader\n          title={addressInfoText}\n          breadcrumbs={crumbs}\n          variant=\"open\"\n        />\n        <div className={classes.section}>\n          <Address\n            retry={this.fetchAddressData}\n            error={addressState.error}\n            loading={addressState.loading}\n            address={address}\n          />\n        </div>\n        <div className={classes.section} ref={this.transactionEl}>\n          <Toolbar className={classes.title}>\n            <Typography variant=\"title\" style={{ whiteSpace: 'nowrap' }}>\n              <FormattedMessage id=\"Address.containers.AddressPageContainer.transactions\" />\n            </Typography>\n            {buttons}\n          </Toolbar>\n          <TransactionsTable\n            variant={variant}\n            error={transactionState.error}\n            retry={this.fetchTransactionData}\n            disabledAddress={address && address.hash}\n            rows={rows}\n            loading={transactionState.loading}\n            transactions={transactionState.data}\n          />\n          {hasTransaction && (\n            <Toolbar className={classes.paginationContainer}>\n              {navigationComponent}\n            </Toolbar>\n          )}\n        </div>\n      </div>\n    )\n  }\n}\n\ninterface IStateProps {\n  address?: AddressRecord\n  transactions?: List<TransactionRecord>\n}\n\nexport const mapStateToProps = (\n  { address }: IGlobalState,\n  {\n    match: {\n      params: { id },\n    },\n  }: RouteComponentProps<{ id: string }>\n): IStateProps => {\n  return {\n    address: addressSelectors.get(address, id.toLowerCase()),\n  }\n}\n\ninterface IDispatchProps {\n  addressActions: {\n    get: IAddressGetActionCreator\n    queryTransactions: IIAddressQueryTransactionCreator\n  }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n  addressActions: {\n    get: bindActionCreators(addressActions.get.create, dispatch),\n    queryTransactions: bindActionCreators(\n      addressActions.queryTransactions.create,\n      dispatch\n    ),\n  },\n})\n\nexport const Unconnected = AddressPageContainer\n\nexport default compose<IAddressPageContainerProps, IAddressPageContainerProps>(\n  withWidth(),\n  withRouteQuery,\n  injectIntl,\n  connect(mapStateToProps, mapDispatchToProps),\n  withStyles(styles)\n)(AddressPageContainer)\n","import createStyles from '@material-ui/core/styles/createStyles'\nimport { Theme } from '@material-ui/core'\nimport { padding } from 'common/utils/styles'\n\nexport default ({ spacing, breakpoints }: Theme) =>\n  createStyles({\n    pageContainer: {\n      padding: padding(0, spacing.unit * 2)\n    },\n    section: {\n      marginBottom: spacing.unit * 3\n    },\n    title: {\n      backgroundColor: 'white',\n      marginBottom: 1,\n      justifyContent: 'space-between'\n    },\n    paginationContainer: {\n      justifyContent: 'flex-end',\n      backgroundColor: 'white'\n    },\n    grid: {\n      marginLeft: 16\n    },\n    viewInternalBtn: {\n      minHeight: 24,\n      height: 24,\n      lineHeight: '16px',\n      padding: '4px 18px',\n      fontSize: 13,\n      fontWeight: 'bold',\n      marginLeft: 8\n    },\n    [breakpoints.down('xs')]: {\n      paginationContainer: {\n        justifyContent: 'center'\n      }\n    }\n  })\n","import React, { createRef, PureComponent } from 'react'\nimport { connect } from 'react-redux'\nimport { bindActionCreators, Dispatch } from 'redux'\nimport { transactionActions } from 'Transactions/redux/transactionStore'\nimport {\n  ITransactionQueryActionCreator,\n  TransactionRecord\n} from 'Transactions/types/transactions'\nimport { Subscription } from 'rxjs'\nimport { List } from 'immutable'\nimport { RouteComponentProps } from 'react-router'\nimport PageHeader from 'common/components/PageHeader/PageHeader'\nimport { Routes } from 'App/constants/Routes'\nimport TransactionsTable from 'Transactions/components/TransactionsTable/TransactionsTable'\nimport { compose } from 'recompose'\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles'\nimport styles from './TransactionsPageContainer.styles'\nimport withRouteQuery from 'common/hocs/withRouteQuery/withRouteQuery'\nimport Grid from '@material-ui/core/Grid/Grid'\nimport Icon from '@material-ui/core/Icon/Icon'\nimport Paginator from 'common/components/Pagination/Pagination'\nimport { ButtonWithTracking, IconButtonWithTracking } from 'tracking/components'\nimport { withWidth } from '@material-ui/core'\nimport { WithWidth } from '@material-ui/core/withWidth'\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from 'react-intl'\n\ninterface ITransactionsPageContainerState {\n  transactions?: List<TransactionRecord>\n  rows: number\n  variant: 'sm' | 'lg'\n  hasMore: boolean\n  loading: boolean\n  error: string\n}\ninterface ITransactionsPageContainerProps\n  extends IDispatchProps,\n    WrappedComponentProps,\n    RouteComponentProps,\n    WithStyles {\n  queryParams: {\n    blockNumber: string\n    tid: number\n    p: string\n  }\n}\n\nconst crumbs = [Routes.Home, Routes.Transactions]\n\nclass TransactionsPageContainer extends PureComponent<\n  ITransactionsPageContainerProps,\n  ITransactionsPageContainerState\n> {\n  static getDerivedStateFromProps({ width }: WithWidth) {\n    const variant = width === 'xs' || width === 'sm' ? 'sm' : 'lg'\n    return {\n      rows: variant == 'sm' ? 10 : 25,\n      variant\n    }\n  }\n\n  subscription?: Subscription\n  transactionEl = createRef<HTMLDivElement>()\n  state: ITransactionsPageContainerState = {\n    rows: 25,\n    variant: 'lg',\n    transactions: undefined,\n    loading: true,\n    error: '',\n    hasMore: false\n  }\n\n  componentDidMount() {\n    this.queryTransaction()\n  }\n\n  componentDidUpdate(\n    { queryParams: { blockNumber, p } }: ITransactionsPageContainerProps,\n    { variant }: ITransactionsPageContainerState\n  ) {\n    if (variant !== this.state.variant) {\n      this.queryTransaction()\n    }\n    if (\n      this.props.queryParams.p !== p ||\n      this.props.queryParams.blockNumber !== blockNumber\n    ) {\n      if (this.transactionEl.current) {\n        this.transactionEl.current.scrollIntoView()\n      }\n      this.queryTransaction()\n    }\n  }\n\n  componentWillUnmount() {\n    this.subscription && this.subscription.unsubscribe()\n  }\n\n  queryTransaction = () => {\n    const { p, tid } = this.props.queryParams\n    this.subscription && this.subscription.unsubscribe()\n    this.setState({ loading: true, error: '' })\n    this.subscription = this.props.transactionActions\n      .query({\n        p,\n        tid: tid,\n        limit: this.state.rows\n      })\n      .observable.subscribe(\n        ({ transactions, hasMore }) =>\n          this.setState({ transactions, loading: false, hasMore }),\n        error =>\n          this.setState({ transactions: undefined, loading: false, error })\n      )\n  }\n\n  reset = () => {\n    if (this.props.location.search) {\n      this.props.history.push(Routes.Transactions.getPath({}))\n    }\n    this.queryTransaction()\n  }\n\n  renderNavigation = () => {\n    const { queryParams, intl } = this.props\n    const { transactions, hasMore } = this.state\n    const hasTransaction = transactions && !!transactions.size\n    if (!hasTransaction) {\n      return null\n    }\n    const tid =\n      queryParams.tid ||\n      (transactions!.first() as TransactionRecord).tid\n\n    const manyText = intl.formatMessage({\n      id: 'Transactions.containers.TransactionsPageContainer.many'\n    })\n\n    return (\n      <Paginator\n        query={{\n          'tid': tid,\n        }}\n        totalPages={manyText}\n        hasMore={hasMore}\n        hideLast={true}\n        currentPage={parseInt(queryParams.p || '1', 10)}\n      />\n    )\n  }\n  renderSmallButtons = () => (\n    <IconButtonWithTracking\n      label=\"Retry Transactions\"\n      id=\"refresh\"\n      color=\"secondary\"\n      onClick={this.reset}\n    >\n      <Icon>refresh</Icon>\n    </IconButtonWithTracking>\n  )\n\n  renderButtons = () => {\n    const { classes } = this.props\n    return (\n      <Grid\n        container={true}\n        alignItems=\"center\"\n        justify=\"space-between\"\n        className={classes.grid}\n      >\n        <ButtonWithTracking\n          label=\"Retry Transactions\"\n          id=\"refresh\"\n          color=\"secondary\"\n          onClick={this.reset}\n        >\n          <Icon fontSize=\"small\">refresh</Icon>\n          <FormattedMessage id=\"Transactions.containers.TransactionsPageContainer.refresh\" />\n        </ButtonWithTracking>\n        {this.renderNavigation()}\n      </Grid>\n    )\n  }\n\n  render() {\n    const { classes, intl } = this.props\n    const { transactions, loading, error, rows, variant } = this.state\n    const navigationComponent = this.renderNavigation()\n    const buttons =\n      transactions &&\n      (variant === 'lg' ? this.renderButtons() : this.renderSmallButtons())\n\n    const title = intl.formatMessage({\n      id: 'Transactions.containers.TransactionsPageContainer.transactions'\n    })\n    return (\n      <div ref={this.transactionEl}>\n        <PageHeader variant=\"closed\" title={title} breadcrumbs={crumbs}>\n          {buttons}\n        </PageHeader>\n        <div className={classes.section}>\n          <TransactionsTable\n            variant={variant}\n            rows={rows}\n            transactions={transactions}\n            error={error}\n            loading={loading}\n            retry={this.queryTransaction}\n          />\n          {transactions && (\n            <div className={classes.paginationContainer}>\n              {navigationComponent}\n            </div>\n          )}\n        </div>\n      </div>\n    )\n  }\n}\n\ninterface IDispatchProps {\n  transactionActions: {\n    query: ITransactionQueryActionCreator\n  }\n}\n\nconst mapDispatchToProps = (dispatch: Dispatch): IDispatchProps => ({\n  transactionActions: {\n    query: bindActionCreators(transactionActions.query.create, dispatch)\n  }\n})\n\nexport const Unconnected = TransactionsPageContainer\n\nexport default compose<\n  ITransactionsPageContainerProps,\n  ITransactionsPageContainerProps\n>(\n  withWidth(),\n  withRouteQuery,\n  injectIntl,\n  connect(null, mapDispatchToProps),\n  withStyles(styles)\n)(TransactionsPageContainer)\n","import createStyles from '@material-ui/core/styles/createStyles'\nimport { Theme } from '@material-ui/core'\nimport { margin } from 'common/utils/styles'\n\nexport default ({ spacing, breakpoints }: Theme) =>\n  createStyles({\n    grid: {\n      width: 'initial',\n      marginLeft: spacing.unit * 2,\n      flex: 1\n    },\n    section: {\n      marginBottom: spacing.unit * 3\n    },\n    paginationContainer: {\n      textAlign: 'right',\n      margin: margin(spacing.unit, 0)\n    },\n    [breakpoints.down('sm')]: {\n      paginationContainer: {\n        textAlign: 'center',\n        marginTop: 2 * spacing.unit\n      }\n    }\n  })\n"],"sourceRoot":""}