@0xtorch/csv 0.0.14 → 0.0.15
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/.DS_Store +0 -0
- package/_cjs/index.js +3 -3
- package/_cjs/index.js.map +1 -1
- package/_cjs/{parseCsvFileToAccountActions.js → parseCsvFileToActions.js} +11 -11
- package/_cjs/parseCsvFileToActions.js.map +1 -0
- package/_cjs/parseRowsToActions/allValue.js +54 -0
- package/_cjs/parseRowsToActions/allValue.js.map +1 -0
- package/_cjs/parseRowsToActions/asset.js +95 -0
- package/_cjs/parseRowsToActions/asset.js.map +1 -0
- package/_cjs/parseRowsToActions/cellValue.js +8 -0
- package/_cjs/parseRowsToActions/cellValue.js.map +1 -0
- package/_cjs/parseRowsToActions/index.js +74 -0
- package/_cjs/parseRowsToActions/index.js.map +1 -0
- package/_cjs/parseRowsToActions/joinValue.js +52 -0
- package/_cjs/parseRowsToActions/joinValue.js.map +1 -0
- package/_cjs/parseRowsToActions/key.js +8 -0
- package/_cjs/parseRowsToActions/key.js.map +1 -0
- package/_cjs/parseRowsToActions/mathValue.js +123 -0
- package/_cjs/parseRowsToActions/mathValue.js.map +1 -0
- package/_cjs/parseRowsToActions/parse.js +72 -0
- package/_cjs/parseRowsToActions/parse.js.map +1 -0
- package/_cjs/parseRowsToActions/pattern.js +27 -0
- package/_cjs/parseRowsToActions/pattern.js.map +1 -0
- package/_cjs/parseRowsToActions/simpleValue.js +22 -0
- package/_cjs/parseRowsToActions/simpleValue.js.map +1 -0
- package/_cjs/parseRowsToActions/sliceValue.js +35 -0
- package/_cjs/parseRowsToActions/sliceValue.js.map +1 -0
- package/_cjs/parseRowsToActions/splitValue.js +11 -0
- package/_cjs/parseRowsToActions/splitValue.js.map +1 -0
- package/_cjs/parseRowsToActions/transfer.js +110 -0
- package/_cjs/parseRowsToActions/transfer.js.map +1 -0
- package/_cjs/schemas/{schemas.js → format.js} +2 -2
- package/_cjs/schemas/format.js.map +1 -0
- package/_cjs/schemas/index.js +2 -2
- package/_cjs/schemas/index.js.map +1 -1
- package/_cjs/schemas/parser.js +117 -72
- package/_cjs/schemas/parser.js.map +1 -1
- package/_esm/index.js +1 -1
- package/_esm/index.js.map +1 -1
- package/_esm/{parseCsvFileToAccountActions.js → parseCsvFileToActions.js} +9 -9
- package/_esm/parseCsvFileToActions.js.map +1 -0
- package/_esm/parseRowsToActions/allValue.js +50 -0
- package/_esm/parseRowsToActions/allValue.js.map +1 -0
- package/_esm/parseRowsToActions/asset.js +89 -0
- package/_esm/parseRowsToActions/asset.js.map +1 -0
- package/_esm/parseRowsToActions/cellValue.js +4 -0
- package/_esm/parseRowsToActions/cellValue.js.map +1 -0
- package/_esm/parseRowsToActions/index.js +72 -0
- package/_esm/parseRowsToActions/index.js.map +1 -0
- package/_esm/parseRowsToActions/joinValue.js +48 -0
- package/_esm/parseRowsToActions/joinValue.js.map +1 -0
- package/_esm/parseRowsToActions/key.js +4 -0
- package/_esm/parseRowsToActions/key.js.map +1 -0
- package/_esm/parseRowsToActions/mathValue.js +119 -0
- package/_esm/parseRowsToActions/mathValue.js.map +1 -0
- package/_esm/parseRowsToActions/parse.js +70 -0
- package/_esm/parseRowsToActions/parse.js.map +1 -0
- package/_esm/parseRowsToActions/pattern.js +23 -0
- package/_esm/parseRowsToActions/pattern.js.map +1 -0
- package/_esm/parseRowsToActions/simpleValue.js +18 -0
- package/_esm/parseRowsToActions/simpleValue.js.map +1 -0
- package/_esm/parseRowsToActions/sliceValue.js +31 -0
- package/_esm/parseRowsToActions/sliceValue.js.map +1 -0
- package/_esm/parseRowsToActions/splitValue.js +7 -0
- package/_esm/parseRowsToActions/splitValue.js.map +1 -0
- package/_esm/parseRowsToActions/transfer.js +106 -0
- package/_esm/parseRowsToActions/transfer.js.map +1 -0
- package/_esm/schemas/{schemas.js → format.js} +3 -3
- package/_esm/schemas/format.js.map +1 -0
- package/_esm/schemas/index.js +1 -1
- package/_esm/schemas/index.js.map +1 -1
- package/_esm/schemas/parser.js +126 -93
- package/_esm/schemas/parser.js.map +1 -1
- package/_types/index.d.ts +1 -1
- package/_types/index.d.ts.map +1 -1
- package/_types/parseCsvFileToActions.d.ts +14 -0
- package/_types/parseCsvFileToActions.d.ts.map +1 -0
- package/_types/parseRowsToActions/allValue.d.ts +9 -0
- package/_types/parseRowsToActions/allValue.d.ts.map +1 -0
- package/_types/parseRowsToActions/asset.d.ts +30 -0
- package/_types/parseRowsToActions/asset.d.ts.map +1 -0
- package/_types/parseRowsToActions/cellValue.d.ts +8 -0
- package/_types/parseRowsToActions/cellValue.d.ts.map +1 -0
- package/_types/parseRowsToActions/index.d.ts +18 -0
- package/_types/parseRowsToActions/index.d.ts.map +1 -0
- package/_types/parseRowsToActions/joinValue.d.ts +9 -0
- package/_types/parseRowsToActions/joinValue.d.ts.map +1 -0
- package/_types/parseRowsToActions/key.d.ts +8 -0
- package/_types/parseRowsToActions/key.d.ts.map +1 -0
- package/_types/parseRowsToActions/mathValue.d.ts +10 -0
- package/_types/parseRowsToActions/mathValue.d.ts.map +1 -0
- package/_types/parseRowsToActions/parse.d.ts +17 -0
- package/_types/parseRowsToActions/parse.d.ts.map +1 -0
- package/_types/parseRowsToActions/pattern.d.ts +7 -0
- package/_types/parseRowsToActions/pattern.d.ts.map +1 -0
- package/_types/parseRowsToActions/simpleValue.d.ts +9 -0
- package/_types/parseRowsToActions/simpleValue.d.ts.map +1 -0
- package/_types/parseRowsToActions/sliceValue.d.ts +9 -0
- package/_types/parseRowsToActions/sliceValue.d.ts.map +1 -0
- package/_types/parseRowsToActions/splitValue.d.ts +9 -0
- package/_types/parseRowsToActions/splitValue.d.ts.map +1 -0
- package/_types/parseRowsToActions/transfer.d.ts +15 -0
- package/_types/parseRowsToActions/transfer.d.ts.map +1 -0
- package/_types/schemas/format.d.ts +35204 -0
- package/_types/schemas/format.d.ts.map +1 -0
- package/_types/schemas/index.d.ts +1 -1
- package/_types/schemas/index.d.ts.map +1 -1
- package/_types/schemas/parser.d.ts +78521 -916
- package/_types/schemas/parser.d.ts.map +1 -1
- package/_types/types.d.ts +2 -2
- package/_types/types.d.ts.map +1 -1
- package/index.ts +1 -1
- package/package.json +1 -1
- package/parseCsvFileToActions.ts +52 -0
- package/parseRowsToActions/allValue.ts +61 -0
- package/parseRowsToActions/asset.ts +152 -0
- package/parseRowsToActions/cellValue.ts +13 -0
- package/parseRowsToActions/index.ts +115 -0
- package/parseRowsToActions/joinValue.ts +68 -0
- package/parseRowsToActions/key.ts +13 -0
- package/parseRowsToActions/mathValue.ts +160 -0
- package/parseRowsToActions/parse.ts +108 -0
- package/parseRowsToActions/pattern.ts +35 -0
- package/parseRowsToActions/simpleValue.ts +29 -0
- package/parseRowsToActions/sliceValue.ts +51 -0
- package/parseRowsToActions/splitValue.ts +18 -0
- package/parseRowsToActions/transfer.ts +167 -0
- package/schemas/{schemas.ts → format.ts} +2 -2
- package/schemas/index.ts +1 -1
- package/schemas/parser.ts +143 -93
- package/tests/assets.ts +2 -1
- package/tests/coincheck-standard.csv +0 -10
- package/tests/coincheck.ts +196 -106
- package/types.ts +2 -2
- package/_cjs/parseCsvFileToAccountActions.js.map +0 -1
- package/_cjs/parseCsvRowToAction/amount.js +0 -48
- package/_cjs/parseCsvRowToAction/amount.js.map +0 -1
- package/_cjs/parseCsvRowToAction/asset.js +0 -63
- package/_cjs/parseCsvRowToAction/asset.js.map +0 -1
- package/_cjs/parseCsvRowToAction/condition.js +0 -32
- package/_cjs/parseCsvRowToAction/condition.js.map +0 -1
- package/_cjs/parseCsvRowToAction/index.js +0 -6
- package/_cjs/parseCsvRowToAction/index.js.map +0 -1
- package/_cjs/parseCsvRowToAction/nft.js +0 -16
- package/_cjs/parseCsvRowToAction/nft.js.map +0 -1
- package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js +0 -79
- package/_cjs/parseCsvRowToAction/parseCsvRowToAction.js.map +0 -1
- package/_cjs/parseCsvRowToAction/text.js +0 -29
- package/_cjs/parseCsvRowToAction/text.js.map +0 -1
- package/_cjs/parseCsvRowToAction/timestamp.js +0 -12
- package/_cjs/parseCsvRowToAction/timestamp.js.map +0 -1
- package/_cjs/parseCsvRowToAction/transfer.js +0 -25
- package/_cjs/parseCsvRowToAction/transfer.js.map +0 -1
- package/_cjs/parseCsvRowsToActions.js +0 -34
- package/_cjs/parseCsvRowsToActions.js.map +0 -1
- package/_cjs/schemas/schemas.js.map +0 -1
- package/_esm/parseCsvFileToAccountActions.js.map +0 -1
- package/_esm/parseCsvRowToAction/amount.js +0 -44
- package/_esm/parseCsvRowToAction/amount.js.map +0 -1
- package/_esm/parseCsvRowToAction/asset.js +0 -59
- package/_esm/parseCsvRowToAction/asset.js.map +0 -1
- package/_esm/parseCsvRowToAction/condition.js +0 -28
- package/_esm/parseCsvRowToAction/condition.js.map +0 -1
- package/_esm/parseCsvRowToAction/index.js +0 -2
- package/_esm/parseCsvRowToAction/index.js.map +0 -1
- package/_esm/parseCsvRowToAction/nft.js +0 -12
- package/_esm/parseCsvRowToAction/nft.js.map +0 -1
- package/_esm/parseCsvRowToAction/parseCsvRowToAction.js +0 -77
- package/_esm/parseCsvRowToAction/parseCsvRowToAction.js.map +0 -1
- package/_esm/parseCsvRowToAction/text.js +0 -25
- package/_esm/parseCsvRowToAction/text.js.map +0 -1
- package/_esm/parseCsvRowToAction/timestamp.js +0 -8
- package/_esm/parseCsvRowToAction/timestamp.js.map +0 -1
- package/_esm/parseCsvRowToAction/transfer.js +0 -21
- package/_esm/parseCsvRowToAction/transfer.js.map +0 -1
- package/_esm/parseCsvRowsToActions.js +0 -32
- package/_esm/parseCsvRowsToActions.js.map +0 -1
- package/_esm/schemas/schemas.js.map +0 -1
- package/_types/parseCsvFileToAccountActions.d.ts +0 -14
- package/_types/parseCsvFileToAccountActions.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/amount.d.ts +0 -11
- package/_types/parseCsvRowToAction/amount.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/asset.d.ts +0 -17
- package/_types/parseCsvRowToAction/asset.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/condition.d.ts +0 -10
- package/_types/parseCsvRowToAction/condition.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/index.d.ts +0 -2
- package/_types/parseCsvRowToAction/index.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/nft.d.ts +0 -12
- package/_types/parseCsvRowToAction/nft.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/parseCsvRowToAction.d.ts +0 -16
- package/_types/parseCsvRowToAction/parseCsvRowToAction.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/text.d.ts +0 -11
- package/_types/parseCsvRowToAction/text.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/timestamp.d.ts +0 -8
- package/_types/parseCsvRowToAction/timestamp.d.ts.map +0 -1
- package/_types/parseCsvRowToAction/transfer.d.ts +0 -18
- package/_types/parseCsvRowToAction/transfer.d.ts.map +0 -1
- package/_types/parseCsvRowsToActions.d.ts +0 -16
- package/_types/parseCsvRowsToActions.d.ts.map +0 -1
- package/_types/schemas/schemas.d.ts +0 -593
- package/_types/schemas/schemas.d.ts.map +0 -1
- package/parseCsvFileToAccountActions.ts +0 -52
- package/parseCsvRowToAction/amount.ts +0 -66
- package/parseCsvRowToAction/asset.ts +0 -93
- package/parseCsvRowToAction/condition.ts +0 -39
- package/parseCsvRowToAction/index.ts +0 -1
- package/parseCsvRowToAction/nft.ts +0 -28
- package/parseCsvRowToAction/parseCsvRowToAction.ts +0 -128
- package/parseCsvRowToAction/text.ts +0 -38
- package/parseCsvRowToAction/timestamp.ts +0 -19
- package/parseCsvRowToAction/transfer.ts +0 -48
- package/parseCsvRowsToActions.ts +0 -54
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { stringify, } from '@0xtorch/core';
|
|
2
|
+
import { getAllValue } from './allValue';
|
|
3
|
+
export const getAsset = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
|
|
4
|
+
switch (schema.type) {
|
|
5
|
+
case 'id': {
|
|
6
|
+
return getAssetById({ schema, rows, service });
|
|
7
|
+
}
|
|
8
|
+
case 'symbol': {
|
|
9
|
+
return getAssetBySymbol({
|
|
10
|
+
schema,
|
|
11
|
+
rows,
|
|
12
|
+
service,
|
|
13
|
+
symbolAssetMap,
|
|
14
|
+
cryptoes,
|
|
15
|
+
fiats,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export const getAssetById = ({ schema, rows, service, }) => {
|
|
21
|
+
const value = stringify(getAllValue({
|
|
22
|
+
schema: schema.value,
|
|
23
|
+
rows,
|
|
24
|
+
service,
|
|
25
|
+
}));
|
|
26
|
+
const [type, id] = value.split(schema.splitter);
|
|
27
|
+
return createAssetByTypeAndId(type, id);
|
|
28
|
+
};
|
|
29
|
+
export const getAssetBySymbol = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
|
|
30
|
+
const value = stringify(getAllValue({
|
|
31
|
+
schema: schema.value,
|
|
32
|
+
rows,
|
|
33
|
+
service,
|
|
34
|
+
})).toUpperCase();
|
|
35
|
+
if (symbolAssetMap !== undefined && value in symbolAssetMap) {
|
|
36
|
+
const [type, id] = symbolAssetMap[value].split('/');
|
|
37
|
+
return createAssetByTypeAndId(type, id);
|
|
38
|
+
}
|
|
39
|
+
const sameSymbolFiat = fiats.find((fiat) => fiat.symbol === value);
|
|
40
|
+
if (sameSymbolFiat !== undefined) {
|
|
41
|
+
return sameSymbolFiat;
|
|
42
|
+
}
|
|
43
|
+
let sameSymbolCrypto;
|
|
44
|
+
for (const crypto of cryptoes) {
|
|
45
|
+
if (crypto.symbol.toUpperCase() !== value) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (sameSymbolCrypto !== undefined &&
|
|
49
|
+
(sameSymbolCrypto.market?.marketCapUsd ?? 0) >=
|
|
50
|
+
(crypto.market?.marketCapUsd ?? 0)) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
sameSymbolCrypto = crypto;
|
|
54
|
+
}
|
|
55
|
+
if (sameSymbolCrypto !== undefined) {
|
|
56
|
+
return sameSymbolCrypto;
|
|
57
|
+
}
|
|
58
|
+
throw new Error(`Unknown asset symbol: ${value}`);
|
|
59
|
+
};
|
|
60
|
+
const createAssetByTypeAndId = (type, id) => {
|
|
61
|
+
const trimmedLowerType = type.trim().toLowerCase();
|
|
62
|
+
const trimmedId = id.trim();
|
|
63
|
+
if (trimmedLowerType === 'crypto' || trimmedLowerType === 'cryptocurrency') {
|
|
64
|
+
return {
|
|
65
|
+
type: 'CryptoCurrency',
|
|
66
|
+
id: trimmedId,
|
|
67
|
+
name: trimmedId,
|
|
68
|
+
symbol: trimmedId.toUpperCase(),
|
|
69
|
+
updatedAt: 0,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (trimmedLowerType === 'fiat' || trimmedLowerType === 'fiatcurrency') {
|
|
73
|
+
return {
|
|
74
|
+
type: 'FiatCurrency',
|
|
75
|
+
id: trimmedId,
|
|
76
|
+
name: trimmedId,
|
|
77
|
+
symbol: trimmedId.toUpperCase(),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (trimmedLowerType === 'nft') {
|
|
81
|
+
return {
|
|
82
|
+
type: 'Nft',
|
|
83
|
+
id: trimmedId,
|
|
84
|
+
updatedAt: 0,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
throw new Error(`Unknown asset type: ${type}`);
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../parseRowsToActions/asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cellValue.js","sourceRoot":"","sources":["../../parseRowsToActions/cellValue.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,EACN,IAAI,GAIL,EAAE,EAAE;IACH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { createKeyValue } from './key';
|
|
2
|
+
import { parseRowsToActionsByParser } from './parse';
|
|
3
|
+
export const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }) => {
|
|
4
|
+
// key があれば 同一 keyValue の row をまとめて処理・key がなければ row 毎に処理して action 生成
|
|
5
|
+
const actions = [];
|
|
6
|
+
let currentKeyValue;
|
|
7
|
+
let currentRows = [];
|
|
8
|
+
for (const row of rows) {
|
|
9
|
+
if (parser.key === undefined) {
|
|
10
|
+
actions.push(...parseTargetRowsToActions({
|
|
11
|
+
rows: [row],
|
|
12
|
+
parsers: parser.parsers,
|
|
13
|
+
symbolAssetMap,
|
|
14
|
+
service,
|
|
15
|
+
cryptoes,
|
|
16
|
+
fiats,
|
|
17
|
+
errorLogger,
|
|
18
|
+
}));
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const keyValue = createKeyValue({ row, key: parser.key });
|
|
22
|
+
if (currentKeyValue !== undefined &&
|
|
23
|
+
currentKeyValue !== keyValue &&
|
|
24
|
+
currentRows.length > 0) {
|
|
25
|
+
actions.push(...parseTargetRowsToActions({
|
|
26
|
+
rows: currentRows,
|
|
27
|
+
parsers: parser.parsers,
|
|
28
|
+
symbolAssetMap,
|
|
29
|
+
service,
|
|
30
|
+
cryptoes,
|
|
31
|
+
fiats,
|
|
32
|
+
}));
|
|
33
|
+
currentRows = [];
|
|
34
|
+
}
|
|
35
|
+
currentKeyValue = keyValue;
|
|
36
|
+
currentRows.push(row);
|
|
37
|
+
}
|
|
38
|
+
// 同一 source で order が被らないように order を再設定する
|
|
39
|
+
return resetActionOrders(actions);
|
|
40
|
+
};
|
|
41
|
+
const parseTargetRowsToActions = (parameters) => {
|
|
42
|
+
const { parsers, errorLogger, ...otherParameters } = parameters;
|
|
43
|
+
for (const parser of parsers) {
|
|
44
|
+
try {
|
|
45
|
+
const actions = parseRowsToActionsByParser({ parser, ...otherParameters });
|
|
46
|
+
if (actions === undefined) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
return actions;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
if (errorLogger !== undefined) {
|
|
53
|
+
errorLogger(error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (errorLogger !== undefined) {
|
|
58
|
+
errorLogger(new Error('No parser matched'));
|
|
59
|
+
}
|
|
60
|
+
return [];
|
|
61
|
+
};
|
|
62
|
+
const resetActionOrders = (actions) => {
|
|
63
|
+
const sourceCounts = new Map();
|
|
64
|
+
const orderedActions = [];
|
|
65
|
+
for (const action of actions) {
|
|
66
|
+
const count = sourceCounts.get(action.source) ?? 0;
|
|
67
|
+
orderedActions.push({ ...action, order: count });
|
|
68
|
+
sourceCounts.set(action.source, count + 1);
|
|
69
|
+
}
|
|
70
|
+
return orderedActions;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { stringify } from '@0xtorch/core';
|
|
2
|
+
import { getCellValue } from './cellValue';
|
|
3
|
+
import { getMathValue } from './mathValue';
|
|
4
|
+
import { getSliceValue } from './sliceValue';
|
|
5
|
+
import { getSplitValue } from './splitValue';
|
|
6
|
+
export const getJoinValue = ({ schema, rows, service, }) => {
|
|
7
|
+
return schema.values
|
|
8
|
+
.map((value) => stringify(getValue({ schema: value, rows, service })))
|
|
9
|
+
.join('');
|
|
10
|
+
};
|
|
11
|
+
const getValue = ({ schema, rows, service, }) => {
|
|
12
|
+
if (typeof schema === 'string') {
|
|
13
|
+
return schema;
|
|
14
|
+
}
|
|
15
|
+
switch (schema.type) {
|
|
16
|
+
case 'cell': {
|
|
17
|
+
return getCellValue({
|
|
18
|
+
schema,
|
|
19
|
+
rows,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
case 'math': {
|
|
23
|
+
return getMathValue({
|
|
24
|
+
schema,
|
|
25
|
+
rows,
|
|
26
|
+
service,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
case 'service': {
|
|
30
|
+
return service;
|
|
31
|
+
}
|
|
32
|
+
case 'slice': {
|
|
33
|
+
return getSliceValue({
|
|
34
|
+
schema,
|
|
35
|
+
rows,
|
|
36
|
+
service,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
case 'split': {
|
|
40
|
+
return getSplitValue({
|
|
41
|
+
schema,
|
|
42
|
+
rows,
|
|
43
|
+
service,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=joinValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinValue.js","sourceRoot":"","sources":["../../parseRowsToActions/joinValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,OAAO,MAAM,CAAC,MAAM;SACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;SACrE,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,EAChB,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,aAAa,CAAC;gBACnB,MAAM;gBACN,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,aAAa,CAAC;gBACnB,MAAM;gBACN,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../parseRowsToActions/key.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,GAAG,EACH,GAAG,GACsB,EAAU,EAAE;IACrC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpD,CAAC,CAAA"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { createBigDecimal, divide, minus, plus, times, } from '@0xtorch/big-decimal';
|
|
2
|
+
import { getCellValue } from './cellValue';
|
|
3
|
+
import { getSliceValue } from './sliceValue';
|
|
4
|
+
import { getSplitValue } from './splitValue';
|
|
5
|
+
export const getMathValue = ({ schema, rows, service, }) => {
|
|
6
|
+
const firstValue = schema.values[0];
|
|
7
|
+
let current = getBigDecimalValue({ schema: firstValue, rows, service });
|
|
8
|
+
let operator;
|
|
9
|
+
let args = [];
|
|
10
|
+
for (const value of schema.values.slice(1)) {
|
|
11
|
+
if (value === '+') {
|
|
12
|
+
if (operator !== undefined) {
|
|
13
|
+
current = calculate(operator, current, args);
|
|
14
|
+
args = [];
|
|
15
|
+
}
|
|
16
|
+
operator = '+';
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (value === '-') {
|
|
20
|
+
if (operator !== undefined) {
|
|
21
|
+
current = calculate(operator, current, args);
|
|
22
|
+
args = [];
|
|
23
|
+
}
|
|
24
|
+
operator = '-';
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (value === '*') {
|
|
28
|
+
if (operator !== undefined) {
|
|
29
|
+
current = calculate(operator, current, args);
|
|
30
|
+
args = [];
|
|
31
|
+
}
|
|
32
|
+
operator = '*';
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (value === '/') {
|
|
36
|
+
if (operator !== undefined) {
|
|
37
|
+
current = calculate(operator, current, args);
|
|
38
|
+
args = [];
|
|
39
|
+
}
|
|
40
|
+
operator = '/';
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
args.push(getBigDecimalValue({ schema: value, rows, service }));
|
|
44
|
+
}
|
|
45
|
+
if (operator !== undefined) {
|
|
46
|
+
current = calculate(operator, current, args);
|
|
47
|
+
}
|
|
48
|
+
return current;
|
|
49
|
+
};
|
|
50
|
+
const getBigDecimalValue = ({ schema, rows, service, }) => {
|
|
51
|
+
const value = getValue({ schema, rows, service });
|
|
52
|
+
if (value === undefined) {
|
|
53
|
+
return createBigDecimal(0n);
|
|
54
|
+
}
|
|
55
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
56
|
+
return createBigDecimal(value);
|
|
57
|
+
}
|
|
58
|
+
return value;
|
|
59
|
+
};
|
|
60
|
+
const getValue = ({ schema, rows, service, }) => {
|
|
61
|
+
if (typeof schema === 'string') {
|
|
62
|
+
return schema;
|
|
63
|
+
}
|
|
64
|
+
switch (schema.type) {
|
|
65
|
+
case 'cell': {
|
|
66
|
+
return getCellValue({
|
|
67
|
+
schema,
|
|
68
|
+
rows,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
case 'service': {
|
|
72
|
+
return service;
|
|
73
|
+
}
|
|
74
|
+
case 'slice': {
|
|
75
|
+
return getSliceValue({
|
|
76
|
+
schema,
|
|
77
|
+
rows,
|
|
78
|
+
service,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
case 'split': {
|
|
82
|
+
return getSplitValue({
|
|
83
|
+
schema,
|
|
84
|
+
rows,
|
|
85
|
+
service,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const calculate = (operator, current, args) => {
|
|
91
|
+
let newValue = current;
|
|
92
|
+
switch (operator) {
|
|
93
|
+
case '+': {
|
|
94
|
+
for (const arg of args) {
|
|
95
|
+
newValue = plus(newValue, arg);
|
|
96
|
+
}
|
|
97
|
+
return newValue;
|
|
98
|
+
}
|
|
99
|
+
case '-': {
|
|
100
|
+
for (const arg of args) {
|
|
101
|
+
newValue = minus(newValue, arg);
|
|
102
|
+
}
|
|
103
|
+
return newValue;
|
|
104
|
+
}
|
|
105
|
+
case '*': {
|
|
106
|
+
for (const arg of args) {
|
|
107
|
+
newValue = times(newValue, arg);
|
|
108
|
+
}
|
|
109
|
+
return newValue;
|
|
110
|
+
}
|
|
111
|
+
case '/': {
|
|
112
|
+
for (const arg of args) {
|
|
113
|
+
newValue = divide(times(newValue, createBigDecimal(1n), 18), arg, 18);
|
|
114
|
+
}
|
|
115
|
+
return newValue;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=mathValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mathValue.js","sourceRoot":"","sources":["../../parseRowsToActions/mathValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { stringify, } from '@0xtorch/core';
|
|
2
|
+
import { getAllValue } from './allValue';
|
|
3
|
+
import { getAssetById } from './asset';
|
|
4
|
+
import { getCellValue } from './cellValue';
|
|
5
|
+
import { isMatchPattern } from './pattern';
|
|
6
|
+
import { createTransfers } from './transfer';
|
|
7
|
+
export const parseRowsToActionsByParser = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, }) => {
|
|
8
|
+
// 合致しない condition がある場合は undefined を返す
|
|
9
|
+
for (const condition of parser.conditions) {
|
|
10
|
+
const value = getAllValue({
|
|
11
|
+
schema: condition.value,
|
|
12
|
+
rows,
|
|
13
|
+
service,
|
|
14
|
+
});
|
|
15
|
+
if (!isMatchPattern({ value: stringify(value), pattern: condition.pattern })) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// generator 毎に action 生成
|
|
20
|
+
const actions = [];
|
|
21
|
+
for (const generator of parser.generators) {
|
|
22
|
+
const source = stringify(getAllValue({ schema: generator.source, rows, service }));
|
|
23
|
+
const timestampValue = getCellValue({ schema: generator.timestamp, rows });
|
|
24
|
+
const timestamp = typeof timestampValue === 'number'
|
|
25
|
+
? timestampValue
|
|
26
|
+
: new Date(stringify(timestampValue)).getTime();
|
|
27
|
+
const comment = generator.comment === undefined
|
|
28
|
+
? undefined
|
|
29
|
+
: stringify(getAllValue({ schema: generator.comment, rows, service }));
|
|
30
|
+
const app = generator.app === undefined
|
|
31
|
+
? undefined
|
|
32
|
+
: stringify(getAllValue({ schema: generator.app, rows, service }));
|
|
33
|
+
const crossId = generator.crossId === undefined
|
|
34
|
+
? undefined
|
|
35
|
+
: stringify(getAllValue({ schema: generator.crossId, rows, service }));
|
|
36
|
+
const loanId = generator.loanId === undefined
|
|
37
|
+
? undefined
|
|
38
|
+
: stringify(getAllValue({ schema: generator.loanId, rows, service }));
|
|
39
|
+
const target = generator.target === undefined
|
|
40
|
+
? undefined
|
|
41
|
+
: getAssetById({
|
|
42
|
+
schema: generator.target,
|
|
43
|
+
rows,
|
|
44
|
+
service,
|
|
45
|
+
});
|
|
46
|
+
actions.push({
|
|
47
|
+
source,
|
|
48
|
+
order: 0,
|
|
49
|
+
type: generator.type,
|
|
50
|
+
timestamp,
|
|
51
|
+
evidence: 'system-rule',
|
|
52
|
+
comment,
|
|
53
|
+
app,
|
|
54
|
+
transfers: generator.transfers.flatMap((transfer) => createTransfers({
|
|
55
|
+
schema: transfer,
|
|
56
|
+
rows,
|
|
57
|
+
service,
|
|
58
|
+
symbolAssetMap,
|
|
59
|
+
cryptoes,
|
|
60
|
+
fiats,
|
|
61
|
+
})),
|
|
62
|
+
crossId,
|
|
63
|
+
crossType: generator.crossType,
|
|
64
|
+
loanId,
|
|
65
|
+
target: target === undefined || target.type !== 'Nft' ? undefined : target,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return actions;
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../parseRowsToActions/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { stringify } from '@0xtorch/core';
|
|
2
|
+
export const isMatchPattern = ({ value, pattern, }) => {
|
|
3
|
+
const trimmedValue = value.trim();
|
|
4
|
+
if (typeof pattern === 'string') {
|
|
5
|
+
return trimmedValue === pattern;
|
|
6
|
+
}
|
|
7
|
+
switch (pattern.type) {
|
|
8
|
+
case 'defined': {
|
|
9
|
+
return (trimmedValue !== stringify(undefined) && trimmedValue.trim().length > 0);
|
|
10
|
+
}
|
|
11
|
+
case 'undefined': {
|
|
12
|
+
return (trimmedValue.trim().length === 0 ||
|
|
13
|
+
trimmedValue === stringify(undefined));
|
|
14
|
+
}
|
|
15
|
+
case 'in': {
|
|
16
|
+
return pattern.values.includes(trimmedValue);
|
|
17
|
+
}
|
|
18
|
+
case 'not-in': {
|
|
19
|
+
return !pattern.values.includes(trimmedValue);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../parseRowsToActions/pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,KAAK,EACL,OAAO,GAIR,EAAW,EAAE;IACZ,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,YAAY,KAAK,OAAO,CAAA;IACjC,CAAC;IACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,CACL,YAAY,KAAK,SAAS,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACxE,CAAA;QACH,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,OAAO,CACL,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAChC,YAAY,KAAK,SAAS,CAAC,SAAS,CAAC,CACtC,CAAA;QACH,CAAC;QACD,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC9C,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getCellValue } from './cellValue';
|
|
2
|
+
export const getSimpleValue = ({ schema, rows, service, }) => {
|
|
3
|
+
if (typeof schema === 'string') {
|
|
4
|
+
return schema;
|
|
5
|
+
}
|
|
6
|
+
switch (schema.type) {
|
|
7
|
+
case 'cell': {
|
|
8
|
+
return getCellValue({
|
|
9
|
+
schema,
|
|
10
|
+
rows,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
case 'service': {
|
|
14
|
+
return service;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=simpleValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleValue.js","sourceRoot":"","sources":["../../parseRowsToActions/simpleValue.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { stringify } from '@0xtorch/core';
|
|
2
|
+
import { getCellValue } from './cellValue';
|
|
3
|
+
import { getSplitValue } from './splitValue';
|
|
4
|
+
export const getSliceValue = ({ schema, rows, service, }) => {
|
|
5
|
+
const value = getValue({ schema, rows, service });
|
|
6
|
+
return stringify(value).slice(schema.start, schema.end);
|
|
7
|
+
};
|
|
8
|
+
const getValue = ({ schema, rows, service, }) => {
|
|
9
|
+
if (typeof schema.value === 'string') {
|
|
10
|
+
return schema.value;
|
|
11
|
+
}
|
|
12
|
+
switch (schema.value.type) {
|
|
13
|
+
case 'cell': {
|
|
14
|
+
return getCellValue({
|
|
15
|
+
schema: schema.value,
|
|
16
|
+
rows,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
case 'service': {
|
|
20
|
+
return service;
|
|
21
|
+
}
|
|
22
|
+
case 'split': {
|
|
23
|
+
return getSplitValue({
|
|
24
|
+
schema: schema.value,
|
|
25
|
+
rows,
|
|
26
|
+
service,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=sliceValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliceValue.js","sourceRoot":"","sources":["../../parseRowsToActions/sliceValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACjD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;AACzD,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,EAChB,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IACD,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,YAAY,CAAC;gBAClB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,aAAa,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,IAAI;gBACJ,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { stringify } from '@0xtorch/core';
|
|
2
|
+
import { getSimpleValue } from './simpleValue';
|
|
3
|
+
export const getSplitValue = ({ schema, rows, service, }) => {
|
|
4
|
+
const value = getSimpleValue({ schema: schema.value, rows, service });
|
|
5
|
+
return stringify(value).split(schema.splitter)[schema.index];
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=splitValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"splitValue.js","sourceRoot":"","sources":["../../parseRowsToActions/splitValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,MAAM,EACN,IAAI,EACJ,OAAO,GAKR,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACrE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9D,CAAC,CAAA"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { createBigDecimal } from '@0xtorch/big-decimal';
|
|
2
|
+
import { stringify, } from '@0xtorch/core';
|
|
3
|
+
import { getAllValue } from './allValue';
|
|
4
|
+
import { getAsset } from './asset';
|
|
5
|
+
import { isMatchPattern } from './pattern';
|
|
6
|
+
export const createTransfers = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
|
|
7
|
+
if (schema.target === undefined) {
|
|
8
|
+
return [
|
|
9
|
+
createSingleTransfer({
|
|
10
|
+
schema,
|
|
11
|
+
rows,
|
|
12
|
+
service,
|
|
13
|
+
symbolAssetMap,
|
|
14
|
+
cryptoes,
|
|
15
|
+
fiats,
|
|
16
|
+
}),
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
const targetRows = filterTargetRows({
|
|
20
|
+
conditions: schema.target,
|
|
21
|
+
rows,
|
|
22
|
+
});
|
|
23
|
+
return targetRows.map((targetRow) => createSingleTransfer({
|
|
24
|
+
schema,
|
|
25
|
+
rows: [targetRow],
|
|
26
|
+
service,
|
|
27
|
+
symbolAssetMap,
|
|
28
|
+
cryptoes,
|
|
29
|
+
fiats,
|
|
30
|
+
}));
|
|
31
|
+
};
|
|
32
|
+
const filterTargetRows = ({ conditions, rows, }) => {
|
|
33
|
+
const filteredRows = [];
|
|
34
|
+
for (const row of rows) {
|
|
35
|
+
let isMatch = true;
|
|
36
|
+
for (const condition of conditions) {
|
|
37
|
+
const value = stringify(row[condition.column]);
|
|
38
|
+
if (!isMatchPattern({ value, pattern: condition.pattern })) {
|
|
39
|
+
isMatch = false;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (isMatch) {
|
|
44
|
+
filteredRows.push(row);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return filteredRows;
|
|
48
|
+
};
|
|
49
|
+
const createSingleTransfer = ({ schema, rows, service, symbolAssetMap, cryptoes, fiats, }) => {
|
|
50
|
+
const from = schema.from === undefined
|
|
51
|
+
? undefined
|
|
52
|
+
: stringify(getAllValue({ schema: schema.from, rows, service }));
|
|
53
|
+
const to = schema.to === undefined
|
|
54
|
+
? undefined
|
|
55
|
+
: stringify(getAllValue({ schema: schema.to, rows, service }));
|
|
56
|
+
return {
|
|
57
|
+
direction: schema.direction,
|
|
58
|
+
from,
|
|
59
|
+
to,
|
|
60
|
+
asset: getAsset({
|
|
61
|
+
schema: schema.asset,
|
|
62
|
+
rows,
|
|
63
|
+
service,
|
|
64
|
+
symbolAssetMap,
|
|
65
|
+
cryptoes,
|
|
66
|
+
fiats,
|
|
67
|
+
}),
|
|
68
|
+
amount: createAmount({
|
|
69
|
+
schema: schema.amount,
|
|
70
|
+
rows,
|
|
71
|
+
service,
|
|
72
|
+
}),
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
const createAmount = ({ schema, rows, service, }) => {
|
|
76
|
+
switch (schema.type) {
|
|
77
|
+
case 'decimal': {
|
|
78
|
+
const baseValue = stringify(getAllValue({ schema: schema.value, rows, service }));
|
|
79
|
+
let value;
|
|
80
|
+
if (baseValue === stringify(undefined)) {
|
|
81
|
+
value = 0n;
|
|
82
|
+
}
|
|
83
|
+
else if (baseValue.includes('.')) {
|
|
84
|
+
value = BigInt(Math.floor(Number(baseValue)));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
value = BigInt(baseValue);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
value,
|
|
91
|
+
decimals: schema.decimals,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
case 'text': {
|
|
95
|
+
const value = getAllValue({ schema: schema.value, rows, service });
|
|
96
|
+
if (value === undefined) {
|
|
97
|
+
return createBigDecimal(0n);
|
|
98
|
+
}
|
|
99
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
100
|
+
return createBigDecimal(value);
|
|
101
|
+
}
|
|
102
|
+
return value;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=transfer.js.map
|