UNPKG

pumpdotfun-sdk-repumped

Version:

Pumpfun SDK — create, buy, sell tokens with support for Jito bundles and multiple relayer integrations. Rebuilt and fixed pumpdotfun-sdk.

1 lines 7.89 kB
{"version":3,"file":"AgentRegistry.mjs","sources":["../../../src/AgentRegistry.ts"],"sourcesContent":["import { HostKey, Region } from \"./pumpFun.types.js\";\r\nimport http from \"http\";\r\nimport https from \"https\";\r\nimport {\r\n ASTRA_ENDPOINT_BY_REGION,\r\n NEXTBLOCK_ENDPOINT_BY_REGION,\r\n NODE1_ENDPOINT_BY_REGION,\r\n SLOT_ENDPOINT_BY_REGION,\r\n} from \"./pumpFun.consts.js\";\r\n\r\nclass AgentRegistry {\r\n private static agents: Partial<Record<HostKey, http.Agent>> = {};\r\n private static config: Map<HostKey, { host: string; port: number }> =\r\n new Map();\r\n /** Lazy-create & memoize */\r\n static get(key: HostKey): http.Agent {\r\n if (!this.agents[key]) {\r\n const config = this.config[key];\r\n const isHttps = config.port === 443;\r\n\r\n this.agents[key] = isHttps\r\n ? new https.Agent({\r\n keepAlive: true,\r\n keepAliveMsecs: 60_000,\r\n maxSockets: 6, // tune per host\r\n maxFreeSockets: 6,\r\n })\r\n : new http.Agent({\r\n keepAlive: true,\r\n keepAliveMsecs: 60_000,\r\n maxSockets: 6, // tune per host\r\n maxFreeSockets: 6,\r\n });\r\n // wireAgentDebug(this.agents[key]!, key);\r\n }\r\n return this.agents[key]!;\r\n }\r\n\r\n static registerInConfig(key: HostKey, region: Region) {\r\n if (this.config.has(key)) {\r\n throw new Error(`Host key ${key} is already registered.`);\r\n }\r\n switch (key) {\r\n case \"slot\":\r\n this.config.set(key, {\r\n host: SLOT_ENDPOINT_BY_REGION[region],\r\n port: 80,\r\n });\r\n break;\r\n case \"node\":\r\n this.config.set(key, {\r\n host: NODE1_ENDPOINT_BY_REGION[region]!,\r\n port: 80,\r\n });\r\n break;\r\n case \"nextBlock\":\r\n this.config.set(key, {\r\n host: NEXTBLOCK_ENDPOINT_BY_REGION[region]!,\r\n port: 80,\r\n });\r\n break;\r\n case \"astra\":\r\n this.config.set(key, {\r\n host: ASTRA_ENDPOINT_BY_REGION[region]!,\r\n port: 80,\r\n });\r\n break;\r\n default:\r\n throw new Error(`Unknown host key: ${key}`);\r\n }\r\n }\r\n\r\n static deleteFromConfig(key: HostKey) {\r\n if (!this.config.has(key)) {\r\n throw new Error(`Host key ${key} is not registered.`);\r\n }\r\n this.config.delete(key);\r\n delete this.agents[key];\r\n }\r\n\r\n static target(key: HostKey) {\r\n return this.config[key];\r\n }\r\n\r\n static callUpstream(\r\n key: HostKey,\r\n path: string,\r\n options: {\r\n method?: string;\r\n headers?: Record<string, string | number>;\r\n body?: string;\r\n timeout?: number;\r\n } = {}\r\n ): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const { host, port } = this.target(key);\r\n const agent = this.get(key);\r\n const isHttps = port === 443;\r\n const requestOptions: http.RequestOptions = {\r\n hostname: host,\r\n path: path,\r\n port: port,\r\n method: options.method || \"GET\",\r\n headers: options.headers || {},\r\n agent: agent,\r\n timeout: options.timeout || 5000, // 5 second timeout\r\n };\r\n const requestModule = isHttps ? https : http;\r\n const req = requestModule.request(requestOptions, (res) => {\r\n let data = \"\";\r\n res.on(\"data\", (chunk) => {\r\n data += chunk;\r\n });\r\n\r\n res.on(\"end\", () => {\r\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {\r\n resolve(data);\r\n } else {\r\n reject(new Error(`HTTP ${res.statusCode}: ${data}`));\r\n }\r\n });\r\n });\r\n req.on(\"socket\", (sock) => {\r\n sock.setNoDelay(true);\r\n });\r\n\r\n req.on(\"error\", (err) => {\r\n reject(err);\r\n });\r\n\r\n req.on(\"timeout\", () => {\r\n req.destroy();\r\n reject(new Error(\"Request timeout\"));\r\n });\r\n\r\n // Write body if provided\r\n if (options.body) {\r\n req.write(options.body);\r\n }\r\n\r\n req.end();\r\n });\r\n }\r\n}\r\n\r\nexport default AgentRegistry;\r\n"],"names":[],"mappings":";;;;AAUA,MAAM,aAAa,CAAA;AACT,IAAA,OAAO,MAAM,GAAyC,EAAE;AACxD,IAAA,OAAO,MAAM,GACnB,IAAI,GAAG,EAAE;;IAEX,OAAO,GAAG,CAAC,GAAY,EAAA;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAC/B,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,GAAG;AAEnC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACjB,kBAAE,IAAI,KAAK,CAAC,KAAK,CAAC;AACd,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,cAAc,EAAE,MAAM;oBACtB,UAAU,EAAE,CAAC;AACb,oBAAA,cAAc,EAAE,CAAC;iBAClB;AACH,kBAAE,IAAI,IAAI,CAAC,KAAK,CAAC;AACb,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,cAAc,EAAE,MAAM;oBACtB,UAAU,EAAE,CAAC;AACb,oBAAA,cAAc,EAAE,CAAC;AAClB,iBAAA,CAAC;;;AAGR,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE;;AAG1B,IAAA,OAAO,gBAAgB,CAAC,GAAY,EAAE,MAAc,EAAA;QAClD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACxB,YAAA,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAA,uBAAA,CAAyB,CAAC;;QAE3D,QAAQ,GAAG;AACT,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACnB,oBAAA,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC;AACrC,oBAAA,IAAI,EAAE,EAAE;AACT,iBAAA,CAAC;gBACF;AACF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACnB,oBAAA,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAE;AACvC,oBAAA,IAAI,EAAE,EAAE;AACT,iBAAA,CAAC;gBACF;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACnB,oBAAA,IAAI,EAAE,4BAA4B,CAAC,MAAM,CAAE;AAC3C,oBAAA,IAAI,EAAE,EAAE;AACT,iBAAA,CAAC;gBACF;AACF,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACnB,oBAAA,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAE;AACvC,oBAAA,IAAI,EAAE,EAAE;AACT,iBAAA,CAAC;gBACF;AACF,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAA,CAAE,CAAC;;;IAIjD,OAAO,gBAAgB,CAAC,GAAY,EAAA;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAA,mBAAA,CAAqB,CAAC;;AAEvD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;IAGzB,OAAO,MAAM,CAAC,GAAY,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;IAGzB,OAAO,YAAY,CACjB,GAAY,EACZ,IAAY,EACZ,UAKI,EAAE,EAAA;QAEN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3B,YAAA,MAAM,OAAO,GAAG,IAAI,KAAK,GAAG;AAC5B,YAAA,MAAM,cAAc,GAAwB;AAC1C,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;AAC/B,gBAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;AAC9B,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;aACjC;YACD,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI;YAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,KAAI;gBACxD,IAAI,IAAI,GAAG,EAAE;gBACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;oBACvB,IAAI,IAAI,KAAK;AACf,iBAAC,CAAC;AAEF,gBAAA,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAK;AACjB,oBAAA,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE;wBACnE,OAAO,CAAC,IAAI,CAAC;;yBACR;AACL,wBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAC,UAAU,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,CAAC,CAAC;;AAExD,iBAAC,CAAC;AACJ,aAAC,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,KAAI;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACvB,aAAC,CAAC;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAI;gBACtB,MAAM,CAAC,GAAG,CAAC;AACb,aAAC,CAAC;AAEF,YAAA,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAK;gBACrB,GAAG,CAAC,OAAO,EAAE;AACb,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACtC,aAAC,CAAC;;AAGF,YAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,gBAAA,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;;YAGzB,GAAG,CAAC,GAAG,EAAE;AACX,SAAC,CAAC;;;;;;"}