@0xtorch/core 0.0.35 → 0.0.36
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/_cjs/actions/parsers/default.js +3 -5
- package/_cjs/actions/parsers/default.js.map +1 -1
- package/_cjs/actions/parsers/income/atomicArbitrage.js +4 -4
- package/_cjs/actions/parsers/income/atomicArbitrage.js.map +1 -1
- package/_cjs/actions/utils/createEvidenceNoneAccountActions.js +27 -29
- package/_cjs/actions/utils/createEvidenceNoneAccountActions.js.map +1 -1
- package/_cjs/actions/utils/mergeSameAssetTransfers.js +3 -5
- package/_cjs/actions/utils/mergeSameAssetTransfers.js.map +1 -1
- package/_cjs/assets/definitions/coingeckoCryptoCurrencyDataSource.js +2 -2
- package/_cjs/assets/definitions/coingeckoCryptoCurrencyDataSource.js.map +1 -1
- package/_cjs/assets/externals/coingecko/getAutoRetry.js +2 -2
- package/_cjs/assets/externals/coingecko/getAutoRetry.js.map +1 -1
- package/_cjs/utils/errors.js +4 -5
- package/_cjs/utils/errors.js.map +1 -1
- package/_cjs/utils/rest.js +4 -7
- package/_cjs/utils/rest.js.map +1 -1
- package/_cjs/utils/stringify.js.map +1 -1
- package/_esm/actions/parsers/default.js +3 -5
- package/_esm/actions/parsers/default.js.map +1 -1
- package/_esm/actions/parsers/income/atomicArbitrage.js +4 -4
- package/_esm/actions/parsers/income/atomicArbitrage.js.map +1 -1
- package/_esm/actions/utils/createEvidenceNoneAccountActions.js +27 -29
- package/_esm/actions/utils/createEvidenceNoneAccountActions.js.map +1 -1
- package/_esm/actions/utils/mergeSameAssetTransfers.js +3 -5
- package/_esm/actions/utils/mergeSameAssetTransfers.js.map +1 -1
- package/_esm/assets/definitions/coingeckoCryptoCurrencyDataSource.js +6 -3
- package/_esm/assets/definitions/coingeckoCryptoCurrencyDataSource.js.map +1 -1
- package/_esm/assets/externals/coingecko/getAutoRetry.js +2 -2
- package/_esm/assets/externals/coingecko/getAutoRetry.js.map +1 -1
- package/_esm/utils/errors.js +5 -7
- package/_esm/utils/errors.js.map +1 -1
- package/_esm/utils/rest.js +4 -8
- package/_esm/utils/rest.js.map +1 -1
- package/_esm/utils/stringify.js +0 -2
- package/_esm/utils/stringify.js.map +1 -1
- package/_types/actions/parsers/action.d.ts.map +1 -1
- package/_types/actions/parsers/borrow/borrow.d.ts.map +1 -1
- package/_types/actions/parsers/crossReplace/bridgeFrom.d.ts.map +1 -1
- package/_types/actions/parsers/crossReplace/bridgeTo.d.ts.map +1 -1
- package/_types/actions/parsers/crossReplace/crossReplace.d.ts.map +1 -1
- package/_types/actions/parsers/crossTrade/crossTrade.d.ts.map +1 -1
- package/_types/actions/parsers/default.d.ts.map +1 -1
- package/_types/actions/parsers/deposit/addLiquidity.d.ts.map +1 -1
- package/_types/actions/parsers/deposit/deposit.d.ts.map +1 -1
- package/_types/actions/parsers/deposit/depositWithBond.d.ts.map +1 -1
- package/_types/actions/parsers/deposit/stake.d.ts.map +1 -1
- package/_types/actions/parsers/fee/fee.d.ts.map +1 -1
- package/_types/actions/parsers/fee/transactionFee.d.ts.map +1 -1
- package/_types/actions/parsers/ignore/approve.d.ts +1 -3
- package/_types/actions/parsers/ignore/approve.d.ts.map +1 -1
- package/_types/actions/parsers/ignore/failTx.d.ts +1 -3
- package/_types/actions/parsers/ignore/failTx.d.ts.map +1 -1
- package/_types/actions/parsers/ignore/receiveFromCex.d.ts.map +1 -1
- package/_types/actions/parsers/ignore/revoke.d.ts +1 -3
- package/_types/actions/parsers/ignore/revoke.d.ts.map +1 -1
- package/_types/actions/parsers/ignore/sendToCex.d.ts.map +1 -1
- package/_types/actions/parsers/ignore/spam.d.ts +1 -3
- package/_types/actions/parsers/ignore/spam.d.ts.map +1 -1
- package/_types/actions/parsers/income/atomicArbitrage.d.ts +1 -3
- package/_types/actions/parsers/income/atomicArbitrage.d.ts.map +1 -1
- package/_types/actions/parsers/income/freeMintNft.d.ts.map +1 -1
- package/_types/actions/parsers/income/income.d.ts.map +1 -1
- package/_types/actions/parsers/repayment/repayment.d.ts.map +1 -1
- package/_types/actions/parsers/repayment/repaymentWithDebt.d.ts.map +1 -1
- package/_types/actions/parsers/replace/replace.d.ts.map +1 -1
- package/_types/actions/parsers/replace/swapNft.d.ts.map +1 -1
- package/_types/actions/parsers/replace/unwrap.d.ts.map +1 -1
- package/_types/actions/parsers/replace/wrap.d.ts.map +1 -1
- package/_types/actions/parsers/trade/buyCrypto.d.ts.map +1 -1
- package/_types/actions/parsers/trade/buyNft.d.ts.map +1 -1
- package/_types/actions/parsers/trade/mintNft.d.ts.map +1 -1
- package/_types/actions/parsers/trade/sellCrypto.d.ts.map +1 -1
- package/_types/actions/parsers/trade/sellNft.d.ts.map +1 -1
- package/_types/actions/parsers/trade/trade.d.ts +1 -3
- package/_types/actions/parsers/trade/trade.d.ts.map +1 -1
- package/_types/actions/parsers/transfer/transfer.d.ts.map +1 -1
- package/_types/actions/parsers/valuedown/valuedown.d.ts.map +1 -1
- package/_types/actions/parsers/valueup/valueup.d.ts.map +1 -1
- package/_types/actions/parsers/withdraw/removeLiquidity.d.ts.map +1 -1
- package/_types/actions/parsers/withdraw/unstake.d.ts.map +1 -1
- package/_types/actions/parsers/withdraw/withdraw.d.ts.map +1 -1
- package/_types/actions/parsers/withdraw/withdrawWithBond.d.ts.map +1 -1
- package/_types/actions/utils/createEvidenceNoneAccountActions.d.ts.map +1 -1
- package/_types/actions/utils/mergeSameAssetTransfers.d.ts.map +1 -1
- package/_types/actions/utils/transfer.d.ts +10 -259
- package/_types/actions/utils/transfer.d.ts.map +1 -1
- package/_types/assets/creates/createCryptoCurrency.d.ts +2 -16
- package/_types/assets/creates/createCryptoCurrency.d.ts.map +1 -1
- package/_types/assets/creates/createFiatCurrency.d.ts +2 -7
- package/_types/assets/creates/createFiatCurrency.d.ts.map +1 -1
- package/_types/assets/definitions/coingeckoCryptoCurrencyDataSource.d.ts.map +1 -1
- package/_types/assets/externals/coingecko/getAutoRetry.d.ts.map +1 -1
- package/_types/assets/externals/coingecko/getCoinMarketChartRange.d.ts.map +1 -1
- package/_types/assets/externals/coingecko/getCoinsMarkets.d.ts.map +1 -1
- package/_types/utils/errors.d.ts.map +1 -1
- package/_types/utils/rest.d.ts.map +1 -1
- package/_types/utils/schema.d.ts.map +1 -1
- package/_types/utils/stringify.d.ts.map +1 -1
- package/_types/utils/types.d.ts.map +1 -1
- package/actions/parsers/default.ts +5 -4
- package/actions/utils/createEvidenceNoneAccountActions.ts +27 -37
- package/actions/utils/mergeSameAssetTransfers.ts +5 -4
- package/assets/definitions/coingeckoCryptoCurrencyDataSource.ts +2 -0
- package/package.json +2 -5
- package/utils/errors.ts +3 -5
- package/utils/rest.ts +4 -6
- package/utils/stringify.ts +0 -2
- package/utils/types.ts +0 -1
|
@@ -66,7 +66,7 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
66
66
|
}))
|
|
67
67
|
}
|
|
68
68
|
// transfer 全てが in のみの場合は個別に income action に変換
|
|
69
|
-
|
|
69
|
+
if (inOutTransferList.every((transfer) => transfer.direction === 'in')) {
|
|
70
70
|
const incomeActionList = inOutTransferList
|
|
71
71
|
.filter((transfer): transfer is TransferIn => transfer.direction === 'in')
|
|
72
72
|
.map(
|
|
@@ -88,9 +88,7 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
88
88
|
}))
|
|
89
89
|
}
|
|
90
90
|
// transfer 全てが out のみの場合は個別に transfer action に変換
|
|
91
|
-
|
|
92
|
-
inOutTransferList.every((transfer) => transfer.direction === 'out')
|
|
93
|
-
) {
|
|
91
|
+
if (inOutTransferList.every((transfer) => transfer.direction === 'out')) {
|
|
94
92
|
const transferActionList = inOutTransferList
|
|
95
93
|
.filter(
|
|
96
94
|
(transfer): transfer is TransferOut => transfer.direction === 'out',
|
|
@@ -114,9 +112,7 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
114
112
|
}))
|
|
115
113
|
}
|
|
116
114
|
// transfer asset 全てが NFT である場合、 swap-nft action に変換
|
|
117
|
-
|
|
118
|
-
inOutTransferList.every((transfer) => transfer.asset.type === 'Nft')
|
|
119
|
-
) {
|
|
115
|
+
if (inOutTransferList.every((transfer) => transfer.asset.type === 'Nft')) {
|
|
120
116
|
return [
|
|
121
117
|
...moveActionList,
|
|
122
118
|
{
|
|
@@ -139,7 +135,7 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
139
135
|
}))
|
|
140
136
|
}
|
|
141
137
|
// in transfer asset 全て NFT , out transfer asset に NFT 含まない場合、 buy-nft action に変換
|
|
142
|
-
|
|
138
|
+
if (
|
|
143
139
|
inOutTransferList
|
|
144
140
|
.filter((transfer) => transfer.direction === 'in')
|
|
145
141
|
.every((transfer) => transfer.asset.type === 'Nft') &&
|
|
@@ -179,7 +175,7 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
179
175
|
}))
|
|
180
176
|
}
|
|
181
177
|
// out transfer 全て NFT, in transfer に NFT を含まない場合、 sell-nft action に変換
|
|
182
|
-
|
|
178
|
+
if (
|
|
183
179
|
inOutTransferList
|
|
184
180
|
.filter((transfer) => transfer.direction === 'out')
|
|
185
181
|
.every((transfer) => transfer.asset.type === 'Nft') &&
|
|
@@ -218,7 +214,7 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
218
214
|
}))
|
|
219
215
|
}
|
|
220
216
|
// in transfer asset 全て Crypto , out transfer asset 全て Fiat の場合、 buy-crypto action に変換
|
|
221
|
-
|
|
217
|
+
if (
|
|
222
218
|
inOutTransferList
|
|
223
219
|
.filter((transfer) => transfer.direction === 'in')
|
|
224
220
|
.every((transfer) => transfer.asset.type === 'CryptoCurrency') &&
|
|
@@ -254,7 +250,7 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
254
250
|
}))
|
|
255
251
|
}
|
|
256
252
|
// in transfer asset 全て Fiat , out transfer asset 全て Crypto の場合、 sell-crypto action に変換
|
|
257
|
-
|
|
253
|
+
if (
|
|
258
254
|
inOutTransferList
|
|
259
255
|
.filter((transfer) => transfer.direction === 'in')
|
|
260
256
|
.every((transfer) => transfer.asset.type === 'FiatCurrency') &&
|
|
@@ -290,30 +286,24 @@ export const createEvidenceNoneAccountActions = ({
|
|
|
290
286
|
}))
|
|
291
287
|
}
|
|
292
288
|
// それ以外の場合、 trade action に変換
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
} satisfies AccountActionTrade,
|
|
314
|
-
].map((action, order) => ({
|
|
315
|
-
...action,
|
|
316
|
-
order,
|
|
317
|
-
}))
|
|
318
|
-
}
|
|
289
|
+
return [
|
|
290
|
+
...moveActionList,
|
|
291
|
+
{
|
|
292
|
+
type: 'NormalAccountAction',
|
|
293
|
+
action: 'trade',
|
|
294
|
+
source,
|
|
295
|
+
order: 0,
|
|
296
|
+
comment: undefined,
|
|
297
|
+
app: undefined,
|
|
298
|
+
evidence: 'none',
|
|
299
|
+
timestamp,
|
|
300
|
+
transfers: [
|
|
301
|
+
...inOutTransferList.filter((transfer) => transfer.direction === 'in'),
|
|
302
|
+
...inOutTransferList.filter((transfer) => transfer.direction === 'out'),
|
|
303
|
+
],
|
|
304
|
+
} satisfies AccountActionTrade,
|
|
305
|
+
].map((action, order) => ({
|
|
306
|
+
...action,
|
|
307
|
+
order,
|
|
308
|
+
}))
|
|
319
309
|
}
|
|
@@ -136,13 +136,14 @@ const createTransferDirection = (
|
|
|
136
136
|
accountIds.has(transfer.to)
|
|
137
137
|
) {
|
|
138
138
|
return 'none'
|
|
139
|
-
}
|
|
139
|
+
}
|
|
140
|
+
if (transfer.from !== undefined && accountIds.has(transfer.from)) {
|
|
140
141
|
return 'out'
|
|
141
|
-
}
|
|
142
|
+
}
|
|
143
|
+
if (transfer.to !== undefined && accountIds.has(transfer.to)) {
|
|
142
144
|
return 'in'
|
|
143
|
-
} else {
|
|
144
|
-
return 'none'
|
|
145
145
|
}
|
|
146
|
+
return 'none'
|
|
146
147
|
}
|
|
147
148
|
|
|
148
149
|
const reverseTransferDirection = (
|
|
@@ -34,6 +34,7 @@ export const coingeckoCryptoCurrencyDataSource = createCryptoCurrencyDataSource(
|
|
|
34
34
|
)
|
|
35
35
|
}
|
|
36
36
|
const coingeckoIds = targetCurrencies.map(
|
|
37
|
+
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
|
37
38
|
(currency) => currency.market.coingeckoId!,
|
|
38
39
|
)
|
|
39
40
|
const coins = await getCoinsMarkets(
|
|
@@ -84,6 +85,7 @@ export const coingeckoCryptoCurrencyDataSource = createCryptoCurrencyDataSource(
|
|
|
84
85
|
// timestamp から from,to を生成する
|
|
85
86
|
const sortedTimestampList = timestampList.toSorted((a, b) => a - b)
|
|
86
87
|
const from = Math.floor(sortedTimestampList[0] / 1000)
|
|
88
|
+
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
|
87
89
|
const to = Math.ceil(sortedTimestampList.at(-1)! / 1000)
|
|
88
90
|
|
|
89
91
|
// from, to を 90 日間毎に分割する
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xtorch/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36",
|
|
4
4
|
"description": "Cryptorch | TypeScript Analyze Interface for Crypto Data.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cryptorch",
|
|
@@ -35,10 +35,7 @@
|
|
|
35
35
|
"!tsconfig.build.json"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@0xtorch/big-decimal": "^0.0.
|
|
38
|
+
"@0xtorch/big-decimal": "^0.0.10",
|
|
39
39
|
"zod": "^3.23.8"
|
|
40
|
-
},
|
|
41
|
-
"peerDependencies": {
|
|
42
|
-
"typescript": "^5.0.0"
|
|
43
40
|
}
|
|
44
41
|
}
|
package/utils/errors.ts
CHANGED
|
@@ -26,11 +26,10 @@ class BaseError extends Error {
|
|
|
26
26
|
const details =
|
|
27
27
|
arguments_.cause instanceof BaseError
|
|
28
28
|
? arguments_.cause.details
|
|
29
|
-
:
|
|
30
|
-
arguments_.cause?.message !== undefined &&
|
|
29
|
+
: arguments_.cause?.message !== undefined &&
|
|
31
30
|
arguments_.cause?.message.length > 0
|
|
32
31
|
? arguments_.cause.message
|
|
33
|
-
: arguments_.details
|
|
32
|
+
: arguments_.details ?? ''
|
|
34
33
|
|
|
35
34
|
this.message = [
|
|
36
35
|
shortMessage.length > 0 ? shortMessage : 'An error occurred.',
|
|
@@ -49,9 +48,8 @@ class BaseError extends Error {
|
|
|
49
48
|
|
|
50
49
|
walk(): Error
|
|
51
50
|
walk(function_: (error: unknown) => boolean): Error | null
|
|
52
|
-
//
|
|
51
|
+
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
53
52
|
walk(function_?: any): any {
|
|
54
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
55
53
|
return walk(this, function_)
|
|
56
54
|
}
|
|
57
55
|
}
|
package/utils/rest.ts
CHANGED
|
@@ -47,7 +47,6 @@ export const rest = async <TData>(
|
|
|
47
47
|
signal: true,
|
|
48
48
|
},
|
|
49
49
|
)
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
51
50
|
const data =
|
|
52
51
|
response.headers.get('Content-Type')?.startsWith('application/json') ===
|
|
53
52
|
true
|
|
@@ -57,8 +56,7 @@ export const rest = async <TData>(
|
|
|
57
56
|
if (!response.ok) {
|
|
58
57
|
const errorStringify =
|
|
59
58
|
typeof data === 'object' && data !== null && 'error' in data
|
|
60
|
-
?
|
|
61
|
-
stringify(data.error)
|
|
59
|
+
? stringify(data.error)
|
|
62
60
|
: ''
|
|
63
61
|
throw new HttpRequestError({
|
|
64
62
|
body: body === undefined ? undefined : stringify(body),
|
|
@@ -77,15 +75,15 @@ export const rest = async <TData>(
|
|
|
77
75
|
error instanceof ZodError
|
|
78
76
|
) {
|
|
79
77
|
throw error
|
|
80
|
-
}
|
|
78
|
+
}
|
|
79
|
+
if (error instanceof Error) {
|
|
81
80
|
throw new HttpRequestError({
|
|
82
81
|
body: body === undefined ? undefined : stringify(body),
|
|
83
82
|
details: error.message,
|
|
84
83
|
url,
|
|
85
84
|
})
|
|
86
|
-
} else {
|
|
87
|
-
throw error
|
|
88
85
|
}
|
|
86
|
+
throw error
|
|
89
87
|
}
|
|
90
88
|
}
|
|
91
89
|
|
package/utils/stringify.ts
CHANGED
|
@@ -2,9 +2,7 @@ export const stringify: typeof JSON.stringify = (value, replacer, space) =>
|
|
|
2
2
|
JSON.stringify(
|
|
3
3
|
value,
|
|
4
4
|
(key, value_) => {
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
6
5
|
const value = typeof value_ === 'bigint' ? value_.toString() : value_
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
8
6
|
return typeof replacer === 'function' ? replacer(key, value) : value
|
|
9
7
|
},
|
|
10
8
|
space,
|