web3-tools-mcp 2.0.2 → 3.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.
Files changed (180) hide show
  1. package/CHANGELOG.md +182 -1
  2. package/README.md +76 -47
  3. package/dist/anvil.d.ts +17 -19
  4. package/dist/anvil.d.ts.map +1 -1
  5. package/dist/anvil.js +124 -228
  6. package/dist/anvil.js.map +1 -1
  7. package/dist/chain-meta.d.ts.map +1 -1
  8. package/dist/chain-meta.js +19 -8
  9. package/dist/chain-meta.js.map +1 -1
  10. package/dist/chains.d.ts +9 -1
  11. package/dist/chains.d.ts.map +1 -1
  12. package/dist/chains.js +11 -2
  13. package/dist/chains.js.map +1 -1
  14. package/dist/clear-signing.d.ts.map +1 -1
  15. package/dist/clear-signing.js +17 -6
  16. package/dist/clear-signing.js.map +1 -1
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js.map +1 -1
  19. package/dist/context.d.ts +22 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +24 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/hosted.d.ts +12 -0
  24. package/dist/hosted.d.ts.map +1 -0
  25. package/dist/hosted.js +12 -0
  26. package/dist/hosted.js.map +1 -0
  27. package/dist/http-server.d.ts +13 -0
  28. package/dist/http-server.d.ts.map +1 -1
  29. package/dist/http-server.js +22 -7
  30. package/dist/http-server.js.map +1 -1
  31. package/dist/index.js +20 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/kv-storage.d.ts +2 -1
  34. package/dist/kv-storage.d.ts.map +1 -1
  35. package/dist/kv-storage.js +5 -2
  36. package/dist/kv-storage.js.map +1 -1
  37. package/dist/lib.d.ts +24 -0
  38. package/dist/lib.d.ts.map +1 -0
  39. package/dist/lib.js +23 -0
  40. package/dist/lib.js.map +1 -0
  41. package/dist/mcp-server.d.ts +4 -0
  42. package/dist/mcp-server.d.ts.map +1 -0
  43. package/dist/mcp-server.js +43 -0
  44. package/dist/mcp-server.js.map +1 -0
  45. package/dist/oauth.d.ts +57 -8
  46. package/dist/oauth.d.ts.map +1 -1
  47. package/dist/oauth.js +133 -63
  48. package/dist/oauth.js.map +1 -1
  49. package/dist/preview.d.ts +7 -0
  50. package/dist/preview.d.ts.map +1 -1
  51. package/dist/preview.js +21 -7
  52. package/dist/preview.js.map +1 -1
  53. package/dist/signing-requests.d.ts +81 -0
  54. package/dist/signing-requests.d.ts.map +1 -0
  55. package/dist/signing-requests.js +138 -0
  56. package/dist/signing-requests.js.map +1 -0
  57. package/dist/tools/index.d.ts +27 -1
  58. package/dist/tools/index.d.ts.map +1 -1
  59. package/dist/tools/index.js +50 -15
  60. package/dist/tools/index.js.map +1 -1
  61. package/dist/tools/{advanced.d.ts → read/advanced.d.ts} +39 -30
  62. package/dist/tools/read/advanced.d.ts.map +1 -0
  63. package/dist/tools/{advanced.js → read/advanced.js} +53 -41
  64. package/dist/tools/read/advanced.js.map +1 -0
  65. package/dist/tools/{balance.d.ts → read/balance.d.ts} +8 -7
  66. package/dist/tools/read/balance.d.ts.map +1 -0
  67. package/dist/tools/{balance.js → read/balance.js} +18 -33
  68. package/dist/tools/read/balance.js.map +1 -0
  69. package/dist/tools/{contract-info.d.ts → read/contract-info.d.ts} +20 -15
  70. package/dist/tools/read/contract-info.d.ts.map +1 -0
  71. package/dist/tools/{contract-info.js → read/contract-info.js} +54 -123
  72. package/dist/tools/read/contract-info.js.map +1 -0
  73. package/dist/tools/{contract.d.ts → read/contract.d.ts} +14 -12
  74. package/dist/tools/read/contract.d.ts.map +1 -0
  75. package/dist/tools/{contract.js → read/contract.js} +3 -2
  76. package/dist/tools/read/contract.js.map +1 -0
  77. package/dist/tools/read/ens.d.ts +104 -0
  78. package/dist/tools/read/ens.d.ts.map +1 -0
  79. package/dist/tools/{ens.js → read/ens.js} +25 -33
  80. package/dist/tools/read/ens.js.map +1 -0
  81. package/dist/tools/read/gas.d.ts +171 -0
  82. package/dist/tools/read/gas.d.ts.map +1 -0
  83. package/dist/tools/read/gas.js +333 -0
  84. package/dist/tools/read/gas.js.map +1 -0
  85. package/dist/tools/read/logs.d.ts +101 -0
  86. package/dist/tools/read/logs.d.ts.map +1 -0
  87. package/dist/tools/read/logs.js +211 -0
  88. package/dist/tools/read/logs.js.map +1 -0
  89. package/dist/tools/{signatures.d.ts → read/signatures.d.ts} +8 -4
  90. package/dist/tools/read/signatures.d.ts.map +1 -0
  91. package/dist/tools/{signatures.js → read/signatures.js} +4 -3
  92. package/dist/tools/read/signatures.js.map +1 -0
  93. package/dist/tools/read/signing.d.ts +27 -0
  94. package/dist/tools/read/signing.d.ts.map +1 -0
  95. package/dist/tools/read/signing.js +81 -0
  96. package/dist/tools/read/signing.js.map +1 -0
  97. package/dist/tools/sign/errors.d.ts +9 -0
  98. package/dist/tools/sign/errors.d.ts.map +1 -0
  99. package/dist/tools/sign/errors.js +29 -0
  100. package/dist/tools/sign/errors.js.map +1 -0
  101. package/dist/tools/sign/transactions.d.ts +141 -0
  102. package/dist/tools/sign/transactions.d.ts.map +1 -0
  103. package/dist/tools/sign/transactions.js +361 -0
  104. package/dist/tools/sign/transactions.js.map +1 -0
  105. package/dist/tools/sign/wallet.d.ts +50 -0
  106. package/dist/tools/sign/wallet.d.ts.map +1 -0
  107. package/dist/tools/sign/wallet.js +180 -0
  108. package/dist/tools/sign/wallet.js.map +1 -0
  109. package/dist/utils.d.ts +23 -2
  110. package/dist/utils.d.ts.map +1 -1
  111. package/dist/utils.js +48 -3
  112. package/dist/utils.js.map +1 -1
  113. package/dist/wallet-client.d.ts +34 -4
  114. package/dist/wallet-client.d.ts.map +1 -1
  115. package/dist/wallet-client.js +106 -27
  116. package/dist/wallet-client.js.map +1 -1
  117. package/dist/walletconnect.d.ts +100 -13
  118. package/dist/walletconnect.d.ts.map +1 -1
  119. package/dist/walletconnect.js +215 -50
  120. package/dist/walletconnect.js.map +1 -1
  121. package/package.json +12 -9
  122. package/src/anvil.ts +150 -271
  123. package/src/chain-meta.ts +16 -7
  124. package/src/chains.ts +14 -2
  125. package/src/clear-signing.ts +15 -9
  126. package/src/client.ts +0 -1
  127. package/src/context.ts +27 -0
  128. package/src/hosted.ts +11 -0
  129. package/src/http-server.ts +38 -8
  130. package/src/index.ts +20 -13
  131. package/src/kv-storage.ts +6 -3
  132. package/src/lib.ts +24 -0
  133. package/src/mcp-server.ts +47 -0
  134. package/src/oauth.ts +181 -69
  135. package/src/preview.ts +28 -7
  136. package/src/signing-requests.ts +198 -0
  137. package/src/tools/index.ts +78 -16
  138. package/src/tools/{advanced.ts → read/advanced.ts} +74 -43
  139. package/src/tools/{balance.ts → read/balance.ts} +20 -35
  140. package/src/tools/{contract-info.ts → read/contract-info.ts} +66 -146
  141. package/src/tools/{contract.ts → read/contract.ts} +4 -3
  142. package/src/tools/{ens.ts → read/ens.ts} +27 -34
  143. package/src/tools/read/gas.ts +443 -0
  144. package/src/tools/read/logs.ts +281 -0
  145. package/src/tools/{signatures.ts → read/signatures.ts} +5 -5
  146. package/src/tools/read/signing.ts +92 -0
  147. package/src/tools/sign/errors.ts +28 -0
  148. package/src/tools/sign/transactions.ts +479 -0
  149. package/src/tools/sign/wallet.ts +216 -0
  150. package/src/utils.ts +52 -3
  151. package/src/wallet-client.ts +107 -24
  152. package/src/walletconnect.ts +250 -48
  153. package/dist/tools/advanced.d.ts.map +0 -1
  154. package/dist/tools/advanced.js.map +0 -1
  155. package/dist/tools/balance.d.ts.map +0 -1
  156. package/dist/tools/balance.js.map +0 -1
  157. package/dist/tools/contract-info.d.ts.map +0 -1
  158. package/dist/tools/contract-info.js.map +0 -1
  159. package/dist/tools/contract.d.ts.map +0 -1
  160. package/dist/tools/contract.js.map +0 -1
  161. package/dist/tools/ens.d.ts +0 -119
  162. package/dist/tools/ens.d.ts.map +0 -1
  163. package/dist/tools/ens.js.map +0 -1
  164. package/dist/tools/gas.d.ts +0 -99
  165. package/dist/tools/gas.d.ts.map +0 -1
  166. package/dist/tools/gas.js +0 -181
  167. package/dist/tools/gas.js.map +0 -1
  168. package/dist/tools/logs.d.ts +0 -39
  169. package/dist/tools/logs.d.ts.map +0 -1
  170. package/dist/tools/logs.js +0 -230
  171. package/dist/tools/logs.js.map +0 -1
  172. package/dist/tools/signatures.d.ts.map +0 -1
  173. package/dist/tools/signatures.js.map +0 -1
  174. package/dist/tools/transactions.d.ts +0 -155
  175. package/dist/tools/transactions.d.ts.map +0 -1
  176. package/dist/tools/transactions.js +0 -365
  177. package/dist/tools/transactions.js.map +0 -1
  178. package/src/tools/gas.ts +0 -219
  179. package/src/tools/logs.ts +0 -293
  180. package/src/tools/transactions.ts +0 -456
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../../src/tools/read/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,UAAU,EAEV,SAAS,EACT,YAAY,EACZ,KAAK,EACN,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1G,oEAAoE;AACpE,MAAM,oBAAoB,GAAG,CAAC,CAAA;AAC9B,yEAAyE;AACzE,MAAM,YAAY,GAAG,4CAA4C,CAAA;AAEjE,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AA4CpF,SAAS,UAAU,CACjB,IAA2H,EAC3H,IAAwB,EACxB,KAAa;IAEb,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,wBAAwB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACxF,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,0BAA0B,MAAM,EAAE,CAAC,CAAA;IAClG,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,iDAAiD,CAAC,CAAA;IAElH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1F,MAAM,IAAI,GAAG,GAAG;QACd,CAAC,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxH,CAAC,CAAE,IAAI,CAAC,IAAwB,CAAA;IAElC,OAAO,EAAE,IAAI,EAAE,MAA6B,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAA;AAC5H,CAAC;AAED,oGAAoG;AACpG,KAAK,UAAU,UAAU,CAAC,KAAgB,EAAE,KAAmB,EAAE,WAAoB;IACnF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAChE,CAAC,CAAC,CAAA;IACH,MAAM,MAAM,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9F,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,oCAAoC,EAAE,MAAM,EAAW,CAAC,CAAqB,CAAA;IAC9H,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACzE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO;QAC7B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,eAAe;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC,CAAA;AACL,CAAC;AAED,SAAS,YAAY,CAAC,GAA4B,EAAE,IAAS;IAC3D,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACrC,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,KAAgB,EAAE,KAAmB,EAAE,WAAoB;IACtF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE;QAC3C,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACnH,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,KAAK;QACjB,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;KAClD,CAAC,CAAA;IACF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAElE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAA;IACxD,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAwB,EAAE;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgE,CAAA;QACnF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAU,CAAC,CAAA;QAE1E,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,IAAI,KAAK,EAAE,OAAO,IAAI,oBAAoB,CAAC;YAC9G,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1F,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACvC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO;wBACL,SAAS,EAAE,QAAQ;wBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;wBACf,MAAM,EAAE,GAAG;wBACX,SAAS,EAAE,GAAG;qBACf,CAAA;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,CAAA;gBAC5D,OAAO;oBACL,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;oBACtC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;oBAC1C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;oBAC/C,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;oBAC5E,SAAS,EAAE,QAAQ,CAAC,MAAM;iBAC3B,CAAA;YACH,CAAC,CAAC;SACH,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,eAAe;IACb,iBAAiB,EAAE,UAAU,CAC3B,wBAAwB,EACxB,kIAAkI,EAClI,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC7E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAChE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CAAC,2GAA2G,CAAC;QACxH,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/D,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QAClG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAChG,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAE/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAgB,CAAA;YAC7D,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAE9E,MAAM,EAAE,GAAG;gBACT,EAAE,EAAE,IAAI,CAAC,eAA0B;gBACnC,IAAI,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;gBAC7F,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAgB,CAAC,CAAC,CAAC,SAAS;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClD,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;aACrE,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACpC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAEhD,gDAAgD;YAChD,IAAI,aAAa,GAAY,MAAM,CAAC,IAAI,CAAA;YACxC,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjE,aAAa,GAAG,oBAAoB,CAAC;oBACnC,GAAG,EAAE,CAAC,OAAO,CAAC;oBACd,YAAY,EAAE,OAAO,CAAC,IAAI;oBAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,cAAc,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,MAAM,CAAC,IAAI;gBACpB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,QAAQ;aAC1C,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC;gBACpB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;gBACvB,QAAQ,EAAE,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACpF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CACF;IAED,eAAe,EAAE,UAAU,CACzB,6BAA6B,EAC7B,4GAA4G;QAC1G,sGAAsG;QACtG,qGAAqG;QACrG,6GAA6G;QAC7G,yGAAyG,EAC3G,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QAC/F,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACxD,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iGAAiG,CAAC;YAC9G,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;SAChG,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,SAAS,CAAC;aACd,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAChG,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAkB,CAAA;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE3E,IAAI,QAAmC,CAAA;QACvC,IAAI,GAAG,GAAG,oCAAoC,CAAA;QAC9C,IAAI,cAAkC,CAAA;QAEtC,IAAI,KAAK,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,0FAA0F;gBAC1F,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,6BAA6B,oBAAoB,0BAA0B,CAAA;QAC9F,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,GAAG,gBAAgB,CAAA;YACtB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC,CAAA;YAC/G,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;YACpB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;YAClE,KAAK;YACL,GAAG;YACH,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,CAAC;YACzC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;YACvF,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK;gBACL,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;gBACpB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjE,GAAG,OAAO;aACX,CAAC,CAAC;SACJ,CAAC,CAAA;IACJ,CAAC;IACD,4FAA4F;IAC5F,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,CAC5D;IAED,YAAY,EAAE,UAAU,CACtB,cAAc,EACd,+FAA+F,EAC/F,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC9D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACtF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;QAC/G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;QACjH,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/D,QAAQ,EAAE;aACV,QAAQ,CAAC,2DAA2D,CAAC;KACzE,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAE/D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QAExB,mDAAmD;QACnD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAgB,CAAA;YAC7D,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC9E,QAAQ,GAAG,kBAAkB,CAAC;gBAC5B,GAAG,EAAE,CAAC,OAAO,CAAC;gBACd,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,IAAI,EAAE,aAAa;aACpB,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YAC3C,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,EAAc,CAAC,CAAC,CAAC,SAAS;YAC9C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAgB,CAAC,CAAC,CAAC,SAAS;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAClD,IAAI,EAAE,QAAqC;SAC5C,CAAC,CAAA;QAEF,OAAO,cAAc,CAAC;YACpB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC,CACF;IAED,aAAa,EAAE,UAAU,CACvB,eAAe,EACf,0HAA0H,EAC1H,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC9D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;KAC1H,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAE/D,0CAA0C;QAC1C,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,MAAM,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,qCAAqC;SACpF,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAA;QAEtE,MAAM,QAAQ,GAAQ;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACtE,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;aACjC;SACF,CAAA;QAED,iCAAiC;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,OAAO,GAAG;gBACjB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAClG,oBAAoB,EAAE,IAAI,CAAC,SAAS;oBAClC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC;oBAC3C,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE;gBAC3C,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAChD,uBAAuB,EAAE,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE;aACjE,CAAA;YAED,sEAAsE;YACtE,MAAM,gBAAgB,GAAG,MAAM,CAAA;YAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,gBAAgB,CAAA;YAC7D,QAAQ,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS;gBACtD,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,IAAI,KAAK,EAAE;gBACjF,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;QAC9B,CAAC;QAED,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC,CACF;CACF,CAAA"}
@@ -0,0 +1,101 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ import { z } from 'zod';
3
+ /** More than this is cut short, with the block to resume from. */
4
+ export declare const MAX_LOGS = 1000;
5
+ interface DecodedLog {
6
+ address: Address;
7
+ blockHash: Hex | null;
8
+ blockNumber: bigint | null;
9
+ data: Hex;
10
+ logIndex: number | null | undefined;
11
+ topics: readonly Hex[];
12
+ transactionHash: Hex | null;
13
+ transactionIndex: number | null | undefined;
14
+ eventName: string;
15
+ args: unknown;
16
+ }
17
+ /** Resuming from `nextBlock` may repeat logs of that block already returned. */
18
+ export declare function capLogs(logs: DecodedLog[]): {
19
+ logs: {
20
+ address: `0x${string}`;
21
+ blockHash: `0x${string}` | null;
22
+ blockNumber: string | undefined;
23
+ data: `0x${string}`;
24
+ logIndex: number | null | undefined;
25
+ topics: readonly `0x${string}`[];
26
+ transactionHash: `0x${string}` | null;
27
+ transactionIndex: number | null | undefined;
28
+ decoded: {
29
+ eventName: string;
30
+ args: unknown;
31
+ };
32
+ }[];
33
+ truncated?: undefined;
34
+ nextBlock?: undefined;
35
+ } | {
36
+ logs: {
37
+ address: `0x${string}`;
38
+ blockHash: `0x${string}` | null;
39
+ blockNumber: string | undefined;
40
+ data: `0x${string}`;
41
+ logIndex: number | null | undefined;
42
+ topics: readonly `0x${string}`[];
43
+ transactionHash: `0x${string}` | null;
44
+ transactionIndex: number | null | undefined;
45
+ decoded: {
46
+ eventName: string;
47
+ args: unknown;
48
+ };
49
+ }[];
50
+ truncated: boolean;
51
+ nextBlock: string | undefined;
52
+ };
53
+ /**
54
+ * The same range eth_getLogs would scan — each end defaults to the latest block — in
55
+ * Hypersync's terms, where `toBlock` is exclusive.
56
+ */
57
+ export declare function hypersyncRange(fromBlock: string | undefined, toBlock: string | undefined, latest: number): {
58
+ fromBlock: number;
59
+ toBlock: number;
60
+ };
61
+ /** One topic, or a list of alternatives for an OR filter. */
62
+ export declare function toTopics(value: unknown): Hex | Hex[];
63
+ declare const _default: {
64
+ get_logs: {
65
+ title: string;
66
+ description: string;
67
+ schema: z.ZodObject<{
68
+ chain: z.ZodEnum<["mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>;
69
+ eventAbi: z.ZodString;
70
+ address: z.ZodOptional<z.ZodString>;
71
+ fromBlock: z.ZodOptional<z.ZodString>;
72
+ toBlock: z.ZodOptional<z.ZodString>;
73
+ eventArgs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ chain: "mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
76
+ eventAbi: string;
77
+ address?: string | undefined;
78
+ fromBlock?: string | undefined;
79
+ toBlock?: string | undefined;
80
+ eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
81
+ }, {
82
+ chain: "mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
83
+ eventAbi: string;
84
+ address?: string | undefined;
85
+ fromBlock?: string | undefined;
86
+ toBlock?: string | undefined;
87
+ eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
88
+ }>;
89
+ handler: (args: {
90
+ chain: "mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
91
+ eventAbi: string;
92
+ address?: string | undefined;
93
+ fromBlock?: string | undefined;
94
+ toBlock?: string | undefined;
95
+ eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
96
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
97
+ available: (() => boolean) | undefined;
98
+ };
99
+ };
100
+ export default _default;
101
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/tools/read/logs.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,OAAO,EAEZ,KAAK,GAAG,EAQT,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAsBvB,kEAAkE;AAClE,eAAO,MAAM,QAAQ,OAAO,CAAA;AAE5B,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,GAAG,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACnC,MAAM,EAAE,SAAS,GAAG,EAAE,CAAA;IACtB,eAAe,EAAE,GAAG,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd;AAgBD,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOzC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;;;EAKxG;AAED,6DAA6D;AAC7D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,CAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGD,wBAsFC"}
@@ -0,0 +1,211 @@
1
+ import { HypersyncClient, LogField } from '@envio-dev/hypersync-client';
2
+ import { decodeEventLog, isAddress, keccak256, numberToHex, padHex, parseAbiItem, toBytes, toEventSignature } from 'viem';
3
+ import { z } from 'zod';
4
+ import { getClientManager, SUPPORTED_CHAINS } from '../../client.js';
5
+ import { convertEventArgsToTypes, createTool, formatResponse, rpcReason } from '../../utils.js';
6
+ /**
7
+ * A topic is always 32 bytes, so an address, a number or a short hex value has to be
8
+ * left-padded to fit. Passing one through unpadded is rejected outright by Hypersync.
9
+ */
10
+ function toTopic(value) {
11
+ if (typeof value === 'number' || typeof value === 'bigint') {
12
+ return padHex(numberToHex(value), { size: 32 });
13
+ }
14
+ if (typeof value === 'boolean') {
15
+ return padHex(value ? '0x01' : '0x00', { size: 32 });
16
+ }
17
+ if (typeof value === 'string' && (isAddress(value) || value.startsWith('0x'))) {
18
+ return padHex(value.toLowerCase(), { size: 32 });
19
+ }
20
+ throw new Error(`Cannot filter on indexed value ${JSON.stringify(value)} — expected an address, number or hex string`);
21
+ }
22
+ /** More than this is cut short, with the block to resume from. */
23
+ export const MAX_LOGS = 1000;
24
+ function serializeLog(log) {
25
+ return {
26
+ address: log.address,
27
+ blockHash: log.blockHash,
28
+ blockNumber: log.blockNumber?.toString(),
29
+ data: log.data,
30
+ logIndex: log.logIndex,
31
+ topics: log.topics,
32
+ transactionHash: log.transactionHash,
33
+ transactionIndex: log.transactionIndex,
34
+ decoded: { eventName: log.eventName, args: log.args }
35
+ };
36
+ }
37
+ /** Resuming from `nextBlock` may repeat logs of that block already returned. */
38
+ export function capLogs(logs) {
39
+ if (logs.length <= MAX_LOGS)
40
+ return { logs: logs.map(serializeLog) };
41
+ return {
42
+ logs: logs.slice(0, MAX_LOGS).map(serializeLog),
43
+ truncated: true,
44
+ nextBlock: logs[MAX_LOGS]?.blockNumber?.toString()
45
+ };
46
+ }
47
+ /**
48
+ * The same range eth_getLogs would scan — each end defaults to the latest block — in
49
+ * Hypersync's terms, where `toBlock` is exclusive.
50
+ */
51
+ export function hypersyncRange(fromBlock, toBlock, latest) {
52
+ return {
53
+ fromBlock: fromBlock ? Number(BigInt(fromBlock)) : latest,
54
+ toBlock: (toBlock ? Number(BigInt(toBlock)) : latest) + 1
55
+ };
56
+ }
57
+ /** One topic, or a list of alternatives for an OR filter. */
58
+ export function toTopics(value) {
59
+ return Array.isArray(value) ? value.map(toTopic) : toTopic(value);
60
+ }
61
+ async function getLogsWithHypersync(chainName, abiItem, hypersyncApiKey, address, fromBlock, toBlock, eventArgs) {
62
+ const hypersyncUrl = getClientManager().getHypersyncUrl(chainName);
63
+ if (!hypersyncUrl) {
64
+ throw new Error(`Hypersync not supported for chain: ${chainName}`);
65
+ }
66
+ const client = HypersyncClient.new({
67
+ url: hypersyncUrl,
68
+ bearerToken: hypersyncApiKey
69
+ });
70
+ const topic0 = keccak256(toBytes(toEventSignature(abiItem)));
71
+ // Build topics array for filtering
72
+ const topics = [topic0];
73
+ // Add indexed parameter filtering if eventArgs provided
74
+ if (eventArgs) {
75
+ const indexedInputs = abiItem.inputs.filter((input) => input.indexed);
76
+ for (let i = 0; i < indexedInputs.length && i < 3; i++) {
77
+ const input = indexedInputs[i];
78
+ const argValue = input?.name ? eventArgs[input.name] : undefined;
79
+ topics.push(argValue === undefined ? null : toTopics(argValue));
80
+ }
81
+ }
82
+ const latest = fromBlock && toBlock ? 0 : await client.getHeight();
83
+ const range = hypersyncRange(fromBlock, toBlock, latest);
84
+ const query = {
85
+ fieldSelection: {
86
+ log: [
87
+ LogField.Address,
88
+ LogField.Topic0,
89
+ LogField.Topic1,
90
+ LogField.Topic2,
91
+ LogField.Topic3,
92
+ LogField.Data,
93
+ LogField.BlockNumber,
94
+ LogField.BlockHash,
95
+ LogField.TransactionHash,
96
+ LogField.TransactionIndex,
97
+ LogField.LogIndex
98
+ ]
99
+ },
100
+ ...range,
101
+ logs: [
102
+ {
103
+ address: address ? [address] : undefined,
104
+ // An unfiltered position is an empty list, not a dropped entry: removing it would
105
+ // slide every later filter up a slot and match on the wrong parameter.
106
+ topics: topics.map((t) => (t === null ? [] : Array.isArray(t) ? t : [t]))
107
+ }
108
+ ]
109
+ };
110
+ // One response covers only part of a long range; `nextBlock` says where it stopped.
111
+ const logs = [];
112
+ for (let from = range.fromBlock; from < range.toBlock && logs.length <= MAX_LOGS;) {
113
+ const res = await client.get({ ...query, fromBlock: from });
114
+ logs.push(...res.data.logs);
115
+ if (res.nextBlock <= from)
116
+ break;
117
+ from = res.nextBlock;
118
+ }
119
+ return logs
120
+ .map((log) => {
121
+ const topics = log.topics.filter((topic) => Boolean(topic));
122
+ const data = (log.data ?? '0x');
123
+ try {
124
+ const { args } = decodeEventLog({ abi: [abiItem], data, topics });
125
+ return {
126
+ address: log.address,
127
+ blockHash: log.blockHash,
128
+ blockNumber: log.blockNumber !== undefined ? BigInt(log.blockNumber) : null,
129
+ data,
130
+ logIndex: log.logIndex,
131
+ topics,
132
+ transactionHash: log.transactionHash,
133
+ transactionIndex: log.transactionIndex,
134
+ eventName: abiItem.name,
135
+ args: args ?? {}
136
+ };
137
+ }
138
+ catch (error) {
139
+ console.warn('Failed to decode log:', error);
140
+ return null;
141
+ }
142
+ })
143
+ .filter((log) => log !== null);
144
+ }
145
+ export default {
146
+ get_logs: createTool('Query Contract Events', `Search and decode contract events with filtering. Uses viem with hypersync fallback. Specify address and block ranges for best performance. Returns at most ${MAX_LOGS} logs; past that, truncated is true and nextBlock says where to resume.`, z.object({
147
+ chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
148
+ eventAbi: z
149
+ .string()
150
+ .describe('Event ABI definition (e.g., "event Transfer(address indexed from, address indexed to, uint256 value)")'),
151
+ address: z.string().optional().describe('Contract address (RECOMMENDED for performance)'),
152
+ fromBlock: z.string().optional().describe('Start block (defaults to the latest block)'),
153
+ toBlock: z.string().optional().describe('End block, inclusive (defaults to the latest block)'),
154
+ eventArgs: z
155
+ .record(z.union([z.string(), z.number(), z.boolean(), z.array(z.union([z.string(), z.number(), z.boolean()]))]))
156
+ .optional()
157
+ .describe('Filter by indexed parameters: {"from": "0x123...", "to": "0x456..."}. A list matches any of its values: {"to": ["0x1...", "0x2..."]}')
158
+ }), async (args) => {
159
+ const clientManager = getClientManager();
160
+ const chain = args.chain;
161
+ const abiItem = parseAbiItem(args.eventAbi);
162
+ if (args.address && !isAddress(args.address)) {
163
+ throw new Error(`Invalid contract address: ${args.address}`);
164
+ }
165
+ const eventArgs = args.eventArgs && Object.keys(args.eventArgs).length > 0
166
+ ? convertEventArgsToTypes(args.eventArgs, abiItem.inputs)
167
+ : undefined;
168
+ const fromBlockNum = args.fromBlock ? BigInt(args.fromBlock) : undefined;
169
+ const toBlockNum = args.toBlock ? BigInt(args.toBlock) : undefined;
170
+ const respond = (logs, dataSource) => {
171
+ const capped = capLogs(logs);
172
+ return formatResponse({
173
+ ...capped,
174
+ eventSignature: toEventSignature(abiItem),
175
+ chain: args.chain,
176
+ fromBlock: fromBlockNum?.toString() || 'latest',
177
+ toBlock: toBlockNum?.toString() || 'latest',
178
+ count: capped.logs.length,
179
+ dataSource,
180
+ filters: {
181
+ address: args.address || null,
182
+ eventArgs: args.eventArgs || null
183
+ }
184
+ });
185
+ };
186
+ try {
187
+ const logs = await clientManager.getClient(chain).getLogs({
188
+ address: args.address,
189
+ event: abiItem,
190
+ args: eventArgs,
191
+ fromBlock: fromBlockNum,
192
+ toBlock: toBlockNum
193
+ });
194
+ return respond(logs, 'viem');
195
+ }
196
+ catch (viemError) {
197
+ if (!clientManager.getHypersyncUrl(chain)) {
198
+ throw new Error(`Failed to get logs with viem (hypersync not available for ${args.chain}): ${rpcReason(viemError)}`);
199
+ }
200
+ console.warn(`Viem getLogs failed for ${args.chain}, trying hypersync fallback: ${rpcReason(viemError)}`);
201
+ try {
202
+ const logs = await getLogsWithHypersync(chain, abiItem, clientManager.getConfig().hypersyncApiKey, args.address, args.fromBlock, args.toBlock, eventArgs);
203
+ return respond(logs, 'hypersync');
204
+ }
205
+ catch (hypersyncError) {
206
+ throw new Error(`Both viem and hypersync failed. Viem error: ${rpcReason(viemError)}. Hypersync error: ${rpcReason(hypersyncError)}`);
207
+ }
208
+ }
209
+ })
210
+ };
211
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/tools/read/logs.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ declare const _default: {
24
24
  items: {
25
25
  functionAbi: string;
26
26
  }[];
27
- }) => Promise<import("../types.js").ToolResult>;
27
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
28
+ available: (() => boolean) | undefined;
28
29
  };
29
30
  get_event_signature: {
30
31
  title: string;
@@ -50,7 +51,8 @@ declare const _default: {
50
51
  items: {
51
52
  eventAbi: string;
52
53
  }[];
53
- }) => Promise<import("../types.js").ToolResult>;
54
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
55
+ available: (() => boolean) | undefined;
54
56
  };
