@reptilianhq/launch-on-block-sdk 0.4.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 (44) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +674 -0
  3. package/README.md +116 -0
  4. package/dist/abis.d.ts +2 -0
  5. package/dist/abis.d.ts.map +1 -0
  6. package/dist/abis.js +2 -0
  7. package/dist/abis.js.map +1 -0
  8. package/dist/compatibility.d.ts +50 -0
  9. package/dist/compatibility.d.ts.map +1 -0
  10. package/dist/compatibility.js +244 -0
  11. package/dist/compatibility.js.map +1 -0
  12. package/dist/deployments.d.ts +294 -0
  13. package/dist/deployments.d.ts.map +1 -0
  14. package/dist/deployments.js +122 -0
  15. package/dist/deployments.js.map +1 -0
  16. package/dist/economics.d.ts +23 -0
  17. package/dist/economics.d.ts.map +1 -0
  18. package/dist/economics.js +111 -0
  19. package/dist/economics.js.map +1 -0
  20. package/dist/errors.d.ts +18 -0
  21. package/dist/errors.d.ts.map +1 -0
  22. package/dist/errors.js +30 -0
  23. package/dist/errors.js.map +1 -0
  24. package/dist/generated/abis.d.ts +1652 -0
  25. package/dist/generated/abis.d.ts.map +1 -0
  26. package/dist/generated/abis.js +2243 -0
  27. package/dist/generated/abis.js.map +1 -0
  28. package/dist/generated/deployments.d.ts +212 -0
  29. package/dist/generated/deployments.d.ts.map +1 -0
  30. package/dist/generated/deployments.js +237 -0
  31. package/dist/generated/deployments.js.map +1 -0
  32. package/dist/index.d.ts +8 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +8 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/receipts.d.ts +84 -0
  37. package/dist/receipts.d.ts.map +1 -0
  38. package/dist/receipts.js +104 -0
  39. package/dist/receipts.js.map +1 -0
  40. package/dist/transactions.d.ts +115 -0
  41. package/dist/transactions.d.ts.map +1 -0
  42. package/dist/transactions.js +395 -0
  43. package/dist/transactions.js.map +1 -0
  44. package/package.json +88 -0
