@cyberdrk/onchain 0.1.0

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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +135 -0
  3. package/dist/cli/program.d.ts +4 -0
  4. package/dist/cli/program.d.ts.map +1 -0
  5. package/dist/cli/program.js +43 -0
  6. package/dist/cli/program.js.map +1 -0
  7. package/dist/cli/setup-wizard.d.ts +7 -0
  8. package/dist/cli/setup-wizard.d.ts.map +1 -0
  9. package/dist/cli/setup-wizard.js +96 -0
  10. package/dist/cli/setup-wizard.js.map +1 -0
  11. package/dist/cli/shared.d.ts +35 -0
  12. package/dist/cli/shared.d.ts.map +1 -0
  13. package/dist/cli/shared.js +120 -0
  14. package/dist/cli/shared.js.map +1 -0
  15. package/dist/cli.d.ts +3 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +10 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/commands/balance.d.ts +4 -0
  20. package/dist/commands/balance.d.ts.map +1 -0
  21. package/dist/commands/balance.js +141 -0
  22. package/dist/commands/balance.js.map +1 -0
  23. package/dist/commands/binance.d.ts +4 -0
  24. package/dist/commands/binance.d.ts.map +1 -0
  25. package/dist/commands/binance.js +129 -0
  26. package/dist/commands/binance.js.map +1 -0
  27. package/dist/commands/coinbase.d.ts +4 -0
  28. package/dist/commands/coinbase.d.ts.map +1 -0
  29. package/dist/commands/coinbase.js +122 -0
  30. package/dist/commands/coinbase.js.map +1 -0
  31. package/dist/commands/config.d.ts +4 -0
  32. package/dist/commands/config.d.ts.map +1 -0
  33. package/dist/commands/config.js +90 -0
  34. package/dist/commands/config.js.map +1 -0
  35. package/dist/commands/history.d.ts +4 -0
  36. package/dist/commands/history.d.ts.map +1 -0
  37. package/dist/commands/history.js +124 -0
  38. package/dist/commands/history.js.map +1 -0
  39. package/dist/commands/markets.d.ts +4 -0
  40. package/dist/commands/markets.d.ts.map +1 -0
  41. package/dist/commands/markets.js +59 -0
  42. package/dist/commands/markets.js.map +1 -0
  43. package/dist/commands/polymarket.d.ts +4 -0
  44. package/dist/commands/polymarket.d.ts.map +1 -0
  45. package/dist/commands/polymarket.js +180 -0
  46. package/dist/commands/polymarket.js.map +1 -0
  47. package/dist/commands/portfolio.d.ts +4 -0
  48. package/dist/commands/portfolio.d.ts.map +1 -0
  49. package/dist/commands/portfolio.js +162 -0
  50. package/dist/commands/portfolio.js.map +1 -0
  51. package/dist/commands/price.d.ts +4 -0
  52. package/dist/commands/price.d.ts.map +1 -0
  53. package/dist/commands/price.js +95 -0
  54. package/dist/commands/price.js.map +1 -0
  55. package/dist/commands/setup.d.ts +4 -0
  56. package/dist/commands/setup.d.ts.map +1 -0
  57. package/dist/commands/setup.js +47 -0
  58. package/dist/commands/setup.js.map +1 -0
  59. package/dist/commands/test.d.ts +4 -0
  60. package/dist/commands/test.d.ts.map +1 -0
  61. package/dist/commands/test.js +198 -0
  62. package/dist/commands/test.js.map +1 -0
  63. package/dist/index.d.ts +5 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +6 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/lib/browser-scraper.d.ts +39 -0
  68. package/dist/lib/browser-scraper.d.ts.map +1 -0
  69. package/dist/lib/browser-scraper.js +214 -0
  70. package/dist/lib/browser-scraper.js.map +1 -0
  71. package/dist/lib/config.d.ts +19 -0
  72. package/dist/lib/config.d.ts.map +1 -0
  73. package/dist/lib/config.js +52 -0
  74. package/dist/lib/config.js.map +1 -0
  75. package/dist/lib/credentials.d.ts +23 -0
  76. package/dist/lib/credentials.d.ts.map +1 -0
  77. package/dist/lib/credentials.js +49 -0
  78. package/dist/lib/credentials.js.map +1 -0
  79. package/dist/lib/mixins/binance.d.ts +12 -0
  80. package/dist/lib/mixins/binance.d.ts.map +1 -0
  81. package/dist/lib/mixins/binance.js +167 -0
  82. package/dist/lib/mixins/binance.js.map +1 -0
  83. package/dist/lib/mixins/coinbase.d.ts +11 -0
  84. package/dist/lib/mixins/coinbase.d.ts.map +1 -0
  85. package/dist/lib/mixins/coinbase.js +266 -0
  86. package/dist/lib/mixins/coinbase.js.map +1 -0
  87. package/dist/lib/mixins/coingecko.d.ts +10 -0
  88. package/dist/lib/mixins/coingecko.d.ts.map +1 -0
  89. package/dist/lib/mixins/coingecko.js +217 -0
  90. package/dist/lib/mixins/coingecko.js.map +1 -0
  91. package/dist/lib/mixins/coinmarketcap.d.ts +9 -0
  92. package/dist/lib/mixins/coinmarketcap.d.ts.map +1 -0
  93. package/dist/lib/mixins/coinmarketcap.js +142 -0
  94. package/dist/lib/mixins/coinmarketcap.js.map +1 -0
  95. package/dist/lib/mixins/debank.d.ts +21 -0
  96. package/dist/lib/mixins/debank.d.ts.map +1 -0
  97. package/dist/lib/mixins/debank.js +280 -0
  98. package/dist/lib/mixins/debank.js.map +1 -0
  99. package/dist/lib/mixins/helius.d.ts +12 -0
  100. package/dist/lib/mixins/helius.d.ts.map +1 -0
  101. package/dist/lib/mixins/helius.js +281 -0
  102. package/dist/lib/mixins/helius.js.map +1 -0
  103. package/dist/lib/mixins/polymarket.d.ts +13 -0
  104. package/dist/lib/mixins/polymarket.d.ts.map +1 -0
  105. package/dist/lib/mixins/polymarket.js +186 -0
  106. package/dist/lib/mixins/polymarket.js.map +1 -0
  107. package/dist/lib/onchain-client-base.d.ts +20 -0
  108. package/dist/lib/onchain-client-base.d.ts.map +1 -0
  109. package/dist/lib/onchain-client-base.js +45 -0
  110. package/dist/lib/onchain-client-base.js.map +1 -0
  111. package/dist/lib/onchain-client-types.d.ts +228 -0
  112. package/dist/lib/onchain-client-types.d.ts.map +1 -0
  113. package/dist/lib/onchain-client-types.js +2 -0
  114. package/dist/lib/onchain-client-types.js.map +1 -0
  115. package/dist/lib/onchain-client.d.ts +15 -0
  116. package/dist/lib/onchain-client.d.ts.map +1 -0
  117. package/dist/lib/onchain-client.js +13 -0
  118. package/dist/lib/onchain-client.js.map +1 -0
  119. package/dist/lib/output.d.ts +28 -0
  120. package/dist/lib/output.d.ts.map +1 -0
  121. package/dist/lib/output.js +94 -0
  122. package/dist/lib/output.js.map +1 -0
  123. package/dist/lib/utils/address.d.ts +26 -0
  124. package/dist/lib/utils/address.d.ts.map +1 -0
  125. package/dist/lib/utils/address.js +61 -0
  126. package/dist/lib/utils/address.js.map +1 -0
  127. package/dist/lib/utils/formatters.d.ts +42 -0
  128. package/dist/lib/utils/formatters.d.ts.map +1 -0
  129. package/dist/lib/utils/formatters.js +173 -0
  130. package/dist/lib/utils/formatters.js.map +1 -0
  131. package/package.json +77 -0
