@clawnch/clawncher-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.
- package/README.md +603 -0
- package/dist/abis.d.ts +935 -0
- package/dist/abis.d.ts.map +1 -0
- package/dist/abis.js +486 -0
- package/dist/abis.js.map +1 -0
- package/dist/addresses.d.ts +51 -0
- package/dist/addresses.d.ts.map +1 -0
- package/dist/addresses.js +80 -0
- package/dist/addresses.js.map +1 -0
- package/dist/api-deployer-types.d.ts +165 -0
- package/dist/api-deployer-types.d.ts.map +1 -0
- package/dist/api-deployer-types.js +9 -0
- package/dist/api-deployer-types.js.map +1 -0
- package/dist/api-deployer.d.ts +114 -0
- package/dist/api-deployer.d.ts.map +1 -0
- package/dist/api-deployer.js +309 -0
- package/dist/api-deployer.js.map +1 -0
- package/dist/claimer.d.ts +197 -0
- package/dist/claimer.d.ts.map +1 -0
- package/dist/claimer.js +311 -0
- package/dist/claimer.js.map +1 -0
- package/dist/deployer.d.ts +229 -0
- package/dist/deployer.d.ts.map +1 -0
- package/dist/deployer.js +305 -0
- package/dist/deployer.js.map +1 -0
- package/dist/erc8004-types.d.ts +94 -0
- package/dist/erc8004-types.d.ts.map +1 -0
- package/dist/erc8004-types.js +8 -0
- package/dist/erc8004-types.js.map +1 -0
- package/dist/errors.d.ts +62 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +75 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +204 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +358 -0
- package/dist/index.js.map +1 -0
- package/dist/liquidity-types.d.ts +198 -0
- package/dist/liquidity-types.d.ts.map +1 -0
- package/dist/liquidity-types.js +8 -0
- package/dist/liquidity-types.js.map +1 -0
- package/dist/liquidity.d.ts +111 -0
- package/dist/liquidity.d.ts.map +1 -0
- package/dist/liquidity.js +608 -0
- package/dist/liquidity.js.map +1 -0
- package/dist/molten-types.d.ts +282 -0
- package/dist/molten-types.d.ts.map +1 -0
- package/dist/molten-types.js +8 -0
- package/dist/molten-types.js.map +1 -0
- package/dist/molten.d.ts +336 -0
- package/dist/molten.d.ts.map +1 -0
- package/dist/molten.js +560 -0
- package/dist/molten.js.map +1 -0
- package/dist/portfolio.d.ts +129 -0
- package/dist/portfolio.d.ts.map +1 -0
- package/dist/portfolio.js +218 -0
- package/dist/portfolio.js.map +1 -0
- package/dist/reader.d.ts +249 -0
- package/dist/reader.d.ts.map +1 -0
- package/dist/reader.js +488 -0
- package/dist/reader.js.map +1 -0
- package/dist/swap-types.d.ts +159 -0
- package/dist/swap-types.d.ts.map +1 -0
- package/dist/swap-types.js +22 -0
- package/dist/swap-types.js.map +1 -0
- package/dist/swap.d.ts +762 -0
- package/dist/swap.d.ts.map +1 -0
- package/dist/swap.js +345 -0
- package/dist/swap.js.map +1 -0
- package/dist/token-verification-data.d.ts +4 -0
- package/dist/token-verification-data.d.ts.map +1 -0
- package/dist/token-verification-data.js +6 -0
- package/dist/token-verification-data.js.map +1 -0
- package/dist/types.d.ts +244 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/uniswap-abis.d.ts +470 -0
- package/dist/uniswap-abis.d.ts.map +1 -0
- package/dist/uniswap-abis.js +322 -0
- package/dist/uniswap-abis.js.map +1 -0
- package/dist/uniswap-addresses.d.ts +38 -0
- package/dist/uniswap-addresses.d.ts.map +1 -0
- package/dist/uniswap-addresses.js +67 -0
- package/dist/uniswap-addresses.js.map +1 -0
- package/dist/vanity.d.ts +115 -0
- package/dist/vanity.d.ts.map +1 -0
- package/dist/vanity.js +166 -0
- package/dist/vanity.js.map +1 -0
- package/dist/verify.d.ts +88 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +181 -0
- package/dist/verify.js.map +1 -0
- package/dist/watcher.d.ts +112 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +132 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +59 -0
package/dist/watcher.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClawnchWatcher - Live event watching for Clawncher tokens
|
|
3
|
+
*
|
|
4
|
+
* Watches for new token deployments and swap events in real-time
|
|
5
|
+
* using viem's event subscription (WebSocket recommended).
|
|
6
|
+
*
|
|
7
|
+
* Uses `publicClient.watchContractEvent()` which works with both
|
|
8
|
+
* polling (HTTP) and subscription (WebSocket) transports.
|
|
9
|
+
*/
|
|
10
|
+
import { ClawnchFactoryABI } from './abis.js';
|
|
11
|
+
import { getAddresses } from './addresses.js';
|
|
12
|
+
/**
|
|
13
|
+
* ClawnchWatcher - Watch live events from Clawncher contracts
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { ClawnchWatcher } from '@clawnch/clawncher-sdk';
|
|
18
|
+
* import { createPublicClient, webSocket } from 'viem';
|
|
19
|
+
* import { base } from 'viem/chains';
|
|
20
|
+
*
|
|
21
|
+
* // WebSocket recommended for live watching
|
|
22
|
+
* const publicClient = createPublicClient({
|
|
23
|
+
* chain: base,
|
|
24
|
+
* transport: webSocket('wss://base-mainnet.g.alchemy.com/v2/YOUR_KEY'),
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* const watcher = new ClawnchWatcher({
|
|
28
|
+
* publicClient,
|
|
29
|
+
* network: 'mainnet',
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* // Watch for new token deployments
|
|
33
|
+
* const unwatch = watcher.watchDeployments((event) => {
|
|
34
|
+
* console.log(`New token: ${event.tokenSymbol} at ${event.tokenAddress}`);
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // Stop watching later
|
|
38
|
+
* unwatch();
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export class ClawnchWatcher {
|
|
42
|
+
publicClient;
|
|
43
|
+
network;
|
|
44
|
+
constructor(config) {
|
|
45
|
+
this.publicClient = config.publicClient;
|
|
46
|
+
this.network = config.network;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get contract addresses for configured network
|
|
50
|
+
*/
|
|
51
|
+
getAddresses() {
|
|
52
|
+
return getAddresses(this.network);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Watch for new token deployments from the factory.
|
|
56
|
+
*
|
|
57
|
+
* Subscribes to TokenCreated events on the factory contract.
|
|
58
|
+
* Returns an unsubscribe function to stop watching.
|
|
59
|
+
*
|
|
60
|
+
* @param callback - Called for each new token deployment
|
|
61
|
+
* @param options - Optional filter by token admin
|
|
62
|
+
* @returns Unsubscribe function
|
|
63
|
+
*/
|
|
64
|
+
watchDeployments(callback, options) {
|
|
65
|
+
const addresses = this.getAddresses();
|
|
66
|
+
const unwatch = this.publicClient.watchContractEvent({
|
|
67
|
+
address: addresses.clawnch.factory,
|
|
68
|
+
abi: ClawnchFactoryABI,
|
|
69
|
+
eventName: 'TokenCreated',
|
|
70
|
+
args: options?.tokenAdmin ? { tokenAdmin: options.tokenAdmin } : undefined,
|
|
71
|
+
onLogs: (logs) => {
|
|
72
|
+
for (const log of logs) {
|
|
73
|
+
const args = log.args;
|
|
74
|
+
if (!args.tokenAddress)
|
|
75
|
+
continue;
|
|
76
|
+
callback({
|
|
77
|
+
tokenAddress: args.tokenAddress,
|
|
78
|
+
tokenAdmin: args.tokenAdmin ?? '0x0000000000000000000000000000000000000000',
|
|
79
|
+
tokenName: args.tokenName ?? '',
|
|
80
|
+
tokenSymbol: args.tokenSymbol ?? '',
|
|
81
|
+
tokenImage: args.tokenImage ?? '',
|
|
82
|
+
deployer: args.msgSender ?? '0x0000000000000000000000000000000000000000',
|
|
83
|
+
poolHook: args.poolHook ?? '0x0000000000000000000000000000000000000000',
|
|
84
|
+
locker: args.locker ?? '0x0000000000000000000000000000000000000000',
|
|
85
|
+
poolId: args.poolId ?? '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
86
|
+
blockNumber: log.blockNumber ?? 0n,
|
|
87
|
+
txHash: log.transactionHash ?? '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
return unwatch;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get historical token deployments (past events).
|
|
96
|
+
*
|
|
97
|
+
* Fetches TokenCreated events from the factory within a block range.
|
|
98
|
+
* Useful for building initial state before starting live watching.
|
|
99
|
+
*
|
|
100
|
+
* @param options - Block range and optional filter
|
|
101
|
+
*/
|
|
102
|
+
async getHistoricalDeployments(options) {
|
|
103
|
+
const addresses = this.getAddresses();
|
|
104
|
+
const fromBlock = options?.fromBlock ?? await this.publicClient.getBlockNumber()
|
|
105
|
+
.then(n => n > 10000n ? n - 10000n : 0n);
|
|
106
|
+
const logs = await this.publicClient.getContractEvents({
|
|
107
|
+
address: addresses.clawnch.factory,
|
|
108
|
+
abi: ClawnchFactoryABI,
|
|
109
|
+
eventName: 'TokenCreated',
|
|
110
|
+
args: options?.tokenAdmin ? { tokenAdmin: options.tokenAdmin } : undefined,
|
|
111
|
+
fromBlock,
|
|
112
|
+
toBlock: options?.toBlock,
|
|
113
|
+
});
|
|
114
|
+
return logs.map(log => {
|
|
115
|
+
const args = log.args;
|
|
116
|
+
return {
|
|
117
|
+
tokenAddress: args.tokenAddress ?? '0x0000000000000000000000000000000000000000',
|
|
118
|
+
tokenAdmin: args.tokenAdmin ?? '0x0000000000000000000000000000000000000000',
|
|
119
|
+
tokenName: args.tokenName ?? '',
|
|
120
|
+
tokenSymbol: args.tokenSymbol ?? '',
|
|
121
|
+
tokenImage: args.tokenImage ?? '',
|
|
122
|
+
deployer: args.msgSender ?? '0x0000000000000000000000000000000000000000',
|
|
123
|
+
poolHook: args.poolHook ?? '0x0000000000000000000000000000000000000000',
|
|
124
|
+
locker: args.locker ?? '0x0000000000000000000000000000000000000000',
|
|
125
|
+
poolId: args.poolId ?? '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
126
|
+
blockNumber: log.blockNumber ?? 0n,
|
|
127
|
+
txHash: log.transactionHash ?? '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
128
|
+
};
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@clawnch/clawncher-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript SDK for Clawncher - token launch toolkit for Base, optimized for agents",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"clean": "rm -rf dist",
|
|
22
|
+
"prepublishOnly": "npm run build",
|
|
23
|
+
"test": "vitest"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"clawncher",
|
|
27
|
+
"clawnch",
|
|
28
|
+
"base",
|
|
29
|
+
"memecoin",
|
|
30
|
+
"uniswap",
|
|
31
|
+
"v4",
|
|
32
|
+
"token",
|
|
33
|
+
"deploy",
|
|
34
|
+
"sdk"
|
|
35
|
+
],
|
|
36
|
+
"author": "Clawncher",
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"homepage": "https://clawn.ch/er",
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=18"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"clanker-sdk": "^4.2.10",
|
|
44
|
+
"viem": "^2.0.0"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^22.10.0",
|
|
48
|
+
"typescript": "^5.7.2",
|
|
49
|
+
"vitest": "^2.1.0"
|
|
50
|
+
},
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"viem": "^2.0.0"
|
|
53
|
+
},
|
|
54
|
+
"peerDependenciesMeta": {
|
|
55
|
+
"viem": {
|
|
56
|
+
"optional": true
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|