@@ -0,0 +1,84 @@
1
+ import { type Address, type Hex } from "viem";
2
+ export interface ReceiptLog {
3
+ address: Address;
4
+ data: Hex;
5
+ topics: readonly Hex[];
6
+ }
7
+ export interface ReceiptLike {
8
+ status: "success" | "reverted" | 0 | 1 | "0x0" | "0x1";
9
+ transactionHash?: Hex;
10
+ logs: readonly ReceiptLog[];
11
+ }
12
+ export interface LaunchCreatedResult {
13
+ token: Address;
14
+ creator: Address;
15
+ creatorBps: number;
16
+ curveFeeBps: number;
17
+ payoutWallet: Address;
18
+ metadataURI: string;
19
+ }
20
+ export interface CurveSelectedResult {
21
+ token: Address;
22
+ curveId: number;
23
+ implementation: Address;
24
+ quoteTarget: bigint;
25
+ }
26
+ export interface LaunchCreationResult {
27
+ launch: LaunchCreatedResult;
28
+ curve: CurveSelectedResult;
29
+ }
30
+ export interface BuyResult {
31
+ token: Address;
32
+ buyer: Address;
33
+ amountIn: bigint;
34
+ tokensOut: bigint;
35
+ }
36
+ export interface SellResult {
37
+ token: Address;
38
+ seller: Address;
39
+ tokensIn: bigint;
40
+ amountOut: bigint;
41
+ }
42
+ export interface GraduatedResult {
43
+ token: Address;
44
+ pool: Address;
45
+ totalRaised: bigint;
46
+ creatorCut: bigint;
47
+ protocolCut: bigint;
48
+ poolQuote: bigint;
49
+ poolTokens: bigint;
50
+ burnedTokens: bigint;
51
+ }
52
+ export interface RouterSwapResult {
53
+ sender: Address;
54
+ pool: Address;
55
+ amountIn: bigint;
56
+ amountOut: bigint;
57
+ to: Address;
58
+ }
59
+ export interface FeesCollectedResult {
60
+ pair: Address;
61
+ caller: Address;
62
+ amount0: bigint;
63
+ amount1: bigint;
64
+ protocolAmount0: bigint;
65
+ protocolAmount1: bigint;
66
+ creatorAmount0: bigint;
67
+ creatorAmount1: bigint;
68
+ }
69
+ export declare function assertSuccessfulReceipt(receipt: ReceiptLike): void;
70
+ export declare function verifyLaunchCreatedReceipt(receipt: ReceiptLike, launchpad: Address, expected?: Partial<LaunchCreatedResult>): LaunchCreatedResult;
71
+ export declare function verifyCurveSelectedReceipt(receipt: ReceiptLike, launchpad: Address, expected?: Partial<CurveSelectedResult>): CurveSelectedResult;
72
+ /** Requires both creation events and proves that they describe the same launch token. */
73
+ export declare function verifyLaunchCreationReceipt(receipt: ReceiptLike, launchpad: Address, expected?: {
74
+ launch?: Partial<LaunchCreatedResult>;
75
+ curve?: Partial<CurveSelectedResult>;
76
+ }): LaunchCreationResult;
77
+ export declare function verifyBuyReceipt(receipt: ReceiptLike, launchpad: Address, expected?: Partial<Pick<BuyResult, "token" | "buyer" | "amountIn">> & {
78
+ minTokensOut?: bigint;
79
+ }): BuyResult;
80
+ export declare function verifySellReceipt(receipt: ReceiptLike, launchpad: Address, expected?: Partial<Pick<SellResult, "token" | "seller">>): SellResult;
81
+ export declare function verifyGraduatedReceipt(receipt: ReceiptLike, launchpad: Address, expected?: Partial<Pick<GraduatedResult, "token" | "pool">>): GraduatedResult;
82
+ export declare function verifyRouterSwapReceipt(receipt: ReceiptLike, router: Address, expected?: Partial<Pick<RouterSwapResult, "sender" | "pool" | "to">>): RouterSwapResult;
83
+ export declare function verifyFeesCollectedReceipt(receipt: ReceiptLike, feeController: Address, expected?: Partial<Pick<FeesCollectedResult, "pair" | "caller">>): FeesCollectedResult;
84
+ //# sourceMappingURL=receipts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../src/receipts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { decodeEventLog } from "viem";
2
+ import { feeControllerAbi, launchpadAbi, routerAbi } from "./generated/abis.js";
3
+ import { SdkError } from "./errors.js";
4
+ export function assertSuccessfulReceipt(receipt) {
5
+ if (receipt.status !== "success" && receipt.status !== 1 && receipt.status !== "0x1") {
6
+ const suffix = receipt.transactionHash ? ` ${receipt.transactionHash}` : "";
7
+ throw new SdkError("RECEIPT_REVERTED", `Transaction${suffix} reverted`, {
8
+ path: "status",
9
+ expected: "success",
10
+ actual: String(receipt.status),
11
+ });
12
+ }
13
+ }
14
+ export function verifyLaunchCreatedReceipt(receipt, launchpad, expected = {}) {
15
+ const result = requireEvent(receipt, launchpad, launchpadAbi, "LaunchCreated");
16
+ assertExpected(result, expected, new Set(["token", "creator", "payoutWallet"]));
17
+ return result;
18
+ }
19
+ export function verifyCurveSelectedReceipt(receipt, launchpad, expected = {}) {
20
+ const result = requireEvent(receipt, launchpad, launchpadAbi, "CurveSelected");
21
+ assertExpected(result, expected, new Set(["token", "implementation"]));
22
+ return result;
23
+ }
24
+ /** Requires both creation events and proves that they describe the same launch token. */
25
+ export function verifyLaunchCreationReceipt(receipt, launchpad, expected = {}) {
26
+ const launch = verifyLaunchCreatedReceipt(receipt, launchpad, expected.launch);
27
+ const curve = verifyCurveSelectedReceipt(receipt, launchpad, expected.curve);
28
+ if (!sameAddress(launch.token, curve.token)) {
29
+ throw new SdkError("RECEIPT_FIELD_MISMATCH", `Creation events disagree on token: LaunchCreated emitted ${launch.token}, CurveSelected emitted ${curve.token}`, { path: "curve.token", expected: launch.token, actual: curve.token });
30
+ }
31
+ return { launch, curve };
32
+ }
33
+ export function verifyBuyReceipt(receipt, launchpad, expected = {}) {
34
+ const result = requireEvent(receipt, launchpad, launchpadAbi, "Buy");
35
+ const { minTokensOut, ...exact } = expected;
36
+ assertExpected(result, exact, new Set(["token", "buyer"]));
37
+ if (minTokensOut !== undefined && result.tokensOut < minTokensOut) {
38
+ throw new SdkError("OUTPUT_BELOW_MINIMUM", `Receipt tokensOut is below the protected minimum: expected at least ${minTokensOut}, got ${result.tokensOut}`, { path: "tokensOut", expected: `>= ${minTokensOut}`, actual: String(result.tokensOut) });
39
+ }
40
+ return result;
41
+ }
42
+ export function verifySellReceipt(receipt, launchpad, expected = {}) {
43
+ const result = requireEvent(receipt, launchpad, launchpadAbi, "Sell");
44
+ assertExpected(result, expected, new Set(["token", "seller"]));
45
+ return result;
46
+ }
47
+ export function verifyGraduatedReceipt(receipt, launchpad, expected = {}) {
48
+ const result = requireEvent(receipt, launchpad, launchpadAbi, "Graduated");
49
+ assertExpected(result, expected, new Set(["token", "pool"]));
50
+ return result;
51
+ }
52
+ export function verifyRouterSwapReceipt(receipt, router, expected = {}) {
53
+ const result = requireEvent(receipt, router, routerAbi, "Swap");
54
+ assertExpected(result, expected, new Set(["sender", "pool", "to"]));
55
+ return result;
56
+ }
57
+ export function verifyFeesCollectedReceipt(receipt, feeController, expected = {}) {
58
+ const result = requireEvent(receipt, feeController, feeControllerAbi, "FeesCollected");
59
+ assertExpected(result, expected, new Set(["pair", "caller"]));
60
+ return result;
61
+ }
62
+ function requireEvent(receipt, emitter, abi, eventName) {
63
+ assertSuccessfulReceipt(receipt);
64
+ for (const log of receipt.logs) {
65
+ if (!sameAddress(log.address, emitter))
66
+ continue;
67
+ try {
68
+ const decoded = decodeEventLog({
69
+ abi,
70
+ eventName,
71
+ data: log.data,
72
+ topics: log.topics,
73
+ strict: true,
74
+ });
75
+ if (decoded.eventName !== eventName)
76
+ continue;
77
+ return decoded.args;
78
+ }
79
+ catch {
80
+ // An expected emitter can produce several unrelated events in one receipt.
81
+ }
82
+ }
83
+ const suffix = receipt.transactionHash ? ` in ${receipt.transactionHash}` : "";
84
+ throw new SdkError("EVENT_NOT_FOUND", `Expected ${eventName} event from ${emitter}${suffix}`, {
85
+ path: "logs",
86
+ expected: `${eventName} from ${emitter}`,
87
+ actual: "no matching log",
88
+ });
89
+ }
90
+ function assertExpected(actual, expected, addressFields) {
91
+ for (const [key, expectedValue] of Object.entries(expected)) {
92
+ const actualValue = actual[key];
93
+ const matches = addressFields.has(key) && typeof actualValue === "string" && typeof expectedValue === "string"
94
+ ? sameAddress(actualValue, expectedValue)
95
+ : actualValue === expectedValue;
96
+ if (!matches) {
97
+ throw new SdkError("RECEIPT_FIELD_MISMATCH", `Receipt ${key} mismatch: expected ${String(expectedValue)}, got ${String(actualValue)}`, { path: key, expected: String(expectedValue), actual: String(actualValue) });
98
+ }
99
+ }
100
+ }
101
+ function sameAddress(left, right) {
102
+ return left.toLowerCase() === right.toLowerCase();
103
+ }
104
+ //# sourceMappingURL=receipts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipts.js","sourceRoot":"","sources":["../src/receipts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import { type Address, type Hex } from "viem";
2
+ export interface TransactionRequest {
3
+ to: Address;
4
+ data: Hex;
5
+ value: bigint;
6
+ }
7
+ /** JSON-RPC wallet shape used by `eth_sendTransaction`. */
8
+ export interface RpcTransactionRequest {
9
+ to: Address;
10
+ data: Hex;
11
+ value: Hex;
12
+ gas: Hex;
13
+ }
14
+ /** Transaction fields required to prove that a mined transaction matches reviewed calldata. */
15
+ export interface ConfirmedTransactionLike {
16
+ from: Address;
17
+ to: Address | null;
18
+ value: bigint;
19
+ input: Hex;
20
+ }
21
+ export interface CreateLaunchParameters {
22
+ name: string;
23
+ symbol: string;
24
+ creatorBps: number;
25
+ curveFeeBps: number;
26
+ payoutWallet: Address;
27
+ metadataUri: string;
28
+ /** Omit to use the on-chain DEFAULT_CURVE_ID. */
29
+ curveId?: number;
30
+ salt?: Hex;
31
+ }
32
+ export declare function buildCreateLaunchTransaction(launchpad: Address, parameters: CreateLaunchParameters): TransactionRequest;
33
+ export declare function buildCurveBuyTransaction(launchpad: Address, parameters: {
34
+ token: Address;
35
+ minTokensOut: bigint;
36
+ value: bigint;
37
+ }): TransactionRequest;
38
+ export declare function buildCurveSellTransaction(launchpad: Address, parameters: {
39
+ token: Address;
40
+ tokensIn: bigint;
41
+ minAmountOut: bigint;
42
+ }): TransactionRequest;
43
+ export declare function buildGraduateTransaction(launchpad: Address, token: Address): TransactionRequest;
44
+ export declare function buildClaimTransaction(launchpad: Address, token?: Address): TransactionRequest;
45
+ export declare function buildApproveTransaction(token: Address, spender: Address, amount: bigint): TransactionRequest;
46
+ export declare function buildRouterBuyTransaction(router: Address, parameters: {
47
+ token: Address;
48
+ minTokensOut: bigint;
49
+ deadline: bigint;
50
+ value: bigint;
51
+ }): TransactionRequest;
52
+ export declare function buildRouterSellTransaction(router: Address, parameters: {
53
+ token: Address;
54
+ tokensIn: bigint;
55
+ minAmountOut: bigint;
56
+ deadline: bigint;
57
+ }): TransactionRequest;
58
+ export declare function buildSwapExactInTransaction(router: Address, parameters: {
59
+ tokenIn: Address;
60
+ tokenOut: Address;
61
+ amountIn: bigint;
62
+ amountOutMin: bigint;
63
+ recipient: Address;
64
+ deadline: bigint;
65
+ value?: bigint;
66
+ }): TransactionRequest;
67
+ export declare function buildCollectFeesTransaction(feeController: Address, pair: Address, venue: "amm" | "lb"): TransactionRequest;
68
+ export declare function toRpcTransactionRequest(request: TransactionRequest, gas: bigint): RpcTransactionRequest;
69
+ export declare function parseRpcTransactionRequest(value: {
70
+ to: string;
71
+ data: string;
72
+ value: string;
73
+ gas: string;
74
+ }): RpcTransactionRequest;
75
+ export declare function verifyCreateLaunchTransaction(transaction: ConfirmedTransactionLike, launchpad: Address, account: Address, parameters: CreateLaunchParameters): DecodedLaunchpadTransaction;
76
+ export declare function verifyCurveBuyTransaction(transaction: ConfirmedTransactionLike, launchpad: Address, account: Address, parameters: {
77
+ token: Address;
78
+ minTokensOut: bigint;
79
+ value: bigint;
80
+ }): DecodedLaunchpadTransaction;
81
+ export type DecodedLaunchpadTransaction = {
82
+ functionName: "createLaunch";
83
+ args: readonly [string, string, number, number, Address, string] | readonly [string, string, number, number, Address, string, number];
84
+ } | {
85
+ functionName: "createLaunchVanity";
86
+ args: readonly [string, string, number, number, Address, string, Hex] | readonly [string, string, number, number, Address, string, Hex, number];
87
+ } | {
88
+ functionName: "buy";
89
+ args: readonly [Address, bigint];
90
+ } | {
91
+ functionName: "sell";
92
+ args: readonly [Address, bigint, bigint];
93
+ } | {
94
+ functionName: "graduate";
95
+ args: readonly [Address];
96
+ } | {
97
+ functionName: "claim";
98
+ args: readonly [];
99
+ } | {
100
+ functionName: "claimAll";
101
+ args: readonly [Address];
102
+ };
103
+ export declare function decodeLaunchpadTransaction(data: Hex): DecodedLaunchpadTransaction;
104
+ export type DecodedRouterTransaction = {
105
+ functionName: "buy";
106
+ args: readonly [Address, bigint, bigint];
107
+ } | {
108
+ functionName: "sell";
109
+ args: readonly [Address, bigint, bigint, bigint];
110
+ } | {
111
+ functionName: "swapExactIn";
112
+ args: readonly [Address, Address, bigint, bigint, Address, bigint];
113
+ };
114
+ export declare function decodeRouterTransaction(data: Hex): DecodedRouterTransaction;
115
+ //# sourceMappingURL=transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}