@0xtorch/csv 0.0.9 → 0.0.10

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 CHANGED
Binary file
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAmountByComponent = void 0;
4
+ const big_decimal_1 = require("@0xtorch/big-decimal");
5
+ const createAmountByComponent = ({ row, component, }) => {
6
+ if (typeof component === 'string') {
7
+ return getColumnAbsAmount(row, component);
8
+ }
9
+ switch (component.type) {
10
+ case 'plus': {
11
+ let amount = getColumnAbsAmount(row, component.columns[0]);
12
+ for (const column of component.columns.slice(1)) {
13
+ amount = (0, big_decimal_1.plus)(amount, getColumnAbsAmount(row, column));
14
+ }
15
+ return amount;
16
+ }
17
+ case 'minus': {
18
+ let amount = getColumnAbsAmount(row, component.columns[0]);
19
+ for (const column of component.columns.slice(1)) {
20
+ amount = (0, big_decimal_1.minus)(amount, getColumnAbsAmount(row, column));
21
+ }
22
+ return amount;
23
+ }
24
+ case 'times': {
25
+ let amount = getColumnAbsAmount(row, component.columns[0]);
26
+ for (const column of component.columns.slice(1)) {
27
+ amount = (0, big_decimal_1.times)(amount, getColumnAbsAmount(row, column), 18);
28
+ }
29
+ return amount;
30
+ }
31
+ case 'divide': {
32
+ let amount = getColumnAbsAmount(row, component.columns[0]);
33
+ for (const column of component.columns.slice(1)) {
34
+ amount = (0, big_decimal_1.divide)(amount, getColumnAbsAmount(row, column), 18);
35
+ }
36
+ return amount;
37
+ }
38
+ }
39
+ };
40
+ exports.createAmountByComponent = createAmountByComponent;
41
+ const getColumnAbsAmount = (row, column) => {
42
+ const amount = row[column];
43
+ if (typeof amount !== 'object') {
44
+ throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
45
+ }
46
+ return (0, big_decimal_1.absoluteValue)(amount);
47
+ };
48
+ //# sourceMappingURL=amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../parseCsvRowToAction/amount.ts"],"names":[],"mappings":";;;AAAA,sDAO6B;AAUtB,MAAM,uBAAuB,GAAG,CAAC,EACtC,GAAG,EACH,SAAS,GACyB,EAAc,EAAE;IAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,kBAAI,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,mBAAK,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,mBAAK,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAA,oBAAM,EAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAtCY,QAAA,uBAAuB,2BAsCnC;AAED,MAAM,kBAAkB,GAAG,CAAC,GAAiB,EAAE,MAAc,EAAc,EAAE;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IACD,OAAO,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -49,7 +49,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
49
49
  .map((component) => (0, text_1.createTextByComponent)({ row, service, component }))
50
50
  .join(''),
51
51
  app: undefined,
52
- transfers: parser.transfers.map((component) => (0, transfer_1.createTransferByComponent)({
52
+ transfers: parser.transfers
53
+ .map((component) => (0, transfer_1.createTransferByComponent)({
53
54
  row,
54
55
  service,
55
56
  symbolAssetMap,
@@ -57,7 +58,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
57
58
  accountId,
58
59
  cryptoCurrencies,
59
60
  fiatCurrencies,
60
- })),
61
+ }))
62
+ .filter(({ amount }) => amount.value > 0n),
61
63
  crossId: parser.crossId === undefined
62
64
  ? undefined
63
65
  : parser.crossId
