Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
ai
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
ai
Commits
7baf508c
Commit
7baf508c
authored
Aug 03, 2022
by
Ahmad Nemati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git pull
parent
e5d15cf2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
91 additions
and
105 deletions
+91
-105
trade.js
trade.js
+91
-105
No files found.
trade.js
View file @
7baf508c
let
fs
=
require
(
'
fs
'
)
let
fs
=
require
(
'
fs
'
)
var
watch
=
require
(
'
node-watch
'
);
var
watch
=
require
(
'
node-watch
'
);
let
ai
=
require
(
'
./ai-new
'
)
let
ai
=
require
(
'
./ai-new
'
)
let
db
=
require
(
'
./db
'
)
let
db
=
require
(
'
./db
'
)
let
path
=
'
YashilFinal/
'
let
path
=
'
YashilFinal/
'
let
longSide
=
'
LONG
'
let
longSide
=
'
LONG
'
let
shortSide
=
'
SHORT
'
let
shortSide
=
'
SHORT
'
...
@@ -18,7 +18,6 @@ let balance = 0
...
@@ -18,7 +18,6 @@ let balance = 0
const
ccxt
=
require
(
'
ccxt
'
)
const
ccxt
=
require
(
'
ccxt
'
)
let
info
let
info
let
accs
let
accs
var
cors
=
require
(
'
cors
'
)
var
cors
=
require
(
'
cors
'
)
...
@@ -27,7 +26,7 @@ let express = require('express');
...
@@ -27,7 +26,7 @@ let express = require('express');
let
moment
=
require
(
'
moment-timezone
'
)
let
moment
=
require
(
'
moment-timezone
'
)
let
app
=
express
();
let
app
=
express
();
let
files
=
[]
let
files
=
[]
var
bodyParser
=
require
(
'
body-parser
'
)
var
bodyParser
=
require
(
'
body-parser
'
)
...
@@ -51,7 +50,7 @@ app.post('/signal', (req, res) => {
...
@@ -51,7 +50,7 @@ app.post('/signal', (req, res) => {
res
.
send
(
'
Done
'
)
res
.
send
(
'
Done
'
)
console
.
log
(
req
.
body
)
console
.
log
(
req
.
body
)
analyse
(
req
.
body
)
analyse
(
req
.
body
)
})
})
...
@@ -60,34 +59,28 @@ app.post('/', (req, res) => {
...
@@ -60,34 +59,28 @@ app.post('/', (req, res) => {
res
.
send
(
'
Done
'
)
res
.
send
(
'
Done
'
)
console
.
log
(
req
.
body
)
console
.
log
(
req
.
body
)
analyse
(
req
.
body
)
analyse
(
req
.
body
)
})
})
async
function
init
()
{
async
function
init
()
{
files
=
await
fs
.
readdirSync
(
'
YashilFinal
'
)
files
=
await
fs
.
readdirSync
(
'
YashilFinal
'
)
client
.
on
(
'
error
'
,
(
err
)
=>
console
.
log
(
'
Redis Client Error
'
,
err
));
client
.
on
(
'
error
'
,
(
err
)
=>
console
.
log
(
'
Redis Client Error
'
,
err
));
await
client
.
connect
();
await
client
.
connect
();
accs
=
await
db
.
getAllAccounts
()
accs
=
await
db
.
getAllAccounts
()
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
{
{
let
exchange
=
new
ccxt
.
bybit
({
let
exchange
=
new
ccxt
.
bybit
({
apiKey
:
accs
[
i
].
key
,
apiKey
:
accs
[
i
].
key
,
secret
:
accs
[
i
].
secret
,
secret
:
accs
[
i
].
secret
,
enableRateLimit
:
true
,
enableRateLimit
:
true
,
})
})
if
(
accs
[
i
].
testnet
===
1
)
if
(
accs
[
i
].
testnet
===
1
)
exchange
.
urls
[
'
api
'
]
=
exchange
.
urls
[
'
test
'
];
exchange
.
urls
[
'
api
'
]
=
exchange
.
urls
[
'
test
'
];
accs
[
i
].
exchange
=
exchange
accs
[
i
].
exchange
=
exchange
}
}
// info = await fs.readFileSync('info2.json', 'utf8');
// info = await fs.readFileSync('info2.json', 'utf8');
// info = JSON.parse(info)
// info = JSON.parse(info)
...
@@ -98,21 +91,18 @@ async function init() {
...
@@ -98,21 +91,18 @@ async function init() {
//
//
// })
// })
// exchange.urls['api'] = exchange.urls['test'];
// exchange.urls['api'] = exchange.urls['test'];
//
run()
run
()
balanceUpdater
()
balanceUpdater
()
dbEquityUpdater
()
dbEquityUpdater
()
}
}
async
function
dbEquityUpdater
()
async
function
dbEquityUpdater
()
{
{
try
{
try
{
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
db
.
updateEquityByid
(
accs
[
i
].
id
,
accs
[
i
].
equity
)
db
.
updateEquityByid
(
accs
[
i
].
id
,
accs
[
i
].
equity
)
}
}
catch
(
e
)
{
catch
(
e
)
{
}
}
...
@@ -122,23 +112,22 @@ async function dbEquityUpdater()
...
@@ -122,23 +112,22 @@ async function dbEquityUpdater()
async
function
balanceUpdater
()
{
async
function
balanceUpdater
()
{
let
arr
=
[]
let
arr
=
[]
try
{
try
{
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
arr
.
push
(
balanceGetter
(
accs
[
i
]))
arr
.
push
(
balanceGetter
(
accs
[
i
]))
await
Promise
.
all
(
arr
)
await
Promise
.
all
(
arr
)
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
e
)
console
.
log
(
e
)
}
}
await
sleep
(
60000
)
await
sleep
(
60000
)
return
balanceUpdater
()
return
balanceUpdater
()
}
}
async
function
balanceGetter
(
acc
)
async
function
balanceGetter
(
acc
)
{
{
try
{
try
{
let
d
=
await
acc
.
exchange
.
fetchBalance
()
let
d
=
await
acc
.
exchange
.
fetchBalance
()
if
(
parseFloat
(
d
.
info
.
result
.
USDT
.
equity
)
!==
parseFloat
(
acc
.
equity
))
{
if
(
parseFloat
(
d
.
info
.
result
.
USDT
.
equity
)
!==
parseFloat
(
acc
.
equity
))
{
...
@@ -194,9 +183,9 @@ async function run() {
...
@@ -194,9 +183,9 @@ async function run() {
}
}
// checker()
// checker()
console
.
log
(
datas
)
//
console.log(datas)
}
}
...
@@ -214,7 +203,7 @@ async function updateVars(name, lastData) {
...
@@ -214,7 +203,7 @@ async function updateVars(name, lastData) {
let
data
=
grabData
([
lastData
])
let
data
=
grabData
([
lastData
])
closer
(
sig
,
data
[
0
].
closeTime
,
data
[
0
],
allData
.
id
,
allData
.
pair
)
closer
(
sig
,
data
[
0
].
closeTime
)
let
vars
=
ai
.
run
(
data
,
allData
.
avgRunup
,
allData
.
avgDrawdown
,
getVarsFromName
(
name
))
let
vars
=
ai
.
run
(
data
,
allData
.
avgRunup
,
allData
.
avgDrawdown
,
getVarsFromName
(
name
))
...
@@ -226,8 +215,8 @@ async function updateVars(name, lastData) {
...
@@ -226,8 +215,8 @@ async function updateVars(name, lastData) {
sig
=
allData
.
id
+
'
_Sell
'
sig
=
allData
.
id
+
'
_Sell
'
else
else
sig
=
allData
.
id
+
'
_Buy
'
sig
=
allData
.
id
+
'
_Buy
'
adder
(
sig
,
allData
.
qty
,
data
[
0
].
closeTime
,
data
[
0
],
allData
.
pair
)
adder
(
sig
,
data
[
0
].
closeTime
)
// console.log('adder')
// console.log('adder')
}
}
// console.log(name,vars)
// console.log(name,vars)
updateVarsFromName
(
name
,
vars
)
updateVarsFromName
(
name
,
vars
)
...
@@ -235,107 +224,109 @@ async function updateVars(name, lastData) {
...
@@ -235,107 +224,109 @@ async function updateVars(name, lastData) {
}
}
async
function
closer
(
sig
,
date
)
{
async
function
closer
(
sig
,
date
,
bigData
,
id
,
pair
)
{
let
lastToken
=
sig
+
'
_2
'
+
date
let
lastToken
=
sig
+
'
_2
'
+
date
lastToken
=
lastToken
.
replace
(
/_/g
,
''
).
replace
(
/Lp/g
,
''
).
replace
(
/BTC/g
,
''
).
replace
(
/ /g
,
''
).
replace
(
/btc2/g
,
''
).
replace
(
/btc3/g
,
''
).
replace
(
/btc4/g
,
''
).
replace
(
/&/g
,
''
).
replace
(
/btc/g
,
''
).
replace
(
/:/g
,
''
)
lastToken
=
lastToken
.
replace
(
/_/g
,
''
).
replace
(
/Lp/g
,
''
).
replace
(
/BTC/g
,
''
).
replace
(
/ /g
,
''
).
replace
(
/btc2/g
,
''
).
replace
(
/btc3/g
,
''
).
replace
(
/btc4/g
,
''
).
replace
(
/&/g
,
''
).
replace
(
/btc/g
,
''
).
replace
(
/:/g
,
''
)
lastToken
=
removeDot
(
lastToken
)
lastToken
=
removeDot
(
lastToken
)
const
[
data
,
delStatus
]
=
await
client
let
arr
=
[]
.
multi
()
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
{
.
get
(
info
.
apiKey
+
'
_
'
+
sig
)
arr
.
push
(
syncAllCloser
(
accs
[
i
],
sig
,
lastToken
))
.
del
(
info
.
apiKey
+
'
_
'
+
sig
)
}
await
Promise
.
all
(
arr
)
.
exec
();
}
if
(
delStatus
!==
1
)
{
return
async
function
syncAllCloser
(
acc
,
sig
,
lastToken
)
{
}
const
[
data
,
delStatus
]
=
await
client
.
multi
()
.
get
(
acc
.
key
+
'
_
'
+
sig
)
.
del
(
acc
.
key
+
'
_
'
+
sig
)
.
exec
();
if
(
delStatus
!==
1
)
return
let
d
let
d
let
newData
=
JSON
.
parse
(
data
)
let
newData
=
JSON
.
parse
(
data
)
let
qty
=
newData
.
qty
let
qty
=
newData
.
qty
console
.
log
(
'
try reduce
'
,
sig
,
qty
)
console
.
log
(
'
try reduce
'
,
acc
.
name
,
sig
,
qty
)
if
(
sig
.
includes
(
'
Buy
'
))
{
if
(
sig
.
includes
(
'
Buy
'
))
{
try
{
try
{
d
=
await
exchange
.
createMarketOrder
(
pair
,
'
Sell
'
,
qty
,
0
,
{
d
=
await
acc
.
exchange
.
createMarketOrder
(
'
BTCUSDT
'
,
'
Sell
'
,
qty
,
0
,
{
reduceOnly
:
true
,
reduceOnly
:
true
,
order_link_id
:
lastToken
order_link_id
:
lastToken
})
})
}
catch
(
e
)
{
}
catch
(
e
)
{
try
{
try
{
d
=
await
exchange
.
createMarketOrder
(
pair
,
'
Sell
'
,
qty
,
0
,
{
d
=
await
acc
.
exchange
.
createMarketOrder
(
'
BTCUSDT
'
,
'
Sell
'
,
qty
,
0
,
{
reduceOnly
:
true
,
reduceOnly
:
true
,
order_link_id
:
lastToken
order_link_id
:
lastToken
})
})
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
error
(
e
)
console
.
error
(
e
)
console
.
log
(
'
Error ->
'
,
sig
,
qty
,
'
Sell
'
,
'
Reduce true
'
)
console
.
log
(
'
Error ->
'
,
acc
.
name
,
sig
,
qty
,
'
Sell
'
,
'
Reduce true
'
)
}
}
}
}
}
else
{
}
else
{
try
{
try
{
d
=
await
exchange
.
createMarketOrder
(
pair
,
'
Buy
'
,
qty
,
0
,
{
reduceOnly
:
true
,
order_link_id
:
lastToken
})
d
=
await
acc
.
exchange
.
createMarketOrder
(
'
BTCUSDT
'
,
'
Buy
'
,
qty
,
0
,
{
reduceOnly
:
true
,
order_link_id
:
lastToken
})
}
catch
(
e
)
{
}
catch
(
e
)
{
try
{
try
{
d
=
await
exchange
.
createMarketOrder
(
pair
,
'
Buy
'
,
qty
,
0
,
{
d
=
await
acc
.
exchange
.
createMarketOrder
(
'
BTCUSDT
'
,
'
Buy
'
,
qty
,
0
,
{
reduceOnly
:
true
,
reduceOnly
:
true
,
order_link_id
:
lastToken
order_link_id
:
lastToken
})
})
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
error
(
e
)
console
.
error
(
e
)
console
.
log
(
'
Error ->
'
,
sig
,
qty
,
'
Buy
'
)
console
.
log
(
'
Error ->
'
,
acc
.
name
,
sig
,
qty
,
'
Buy
'
)
}
}
}
}
}
}
// await sleep(60000)
// d = await exchange.fetchOrder(d.id, d.info.symbol)
// let profit = getCalculateProfit(newData.price, d.average)
// if (newData.side === 'sell')
// profit = profit * -1
//
// let det = 'side:' + newData.side + ' bybit open price:' + newData.price + ' bybit close price:' + d.average
//
// let t = id + ' :' + det + ' bybit profit:' + ' ' + profit + ' yashil profit:' + bigData.profit + ' diff:' + (profit - bigData.profit)
// appendDiffProfitLog(t)
}
}
async
function
adder
(
sig
,
date
)
{
async
function
adder
(
sig
,
qty
,
date
,
allData
,
pair
)
{
let
lastToken
=
sig
+
'
_
'
+
date
let
lastToken
=
sig
+
'
_
'
+
date
if
(
pair
===
'
BNBUSDT
'
)
qty
=
0.06
else
if
(
pair
===
'
BTCUSDT
'
)
qty
=
0.002
else
if
(
pair
===
'
ETHUSDT
'
)
qty
=
0.01
lastToken
=
lastToken
.
replace
(
/_/g
,
''
).
replace
(
/Lp/g
,
''
).
replace
(
/BTC/g
,
''
).
replace
(
/ /g
,
''
).
replace
(
/btc2/g
,
''
).
replace
(
/btc3/g
,
''
).
replace
(
/btc4/g
,
''
).
replace
(
/&/g
,
''
).
replace
(
/btc/g
,
''
).
replace
(
/:/g
,
''
)
lastToken
=
lastToken
.
replace
(
/_/g
,
''
).
replace
(
/Lp/g
,
''
).
replace
(
/BTC/g
,
''
).
replace
(
/ /g
,
''
).
replace
(
/btc2/g
,
''
).
replace
(
/btc3/g
,
''
).
replace
(
/btc4/g
,
''
).
replace
(
/&/g
,
''
).
replace
(
/btc/g
,
''
).
replace
(
/:/g
,
''
)
lastToken
=
removeDot
(
lastToken
)
lastToken
=
removeDot
(
lastToken
)
console
.
log
(
'
Add db and ex :
'
,
lastToken
)
let
arr
=
[]
for
(
let
i
=
0
;
i
<
accs
.
length
;
i
++
)
{
if
(
accs
[
i
].
active
===
1
)
arr
.
push
(
syncAdder
(
accs
[
i
],
sig
,
lastToken
))
}
Promise
.
all
(
arr
)
}
async
function
syncAdder
(
acc
,
sig
,
lastToken
)
{
console
.
log
(
'
Add db and ex :
'
,
acc
.
name
,
lastToken
)
let
d
let
d
// console.log(pair,qty)
if
(
sig
.
includes
(
'
Buy
'
))
{
if
(
sig
.
includes
(
'
Buy
'
))
{
d
=
await
exchange
.
createMarketOrder
(
pair
,
'
Buy
'
,
qty
,
0
,
{
order_link_id
:
lastToken
})
d
=
await
acc
.
exchange
.
createMarketOrder
(
'
BTCUSDT
'
,
'
Buy
'
,
acc
.
qty
,
0
,
{
order_link_id
:
lastToken
})
// console.log('Add Suc With id',sig)
}
else
{
}
else
{
d
=
await
exchange
.
createMarketOrder
(
pair
,
'
Sell
'
,
qty
,
0
,
{
order_link_id
:
lastToken
})
d
=
await
acc
.
exchange
.
createMarketOrder
(
'
BTCUSDT
'
,
'
Sell
'
,
acc
.
qty
,
0
,
{
order_link_id
:
lastToken
})
// console.log('Add Suc With id',sig)
}
}
if
(
typeof
d
.
id
!==
"
undefined
"
)
{
if
(
typeof
d
.
id
!==
"
undefined
"
)
{
console
.
log
(
'
Add Suc With id
'
,
d
.
id
,
sig
)
console
.
log
(
'
Add Suc With id
'
,
acc
.
name
,
d
.
id
,
sig
)
const
[
add
]
=
await
client
const
[
add
]
=
await
client
.
multi
()
.
multi
()
.
set
(
info
.
apiKey
+
'
_
'
+
sig
,
JSON
.
stringify
({
.
set
(
acc
.
kebabCase
+
'
_
'
+
sig
,
JSON
.
stringify
({
pair
:
d
.
info
.
symbol
,
pair
:
d
.
info
.
symbol
,
side
:
d
.
side
,
side
:
d
.
side
,
qty
:
d
.
amount
,
qty
:
d
.
amount
,
...
@@ -344,8 +335,6 @@ async function adder(sig, qty, date, allData, pair) {
...
@@ -344,8 +335,6 @@ async function adder(sig, qty, date, allData, pair) {
.
exec
();
.
exec
();
}
}
}
}
function
grabData
(
data
)
{
function
grabData
(
data
)
{
...
@@ -455,7 +444,7 @@ function getVarFromUsage(vars, usage) {
...
@@ -455,7 +444,7 @@ function getVarFromUsage(vars, usage) {
async
function
analyse
(
body
)
{
async
function
analyse
(
body
)
{
let
t
=
body
.
split
(
'
,
'
)
let
t
=
body
.
split
(
'
,
'
)
let
obj
=
{}
let
obj
=
{}
if
(
typeof
t
[
0
]
===
"
undefined
"
)
if
(
typeof
t
[
0
]
===
"
undefined
"
)
return
return
obj
.
symbol
=
t
[
0
]
obj
.
symbol
=
t
[
0
]
obj
.
entry
=
parseFloat
(
t
[
1
])
obj
.
entry
=
parseFloat
(
t
[
1
])
...
@@ -465,8 +454,8 @@ async function analyse(body) {
...
@@ -465,8 +454,8 @@ async function analyse(body) {
obj
.
runUp
=
parseFloat
(
t
[
5
])
obj
.
runUp
=
parseFloat
(
t
[
5
])
obj
.
drawDown
=
parseFloat
(
t
[
6
])
obj
.
drawDown
=
parseFloat
(
t
[
6
])
obj
.
profit
=
getPercent
(
obj
.
entry
,
obj
.
exit
)
obj
.
profit
=
getPercent
(
obj
.
entry
,
obj
.
exit
)
if
(
obj
.
side
===
'
Short
'
)
if
(
obj
.
side
===
'
Short
'
)
obj
.
profit
=
obj
.
profit
*
-
1
obj
.
profit
=
obj
.
profit
*
-
1
obj
.
runUp
=
getPercent
(
obj
.
entry
,
(
obj
.
runUp
+
obj
.
entry
))
obj
.
runUp
=
getPercent
(
obj
.
entry
,
(
obj
.
runUp
+
obj
.
entry
))
obj
.
drawDown
=
getPercent
(
obj
.
entry
,
(
obj
.
drawDown
+
obj
.
entry
))
obj
.
drawDown
=
getPercent
(
obj
.
entry
,
(
obj
.
drawDown
+
obj
.
entry
))
obj
.
closeTime
=
moment
().
utc
().
format
(
'
YYYY.MM.DD HH:mm
'
)
+
'
:00.000
'
obj
.
closeTime
=
moment
().
utc
().
format
(
'
YYYY.MM.DD HH:mm
'
)
+
'
:00.000
'
...
@@ -492,7 +481,7 @@ async function analyse(body) {
...
@@ -492,7 +481,7 @@ async function analyse(body) {
appendCsv
(
final
,
indicator
)
appendCsv
(
final
,
indicator
)
indicator
=
indicator
.
replace
(
'
Kelt
'
,
'
btc4
'
).
replace
(
'
SOTT
'
,
'
btc3
'
).
replace
(
'
Pmax
'
,
'
btc2
'
).
replace
(
'
PPST
'
,
'
btc1
'
).
replace
(
'
.csv
'
,
''
)
indicator
=
indicator
.
replace
(
'
Kelt
'
,
'
btc4
'
).
replace
(
'
SOTT
'
,
'
btc3
'
).
replace
(
'
Pmax
'
,
'
btc2
'
).
replace
(
'
PPST
'
,
'
btc1
'
).
replace
(
'
.csv
'
,
''
)
appendCsvtoMain
(
final
,
indicator
)
appendCsvtoMain
(
final
,
indicator
)
// updateVars(indicator,final)
// updateVars(indicator,final)
}
}
...
@@ -507,21 +496,18 @@ function appendCsv(data, name) {
...
@@ -507,21 +496,18 @@ function appendCsv(data, name) {
async
function
appendCsvtoMain
(
data
,
config
)
{
async
function
appendCsvtoMain
(
data
,
config
)
{
for
(
let
i
=
0
;
i
<
files
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
files
.
length
;
i
++
)
{
if
(
files
[
i
].
startsWith
(
config
+
'
_
'
))
{
if
(
files
[
i
].
startsWith
(
config
+
'
_
'
))
{
appendtoFile
(
files
[
i
],
data
)
appendtoFile
(
files
[
i
],
data
)
}
}
}
}
}
}
function
appendtoFile
(
name
,
data
)
function
appendtoFile
(
name
,
data
)
{
{
fs
.
appendFile
(
'
YashilFinal/
'
+
name
,
data
+
'
\n
'
,
function
(
err
)
{
fs
.
appendFile
(
'
YashilFinal/
'
+
name
,
data
+
'
\n
'
,
function
(
err
)
{
if
(
err
)
throw
err
;
if
(
err
)
throw
err
;
});
});
...
@@ -531,15 +517,15 @@ function getPercent(basePrice, value) {
...
@@ -531,15 +517,15 @@ function getPercent(basePrice, value) {
return
((
value
-
basePrice
)
/
basePrice
)
*
100
return
((
value
-
basePrice
)
/
basePrice
)
*
100
}
}
function
removeDot
(
text
)
function
removeDot
(
text
)
{
{
let
token
=
''
let
token
=
''
for
(
let
i
=
0
;
i
<
text
.
length
;
i
++
)
for
(
let
i
=
0
;
i
<
text
.
length
;
i
++
)
if
(
text
[
i
]
!==
'
.
'
)
if
(
text
[
i
]
!==
'
.
'
)
token
=
token
+
text
[
i
]
token
=
token
+
text
[
i
]
return
token
return
token
}
}
function
getVarsFromName
(
config
)
{
function
getVarsFromName
(
config
)
{
for
(
let
i
=
0
;
i
<
datas
.
length
;
i
++
)
for
(
let
i
=
0
;
i
<
datas
.
length
;
i
++
)
if
(
datas
[
i
].
name
.
startsWith
(
config
+
'
_
'
))
if
(
datas
[
i
].
name
.
startsWith
(
config
+
'
_
'
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment