jsir 1.2.3 → 1.2.4
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.
- package/cmd/ooa.js +7 -1
- package/ethWeb.js +22 -11
- package/index.js +4 -2
- package/package.json +1 -1
package/cmd/ooa.js
CHANGED
|
@@ -1033,6 +1033,7 @@ async function runCmd(str) {
|
|
|
1033
1033
|
let args = enrichArgs(str, text)
|
|
1034
1034
|
let argDef = getArgDef(text)
|
|
1035
1035
|
let argNames = Object.keys(argDef)
|
|
1036
|
+
let exactArg = {}
|
|
1036
1037
|
for (let i = 0; i<args.length; i++) {
|
|
1037
1038
|
let arg = args[i]
|
|
1038
1039
|
let pair = arg.split('=', 2).map(i => trim(i))
|
|
@@ -1046,10 +1047,14 @@ async function runCmd(str) {
|
|
|
1046
1047
|
if (argDef.hasOwnProperty(pair[0])) {
|
|
1047
1048
|
args[i] = argVal
|
|
1048
1049
|
delete args[argNames[i]]
|
|
1049
|
-
|
|
1050
|
+
exactArg[pair[0]] = argVal
|
|
1050
1051
|
}
|
|
1051
1052
|
}
|
|
1053
|
+
for (let key of Object.keys(exactArg)) {
|
|
1054
|
+
args[key] = exactArg[key]
|
|
1055
|
+
}
|
|
1052
1056
|
|
|
1057
|
+
delete args['[ParseError]']
|
|
1053
1058
|
let exit = false
|
|
1054
1059
|
for(let name of argNames) {
|
|
1055
1060
|
if (name.startsWith("_")) {
|
|
@@ -1126,6 +1131,7 @@ function getArgDef(text) {
|
|
|
1126
1131
|
argDef = eval(`(${exeStr || '{}'})`) || {}
|
|
1127
1132
|
} catch (e) {
|
|
1128
1133
|
$log(e.stack)
|
|
1134
|
+
argDef['[ParseError]'] = e.stack.split('\n')[0]
|
|
1129
1135
|
}
|
|
1130
1136
|
if (typeof argDef !== 'object') {
|
|
1131
1137
|
argDef = {}
|
package/ethWeb.js
CHANGED
|
@@ -154,7 +154,11 @@ function initRootWallet(mnemonic) {
|
|
|
154
154
|
getWallet(i) {
|
|
155
155
|
i = String(i)
|
|
156
156
|
if (!wallets[i]) {
|
|
157
|
-
|
|
157
|
+
if (/^\d+$/.test(i)) {
|
|
158
|
+
wallets[i] = ethers.Wallet.fromMnemonic(mnemonic, `m/44\'/60\'/0\'/0/${i}`)
|
|
159
|
+
} else {
|
|
160
|
+
wallets[i] = new ethers.Wallet(i);
|
|
161
|
+
}
|
|
158
162
|
}
|
|
159
163
|
return wallets[i]
|
|
160
164
|
},
|
|
@@ -411,16 +415,8 @@ async function tokenMap(address, web3) {
|
|
|
411
415
|
if (!address) {
|
|
412
416
|
return {name: '本币', decimals: 18, symbol: '本币'}
|
|
413
417
|
}
|
|
414
|
-
web3 = web3 || global.web3;
|
|
415
|
-
let chainId = global.chainId || await web3.getChainId()
|
|
416
|
-
if (!tokenMapCache[chainId]) {
|
|
417
|
-
tokenMapCache[chainId] = {}
|
|
418
|
-
}
|
|
419
|
-
let chainMap = tokenMapCache[chainId]
|
|
420
418
|
address = '0x' + address.toLowerCase().replace(/^0x/, '')
|
|
421
|
-
|
|
422
|
-
await getTokenMap([address], web3)
|
|
423
|
-
}
|
|
419
|
+
let chainMap = await getTokenMap([address], web3)
|
|
424
420
|
|
|
425
421
|
if (chainMap[address]) {
|
|
426
422
|
let decimals = chainMap[address].decimals
|
|
@@ -515,6 +511,20 @@ function getPairAmtNoFee(a, b, baseAmt) {
|
|
|
515
511
|
}
|
|
516
512
|
|
|
517
513
|
let tokenMapLoaded = {}
|
|
514
|
+
async function saveTokenMap(web3) {
|
|
515
|
+
web3 = web3 || global.web3;
|
|
516
|
+
let chainId = global.chainId || await web3.getChainId()
|
|
517
|
+
if (!tokenMapCache[chainId]) {
|
|
518
|
+
tokenMapCache[chainId] = {}
|
|
519
|
+
}
|
|
520
|
+
let chainMap = tokenMapCache[chainId]
|
|
521
|
+
let tokenMapFile = `tokenMap_${chainId}`
|
|
522
|
+
if (!tokenMapLoaded[chainId]) {
|
|
523
|
+
Object.assign(chainMap, objDataFile(tokenMapFile))
|
|
524
|
+
tokenMapLoaded[chainId] = true
|
|
525
|
+
}
|
|
526
|
+
objDataFile(tokenMapFile, () => chainMap);
|
|
527
|
+
}
|
|
518
528
|
async function getTokenMap(tokens, web3, batchNum, asyncNum) {
|
|
519
529
|
web3 = web3 || global.web3;
|
|
520
530
|
let chainId = global.chainId || await web3.getChainId()
|
|
@@ -1243,5 +1253,6 @@ module.exports = {
|
|
|
1243
1253
|
transferToken,
|
|
1244
1254
|
tokenApprove,
|
|
1245
1255
|
txnInputReplacer,
|
|
1246
|
-
abiDecoder
|
|
1256
|
+
abiDecoder,
|
|
1257
|
+
saveTokenMap
|
|
1247
1258
|
}
|
package/index.js
CHANGED
|
@@ -130,7 +130,8 @@ const {
|
|
|
130
130
|
transferToken,
|
|
131
131
|
tokenApprove,
|
|
132
132
|
txnInputReplacer,
|
|
133
|
-
abiDecoder
|
|
133
|
+
abiDecoder,
|
|
134
|
+
saveTokenMap
|
|
134
135
|
} = require('./ethWeb')
|
|
135
136
|
|
|
136
137
|
module.exports = {
|
|
@@ -261,5 +262,6 @@ module.exports = {
|
|
|
261
262
|
error,
|
|
262
263
|
txnInputReplacer,
|
|
263
264
|
parseSteps,
|
|
264
|
-
abiDecoder
|
|
265
|
+
abiDecoder,
|
|
266
|
+
saveTokenMap
|
|
265
267
|
}
|