@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
@@ -0,0 +1,88 @@
1
+ import { zeroAddress } from "viem";
2
+ /** Fixed supply used by Atomic launches. */
3
+ export const AUCTION_SUPPLY = 1000000000n * 10n ** 18n;
4
+ export const AUCTION_SUPPLY_WHOLE = 1_000_000_000;
5
+ export const ROBINHOOD_USDG = "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168";
6
+ export const ROBINHOOD_WETH = "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73";
7
+ export const ROBINHOOD_ABYSS = "0x15f3385625D7e364C5a6216FBbceadf10fa90e7d";
8
+ export const ROBINHOOD_AAPL = "0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9";
9
+ export const ROBINHOOD_AMD = "0x86923f96303D656E4aa86D9d42D1e57ad2023fdC";
10
+ export const ROBINHOOD_AMZN = "0x12f190a9F9d7D37a250758b26824B97CE941bF54";
11
+ export const ROBINHOOD_ASML = "0x47F93d52cBeC7C6D2CfC080e154002370a60dAEA";
12
+ export const ROBINHOOD_BABA = "0xad25Ac6C84D497db898fa1E8387bf6Af3532a1c4";
13
+ export const ROBINHOOD_CLSK = "0xcBB95BBF36099d34dA091dc6Fa6F49EfA257Cee3";
14
+ export const ROBINHOOD_COIN = "0x6330D8C3178a418788dF01a47479c0ce7CCF450b";
15
+ export const ROBINHOOD_CRCL = "0xdF0992E440dD0be65BD8439b609d6D4366bf1CB5";
16
+ export const ROBINHOOD_CRWV = "0x5f10A1C971B69e47e059e1dC91901B59b3fB49C3";
17
+ export const ROBINHOOD_DELL = "0x941AE714EC6D8130c7B75d67160Ca08f1e7d11Dd";
18
+ export const ROBINHOOD_EWY = "0x7f0aBeF0C07280F82c6a08ead09dEd6BAE2C13Fc";
19
+ export const ROBINHOOD_GME = "0x1b0E319c6A659F002271B69dB8A7df2F911c153E";
20
+ export const ROBINHOOD_GOOGL = "0x2e0847E8910a9732eB3fb1bb4b70a580ADAD4FE3";
21
+ export const ROBINHOOD_INTC = "0xc72b96e0E48ecd4DC75E1e45396e26300BC39681";
22
+ export const ROBINHOOD_IONQ = "0x558378E000D634A36593E338eBacdd6207640EfE";
23
+ export const ROBINHOOD_META = "0xc0D6457C16Cc70d6790Dd43521C899C87ce02f35";
24
+ export const ROBINHOOD_MSFT = "0xe93237C50D904957Cf27E7B1133b510C669c2e74";
25
+ export const ROBINHOOD_MSTR = "0xec262a75e413fAfD0dF80480274532C79D42da09";
26
+ export const ROBINHOOD_MU = "0xfF080c8ce2E5feadaCa0Da81314Ae59D232d4afD";
27
+ export const ROBINHOOD_NBIS = "0x9D9c6684F596F66a64C030B93A886D51Fd4D7931";
28
+ export const ROBINHOOD_NVDA = "0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC";
29
+ export const ROBINHOOD_ORCL = "0xb0992820E760d836549ba69BC7598b4af75dEE03";
30
+ export const ROBINHOOD_PLTR = "0x894E1EC2D74FFE5AEF8Dc8A9e84686acCB964F2A";
31
+ export const ROBINHOOD_QQQ = "0xD5f3879160bc7c32ebb4dC785F8a4F505888de68";
32
+ export const ROBINHOOD_RGTI = "0x284358abc07F9359f19f4b5b4aC91901Be2597Ba";
33
+ export const ROBINHOOD_RKLB = "0x3b14C39E89D60D627b42a1A4CA45b5bb45Fc12e2";
34
+ export const ROBINHOOD_SGOV = "0x92FD66527192E3e61d4DDd13322Aa222DE86F9B5";
35
+ export const ROBINHOOD_SLV = "0x411eFb0E7f985935DAec3D4C3ebaEa0d0AD7D89f";
36
+ export const ROBINHOOD_SNDK = "0xB90A19fF0Af67f7779afF50A882A9CfF42446400";
37
+ export const ROBINHOOD_SPCX = "0x4a0E65A3EcceC6dBe60AE065F2e7bb85Fae35eEa";
38
+ export const ROBINHOOD_SPY = "0x117cc2133c37B721F49dE2A7a74833232B3B4C0C";
39
+ export const ROBINHOOD_TSLA = "0x322F0929c4625eD5bAd873c95208D54E1c003b2d";
40
+ export const ROBINHOOD_TSM = "0x58FfE4a942d3885bAa22D7520691F611EF09e7AA";
41
+ export const ROBINHOOD_USAR = "0xd917B029C761D264c6A312BBbcDA868658eF86a6";
42
+ export const ROBINHOOD_USO = "0xa30FA36Db767ad9eD3f7a60fC79526fB4d56D344";
43
+ function rwa(id, name, address) {
44
+ return { id, symbol: id, name, address, decimals: 18, usdPeg: false };
45
+ }
46
+ /** Supported paired assets for Atomic launches: native ETH, wrapped WETH, USDG, then catalog stocks. */
47
+ export const AUCTION_QUOTE_OPTIONS = [
48
+ { id: "ETH", symbol: "ETH", name: "Ether", address: zeroAddress, decimals: 18, usdPeg: false },
49
+ { id: "WETH", symbol: "WETH", name: "Wrapped Ether", address: ROBINHOOD_WETH, decimals: 18, usdPeg: false },
50
+ { id: "USDG", symbol: "USDG", name: "Global Dollar", address: ROBINHOOD_USDG, decimals: 6, usdPeg: true },
51
+ { id: "ABYSS", symbol: "ABYSS", name: "Abyss", address: ROBINHOOD_ABYSS, decimals: 18, usdPeg: false },
52
+ rwa("AAPL", "Apple", ROBINHOOD_AAPL),
53
+ rwa("AMD", "Advanced Micro Devices", ROBINHOOD_AMD),
54
+ rwa("AMZN", "Amazon", ROBINHOOD_AMZN),
55
+ rwa("ASML", "ASML Holding", ROBINHOOD_ASML),
56
+ rwa("BABA", "Alibaba", ROBINHOOD_BABA),
57
+ rwa("CLSK", "CleanSpark", ROBINHOOD_CLSK),
58
+ rwa("COIN", "Coinbase", ROBINHOOD_COIN),
59
+ rwa("CRCL", "Circle", ROBINHOOD_CRCL),
60
+ rwa("CRWV", "CoreWeave", ROBINHOOD_CRWV),
61
+ rwa("DELL", "Dell", ROBINHOOD_DELL),
62
+ rwa("EWY", "MSCI South Korea", ROBINHOOD_EWY),
63
+ rwa("GME", "GameStop", ROBINHOOD_GME),
64
+ rwa("GOOGL", "Alphabet", ROBINHOOD_GOOGL),
65
+ rwa("INTC", "Intel", ROBINHOOD_INTC),
66
+ rwa("IONQ", "IonQ", ROBINHOOD_IONQ),
67
+ rwa("META", "Meta", ROBINHOOD_META),
68
+ rwa("MSFT", "Microsoft", ROBINHOOD_MSFT),
69
+ rwa("MSTR", "Strategy", ROBINHOOD_MSTR),
70
+ rwa("MU", "Micron", ROBINHOOD_MU),
71
+ rwa("NBIS", "Nebius", ROBINHOOD_NBIS),
72
+ rwa("NVDA", "NVIDIA", ROBINHOOD_NVDA),
73
+ rwa("ORCL", "Oracle", ROBINHOOD_ORCL),
74
+ rwa("PLTR", "Palantir", ROBINHOOD_PLTR),
75
+ rwa("QQQ", "Nasdaq-100", ROBINHOOD_QQQ),
76
+ rwa("RGTI", "Rigetti", ROBINHOOD_RGTI),
77
+ rwa("RKLB", "Rocket Lab", ROBINHOOD_RKLB),
78
+ rwa("SGOV", "T-Bills", ROBINHOOD_SGOV),
79
+ rwa("SLV", "Silver", ROBINHOOD_SLV),
80
+ rwa("SNDK", "Sandisk", ROBINHOOD_SNDK),
81
+ rwa("SPCX", "SPACs", ROBINHOOD_SPCX),
82
+ rwa("SPY", "S&P 500", ROBINHOOD_SPY),
83
+ rwa("TSLA", "Tesla", ROBINHOOD_TSLA),
84
+ rwa("TSM", "TSMC", ROBINHOOD_TSM),
85
+ rwa("USAR", "USA Rare Earth", ROBINHOOD_USAR),
86
+ rwa("USO", "Oil", ROBINHOOD_USO),
87
+ ];
88
+ //# sourceMappingURL=auction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auction.js","sourceRoot":"","sources":["../src/auction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type Hex, type PublicClient, type WalletClient } from "viem";
2
+ import type { SupportedChainId } from "./addresses.js";
3
+ export declare function createProtocolPublicClient(opts?: {
4
+ chainId?: SupportedChainId;
5
+ rpcUrl?: string;
6
+ }): PublicClient;
7
+ export declare function createProtocolWalletClient(opts: {
8
+ privateKey: Hex;
9
+ chainId?: SupportedChainId;
10
+ rpcUrl?: string;
11
+ }): WalletClient;
12
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,GAAG,EAER,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE;IAChD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,YAAY,CAKf;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,YAAY,CAMf"}
package/dist/client.js ADDED
@@ -0,0 +1,18 @@
1
+ import { createPublicClient, createWalletClient, http, } from "viem";
2
+ import { privateKeyToAccount } from "viem/accounts";
3
+ import { foundry } from "viem/chains";
4
+ import { chains } from "./addresses.js";
5
+ export function createProtocolPublicClient(opts) {
6
+ const chainId = opts?.chainId ?? 31337;
7
+ const chain = chains[chainId] ?? foundry;
8
+ const transport = http(opts?.rpcUrl ?? process.env.RPC_URL ?? "http://127.0.0.1:8545");
9
+ return createPublicClient({ chain, transport });
10
+ }
11
+ export function createProtocolWalletClient(opts) {
12
+ const chainId = opts.chainId ?? 31337;
13
+ const chain = chains[chainId] ?? foundry;
14
+ const transport = http(opts.rpcUrl ?? process.env.RPC_URL ?? "http://127.0.0.1:8545");
15
+ const account = privateKeyToAccount(opts.privateKey);
16
+ return createWalletClient({ account, chain, transport });
17
+ }
18
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,kBAAkB,EAElB,IAAI,GAIL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,UAAU,0BAA0B,CAAC,IAG1C;IACC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;IACvF,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAI1C;IACC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,MAAM,KAAK,GAAU,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IAChD,MAAM,SAAS,GAAc,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;IACjG,MAAM,OAAO,GAAY,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,OAAO,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Ray = 1e27 (Aave interest rates). */
2
+ export declare const RAY: bigint;
3
+ export declare const WAD: bigint;
4
+ export declare const BPS = 10000n;
5
+ export declare function rayToPercent(ray: bigint, digits?: number): number;
6
+ /** Convert Aave liquidity/variable borrow rate (ray) to APY % display number. */
7
+ export declare function rayAprToApyPercent(ray: bigint): number;
8
+ export declare function formatHealthFactor(hfRayOrWad: bigint): string;
9
+ export declare function healthFactorStatus(hfWad: bigint): "safe" | "watch" | "danger" | "none";
10
+ /** Parse a decimal health factor ("1.25") to wad. */
11
+ export declare function parseHealthFactorToWad(raw: string): bigint | undefined;
12
+ export declare function parseAmountToUnits(amount: string, decimals: number): bigint;
13
+ export declare function formatUnitsDisplay(value: bigint, decimals: number, digits?: number): string;
14
+ export declare function utilizationFromReserve(availableLiquidity: bigint, totalDebt: bigint): number;
15
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,eAAO,MAAM,GAAG,QAAa,CAAC;AAC9B,eAAO,MAAM,GAAG,QAAa,CAAC;AAC9B,eAAO,MAAM,GAAG,SAAU,CAAC;AAE3B,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAK5D;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAOtF;AAED,qDAAqD;AACrD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ3E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAUtF;AAED,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAI5F"}
package/dist/format.js ADDED
@@ -0,0 +1,78 @@
1
+ /** Ray = 1e27 (Aave interest rates). */
2
+ export const RAY = 10n ** 27n;
3
+ export const WAD = 10n ** 18n;
4
+ export const BPS = 10000n;
5
+ export function rayToPercent(ray, digits = 2) {
6
+ if (ray === 0n)
7
+ return 0;
8
+ // (ray / 1e27) * 100
9
+ const scaled = (ray * 10000n) / RAY; // bps-ish * 100
10
+ return Number(scaled) / 100 / 100;
11
+ }
12
+ /** Convert Aave liquidity/variable borrow rate (ray) to APY % display number. */
13
+ export function rayAprToApyPercent(ray) {
14
+ // Simple APR display (not compounded) — matches most Aave UI rate tooltips at a glance.
15
+ return Number((ray * 10000n) / RAY) / 100;
16
+ }
17
+ export function formatHealthFactor(hfRayOrWad) {
18
+ if (hfRayOrWad === 0n)
19
+ return "—";
20
+ // getUserAccountData returns HF in wad (1e18)
21
+ const value = Number(hfRayOrWad) / 1e18;
22
+ if (!Number.isFinite(value) || value > 1e6)
23
+ return "∞";
24
+ return value.toFixed(2);
25
+ }
26
+ export function healthFactorStatus(hfWad) {
27
+ if (hfWad === 0n)
28
+ return "none";
29
+ const value = Number(hfWad) / 1e18;
30
+ if (!Number.isFinite(value) || value > 1e6)
31
+ return "safe";
32
+ if (value < 1.05)
33
+ return "danger";
34
+ if (value < 1.5)
35
+ return "watch";
36
+ return "safe";
37
+ }
38
+ /** Parse a decimal health factor ("1.25") to wad. */
39
+ export function parseHealthFactorToWad(raw) {
40
+ const cleaned = raw.trim();
41
+ if (!cleaned)
42
+ return undefined;
43
+ const n = Number(cleaned);
44
+ if (!Number.isFinite(n) || n <= 0)
45
+ return undefined;
46
+ const [whole, frac = ""] = cleaned.split(".");
47
+ const fracPadded = (frac + "0".repeat(18)).slice(0, 18);
48
+ return BigInt(whole || "0") * WAD + BigInt(fracPadded || "0");
49
+ }
50
+ export function parseAmountToUnits(amount, decimals) {
51
+ const cleaned = amount.trim();
52
+ if (!cleaned || cleaned === ".")
53
+ return 0n;
54
+ const [whole, frac = ""] = cleaned.split(".");
55
+ const fracPadded = (frac + "0".repeat(decimals)).slice(0, decimals);
56
+ const wholePart = BigInt(whole || "0") * 10n ** BigInt(decimals);
57
+ const fracPart = BigInt(fracPadded || "0");
58
+ return wholePart + fracPart;
59
+ }
60
+ export function formatUnitsDisplay(value, decimals, digits = 4) {
61
+ if (value === 0n)
62
+ return "0";
63
+ const neg = value < 0n;
64
+ const v = neg ? -value : value;
65
+ const base = 10n ** BigInt(decimals);
66
+ const whole = v / base;
67
+ const frac = v % base;
68
+ const fracStr = frac.toString().padStart(decimals, "0").slice(0, digits).replace(/0+$/, "");
69
+ const body = fracStr ? `${whole}.${fracStr}` : whole.toString();
70
+ return neg ? `-${body}` : body;
71
+ }
72
+ export function utilizationFromReserve(availableLiquidity, totalDebt) {
73
+ const total = availableLiquidity + totalDebt;
74
+ if (total === 0n)
75
+ return 0;
76
+ return Number((totalDebt * 10000n) / total) / 100;
77
+ }
78
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./abis.js";
2
+ export * from "./abyss.js";
3
+ export * from "./addresses.js";
4
+ export * from "./auction.js";
5
+ export * from "./client.js";
6
+ export * from "./format.js";
7
+ export * from "./launch.js";
8
+ export * from "./live.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export * from "./abis.js";
2
+ export * from "./abyss.js";
3
+ export * from "./addresses.js";
4
+ export * from "./auction.js";
5
+ export * from "./client.js";
6
+ export * from "./format.js";
7
+ export * from "./launch.js";
8
+ export * from "./live.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,225 @@
1
+ import { type Address, type Hex } from "viem";
2
+ import { ABYSS_FEE_TIERS, AbyssPoolProfile, TokenKind } from "./abyss.js";
3
+ export declare const INITIAL_TEMPLATE_VERSION: 1;
4
+ export declare const STANDARD_TEMPLATE_ID: `0x${string}`;
5
+ export declare const QUOTE_STAKING_TEMPLATE_ID: `0x${string}`;
6
+ export declare const QUOTE_DIVIDENDS_TEMPLATE_ID: `0x${string}`;
7
+ export declare const DUAL_STAKING_TEMPLATE_ID: `0x${string}`;
8
+ export declare const DUAL_DIVIDENDS_TEMPLATE_ID: `0x${string}`;
9
+ export declare const FEE_BURN_TEMPLATE_ID: `0x${string}`;
10
+ export declare const STANDARD_TEMPLATE_VERSION: 1;
11
+ export declare const LAUNCH_REWARD_DURATION: number;
12
+ /**
13
+ * Canonical registered volatile/P3 oracle configuration for Atomic launches.
14
+ * Deployment evidence records maxAbsTickMove=17 and cardinality=4096 for this ID.
15
+ */
16
+ export declare const ATOMIC_LAUNCH_ORACLE_CONFIG_ID: "0xc0e9bed88d70a13fd3ab31451fefdd073b7266e838aee0ad1c236c8c9eff855d";
17
+ /** Existing Abyss execution policy: Atomic launch requests expire after 20 minutes. */
18
+ export declare const ATOMIC_LAUNCH_DEADLINE_SECONDS: number;
19
+ /** Existing Abyss execution policy: initial Atomic buys tolerate 50 basis points of price movement. */
20
+ export declare const ATOMIC_LAUNCH_BUY_SLIPPAGE_BPS = 50;
21
+ /**
22
+ * Atomic lifecycle recipes and tests use a $5,000 initial fully diluted market cap.
23
+ * The form converts this editable whole-USD default to an X18 value before recipe derivation.
24
+ */
25
+ export declare const DEFAULT_ATOMIC_LAUNCH_TARGET_MARKET_CAP_USD = 5000;
26
+ export declare enum LaunchRewardMode {
27
+ None = 0,
28
+ Staking = 1,
29
+ Dividends = 2
30
+ }
31
+ export declare enum LaunchFeeAssetMode {
32
+ Profile = 0,
33
+ PairedOnly = 1,
34
+ Both = 2,
35
+ LaunchedOnly = 3
36
+ }
37
+ export declare enum LaunchFeeDestination {
38
+ Owner = 1,
39
+ Rewards = 2,
40
+ Burn = 4
41
+ }
42
+ export type LaunchTemplateId = "standard" | "quote-staking" | "quote-dividends" | "dual-staking" | "dual-dividends" | "fee-burn";
43
+ export type AbyssFeePips = (typeof ABYSS_FEE_TIERS)[number]["feePips"];
44
+ export type FeeDisposition = {
45
+ ownerBps: number;
46
+ rewardsBps: number;
47
+ burnBps: number;
48
+ };
49
+ export type LaunchTemplate = {
50
+ id: LaunchTemplateId;
51
+ templateId: Hex;
52
+ version: typeof INITIAL_TEMPLATE_VERSION;
53
+ label: string;
54
+ tokenKinds: readonly TokenKind[];
55
+ poolProfiles: readonly AbyssPoolProfile[];
56
+ launchedTokenIsQuote: boolean;
57
+ rewardMode: LaunchRewardMode;
58
+ rewardDuration: number;
59
+ feeAssetMode: LaunchFeeAssetMode;
60
+ launchedTokenDestinations: number;
61
+ pairedTokenDestinations: number;
62
+ };
63
+ export declare const LAUNCH_TEMPLATES: readonly [{
64
+ readonly id: "standard";
65
+ readonly templateId: `0x${string}`;
66
+ readonly version: 1;
67
+ readonly label: "Standard";
68
+ readonly tokenKinds: readonly [TokenKind.Burnable];
69
+ readonly poolProfiles: readonly [AbyssPoolProfile.StandardOracle, AbyssPoolProfile.QuoteOracle];
70
+ readonly launchedTokenIsQuote: false;
71
+ readonly rewardMode: LaunchRewardMode.None;
72
+ readonly rewardDuration: 0;
73
+ readonly feeAssetMode: LaunchFeeAssetMode.Profile;
74
+ readonly launchedTokenDestinations: LaunchFeeDestination.Owner;
75
+ readonly pairedTokenDestinations: LaunchFeeDestination.Owner;
76
+ }, {
77
+ readonly id: "quote-staking";
78
+ readonly templateId: `0x${string}`;
79
+ readonly version: 1;
80
+ readonly label: "Quote Staking";
81
+ readonly tokenKinds: readonly [TokenKind.Burnable];
82
+ readonly poolProfiles: readonly [AbyssPoolProfile.QuoteOracle];
83
+ readonly launchedTokenIsQuote: false;
84
+ readonly rewardMode: LaunchRewardMode.Staking;
85
+ readonly rewardDuration: number;
86
+ readonly feeAssetMode: LaunchFeeAssetMode.PairedOnly;
87
+ readonly launchedTokenDestinations: 0;
88
+ readonly pairedTokenDestinations: number;
89
+ }, {
90
+ readonly id: "quote-dividends";
91
+ readonly templateId: `0x${string}`;
92
+ readonly version: 1;
93
+ readonly label: "Quote Dividends";
94
+ readonly tokenKinds: readonly [TokenKind.HolderDividend];
95
+ readonly poolProfiles: readonly [AbyssPoolProfile.QuoteOracle];
96
+ readonly launchedTokenIsQuote: false;
97
+ readonly rewardMode: LaunchRewardMode.Dividends;
98
+ readonly rewardDuration: number;
99
+ readonly feeAssetMode: LaunchFeeAssetMode.PairedOnly;
100
+ readonly launchedTokenDestinations: 0;
101
+ readonly pairedTokenDestinations: number;
102
+ }, {
103
+ readonly id: "dual-staking";
104
+ readonly templateId: `0x${string}`;
105
+ readonly version: 1;
106
+ readonly label: "Dual Staking";
107
+ readonly tokenKinds: readonly [TokenKind.Burnable];
108
+ readonly poolProfiles: readonly [AbyssPoolProfile.StandardOracle];
109
+ readonly launchedTokenIsQuote: false;
110
+ readonly rewardMode: LaunchRewardMode.Staking;
111
+ readonly rewardDuration: number;
112
+ readonly feeAssetMode: LaunchFeeAssetMode.Both;
113
+ readonly launchedTokenDestinations: number;
114
+ readonly pairedTokenDestinations: number;
115
+ }, {
116
+ readonly id: "dual-dividends";
117
+ readonly templateId: `0x${string}`;
118
+ readonly version: 1;
119
+ readonly label: "Dual Dividends";
120
+ readonly tokenKinds: readonly [TokenKind.HolderDividend];
121
+ readonly poolProfiles: readonly [AbyssPoolProfile.StandardOracle];
122
+ readonly launchedTokenIsQuote: false;
123
+ readonly rewardMode: LaunchRewardMode.Dividends;
124
+ readonly rewardDuration: number;
125
+ readonly feeAssetMode: LaunchFeeAssetMode.Both;
126
+ readonly launchedTokenDestinations: number;
127
+ readonly pairedTokenDestinations: number;
128
+ }, {
129
+ readonly id: "fee-burn";
130
+ readonly templateId: `0x${string}`;
131
+ readonly version: 1;
132
+ readonly label: "Fee Burn";
133
+ readonly tokenKinds: readonly [TokenKind.Burnable];
134
+ readonly poolProfiles: readonly [AbyssPoolProfile.QuoteOracle];
135
+ readonly launchedTokenIsQuote: true;
136
+ readonly rewardMode: LaunchRewardMode.None;
137
+ readonly rewardDuration: 0;
138
+ readonly feeAssetMode: LaunchFeeAssetMode.LaunchedOnly;
139
+ readonly launchedTokenDestinations: LaunchFeeDestination.Burn;
140
+ readonly pairedTokenDestinations: 0;
141
+ }];
142
+ export type AtomicLaunchRequest = {
143
+ creator: Address;
144
+ templateId: Hex;
145
+ templateVersion: number;
146
+ token: {
147
+ kind: TokenKind;
148
+ name: string;
149
+ symbol: string;
150
+ decimals: number;
151
+ supply: bigint;
152
+ };
153
+ pool: {
154
+ pairedToken: Address;
155
+ launchedTokenIsQuote: boolean;
156
+ profile: AbyssPoolProfile;
157
+ fee: AbyssFeePips;
158
+ oracleConfigId: Hex;
159
+ launchTick: number;
160
+ liquidity: bigint;
161
+ launchedTokenAmountMaximum: bigint;
162
+ pairedTokenAmountMaximum: bigint;
163
+ };
164
+ initialBuy: {
165
+ pairedTokenAmountIn: bigint;
166
+ launchedTokenAmountOutMinimum: bigint;
167
+ sqrtPriceLimitX96: bigint;
168
+ };
169
+ launchedTokenFees: FeeDisposition;
170
+ pairedTokenFees: FeeDisposition;
171
+ deadline: bigint;
172
+ };
173
+ export type AtomicLaunchPoolRecipeInput = {
174
+ pairedTokenDecimals: number;
175
+ pairedTokenUsdPriceX18: bigint;
176
+ targetMarketCapUsdX18: bigint;
177
+ launchedTokenIsQuote: boolean;
178
+ fee: AbyssFeePips;
179
+ };
180
+ export type AtomicLaunchPoolRecipe = {
181
+ launchTick: number;
182
+ launchSqrtPriceX96: bigint;
183
+ liquidity: bigint;
184
+ launchedTokenAmountMaximum: bigint;
185
+ pairedTokenAmountMaximum: 0n;
186
+ };
187
+ export type AtomicLaunchBuySqrtPriceLimitInput = {
188
+ launchSqrtPriceX96: bigint;
189
+ launchedTokenIsQuote: boolean;
190
+ slippageBps?: number;
191
+ };
192
+ /**
193
+ * Derives the one-sided Atomic launch position from a target fully diluted market cap.
194
+ * The raw price remains a rational bigint until the canonical Q64.96 square root conversion.
195
+ */
196
+ export declare function deriveAtomicLaunchPoolRecipe(input: AtomicLaunchPoolRecipeInput): AtomicLaunchPoolRecipe;
197
+ export type AtomicLaunchInitialBuyEstimateInput = {
198
+ launchSqrtPriceX96: bigint;
199
+ liquidity: bigint;
200
+ pairedTokenAmountIn: bigint;
201
+ launchedTokenIsQuote: boolean;
202
+ fee: AbyssFeePips;
203
+ sqrtPriceLimitX96?: bigint;
204
+ };
205
+ export type AtomicLaunchInitialBuyEstimate = {
206
+ launchedTokenAmountOut: bigint;
207
+ pairedTokenAmountConsumed: bigint;
208
+ sqrtPriceAfterX96: bigint;
209
+ };
210
+ /**
211
+ * Pure estimate for the first exact-input buy against a fresh one-sided Atomic
212
+ * launch position. No wallet balance, allowance, pool deployment, or RPC state.
213
+ * Uses conservative input-fee rounding; execution simulation remains the final
214
+ * authority before submission.
215
+ */
216
+ export declare function estimateAtomicLaunchInitialBuy(input: AtomicLaunchInitialBuyEstimateInput): AtomicLaunchInitialBuyEstimate;
217
+ /**
218
+ * Produces the router's exclusive sqrt-price guard for the paired-token initial buy.
219
+ * A paired input moves down for deployAbove and up for fee-burn/deployBelow.
220
+ */
221
+ export declare function deriveAtomicLaunchBuySqrtPriceLimitX96(input: AtomicLaunchBuySqrtPriceLimitInput): bigint;
222
+ export declare function getLaunchTemplate(id: LaunchTemplateId): LaunchTemplate;
223
+ export declare function getLaunchTemplateByHash(templateId: Hex): LaunchTemplate;
224
+ export declare function buildAtomicLaunchCalldata(request: AtomicLaunchRequest, nativeBuyAmount?: bigint): Hex;
225
+ //# sourceMappingURL=launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}