jsir 1.2.4 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/cmd/ooa.js +18 -10
  2. package/ethWeb.js +14 -14
  3. package/package.json +1 -1
package/cmd/ooa.js CHANGED
@@ -322,7 +322,7 @@ async function dealInitData() {
322
322
  try {
323
323
  $i[initDataName] = await evalText(text)
324
324
  } catch (e) {
325
- $log(`$i.${initDataName} loading failed\n${e.stack}`);
325
+ $log(`$i.${initDataName} loading failed\n${e.stack || e}`);
326
326
  }
327
327
  if (!vl($i[initDataName])) {
328
328
  warn(`$i.${initDataName} loading failed`)
@@ -1019,16 +1019,24 @@ function getArgComments(argDef) {
1019
1019
  return comments
1020
1020
  }
1021
1021
 
1022
- async function runCmd(str) {
1022
+ async function runCmd(str, scriptName) {
1023
+ if (scriptName) {
1024
+ str = `0 ${str}`
1025
+ }
1023
1026
  let strs = str.split(/\s+/)
1024
- if (!_cmdMap[strs[0]] && strs[0] !== '0') {
1025
- warn('no items')
1026
- _noAppendNextLine || nextLine()
1027
- return
1027
+ if (!scriptName) {
1028
+ if (!_cmdMap[strs[0]] && strs[0] !== '0') {
1029
+ warn('no items')
1030
+ _noAppendNextLine || nextLine()
1031
+ return
1032
+ }
1033
+ if (_cmdMap[strs[0]]) {
1034
+ scriptName = _cmdMap[strs[0]];
1035
+ }
1028
1036
  }
1029
1037
 
1030
- let path = _home + '/' + _cmdMap[strs[0]]
1031
- let text = _cmdMap[strs[0]] ? String(_fs.readFileSync(path)) : await getCbText()
1038
+ let path = _home + '/' + scriptName
1039
+ let text = scriptName ? String(_fs.readFileSync(path)) : await getCbText()
1032
1040
 
1033
1041
  let args = enrichArgs(str, text)
1034
1042
  let argDef = getArgDef(text)
@@ -1036,7 +1044,7 @@ async function runCmd(str) {
1036
1044
  let exactArg = {}
1037
1045
  for (let i = 0; i<args.length; i++) {
1038
1046
  let arg = args[i]
1039
- let pair = arg.split('=', 2).map(i => trim(i))
1047
+ let pair = arg.indexOf('=') === -1 ? [] : arg.split('=', 2).map(i => trim(i))
1040
1048
  let argVal = argDef.hasOwnProperty(pair[0]) ? pair[1]:arg
1041
1049
  argVal = translateArgs(argVal)
1042
1050
 
@@ -1073,7 +1081,7 @@ async function runCmd(str) {
1073
1081
 
1074
1082
  process.argv = [process.argv[0], path, ...args]
1075
1083
  try {
1076
- await evalText(text, strs[0], _cmdMap[strs[0]], args)
1084
+ return await evalText(text, strs[0], _cmdMap[strs[0]], args)
1077
1085
  } catch (e) {
1078
1086
  error(e)
1079
1087
  }
package/ethWeb.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const https = require('https');
2
2
  const BigNumber = require('bignumber.js');
3
- let {mkdir, getLibDataDir, trim, got, toBigNum, getConfig, objDataFile,
4
- eFn, removeFirst, randomInt, splitArray, sleep, vl, cacheFn, isError, bMin} = require('./util')
3
+ let {getLibDataDir, trim, toBigNum, getConfig, objDataFile,
4
+ eFn, removeFirst, randomInt, splitArray, sleep, vl, cacheFn, isError, bMin, getOr} = require('./util')
5
5
  const abiDecoder = require('abi-decoder');
6
6
  let fs = require('fs')
7
7
  let contractMapPath = getLibDataDir() + "/contractMap.json"
@@ -511,31 +511,31 @@ function getPairAmtNoFee(a, b, baseAmt) {
511
511
  }
512
512
 
513
513
  let tokenMapLoaded = {}
514
+ let tokenMapLoadSize = {}
514
515
  async function saveTokenMap(web3) {
515
516
  web3 = web3 || global.web3;
516
517
  let chainId = global.chainId || await web3.getChainId()
517
- if (!tokenMapCache[chainId]) {
518
- tokenMapCache[chainId] = {}
519
- }
520
- let chainMap = tokenMapCache[chainId]
518
+ let chainMap = getOr(tokenMapCache, chainId, {})
521
519
  let tokenMapFile = `tokenMap_${chainId}`
522
520
  if (!tokenMapLoaded[chainId]) {
523
- Object.assign(chainMap, objDataFile(tokenMapFile))
521
+ let temp = objDataFile(tokenMapFile)
522
+ tokenMapLoadSize[chainId] = Object.keys(temp).length
523
+ Object.assign(chainMap, temp)
524
524
  tokenMapLoaded[chainId] = true
525
525
  }
526
- objDataFile(tokenMapFile, () => chainMap);
526
+ if (Object.keys(chainMap).length > tokenMapLoadSize[chainId]) {
527
+ await objDataFile(tokenMapFile, () => chainMap);
528
+ }
527
529
  }
528
530
  async function getTokenMap(tokens, web3, batchNum, asyncNum) {
529
531
  web3 = web3 || global.web3;
530
532
  let chainId = global.chainId || await web3.getChainId()
531
- if (!tokenMapCache[chainId]) {
532
- tokenMapCache[chainId] = {}
533
- }
534
- let chainMap = tokenMapCache[chainId]
535
-
533
+ let chainMap = getOr(tokenMapCache, chainId, {})
536
534
  if (!tokenMapLoaded[chainId]) {
537
535
  let tokenMapFile = `tokenMap_${chainId}`
538
- Object.assign(chainMap, objDataFile(tokenMapFile))
536
+ let temp = objDataFile(tokenMapFile)
537
+ tokenMapLoadSize[chainId] = Object.keys(temp).length
538
+ Object.assign(chainMap, temp)
539
539
  tokenMapLoaded[chainId] = true
540
540
  }
541
541
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsir",
3
- "version": "1.2.4",
3
+ "version": "1.2.7",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {