@black-market/sdk 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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/abis.d.ts +2573 -0
  4. package/dist/abis.d.ts.map +1 -0
  5. package/dist/abis.js +1875 -0
  6. package/dist/abis.js.map +1 -0
  7. package/dist/abyss.d.ts +3650 -0
  8. package/dist/abyss.d.ts.map +1 -0
  9. package/dist/abyss.js +1522 -0
  10. package/dist/abyss.js.map +1 -0
  11. package/dist/addresses.d.ts +211 -0
  12. package/dist/addresses.d.ts.map +1 -0
  13. package/dist/addresses.js +234 -0
  14. package/dist/addresses.js.map +1 -0
  15. package/dist/auction.d.ts +57 -0
  16. package/dist/auction.d.ts.map +1 -0
  17. package/dist/auction.js +88 -0
  18. package/dist/auction.js.map +1 -0
  19. package/dist/client.d.ts +12 -0
  20. package/dist/client.d.ts.map +1 -0
  21. package/dist/client.js +18 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/format.d.ts +15 -0
  24. package/dist/format.d.ts.map +1 -0
  25. package/dist/format.js +78 -0
  26. package/dist/format.js.map +1 -0
  27. package/dist/index.d.ts +9 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +9 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/launch.d.ts +225 -0
  32. package/dist/launch.d.ts.map +1 -0
  33. package/dist/launch.js +511 -0
  34. package/dist/launch.js.map +1 -0
  35. package/dist/live.d.ts +185 -0
  36. package/dist/live.d.ts.map +1 -0
  37. package/dist/live.js +205 -0
  38. package/dist/live.js.map +1 -0
  39. package/package.json +51 -0
  40. package/src/abis.ts +1896 -0
  41. package/src/abyss.ts +1574 -0
  42. package/src/addresses.ts +342 -0
  43. package/src/auction.ts +107 -0
  44. package/src/client.ts +37 -0
  45. package/src/format.ts +73 -0
  46. package/src/index.ts +8 -0
  47. package/src/launch.ts +724 -0
  48. package/src/live.ts +393 -0
