@webacy-xyz/sdk-core 1.0.1

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 (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +96 -0
  3. package/dist/cjs/client-base.js +134 -0
  4. package/dist/cjs/client-base.js.map +1 -0
  5. package/dist/cjs/config.js +30 -0
  6. package/dist/cjs/config.js.map +1 -0
  7. package/dist/cjs/errors/authentication.js +35 -0
  8. package/dist/cjs/errors/authentication.js.map +1 -0
  9. package/dist/cjs/errors/base.js +76 -0
  10. package/dist/cjs/errors/base.js.map +1 -0
  11. package/dist/cjs/errors/index.js +16 -0
  12. package/dist/cjs/errors/index.js.map +1 -0
  13. package/dist/cjs/errors/network.js +45 -0
  14. package/dist/cjs/errors/network.js.map +1 -0
  15. package/dist/cjs/errors/not-found.js +38 -0
  16. package/dist/cjs/errors/not-found.js.map +1 -0
  17. package/dist/cjs/errors/rate-limit.js +53 -0
  18. package/dist/cjs/errors/rate-limit.js.map +1 -0
  19. package/dist/cjs/errors/validation.js +49 -0
  20. package/dist/cjs/errors/validation.js.map +1 -0
  21. package/dist/cjs/http/client.js +393 -0
  22. package/dist/cjs/http/client.js.map +1 -0
  23. package/dist/cjs/http/index.js +11 -0
  24. package/dist/cjs/http/index.js.map +1 -0
  25. package/dist/cjs/http/retry.js +43 -0
  26. package/dist/cjs/http/retry.js.map +1 -0
  27. package/dist/cjs/index.js +52 -0
  28. package/dist/cjs/index.js.map +1 -0
  29. package/dist/cjs/package.json +1 -0
  30. package/dist/cjs/resources/base.js +43 -0
  31. package/dist/cjs/resources/base.js.map +1 -0
  32. package/dist/cjs/resources/index.js +6 -0
  33. package/dist/cjs/resources/index.js.map +1 -0
  34. package/dist/cjs/types/chain.js +114 -0
  35. package/dist/cjs/types/chain.js.map +1 -0
  36. package/dist/cjs/types/common.js +49 -0
  37. package/dist/cjs/types/common.js.map +1 -0
  38. package/dist/cjs/types/index.js +18 -0
  39. package/dist/cjs/types/index.js.map +1 -0
  40. package/dist/cjs/types/modules.js +64 -0
  41. package/dist/cjs/types/modules.js.map +1 -0
  42. package/dist/cjs/utils/address-validation.js +124 -0
  43. package/dist/cjs/utils/address-validation.js.map +1 -0
  44. package/dist/cjs/utils/index.js +16 -0
  45. package/dist/cjs/utils/index.js.map +1 -0
  46. package/dist/cjs/utils/url-validation.js +31 -0
  47. package/dist/cjs/utils/url-validation.js.map +1 -0
  48. package/dist/esm/client-base.js +130 -0
  49. package/dist/esm/client-base.js.map +1 -0
  50. package/dist/esm/config.js +26 -0
  51. package/dist/esm/config.js.map +1 -0
  52. package/dist/esm/errors/authentication.js +31 -0
  53. package/dist/esm/errors/authentication.js.map +1 -0
  54. package/dist/esm/errors/base.js +72 -0
  55. package/dist/esm/errors/base.js.map +1 -0
  56. package/dist/esm/errors/index.js +7 -0
  57. package/dist/esm/errors/index.js.map +1 -0
  58. package/dist/esm/errors/network.js +41 -0
  59. package/dist/esm/errors/network.js.map +1 -0
  60. package/dist/esm/errors/not-found.js +34 -0
  61. package/dist/esm/errors/not-found.js.map +1 -0
  62. package/dist/esm/errors/rate-limit.js +49 -0
  63. package/dist/esm/errors/rate-limit.js.map +1 -0
  64. package/dist/esm/errors/validation.js +45 -0
  65. package/dist/esm/errors/validation.js.map +1 -0
  66. package/dist/esm/http/client.js +389 -0
  67. package/dist/esm/http/client.js.map +1 -0
  68. package/dist/esm/http/index.js +3 -0
  69. package/dist/esm/http/index.js.map +1 -0
  70. package/dist/esm/http/retry.js +37 -0
  71. package/dist/esm/http/retry.js.map +1 -0
  72. package/dist/esm/index.js +15 -0
  73. package/dist/esm/index.js.map +1 -0
  74. package/dist/esm/package.json +1 -0
  75. package/dist/esm/resources/base.js +39 -0
  76. package/dist/esm/resources/base.js.map +1 -0
  77. package/dist/esm/resources/index.js +2 -0
  78. package/dist/esm/resources/index.js.map +1 -0
  79. package/dist/esm/types/chain.js +109 -0
  80. package/dist/esm/types/chain.js.map +1 -0
  81. package/dist/esm/types/common.js +46 -0
  82. package/dist/esm/types/common.js.map +1 -0
  83. package/dist/esm/types/index.js +4 -0
  84. package/dist/esm/types/index.js.map +1 -0
  85. package/dist/esm/types/modules.js +61 -0
  86. package/dist/esm/types/modules.js.map +1 -0
  87. package/dist/esm/utils/address-validation.js +113 -0
  88. package/dist/esm/utils/address-validation.js.map +1 -0
  89. package/dist/esm/utils/index.js +3 -0
  90. package/dist/esm/utils/index.js.map +1 -0
  91. package/dist/esm/utils/url-validation.js +28 -0
  92. package/dist/esm/utils/url-validation.js.map +1 -0
  93. package/dist/types/client-base.d.ts +90 -0
  94. package/dist/types/client-base.d.ts.map +1 -0
  95. package/dist/types/config.d.ts +124 -0
  96. package/dist/types/config.d.ts.map +1 -0
  97. package/dist/types/errors/authentication.d.ts +24 -0
  98. package/dist/types/errors/authentication.d.ts.map +1 -0
  99. package/dist/types/errors/base.d.ts +53 -0
  100. package/dist/types/errors/base.d.ts.map +1 -0
  101. package/dist/types/errors/index.d.ts +7 -0
  102. package/dist/types/errors/index.d.ts.map +1 -0
  103. package/dist/types/errors/network.d.ts +30 -0
  104. package/dist/types/errors/network.d.ts.map +1 -0
  105. package/dist/types/errors/not-found.d.ts +27 -0
  106. package/dist/types/errors/not-found.d.ts.map +1 -0
  107. package/dist/types/errors/rate-limit.d.ts +37 -0
  108. package/dist/types/errors/rate-limit.d.ts.map +1 -0
  109. package/dist/types/errors/validation.d.ts +34 -0
  110. package/dist/types/errors/validation.d.ts.map +1 -0
  111. package/dist/types/http/client.d.ts +160 -0
  112. package/dist/types/http/client.d.ts.map +1 -0
  113. package/dist/types/http/index.d.ts +3 -0
  114. package/dist/types/http/index.d.ts.map +1 -0
  115. package/dist/types/http/retry.d.ts +32 -0
  116. package/dist/types/http/retry.d.ts.map +1 -0
  117. package/dist/types/index.d.ts +8 -0
  118. package/dist/types/index.d.ts.map +1 -0
  119. package/dist/types/resources/base.d.ts +26 -0
  120. package/dist/types/resources/base.d.ts.map +1 -0
  121. package/dist/types/resources/index.d.ts +2 -0
  122. package/dist/types/resources/index.d.ts.map +1 -0
  123. package/dist/types/types/chain.d.ts +60 -0
  124. package/dist/types/types/chain.d.ts.map +1 -0
  125. package/dist/types/types/common.d.ts +251 -0
  126. package/dist/types/types/common.d.ts.map +1 -0
  127. package/dist/types/types/index.d.ts +5 -0
  128. package/dist/types/types/index.d.ts.map +1 -0
  129. package/dist/types/types/modules.d.ts +51 -0
  130. package/dist/types/types/modules.d.ts.map +1 -0
  131. package/dist/types/utils/address-validation.d.ts +50 -0
  132. package/dist/types/utils/address-validation.d.ts.map +1 -0
  133. package/dist/types/utils/index.d.ts +3 -0
  134. package/dist/types/utils/index.d.ts.map +1 -0
  135. package/dist/types/utils/url-validation.d.ts +16 -0
  136. package/dist/types/utils/url-validation.d.ts.map +1 -0
  137. package/package.json +64 -0
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Supported blockchain networks
3
+ */
4
+ export declare enum Chain {
5
+ /** Ethereum Mainnet */
6
+ ETH = "eth",
7
+ /** Ethereum Sepolia Testnet */
8
+ SEP = "sep",
9
+ /** Arbitrum One */
10
+ ARB = "arb",
11
+ /** Polygon (MATIC) */
12
+ POL = "pol",
13
+ /** Solana */
14
+ SOL = "sol",
15
+ /** Optimism */
16
+ OPT = "opt",
17
+ /** Base */
18
+ BASE = "base",
19
+ /** BNB Smart Chain */
20
+ BSC = "bsc",
21
+ /** TON (The Open Network) */
22
+ TON = "ton",
23
+ /** Sei */
24
+ SEI = "sei",
25
+ /** Bitcoin */
26
+ BTC = "btc",
27
+ /** Sui */
28
+ SUI = "sui",
29
+ /** Stellar */
30
+ STELLAR = "stellar"
31
+ }
32
+ /**
33
+ * Chain compatibility groups for feature detection
34
+ */
35
+ export declare enum ChainCompatibility {
36
+ EVM = "EVM",
37
+ SOLANA = "SOLANA",
38
+ TON = "TON",
39
+ BTC = "BTC",
40
+ SEI = "SEI",
41
+ SUI = "SUI",
42
+ STELLAR = "STELLAR"
43
+ }
44
+ /**
45
+ * Get the compatibility group for a chain
46
+ */
47
+ export declare function getChainCompatibility(chain: Chain): ChainCompatibility;
48
+ /**
49
+ * Check if a chain is EVM-compatible
50
+ */
51
+ export declare function isEvmChain(chain: Chain): boolean;
52
+ /**
53
+ * Chain ID mapping for EVM chains
54
+ */
55
+ export declare const CHAIN_IDS: Partial<Record<Chain, number>>;
56
+ /**
57
+ * Human-readable chain names
58
+ */
59
+ export declare const CHAIN_NAMES: Record<Chain, string>;
60
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/types/chain.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,KAAK;IACf,uBAAuB;IACvB,GAAG,QAAQ;IACX,+BAA+B;IAC/B,GAAG,QAAQ;IACX,mBAAmB;IACnB,GAAG,QAAQ;IACX,sBAAsB;IACtB,GAAG,QAAQ;IACX,aAAa;IACb,GAAG,QAAQ;IACX,eAAe;IACf,GAAG,QAAQ;IACX,WAAW;IACX,IAAI,SAAS;IACb,sBAAsB;IACtB,GAAG,QAAQ;IACX,6BAA6B;IAC7B,GAAG,QAAQ;IACX,UAAU;IACV,GAAG,QAAQ;IACX,cAAc;IACd,GAAG,QAAQ;IACX,UAAU;IACV,GAAG,QAAQ;IACX,cAAc;IACd,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB,CAuBtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAQpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAc7C,CAAC"}
@@ -0,0 +1,251 @@
1
+ import { Chain } from './chain';
2
+ import { RiskModule } from './modules';
3
+ /**
4
+ * Risk tag describing a specific security concern
5
+ */
6
+ export interface RiskTag {
7
+ /** Human-readable name */
8
+ name: string;
9
+ /** Unique identifier key */
10
+ key: string;
11
+ /** Category type */
12
+ type: string;
13
+ /** Detailed description */
14
+ description: string;
15
+ /** Severity level (0-100, higher = more severe) */
16
+ severity?: number;
17
+ }
18
+ /**
19
+ * Informational tag (non-risk metadata)
20
+ */
21
+ export interface InformationalTag {
22
+ name: string;
23
+ key: string;
24
+ type: string;
25
+ description: string;
26
+ /** Optional count for display (e.g., "2 active ads") */
27
+ count?: number;
28
+ }
29
+ /**
30
+ * Risk category grouping related tags
31
+ */
32
+ export interface RiskCategory {
33
+ name: string;
34
+ key: string;
35
+ gradedDescription?: {
36
+ high: string;
37
+ medium: string;
38
+ low: string;
39
+ };
40
+ description?: string;
41
+ tags?: Record<string, boolean>;
42
+ }
43
+ /**
44
+ * Risk score classification
45
+ */
46
+ export declare enum RiskScore {
47
+ HIGH = "High Risk",
48
+ MEDIUM = "Medium Risk",
49
+ LOW = "Low Risk",
50
+ TRUSTED = "Trusted",
51
+ UNKNOWN = "Unknown"
52
+ }
53
+ /**
54
+ * Risk level enum
55
+ */
56
+ export declare enum RiskLevel {
57
+ Low = "low",
58
+ Medium = "medium",
59
+ High = "high",
60
+ Suspicious = "suspicious"
61
+ }
62
+ /**
63
+ * Consolidated risk analysis result
64
+ */
65
+ export interface ConsolidatedRiskResult {
66
+ /** Numeric risk score (0-100) */
67
+ score: number;
68
+ /** List of identified risk tags */
69
+ tags: RiskTag[];
70
+ /** Categorized risk information */
71
+ categories: Record<string, RiskCategory>;
72
+ /** Human-readable risk classification */
73
+ riskScore?: RiskScore;
74
+ /** Additional analysis data */
75
+ analysis?: unknown;
76
+ }
77
+ /**
78
+ * Token ownership distribution data
79
+ */
80
+ export interface OwnershipDistribution {
81
+ /** Total supply of the token */
82
+ totalSupply?: number | string;
83
+ /** Percentage held by top 10 holders (0-100) */
84
+ percentageHeldByTop10?: number;
85
+ /** Percentage held by top 5 holders (0-100) */
86
+ percentageHeldByTop5?: number;
87
+ /** Percentage held by top 20 holders (0-100) */
88
+ percentageHeldByTop20?: number;
89
+ /** Total number of unique holders */
90
+ totalHoldersCount?: number;
91
+ /** Top holders with balances */
92
+ topHolders?: TopHolder[];
93
+ }
94
+ /**
95
+ * Top holder information
96
+ */
97
+ export interface TopHolder {
98
+ /** Account address */
99
+ accountAddress?: string;
100
+ /** Human-readable alias */
101
+ alias?: string;
102
+ /** Owner address */
103
+ ownerAddress: string;
104
+ /** Token amount held */
105
+ amount: number | string;
106
+ /** Percentage of total supply */
107
+ percentage?: number;
108
+ /** Address label information */
109
+ label_info?: AddressLabelInfo;
110
+ }
111
+ /**
112
+ * Address label information
113
+ */
114
+ export interface AddressLabelInfo {
115
+ /** Label name */
116
+ name?: string;
117
+ /** Label category */
118
+ category?: string;
119
+ /** Label subcategory */
120
+ subcategory?: string;
121
+ }
122
+ /**
123
+ * Liquidity pool data
124
+ */
125
+ export interface LiquidityPoolData {
126
+ /** DEX name */
127
+ dexName?: string;
128
+ /** Pool address */
129
+ address?: string;
130
+ /** LP token mint address */
131
+ lpMint?: string;
132
+ /** Trading pair address */
133
+ pairAddress?: string;
134
+ /** Total liquidity value */
135
+ totalLiquidity?: number;
136
+ /** Type of liquidity */
137
+ liquidityType?: string;
138
+ /** Percentage of locked liquidity */
139
+ lockedLiquidityPercent?: number;
140
+ /** LP token holders */
141
+ lpHolders?: LpHolder[];
142
+ }
143
+ /**
144
+ * LP token holder
145
+ */
146
+ export interface LpHolder {
147
+ address?: string;
148
+ balance?: number;
149
+ percent?: number;
150
+ isLocked?: boolean;
151
+ lockedUntil?: Date;
152
+ isContract?: boolean;
153
+ }
154
+ /**
155
+ * Token metadata
156
+ */
157
+ export interface TokenMetadata {
158
+ /** Token name */
159
+ name?: string;
160
+ /** Token symbol */
161
+ symbol?: string;
162
+ /** Token logo URL */
163
+ logo?: string;
164
+ /** Token decimals */
165
+ decimals?: number;
166
+ /** Token description */
167
+ description?: string;
168
+ /** Social links */
169
+ links?: TokenLinks;
170
+ }
171
+ /**
172
+ * Token social and website links
173
+ */
174
+ export interface TokenLinks {
175
+ website?: string;
176
+ twitter?: string;
177
+ telegram?: string;
178
+ discord?: string;
179
+ github?: string;
180
+ }
181
+ /**
182
+ * Buy/sell tax information
183
+ */
184
+ export interface BuySellTaxes {
185
+ has_buy_tax?: boolean;
186
+ has_sell_tax?: boolean;
187
+ buy_tax_percentage?: number;
188
+ sell_tax_percentage?: number;
189
+ }
190
+ /**
191
+ * Address type classification
192
+ */
193
+ export declare enum TypeOfAddress {
194
+ EOA = "EOA",
195
+ CONTRACT = "CONTRACT",
196
+ TOKEN = "TOKEN",
197
+ CONTRACT_WALLET = "CONTRACT_WALLET",
198
+ MULTISIG = "MULTISIG"
199
+ }
200
+ /**
201
+ * Token standard
202
+ */
203
+ export declare enum TokenStandard {
204
+ ERC20 = "ERC20",
205
+ ERC721 = "ERC721",
206
+ ERC1155 = "ERC1155",
207
+ SPL = "SPL",
208
+ JETTON = "JETTON",
209
+ STELLAR_ASSET = "STELLAR_ASSET",
210
+ SUI_COIN = "SUI_COIN"
211
+ }
212
+ /**
213
+ * Common request options
214
+ */
215
+ export interface RequestOptions {
216
+ /** Target blockchain */
217
+ chain: Chain;
218
+ /** Specific risk modules to analyze */
219
+ modules?: RiskModule[];
220
+ /** Request timeout in milliseconds */
221
+ timeout?: number;
222
+ /** Abort signal for request cancellation */
223
+ signal?: AbortSignal;
224
+ }
225
+ /**
226
+ * Pagination options
227
+ */
228
+ export interface PaginationOptions {
229
+ /** Page number (1-indexed) */
230
+ page?: number;
231
+ /** Items per page */
232
+ limit?: number;
233
+ /** Cursor for cursor-based pagination */
234
+ cursor?: string;
235
+ }
236
+ /**
237
+ * Paginated response wrapper
238
+ */
239
+ export interface PaginatedResponse<T> {
240
+ /** Data items */
241
+ data: T[];
242
+ /** Pagination metadata */
243
+ pagination: {
244
+ page?: number;
245
+ limit?: number;
246
+ total?: number;
247
+ hasMore?: boolean;
248
+ nextCursor?: string;
249
+ };
250
+ }
251
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { Chain, ChainCompatibility, getChainCompatibility, isEvmChain, CHAIN_IDS, CHAIN_NAMES, } from './chain';
2
+ export { RiskModule } from './modules';
3
+ export type { RiskTag, InformationalTag, RiskCategory, ConsolidatedRiskResult, OwnershipDistribution, TopHolder, AddressLabelInfo, LiquidityPoolData, LpHolder, TokenMetadata, TokenLinks, BuySellTaxes, RequestOptions, PaginationOptions, PaginatedResponse, } from './common';
4
+ export { RiskScore, RiskLevel, TypeOfAddress, TokenStandard } from './common';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,YAAY,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Risk analysis modules available for requests
3
+ *
4
+ * Use these to specify which analysis modules to run when making API requests.
5
+ * Requesting fewer modules can improve response time.
6
+ */
7
+ export declare enum RiskModule {
8
+ /** Contract ownership, upgradeability, access controls */
9
+ GOVERNANCE_ANALYSIS = "governance_analysis",
10
+ /** Freezeable, mintable, blacklist, whitelist */
11
+ TOKEN_SECURITY = "token_security",
12
+ /** Static/dynamic code analysis, vulnerabilities */
13
+ CONTRACT_ANALYSIS = "contract_analysis",
14
+ /** Source code analysis, vulnerabilities */
15
+ SOURCE_CODE_ANALYSIS = "source_code_analysis",
16
+ /** Price, volatility, market cap, liquidity */
17
+ MARKET_DATA = "market_data",
18
+ /** Token distribution, concentration risks */
19
+ HOLDER_ANALYSIS = "holder_analysis",
20
+ /** Pool data, unlock schedules, LP analysis */
21
+ LIQUIDITY_ANALYSIS = "liquidity_analysis",
22
+ /** Hacker, drainer, rugpull detection */
23
+ FRAUD_DETECTION = "fraud_detection",
24
+ /** OFAC, sanctioned addresses */
25
+ SANCTIONS_COMPLIANCE = "sanctions_compliance",
26
+ /** Tornado cash, coin mixers */
27
+ MIXER_DETECTION = "mixer_detection",
28
+ /** Trading patterns, automated trading */
29
+ ADDRESS_BEHAVIOR = "address_behavior",
30
+ /** Address poisoning, wash trading */
31
+ TRANSACTION_ANALYSIS = "transaction_analysis",
32
+ /** Reported addresses, spam detection */
33
+ REPUTATION_ANALYSIS = "reputation_analysis",
34
+ /** Solana-only risks (bundling, sniping) */
35
+ SOLANA_SPECIFIC = "solana_specific",
36
+ /** EVM-only risks (gas optimization, MEV) */
37
+ EVM_SPECIFIC = "evm_specific",
38
+ /** TON-only risks (jetton standards, etc.) */
39
+ TON_SPECIFIC = "ton_specific",
40
+ /** SUI-only risks (coin standards, object model) */
41
+ SUI_SPECIFIC = "sui_specific",
42
+ /** Address type, age, balance checks */
43
+ BASIC_INFO = "basic_info",
44
+ /** Only is_mintable, freezeable, is_metadata_immutable */
45
+ SECURITY_ESSENTIALS = "security_essentials",
46
+ /** Boolean flags for OFAC, hacker, mixer, drainer risks */
47
+ FUND_FLOW_SCREENING = "fund_flow_screening",
48
+ /** Multi-platform developer behavior, token launch patterns */
49
+ DEVELOPER_MIGRATION = "developer_migration"
50
+ }
51
+ //# sourceMappingURL=modules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../../src/types/modules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,UAAU;IAEpB,0DAA0D;IAC1D,mBAAmB,wBAAwB;IAC3C,iDAAiD;IACjD,cAAc,mBAAmB;IACjC,oDAAoD;IACpD,iBAAiB,sBAAsB;IACvC,4CAA4C;IAC5C,oBAAoB,yBAAyB;IAG7C,+CAA+C;IAC/C,WAAW,gBAAgB;IAC3B,8CAA8C;IAC9C,eAAe,oBAAoB;IACnC,+CAA+C;IAC/C,kBAAkB,uBAAuB;IAGzC,yCAAyC;IACzC,eAAe,oBAAoB;IACnC,iCAAiC;IACjC,oBAAoB,yBAAyB;IAC7C,gCAAgC;IAChC,eAAe,oBAAoB;IAGnC,0CAA0C;IAC1C,gBAAgB,qBAAqB;IACrC,sCAAsC;IACtC,oBAAoB,yBAAyB;IAC7C,yCAAyC;IACzC,mBAAmB,wBAAwB;IAG3C,4CAA4C;IAC5C,eAAe,oBAAoB;IACnC,6CAA6C;IAC7C,YAAY,iBAAiB;IAC7B,8CAA8C;IAC9C,YAAY,iBAAiB;IAC7B,oDAAoD;IACpD,YAAY,iBAAiB;IAG7B,wCAAwC;IACxC,UAAU,eAAe;IAGzB,0DAA0D;IAC1D,mBAAmB,wBAAwB;IAG3C,2DAA2D;IAC3D,mBAAmB,wBAAwB;IAG3C,+DAA+D;IAC/D,mBAAmB,wBAAwB;CAC5C"}
@@ -0,0 +1,50 @@
1
+ import { Chain } from '../types';
2
+ /**
3
+ * Validate an Ethereum address format
4
+ */
5
+ export declare function isValidEvmAddress(address: string): boolean;
6
+ /**
7
+ * Validate a Solana address format (base58)
8
+ */
9
+ export declare function isValidSolanaAddress(address: string): boolean;
10
+ /**
11
+ * Validate a Bitcoin address format
12
+ */
13
+ export declare function isValidBitcoinAddress(address: string): boolean;
14
+ /**
15
+ * Validate a TON address format
16
+ */
17
+ export declare function isValidTonAddress(address: string): boolean;
18
+ /**
19
+ * Validate a Sui address format
20
+ */
21
+ export declare function isValidSuiAddress(address: string): boolean;
22
+ /**
23
+ * Validate a Stellar address format
24
+ *
25
+ * Supports both:
26
+ * - Standard account ID (G...)
27
+ * - Asset identifier (CODE:ISSUER)
28
+ */
29
+ export declare function isValidStellarAddress(address: string): boolean;
30
+ /**
31
+ * Validate an address for a specific chain
32
+ *
33
+ * @param address - The address to validate
34
+ * @param chain - The blockchain to validate against
35
+ * @returns true if the address is valid for the chain
36
+ */
37
+ export declare function isValidAddress(address: string, chain: Chain): boolean;
38
+ /**
39
+ * Normalize an EVM address to checksum format
40
+ */
41
+ export declare function normalizeEvmAddress(address: string): string;
42
+ /**
43
+ * Normalize an address for a specific chain
44
+ *
45
+ * @param address - The address to normalize
46
+ * @param chain - The blockchain
47
+ * @returns The normalized address
48
+ */
49
+ export declare function normalizeAddress(address: string, chain: Chain): string;
50
+ //# sourceMappingURL=address-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-validation.d.ts","sourceRoot":"","sources":["../../../src/utils/address-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU9D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAwBrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAMtE"}
@@ -0,0 +1,3 @@
1
+ export { isValidAddress, isValidEvmAddress, isValidSolanaAddress, isValidBitcoinAddress, isValidTonAddress, isValidSuiAddress, isValidStellarAddress, normalizeAddress, normalizeEvmAddress, } from './address-validation';
2
+ export { isValidUrl } from './url-validation';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Validate that a string is a valid URL
3
+ *
4
+ * @param url - String to validate
5
+ * @returns True if the string is a valid URL
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * isValidUrl('https://example.com'); // true
10
+ * isValidUrl('http://example.com/path?query=1'); // true
11
+ * isValidUrl('not-a-url'); // false
12
+ * isValidUrl(''); // false
13
+ * ```
14
+ */
15
+ export declare function isValidUrl(url: string): boolean;
16
+ //# sourceMappingURL=url-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-validation.d.ts","sourceRoot":"","sources":["../../../src/utils/url-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAY/C"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@webacy-xyz/sdk-core",
3
+ "version": "1.0.1",
4
+ "description": "Core utilities for Webacy SDK packages",
5
+ "author": "Webacy",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/Webacy-Prod/sdk.git",
10
+ "directory": "packages/core"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/Webacy-Prod/sdk/issues"
14
+ },
15
+ "homepage": "https://github.com/Webacy-Prod/sdk/tree/main/packages/core#readme",
16
+ "main": "./dist/cjs/index.js",
17
+ "module": "./dist/esm/index.js",
18
+ "types": "./dist/types/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "import": {
22
+ "types": "./dist/types/index.d.ts",
23
+ "default": "./dist/esm/index.js"
24
+ },
25
+ "require": {
26
+ "types": "./dist/types/index.d.ts",
27
+ "default": "./dist/cjs/index.js"
28
+ }
29
+ }
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "README.md"
34
+ ],
35
+ "sideEffects": false,
36
+ "engines": {
37
+ "node": ">=18.0.0"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public",
41
+ "registry": "https://registry.npmjs.org/"
42
+ },
43
+ "keywords": [
44
+ "webacy",
45
+ "sdk",
46
+ "blockchain",
47
+ "risk",
48
+ "security",
49
+ "web3"
50
+ ],
51
+ "scripts": {
52
+ "build": "npm run build:esm && npm run build:cjs && npm run build:types && npm run postbuild",
53
+ "build:esm": "tsc -p tsconfig.esm.json",
54
+ "build:cjs": "tsc -p tsconfig.cjs.json",
55
+ "build:types": "tsc -p tsconfig.types.json",
56
+ "postbuild": "node ../../scripts/fix-esm-imports.mjs dist/esm && echo '{\"type\":\"module\"}' > dist/esm/package.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
57
+ "clean": "rm -rf dist",
58
+ "typecheck": "tsc --noEmit",
59
+ "test": "vitest run",
60
+ "test:watch": "vitest watch",
61
+ "lint": "eslint src --ext .ts",
62
+ "lint:fix": "eslint src --ext .ts --fix"
63
+ }
64
+ }