55
57
  get_error_signature: {
56
58
  title: string;
@@ -76,7 +78,8 @@ declare const _default: {
76
78
  items: {
77
79
  errorAbi: string;
78
80
  }[];
79
- }) => Promise<import("../types.js").ToolResult>;
81
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
82
+ available: (() => boolean) | undefined;
80
83
  };
81
84
  encode_function_data: {
82
85
  title: string;
@@ -94,7 +97,8 @@ declare const _default: {
94
97
  handler: (args: {
95
98
  args: (string | number | boolean)[];
96
99
  functionAbi: string;
97
- }) => Promise<import("../types.js").ToolResult>;
100
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
101
+ available: (() => boolean) | undefined;
98
102
  };
99
103
  };
100
104
  export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../src/tools/read/signatures.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBvB,wBAgHC"}
@@ -1,6 +1,6 @@
1
1
  import { encodeFunctionData, keccak256, parseAbiItem, toBytes, toEventSignature, toFunctionSignature } from 'viem';
2
2
  import { z } from 'zod';
3
- import { createTool, formatResponse } from '../utils.js';
3
+ import { convertArgumentsToTypes, createTool, formatResponse } from '../../utils.js';
4
4
  const FunctionAbiSchema = z.object({
5
5
  functionAbi: z.string().describe('Function ABI definition (e.g., "function transfer(address to, uint256 amount)")')
6
6
  });
