@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,395 @@
1
+ import { decodeFunctionData, encodeFunctionData, getAddress, isAddress, isHex, toHex, } from "viem";
2
+ import { feeControllerAbi, launchpadAbi, launchTokenAbi, routerAbi } from "./generated/abis.js";
3
+ import { SdkError } from "./errors.js";
4
+ import { validateNativeValue } from "./economics.js";
5
+ export function buildCreateLaunchTransaction(launchpad, parameters) {
6
+ assertAddress(launchpad, "launchpad");
7
+ assertAddress(parameters.payoutWallet, "payoutWallet");
8
+ assertUint16(parameters.creatorBps, "creatorBps");
9
+ assertUint16(parameters.curveFeeBps, "curveFeeBps");
10
+ if (parameters.curveId !== undefined)
11
+ assertCurveId(parameters.curveId);
12
+ const commonArgs = [
13
+ parameters.name,
14
+ parameters.symbol,
15
+ parameters.creatorBps,
16
+ parameters.curveFeeBps,
17
+ parameters.payoutWallet,
18
+ parameters.metadataUri,
19
+ ];
20
+ if (parameters.salt !== undefined) {
21
+ assertBytes32(parameters.salt, "salt");
22
+ if (BigInt(parameters.salt) === 0n) {
23
+ throw new SdkError("INVALID_ARGUMENT", "salt must not be zero", {
24
+ path: "salt",
25
+ expected: "nonzero bytes32",
26
+ actual: parameters.salt,
27
+ });
28
+ }
29
+ if (parameters.curveId !== undefined) {
30
+ return {
31
+ to: launchpad,
32
+ data: encodeFunctionData({
33
+ abi: launchpadAbi,
34
+ functionName: "createLaunchVanity",
35
+ args: [...commonArgs, parameters.salt, parameters.curveId],
36
+ }),
37
+ value: 0n,
38
+ };
39
+ }
40
+ return {
41
+ to: launchpad,
42
+ data: encodeFunctionData({
43
+ abi: launchpadAbi,
44
+ functionName: "createLaunchVanity",
45
+ args: [...commonArgs, parameters.salt],
46
+ }),
47
+ value: 0n,
48
+ };
49
+ }
50
+ if (parameters.curveId !== undefined) {
51
+ return {
52
+ to: launchpad,
53
+ data: encodeFunctionData({
54
+ abi: launchpadAbi,
55
+ functionName: "createLaunch",
56
+ args: [...commonArgs, parameters.curveId],
57
+ }),
58
+ value: 0n,
59
+ };
60
+ }
61
+ return {
62
+ to: launchpad,
63
+ data: encodeFunctionData({ abi: launchpadAbi, functionName: "createLaunch", args: commonArgs }),
64
+ value: 0n,
65
+ };
66
+ }
67
+ export function buildCurveBuyTransaction(launchpad, parameters) {
68
+ assertAddress(launchpad, "launchpad");
69
+ assertAddress(parameters.token, "token");
70
+ assertUint256(parameters.minTokensOut, "minTokensOut");
71
+ assertPositive(parameters.value, "value");
72
+ return {
73
+ to: launchpad,
74
+ data: encodeFunctionData({
75
+ abi: launchpadAbi,
76
+ functionName: "buy",
77
+ args: [parameters.token, parameters.minTokensOut],
78
+ }),
79
+ value: parameters.value,
80
+ };
81
+ }
82
+ export function buildCurveSellTransaction(launchpad, parameters) {
83
+ assertAddress(launchpad, "launchpad");
84
+ assertAddress(parameters.token, "token");
85
+ assertUint256(parameters.minAmountOut, "minAmountOut");
86
+ assertPositive(parameters.tokensIn, "tokensIn");
87
+ return {
88
+ to: launchpad,
89
+ data: encodeFunctionData({
90
+ abi: launchpadAbi,
91
+ functionName: "sell",
92
+ args: [parameters.token, parameters.tokensIn, parameters.minAmountOut],
93
+ }),
94
+ value: 0n,
95
+ };
96
+ }
97
+ export function buildGraduateTransaction(launchpad, token) {
98
+ assertAddress(launchpad, "launchpad");
99
+ assertAddress(token, "token");
100
+ return {
101
+ to: launchpad,
102
+ data: encodeFunctionData({ abi: launchpadAbi, functionName: "graduate", args: [token] }),
103
+ value: 0n,
104
+ };
105
+ }
106
+ export function buildClaimTransaction(launchpad, token) {
107
+ assertAddress(launchpad, "launchpad");
108
+ if (token !== undefined)
109
+ assertAddress(token, "token");
110
+ return token === undefined
111
+ ? { to: launchpad, data: encodeFunctionData({ abi: launchpadAbi, functionName: "claim" }), value: 0n }
112
+ : { to: launchpad, data: encodeFunctionData({ abi: launchpadAbi, functionName: "claimAll", args: [token] }), value: 0n };
113
+ }
114
+ export function buildApproveTransaction(token, spender, amount) {
115
+ assertAddress(token, "token");
116
+ assertAddress(spender, "spender");
117
+ assertUint256(amount, "amount");
118
+ return {
119
+ to: token,
120
+ data: encodeFunctionData({ abi: launchTokenAbi, functionName: "approve", args: [spender, amount] }),
121
+ value: 0n,
122
+ };
123
+ }
124
+ export function buildRouterBuyTransaction(router, parameters) {
125
+ assertAddress(router, "router");
126
+ assertAddress(parameters.token, "token");
127
+ assertUint256(parameters.minTokensOut, "minTokensOut");
128
+ assertUint256(parameters.deadline, "deadline");
129
+ assertPositive(parameters.value, "value");
130
+ return {
131
+ to: router,
132
+ data: encodeFunctionData({
133
+ abi: routerAbi,
134
+ functionName: "buy",
135
+ args: [parameters.token, parameters.minTokensOut, parameters.deadline],
136
+ }),
137
+ value: parameters.value,
138
+ };
139
+ }
140
+ export function buildRouterSellTransaction(router, parameters) {
141
+ assertAddress(router, "router");
142
+ assertAddress(parameters.token, "token");
143
+ assertUint256(parameters.minAmountOut, "minAmountOut");
144
+ assertUint256(parameters.deadline, "deadline");
145
+ assertPositive(parameters.tokensIn, "tokensIn");
146
+ return {
147
+ to: router,
148
+ data: encodeFunctionData({
149
+ abi: routerAbi,
150
+ functionName: "sell",
151
+ args: [parameters.token, parameters.tokensIn, parameters.minAmountOut, parameters.deadline],
152
+ }),
153
+ value: 0n,
154
+ };
155
+ }
156
+ export function buildSwapExactInTransaction(router, parameters) {
157
+ assertAddress(router, "router");
158
+ assertAddress(parameters.tokenIn, "tokenIn");
159
+ assertAddress(parameters.tokenOut, "tokenOut");
160
+ assertAddress(parameters.recipient, "recipient");
161
+ if (parameters.recipient.toLowerCase() === "0x0000000000000000000000000000000000000000") {
162
+ throw new SdkError("INVALID_ADDRESS", "recipient must not be the zero address", {
163
+ path: "recipient",
164
+ expected: "nonzero EVM address",
165
+ actual: parameters.recipient,
166
+ });
167
+ }
168
+ assertUint256(parameters.amountOutMin, "amountOutMin");
169
+ assertUint256(parameters.deadline, "deadline");
170
+ assertPositive(parameters.amountIn, "amountIn");
171
+ const value = validateNativeValue(parameters.tokenIn, parameters.amountIn, parameters.value);
172
+ return {
173
+ to: router,
174
+ data: encodeFunctionData({
175
+ abi: routerAbi,
176
+ functionName: "swapExactIn",
177
+ args: [
178
+ parameters.tokenIn,
179
+ parameters.tokenOut,
180
+ parameters.amountIn,
181
+ parameters.amountOutMin,
182
+ parameters.recipient,
183
+ parameters.deadline,
184
+ ],
185
+ }),
186
+ value,
187
+ };
188
+ }
189
+ export function buildCollectFeesTransaction(feeController, pair, venue) {
190
+ assertAddress(feeController, "feeController");
191
+ assertAddress(pair, "pair");
192
+ return {
193
+ to: feeController,
194
+ data: encodeFunctionData({
195
+ abi: feeControllerAbi,
196
+ functionName: venue === "amm" ? "collectFees" : "collectLBFees",
197
+ args: [pair],
198
+ }),
199
+ value: 0n,
200
+ };
201
+ }
202
+ export function toRpcTransactionRequest(request, gas) {
203
+ assertPositive(gas, "gas");
204
+ return {
205
+ to: request.to,
206
+ data: request.data,
207
+ value: toHex(request.value),
208
+ gas: toHex(gas),
209
+ };
210
+ }
211
+ export function parseRpcTransactionRequest(value) {
212
+ if (!isAddress(value.to)) {
213
+ throw new SdkError("INVALID_ADDRESS", "Transaction target must be an EVM address", {
214
+ path: "to",
215
+ expected: "20-byte EVM address",
216
+ actual: value.to,
217
+ });
218
+ }
219
+ if (!isHex(value.data) || value.data.length % 2 !== 0) {
220
+ throw new SdkError("INVALID_CALLDATA", "Transaction calldata must be byte-aligned hex", {
221
+ path: "data",
222
+ expected: "byte-aligned hex",
223
+ actual: value.data,
224
+ });
225
+ }
226
+ if (!isQuantity(value.value))
227
+ throw invalidQuantity("value", value.value);
228
+ if (!isQuantity(value.gas))
229
+ throw invalidQuantity("gas", value.gas);
230
+ return { to: getAddress(value.to), data: value.data, value: value.value, gas: value.gas };
231
+ }
232
+ export function verifyCreateLaunchTransaction(transaction, launchpad, account, parameters) {
233
+ const expected = buildCreateLaunchTransaction(launchpad, parameters);
234
+ assertTransactionMatches(transaction, account, expected, "Launchpad create");
235
+ return decodeLaunchpadTransaction(transaction.input);
236
+ }
237
+ export function verifyCurveBuyTransaction(transaction, launchpad, account, parameters) {
238
+ const expected = buildCurveBuyTransaction(launchpad, parameters);
239
+ assertTransactionMatches(transaction, account, expected, "Launchpad buy");
240
+ return decodeLaunchpadTransaction(transaction.input);
241
+ }
242
+ export function decodeLaunchpadTransaction(data) {
243
+ let decoded;
244
+ try {
245
+ decoded = decodeFunctionData({ abi: launchpadAbi, data });
246
+ }
247
+ catch (cause) {
248
+ throw new SdkError("INVALID_CALLDATA", "Calldata is not recognized by the Launchpad ABI", {
249
+ path: "data",
250
+ actual: data,
251
+ cause,
252
+ });
253
+ }
254
+ switch (decoded.functionName) {
255
+ case "createLaunch":
256
+ return { functionName: decoded.functionName, args: decoded.args };
257
+ case "createLaunchVanity":
258
+ return { functionName: decoded.functionName, args: decoded.args };
259
+ case "buy":
260
+ return { functionName: decoded.functionName, args: decoded.args };
261
+ case "sell":
262
+ return { functionName: decoded.functionName, args: decoded.args };
263
+ case "graduate":
264
+ return { functionName: decoded.functionName, args: decoded.args };
265
+ case "claim":
266
+ return { functionName: decoded.functionName, args: [] };
267
+ case "claimAll":
268
+ return { functionName: decoded.functionName, args: decoded.args };
269
+ default:
270
+ throw new SdkError("UNSUPPORTED_FUNCTION", `Unsupported Launchpad transaction function: ${decoded.functionName}`, { path: "functionName", actual: decoded.functionName });
271
+ }
272
+ }
273
+ export function decodeRouterTransaction(data) {
274
+ let decoded;
275
+ try {
276
+ decoded = decodeFunctionData({ abi: routerAbi, data });
277
+ }
278
+ catch (cause) {
279
+ throw new SdkError("INVALID_CALLDATA", "Calldata is not recognized by the Router ABI", {
280
+ path: "data",
281
+ actual: data,
282
+ cause,
283
+ });
284
+ }
285
+ switch (decoded.functionName) {
286
+ case "buy":
287
+ return { functionName: decoded.functionName, args: decoded.args };
288
+ case "sell":
289
+ return { functionName: decoded.functionName, args: decoded.args };
290
+ case "swapExactIn":
291
+ return { functionName: decoded.functionName, args: decoded.args };
292
+ default:
293
+ throw new SdkError("UNSUPPORTED_FUNCTION", `Unsupported Router transaction function: ${decoded.functionName}`, { path: "functionName", actual: decoded.functionName });
294
+ }
295
+ }
296
+ function assertPositive(value, name) {
297
+ assertUint256(value, name);
298
+ if (value <= 0n) {
299
+ throw new SdkError("INVALID_ARGUMENT", `${name} must be greater than zero`, {
300
+ path: name,
301
+ expected: "> 0",
302
+ actual: String(value),
303
+ });
304
+ }
305
+ }
306
+ function assertAddress(value, name) {
307
+ if (!isAddress(value)) {
308
+ throw new SdkError("INVALID_ADDRESS", `${name} must be an EVM address`, {
309
+ path: name,
310
+ expected: "20-byte EVM address",
311
+ actual: value,
312
+ });
313
+ }
314
+ }
315
+ function assertUint256(value, name) {
316
+ const maxUint256 = (1n << 256n) - 1n;
317
+ if (value < 0n || value > maxUint256) {
318
+ throw new SdkError("INVALID_ARGUMENT", `${name} must be an unsigned 256-bit integer`, {
319
+ path: name,
320
+ expected: "unsigned 256-bit integer",
321
+ actual: String(value),
322
+ });
323
+ }
324
+ }
325
+ function assertUint16(value, name) {
326
+ if (!Number.isInteger(value) || value < 0 || value > 65_535) {
327
+ throw new SdkError("INVALID_ARGUMENT", `${name} must be an unsigned 16-bit integer`, {
328
+ path: name,
329
+ expected: "integer from 0 through 65535",
330
+ actual: String(value),
331
+ });
332
+ }
333
+ }
334
+ function assertCurveId(value) {
335
+ if (!Number.isInteger(value) || value <= 0 || value > 0xffff_ffff) {
336
+ throw new SdkError("INVALID_ARGUMENT", "curveId must be a nonzero unsigned 32-bit integer", {
337
+ path: "curveId",
338
+ expected: "integer from 1 through 4294967295",
339
+ actual: String(value),
340
+ });
341
+ }
342
+ }
343
+ function assertBytes32(value, name) {
344
+ if (!/^0x[0-9a-fA-F]{64}$/.test(value)) {
345
+ throw new SdkError("INVALID_ARGUMENT", `${name} must be exactly 32 bytes`, {
346
+ path: name,
347
+ expected: "32-byte hex",
348
+ actual: value,
349
+ });
350
+ }
351
+ }
352
+ function assertTransactionMatches(transaction, account, expected, label) {
353
+ if (!sameAddress(transaction.from, account)) {
354
+ throw new SdkError("UNEXPECTED_SENDER", `${label} sender does not match the authorized account`, {
355
+ path: "from",
356
+ expected: account,
357
+ actual: transaction.from,
358
+ });
359
+ }
360
+ if (transaction.to === null || !sameAddress(transaction.to, expected.to)) {
361
+ throw new SdkError("UNEXPECTED_TARGET", `${label} target does not match`, {
362
+ path: "to",
363
+ expected: expected.to,
364
+ actual: transaction.to ?? "null",
365
+ });
366
+ }
367
+ if (transaction.value !== expected.value) {
368
+ throw new SdkError("UNEXPECTED_VALUE", `${label} value does not match`, {
369
+ path: "value",
370
+ expected: String(expected.value),
371
+ actual: String(transaction.value),
372
+ });
373
+ }
374
+ if (transaction.input.toLowerCase() !== expected.data.toLowerCase()) {
375
+ throw new SdkError("CALLDATA_MISMATCH", `${label} calldata does not match`, {
376
+ path: "input",
377
+ expected: expected.data,
378
+ actual: transaction.input,
379
+ });
380
+ }
381
+ }
382
+ function invalidQuantity(path, actual) {
383
+ return new SdkError("INVALID_RPC_QUANTITY", `Transaction ${path} must be a JSON-RPC quantity`, {
384
+ path,
385
+ expected: "canonical JSON-RPC hex quantity",
386
+ actual,
387
+ });
388
+ }
389
+ function isQuantity(value) {
390
+ return /^0x(?:0|[1-9a-fA-F][0-9a-fA-F]*)$/.test(value);
391
+ }
392
+ function sameAddress(left, right) {
393
+ return left.toLowerCase() === right.toLowerCase();
394
+ }
395
+ //# sourceMappingURL=transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "@reptilianhq/launch-on-block-sdk",
3
+ "version": "0.4.0",
4
+ "description": "Public TypeScript SDK, contract interfaces, ABIs, and deployment metadata for integrating with the Launch On Block protocol.",
5
+ "launchpadRelease": {
6
+ "network": "mainnet",
7
+ "releaseId": "gen-12",
8
+ "manifest": "deployments/robinhood-mainnet-gen-12.json"
9
+ },
10
+ "license": "GPL-3.0-only",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/ReptilianHQ/launch-on-block-sdk.git"
14
+ },
15
+ "homepage": "https://github.com/ReptilianHQ/launch-on-block-sdk#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/ReptilianHQ/launch-on-block-sdk/issues"
18
+ },
19
+ "engines": {
20
+ "node": ">=22"
21
+ },
22
+ "publishConfig": {
23
+ "access": "public",
24
+ "registry": "https://registry.npmjs.org"
25
+ },
26
+ "type": "module",
27
+ "sideEffects": false,
28
+ "files": [
29
+ "dist",
30
+ "README.md",
31
+ "CHANGELOG.md"
32
+ ],
33
+ "exports": {
34
+ ".": {
35
+ "types": "./dist/index.d.ts",
36
+ "import": "./dist/index.js"
37
+ },
38
+ "./abis": {
39
+ "types": "./dist/abis.d.ts",
40
+ "import": "./dist/abis.js"
41
+ },
42
+ "./deployments": {
43
+ "types": "./dist/deployments.d.ts",
44
+ "import": "./dist/deployments.js"
45
+ },
46
+ "./errors": {
47
+ "types": "./dist/errors.d.ts",
48
+ "import": "./dist/errors.js"
49
+ },
50
+ "./economics": {
51
+ "types": "./dist/economics.d.ts",
52
+ "import": "./dist/economics.js"
53
+ },
54
+ "./transactions": {
55
+ "types": "./dist/transactions.d.ts",
56
+ "import": "./dist/transactions.js"
57
+ },
58
+ "./receipts": {
59
+ "types": "./dist/receipts.d.ts",
60
+ "import": "./dist/receipts.js"
61
+ },
62
+ "./compatibility": {
63
+ "types": "./dist/compatibility.d.ts",
64
+ "import": "./dist/compatibility.js"
65
+ }
66
+ },
67
+ "scripts": {
68
+ "clean": "rm -rf dist",
69
+ "check": "npm run check:artifacts && npm run test:handoff && npm run build && npm run test:unit && npm run test:pack",
70
+ "check:artifacts": "node scripts/check-artifacts.mjs",
71
+ "build": "npm run clean && tsc -p tsconfig.json",
72
+ "prepack": "npm run build",
73
+ "test": "npm run check",
74
+ "test:handoff": "node --test scripts/import-artifacts.node-test.mjs",
75
+ "test:unit": "tsc -p tsconfig.test.json && vitest run",
76
+ "test:pack": "node scripts/pack.mjs",
77
+ "verify:deployment": "npm run build && node scripts/verify-deployment.mjs",
78
+ "artifacts:import": "node scripts/import-artifacts.mjs"
79
+ },
80
+ "peerDependencies": {
81
+ "viem": ">=2.21.0 <3"
82
+ },
83
+ "devDependencies": {
84
+ "typescript": "^5.7.3",
85
+ "viem": "^2.55.2",
86
+ "vitest": "4.1.10"
87
+ }
88
+ }