@one-source/api-mcp 1.4.0 → 2.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 (100) hide show
  1. package/dist/analytics.d.ts +2 -2
  2. package/dist/analytics.d.ts.map +1 -1
  3. package/dist/analytics.js +1 -1
  4. package/dist/analytics.js.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +42 -38
  7. package/dist/cli.js.map +1 -1
  8. package/dist/client.d.ts +6 -2
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +13 -9
  11. package/dist/client.js.map +1 -1
  12. package/dist/create-server.d.ts +2 -2
  13. package/dist/create-server.d.ts.map +1 -1
  14. package/dist/create-server.js +3 -20
  15. package/dist/create-server.js.map +1 -1
  16. package/dist/tools/chain/network-info.js +1 -1
  17. package/dist/tools/chain/network-info.js.map +1 -1
  18. package/dist/tools/chain/storage-read.d.ts +3 -0
  19. package/dist/tools/chain/storage-read.d.ts.map +1 -1
  20. package/dist/tools/chain/storage-read.js.map +1 -1
  21. package/dist/tools/live/erc1155-balance.d.ts.map +1 -1
  22. package/dist/tools/live/erc1155-balance.js +0 -1
  23. package/dist/tools/live/erc1155-balance.js.map +1 -1
  24. package/dist/tools/live/erc20-balance.js +1 -1
  25. package/dist/tools/live/erc20-balance.js.map +1 -1
  26. package/dist/tools/live/erc20-transfers.d.ts +3 -0
  27. package/dist/tools/live/erc20-transfers.d.ts.map +1 -1
  28. package/dist/tools/live/erc20-transfers.js +3 -2
  29. package/dist/tools/live/erc20-transfers.js.map +1 -1
  30. package/dist/tools/live/events.d.ts +3 -0
  31. package/dist/tools/live/events.d.ts.map +1 -1
  32. package/dist/tools/live/events.js +2 -1
  33. package/dist/tools/live/events.js.map +1 -1
  34. package/dist/tools/live/nft-metadata.d.ts.map +1 -1
  35. package/dist/tools/live/nft-metadata.js +1 -2
  36. package/dist/tools/live/nft-metadata.js.map +1 -1
  37. package/dist/tools/live/nft-owner.d.ts.map +1 -1
  38. package/dist/tools/live/nft-owner.js +0 -1
  39. package/dist/tools/live/nft-owner.js.map +1 -1
  40. package/dist/types.d.ts +1 -9
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js +2 -21
  43. package/dist/types.js.map +1 -1
  44. package/dist/x402.d.ts +1 -2
  45. package/dist/x402.d.ts.map +1 -1
  46. package/dist/x402.js +16 -8
  47. package/dist/x402.js.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/analytics.fix-verification.test.d.ts +0 -11
  50. package/dist/analytics.fix-verification.test.d.ts.map +0 -1
  51. package/dist/analytics.fix-verification.test.js +0 -146
  52. package/dist/analytics.fix-verification.test.js.map +0 -1
  53. package/dist/tools/indexed/address-txs.d.ts +0 -6
  54. package/dist/tools/indexed/address-txs.d.ts.map +0 -1
  55. package/dist/tools/indexed/address-txs.js +0 -25
  56. package/dist/tools/indexed/address-txs.js.map +0 -1
  57. package/dist/tools/indexed/block.d.ts +0 -3
  58. package/dist/tools/indexed/block.d.ts.map +0 -1
  59. package/dist/tools/indexed/block.js +0 -23
  60. package/dist/tools/indexed/block.js.map +0 -1
  61. package/dist/tools/indexed/contract-info.d.ts +0 -6
  62. package/dist/tools/indexed/contract-info.d.ts.map +0 -1
  63. package/dist/tools/indexed/contract-info.js +0 -18
  64. package/dist/tools/indexed/contract-info.js.map +0 -1
  65. package/dist/tools/indexed/erc1155-balance.d.ts +0 -6
  66. package/dist/tools/indexed/erc1155-balance.d.ts.map +0 -1
  67. package/dist/tools/indexed/erc1155-balance.js +0 -24
  68. package/dist/tools/indexed/erc1155-balance.js.map +0 -1
  69. package/dist/tools/indexed/erc20-balance.d.ts +0 -6
  70. package/dist/tools/indexed/erc20-balance.d.ts.map +0 -1
  71. package/dist/tools/indexed/erc20-balance.js +0 -22
  72. package/dist/tools/indexed/erc20-balance.js.map +0 -1
  73. package/dist/tools/indexed/erc20-transfers.d.ts +0 -6
  74. package/dist/tools/indexed/erc20-transfers.d.ts.map +0 -1
  75. package/dist/tools/indexed/erc20-transfers.js +0 -24
  76. package/dist/tools/indexed/erc20-transfers.js.map +0 -1
  77. package/dist/tools/indexed/events.d.ts +0 -3
  78. package/dist/tools/indexed/events.d.ts.map +0 -1
  79. package/dist/tools/indexed/events.js +0 -32
  80. package/dist/tools/indexed/events.js.map +0 -1
  81. package/dist/tools/indexed/nft-media.d.ts +0 -6
  82. package/dist/tools/indexed/nft-media.d.ts.map +0 -1
  83. package/dist/tools/indexed/nft-media.js +0 -22
  84. package/dist/tools/indexed/nft-media.js.map +0 -1
  85. package/dist/tools/indexed/nft-metadata.d.ts +0 -6
  86. package/dist/tools/indexed/nft-metadata.d.ts.map +0 -1
  87. package/dist/tools/indexed/nft-metadata.js +0 -22
  88. package/dist/tools/indexed/nft-metadata.js.map +0 -1
  89. package/dist/tools/indexed/nft-owner.d.ts +0 -6
  90. package/dist/tools/indexed/nft-owner.d.ts.map +0 -1
  91. package/dist/tools/indexed/nft-owner.js +0 -22
  92. package/dist/tools/indexed/nft-owner.js.map +0 -1
  93. package/dist/tools/indexed/tx-details.d.ts +0 -6
  94. package/dist/tools/indexed/tx-details.d.ts.map +0 -1
  95. package/dist/tools/indexed/tx-details.js +0 -19
  96. package/dist/tools/indexed/tx-details.js.map +0 -1
  97. package/dist/tools/indexed/wallet-nfts.d.ts +0 -6
  98. package/dist/tools/indexed/wallet-nfts.d.ts.map +0 -1
  99. package/dist/tools/indexed/wallet-nfts.js +0 -22
  100. package/dist/tools/indexed/wallet-nfts.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nft-metadata.js","sourceRoot":"","sources":["../../../src/tools/live/nft-metadata.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,6EAA6E;QAC7E,+FAA+F;QAC/F,yEAAyE;IAC3E,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvD,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACtD,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"nft-metadata.js","sourceRoot":"","sources":["../../../src/tools/live/nft-metadata.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,6EAA6E;QAC7E,8FAA8F;IAChG,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvD,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACtD,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nft-owner.d.ts","sourceRoot":"","sources":["../../../src/tools/live/nft-owner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAoBlB,CAAC"}
1
+ {"version":3,"file":"nft-owner.d.ts","sourceRoot":"","sources":["../../../src/tools/live/nft-owner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAmBlB,CAAC"}
@@ -2,7 +2,6 @@ import { networkParam, formatResponse, addressParam, tokenIdParam } from '../../
2
2
  export const tool = {
3
3
  name: '1s_nft_owner_live',
4
4
  description: 'Get the current NFT owner via ownerOf(tokenId) RPC call. ' +
5
- 'Use this for real-time ownership verification; use 1s_nft_owner for cached lookups. ' +
6
5
  'Only works for ERC721 tokens.',
7
6
  category: 'live',
8
7
  schema: {
@@ -1 +1 @@
1
- {"version":3,"file":"nft-owner.js","sourceRoot":"","sources":["../../../src/tools/live/nft-owner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,2DAA2D;QAC3D,sFAAsF;QACtF,+BAA+B;IACjC,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvD,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACnD,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"nft-owner.js","sourceRoot":"","sources":["../../../src/tools/live/nft-owner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,2DAA2D;QAC3D,+BAA+B;IACjC,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACN,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvD,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACnD,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
package/dist/types.d.ts CHANGED
@@ -22,7 +22,7 @@ export type ApiResponse<T = unknown> = {
22
22
  export interface ToolDef {
23
23
  name: string;
24
24
  description: string;
25
- category: 'indexed' | 'live' | 'chain';
25
+ category: 'live' | 'chain';
26
26
  schema: z.ZodRawShape;
27
27
  handler: (input: Record<string, unknown>, client: OneSourceClient) => Promise<string>;
28
28
  }
@@ -54,14 +54,6 @@ export declare const hexDataParam: z.ZodString;
54
54
  * Common parameter: optional hex-encoded data.
55
55
  */
56
56
  export declare const optionalHexParam: z.ZodOptional<z.ZodString>;
57
- /**
58
- * Common parameter: result limit.
59
- */
60
- export declare const limitParam: z.ZodOptional<z.ZodNumber>;
61
- /**
62
- * Common parameter: block number.
63
- */
64
- export declare const blockNumberParam: z.ZodOptional<z.ZodNumber>;
65
57
  /**
66
58
  * Encode a value for safe interpolation into a URL path segment.
67
59
  * Use this for any user-supplied value placed in a URL path.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,4BAA0B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,WAAW,aAGe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,4BAA0B,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,UAAU,4BAMqD,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,gBAAgB,4BAKF,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAQ5D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,oBAAoB,4BAA0B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,WAAW,aAGe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,YAAY,aAGc,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,4BAA0B,CAAC;AAExD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAQ5D"}
package/dist/types.js CHANGED
@@ -45,25 +45,6 @@ export const hexDataParam = z
45
45
  * Common parameter: optional hex-encoded data.
46
46
  */
47
47
  export const optionalHexParam = hexDataParam.optional();
48
- /**
49
- * Common parameter: result limit.
50
- */
51
- export const limitParam = z
52
- .number()
53
- .int()
54
- .min(1)
55
- .max(100)
56
- .optional()
57
- .describe('Maximum results to return (1-100, default varies by endpoint)');
58
- /**
59
- * Common parameter: block number.
60
- */
61
- export const blockNumberParam = z
62
- .number()
63
- .int()
64
- .min(0)
65
- .optional()
66
- .describe('Block number');
67
48
  /**
68
49
  * Encode a value for safe interpolation into a URL path segment.
69
50
  * Use this for any user-supplied value placed in a URL path.
@@ -79,8 +60,8 @@ export function formatResponse(response) {
79
60
  return `Error: ${response.error}`;
80
61
  }
81
62
  if (response.meta) {
82
- return JSON.stringify({ data: response.data, meta: response.meta }, null, 2);
63
+ return JSON.stringify({ data: response.data, meta: response.meta });
83
64
  }
84
- return JSON.stringify(response.data, null, 2) ?? 'null';
65
+ return JSON.stringify(response.data) ?? 'null';
85
66
  }
86
67
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACrC,QAAQ,EAAE;KACV,QAAQ,CACP,6DAA6D,CAC9D,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KACzE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAC/E,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC1C,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;KACzD,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,QAAQ,EAAE;KACV,QAAQ,CAAC,+DAA+D,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,EAAE;KACR,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,EAAE;KACV,QAAQ,CAAC,cAAc,CAAC,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAqB;IAClD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KACrC,QAAQ,EAAE;KACV,QAAQ,CACP,6DAA6D,CAC9D,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KACzE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,iDAAiD,CAAC;KAC/E,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC1C,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;KACzD,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAqB;IAClD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AACjD,CAAC"}
package/dist/x402.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  export interface X402SetupResult {
2
2
  enabled: boolean;
3
3
  address?: string;
4
+ fetch?: typeof globalThis.fetch;
4
5
  }
5
6
  export declare function setupX402(): X402SetupResult;
6
- /** @internal -- for test teardown only */
7
- export declare function resetX402(): void;
8
7
  //# sourceMappingURL=x402.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,SAAS,IAAI,eAAe,CAY3C;AAED,0CAA0C;AAC1C,wBAAgB,SAAS,IAAI,IAAI,CAEhC"}
1
+ {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAKD,wBAAgB,SAAS,IAAI,eAAe,CAiB3C"}
package/dist/x402.js CHANGED
@@ -1,31 +1,39 @@
1
1
  /**
2
2
  * x402 payment setup.
3
3
  *
4
- * When X402_PRIVATE_KEY is set, replaces globalThis.fetch with a
5
- * payment-aware wrapper that automatically handles HTTP 402 responses
6
- * by signing USDC payments on Base via the x402 protocol.
4
+ * When X402_PRIVATE_KEY is set, creates a payment-aware fetch wrapper
5
+ * that automatically handles HTTP 402 responses by signing USDC payments
6
+ * on Base via the x402 protocol.
7
7
  *
8
- * Must be called before any OneSourceClient instances are created.
8
+ * Returns the wrapped fetch function instead of patching globalThis.fetch,
9
+ * so only the OneSourceClient uses it — analytics and other HTTP consumers
10
+ * are unaffected.
9
11
  */
10
12
  import { x402Client, wrapFetchWithPayment } from '@x402/fetch';
11
13
  import { registerExactEvmScheme } from '@x402/evm/exact/client';
12
14
  import { privateKeyToAccount } from 'viem/accounts';
13
15
  let _applied = false;
16
+ let _cachedResult;
14
17
  export function setupX402() {
15
18
  const privateKey = process.env.X402_PRIVATE_KEY;
16
19
  if (!privateKey)
17
20
  return { enabled: false };
18
- if (_applied)
19
- return { enabled: true };
21
+ if (_applied && _cachedResult)
22
+ return _cachedResult;
23
+ if (!privateKey.startsWith('0x')) {
24
+ throw new Error('X402_PRIVATE_KEY must be a hex string starting with 0x');
25
+ }
20
26
  const signer = privateKeyToAccount(privateKey);
21
27
  const client = new x402Client();
22
28
  registerExactEvmScheme(client, { signer });
23
- globalThis.fetch = wrapFetchWithPayment(fetch, client);
29
+ const wrappedFetch = wrapFetchWithPayment(fetch, client);
24
30
  _applied = true;
25
- return { enabled: true, address: signer.address };
31
+ _cachedResult = { enabled: true, address: signer.address, fetch: wrappedFetch };
32
+ return _cachedResult;
26
33
  }
27
34
  /** @internal -- for test teardown only */
28
35
  export function resetX402() {
29
36
  _applied = false;
37
+ _cachedResult = undefined;
30
38
  }
31
39
  //# sourceMappingURL=x402.js.map
package/dist/x402.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOpD,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,UAAU,SAAS;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAChD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3C,IAAI,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAA2B,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,sBAAsB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,UAAU,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEvD,QAAQ,GAAG,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACpD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,SAAS;IACvB,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQpD,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,aAA0C,CAAC;AAE/C,MAAM,UAAU,SAAS;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAChD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3C,IAAI,QAAQ,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAEpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAA2B,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,sBAAsB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEzD,QAAQ,GAAG,IAAI,CAAC;IAChB,aAAa,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAChF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,SAAS;IACvB,QAAQ,GAAG,KAAK,CAAC;IACjB,aAAa,GAAG,SAAS,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@one-source/api-mcp",
3
- "version": "1.4.0",
3
+ "version": "2.4.0",
4
4
  "type": "module",
5
5
  "description": "MCP server for OneSource blockchain data — 22 named tools for balances, NFTs, transactions, events, and live chain queries via x402",
6
6
  "bin": {
@@ -1,11 +0,0 @@
1
- /**
2
- * Verification tests for DashboardAnalytics bug fixes:
3
- *
4
- * 1. Event preservation — events are restored to the buffer when flush fails,
5
- * so they can be retried on the next flush.
6
- *
7
- * 2. Flush timeout — flush() aborts after 3s via AbortSignal.timeout,
8
- * so shutdown never hangs indefinitely.
9
- */
10
- export {};
11
- //# sourceMappingURL=analytics.fix-verification.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics.fix-verification.test.d.ts","sourceRoot":"","sources":["../src/analytics.fix-verification.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -1,146 +0,0 @@
1
- /**
2
- * Verification tests for DashboardAnalytics bug fixes:
3
- *
4
- * 1. Event preservation — events are restored to the buffer when flush fails,
5
- * so they can be retried on the next flush.
6
- *
7
- * 2. Flush timeout — flush() aborts after 3s via AbortSignal.timeout,
8
- * so shutdown never hangs indefinitely.
9
- */
10
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
11
- import { createAnalytics } from './analytics.js';
12
- // ---------------------------------------------------------------------------
13
- // Helpers
14
- // ---------------------------------------------------------------------------
15
- function makeToolEvent(overrides = {}) {
16
- return {
17
- type: 'tool_call',
18
- service: 'mcp',
19
- tool: 'test-tool',
20
- category: 'indexed',
21
- timestamp: new Date().toISOString(),
22
- duration_ms: 50,
23
- success: true,
24
- input_params: [],
25
- response_size: 128,
26
- version: '1.0.0',
27
- auth_method: 'none',
28
- ...overrides,
29
- };
30
- }
31
- // Drain the microtask queue — works regardless of timer mode.
32
- const drainMicrotasks = async () => {
33
- for (let i = 0; i < 5; i++)
34
- await Promise.resolve();
35
- };
36
- // ---------------------------------------------------------------------------
37
- // Setup: point createAnalytics() at DashboardAnalytics via env vars
38
- // ---------------------------------------------------------------------------
39
- beforeEach(() => {
40
- process.env.ONESOURCE_ANALYTICS_URL = 'http://analytics.test';
41
- process.env.ONESOURCE_ANALYTICS_KEY = 'test-key';
42
- vi.spyOn(global, 'fetch');
43
- });
44
- afterEach(() => {
45
- delete process.env.ONESOURCE_ANALYTICS_URL;
46
- delete process.env.ONESOURCE_ANALYTICS_KEY;
47
- vi.restoreAllMocks();
48
- });
49
- // ---------------------------------------------------------------------------
50
- // Fix 1: Events preserved on network failure
51
- // ---------------------------------------------------------------------------
52
- describe('Event preservation on network failure', () => {
53
- it('events are restored to buffer on failure and retried on next flush', async () => {
54
- vi.mocked(global.fetch).mockRejectedValue(new Error('Network failure'));
55
- const analytics = createAnalytics();
56
- for (let i = 0; i < 10; i++) {
57
- analytics.trackTool(makeToolEvent());
58
- }
59
- // Let the auto-triggered flush run: splice(0) removes events, fetch rejects,
60
- // catch restores them to the buffer via unshift.
61
- await drainMicrotasks();
62
- expect(global.fetch).toHaveBeenCalledOnce();
63
- // Network is healthy again
64
- vi.mocked(global.fetch).mockResolvedValue(new Response(JSON.stringify({ ok: true }), { status: 200 }));
65
- // Manually flush — the 10 events were preserved and are now sent
66
- await analytics.flush();
67
- // fetch called twice — once failed, once succeeded with the restored events
68
- expect(global.fetch).toHaveBeenCalledTimes(2);
69
- });
70
- it('flush-in-progress guard prevents concurrent flushes, events preserved on failure', async () => {
71
- let rejectFetch;
72
- vi.mocked(global.fetch).mockImplementation(() => {
73
- return new Promise((_, reject) => { rejectFetch = reject; });
74
- });
75
- const analytics = createAnalytics();
76
- // First batch of 10 → triggers flush
77
- for (let i = 0; i < 10; i++) {
78
- analytics.trackTool(makeToolEvent());
79
- }
80
- await drainMicrotasks();
81
- expect(global.fetch).toHaveBeenCalledOnce();
82
- // Second batch of 10 arrives while flush is in-flight
83
- // The flush-in-progress guard means these stay in the buffer —
84
- // no second concurrent fetch fires
85
- for (let i = 0; i < 10; i++) {
86
- analytics.trackTool(makeToolEvent());
87
- }
88
- await drainMicrotasks();
89
- // Still only 1 fetch — guard prevented a concurrent flush
90
- expect(global.fetch).toHaveBeenCalledOnce();
91
- // Fail the in-flight request — first 10 events restored via unshift
92
- rejectFetch(new Error('timeout'));
93
- await drainMicrotasks();
94
- // Restore healthy network
95
- vi.mocked(global.fetch).mockResolvedValue(new Response(JSON.stringify({ ok: true }), { status: 200 }));
96
- // Flush now sends all 20 events (10 restored + 10 buffered)
97
- await analytics.flush();
98
- // 2 calls total — one failed, one succeeded with all 20 events
99
- expect(global.fetch).toHaveBeenCalledTimes(2);
100
- });
101
- });
102
- // ---------------------------------------------------------------------------
103
- // Fix 2: Flush timeout prevents shutdown hang
104
- // ---------------------------------------------------------------------------
105
- describe('Flush timeout prevents shutdown hang', () => {
106
- it('flush() resolves within timeout even when fetch hangs', async () => {
107
- // Mock fetch that respects AbortSignal — hangs until aborted
108
- vi.mocked(global.fetch).mockImplementation((_url, init) => {
109
- return new Promise((_, reject) => {
110
- const signal = init?.signal;
111
- if (signal) {
112
- signal.addEventListener('abort', () => reject(signal.reason));
113
- }
114
- });
115
- });
116
- const analytics = createAnalytics();
117
- analytics.trackTool(makeToolEvent());
118
- let flushCompleted = false;
119
- await Promise.race([
120
- analytics.flush().then(() => { flushCompleted = true; }),
121
- // 4s deadline — longer than the 3s AbortSignal.timeout in flush()
122
- new Promise((resolve) => setTimeout(resolve, 4_000)),
123
- ]);
124
- // flush completed because AbortSignal.timeout aborted the hung fetch
125
- expect(flushCompleted).toBe(true);
126
- }, 10_000);
127
- it('a single buffered event does not hang the process on shutdown', async () => {
128
- vi.mocked(global.fetch).mockImplementation((_url, init) => {
129
- return new Promise((_, reject) => {
130
- const signal = init?.signal;
131
- if (signal) {
132
- signal.addEventListener('abort', () => reject(signal.reason));
133
- }
134
- });
135
- });
136
- const analytics = createAnalytics();
137
- analytics.trackTool(makeToolEvent());
138
- const result = await Promise.race([
139
- analytics.flush().then(() => 'completed'),
140
- new Promise((resolve) => setTimeout(() => resolve('timed-out'), 4_000)),
141
- ]);
142
- // flush completes (via abort timeout) rather than hanging
143
- expect(result).toBe('completed');
144
- }, 10_000);
145
- });
146
- //# sourceMappingURL=analytics.fix-verification.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics.fix-verification.test.js","sourceRoot":"","sources":["../src/analytics.fix-verification.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * 1s_address_txs — Get transaction history for an address.
3
- */
4
- import type { ToolDef } from '../../types.js';
5
- export declare const tool: ToolDef;
6
- //# sourceMappingURL=address-txs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address-txs.d.ts","sourceRoot":"","sources":["../../../src/tools/indexed/address-txs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAuBlB,CAAC"}
@@ -1,25 +0,0 @@
1
- import { networkParam, formatResponse, addressParam, limitParam, blockNumberParam, safePath } from '../../types.js';
2
- export const tool = {
3
- name: '1s_address_txs',
4
- description: 'Get transaction history for an address (sent and received). ' +
5
- 'Sorted by block number descending. ' +
6
- 'Use from_block/to_block to narrow the range.',
7
- category: 'indexed',
8
- schema: {
9
- address: addressParam.describe('Address to get transaction history for'),
10
- limit: limitParam,
11
- from_block: blockNumberParam.describe('Start block number (inclusive)'),
12
- to_block: blockNumberParam.describe('End block number (inclusive)'),
13
- network: networkParam,
14
- },
15
- handler: async (input, client) => {
16
- const res = await client.get(`/api/address/${safePath(input.address)}/transactions`, {
17
- limit: input.limit,
18
- from_block: input.from_block,
19
- to_block: input.to_block,
20
- network: input.network,
21
- });
22
- return formatResponse(res);
23
- },
24
- };
25
- //# sourceMappingURL=address-txs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address-txs.js","sourceRoot":"","sources":["../../../src/tools/indexed/address-txs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpH,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,8DAA8D;QAC9D,qCAAqC;QACrC,8CAA8C;IAChD,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACxE,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACvE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACnE,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,OAAiB,CAAC,eAAe,EAAE;YAC7F,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,UAAU,EAAE,KAAK,CAAC,UAAgC;YAClD,QAAQ,EAAE,KAAK,CAAC,QAA8B;YAC9C,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { ToolDef } from '../../types.js';
2
- export declare const tool: ToolDef;
3
- //# sourceMappingURL=block.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/tools/indexed/block.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAiBlB,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * 1s_block — Get indexed block details by block number.
3
- */
4
- import { z } from 'zod';
5
- import { networkParam, formatResponse, safePath } from '../../types.js';
6
- export const tool = {
7
- name: '1s_block',
8
- description: 'Get indexed block details by block number. ' +
9
- 'Returns block metadata including timestamp, transaction count, and gas used. ' +
10
- 'For the latest pending block, use 1s_pending_block instead.',
11
- category: 'indexed',
12
- schema: {
13
- block_number: z.number().int().min(0).describe('Block number'),
14
- network: networkParam,
15
- },
16
- handler: async (input, client) => {
17
- const res = await client.get(`/api/block/${safePath(String(input.block_number))}`, {
18
- network: input.network,
19
- });
20
- return formatResponse(res);
21
- },
22
- };
23
- //# sourceMappingURL=block.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/tools/indexed/block.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,6CAA6C;QAC7C,+EAA+E;QAC/E,6DAA6D;IAC/D,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE;QACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9D,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE;YACjF,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * 1s_contract_info — Get indexed contract metadata.
3
- */
4
- import type { ToolDef } from '../../types.js';
5
- export declare const tool: ToolDef;
6
- //# sourceMappingURL=contract-info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract-info.d.ts","sourceRoot":"","sources":["../../../src/tools/indexed/contract-info.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAgBlB,CAAC"}
@@ -1,18 +0,0 @@
1
- import { networkParam, formatResponse, addressParam, safePath } from '../../types.js';
2
- export const tool = {
3
- name: '1s_contract_info',
4
- description: 'Get indexed contract metadata including deployment info and detected standards. ' +
5
- 'Use this for enriched contract data; use 1s_contract_info_live for real-time ERC standard detection via RPC.',
6
- category: 'indexed',
7
- schema: {
8
- address: addressParam.describe('Contract address'),
9
- network: networkParam,
10
- },
11
- handler: async (input, client) => {
12
- const res = await client.get(`/api/contract/${safePath(input.address)}`, {
13
- network: input.network,
14
- });
15
- return formatResponse(res);
16
- },
17
- };
18
- //# sourceMappingURL=contract-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract-info.js","sourceRoot":"","sources":["../../../src/tools/indexed/contract-info.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,kFAAkF;QAClF,8GAA8G;IAChH,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAClD,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,KAAK,CAAC,OAAiB,CAAC,EAAE,EAAE;YACjF,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * 1s_erc1155_balance — Get indexed ERC1155 token balance.
3
- */
4
- import type { ToolDef } from '../../types.js';
5
- export declare const tool: ToolDef;
6
- //# sourceMappingURL=erc1155-balance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc1155-balance.d.ts","sourceRoot":"","sources":["../../../src/tools/indexed/erc1155-balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAsBlB,CAAC"}
@@ -1,24 +0,0 @@
1
- import { networkParam, formatResponse, addressParam, tokenIdParam } from '../../types.js';
2
- export const tool = {
3
- name: '1s_erc1155_balance',
4
- description: 'Get indexed ERC1155 token balance. ' +
5
- 'Use this for cached lookups; use 1s_erc1155_balance_live for real-time data. ' +
6
- 'Requires the contract address and specific token ID.',
7
- category: 'indexed',
8
- schema: {
9
- account: addressParam.describe('Wallet address to check balance for'),
10
- contract: addressParam.describe('ERC1155 contract address'),
11
- token_id: tokenIdParam,
12
- network: networkParam,
13
- },
14
- handler: async (input, client) => {
15
- const res = await client.get('/api/balance/erc1155', {
16
- account: input.account,
17
- contract: input.contract,
18
- token_id: input.token_id,
19
- network: input.network,
20
- });
21
- return formatResponse(res);
22
- },
23
- };
24
- //# sourceMappingURL=erc1155-balance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc1155-balance.js","sourceRoot":"","sources":["../../../src/tools/indexed/erc1155-balance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,qCAAqC;QACrC,+EAA+E;QAC/E,sDAAsD;IACxD,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACrE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC3D,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACnD,OAAO,EAAE,KAAK,CAAC,OAAiB;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAkB;YAClC,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * 1s_erc20_balance — Get indexed ERC20 token balance for a wallet.
3
- */
4
- import type { ToolDef } from '../../types.js';
5
- export declare const tool: ToolDef;
6
- //# sourceMappingURL=erc20-balance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20-balance.d.ts","sourceRoot":"","sources":["../../../src/tools/indexed/erc20-balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAoBlB,CAAC"}
@@ -1,22 +0,0 @@
1
- import { networkParam, formatResponse, addressParam } from '../../types.js';
2
- export const tool = {
3
- name: '1s_erc20_balance',
4
- description: 'Get indexed ERC20 token balance for a wallet. ' +
5
- 'Use this for historical or cached balance lookups; use 1s_erc20_balance_live for real-time data. ' +
6
- 'Returns token metadata (name, symbol, decimals) alongside the balance.',
7
- category: 'indexed',
8
- schema: {
9
- account: addressParam.describe('Wallet address to check balance for'),
10
- token: addressParam.describe('ERC20 token contract address'),
11
- network: networkParam,
12
- },
13
- handler: async (input, client) => {
14
- const res = await client.get('/api/balance/erc20', {
15
- account: input.account,
16
- token: input.token,
17
- network: input.network,
18
- });
19
- return formatResponse(res);
20
- },
21
- };
22
- //# sourceMappingURL=erc20-balance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20-balance.js","sourceRoot":"","sources":["../../../src/tools/indexed/erc20-balance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,gDAAgD;QAChD,mGAAmG;QACnG,wEAAwE;IAC1E,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACrE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC5D,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACjD,OAAO,EAAE,KAAK,CAAC,OAAiB;YAChC,KAAK,EAAE,KAAK,CAAC,KAAe;YAC5B,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * 1s_erc20_transfers — Get ERC20 transfer history.
3
- */
4
- import type { ToolDef } from '../../types.js';
5
- export declare const tool: ToolDef;
6
- //# sourceMappingURL=erc20-transfers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20-transfers.d.ts","sourceRoot":"","sources":["../../../src/tools/indexed/erc20-transfers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAsBlB,CAAC"}
@@ -1,24 +0,0 @@
1
- import { networkParam, formatResponse, limitParam, optionalAddressParam } from '../../types.js';
2
- export const tool = {
3
- name: '1s_erc20_transfers',
4
- description: 'Get ERC20 transfer history filtered by token and/or wallet. ' +
5
- 'Use this for indexed transfer records; use 1s_erc20_transfers_live for raw Transfer event logs. ' +
6
- 'Sorted by block number descending.',
7
- category: 'indexed',
8
- schema: {
9
- token: optionalAddressParam.describe('ERC20 token contract address to filter by'),
10
- wallet: optionalAddressParam.describe('Wallet address to filter transfers by'),
11
- limit: limitParam,
12
- network: networkParam,
13
- },
14
- handler: async (input, client) => {
15
- const res = await client.get('/api/transfers/erc20', {
16
- token: input.token,
17
- wallet: input.wallet,
18
- limit: input.limit,
19
- network: input.network,
20
- });
21
- return formatResponse(res);
22
- },
23
- };
24
- //# sourceMappingURL=erc20-transfers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20-transfers.js","sourceRoot":"","sources":["../../../src/tools/indexed/erc20-transfers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEhG,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,8DAA8D;QAC9D,kGAAkG;QAClG,oCAAoC;IACtC,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE;QACN,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACjF,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC9E,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,YAAY;KACtB;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACnD,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,MAAM,EAAE,KAAK,CAAC,MAA4B;YAC1C,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,OAAO,EAAE,KAAK,CAAC,OAA6B;SAC7C,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { ToolDef } from '../../types.js';
2
- export declare const tool: ToolDef;
3
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/tools/indexed/events.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OA0BlB,CAAC"}