@@ -57,7 +57,8 @@ export default {
57
57
  }), async (args) => {
58
58
  const results = args.items.map((item) => {
59
59
  const abiItem = parseAbiItem(item.errorAbi);
60
- const signature = `${abiItem.name}(${abiItem.inputs.map((input) => input.type).join(',')})`;
60
+ // Formatted as a function, which an error's signature is; viem keeps an "error " prefix otherwise.
61
+ const signature = toFunctionSignature({ ...abiItem, type: 'function', outputs: [], stateMutability: 'nonpayable' });
61
62
  const hash = keccak256(toBytes(signature));
62
63
  const selector = hash.slice(0, 10);
63
64
  return {
@@ -81,7 +82,7 @@ export default {
81
82
  const data = encodeFunctionData({
82
83
  abi: [abiItem],
83
84
  functionName: abiItem.name,
84
- args: args.args
85
+ args: convertArgumentsToTypes(args.args, abiItem.inputs)
85
86
  });
86
87
  return formatResponse({
87
88
  data,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../src/tools/read/signatures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Collecting a signature that was not given within the tool call that asked for it.
4
+ *
5
+ * A read rather than a signing tool on purpose: the signature was requested — and charged
6
+ * for — once already, and a host metering signing should not bill an agent again for asking
7
+ * whether the human has got round to it yet.
8
+ */
9
+ declare const _default: {
10
+ check_signing_request: {
11
+ title: string;
12
+ description: string;
13
+ schema: z.ZodObject<{
14
+ requestId: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ requestId: string;
17
+ }, {
18
+ requestId: string;
19
+ }>;
20
+ handler: (args: {
21
+ requestId: string;
22
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
23
+ available: (() => boolean) | undefined;
24
+ };
25
+ };
26
+ export default _default;
27
+ //# sourceMappingURL=signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../src/tools/read/signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB;;;;;;GAMG;;;;;;;;;;;;;;;;;;AACH,wBA+EC"}
@@ -0,0 +1,81 @@
1
+ import { z } from 'zod';
2
+ import { collectSigningRequest } from '../../signing-requests.js';
3
+ import { createTool, formatResponse } from '../../utils.js';
4
+ import { failure } from '../sign/errors.js';
5
+ /**
6
+ * Collecting a signature that was not given within the tool call that asked for it.
7
+ *
8
+ * A read rather than a signing tool on purpose: the signature was requested — and charged
9
+ * for — once already, and a host metering signing should not bill an agent again for asking
10
+ * whether the human has got round to it yet.
11
+ */
12
+ export default {
13
+ check_signing_request: createTool('Check Signing Request', 'Collect the result of a signing request that was still waiting for approval. Waits a while for the user to approve, then reports back. Call this instead of asking for the signature again — repeating the original tool would put a second request in front of the wallet.', z.object({
14
+ requestId: z.string().describe('The requestId returned when the signing tool said it was awaiting approval')
15
+ }), async (args, identity) => {
16
+ try {
17
+ const request = await collectSigningRequest(args.requestId, identity);
18
+ const waitedFor = `${Math.round((Date.now() - request.startedAt) / 1000)}s`;
19
+ if (request.state === 'pending') {
20
+ // Approved already and waiting on the chain is a different thing to report: there
21
+ // is nothing left for the user to do, and nothing to chase them about.
22
+ if (request.stage === 'mining') {
23
+ return formatResponse({
24
+ success: true,
25
+ status: 'mining',
26
+ requestId: request.id,
27
+ what: request.summary,
28
+ transactionHash: request.txHash,
29
+ waitingFor: waitedFor,
30
+ nextStep: 'Approved and broadcast. Call this again with the same requestId to get the mined result.',
31
+ message: 'Signed and sent. Waiting for it to be mined.'
32
+ });
33
+ }
34
+ return formatResponse({
35
+ success: true,
36
+ status: 'awaiting_approval',
37
+ requestId: request.id,
38
+ what: request.summary,
39
+ waitingFor: waitedFor,
40
+ nextStep: 'Still not approved. Ask the user to check their wallet and approve or reject it, then call this again with the same requestId.',
41
+ message: 'Nothing has been signed yet.'
42
+ });
43
+ }
44
+ if (request.state === 'failed') {
45
+ // Only an explicit rejection proves nothing was signed. A timeout or a dropped
46
+ // connection can land after the wallet signed and broadcast.
47
+ const rejected = request.stage === 'approval' && /rejected|denied/i.test(request.error ?? '');
48
+ return formatResponse({
49
+ success: false,
50
+ status: rejected ? 'rejected' : 'outcome_unknown',
51
+ what: request.summary,
52
+ error: request.error,
53
+ ...(request.txHash && { transactionHash: request.txHash }),
54
+ message: rejected
55
+ ? 'The wallet rejected it. Nothing was signed.'
56
+ : 'It did not complete here, but it may still have been signed or broadcast. Do not retry until the wallet or a block explorer shows it did not go through.'
57
+ });
58
+ }
59
+ // A transaction carries how it ended on the chain; a message signature is just the
60
+ // signature, with nothing to mine.
61
+ const settled = request.result;
62
+ const reverted = settled?.receipt?.status === 'reverted';
63
+ return formatResponse({
64
+ success: !reverted,
65
+ status: settled?.receipt?.status ?? 'signed',
66
+ what: request.summary,
67
+ signedWith: request.signer,
68
+ result: request.result,
69
+ message: reverted
70
+ ? 'Mined, but it reverted. The gas was spent and nothing else changed.'
71
+ : settled?.receipt?.status === 'broadcast'
72
+ ? 'Approved and broadcast, but not mined yet.'
73
+ : 'Approved and done.'
74
+ });
75
+ }
76
+ catch (error) {
77
+ return failure(error, 'Could not check that signing request');
78
+ }
79
+ })
80
+ };
81
+ //# sourceMappingURL=signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../src/tools/read/signing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * WalletConnect rejects with a plain `{ code, message }` rather than an Error, which
3
+ * String() renders as "[object Object]" — the reason a wallet gave for refusing is the
4
+ * whole point of the message, so dig it out.
5
+ */
6
+ export declare function describeError(error: unknown): string;
7
+ /** A refused or failed signing attempt, reported to the caller and to the log alike. */
8
+ export declare function failure(error: unknown, message: string): import("../../types.js").ToolResult;
9
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/tools/sign/errors.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASpD;AAED,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uCAOtD"}
@@ -0,0 +1,29 @@
1
+ import { log } from '../../log.js';
2
+ import { formatResponse } from '../../utils.js';
3
+ /**
4
+ * WalletConnect rejects with a plain `{ code, message }` rather than an Error, which
5
+ * String() renders as "[object Object]" — the reason a wallet gave for refusing is the
6
+ * whole point of the message, so dig it out.
7
+ */
8
+ export function describeError(error) {
9
+ if (error instanceof Error)
10
+ return error.message;
11
+ if (error && typeof error === 'object') {
12
+ const { message, code, reason } = error;
13
+ const text = message ?? reason;
14
+ if (text)
15
+ return code === undefined ? text : `${text} (code ${code})`;
16
+ return JSON.stringify(error);
17
+ }
18
+ return String(error);
19
+ }
20
+ /** A refused or failed signing attempt, reported to the caller and to the log alike. */
21
+ export function failure(error, message) {
22
+ log('warning', 'Transaction', `${message} — ${describeError(error)}`);
23
+ return formatResponse({
24
+ success: false,
25
+ error: describeError(error),
26
+ message
27
+ });
28
+ }
29
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/tools/sign/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IAChD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAA6D,CAAA;QAC/F,MAAM,IAAI,GAAG,OAAO,IAAI,MAAM,CAAA;QAC9B,IAAI,IAAI;YAAE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,IAAI,GAAG,CAAA;QACrE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,OAAe;IACrD,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACrE,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;QAC3B,OAAO;KACR,CAAC,CAAA;AACJ,CAAC"}