@@ -1 +1 @@
1
- {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createTransferByComponent = void 0;
4
- const big_decimal_1 = require("@0xtorch/big-decimal");
4
+ const amount_1 = require("./amount");
5
5
  const asset_1 = require("./asset");
6
6
  const createTransferByComponent = ({ row, service, symbolAssetMap, component, accountId, cryptoCurrencies, fiatCurrencies, }) => {
7
7
  const { direction, asset: assetComponent, amount: amountComponent, } = component;
8
- const amount = row[amountComponent];
9
- if (typeof amount !== 'object') {
10
- throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
11
- }
12
8
  return {
13
9
  from: direction === 'in' ? undefined : accountId,
14
10
  to: direction === 'in' ? accountId : undefined,
@@ -20,7 +16,7 @@ const createTransferByComponent = ({ row, service, symbolAssetMap, component, ac
20
16
  cryptoCurrencies,
21
17
  fiatCurrencies,
22
18
  }),
23
- amount: (0, big_decimal_1.absoluteValue)(amount),
19
+ amount: (0, amount_1.createAmountByComponent)({ row, component: amountComponent }),
24
20
  price: undefined,
25
21
  direction,
26
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":";;;AAAA,sDAAoD;AAKpD,mCAAgD;AAYzC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAA;IACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,IAAA,8BAAsB,EAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,IAAA,2BAAa,EAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA;AArCY,QAAA,yBAAyB,6BAqCrC"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":";;;AAIA,qCAAkD;AAClD,mCAAgD;AAYzC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,IAAA,8BAAsB,EAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,IAAA,gCAAuB,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QACpE,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA;AA9BY,QAAA,yBAAyB,6BA8BrC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsersSchema = exports.parserSchema = exports.transferComponentSchema = exports.assetComponentSchema = exports.nftComponentSchema = exports.textComponentSchema = exports.actionComponentSchema = exports.columnComponentSchema = exports.conditionComponentSchema = void 0;
3
+ exports.parsersSchema = exports.parserSchema = exports.transferComponentSchema = exports.amountComponentSchema = exports.assetComponentSchema = exports.nftComponentSchema = exports.textComponentSchema = exports.actionComponentSchema = exports.columnComponentSchema = exports.conditionComponentSchema = void 0;
4
4
  const core_1 = require("@0xtorch/core");
5
5
  const zod_1 = require("zod");
6
6
  exports.conditionComponentSchema = zod_1.z.object({
@@ -57,9 +57,21 @@ exports.assetComponentSchema = zod_1.z.union([
57
57
  exports.columnComponentSchema,
58
58
  exports.nftComponentSchema,
59
59
  ]);
60
+ exports.amountComponentSchema = zod_1.z.union([
61
+ zod_1.z.string(),
62
+ zod_1.z.object({
63
+ type: zod_1.z.union([
64
+ zod_1.z.literal('plus'),
65
+ zod_1.z.literal('minus'),
66
+ zod_1.z.literal('times'),
67
+ zod_1.z.literal('divide'),
68
+ ]),
69
+ columns: zod_1.z.array(zod_1.z.string()).min(2),
70
+ }),
71
+ ]);
60
72
  exports.transferComponentSchema = zod_1.z.object({
61
73
  direction: zod_1.z.union([zod_1.z.literal('in'), zod_1.z.literal('out')]),
62
- amount: zod_1.z.string(),
74
+ amount: exports.amountComponentSchema,
63
75
  asset: exports.assetComponentSchema,
64
76
  });
65
77
  exports.parserSchema = zod_1.z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { absoluteValue, divide, minus, plus, times, } from '@0xtorch/big-decimal';
2
+ export const createAmountByComponent = ({ row, component, }) => {
3
+ if (typeof component === 'string') {
4
+ return getColumnAbsAmount(row, component);
5
+ }
6
+ switch (component.type) {
7
+ case 'plus': {
8
+ let amount = getColumnAbsAmount(row, component.columns[0]);
9
+ for (const column of component.columns.slice(1)) {
10
+ amount = plus(amount, getColumnAbsAmount(row, column));
11
+ }
12
+ return amount;
13
+ }
14
+ case 'minus': {
15
+ let amount = getColumnAbsAmount(row, component.columns[0]);
16
+ for (const column of component.columns.slice(1)) {
17
+ amount = minus(amount, getColumnAbsAmount(row, column));
18
+ }
19
+ return amount;
20
+ }
21
+ case 'times': {
22
+ let amount = getColumnAbsAmount(row, component.columns[0]);
23
+ for (const column of component.columns.slice(1)) {
24
+ amount = times(amount, getColumnAbsAmount(row, column), 18);
25
+ }
26
+ return amount;
27
+ }
28
+ case 'divide': {
29
+ let amount = getColumnAbsAmount(row, component.columns[0]);
30
+ for (const column of component.columns.slice(1)) {
31
+ amount = divide(amount, getColumnAbsAmount(row, column), 18);
32
+ }
33
+ return amount;
34
+ }
35
+ }
36
+ };
37
+ const getColumnAbsAmount = (row, column) => {
38
+ const amount = row[column];
39
+ if (typeof amount !== 'object') {
40
+ throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
41
+ }
42
+ return absoluteValue(amount);
43
+ };
44
+ //# sourceMappingURL=amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../parseCsvRowToAction/amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,GACN,MAAM,sBAAsB,CAAA;AAU7B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,GAAG,EACH,SAAS,GACyB,EAAc,EAAE;IAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,GAAiB,EAAE,MAAc,EAAc,EAAE;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -47,7 +47,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
47
47
  .map((component) => createTextByComponent({ row, service, component }))
48
48
  .join(''),
49
49
  app: undefined,
50
- transfers: parser.transfers.map((component) => createTransferByComponent({
50
+ transfers: parser.transfers
51
+ .map((component) => createTransferByComponent({
51
52
  row,
52
53
  service,
53
54
  symbolAssetMap,
@@ -55,7 +56,8 @@ const parseCsvRowToActionByParser = ({ row, service, parser, symbolAssetMap, acc
55
56
  accountId,
56
57
  cryptoCurrencies,
57
58
  fiatCurrencies,
58
- })),
59
+ }))
60
+ .filter(({ amount }) => amount.value > 0n),
59
61
  crossId: parser.crossId === undefined
60
62
  ? undefined
61
63
  : parser.crossId
@@ -1 +1 @@
1
- {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseCsvRowToAction.js","sourceRoot":"","sources":["../../parseCsvRowToAction/parseCsvRowToAction.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,7 @@
1
- import { absoluteValue } from '@0xtorch/big-decimal';
1
+ import { createAmountByComponent } from './amount';
2
2
  import { createAssetByComponent } from './asset';
3
3
  export const createTransferByComponent = ({ row, service, symbolAssetMap, component, accountId, cryptoCurrencies, fiatCurrencies, }) => {
4
4
  const { direction, asset: assetComponent, amount: amountComponent, } = component;
5
- const amount = row[amountComponent];
6
- if (typeof amount !== 'object') {
7
- throw new TypeError(`amount needs to be BigDecimal but got ${typeof amount}`);
8
- }
9
5
  return {
10
6
  from: direction === 'in' ? undefined : accountId,
11
7
  to: direction === 'in' ? accountId : undefined,
@@ -17,7 +13,7 @@ export const createTransferByComponent = ({ row, service, symbolAssetMap, compon
17
13
  cryptoCurrencies,
18
14
  fiatCurrencies,
19
15
  }),
20
- amount: absoluteValue(amount),
16
+ amount: createAmountByComponent({ row, component: amountComponent }),
21
17
  price: undefined,
22
18
  direction,
23
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAYhD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAA;IACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,yCAAyC,OAAO,MAAM,EAAE,CACzD,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,sBAAsB,CAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAYhD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACsB,EAAY,EAAE;IAClD,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,eAAe,GACxB,GAAG,SAAS,CAAA;IAEb,OAAO;QACL,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,KAAK,EAAE,sBAAsB,CAAC;YAC5B,GAAG;YACH,OAAO;YACP,cAAc;YACd,SAAS,EAAE,cAAc;YACzB,gBAAgB;YAChB,cAAc;SACf,CAAC;QACF,MAAM,EAAE,uBAAuB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QACpE,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
@@ -66,10 +66,23 @@ export const assetComponentSchema = z.union([
66
66
  // nft
67
67
  nftComponentSchema,
68
68
  ]);
69
+ export const amountComponentSchema = z.union([
70
+ /** column から値代入 / 絶対値で代入 */
71
+ z.string(),
72
+ /** 複数の column に四則演算追加 */
73
+ z.object({
74
+ type: z.union([
75
+ z.literal('plus'),
76
+ z.literal('minus'),
77
+ z.literal('times'),
78
+ z.literal('divide'),
79
+ ]),
80
+ columns: z.array(z.string()).min(2),
81
+ }),
82
+ ]);
69
83
  export const transferComponentSchema = z.object({
70
84
  direction: z.union([z.literal('in'), z.literal('out')]),
71
- /** column から値代入 / 絶対値で代入 */
72
- amount: z.string(),
85
+ amount: amountComponentSchema,
73
86
  asset: assetComponentSchema,
74
87
  });
75
88
  // 同一の row でも、 action type によって処理が変わるのでは?
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type BigDecimal } from '@0xtorch/big-decimal';
2
+ import type { z } from 'zod';
3
+ import type { amountComponentSchema } from '../schemas/parser';
4
+ import type { FormattedRow } from '../types';
5
+ type CreateAmountByComponentParameters = {
6
+ readonly row: FormattedRow;
7
+ readonly component: z.infer<typeof amountComponentSchema>;
8
+ };
9
+ export declare const createAmountByComponent: ({ row, component, }: CreateAmountByComponentParameters) => BigDecimal;
10
+ export {};
11
+ //# sourceMappingURL=amount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amount.d.ts","sourceRoot":"","sources":["../../parseCsvRowToAction/amount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,KAAK,iCAAiC,GAAG;IACvC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;CAC1D,CAAA;AAED,eAAO,MAAM,uBAAuB,wBAGjC,iCAAiC,KAAG,UAmCtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG5C,KAAK,mCAAmC,GAAG;IACzC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,cAAc,EAAE,CAAA;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,yBAAyB,8FAQnC,mCAAmC,KAAG,QA6BxC,CAAA"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../parseCsvRowToAction/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,KAAK,mCAAmC,GAAG;IACzC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,cAAc,EAAE,CAAA;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,yBAAyB,8FAQnC,mCAAmC,KAAG,QAsBxC,CAAA"}
@@ -186,10 +186,28 @@ export declare const assetComponentSchema: z.ZodUnion<[z.ZodObject<{
186
186
  type: "service";
187
187
  })[];
188
188
  }>]>;
189
+ export declare const amountComponentSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
190
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
191
+ columns: z.ZodArray<z.ZodString, "many">;
192
+ }, "strip", z.ZodTypeAny, {
193
+ type: "plus" | "minus" | "times" | "divide";
194
+ columns: string[];
195
+ }, {
196
+ type: "plus" | "minus" | "times" | "divide";
197
+ columns: string[];
198
+ }>]>;
189
199
  export declare const transferComponentSchema: z.ZodObject<{
190
200
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
191
- /** column から値代入 / 絶対値で代入 */
192
- amount: z.ZodString;
201
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
202
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
203
+ columns: z.ZodArray<z.ZodString, "many">;
204
+ }, "strip", z.ZodTypeAny, {
205
+ type: "plus" | "minus" | "times" | "divide";
206
+ columns: string[];
207
+ }, {
208
+ type: "plus" | "minus" | "times" | "divide";
209
+ columns: string[];
210
+ }>]>;
193
211
  asset: z.ZodUnion<[z.ZodObject<{
194
212
  type: z.ZodLiteral<"custom">;
195
213
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -248,7 +266,10 @@ export declare const transferComponentSchema: z.ZodObject<{
248
266
  }>]>;
249
267
  }, "strip", z.ZodTypeAny, {
250
268
  direction: "in" | "out";
251
- amount: string;
269
+ amount: string | {
270
+ type: "plus" | "minus" | "times" | "divide";
271
+ columns: string[];
272
+ };
252
273
  asset: {
253
274
  type: "column";
254
275
  column: string;
@@ -267,7 +288,10 @@ export declare const transferComponentSchema: z.ZodObject<{
267
288
  };
268
289
  }, {
269
290
  direction: "in" | "out";
270
- amount: string;
291
+ amount: string | {
292
+ type: "plus" | "minus" | "times" | "divide";
293
+ columns: string[];
294
+ };
271
295
  asset: {
272
296
  type: "column";
273
297
  column: string;
@@ -385,8 +409,16 @@ export declare const parserSchema: z.ZodObject<{
385
409
  }>]>, "many">>;
386
410
  transfers: z.ZodArray<z.ZodObject<{
387
411
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
388
- /** column から値代入 / 絶対値で代入 */
389
- amount: z.ZodString;
412
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
413
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
414
+ columns: z.ZodArray<z.ZodString, "many">;
415
+ }, "strip", z.ZodTypeAny, {
416
+ type: "plus" | "minus" | "times" | "divide";
417
+ columns: string[];
418
+ }, {
419
+ type: "plus" | "minus" | "times" | "divide";
420
+ columns: string[];
421
+ }>]>;
390
422
  asset: z.ZodUnion<[z.ZodObject<{
391
423
  type: z.ZodLiteral<"custom">;
392
424
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -445,7 +477,10 @@ export declare const parserSchema: z.ZodObject<{
445
477
  }>]>;
446
478
  }, "strip", z.ZodTypeAny, {
447
479
  direction: "in" | "out";
448
- amount: string;
480
+ amount: string | {
481
+ type: "plus" | "minus" | "times" | "divide";
482
+ columns: string[];
483
+ };
449
484
  asset: {
450
485
  type: "column";
451
486
  column: string;
@@ -464,7 +499,10 @@ export declare const parserSchema: z.ZodObject<{
464
499
  };
465
500
  }, {
466
501
  direction: "in" | "out";
467
- amount: string;
502
+ amount: string | {
503
+ type: "plus" | "minus" | "times" | "divide";
504
+ columns: string[];
505
+ };
468
506
  asset: {
469
507
  type: "column";
470
508
  column: string;
@@ -577,7 +615,10 @@ export declare const parserSchema: z.ZodObject<{
577
615
  timestamp: string;
578
616
  transfers: {
579
617
  direction: "in" | "out";
580
- amount: string;
618
+ amount: string | {
619
+ type: "plus" | "minus" | "times" | "divide";
620
+ columns: string[];
621
+ };
581
622
  asset: {
582
623
  type: "column";
583
624
  column: string;
@@ -648,7 +689,10 @@ export declare const parserSchema: z.ZodObject<{
648
689
  timestamp: string;
649
690
  transfers: {
650
691
  direction: "in" | "out";
651
- amount: string;
692
+ amount: string | {
693
+ type: "plus" | "minus" | "times" | "divide";
694
+ columns: string[];
695
+ };
652
696
  asset: {
653
697
  type: "column";
654
698
  column: string;
@@ -795,8 +839,16 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
795
839
  }>]>, "many">>;
796
840
  transfers: z.ZodArray<z.ZodObject<{
797
841
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
798
- /** column から値代入 / 絶対値で代入 */
799
- amount: z.ZodString;
842
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
843
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
844
+ columns: z.ZodArray<z.ZodString, "many">;
845
+ }, "strip", z.ZodTypeAny, {
846
+ type: "plus" | "minus" | "times" | "divide";
847
+ columns: string[];
848
+ }, {
849
+ type: "plus" | "minus" | "times" | "divide";
850
+ columns: string[];
851
+ }>]>;
800
852
  asset: z.ZodUnion<[z.ZodObject<{
801
853
  type: z.ZodLiteral<"custom">;
802
854
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -855,7 +907,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
855
907
  }>]>;
856
908
  }, "strip", z.ZodTypeAny, {
857
909
  direction: "in" | "out";
858
- amount: string;
910
+ amount: string | {
911
+ type: "plus" | "minus" | "times" | "divide";
912
+ columns: string[];
913
+ };
859
914
  asset: {
860
915
  type: "column";
861
916
  column: string;
@@ -874,7 +929,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
874
929
  };
875
930
  }, {
876
931
  direction: "in" | "out";
877
- amount: string;
932
+ amount: string | {
933
+ type: "plus" | "minus" | "times" | "divide";
934
+ columns: string[];
935
+ };
878
936
  asset: {
879
937
  type: "column";
880
938
  column: string;
@@ -987,7 +1045,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
987
1045
  timestamp: string;
988
1046
  transfers: {
989
1047
  direction: "in" | "out";
990
- amount: string;
1048
+ amount: string | {
1049
+ type: "plus" | "minus" | "times" | "divide";
1050
+ columns: string[];
1051
+ };
991
1052
  asset: {
992
1053
  type: "column";
993
1054
  column: string;
@@ -1058,7 +1119,10 @@ export declare const parsersSchema: z.ZodArray<z.ZodObject<{
1058
1119
  timestamp: string;
1059
1120
  transfers: {
1060
1121
  direction: "in" | "out";
1061
- amount: string;
1122
+ amount: string | {
1123
+ type: "plus" | "minus" | "times" | "divide";
1124
+ columns: string[];
1125
+ };
1062
1126
  asset: {
1063
1127
  type: "column";
1064
1128
  column: string;
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAMF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;IAO9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe/B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;IAElC,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AAKF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGvB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;QAf7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkB5B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjBxB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;QAf7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkB5B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAKmB,CAAA"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../schemas/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAA;AAMF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;IAO9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe/B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;IAahC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAA;AAKF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGvB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjBxB,6BAA6B;;;;;;;;;;;;;;;;;IAE7B,oCAAoC;;IAEpC,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7B,6BAA6B;;;;;;;;;;;;;;;;;;IAK7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAKmB,CAAA"}
@@ -100,7 +100,16 @@ export declare const csvFormatSchema: z.ZodObject<{
100
100
  }>]>, "many">>;
101
101
  transfers: z.ZodArray<z.ZodObject<{
102
102
  direction: z.ZodUnion<[z.ZodLiteral<"in">, z.ZodLiteral<"out">]>;
103
- amount: z.ZodString;
103
+ amount: z.ZodUnion<[z.ZodString, z.ZodObject<{
104
+ type: z.ZodUnion<[z.ZodLiteral<"plus">, z.ZodLiteral<"minus">, z.ZodLiteral<"times">, z.ZodLiteral<"divide">]>;
105
+ columns: z.ZodArray<z.ZodString, "many">;
106
+ }, "strip", z.ZodTypeAny, {
107
+ type: "plus" | "minus" | "times" | "divide";
108
+ columns: string[];
109
+ }, {
110
+ type: "plus" | "minus" | "times" | "divide";
111
+ columns: string[];
112
+ }>]>;
104
113
  asset: z.ZodUnion<[z.ZodObject<{
105
114
  type: z.ZodLiteral<"custom">;
106
115
  assetType: z.ZodUnion<[z.ZodLiteral<"CryptoCurrency">, z.ZodLiteral<"FiatCurrency">, z.ZodLiteral<"Nft">]>;
@@ -159,7 +168,10 @@ export declare const csvFormatSchema: z.ZodObject<{
159
168
  }>]>;
160
169
  }, "strip", z.ZodTypeAny, {
161
170
  direction: "in" | "out";
162
- amount: string;
171
+ amount: string | {
172
+ type: "plus" | "minus" | "times" | "divide";
173
+ columns: string[];
174
+ };
163
175
  asset: {
164
176
  type: "column";
165
177
  column: string;
@@ -178,7 +190,10 @@ export declare const csvFormatSchema: z.ZodObject<{
178
190
  };
179
191
  }, {
180
192
  direction: "in" | "out";
181
- amount: string;
193
+ amount: string | {
194
+ type: "plus" | "minus" | "times" | "divide";
195
+ columns: string[];
196
+ };
182
197
  asset: {
183
198
  type: "column";
184
199
  column: string;
@@ -289,7 +304,10 @@ export declare const csvFormatSchema: z.ZodObject<{
289
304
  timestamp: string;
290
305
  transfers: {
291
306
  direction: "in" | "out";
292
- amount: string;
307
+ amount: string | {
308
+ type: "plus" | "minus" | "times" | "divide";
309
+ columns: string[];
310
+ };
293
311
  asset: {
294
312
  type: "column";
295
313
  column: string;
@@ -360,7 +378,10 @@ export declare const csvFormatSchema: z.ZodObject<{
360
378
  timestamp: string;
361
379
  transfers: {
362
380
  direction: "in" | "out";
363
- amount: string;
381
+ amount: string | {
382
+ type: "plus" | "minus" | "times" | "divide";
383
+ columns: string[];
384
+ };
364
385
  asset: {
365
386
  type: "column";
366
387
  column: string;
@@ -437,7 +458,10 @@ export declare const csvFormatSchema: z.ZodObject<{
437
458
  timestamp: string;
438
459
  transfers: {
439
460
  direction: "in" | "out";
440
- amount: string;
461
+ amount: string | {
462
+ type: "plus" | "minus" | "times" | "divide";
463
+ columns: string[];
464
+ };
441
465
  asset: {
442
466
  type: "column";
443
467
  column: string;
@@ -514,7 +538,10 @@ export declare const csvFormatSchema: z.ZodObject<{
514
538
  timestamp: string;
515
539
  transfers: {
516
540
  direction: "in" | "out";
517
- amount: string;
541
+ amount: string | {
542
+ type: "plus" | "minus" | "times" | "divide";
543
+ columns: string[];
544
+ };
518
545
  asset: {
519
546
  type: "column";
520
547
  column: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAA"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../schemas/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/csv",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "Cryptorch CSV extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -35,7 +35,7 @@
35
35
  ],
36
36
  "dependencies": {
37
37
  "@0xtorch/big-decimal": "^0.0.10",
38
- "@0xtorch/core": "^0.0.41",
38
+ "@0xtorch/core": "^0.0.44",
39
39
  "encoding-japanese": "^2.1.0",
40
40
  "papaparse": "^5.4.1",
41
41
  "zod": "^3.23.8"
@@ -0,0 +1,66 @@
1
+ import {
2
+ type BigDecimal,
3
+ absoluteValue,
4
+ divide,
5
+ minus,
6
+ plus,
7
+ times,
8
+ } from '@0xtorch/big-decimal'
9
+ import type { z } from 'zod'
10
+ import type { amountComponentSchema } from '../schemas/parser'
11
+ import type { FormattedRow } from '../types'
12
+
13
+ type CreateAmountByComponentParameters = {
14
+ readonly row: FormattedRow
15
+ readonly component: z.infer<typeof amountComponentSchema>
16
+ }
17
+
18
+ export const createAmountByComponent = ({
19
+ row,
20
+ component,
21
+ }: CreateAmountByComponentParameters): BigDecimal => {
22
+ if (typeof component === 'string') {
23
+ return getColumnAbsAmount(row, component)
24
+ }
25
+
26
+ switch (component.type) {
27
+ case 'plus': {
28
+ let amount = getColumnAbsAmount(row, component.columns[0])
29
+ for (const column of component.columns.slice(1)) {
30
+ amount = plus(amount, getColumnAbsAmount(row, column))
31
+ }
32
+ return amount
33
+ }
34
+ case 'minus': {
35
+ let amount = getColumnAbsAmount(row, component.columns[0])
36
+ for (const column of component.columns.slice(1)) {
37
+ amount = minus(amount, getColumnAbsAmount(row, column))
38
+ }
39
+ return amount
40
+ }
41
+ case 'times': {
42
+ let amount = getColumnAbsAmount(row, component.columns[0])
43
+ for (const column of component.columns.slice(1)) {
44
+ amount = times(amount, getColumnAbsAmount(row, column), 18)
45
+ }
46
+ return amount
47
+ }
48
+ case 'divide': {
49
+ let amount = getColumnAbsAmount(row, component.columns[0])
50
+ for (const column of component.columns.slice(1)) {
51
+ amount = divide(amount, getColumnAbsAmount(row, column), 18)
52
+ }
53
+ return amount
54
+ }
55
+ }
56
+ }
57
+
58
+ const getColumnAbsAmount = (row: FormattedRow, column: string): BigDecimal => {
59
+ const amount = row[column]
60
+ if (typeof amount !== 'object') {
61
+ throw new TypeError(
62
+ `amount needs to be BigDecimal but got ${typeof amount}`,
63
+ )
64
+ }
65
+ return absoluteValue(amount)
66
+ }
@@ -90,17 +90,19 @@ const parseCsvRowToActionByParser = ({
90
90
  )
91
91
  .join(''),
92
92
  app: undefined,
93
- transfers: parser.transfers.map((component) =>
94
- createTransferByComponent({
95
- row,
96
- service,
97
- symbolAssetMap,
98
- component,
99
- accountId,
100
- cryptoCurrencies,
101
- fiatCurrencies,
102
- }),
103
- ),
93
+ transfers: parser.transfers
94
+ .map((component) =>
95
+ createTransferByComponent({
96
+ row,
97
+ service,
98
+ symbolAssetMap,
99
+ component,
100
+ accountId,
101
+ cryptoCurrencies,
102
+ fiatCurrencies,
103
+ }),
104
+ )
105
+ .filter(({ amount }) => amount.value > 0n),
104
106
  crossId:
105
107
  parser.crossId === undefined
106
108
  ? undefined
@@ -1,8 +1,8 @@
1
- import { absoluteValue } from '@0xtorch/big-decimal'
2
1
  import type { CryptoCurrency, FiatCurrency, Transfer } from '@0xtorch/core'
3
2
  import type { z } from 'zod'
4
3
  import type { transferComponentSchema } from '../schemas/parser'
5
4
  import type { FormattedRow } from '../types'
5
+ import { createAmountByComponent } from './amount'
6
6
  import { createAssetByComponent } from './asset'
7
7
 
8
8
  type CreateTransferByComponentParameters = {
@@ -30,13 +30,6 @@ export const createTransferByComponent = ({
30
30
  amount: amountComponent,
31
31
  } = component
32
32
 
33
- const amount = row[amountComponent]
34
- if (typeof amount !== 'object') {
35
- throw new TypeError(
36
- `amount needs to be BigDecimal but got ${typeof amount}`,
37
- )
38
- }
39
-
40
33
  return {
41
34
  from: direction === 'in' ? undefined : accountId,
42
35
  to: direction === 'in' ? accountId : undefined,
@@ -48,7 +41,7 @@ export const createTransferByComponent = ({
48
41
  cryptoCurrencies,
49
42
  fiatCurrencies,
50
43
  }),
51
- amount: absoluteValue(amount),
44
+ amount: createAmountByComponent({ row, component: amountComponent }),
52
45
  price: undefined,
53
46
  direction,
54
47
  }
package/schemas/parser.ts CHANGED
@@ -74,10 +74,24 @@ export const assetComponentSchema = z.union([
74
74
  nftComponentSchema,
75
75
  ])
76
76
 
77
+ export const amountComponentSchema = z.union([
78
+ /** column から値代入 / 絶対値で代入 */
79
+ z.string(),
80
+ /** 複数の column に四則演算追加 */
81
+ z.object({
82
+ type: z.union([
83
+ z.literal('plus'),
84
+ z.literal('minus'),
85
+ z.literal('times'),
86
+ z.literal('divide'),
87
+ ]),
88
+ columns: z.array(z.string()).min(2),
89
+ }),
90
+ ])
91
+
77
92
  export const transferComponentSchema = z.object({
78
93
  direction: z.union([z.literal('in'), z.literal('out')]),
79
- /** column から値代入 / 絶対値で代入 */
80
- amount: z.string(),
94
+ amount: amountComponentSchema,
81
95
  asset: assetComponentSchema,
82
96
  })
83
97