package/dist/live.d.ts ADDED
@@ -0,0 +1,185 @@
1
+ import type { Address } from "viem";
2
+ /** Native ETH sentinel used by `WalletBalanceProvider`. */
3
+ export declare const MOCK_ETH_ADDRESS: Address;
4
+ export declare const MARKET_REFERENCE_CURRENCY_UNIT: bigint;
5
+ export declare function rayMul(a: bigint, b: bigint): bigint;
6
+ export declare function usd18ToNumber(price: bigint): number;
7
+ export declare function tokensToNumber(amount: bigint, decimals: number): number;
8
+ export type CatalogReserveFields = {
9
+ token: Address;
10
+ decimals: number;
11
+ priceUsd: number;
12
+ supplyApy: number;
13
+ variableBorrowApy: number;
14
+ totalSupplyUsd: number;
15
+ totalBorrowUsd: number;
16
+ supplyCapUsd?: number;
17
+ borrowCapUsd?: number;
18
+ borrowingEnabled: boolean;
19
+ stableBorrowEnabled: boolean;
20
+ collateralEnabled: boolean;
21
+ ltvBps: number;
22
+ liquidationThresholdBps: number;
23
+ liquidationBonusBps: number;
24
+ reserveFactorBps: number;
25
+ };
26
+ export type LiveReserve = {
27
+ token: Address;
28
+ symbol: string;
29
+ name: string;
30
+ isActive: boolean;
31
+ decimals: number;
32
+ priceUsd: number;
33
+ collateralPriceUsd?: number;
34
+ debtPriceUsd?: number;
35
+ supplyApy: number;
36
+ variableBorrowApy: number;
37
+ totalSupplyUsd: number;
38
+ totalBorrowUsd: number;
39
+ supplyCapUsd?: number;
40
+ borrowCapUsd?: number;
41
+ isFrozen?: boolean;
42
+ isIsolated?: boolean;
43
+ borrowableInIsolation?: boolean;
44
+ debtCeilingUsd?: number;
45
+ isolationModeTotalDebtUsd?: number;
46
+ borrowingEnabled?: boolean;
47
+ totalSupply: bigint;
48
+ totalBorrow: bigint;
49
+ supplyCap: bigint;
50
+ borrowCap: bigint;
51
+ stableBorrowEnabled?: boolean;
52
+ collateralEnabled?: boolean;
53
+ ltvBps?: number;
54
+ liquidationThresholdBps?: number;
55
+ liquidationBonusBps?: number;
56
+ reserveFactorBps?: number;
57
+ availableLiquidity: bigint;
58
+ liquidityIndex: bigint;
59
+ variableBorrowIndex: bigint;
60
+ aToken?: Address;
61
+ stableDebtToken?: Address;
62
+ variableDebtToken?: Address;
63
+ };
64
+ export type LiveUserReserve = {
65
+ token: Address;
66
+ supplied: number;
67
+ borrowed: number;
68
+ isCollateral: boolean;
69
+ suppliedRaw: bigint;
70
+ borrowedRaw: bigint;
71
+ };
72
+ export type UiAggregatedReserve = {
73
+ underlyingAsset: Address;
74
+ name: string;
75
+ symbol: string;
76
+ decimals: bigint;
77
+ baseLTVasCollateral: bigint;
78
+ reserveLiquidationThreshold: bigint;
79
+ reserveLiquidationBonus: bigint;
80
+ reserveFactor: bigint;
81
+ usageAsCollateralEnabled: boolean;
82
+ borrowingEnabled: boolean;
83
+ stableBorrowRateEnabled: boolean;
84
+ isActive: boolean;
85
+ isFrozen: boolean;
86
+ liquidityIndex: bigint;
87
+ variableBorrowIndex: bigint;
88
+ liquidityRate: bigint;
89
+ variableBorrowRate: bigint;
90
+ availableLiquidity: bigint;
91
+ totalPrincipalStableDebt: bigint;
92
+ totalScaledVariableDebt: bigint;
93
+ priceInUsd: bigint;
94
+ supplyCap: bigint;
95
+ borrowCap: bigint;
96
+ };
97
+ export type UiUserReserve = {
98
+ underlyingAsset: Address;
99
+ scaledATokenBalance: bigint;
100
+ usageAsCollateralEnabledOnUser: boolean;
101
+ scaledVariableDebt: bigint;
102
+ principalStableDebt: bigint;
103
+ };
104
+ /** Index helper rows by underlying token. The pool reserve list is the listing set. */
105
+ export declare function indexByToken<T extends {
106
+ token: Address;
107
+ }>(rows: T[]): Map<string, T>;
108
+ export declare function liveReserveFromUi(row: UiAggregatedReserve): LiveReserve;
109
+ export declare function liveUserFromUi(user: UiUserReserve, reserve: LiveReserve): LiveUserReserve;
110
+ export type LensReserve = {
111
+ token: Address;
112
+ aToken: Address;
113
+ stableDebtToken: Address;
114
+ variableDebtToken: Address;
115
+ decimals: bigint;
116
+ isActive: boolean;
117
+ isFrozen: boolean;
118
+ borrowingEnabled: boolean;
119
+ stableBorrowEnabled: boolean;
120
+ collateralEnabled: boolean;
121
+ ltvBps: bigint;
122
+ liquidationThresholdBps: bigint;
123
+ liquidationBonusBps: bigint;
124
+ reserveFactorBps: bigint;
125
+ priceUsd: bigint;
126
+ collateralPriceUsd: bigint;
127
+ debtPriceUsd: bigint;
128
+ isIsolated: boolean;
129
+ borrowableInIsolation: boolean;
130
+ debtCeiling: bigint;
131
+ isolationModeTotalDebt: bigint;
132
+ liquidityRate: bigint;
133
+ variableBorrowRate: bigint;
134
+ availableLiquidity: bigint;
135
+ totalStableDebt: bigint;
136
+ totalVariableDebt: bigint;
137
+ supplyCap: bigint;
138
+ borrowCap: bigint;
139
+ };
140
+ export type LensPosition = {
141
+ token: Address;
142
+ supplied: bigint;
143
+ borrowed: bigint;
144
+ wallet: bigint;
145
+ isCollateral: boolean;
146
+ };
147
+ export declare function liveReserveFromLens(row: LensReserve): LiveReserve;
148
+ export declare function liveUserFromLens(row: LensPosition, decimals: number): LiveUserReserve;
149
+ export declare function liveReserveFromPdp(opts: {
150
+ token: Address;
151
+ symbol: string;
152
+ name?: string;
153
+ decimals: number;
154
+ priceUsd18: bigint;
155
+ availableLiquidity: bigint;
156
+ totalStableDebt: bigint;
157
+ totalVariableDebt: bigint;
158
+ liquidityRate: bigint;
159
+ variableBorrowRate: bigint;
160
+ isActive?: boolean;
161
+ isFrozen?: boolean;
162
+ borrowingEnabled?: boolean;
163
+ stableBorrowEnabled?: boolean;
164
+ collateralEnabled?: boolean;
165
+ ltvBps?: number;
166
+ liquidationThresholdBps?: number;
167
+ liquidationBonusBps?: number;
168
+ reserveFactorBps?: number;
169
+ supplyCapTokens?: bigint;
170
+ borrowCapTokens?: bigint;
171
+ }): LiveReserve;
172
+ export declare function liveUserFromPdp(opts: {
173
+ token: Address;
174
+ decimals: number;
175
+ currentATokenBalance: bigint;
176
+ currentStableDebt: bigint;
177
+ currentVariableDebt: bigint;
178
+ usageAsCollateralEnabled: boolean;
179
+ }): LiveUserReserve;
180
+ /** Join catalog display metadata onto a deployed reserve. Does not add or drop listings. */
181
+ export declare function overlayCatalogWithLive<T extends CatalogReserveFields>(catalog: T, live: LiveReserve | undefined): T;
182
+ /** Native ETH reported by the lens. ERC-20 wallet balances must be read separately. */
183
+ export declare function walletMapFromLens(nativeEth: bigint): Map<string, bigint>;
184
+ export declare function indexWalletBalances(tokens: readonly Address[], balances: readonly bigint[]): Map<string, bigint>;
185
+ //# sourceMappingURL=live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"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"}
package/dist/live.js ADDED
@@ -0,0 +1,205 @@
1
+ import { RAY, rayAprToApyPercent } from "./format.js";
2
+ /** Native ETH sentinel used by `WalletBalanceProvider`. */
3
+ export const MOCK_ETH_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
4
+ export const MARKET_REFERENCE_CURRENCY_UNIT = 10n ** 18n;
5
+ export function rayMul(a, b) {
6
+ return (a * b + RAY / 2n) / RAY;
7
+ }
8
+ export function usd18ToNumber(price) {
9
+ if (price === 0n)
10
+ return 0;
11
+ return Number(price) / 1e18;
12
+ }
13
+ export function tokensToNumber(amount, decimals) {
14
+ if (amount === 0n)
15
+ return 0;
16
+ return Number(amount) / 10 ** decimals;
17
+ }
18
+ /** Index helper rows by underlying token. The pool reserve list is the listing set. */
19
+ export function indexByToken(rows) {
20
+ const map = new Map();
21
+ for (const row of rows)
22
+ map.set(row.token.toLowerCase(), row);
23
+ return map;
24
+ }
25
+ export function liveReserveFromUi(row) {
26
+ const decimals = Number(row.decimals);
27
+ const variableDebt = rayMul(row.totalScaledVariableDebt, row.variableBorrowIndex);
28
+ const totalBorrow = row.totalPrincipalStableDebt + variableDebt;
29
+ const totalSupply = row.availableLiquidity + totalBorrow;
30
+ const priceUsd = usd18ToNumber(row.priceInUsd);
31
+ return {
32
+ token: row.underlyingAsset,
33
+ symbol: row.symbol,
34
+ name: row.name,
35
+ isActive: row.isActive,
36
+ decimals,
37
+ priceUsd,
38
+ supplyApy: rayAprToApyPercent(row.liquidityRate),
39
+ variableBorrowApy: rayAprToApyPercent(row.variableBorrowRate),
40
+ totalSupplyUsd: tokensToNumber(totalSupply, decimals) * priceUsd,
41
+ totalBorrowUsd: tokensToNumber(totalBorrow, decimals) * priceUsd,
42
+ supplyCapUsd: Number(row.supplyCap) * priceUsd,
43
+ borrowCapUsd: Number(row.borrowCap) * priceUsd,
44
+ totalSupply,
45
+ totalBorrow,
46
+ supplyCap: row.supplyCap,
47
+ borrowCap: row.borrowCap,
48
+ borrowingEnabled: row.borrowingEnabled && row.isActive && !row.isFrozen,
49
+ stableBorrowEnabled: row.stableBorrowRateEnabled && row.isActive && !row.isFrozen,
50
+ collateralEnabled: row.usageAsCollateralEnabled,
51
+ ltvBps: Number(row.baseLTVasCollateral),
52
+ liquidationThresholdBps: Number(row.reserveLiquidationThreshold),
53
+ liquidationBonusBps: Number(row.reserveLiquidationBonus),
54
+ reserveFactorBps: Number(row.reserveFactor),
55
+ availableLiquidity: row.availableLiquidity,
56
+ liquidityIndex: row.liquidityIndex,
57
+ variableBorrowIndex: row.variableBorrowIndex,
58
+ };
59
+ }
60
+ export function liveUserFromUi(user, reserve) {
61
+ const suppliedRaw = rayMul(user.scaledATokenBalance, reserve.liquidityIndex);
62
+ const variableDebt = rayMul(user.scaledVariableDebt, reserve.variableBorrowIndex);
63
+ const borrowedRaw = variableDebt + user.principalStableDebt;
64
+ return {
65
+ token: user.underlyingAsset,
66
+ supplied: tokensToNumber(suppliedRaw, reserve.decimals),
67
+ borrowed: tokensToNumber(borrowedRaw, reserve.decimals),
68
+ isCollateral: user.usageAsCollateralEnabledOnUser,
69
+ suppliedRaw,
70
+ borrowedRaw,
71
+ };
72
+ }
73
+ export function liveReserveFromLens(row) {
74
+ const decimals = Number(row.decimals);
75
+ const totalBorrow = row.totalStableDebt + row.totalVariableDebt;
76
+ const totalSupply = row.availableLiquidity + totalBorrow;
77
+ const priceUsd = usd18ToNumber(row.priceUsd);
78
+ return {
79
+ token: row.token,
80
+ symbol: "",
81
+ name: "",
82
+ isActive: row.isActive,
83
+ decimals,
84
+ priceUsd,
85
+ collateralPriceUsd: usd18ToNumber(row.collateralPriceUsd),
86
+ debtPriceUsd: usd18ToNumber(row.debtPriceUsd),
87
+ supplyApy: rayAprToApyPercent(row.liquidityRate),
88
+ variableBorrowApy: rayAprToApyPercent(row.variableBorrowRate),
89
+ totalSupplyUsd: tokensToNumber(totalSupply, decimals) * priceUsd,
90
+ totalBorrowUsd: tokensToNumber(totalBorrow, decimals) * priceUsd,
91
+ supplyCapUsd: Number(row.supplyCap) * priceUsd,
92
+ borrowCapUsd: Number(row.borrowCap) * priceUsd,
93
+ isFrozen: row.isFrozen,
94
+ isIsolated: row.isIsolated,
95
+ borrowableInIsolation: row.borrowableInIsolation,
96
+ debtCeilingUsd: Number(row.debtCeiling),
97
+ totalSupply,
98
+ totalBorrow,
99
+ supplyCap: row.supplyCap,
100
+ borrowCap: row.borrowCap,
101
+ isolationModeTotalDebtUsd: usd18ToNumber(row.isolationModeTotalDebt),
102
+ borrowingEnabled: row.borrowingEnabled && row.isActive && !row.isFrozen,
103
+ stableBorrowEnabled: row.stableBorrowEnabled && row.isActive && !row.isFrozen,
104
+ collateralEnabled: row.collateralEnabled,
105
+ ltvBps: Number(row.ltvBps),
106
+ liquidationThresholdBps: Number(row.liquidationThresholdBps),
107
+ liquidationBonusBps: Number(row.liquidationBonusBps),
108
+ reserveFactorBps: Number(row.reserveFactorBps),
109
+ availableLiquidity: row.availableLiquidity,
110
+ liquidityIndex: 0n,
111
+ variableBorrowIndex: 0n,
112
+ aToken: row.aToken,
113
+ stableDebtToken: row.stableDebtToken,
114
+ variableDebtToken: row.variableDebtToken,
115
+ };
116
+ }
117
+ export function liveUserFromLens(row, decimals) {
118
+ return {
119
+ token: row.token,
120
+ supplied: tokensToNumber(row.supplied, decimals),
121
+ borrowed: tokensToNumber(row.borrowed, decimals),
122
+ isCollateral: row.isCollateral,
123
+ suppliedRaw: row.supplied,
124
+ borrowedRaw: row.borrowed,
125
+ };
126
+ }
127
+ export function liveReserveFromPdp(opts) {
128
+ const totalBorrow = opts.totalStableDebt + opts.totalVariableDebt;
129
+ const totalSupply = opts.availableLiquidity + totalBorrow;
130
+ const priceUsd = usd18ToNumber(opts.priceUsd18);
131
+ const active = opts.isActive ?? true;
132
+ const frozen = opts.isFrozen ?? false;
133
+ return {
134
+ token: opts.token,
135
+ symbol: opts.symbol,
136
+ name: opts.name ?? opts.symbol,
137
+ isActive: active,
138
+ decimals: opts.decimals,
139
+ priceUsd,
140
+ supplyApy: rayAprToApyPercent(opts.liquidityRate),
141
+ variableBorrowApy: rayAprToApyPercent(opts.variableBorrowRate),
142
+ totalSupplyUsd: tokensToNumber(totalSupply, opts.decimals) * priceUsd,
143
+ totalBorrowUsd: tokensToNumber(totalBorrow, opts.decimals) * priceUsd,
144
+ supplyCapUsd: opts.supplyCapTokens !== undefined ? Number(opts.supplyCapTokens) * priceUsd : undefined,
145
+ borrowCapUsd: opts.borrowCapTokens !== undefined ? Number(opts.borrowCapTokens) * priceUsd : undefined,
146
+ borrowingEnabled: (opts.borrowingEnabled ?? true) && active && !frozen,
147
+ stableBorrowEnabled: (opts.stableBorrowEnabled ?? false) && active && !frozen,
148
+ collateralEnabled: opts.collateralEnabled,
149
+ ltvBps: opts.ltvBps,
150
+ liquidationThresholdBps: opts.liquidationThresholdBps,
151
+ liquidationBonusBps: opts.liquidationBonusBps,
152
+ reserveFactorBps: opts.reserveFactorBps,
153
+ availableLiquidity: opts.availableLiquidity,
154
+ liquidityIndex: 0n,
155
+ totalSupply,
156
+ totalBorrow,
157
+ supplyCap: opts.supplyCapTokens ?? 0n,
158
+ borrowCap: opts.borrowCapTokens ?? 0n,
159
+ variableBorrowIndex: 0n,
160
+ };
161
+ }
162
+ export function liveUserFromPdp(opts) {
163
+ return {
164
+ token: opts.token,
165
+ supplied: tokensToNumber(opts.currentATokenBalance, opts.decimals),
166
+ borrowed: tokensToNumber(opts.currentStableDebt + opts.currentVariableDebt, opts.decimals),
167
+ isCollateral: opts.usageAsCollateralEnabled,
168
+ suppliedRaw: opts.currentATokenBalance,
169
+ borrowedRaw: opts.currentStableDebt + opts.currentVariableDebt,
170
+ };
171
+ }
172
+ /** Join catalog display metadata onto a deployed reserve. Does not add or drop listings. */
173
+ export function overlayCatalogWithLive(catalog, live) {
174
+ if (!live)
175
+ return catalog;
176
+ return {
177
+ ...catalog,
178
+ priceUsd: live.priceUsd,
179
+ supplyApy: live.supplyApy,
180
+ variableBorrowApy: live.variableBorrowApy,
181
+ totalSupplyUsd: live.totalSupplyUsd,
182
+ totalBorrowUsd: live.totalBorrowUsd,
183
+ supplyCapUsd: live.supplyCapUsd ?? catalog.supplyCapUsd,
184
+ borrowCapUsd: live.borrowCapUsd ?? catalog.borrowCapUsd,
185
+ borrowingEnabled: live.borrowingEnabled ?? catalog.borrowingEnabled,
186
+ stableBorrowEnabled: live.stableBorrowEnabled ?? catalog.stableBorrowEnabled,
187
+ collateralEnabled: live.collateralEnabled ?? catalog.collateralEnabled,
188
+ ltvBps: live.ltvBps ?? catalog.ltvBps,
189
+ liquidationThresholdBps: live.liquidationThresholdBps ?? catalog.liquidationThresholdBps,
190
+ liquidationBonusBps: live.liquidationBonusBps ?? catalog.liquidationBonusBps,
191
+ reserveFactorBps: live.reserveFactorBps ?? catalog.reserveFactorBps,
192
+ };
193
+ }
194
+ /** Native ETH reported by the lens. ERC-20 wallet balances must be read separately. */
195
+ export function walletMapFromLens(nativeEth) {
196
+ return new Map([[MOCK_ETH_ADDRESS.toLowerCase(), nativeEth]]);
197
+ }
198
+ export function indexWalletBalances(tokens, balances) {
199
+ const map = new Map();
200
+ for (let i = 0; i < tokens.length && i < balances.length; i++) {
201
+ map.set(tokens[i].toLowerCase(), balances[i]);
202
+ }
203
+ return map;
204
+ }
205
+ //# sourceMappingURL=live.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,4CAAuD,CAAC;AAExF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,IAAI,GAAG,CAAC;AAEzD,MAAM,UAAU,MAAM,CAAC,CAAS,EAAE,CAAS;IACzC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,QAAgB;IAC7D,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;AACzC,CAAC;AAuGD,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAA+B,IAAS;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAwB;IACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,GAAG,CAAC,wBAAwB,GAAG,YAAY,CAAC;IAChE,MAAM,WAAW,GAAG,GAAG,CAAC,kBAAkB,GAAG,WAAW,CAAC;IACzD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,eAAe;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ;QACR,QAAQ;QACR,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC;QAChD,iBAAiB,EAAE,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC7D,cAAc,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,QAAQ;QAChE,cAAc,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,QAAQ;QAChE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ;QAC9C,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ;QAC9C,WAAW;QACX,WAAW;QACX,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ;QACvE,mBAAmB,EAAE,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ;QACjF,iBAAiB,EAAE,GAAG,CAAC,wBAAwB;QAC/C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACvC,uBAAuB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;QAChE,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACxD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;QAC3C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAmB,EAAE,OAAoB;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAC5D,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,eAAe;QAC3B,QAAQ,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;QACvD,QAAQ,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;QACvD,YAAY,EAAE,IAAI,CAAC,8BAA8B;QACjD,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC;AAyCD,MAAM,UAAU,mBAAmB,CAAC,GAAgB;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAChE,MAAM,WAAW,GAAG,GAAG,CAAC,kBAAkB,GAAG,WAAW,CAAC;IACzD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ;QACR,QAAQ;QACR,kBAAkB,EAAE,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACzD,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC;QAC7C,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC;QAChD,iBAAiB,EAAE,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC7D,cAAc,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,QAAQ;QAChE,cAAc,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,QAAQ;QAChE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ;QAC9C,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ;QAC9C,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;QAChD,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QACvC,WAAW;QACX,WAAW;QACX,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,yBAAyB,EAAE,aAAa,CAAC,GAAG,CAAC,sBAAsB,CAAC;QACpE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ;QACvE,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ;QAC7E,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;QACxC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,uBAAuB,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAC5D,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACpD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC9C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,cAAc,EAAE,EAAE;QAClB,mBAAmB,EAAE,EAAE;QACvB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAiB,EAAE,QAAgB;IAClE,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAChD,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAChD,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,WAAW,EAAE,GAAG,CAAC,QAAQ;QACzB,WAAW,EAAE,GAAG,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAsBlC;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;IAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACtC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM;QAC9B,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ;QACR,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC;QACjD,iBAAiB,EAAE,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC9D,cAAc,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACrE,cAAc,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACrE,YAAY,EACV,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC1F,YAAY,EACV,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC1F,gBAAgB,EAAE,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM;QACtE,mBAAmB,EAAE,CAAC,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM;QAC7E,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,cAAc,EAAE,EAAE;QAClB,WAAW;QACX,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,EAAE;QACrC,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,EAAE;QACrC,mBAAmB,EAAE,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAO/B;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC;QAClE,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC1F,YAAY,EAAE,IAAI,CAAC,wBAAwB;QAC3C,WAAW,EAAE,IAAI,CAAC,oBAAoB;QACtC,WAAW,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB;KAC/D,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CACpC,OAAU,EACV,IAA6B;IAE7B,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC;IAC1B,OAAO;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY;QACvD,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY;QACvD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;QACnE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB;QAC5E,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB;QACtE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;QACrC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,IAAI,OAAO,CAAC,uBAAuB;QACxF,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB;QAC5E,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;KACpE,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAA0B,EAC1B,QAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@black-market/sdk",
3
+ "version": "0.1.0",
4
+ "description": "Canonical TypeScript SDK for the Black Market protocol on Robinhood Chain (Abyss DEX, Atomic launches, lending market).",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "src"
18
+ ],
19
+ "sideEffects": false,
20
+ "engines": {
21
+ "node": ">=20"
22
+ },
23
+ "packageManager": "pnpm@10.11.0",
24
+ "publishConfig": {
25
+ "access": "public",
26
+ "provenance": true
27
+ },
28
+ "scripts": {
29
+ "build": "tsc -p tsconfig.json",
30
+ "dev": "tsc -p tsconfig.json --watch",
31
+ "examples": "pnpm build && node examples/quickstart.mjs",
32
+ "lint": "tsc -p tsconfig.json --noEmit",
33
+ "prepublishOnly": "pnpm build",
34
+ "test": "pnpm build && node --test test/*.test.mjs",
35
+ "typecheck": "tsc -p tsconfig.json --noEmit"
36
+ },
37
+ "dependencies": {
38
+ "viem": "^2.31.0"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "^22.15.29",
42
+ "typescript": "^5.8.3"
43
+ },
44
+ "keywords": [
45
+ "black-market",
46
+ "abyss",
47
+ "robinhood-chain",
48
+ "defi",
49
+ "viem"
50
+ ]
51
+ }