@@ -0,0 +1,142 @@
1
+ const CMC_API_BASE = 'https://pro-api.coinmarketcap.com/v1';
2
+ export function withCoinMarketCap(Base) {
3
+ class CoinMarketCapMixin extends Base {
4
+ getCmcHeaders() {
5
+ if (!this.coinmarketcapApiKey) {
6
+ throw new Error('CoinMarketCap API key required');
7
+ }
8
+ return {
9
+ Accept: 'application/json',
10
+ 'X-CMC_PRO_API_KEY': this.coinmarketcapApiKey,
11
+ };
12
+ }
13
+ async cmcGetTokenPrice(symbolOrSlug) {
14
+ if (!this.coinmarketcapApiKey) {
15
+ return { success: false, error: 'CoinMarketCap API key not configured' };
16
+ }
17
+ try {
18
+ const symbol = symbolOrSlug.toUpperCase();
19
+ const url = `${CMC_API_BASE}/cryptocurrency/quotes/latest?symbol=${symbol}&convert=USD`;
20
+ const response = await this.fetchWithTimeout(url, {
21
+ headers: this.getCmcHeaders(),
22
+ });
23
+ if (!response.ok) {
24
+ return { success: false, error: `CoinMarketCap API error: ${response.status}` };
25
+ }
26
+ const data = (await response.json());
27
+ if (data.status.error_code !== 0) {
28
+ return { success: false, error: data.status.error_message ?? 'Unknown error' };
29
+ }
30
+ const coinData = data.data[symbol];
31
+ if (!coinData) {
32
+ return { success: false, error: `Token "${symbolOrSlug}" not found` };
33
+ }
34
+ const quote = coinData.quote.USD;
35
+ const token = {
36
+ id: coinData.slug,
37
+ symbol: coinData.symbol,
38
+ name: coinData.name,
39
+ priceUsd: quote.price,
40
+ priceChange1h: quote.percent_change_1h,
41
+ priceChange24h: quote.percent_change_24h,
42
+ priceChange7d: quote.percent_change_7d,
43
+ priceChange30d: quote.percent_change_30d,
44
+ marketCap: quote.market_cap,
45
+ marketCapRank: coinData.cmc_rank,
46
+ volume24h: quote.volume_24h,
47
+ circulatingSupply: coinData.circulating_supply,
48
+ totalSupply: coinData.total_supply,
49
+ maxSupply: coinData.max_supply,
50
+ lastUpdated: quote.last_updated,
51
+ };
52
+ return { success: true, token };
53
+ }
54
+ catch (error) {
55
+ return {
56
+ success: false,
57
+ error: `Failed to fetch token price: ${error instanceof Error ? error.message : String(error)}`,
58
+ };
59
+ }
60
+ }
61
+ async cmcGetTokenPrices(symbols) {
62
+ if (!this.coinmarketcapApiKey) {
63
+ return { success: false, error: 'CoinMarketCap API key not configured' };
64
+ }
65
+ try {
66
+ const symbolList = symbols.map((s) => s.toUpperCase()).join(',');
67
+ const url = `${CMC_API_BASE}/cryptocurrency/quotes/latest?symbol=${symbolList}&convert=USD`;
68
+ const response = await this.fetchWithTimeout(url, {
69
+ headers: this.getCmcHeaders(),
70
+ });
71
+ if (!response.ok) {
72
+ return { success: false, error: `CoinMarketCap API error: ${response.status}` };
73
+ }
74
+ const data = (await response.json());
75
+ if (data.status.error_code !== 0) {
76
+ return { success: false, error: data.status.error_message ?? 'Unknown error' };
77
+ }
78
+ const tokens = Object.values(data.data).map((coinData) => {
79
+ const quote = coinData.quote.USD;
80
+ return {
81
+ id: coinData.slug,
82
+ symbol: coinData.symbol,
83
+ name: coinData.name,
84
+ priceUsd: quote.price,
85
+ priceChange1h: quote.percent_change_1h,
86
+ priceChange24h: quote.percent_change_24h,
87
+ priceChange7d: quote.percent_change_7d,
88
+ priceChange30d: quote.percent_change_30d,
89
+ marketCap: quote.market_cap,
90
+ marketCapRank: coinData.cmc_rank,
91
+ volume24h: quote.volume_24h,
92
+ circulatingSupply: coinData.circulating_supply,
93
+ totalSupply: coinData.total_supply,
94
+ maxSupply: coinData.max_supply,
95
+ lastUpdated: quote.last_updated,
96
+ };
97
+ });
98
+ return { success: true, tokens };
99
+ }
100
+ catch (error) {
101
+ return {
102
+ success: false,
103
+ error: `Failed to fetch token prices: ${error instanceof Error ? error.message : String(error)}`,
104
+ };
105
+ }
106
+ }
107
+ async cmcGetMarketOverview() {
108
+ if (!this.coinmarketcapApiKey) {
109
+ return { success: false, error: 'CoinMarketCap API key not configured' };
110
+ }
111
+ try {
112
+ const url = `${CMC_API_BASE}/global-metrics/quotes/latest?convert=USD`;
113
+ const response = await this.fetchWithTimeout(url, {
114
+ headers: this.getCmcHeaders(),
115
+ });
116
+ if (!response.ok) {
117
+ return { success: false, error: `CoinMarketCap API error: ${response.status}` };
118
+ }
119
+ const data = (await response.json());
120
+ if (data.status.error_code !== 0) {
121
+ return { success: false, error: data.status.error_message ?? 'Unknown error' };
122
+ }
123
+ const market = {
124
+ totalMarketCap: data.data.total_market_cap,
125
+ totalVolume24h: data.data.total_volume_24h,
126
+ btcDominance: data.data.btc_dominance,
127
+ ethDominance: data.data.eth_dominance,
128
+ marketCapChange24h: data.data.total_market_cap_yesterday_percentage_change,
129
+ };
130
+ return { success: true, market };
131
+ }
132
+ catch (error) {
133
+ return {
134
+ success: false,
135
+ error: `Failed to fetch market overview: ${error instanceof Error ? error.message : String(error)}`,
136
+ };
137
+ }
138
+ }
139
+ }
140
+ return CoinMarketCapMixin;
141
+ }
142
+ //# sourceMappingURL=coinmarketcap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coinmarketcap.js","sourceRoot":"","sources":["../../../src/lib/mixins/coinmarketcap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { AbstractConstructor, Mixin, OnchainClientBase } from '../onchain-client-base.js';
2
+ import type { BalanceResult, DefiResult, EvmChain, HistoryResult, NftResult } from '../onchain-client-types.js';
3
+ export interface DeBankMethods {
4
+ getEvmBalances(address: string, chains?: EvmChain[]): Promise<BalanceResult>;
5
+ getEvmNfts(address: string): Promise<NftResult>;
6
+ getEvmDefiPositions(address: string): Promise<DefiResult>;
7
+ getEvmHistory(address: string, options?: {
8
+ chain?: EvmChain;
9
+ limit?: number;
10
+ cursor?: string;
11
+ }): Promise<HistoryResult>;
12
+ getEvmTotalBalance(address: string): Promise<{
13
+ success: true;
14
+ totalValueUsd: number;
15
+ } | {
16
+ success: false;
17
+ error: string;
18
+ }>;
19
+ }
20
+ export declare function withDeBank<TBase extends AbstractConstructor<OnchainClientBase>>(Base: TBase): Mixin<TBase, DeBankMethods>;
21
+ //# sourceMappingURL=debank.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debank.d.ts","sourceRoot":"","sources":["../../../src/lib/mixins/debank.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,KAAK,EACV,aAAa,EAEb,UAAU,EACV,QAAQ,EACR,aAAa,EAEb,SAAS,EAGV,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7E,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChD,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,aAAa,CACX,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,kBAAkB,CAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F;AA4FD,wBAAgB,UAAU,CAAC,KAAK,SAAS,mBAAmB,CAAC,iBAAiB,CAAC,EAC7E,IAAI,EAAE,KAAK,GACV,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CA+T7B"}
@@ -0,0 +1,280 @@
1
+ const DEBANK_API_BASE = 'https://pro-openapi.debank.com/v1';
2
+ export function withDeBank(Base) {
3
+ class DeBankMixin extends Base {
4
+ getDeBankHeaders() {
5
+ if (!this.debankApiKey) {
6
+ throw new Error('DeBank API key required');
7
+ }
8
+ return {
9
+ Accept: 'application/json',
10
+ AccessKey: this.debankApiKey,
11
+ };
12
+ }
13
+ async getEvmBalances(address, chains) {
14
+ if (!this.debankApiKey) {
15
+ return { success: false, error: 'DeBank API key not configured' };
16
+ }
17
+ try {
18
+ const url = chains?.length
19
+ ? `${DEBANK_API_BASE}/user/token_list?id=${address}&chain_ids=${chains.join(',')}&is_all=false`
20
+ : `${DEBANK_API_BASE}/user/all_token_list?id=${address}&is_all=true`;
21
+ const response = await this.fetchWithTimeout(url, {
22
+ headers: this.getDeBankHeaders(),
23
+ });
24
+ if (!response.ok) {
25
+ return { success: false, error: `DeBank API error: ${response.status}` };
26
+ }
27
+ const data = (await response.json());
28
+ let totalValueUsd = 0;
29
+ const balances = data
30
+ .filter((token) => token.amount > 0)
31
+ .map((token) => {
32
+ const valueUsd = token.price ? token.amount * token.price : null;
33
+ if (valueUsd) {
34
+ totalValueUsd += valueUsd;
35
+ }
36
+ return {
37
+ symbol: token.symbol,
38
+ name: token.name,
39
+ chain: token.chain,
40
+ contractAddress: token.id,
41
+ balanceRaw: token.raw_amount_hex_str ?? String(token.raw_amount ?? 0),
42
+ balanceFormatted: token.amount,
43
+ decimals: token.decimals,
44
+ priceUsd: token.price ?? null,
45
+ valueUsd,
46
+ logoUrl: token.logo_url,
47
+ };
48
+ })
49
+ .sort((a, b) => (b.valueUsd ?? 0) - (a.valueUsd ?? 0));
50
+ return { success: true, balances, totalValueUsd };
51
+ }
52
+ catch (error) {
53
+ return {
54
+ success: false,
55
+ error: `Failed to fetch EVM balances: ${error instanceof Error ? error.message : String(error)}`,
56
+ };
57
+ }
58
+ }
59
+ async getEvmNfts(address) {
60
+ if (!this.debankApiKey) {
61
+ return { success: false, error: 'DeBank API key not configured' };
62
+ }
63
+ try {
64
+ const url = `${DEBANK_API_BASE}/user/all_nft_list?id=${address}`;
65
+ const response = await this.fetchWithTimeout(url, {
66
+ headers: this.getDeBankHeaders(),
67
+ });
68
+ if (!response.ok) {
69
+ return { success: false, error: `DeBank API error: ${response.status}` };
70
+ }
71
+ const data = (await response.json());
72
+ let totalEstimatedValueUsd = 0;
73
+ const nfts = data.map((nft) => {
74
+ const floorPrice = nft.collection?.floor_price;
75
+ if (floorPrice) {
76
+ totalEstimatedValueUsd += floorPrice;
77
+ }
78
+ return {
79
+ id: nft.id,
80
+ name: nft.name ?? `#${nft.inner_id}`,
81
+ collection: nft.collection?.name ?? 'Unknown',
82
+ chain: nft.chain,
83
+ contractAddress: nft.contract_id,
84
+ tokenId: nft.inner_id,
85
+ imageUrl: nft.thumbnail_url ?? nft.content,
86
+ floorPriceUsd: floorPrice,
87
+ };
88
+ });
89
+ return { success: true, nfts, totalEstimatedValueUsd };
90
+ }
91
+ catch (error) {
92
+ return {
93
+ success: false,
94
+ error: `Failed to fetch EVM NFTs: ${error instanceof Error ? error.message : String(error)}`,
95
+ };
96
+ }
97
+ }
98
+ async getEvmDefiPositions(address) {
99
+ if (!this.debankApiKey) {
100
+ return { success: false, error: 'DeBank API key not configured' };
101
+ }
102
+ try {
103
+ const url = `${DEBANK_API_BASE}/user/all_complex_protocol_list?id=${address}`;
104
+ const response = await this.fetchWithTimeout(url, {
105
+ headers: this.getDeBankHeaders(),
106
+ });
107
+ if (!response.ok) {
108
+ return { success: false, error: `DeBank API error: ${response.status}` };
109
+ }
110
+ const data = (await response.json());
111
+ let totalValueUsd = 0;
112
+ const positions = [];
113
+ for (const protocol of data) {
114
+ for (const item of protocol.portfolio_item_list) {
115
+ const netValue = item.stats.net_usd_value;
116
+ totalValueUsd += netValue;
117
+ // Determine position type
118
+ let type = 'other';
119
+ if (item.detail_types.includes('lending')) {
120
+ type = 'lending';
121
+ }
122
+ else if (item.detail_types.includes('staked')) {
123
+ type = 'staking';
124
+ }
125
+ else if (item.detail_types.includes('liquidity')) {
126
+ type = 'liquidity';
127
+ }
128
+ else if (item.detail_types.includes('farming') || item.detail_types.includes('reward')) {
129
+ type = 'farming';
130
+ }
131
+ else if (item.detail_types.includes('vesting') || item.detail_types.includes('locked')) {
132
+ type = 'vesting';
133
+ }
134
+ // Collect all tokens from the position
135
+ const allTokens = [
136
+ ...(item.detail.supply_token_list ?? []),
137
+ ...(item.detail.token_list ?? []),
138
+ ...(item.detail.reward_token_list ?? []),
139
+ ];
140
+ const assets = allTokens.map((token) => ({
141
+ symbol: token.symbol,
142
+ amount: token.amount,
143
+ valueUsd: token.price ? token.amount * token.price : null,
144
+ }));
145
+ positions.push({
146
+ protocol: protocol.name,
147
+ protocolLogoUrl: protocol.logo_url,
148
+ chain: protocol.chain,
149
+ type,
150
+ assets,
151
+ totalValueUsd: netValue,
152
+ healthFactor: item.detail.health_rate,
153
+ });
154
+ }
155
+ }
156
+ return { success: true, positions, totalValueUsd };
157
+ }
158
+ catch (error) {
159
+ return {
160
+ success: false,
161
+ error: `Failed to fetch DeFi positions: ${error instanceof Error ? error.message : String(error)}`,
162
+ };
163
+ }
164
+ }
165
+ async getEvmHistory(address, options) {
166
+ if (!this.debankApiKey) {
167
+ return { success: false, error: 'DeBank API key not configured' };
168
+ }
169
+ try {
170
+ const limit = options?.limit ?? 20;
171
+ let url = `${DEBANK_API_BASE}/user/all_history_list?id=${address}&page_count=${limit}`;
172
+ if (options?.chain) {
173
+ url = `${DEBANK_API_BASE}/user/history_list?id=${address}&chain_id=${options.chain}&page_count=${limit}`;
174
+ }
175
+ if (options?.cursor) {
176
+ url += `&start_time=${options.cursor}`;
177
+ }
178
+ const response = await this.fetchWithTimeout(url, {
179
+ headers: this.getDeBankHeaders(),
180
+ });
181
+ if (!response.ok) {
182
+ return { success: false, error: `DeBank API error: ${response.status}` };
183
+ }
184
+ const data = (await response.json());
185
+ const transactions = data.history_list.map((item) => {
186
+ // Determine transaction type
187
+ let type = 'other';
188
+ if (item.cate_id === 'send') {
189
+ type = 'send';
190
+ }
191
+ else if (item.cate_id === 'receive') {
192
+ type = 'receive';
193
+ }
194
+ else if (item.cate_id === 'swap' || item.cate_id === 'trade') {
195
+ type = 'swap';
196
+ }
197
+ else if (item.cate_id === 'approve') {
198
+ type = 'approve';
199
+ }
200
+ // Get token transfers
201
+ const tokens = [];
202
+ if (item.sends) {
203
+ for (const send of item.sends) {
204
+ const tokenInfo = data.token_dict[send.token_id];
205
+ tokens.push({
206
+ symbol: tokenInfo?.symbol ?? 'UNKNOWN',
207
+ amount: send.amount,
208
+ direction: 'out',
209
+ valueUsd: tokenInfo?.price ? send.amount * tokenInfo.price : undefined,
210
+ });
211
+ }
212
+ }
213
+ if (item.receives) {
214
+ for (const receive of item.receives) {
215
+ const tokenInfo = data.token_dict[receive.token_id];
216
+ tokens.push({
217
+ symbol: tokenInfo?.symbol ?? 'UNKNOWN',
218
+ amount: receive.amount,
219
+ direction: 'in',
220
+ valueUsd: tokenInfo?.price ? receive.amount * tokenInfo.price : undefined,
221
+ });
222
+ }
223
+ }
224
+ return {
225
+ id: item.id,
226
+ hash: item.id.split('_')[0] ?? item.id,
227
+ chain: item.chain,
228
+ timestamp: item.time_at,
229
+ type,
230
+ status: item.tx?.status === 1 ? 'success' : 'failed',
231
+ from: item.tx?.from_addr ?? '',
232
+ to: item.tx?.to_addr ?? '',
233
+ fee: item.tx?.usd_gas_fee
234
+ ? {
235
+ amount: item.tx.eth_gas_fee ?? 0,
236
+ symbol: 'ETH',
237
+ valueUsd: item.tx.usd_gas_fee,
238
+ }
239
+ : undefined,
240
+ tokens: tokens.length > 0 ? tokens : undefined,
241
+ };
242
+ });
243
+ // Use the last item's timestamp as cursor for pagination
244
+ const lastItem = data.history_list[data.history_list.length - 1];
245
+ const nextCursor = lastItem ? String(lastItem.time_at) : undefined;
246
+ return { success: true, transactions, nextCursor };
247
+ }
248
+ catch (error) {
249
+ return {
250
+ success: false,
251
+ error: `Failed to fetch EVM history: ${error instanceof Error ? error.message : String(error)}`,
252
+ };
253
+ }
254
+ }
255
+ async getEvmTotalBalance(address) {
256
+ if (!this.debankApiKey) {
257
+ return { success: false, error: 'DeBank API key not configured' };
258
+ }
259
+ try {
260
+ const url = `${DEBANK_API_BASE}/user/total_balance?id=${address}`;
261
+ const response = await this.fetchWithTimeout(url, {
262
+ headers: this.getDeBankHeaders(),
263
+ });
264
+ if (!response.ok) {
265
+ return { success: false, error: `DeBank API error: ${response.status}` };
266
+ }
267
+ const data = (await response.json());
268
+ return { success: true, totalValueUsd: data.total_usd_value };
269
+ }
270
+ catch (error) {
271
+ return {
272
+ success: false,
273
+ error: `Failed to fetch total balance: ${error instanceof Error ? error.message : String(error)}`,
274
+ };
275
+ }
276
+ }
277
+ }
278
+ return DeBankMixin;
279
+ }
280
+ //# sourceMappingURL=debank.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debank.js","sourceRoot":"","sources":["../../../src/lib/mixins/debank.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AbstractConstructor, Mixin, OnchainClientBase } from '../onchain-client-base.js';
2
+ import type { BalanceResult, HistoryResult, NftResult } from '../onchain-client-types.js';
3
+ export interface HeliusMethods {
4
+ getSolanaBalances(address: string): Promise<BalanceResult>;
5
+ getSolanaNfts(address: string): Promise<NftResult>;
6
+ getSolanaHistory(address: string, options?: {
7
+ limit?: number;
8
+ cursor?: string;
9
+ }): Promise<HistoryResult>;
10
+ }
11
+ export declare function withHelius<TBase extends AbstractConstructor<OnchainClientBase>>(Base: TBase): Mixin<TBase, HeliusMethods>;
12
+ //# sourceMappingURL=helius.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helius.d.ts","sourceRoot":"","sources":["../../../src/lib/mixins/helius.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAEb,SAAS,EAGV,MAAM,4BAA4B,CAAC;AAKpC,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1G;AAqGD,wBAAgB,UAAU,CAAC,KAAK,SAAS,mBAAmB,CAAC,iBAAiB,CAAC,EAC7E,IAAI,EAAE,KAAK,GACV,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAyV7B"}