@xyo-network/payloadset-plugins 7.2.0 → 8.0.1

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 (421) hide show
  1. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCall.d.ts +4 -0
  2. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCall.d.ts.map +1 -1
  3. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCallBase64Result.d.ts +2 -0
  4. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCallBase64Result.d.ts.map +1 -1
  5. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCallResult.d.ts +6 -0
  6. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCallResult.d.ts.map +1 -1
  7. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCallXmlResult.d.ts +2 -0
  8. package/dist/browser/modules/api-call-witness/Payload/identity/asApiCallXmlResult.d.ts.map +1 -1
  9. package/dist/browser/modules/api-call-witness/Payload/identity/asApiUriCall.d.ts +2 -0
  10. package/dist/browser/modules/api-call-witness/Payload/identity/asApiUriCall.d.ts.map +1 -1
  11. package/dist/browser/modules/api-call-witness/Payload/identity/asApiUriTemplateCall.d.ts +2 -0
  12. package/dist/browser/modules/api-call-witness/Payload/identity/asApiUriTemplateCall.d.ts.map +1 -1
  13. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCall.d.ts +2 -0
  14. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCall.d.ts.map +1 -1
  15. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallBase64Result.d.ts +1 -0
  16. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallBase64Result.d.ts.map +1 -1
  17. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallErrorResult.d.ts +1 -0
  18. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallErrorResult.d.ts.map +1 -1
  19. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallResult.d.ts +3 -0
  20. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallResult.d.ts.map +1 -1
  21. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallXmlResult.d.ts +1 -0
  22. package/dist/browser/modules/api-call-witness/Payload/identity/isApiCallXmlResult.d.ts.map +1 -1
  23. package/dist/browser/modules/api-call-witness/Payload/identity/isApiUriCall.d.ts +1 -0
  24. package/dist/browser/modules/api-call-witness/Payload/identity/isApiUriCall.d.ts.map +1 -1
  25. package/dist/browser/modules/api-call-witness/Payload/types/ApiCall.d.ts +2 -0
  26. package/dist/browser/modules/api-call-witness/Payload/types/ApiCall.d.ts.map +1 -1
  27. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallBase64Result.d.ts +1 -0
  28. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallBase64Result.d.ts.map +1 -1
  29. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallErrorResult.d.ts +1 -0
  30. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallErrorResult.d.ts.map +1 -1
  31. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallJsonResult.d.ts +3 -0
  32. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallJsonResult.d.ts.map +1 -1
  33. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallResult.d.ts +3 -0
  34. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallResult.d.ts.map +1 -1
  35. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallXmlResult.d.ts +1 -0
  36. package/dist/browser/modules/api-call-witness/Payload/types/ApiCallXmlResult.d.ts.map +1 -1
  37. package/dist/browser/modules/api-call-witness/Payload/types/ApiUriCall.d.ts +1 -0
  38. package/dist/browser/modules/api-call-witness/Payload/types/ApiUriCall.d.ts.map +1 -1
  39. package/dist/browser/modules/api-call-witness/Payload/types/ApiUriTemplateCall.d.ts +1 -0
  40. package/dist/browser/modules/api-call-witness/Payload/types/ApiUriTemplateCall.d.ts.map +1 -1
  41. package/dist/browser/modules/api-graphql/Witness.d.ts +11 -0
  42. package/dist/browser/modules/api-graphql/Witness.d.ts.map +1 -1
  43. package/dist/browser/modules/bowser-system-info/Witness.d.ts +1 -0
  44. package/dist/browser/modules/bowser-system-info/Witness.d.ts.map +1 -1
  45. package/dist/browser/modules/crypto-nft-collection-witness/Witness.d.ts +2 -2
  46. package/dist/browser/modules/crypto-nft-collection-witness/Witness.d.ts.map +1 -1
  47. package/dist/browser/modules/crypto-nft-witness-wallet/Witness.d.ts +2 -2
  48. package/dist/browser/modules/crypto-nft-witness-wallet/Witness.d.ts.map +1 -1
  49. package/dist/browser/modules/diviner-evm-call-result-to-token-uri/Payload.d.ts +1 -0
  50. package/dist/browser/modules/diviner-evm-call-result-to-token-uri/Payload.d.ts.map +1 -1
  51. package/dist/browser/modules/erc1822-witness/Payload.d.ts +6 -0
  52. package/dist/browser/modules/erc1822-witness/Payload.d.ts.map +1 -1
  53. package/dist/browser/modules/erc1822-witness/Witness.d.ts +2 -2
  54. package/dist/browser/modules/erc1822-witness/Witness.d.ts.map +1 -1
  55. package/dist/browser/modules/erc1967-witness/Payload.d.ts +6 -0
  56. package/dist/browser/modules/erc1967-witness/Payload.d.ts.map +1 -1
  57. package/dist/browser/modules/erc1967-witness/Witness.d.ts +2 -2
  58. package/dist/browser/modules/erc1967-witness/Witness.d.ts.map +1 -1
  59. package/dist/browser/modules/evm-abi-diviner/Payload.d.ts +6 -0
  60. package/dist/browser/modules/evm-abi-diviner/Payload.d.ts.map +1 -1
  61. package/dist/browser/modules/evm-call-witness/Diviner.d.ts +6 -0
  62. package/dist/browser/modules/evm-call-witness/Diviner.d.ts.map +1 -1
  63. package/dist/browser/modules/evm-call-witness/Payload.d.ts +31 -0
  64. package/dist/browser/modules/evm-call-witness/Payload.d.ts.map +1 -1
  65. package/dist/browser/modules/evm-call-witness/Witness.d.ts +1 -1
  66. package/dist/browser/modules/evm-call-witness/Witness.d.ts.map +1 -1
  67. package/dist/browser/modules/evm-call-witness/model.d.ts +1 -1
  68. package/dist/browser/modules/evm-call-witness/model.d.ts.map +1 -1
  69. package/dist/browser/modules/evm-contract-witness/Payload.d.ts +6 -0
  70. package/dist/browser/modules/evm-contract-witness/Payload.d.ts.map +1 -1
  71. package/dist/browser/modules/evm-contract-witness/Witness.d.ts +2 -2
  72. package/dist/browser/modules/evm-contract-witness/Witness.d.ts.map +1 -1
  73. package/dist/browser/modules/evm-events-witness/Payload.d.ts +12 -0
  74. package/dist/browser/modules/evm-events-witness/Payload.d.ts.map +1 -1
  75. package/dist/browser/modules/evm-events-witness/Witness.d.ts +1 -1
  76. package/dist/browser/modules/evm-events-witness/Witness.d.ts.map +1 -1
  77. package/dist/browser/modules/evm-events-witness/model.d.ts +1 -1
  78. package/dist/browser/modules/evm-events-witness/model.d.ts.map +1 -1
  79. package/dist/browser/modules/evm-token-interface-diviner/Payload.d.ts +6 -0
  80. package/dist/browser/modules/evm-token-interface-diviner/Payload.d.ts.map +1 -1
  81. package/dist/browser/modules/file-browser/BrowserFileWitness.d.ts +1 -0
  82. package/dist/browser/modules/file-browser/BrowserFileWitness.d.ts.map +1 -1
  83. package/dist/browser/modules/file-browser/Payload.d.ts +6 -0
  84. package/dist/browser/modules/file-browser/Payload.d.ts.map +1 -1
  85. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCall.d.ts +4 -0
  86. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCall.d.ts.map +1 -1
  87. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCallBase64Result.d.ts +2 -0
  88. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCallBase64Result.d.ts.map +1 -1
  89. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCallResult.d.ts +6 -0
  90. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCallResult.d.ts.map +1 -1
  91. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCallXmlResult.d.ts +2 -0
  92. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpCallXmlResult.d.ts.map +1 -1
  93. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpUriCall.d.ts +2 -0
  94. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpUriCall.d.ts.map +1 -1
  95. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpUriTemplateCall.d.ts +2 -0
  96. package/dist/browser/modules/http-call-witness/Payload/identity/asHttpUriTemplateCall.d.ts.map +1 -1
  97. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCall.d.ts +2 -0
  98. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCall.d.ts.map +1 -1
  99. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallBase64Result.d.ts +1 -0
  100. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallBase64Result.d.ts.map +1 -1
  101. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallErrorResult.d.ts +1 -0
  102. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallErrorResult.d.ts.map +1 -1
  103. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallResult.d.ts +3 -0
  104. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallResult.d.ts.map +1 -1
  105. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallXmlResult.d.ts +1 -0
  106. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpCallXmlResult.d.ts.map +1 -1
  107. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpUriCall.d.ts +1 -0
  108. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpUriCall.d.ts.map +1 -1
  109. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpUriTemplateCall.d.ts +1 -0
  110. package/dist/browser/modules/http-call-witness/Payload/identity/isHttpUriTemplateCall.d.ts.map +1 -1
  111. package/dist/browser/modules/http-call-witness/Payload/types/HttpCall.d.ts +2 -0
  112. package/dist/browser/modules/http-call-witness/Payload/types/HttpCall.d.ts.map +1 -1
  113. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallBase64Result.d.ts +1 -0
  114. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallBase64Result.d.ts.map +1 -1
  115. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallErrorResult.d.ts +1 -0
  116. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallErrorResult.d.ts.map +1 -1
  117. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallHtmlResult.d.ts +1 -0
  118. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallHtmlResult.d.ts.map +1 -1
  119. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallJsonResult.d.ts +3 -0
  120. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallJsonResult.d.ts.map +1 -1
  121. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallResult.d.ts +3 -0
  122. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallResult.d.ts.map +1 -1
  123. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallXmlResult.d.ts +1 -0
  124. package/dist/browser/modules/http-call-witness/Payload/types/HttpCallXmlResult.d.ts.map +1 -1
  125. package/dist/browser/modules/http-call-witness/Payload/types/HttpUriCall.d.ts +1 -0
  126. package/dist/browser/modules/http-call-witness/Payload/types/HttpUriCall.d.ts.map +1 -1
  127. package/dist/browser/modules/http-call-witness/Payload/types/HttpUriTemplateCall.d.ts +1 -0
  128. package/dist/browser/modules/http-call-witness/Payload/types/HttpUriTemplateCall.d.ts.map +1 -1
  129. package/dist/browser/modules/prometheus-node/Payload.d.ts +6 -0
  130. package/dist/browser/modules/prometheus-node/Payload.d.ts.map +1 -1
  131. package/dist/browser/modules/url-safety/Witness/Witness.d.ts +6 -0
  132. package/dist/browser/modules/url-safety/Witness/Witness.d.ts.map +1 -1
  133. package/dist/browser/modules/xml/Payload.d.ts +6 -0
  134. package/dist/browser/modules/xml/Payload.d.ts.map +1 -1
  135. package/dist/neutral/crypto-address-transaction-history.mjs +1 -1
  136. package/dist/neutral/crypto-address-transaction-history.mjs.map +2 -2
  137. package/dist/neutral/crypto-nft-collection-witness.mjs +2 -2
  138. package/dist/neutral/crypto-nft-collection-witness.mjs.map +1 -1
  139. package/dist/neutral/crypto-nft-witness-wallet.mjs +2 -2
  140. package/dist/neutral/crypto-nft-witness-wallet.mjs.map +1 -1
  141. package/dist/neutral/erc1822-witness.mjs +1 -1
  142. package/dist/neutral/erc1822-witness.mjs.map +1 -1
  143. package/dist/neutral/erc1967-witness.mjs +1 -1
  144. package/dist/neutral/erc1967-witness.mjs.map +1 -1
  145. package/dist/neutral/evm-call-witness.mjs +1 -1
  146. package/dist/neutral/evm-call-witness.mjs.map +1 -1
  147. package/dist/neutral/evm-contract-witness.mjs +1 -1
  148. package/dist/neutral/evm-contract-witness.mjs.map +1 -1
  149. package/dist/neutral/evm-events-witness.mjs +1 -1
  150. package/dist/neutral/evm-events-witness.mjs.map +1 -1
  151. package/dist/neutral/image-thumbnail.mjs +2 -2
  152. package/dist/neutral/image-thumbnail.mjs.map +2 -2
  153. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCall.d.ts +4 -0
  154. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCall.d.ts.map +1 -1
  155. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCallBase64Result.d.ts +2 -0
  156. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCallBase64Result.d.ts.map +1 -1
  157. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCallResult.d.ts +6 -0
  158. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCallResult.d.ts.map +1 -1
  159. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCallXmlResult.d.ts +2 -0
  160. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiCallXmlResult.d.ts.map +1 -1
  161. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiUriCall.d.ts +2 -0
  162. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiUriCall.d.ts.map +1 -1
  163. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiUriTemplateCall.d.ts +2 -0
  164. package/dist/neutral/modules/api-call-witness/Payload/identity/asApiUriTemplateCall.d.ts.map +1 -1
  165. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCall.d.ts +2 -0
  166. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCall.d.ts.map +1 -1
  167. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallBase64Result.d.ts +1 -0
  168. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallBase64Result.d.ts.map +1 -1
  169. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallErrorResult.d.ts +1 -0
  170. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallErrorResult.d.ts.map +1 -1
  171. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallResult.d.ts +3 -0
  172. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallResult.d.ts.map +1 -1
  173. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallXmlResult.d.ts +1 -0
  174. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiCallXmlResult.d.ts.map +1 -1
  175. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiUriCall.d.ts +1 -0
  176. package/dist/neutral/modules/api-call-witness/Payload/identity/isApiUriCall.d.ts.map +1 -1
  177. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCall.d.ts +2 -0
  178. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCall.d.ts.map +1 -1
  179. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallBase64Result.d.ts +1 -0
  180. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallBase64Result.d.ts.map +1 -1
  181. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallErrorResult.d.ts +1 -0
  182. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallErrorResult.d.ts.map +1 -1
  183. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallJsonResult.d.ts +3 -0
  184. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallJsonResult.d.ts.map +1 -1
  185. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallResult.d.ts +3 -0
  186. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallResult.d.ts.map +1 -1
  187. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallXmlResult.d.ts +1 -0
  188. package/dist/neutral/modules/api-call-witness/Payload/types/ApiCallXmlResult.d.ts.map +1 -1
  189. package/dist/neutral/modules/api-call-witness/Payload/types/ApiUriCall.d.ts +1 -0
  190. package/dist/neutral/modules/api-call-witness/Payload/types/ApiUriCall.d.ts.map +1 -1
  191. package/dist/neutral/modules/api-call-witness/Payload/types/ApiUriTemplateCall.d.ts +1 -0
  192. package/dist/neutral/modules/api-call-witness/Payload/types/ApiUriTemplateCall.d.ts.map +1 -1
  193. package/dist/neutral/modules/api-graphql/Witness.d.ts +11 -0
  194. package/dist/neutral/modules/api-graphql/Witness.d.ts.map +1 -1
  195. package/dist/neutral/modules/bowser-system-info/Witness.d.ts +1 -0
  196. package/dist/neutral/modules/bowser-system-info/Witness.d.ts.map +1 -1
  197. package/dist/neutral/modules/crypto-nft-collection-witness/Witness.d.ts +2 -2
  198. package/dist/neutral/modules/crypto-nft-collection-witness/Witness.d.ts.map +1 -1
  199. package/dist/neutral/modules/crypto-nft-witness-wallet/Witness.d.ts +2 -2
  200. package/dist/neutral/modules/crypto-nft-witness-wallet/Witness.d.ts.map +1 -1
  201. package/dist/neutral/modules/diviner-evm-call-result-to-token-uri/Payload.d.ts +1 -0
  202. package/dist/neutral/modules/diviner-evm-call-result-to-token-uri/Payload.d.ts.map +1 -1
  203. package/dist/neutral/modules/erc1822-witness/Payload.d.ts +6 -0
  204. package/dist/neutral/modules/erc1822-witness/Payload.d.ts.map +1 -1
  205. package/dist/neutral/modules/erc1822-witness/Witness.d.ts +2 -2
  206. package/dist/neutral/modules/erc1822-witness/Witness.d.ts.map +1 -1
  207. package/dist/neutral/modules/erc1967-witness/Payload.d.ts +6 -0
  208. package/dist/neutral/modules/erc1967-witness/Payload.d.ts.map +1 -1
  209. package/dist/neutral/modules/erc1967-witness/Witness.d.ts +2 -2
  210. package/dist/neutral/modules/erc1967-witness/Witness.d.ts.map +1 -1
  211. package/dist/neutral/modules/evm-abi-diviner/Payload.d.ts +6 -0
  212. package/dist/neutral/modules/evm-abi-diviner/Payload.d.ts.map +1 -1
  213. package/dist/neutral/modules/evm-call-witness/Diviner.d.ts +6 -0
  214. package/dist/neutral/modules/evm-call-witness/Diviner.d.ts.map +1 -1
  215. package/dist/neutral/modules/evm-call-witness/Payload.d.ts +31 -0
  216. package/dist/neutral/modules/evm-call-witness/Payload.d.ts.map +1 -1
  217. package/dist/neutral/modules/evm-call-witness/Witness.d.ts +1 -1
  218. package/dist/neutral/modules/evm-call-witness/Witness.d.ts.map +1 -1
  219. package/dist/neutral/modules/evm-call-witness/model.d.ts +1 -1
  220. package/dist/neutral/modules/evm-call-witness/model.d.ts.map +1 -1
  221. package/dist/neutral/modules/evm-contract-witness/Payload.d.ts +6 -0
  222. package/dist/neutral/modules/evm-contract-witness/Payload.d.ts.map +1 -1
  223. package/dist/neutral/modules/evm-contract-witness/Witness.d.ts +2 -2
  224. package/dist/neutral/modules/evm-contract-witness/Witness.d.ts.map +1 -1
  225. package/dist/neutral/modules/evm-events-witness/Payload.d.ts +12 -0
  226. package/dist/neutral/modules/evm-events-witness/Payload.d.ts.map +1 -1
  227. package/dist/neutral/modules/evm-events-witness/Witness.d.ts +1 -1
  228. package/dist/neutral/modules/evm-events-witness/Witness.d.ts.map +1 -1
  229. package/dist/neutral/modules/evm-events-witness/model.d.ts +1 -1
  230. package/dist/neutral/modules/evm-events-witness/model.d.ts.map +1 -1
  231. package/dist/neutral/modules/evm-token-interface-diviner/Payload.d.ts +6 -0
  232. package/dist/neutral/modules/evm-token-interface-diviner/Payload.d.ts.map +1 -1
  233. package/dist/neutral/modules/file-browser/BrowserFileWitness.d.ts +1 -0
  234. package/dist/neutral/modules/file-browser/BrowserFileWitness.d.ts.map +1 -1
  235. package/dist/neutral/modules/file-browser/Payload.d.ts +6 -0
  236. package/dist/neutral/modules/file-browser/Payload.d.ts.map +1 -1
  237. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCall.d.ts +4 -0
  238. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCall.d.ts.map +1 -1
  239. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCallBase64Result.d.ts +2 -0
  240. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCallBase64Result.d.ts.map +1 -1
  241. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCallResult.d.ts +6 -0
  242. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCallResult.d.ts.map +1 -1
  243. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCallXmlResult.d.ts +2 -0
  244. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpCallXmlResult.d.ts.map +1 -1
  245. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpUriCall.d.ts +2 -0
  246. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpUriCall.d.ts.map +1 -1
  247. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpUriTemplateCall.d.ts +2 -0
  248. package/dist/neutral/modules/http-call-witness/Payload/identity/asHttpUriTemplateCall.d.ts.map +1 -1
  249. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCall.d.ts +2 -0
  250. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCall.d.ts.map +1 -1
  251. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallBase64Result.d.ts +1 -0
  252. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallBase64Result.d.ts.map +1 -1
  253. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallErrorResult.d.ts +1 -0
  254. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallErrorResult.d.ts.map +1 -1
  255. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallResult.d.ts +3 -0
  256. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallResult.d.ts.map +1 -1
  257. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallXmlResult.d.ts +1 -0
  258. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpCallXmlResult.d.ts.map +1 -1
  259. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpUriCall.d.ts +1 -0
  260. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpUriCall.d.ts.map +1 -1
  261. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpUriTemplateCall.d.ts +1 -0
  262. package/dist/neutral/modules/http-call-witness/Payload/identity/isHttpUriTemplateCall.d.ts.map +1 -1
  263. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCall.d.ts +2 -0
  264. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCall.d.ts.map +1 -1
  265. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallBase64Result.d.ts +1 -0
  266. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallBase64Result.d.ts.map +1 -1
  267. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallErrorResult.d.ts +1 -0
  268. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallErrorResult.d.ts.map +1 -1
  269. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallHtmlResult.d.ts +1 -0
  270. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallHtmlResult.d.ts.map +1 -1
  271. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallJsonResult.d.ts +3 -0
  272. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallJsonResult.d.ts.map +1 -1
  273. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallResult.d.ts +3 -0
  274. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallResult.d.ts.map +1 -1
  275. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallXmlResult.d.ts +1 -0
  276. package/dist/neutral/modules/http-call-witness/Payload/types/HttpCallXmlResult.d.ts.map +1 -1
  277. package/dist/neutral/modules/http-call-witness/Payload/types/HttpUriCall.d.ts +1 -0
  278. package/dist/neutral/modules/http-call-witness/Payload/types/HttpUriCall.d.ts.map +1 -1
  279. package/dist/neutral/modules/http-call-witness/Payload/types/HttpUriTemplateCall.d.ts +1 -0
  280. package/dist/neutral/modules/http-call-witness/Payload/types/HttpUriTemplateCall.d.ts.map +1 -1
  281. package/dist/neutral/modules/prometheus-node/Payload.d.ts +6 -0
  282. package/dist/neutral/modules/prometheus-node/Payload.d.ts.map +1 -1
  283. package/dist/neutral/modules/url-safety/Witness/Witness.d.ts +6 -0
  284. package/dist/neutral/modules/url-safety/Witness/Witness.d.ts.map +1 -1
  285. package/dist/neutral/modules/xml/Payload.d.ts +6 -0
  286. package/dist/neutral/modules/xml/Payload.d.ts.map +1 -1
  287. package/dist/node/modules/api-call-witness/Payload/identity/asApiCall.d.ts +4 -0
  288. package/dist/node/modules/api-call-witness/Payload/identity/asApiCall.d.ts.map +1 -1
  289. package/dist/node/modules/api-call-witness/Payload/identity/asApiCallBase64Result.d.ts +2 -0
  290. package/dist/node/modules/api-call-witness/Payload/identity/asApiCallBase64Result.d.ts.map +1 -1
  291. package/dist/node/modules/api-call-witness/Payload/identity/asApiCallResult.d.ts +6 -0
  292. package/dist/node/modules/api-call-witness/Payload/identity/asApiCallResult.d.ts.map +1 -1
  293. package/dist/node/modules/api-call-witness/Payload/identity/asApiCallXmlResult.d.ts +2 -0
  294. package/dist/node/modules/api-call-witness/Payload/identity/asApiCallXmlResult.d.ts.map +1 -1
  295. package/dist/node/modules/api-call-witness/Payload/identity/asApiUriCall.d.ts +2 -0
  296. package/dist/node/modules/api-call-witness/Payload/identity/asApiUriCall.d.ts.map +1 -1
  297. package/dist/node/modules/api-call-witness/Payload/identity/asApiUriTemplateCall.d.ts +2 -0
  298. package/dist/node/modules/api-call-witness/Payload/identity/asApiUriTemplateCall.d.ts.map +1 -1
  299. package/dist/node/modules/api-call-witness/Payload/identity/isApiCall.d.ts +2 -0
  300. package/dist/node/modules/api-call-witness/Payload/identity/isApiCall.d.ts.map +1 -1
  301. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallBase64Result.d.ts +1 -0
  302. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallBase64Result.d.ts.map +1 -1
  303. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallErrorResult.d.ts +1 -0
  304. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallErrorResult.d.ts.map +1 -1
  305. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallResult.d.ts +3 -0
  306. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallResult.d.ts.map +1 -1
  307. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallXmlResult.d.ts +1 -0
  308. package/dist/node/modules/api-call-witness/Payload/identity/isApiCallXmlResult.d.ts.map +1 -1
  309. package/dist/node/modules/api-call-witness/Payload/identity/isApiUriCall.d.ts +1 -0
  310. package/dist/node/modules/api-call-witness/Payload/identity/isApiUriCall.d.ts.map +1 -1
  311. package/dist/node/modules/api-call-witness/Payload/types/ApiCall.d.ts +2 -0
  312. package/dist/node/modules/api-call-witness/Payload/types/ApiCall.d.ts.map +1 -1
  313. package/dist/node/modules/api-call-witness/Payload/types/ApiCallBase64Result.d.ts +1 -0
  314. package/dist/node/modules/api-call-witness/Payload/types/ApiCallBase64Result.d.ts.map +1 -1
  315. package/dist/node/modules/api-call-witness/Payload/types/ApiCallErrorResult.d.ts +1 -0
  316. package/dist/node/modules/api-call-witness/Payload/types/ApiCallErrorResult.d.ts.map +1 -1
  317. package/dist/node/modules/api-call-witness/Payload/types/ApiCallJsonResult.d.ts +3 -0
  318. package/dist/node/modules/api-call-witness/Payload/types/ApiCallJsonResult.d.ts.map +1 -1
  319. package/dist/node/modules/api-call-witness/Payload/types/ApiCallResult.d.ts +3 -0
  320. package/dist/node/modules/api-call-witness/Payload/types/ApiCallResult.d.ts.map +1 -1
  321. package/dist/node/modules/api-call-witness/Payload/types/ApiCallXmlResult.d.ts +1 -0
  322. package/dist/node/modules/api-call-witness/Payload/types/ApiCallXmlResult.d.ts.map +1 -1
  323. package/dist/node/modules/api-call-witness/Payload/types/ApiUriCall.d.ts +1 -0
  324. package/dist/node/modules/api-call-witness/Payload/types/ApiUriCall.d.ts.map +1 -1
  325. package/dist/node/modules/api-call-witness/Payload/types/ApiUriTemplateCall.d.ts +1 -0
  326. package/dist/node/modules/api-call-witness/Payload/types/ApiUriTemplateCall.d.ts.map +1 -1
  327. package/dist/node/modules/api-graphql/Witness.d.ts +11 -0
  328. package/dist/node/modules/api-graphql/Witness.d.ts.map +1 -1
  329. package/dist/node/modules/bowser-system-info/Witness.d.ts +1 -0
  330. package/dist/node/modules/bowser-system-info/Witness.d.ts.map +1 -1
  331. package/dist/node/modules/crypto-nft-collection-witness/Witness.d.ts +2 -2
  332. package/dist/node/modules/crypto-nft-collection-witness/Witness.d.ts.map +1 -1
  333. package/dist/node/modules/crypto-nft-witness-wallet/Witness.d.ts +2 -2
  334. package/dist/node/modules/crypto-nft-witness-wallet/Witness.d.ts.map +1 -1
  335. package/dist/node/modules/diviner-evm-call-result-to-token-uri/Payload.d.ts +1 -0
  336. package/dist/node/modules/diviner-evm-call-result-to-token-uri/Payload.d.ts.map +1 -1
  337. package/dist/node/modules/erc1822-witness/Payload.d.ts +6 -0
  338. package/dist/node/modules/erc1822-witness/Payload.d.ts.map +1 -1
  339. package/dist/node/modules/erc1822-witness/Witness.d.ts +2 -2
  340. package/dist/node/modules/erc1822-witness/Witness.d.ts.map +1 -1
  341. package/dist/node/modules/erc1967-witness/Payload.d.ts +6 -0
  342. package/dist/node/modules/erc1967-witness/Payload.d.ts.map +1 -1
  343. package/dist/node/modules/erc1967-witness/Witness.d.ts +2 -2
  344. package/dist/node/modules/erc1967-witness/Witness.d.ts.map +1 -1
  345. package/dist/node/modules/evm-abi-diviner/Payload.d.ts +6 -0
  346. package/dist/node/modules/evm-abi-diviner/Payload.d.ts.map +1 -1
  347. package/dist/node/modules/evm-call-witness/Diviner.d.ts +6 -0
  348. package/dist/node/modules/evm-call-witness/Diviner.d.ts.map +1 -1
  349. package/dist/node/modules/evm-call-witness/Payload.d.ts +31 -0
  350. package/dist/node/modules/evm-call-witness/Payload.d.ts.map +1 -1
  351. package/dist/node/modules/evm-call-witness/Witness.d.ts +1 -1
  352. package/dist/node/modules/evm-call-witness/Witness.d.ts.map +1 -1
  353. package/dist/node/modules/evm-call-witness/model.d.ts +1 -1
  354. package/dist/node/modules/evm-call-witness/model.d.ts.map +1 -1
  355. package/dist/node/modules/evm-contract-witness/Payload.d.ts +6 -0
  356. package/dist/node/modules/evm-contract-witness/Payload.d.ts.map +1 -1
  357. package/dist/node/modules/evm-contract-witness/Witness.d.ts +2 -2
  358. package/dist/node/modules/evm-contract-witness/Witness.d.ts.map +1 -1
  359. package/dist/node/modules/evm-events-witness/Payload.d.ts +12 -0
  360. package/dist/node/modules/evm-events-witness/Payload.d.ts.map +1 -1
  361. package/dist/node/modules/evm-events-witness/Witness.d.ts +1 -1
  362. package/dist/node/modules/evm-events-witness/Witness.d.ts.map +1 -1
  363. package/dist/node/modules/evm-events-witness/model.d.ts +1 -1
  364. package/dist/node/modules/evm-events-witness/model.d.ts.map +1 -1
  365. package/dist/node/modules/evm-token-interface-diviner/Payload.d.ts +6 -0
  366. package/dist/node/modules/evm-token-interface-diviner/Payload.d.ts.map +1 -1
  367. package/dist/node/modules/file-browser/BrowserFileWitness.d.ts +1 -0
  368. package/dist/node/modules/file-browser/BrowserFileWitness.d.ts.map +1 -1
  369. package/dist/node/modules/file-browser/Payload.d.ts +6 -0
  370. package/dist/node/modules/file-browser/Payload.d.ts.map +1 -1
  371. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCall.d.ts +4 -0
  372. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCall.d.ts.map +1 -1
  373. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCallBase64Result.d.ts +2 -0
  374. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCallBase64Result.d.ts.map +1 -1
  375. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCallResult.d.ts +6 -0
  376. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCallResult.d.ts.map +1 -1
  377. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCallXmlResult.d.ts +2 -0
  378. package/dist/node/modules/http-call-witness/Payload/identity/asHttpCallXmlResult.d.ts.map +1 -1
  379. package/dist/node/modules/http-call-witness/Payload/identity/asHttpUriCall.d.ts +2 -0
  380. package/dist/node/modules/http-call-witness/Payload/identity/asHttpUriCall.d.ts.map +1 -1
  381. package/dist/node/modules/http-call-witness/Payload/identity/asHttpUriTemplateCall.d.ts +2 -0
  382. package/dist/node/modules/http-call-witness/Payload/identity/asHttpUriTemplateCall.d.ts.map +1 -1
  383. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCall.d.ts +2 -0
  384. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCall.d.ts.map +1 -1
  385. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallBase64Result.d.ts +1 -0
  386. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallBase64Result.d.ts.map +1 -1
  387. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallErrorResult.d.ts +1 -0
  388. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallErrorResult.d.ts.map +1 -1
  389. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallResult.d.ts +3 -0
  390. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallResult.d.ts.map +1 -1
  391. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallXmlResult.d.ts +1 -0
  392. package/dist/node/modules/http-call-witness/Payload/identity/isHttpCallXmlResult.d.ts.map +1 -1
  393. package/dist/node/modules/http-call-witness/Payload/identity/isHttpUriCall.d.ts +1 -0
  394. package/dist/node/modules/http-call-witness/Payload/identity/isHttpUriCall.d.ts.map +1 -1
  395. package/dist/node/modules/http-call-witness/Payload/identity/isHttpUriTemplateCall.d.ts +1 -0
  396. package/dist/node/modules/http-call-witness/Payload/identity/isHttpUriTemplateCall.d.ts.map +1 -1
  397. package/dist/node/modules/http-call-witness/Payload/types/HttpCall.d.ts +2 -0
  398. package/dist/node/modules/http-call-witness/Payload/types/HttpCall.d.ts.map +1 -1
  399. package/dist/node/modules/http-call-witness/Payload/types/HttpCallBase64Result.d.ts +1 -0
  400. package/dist/node/modules/http-call-witness/Payload/types/HttpCallBase64Result.d.ts.map +1 -1
  401. package/dist/node/modules/http-call-witness/Payload/types/HttpCallErrorResult.d.ts +1 -0
  402. package/dist/node/modules/http-call-witness/Payload/types/HttpCallErrorResult.d.ts.map +1 -1
  403. package/dist/node/modules/http-call-witness/Payload/types/HttpCallHtmlResult.d.ts +1 -0
  404. package/dist/node/modules/http-call-witness/Payload/types/HttpCallHtmlResult.d.ts.map +1 -1
  405. package/dist/node/modules/http-call-witness/Payload/types/HttpCallJsonResult.d.ts +3 -0
  406. package/dist/node/modules/http-call-witness/Payload/types/HttpCallJsonResult.d.ts.map +1 -1
  407. package/dist/node/modules/http-call-witness/Payload/types/HttpCallResult.d.ts +3 -0
  408. package/dist/node/modules/http-call-witness/Payload/types/HttpCallResult.d.ts.map +1 -1
  409. package/dist/node/modules/http-call-witness/Payload/types/HttpCallXmlResult.d.ts +1 -0
  410. package/dist/node/modules/http-call-witness/Payload/types/HttpCallXmlResult.d.ts.map +1 -1
  411. package/dist/node/modules/http-call-witness/Payload/types/HttpUriCall.d.ts +1 -0
  412. package/dist/node/modules/http-call-witness/Payload/types/HttpUriCall.d.ts.map +1 -1
  413. package/dist/node/modules/http-call-witness/Payload/types/HttpUriTemplateCall.d.ts +1 -0
  414. package/dist/node/modules/http-call-witness/Payload/types/HttpUriTemplateCall.d.ts.map +1 -1
  415. package/dist/node/modules/prometheus-node/Payload.d.ts +6 -0
  416. package/dist/node/modules/prometheus-node/Payload.d.ts.map +1 -1
  417. package/dist/node/modules/url-safety/Witness/Witness.d.ts +6 -0
  418. package/dist/node/modules/url-safety/Witness/Witness.d.ts.map +1 -1
  419. package/dist/node/modules/xml/Payload.d.ts +6 -0
  420. package/dist/node/modules/xml/Payload.d.ts.map +1 -1
  421. package/package.json +39 -41
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/erc1822-witness/lib/getErc1822SlotStatus.ts", "../../src/modules/erc1822-witness/Payload.ts", "../../src/modules/erc1822-witness/Witness.ts"],
4
- "sourcesContent": ["import type { EthAddress } from '@ariestools/sdk'\nimport {\n asEthAddress, hexFromHexString, isHexZero,\n} from '@ariestools/sdk'\nimport type { Provider } from 'ethers'\nimport * as z from 'zod/mini'\n\nexport const ERC1822_PROXY_LOGIC_SLOT = '0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7'\n\nexport const Erc1822DataSlotsZod = z.object({ implementation: z.optional(z.custom<EthAddress>()) })\n\nexport type Erc1822DataSlots = z.infer<typeof Erc1822DataSlotsZod>\n\nexport const Erc1822SlotStatusZod = z.object({\n address: z.custom<EthAddress>(),\n implementation: z.custom<EthAddress>(),\n slots: Erc1822DataSlotsZod,\n})\n\nexport type Erc1822SlotStatus = z.infer<typeof Erc1822SlotStatusZod>\n\nconst readAddressFromSlot = async (provider: Provider, address: string, slot: string, block?: number) => {\n try {\n const slotValue = await provider.getStorage(address, slot, block)\n return asEthAddress(hexFromHexString(slotValue, { prefix: true }))\n } catch {\n return\n }\n}\n\nexport const getErc1822SlotStatus = async (provider: Provider, address: EthAddress, block?: number): Promise<Erc1822SlotStatus> => {\n const status: Erc1822SlotStatus = {\n address,\n implementation: address,\n slots: { implementation: await readAddressFromSlot(provider, address, ERC1822_PROXY_LOGIC_SLOT, block) },\n }\n\n if (status.slots.implementation != null && isHexZero(status.slots.implementation) !== true) {\n status.implementation = status.slots.implementation\n }\n\n return status\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nimport { Erc1822SlotStatusZod } from './lib/index.ts'\n\nexport const Erc1822StatusSchema = asSchema('network.xyo.erc1822.status', true)\nexport type Erc1822StatusSchema = typeof Erc1822StatusSchema\n\nexport const Erc1822StatusZod = z.extend(PayloadZodOfSchema(Erc1822StatusSchema), {\n address: z.string(),\n block: z.number(),\n chainId: z.number(),\n implementation: z.optional(Erc1822SlotStatusZod.shape.implementation),\n slots: z.optional(Erc1822SlotStatusZod.shape.slots),\n})\n\nexport type Erc1822Status = z.infer<typeof Erc1822StatusZod>\n\nexport const isErc1822Status = zodIsFactory(Erc1822StatusZod)\nexport const asErc1822Status = zodAsFactory(Erc1822StatusZod, 'asErc1822Status')\nexport const toErc1822Status = zodToFactory(Erc1822StatusZod, 'toErc1822Status')\n", "import { asEthAddress, assertEx } from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport type {\n EvmAddress,\n EvmWitnessConfig, EvmWitnessParams,\n} from '@xyo-network/witness-evm-abstract'\nimport { AbstractEvmWitness, EvmAddressSchema } from '@xyo-network/witness-evm-abstract'\n\nimport { getErc1822SlotStatus } from './lib/index.ts'\nimport type { Erc1822Status } from './Payload.ts'\nimport { Erc1822StatusSchema } from './Payload.ts'\n\nexport const Erc1822WitnessConfigSchema = asSchema('network.xyo.erc1822.witness.config', true)\nexport type Erc1822WitnessConfigSchema = typeof Erc1822WitnessConfigSchema\n\nexport type Erc1822WitnessConfig = EvmWitnessConfig<{ address?: string }, Erc1822WitnessConfigSchema>\n\nexport type Erc1822WitnessParams = EvmWitnessParams<Erc1822WitnessConfig>\n\nexport class Erc1822Witness<TParams extends Erc1822WitnessParams = Erc1822WitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmAddress,\n Erc1822Status\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, Erc1822WitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = Erc1822WitnessConfigSchema\n\n protected override async observeHandler(inPayloads: EvmAddress[] = []): Promise<Erc1822Status[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmAddress>(EvmAddressSchema)).map(async ({ address }) => {\n const validatedAddress = asEthAddress(assertEx(address ?? this.config.address, () => 'Missing address'), true)\n\n const provider = await this.getProvider(true, true)\n\n const block = await provider.getBlockNumber()\n\n const { implementation, slots } = await getErc1822SlotStatus(provider, validatedAddress, block)\n\n const network = await provider.getNetwork()\n const observation: Erc1822Status = {\n address: validatedAddress,\n block,\n chainId: Number(network.chainId),\n implementation,\n schema: Erc1822StatusSchema,\n slots,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
4
+ "sourcesContent": ["import type { EthAddress } from '@ariestools/sdk'\nimport {\n asEthAddress, hexFromHexString, isHexZero,\n} from '@ariestools/sdk'\nimport type { Provider } from 'ethers'\nimport * as z from 'zod/mini'\n\nexport const ERC1822_PROXY_LOGIC_SLOT = '0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7'\n\nexport const Erc1822DataSlotsZod = z.object({ implementation: z.optional(z.custom<EthAddress>()) })\n\nexport type Erc1822DataSlots = z.infer<typeof Erc1822DataSlotsZod>\n\nexport const Erc1822SlotStatusZod = z.object({\n address: z.custom<EthAddress>(),\n implementation: z.custom<EthAddress>(),\n slots: Erc1822DataSlotsZod,\n})\n\nexport type Erc1822SlotStatus = z.infer<typeof Erc1822SlotStatusZod>\n\nconst readAddressFromSlot = async (provider: Provider, address: string, slot: string, block?: number) => {\n try {\n const slotValue = await provider.getStorage(address, slot, block)\n return asEthAddress(hexFromHexString(slotValue, { prefix: true }))\n } catch {\n return\n }\n}\n\nexport const getErc1822SlotStatus = async (provider: Provider, address: EthAddress, block?: number): Promise<Erc1822SlotStatus> => {\n const status: Erc1822SlotStatus = {\n address,\n implementation: address,\n slots: { implementation: await readAddressFromSlot(provider, address, ERC1822_PROXY_LOGIC_SLOT, block) },\n }\n\n if (status.slots.implementation != null && isHexZero(status.slots.implementation) !== true) {\n status.implementation = status.slots.implementation\n }\n\n return status\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nimport { Erc1822SlotStatusZod } from './lib/index.ts'\n\nexport const Erc1822StatusSchema = asSchema('network.xyo.erc1822.status', true)\nexport type Erc1822StatusSchema = typeof Erc1822StatusSchema\n\nexport const Erc1822StatusZod = z.extend(PayloadZodOfSchema(Erc1822StatusSchema), {\n address: z.string(),\n block: z.number(),\n chainId: z.number(),\n implementation: z.optional(Erc1822SlotStatusZod.shape.implementation),\n slots: z.optional(Erc1822SlotStatusZod.shape.slots),\n})\n\nexport type Erc1822Status = z.infer<typeof Erc1822StatusZod>\n\nexport const isErc1822Status = zodIsFactory(Erc1822StatusZod)\nexport const asErc1822Status = zodAsFactory(Erc1822StatusZod, 'asErc1822Status')\nexport const toErc1822Status = zodToFactory(Erc1822StatusZod, 'toErc1822Status')\n", "import { asEthAddress, assertEx } from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport type {\n EvmAddress,\n EvmWitnessConfig, EvmWitnessParams,\n} from '@xyo-network/witness-evm'\nimport { AbstractEvmWitness, EvmAddressSchema } from '@xyo-network/witness-evm'\n\nimport { getErc1822SlotStatus } from './lib/index.ts'\nimport type { Erc1822Status } from './Payload.ts'\nimport { Erc1822StatusSchema } from './Payload.ts'\n\nexport const Erc1822WitnessConfigSchema = asSchema('network.xyo.erc1822.witness.config', true)\nexport type Erc1822WitnessConfigSchema = typeof Erc1822WitnessConfigSchema\n\nexport type Erc1822WitnessConfig = EvmWitnessConfig<{ address?: string }, Erc1822WitnessConfigSchema>\n\nexport type Erc1822WitnessParams = EvmWitnessParams<Erc1822WitnessConfig>\n\nexport class Erc1822Witness<TParams extends Erc1822WitnessParams = Erc1822WitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmAddress,\n Erc1822Status\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, Erc1822WitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = Erc1822WitnessConfigSchema\n\n protected override async observeHandler(inPayloads: EvmAddress[] = []): Promise<Erc1822Status[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmAddress>(EvmAddressSchema)).map(async ({ address }) => {\n const validatedAddress = asEthAddress(assertEx(address ?? this.config.address, () => 'Missing address'), true)\n\n const provider = await this.getProvider(true, true)\n\n const block = await provider.getBlockNumber()\n\n const { implementation, slots } = await getErc1822SlotStatus(provider, validatedAddress, block)\n\n const network = await provider.getNetwork()\n const observation: Erc1822Status = {\n address: validatedAddress,\n block,\n chainId: Number(network.chainId),\n implementation,\n schema: Erc1822StatusSchema,\n slots,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["z", "asEthAddress", "asSchema", "asSchema", "asEthAddress"]
7
7
  }
@@ -87,7 +87,7 @@ var toErc1967Status = zodToFactory(Erc1967StatusZod, "toErc1967Status");
87
87
  // src/modules/erc1967-witness/Witness.ts
88
88
  import { assertEx } from "@ariestools/sdk";
89
89
  import { asSchema as asSchema2, isPayloadOfSchemaType } from "@xyo-network/sdk";
90
- import { AbstractEvmWitness, EvmAddressSchema } from "@xyo-network/witness-evm-abstract";
90
+ import { AbstractEvmWitness, EvmAddressSchema } from "@xyo-network/witness-evm";
91
91
  var Erc1967WitnessConfigSchema = asSchema2("network.xyo.erc1967.witness.config", true);
92
92
  var Erc1967Witness = class extends AbstractEvmWitness {
93
93
  static configSchemas = [...super.configSchemas, Erc1967WitnessConfigSchema];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/erc1967-witness/lib/getErc1967SlotStatus.ts", "../../src/modules/erc1967-witness/Payload.ts", "../../src/modules/erc1967-witness/Witness.ts"],
4
- "sourcesContent": ["import type { Address, EthAddress } from '@ariestools/sdk'\nimport {\n asEthAddress, hexFromHexString, isHexZero,\n} from '@ariestools/sdk'\nimport { UpgradeableBeacon__factory } from '@xyo-network/open-zeppelin-typechain'\nimport type { Provider } from 'ethers'\nimport * as z from 'zod/mini'\n\nexport const ERC1967_PROXY_IMPLEMENTATION_STORAGE_SLOT = '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc' as EthAddress\nexport const ERC1967_PROXY_BEACON_STORAGE_SLOT = '0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50' as EthAddress\nexport const ERC1967_PROXY_ADMIN_STORAGE_SLOT = '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103' as EthAddress\nexport const ERC1967_PROXY_ROLLBACK_STORAGE_SLOT = '0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143' as EthAddress\n\nexport const Erc1967DataSlotsZod = z.object({\n admin: z.optional(z.custom<EthAddress>()),\n beacon: z.optional(z.custom<EthAddress>()),\n implementation: z.optional(z.custom<EthAddress>()),\n rollback: z.optional(z.custom<EthAddress>()),\n})\n\nexport type Erc1967DataSlots = z.infer<typeof Erc1967DataSlotsZod>\n\nexport const Erc1967SlotStatusZod = z.object({\n address: z.string(),\n beacon: z.optional(z.object({ implementation: z.optional(z.custom<Address>()) })),\n implementation: z.string(),\n slots: Erc1967DataSlotsZod,\n})\n\nexport type Erc1967SlotStatus = z.infer<typeof Erc1967SlotStatusZod>\n\nconst readAddressFromSlot = async (provider: Provider, address: string, slot: string, block?: number) => {\n try {\n const slotValue = await provider.getStorage(address, slot, block)\n return asEthAddress(hexFromHexString(slotValue, { prefix: true }))\n } catch {\n return\n }\n}\n\nexport const getErc1967SlotStatus = async (provider: Provider, address: string, block?: number): Promise<Erc1967SlotStatus> => {\n const status: Erc1967SlotStatus = {\n address,\n implementation: address,\n slots: {\n admin: await readAddressFromSlot(provider, address, ERC1967_PROXY_ADMIN_STORAGE_SLOT, block),\n beacon: await readAddressFromSlot(provider, address, ERC1967_PROXY_BEACON_STORAGE_SLOT, block),\n implementation: await readAddressFromSlot(provider, address, ERC1967_PROXY_IMPLEMENTATION_STORAGE_SLOT, block),\n rollback: await readAddressFromSlot(provider, address, ERC1967_PROXY_ROLLBACK_STORAGE_SLOT, block),\n },\n }\n\n if (status.slots.implementation != null && isHexZero(status.slots.implementation) === false) {\n status.implementation = `0x${BigInt(status.slots.implementation)\n .toString(16)\n .padStart(40, '0')}`\n } else {\n if (status.slots.beacon != null && isHexZero(status.slots.beacon) === false) {\n const beacon = UpgradeableBeacon__factory.connect(status.slots.beacon, { provider })\n try {\n const implementation = (await beacon.implementation(block != null && block !== 0 ? { blockTag: block } : {})) as Address\n if (implementation.length > 0) {\n status.beacon = { implementation }\n if (isHexZero(implementation) === false) {\n status.implementation = implementation\n }\n }\n } catch (ex) {\n const error = ex as Error\n console.log(error.message)\n }\n }\n }\n\n return status\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nimport { Erc1967DataSlotsZod, Erc1967SlotStatusZod } from './lib/index.ts'\n\nexport const Erc1967StatusSchema = asSchema('network.xyo.erc1967.status', true)\nexport type Erc1967StatusSchema = typeof Erc1967StatusSchema\n\nexport const Erc1967StatusZod = z.extend(PayloadZodOfSchema(Erc1967StatusSchema), {\n address: z.string(),\n beacon: Erc1967SlotStatusZod.shape.beacon,\n block: z.number(),\n chainId: z.number(),\n implementation: z.optional(Erc1967SlotStatusZod.shape.implementation),\n slots: z.optional(Erc1967DataSlotsZod),\n})\n\nexport type Erc1967Status = z.infer<typeof Erc1967StatusZod>\n\nexport const isErc1967Status = zodIsFactory(Erc1967StatusZod)\nexport const asErc1967Status = zodAsFactory(Erc1967StatusZod, 'asErc1967Status')\nexport const toErc1967Status = zodToFactory(Erc1967StatusZod, 'toErc1967Status')\n", "import { assertEx } from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport type {\n EvmAddress,\n EvmWitnessConfig, EvmWitnessParams,\n} from '@xyo-network/witness-evm-abstract'\nimport { AbstractEvmWitness, EvmAddressSchema } from '@xyo-network/witness-evm-abstract'\n\nimport { getErc1967SlotStatus } from './lib/index.ts'\nimport type { Erc1967Status } from './Payload.ts'\nimport { Erc1967StatusSchema } from './Payload.ts'\n\nexport const Erc1967WitnessConfigSchema = asSchema('network.xyo.erc1967.witness.config', true)\nexport type Erc1967WitnessConfigSchema = typeof Erc1967WitnessConfigSchema\n\nexport type Erc1967WitnessConfig = EvmWitnessConfig<{ address?: string }, Erc1967WitnessConfigSchema>\n\nexport type Erc1967WitnessParams = EvmWitnessParams<Erc1967WitnessConfig>\n\nexport class Erc1967Witness<TParams extends Erc1967WitnessParams = Erc1967WitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmAddress,\n Erc1967Status\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, Erc1967WitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = Erc1967WitnessConfigSchema\n\n protected override async observeHandler(inPayloads: EvmAddress[] = []): Promise<Erc1967Status[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmAddress>(EvmAddressSchema)).map(async ({ address }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address').toLowerCase()\n\n const provider = await this.getProvider(true, true)\n\n const block = await provider.getBlockNumber()\n\n const {\n beacon, implementation, slots,\n } = await getErc1967SlotStatus(provider, validatedAddress, block)\n\n const network = await provider.getNetwork()\n\n const observation: Erc1967Status = {\n address: validatedAddress,\n beacon,\n block,\n chainId: Number(network.chainId),\n implementation,\n schema: Erc1967StatusSchema,\n slots,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
4
+ "sourcesContent": ["import type { Address, EthAddress } from '@ariestools/sdk'\nimport {\n asEthAddress, hexFromHexString, isHexZero,\n} from '@ariestools/sdk'\nimport { UpgradeableBeacon__factory } from '@xyo-network/open-zeppelin-typechain'\nimport type { Provider } from 'ethers'\nimport * as z from 'zod/mini'\n\nexport const ERC1967_PROXY_IMPLEMENTATION_STORAGE_SLOT = '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc' as EthAddress\nexport const ERC1967_PROXY_BEACON_STORAGE_SLOT = '0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50' as EthAddress\nexport const ERC1967_PROXY_ADMIN_STORAGE_SLOT = '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103' as EthAddress\nexport const ERC1967_PROXY_ROLLBACK_STORAGE_SLOT = '0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143' as EthAddress\n\nexport const Erc1967DataSlotsZod = z.object({\n admin: z.optional(z.custom<EthAddress>()),\n beacon: z.optional(z.custom<EthAddress>()),\n implementation: z.optional(z.custom<EthAddress>()),\n rollback: z.optional(z.custom<EthAddress>()),\n})\n\nexport type Erc1967DataSlots = z.infer<typeof Erc1967DataSlotsZod>\n\nexport const Erc1967SlotStatusZod = z.object({\n address: z.string(),\n beacon: z.optional(z.object({ implementation: z.optional(z.custom<Address>()) })),\n implementation: z.string(),\n slots: Erc1967DataSlotsZod,\n})\n\nexport type Erc1967SlotStatus = z.infer<typeof Erc1967SlotStatusZod>\n\nconst readAddressFromSlot = async (provider: Provider, address: string, slot: string, block?: number) => {\n try {\n const slotValue = await provider.getStorage(address, slot, block)\n return asEthAddress(hexFromHexString(slotValue, { prefix: true }))\n } catch {\n return\n }\n}\n\nexport const getErc1967SlotStatus = async (provider: Provider, address: string, block?: number): Promise<Erc1967SlotStatus> => {\n const status: Erc1967SlotStatus = {\n address,\n implementation: address,\n slots: {\n admin: await readAddressFromSlot(provider, address, ERC1967_PROXY_ADMIN_STORAGE_SLOT, block),\n beacon: await readAddressFromSlot(provider, address, ERC1967_PROXY_BEACON_STORAGE_SLOT, block),\n implementation: await readAddressFromSlot(provider, address, ERC1967_PROXY_IMPLEMENTATION_STORAGE_SLOT, block),\n rollback: await readAddressFromSlot(provider, address, ERC1967_PROXY_ROLLBACK_STORAGE_SLOT, block),\n },\n }\n\n if (status.slots.implementation != null && isHexZero(status.slots.implementation) === false) {\n status.implementation = `0x${BigInt(status.slots.implementation)\n .toString(16)\n .padStart(40, '0')}`\n } else {\n if (status.slots.beacon != null && isHexZero(status.slots.beacon) === false) {\n const beacon = UpgradeableBeacon__factory.connect(status.slots.beacon, { provider })\n try {\n const implementation = (await beacon.implementation(block != null && block !== 0 ? { blockTag: block } : {})) as Address\n if (implementation.length > 0) {\n status.beacon = { implementation }\n if (isHexZero(implementation) === false) {\n status.implementation = implementation\n }\n }\n } catch (ex) {\n const error = ex as Error\n console.log(error.message)\n }\n }\n }\n\n return status\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nimport { Erc1967DataSlotsZod, Erc1967SlotStatusZod } from './lib/index.ts'\n\nexport const Erc1967StatusSchema = asSchema('network.xyo.erc1967.status', true)\nexport type Erc1967StatusSchema = typeof Erc1967StatusSchema\n\nexport const Erc1967StatusZod = z.extend(PayloadZodOfSchema(Erc1967StatusSchema), {\n address: z.string(),\n beacon: Erc1967SlotStatusZod.shape.beacon,\n block: z.number(),\n chainId: z.number(),\n implementation: z.optional(Erc1967SlotStatusZod.shape.implementation),\n slots: z.optional(Erc1967DataSlotsZod),\n})\n\nexport type Erc1967Status = z.infer<typeof Erc1967StatusZod>\n\nexport const isErc1967Status = zodIsFactory(Erc1967StatusZod)\nexport const asErc1967Status = zodAsFactory(Erc1967StatusZod, 'asErc1967Status')\nexport const toErc1967Status = zodToFactory(Erc1967StatusZod, 'toErc1967Status')\n", "import { assertEx } from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport type {\n EvmAddress,\n EvmWitnessConfig, EvmWitnessParams,\n} from '@xyo-network/witness-evm'\nimport { AbstractEvmWitness, EvmAddressSchema } from '@xyo-network/witness-evm'\n\nimport { getErc1967SlotStatus } from './lib/index.ts'\nimport type { Erc1967Status } from './Payload.ts'\nimport { Erc1967StatusSchema } from './Payload.ts'\n\nexport const Erc1967WitnessConfigSchema = asSchema('network.xyo.erc1967.witness.config', true)\nexport type Erc1967WitnessConfigSchema = typeof Erc1967WitnessConfigSchema\n\nexport type Erc1967WitnessConfig = EvmWitnessConfig<{ address?: string }, Erc1967WitnessConfigSchema>\n\nexport type Erc1967WitnessParams = EvmWitnessParams<Erc1967WitnessConfig>\n\nexport class Erc1967Witness<TParams extends Erc1967WitnessParams = Erc1967WitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmAddress,\n Erc1967Status\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, Erc1967WitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = Erc1967WitnessConfigSchema\n\n protected override async observeHandler(inPayloads: EvmAddress[] = []): Promise<Erc1967Status[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmAddress>(EvmAddressSchema)).map(async ({ address }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address').toLowerCase()\n\n const provider = await this.getProvider(true, true)\n\n const block = await provider.getBlockNumber()\n\n const {\n beacon, implementation, slots,\n } = await getErc1967SlotStatus(provider, validatedAddress, block)\n\n const network = await provider.getNetwork()\n\n const observation: Erc1967Status = {\n address: validatedAddress,\n beacon,\n block,\n chainId: Number(network.chainId),\n implementation,\n schema: Erc1967StatusSchema,\n slots,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["z", "asSchema", "asSchema"]
7
7
  }
@@ -137,7 +137,7 @@ import {
137
137
  isHexZero
138
138
  } from "@ariestools/sdk";
139
139
  import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/sdk";
140
- import { AbstractEvmWitness } from "@xyo-network/witness-evm-abstract";
140
+ import { AbstractEvmWitness } from "@xyo-network/witness-evm";
141
141
  import { Contract } from "ethers";
142
142
  import { getErc1822SlotStatus } from "#erc1822-witness";
143
143
  import { getErc1967SlotStatus } from "#erc1967-witness";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/evm-call-witness/Diviner.ts", "../../src/modules/evm-call-witness/Labels.ts", "../../src/modules/evm-call-witness/Payload.ts", "../../src/modules/evm-call-witness/model.ts", "../../src/modules/evm-call-witness/Witness.ts"],
4
- "sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport {\n assertEx, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n DivinerConfig, DivinerParams, Payload, Schema,\n} from '@xyo-network/sdk'\nimport {\n AbstractDiviner, asSchema, isPayloadOfSchemaType, PayloadZodOfSchema,\n} from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nimport { EvmCallDivinerLabels } from './Labels.ts'\nimport type { EvmCallResult } from './Payload.ts'\nimport { asEvmCallSuccess, EvmCallResultSchema } from './Payload.ts'\n\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\nexport const EvmCallDivinerConfigSchema = asSchema('network.xyo.evm.call.diviner.config', true)\nexport type EvmCallDivinerConfigSchema = typeof EvmCallDivinerConfigSchema\n\nexport type EvmCallDivinerConfig = DivinerConfig<{\n schema: EvmCallDivinerConfigSchema\n}>\nexport type EvmCallDivinerParams = DivinerParams<EvmCallDivinerConfig>\n\nexport const EvmCallResultsSchema = asSchema('network.xyo.evm.call.results', true)\nexport type EvmCallResultsSchema = typeof EvmCallResultsSchema\n\nexport const EvmCallResultsEntryZod = z.object({\n args: z.optional(z.array(z.unknown())),\n result: z.unknown(),\n})\n\nexport type EvmCallResultsEntry = z.infer<typeof EvmCallResultsEntryZod>\n\nexport const EvmCallResultsZod = z.extend(PayloadZodOfSchema(EvmCallResultsSchema), {\n address: z.string(),\n chainId: z.number(),\n results: z.optional(z.record(z.string(), EvmCallResultsEntryZod)),\n})\n\nexport type EvmCallResults = z.infer<typeof EvmCallResultsZod>\n\nexport const isEvmCallResults = zodIsFactory(EvmCallResultsZod)\nexport const asEvmCallResults = zodAsFactory(EvmCallResultsZod, 'asEvmCallResults')\nexport const toEvmCallResults = zodToFactory(EvmCallResultsZod, 'toEvmCallResults')\n\nexport class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallDivinerConfigSchema\n static override readonly labels: EvmCallDivinerLabels = { ...super.labels, ...EvmCallDivinerLabels }\n\n protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: EvmCallResult[]): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asEvmCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: EvmCallResult[]): EvmCallResults {\n return {\n address: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: EvmCallResultsSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: EvmCallResult[] = []): Promise<EvmCallResults[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<EvmCallResult>(EvmCallResultSchema))\n const addresses = Object.keys(\n\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const results: EvmCallResults = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return results\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: EvmCallResult[]): Promisable<EvmCallResults['results']> {\n return callResults.reduce<\n Record<\n string,\n {\n args?: unknown[]\n result: unknown\n }\n >\n >((prev, callResult) => {\n const typedCallResult = asEvmCallSuccess(callResult)\n if (typedCallResult) {\n prev[callResult.functionName] = { args: typedCallResult.args, result: typedCallResult?.result }\n }\n return prev\n }, {})\n }\n}\n", "import type { Labels } from '@xyo-network/sdk'\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport interface EvmCallDivinerLabels extends Labels {\n 'network.xyo.crypto.contract.info': 'diviner'\n}\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport const EvmCallDivinerLabels: EvmCallDivinerLabels = { 'network.xyo.crypto.contract.info': 'diviner' }\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nexport const EvmCallSchema = asSchema('network.xyo.evm.call', true)\nexport type EvmCallSchema = typeof EvmCallSchema\n\nexport const EvmCallZod = z.extend(PayloadZodOfSchema(EvmCallSchema), {\n address: z.optional(z.string()),\n args: z.optional(z.array(z.unknown())),\n block: z.optional(z.number()),\n functionName: z.optional(z.string()),\n})\n\nexport type EvmCall = z.infer<typeof EvmCallZod>\n\nexport const isEvmCall = zodIsFactory(EvmCallZod)\nexport const asEvmCall = zodAsFactory(EvmCallZod, 'asEvmCall')\nexport const toEvmCall = zodToFactory(EvmCallZod, 'toEvmCall')\n\nexport const EvmCallResultSchema = asSchema('network.xyo.evm.call.result', true)\nexport type EvmCallResultSchema = typeof EvmCallResultSchema\n\nexport const EvmCallResultBaseZod = z.extend(PayloadZodOfSchema(EvmCallResultSchema), {\n address: z.string(),\n args: z.array(z.unknown()),\n block: z.optional(z.number()),\n chainId: z.number(),\n functionName: z.string(),\n implementation: z.optional(z.string()),\n})\n\nexport type EvmCallResultBase = z.infer<typeof EvmCallResultBaseZod>\n\nexport const EvmCallSuccessZod = z\n .extend(EvmCallResultBaseZod, { result: z.unknown() })\n .check(z.refine(value => (value as { result?: unknown }).result !== undefined))\n\nexport type EvmCallSuccess = EvmCallResultBase & {\n result: unknown\n}\n\nexport const EvmCallFailureZod = z\n .extend(EvmCallResultBaseZod, { error: z.string() })\n .check(z.refine(value => (value as { error?: unknown }).error !== undefined))\n\nexport type EvmCallFailure = EvmCallResultBase & {\n error: string\n}\n\nexport const EvmCallResultZod = z.union([EvmCallSuccessZod, EvmCallFailureZod])\n\nexport type EvmCallResult = EvmCallSuccess | EvmCallFailure\n\nexport const isEvmCallResult = zodIsFactory(EvmCallResultZod)\nexport const asEvmCallResult = zodAsFactory(EvmCallResultZod, 'asEvmCallResult')\nexport const toEvmCallResult = zodToFactory(EvmCallResultZod, 'toEvmCallResult')\n\nexport const isEvmCallSuccess = zodIsFactory(EvmCallSuccessZod)\nexport const asEvmCallSuccess = zodAsFactory(EvmCallSuccessZod, 'asEvmCallSuccess')\nexport const toEvmCallSuccess = zodToFactory(EvmCallSuccessZod, 'toEvmCallSuccess')\n\nexport const isEvmCallFailure = zodIsFactory(EvmCallFailureZod)\nexport const asEvmCallFailure = zodAsFactory(EvmCallFailureZod, 'asEvmCallFailure')\nexport const toEvmCallFailure = zodToFactory(EvmCallFailureZod, 'toEvmCallFailure')\n", "import { asSchema } from '@xyo-network/sdk'\nimport type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport type { JsonFragment } from 'ethers'\n\nexport type Abi = string | readonly (JsonFragment | string)[]\n\nexport const EvmCallWitnessConfigSchema = asSchema('network.xyo.evm.call.witness.config', true)\nexport type EvmCallWitnessConfigSchema = typeof EvmCallWitnessConfigSchema\n\nexport type EvmCallWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n args?: unknown[]\n block?: number\n functionName?: string\n },\n EvmCallWitnessConfigSchema\n>\n\nexport type EvmCallWitnessParams = EvmWitnessParams<EvmCallWitnessConfig>\n", "import type { JsonObject } from '@ariestools/sdk'\nimport {\n asEthAddress, assertEx, isHexZero,\n} from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport type { InterfaceAbi } from 'ethers'\nimport { Contract } from 'ethers'\n\nimport { getErc1822SlotStatus } from '#erc1822-witness'\nimport { getErc1967SlotStatus } from '#erc1967-witness'\n\nimport type { EvmCallWitnessParams } from './model.ts'\nimport { EvmCallWitnessConfigSchema } from './model.ts'\nimport type {\n EvmCall, EvmCallResult,\n EvmCallSuccess,\n} from './Payload.ts'\nimport { EvmCallResultSchema, EvmCallSchema } from './Payload.ts'\n\nexport class EvmCallWitness<TParams extends EvmCallWitnessParams = EvmCallWitnessParams> extends AbstractEvmWitness<TParams, EvmCall, EvmCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi') as InterfaceAbi\n }\n\n protected override async observeHandler(inPayloads: EvmCall[] = []): Promise<EvmCallResult[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmCall>(EvmCallSchema)).map(async ({\n functionName, args, address, block: payloadBlock,\n }) => {\n const validatedAddress = asEthAddress(assertEx(address ?? this.config.address, () => 'Missing address'), true)\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])] as JsonObject[]\n\n const provider = await this.getProvider(true, true)\n\n const block = this.config.block ?? payloadBlock ?? (await provider.getBlockNumber())\n\n // Check if ERC-1967 Upgradeable\n const erc1967Status = await getErc1967SlotStatus(provider, validatedAddress, block)\n\n // Check if ERC-1822 Upgradeable\n const erc1822Status = await getErc1822SlotStatus(provider, validatedAddress, block)\n\n const implementation = (isHexZero(erc1967Status.slots.implementation ?? '0x00') === true ? erc1822Status : erc1967Status).implementation\n\n const contract = new Contract(implementation, this.abi, provider)\n let transformedResult: unknown\n try {\n const result: unknown = await contract[validatedFunctionName](...mergedArgs)\n transformedResult = typeof result === 'bigint' ? `0x${result.toString(16)}` : result\n } catch {\n // const error = ex as Error & { code: string }\n // this.logger.error(`Error [${this.config.name}]: ${error.code} : ${error.message}`)\n }\n const network = await provider.getNetwork()\n const observation: EvmCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n block,\n chainId: Number(network.chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: EvmCallResultSchema,\n }\n if (implementation !== validatedAddress) {\n observation.implementation = implementation\n }\n // console.log(`observation: ${JSON.stringify(observation, null, 2)}`)\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
4
+ "sourcesContent": ["import type { Promisable } from '@ariestools/sdk'\nimport {\n assertEx, zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport type {\n DivinerConfig, DivinerParams, Payload, Schema,\n} from '@xyo-network/sdk'\nimport {\n AbstractDiviner, asSchema, isPayloadOfSchemaType, PayloadZodOfSchema,\n} from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nimport { EvmCallDivinerLabels } from './Labels.ts'\nimport type { EvmCallResult } from './Payload.ts'\nimport { asEvmCallSuccess, EvmCallResultSchema } from './Payload.ts'\n\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\nexport const EvmCallDivinerConfigSchema = asSchema('network.xyo.evm.call.diviner.config', true)\nexport type EvmCallDivinerConfigSchema = typeof EvmCallDivinerConfigSchema\n\nexport type EvmCallDivinerConfig = DivinerConfig<{\n schema: EvmCallDivinerConfigSchema\n}>\nexport type EvmCallDivinerParams = DivinerParams<EvmCallDivinerConfig>\n\nexport const EvmCallResultsSchema = asSchema('network.xyo.evm.call.results', true)\nexport type EvmCallResultsSchema = typeof EvmCallResultsSchema\n\nexport const EvmCallResultsEntryZod = z.object({\n args: z.optional(z.array(z.unknown())),\n result: z.unknown(),\n})\n\nexport type EvmCallResultsEntry = z.infer<typeof EvmCallResultsEntryZod>\n\nexport const EvmCallResultsZod = z.extend(PayloadZodOfSchema(EvmCallResultsSchema), {\n address: z.string(),\n chainId: z.number(),\n results: z.optional(z.record(z.string(), EvmCallResultsEntryZod)),\n})\n\nexport type EvmCallResults = z.infer<typeof EvmCallResultsZod>\n\nexport const isEvmCallResults = zodIsFactory(EvmCallResultsZod)\nexport const asEvmCallResults = zodAsFactory(EvmCallResultsZod, 'asEvmCallResults')\nexport const toEvmCallResults = zodToFactory(EvmCallResultsZod, 'toEvmCallResults')\n\nexport class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallDivinerConfigSchema\n static override readonly labels: EvmCallDivinerLabels = { ...super.labels, ...EvmCallDivinerLabels }\n\n protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: EvmCallResult[]): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asEvmCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: EvmCallResult[]): EvmCallResults {\n return {\n address: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(EvmCallDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: EvmCallResultsSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: EvmCallResult[] = []): Promise<EvmCallResults[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<EvmCallResult>(EvmCallResultSchema))\n const addresses = Object.keys(\n\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const results: EvmCallResults = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return results\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: EvmCallResult[]): Promisable<EvmCallResults['results']> {\n return callResults.reduce<\n Record<\n string,\n {\n args?: unknown[]\n result: unknown\n }\n >\n >((prev, callResult) => {\n const typedCallResult = asEvmCallSuccess(callResult)\n if (typedCallResult) {\n prev[callResult.functionName] = { args: typedCallResult.args, result: typedCallResult?.result }\n }\n return prev\n }, {})\n }\n}\n", "import type { Labels } from '@xyo-network/sdk'\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport interface EvmCallDivinerLabels extends Labels {\n 'network.xyo.crypto.contract.info': 'diviner'\n}\n\n/**\n * Labels for Crypto Contract Diviner components\n */\nexport const EvmCallDivinerLabels: EvmCallDivinerLabels = { 'network.xyo.crypto.contract.info': 'diviner' }\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nexport const EvmCallSchema = asSchema('network.xyo.evm.call', true)\nexport type EvmCallSchema = typeof EvmCallSchema\n\nexport const EvmCallZod = z.extend(PayloadZodOfSchema(EvmCallSchema), {\n address: z.optional(z.string()),\n args: z.optional(z.array(z.unknown())),\n block: z.optional(z.number()),\n functionName: z.optional(z.string()),\n})\n\nexport type EvmCall = z.infer<typeof EvmCallZod>\n\nexport const isEvmCall = zodIsFactory(EvmCallZod)\nexport const asEvmCall = zodAsFactory(EvmCallZod, 'asEvmCall')\nexport const toEvmCall = zodToFactory(EvmCallZod, 'toEvmCall')\n\nexport const EvmCallResultSchema = asSchema('network.xyo.evm.call.result', true)\nexport type EvmCallResultSchema = typeof EvmCallResultSchema\n\nexport const EvmCallResultBaseZod = z.extend(PayloadZodOfSchema(EvmCallResultSchema), {\n address: z.string(),\n args: z.array(z.unknown()),\n block: z.optional(z.number()),\n chainId: z.number(),\n functionName: z.string(),\n implementation: z.optional(z.string()),\n})\n\nexport type EvmCallResultBase = z.infer<typeof EvmCallResultBaseZod>\n\nexport const EvmCallSuccessZod = z\n .extend(EvmCallResultBaseZod, { result: z.unknown() })\n .check(z.refine(value => (value as { result?: unknown }).result !== undefined))\n\nexport type EvmCallSuccess = EvmCallResultBase & {\n result: unknown\n}\n\nexport const EvmCallFailureZod = z\n .extend(EvmCallResultBaseZod, { error: z.string() })\n .check(z.refine(value => (value as { error?: unknown }).error !== undefined))\n\nexport type EvmCallFailure = EvmCallResultBase & {\n error: string\n}\n\nexport const EvmCallResultZod = z.union([EvmCallSuccessZod, EvmCallFailureZod])\n\nexport type EvmCallResult = EvmCallSuccess | EvmCallFailure\n\nexport const isEvmCallResult = zodIsFactory(EvmCallResultZod)\nexport const asEvmCallResult = zodAsFactory(EvmCallResultZod, 'asEvmCallResult')\nexport const toEvmCallResult = zodToFactory(EvmCallResultZod, 'toEvmCallResult')\n\nexport const isEvmCallSuccess = zodIsFactory(EvmCallSuccessZod)\nexport const asEvmCallSuccess = zodAsFactory(EvmCallSuccessZod, 'asEvmCallSuccess')\nexport const toEvmCallSuccess = zodToFactory(EvmCallSuccessZod, 'toEvmCallSuccess')\n\nexport const isEvmCallFailure = zodIsFactory(EvmCallFailureZod)\nexport const asEvmCallFailure = zodAsFactory(EvmCallFailureZod, 'asEvmCallFailure')\nexport const toEvmCallFailure = zodToFactory(EvmCallFailureZod, 'toEvmCallFailure')\n", "import { asSchema } from '@xyo-network/sdk'\nimport type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm'\nimport type { JsonFragment } from 'ethers'\n\nexport type Abi = string | readonly (JsonFragment | string)[]\n\nexport const EvmCallWitnessConfigSchema = asSchema('network.xyo.evm.call.witness.config', true)\nexport type EvmCallWitnessConfigSchema = typeof EvmCallWitnessConfigSchema\n\nexport type EvmCallWitnessConfig = EvmWitnessConfig<\n {\n abi?: Abi\n address?: string\n args?: unknown[]\n block?: number\n functionName?: string\n },\n EvmCallWitnessConfigSchema\n>\n\nexport type EvmCallWitnessParams = EvmWitnessParams<EvmCallWitnessConfig>\n", "import type { JsonObject } from '@ariestools/sdk'\nimport {\n asEthAddress, assertEx, isHexZero,\n} from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm'\nimport type { InterfaceAbi } from 'ethers'\nimport { Contract } from 'ethers'\n\nimport { getErc1822SlotStatus } from '#erc1822-witness'\nimport { getErc1967SlotStatus } from '#erc1967-witness'\n\nimport type { EvmCallWitnessParams } from './model.ts'\nimport { EvmCallWitnessConfigSchema } from './model.ts'\nimport type {\n EvmCall, EvmCallResult,\n EvmCallSuccess,\n} from './Payload.ts'\nimport { EvmCallResultSchema, EvmCallSchema } from './Payload.ts'\n\nexport class EvmCallWitness<TParams extends EvmCallWitnessParams = EvmCallWitnessParams> extends AbstractEvmWitness<TParams, EvmCall, EvmCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmCallWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmCallWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi') as InterfaceAbi\n }\n\n protected override async observeHandler(inPayloads: EvmCall[] = []): Promise<EvmCallResult[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmCall>(EvmCallSchema)).map(async ({\n functionName, args, address, block: payloadBlock,\n }) => {\n const validatedAddress = asEthAddress(assertEx(address ?? this.config.address, () => 'Missing address'), true)\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])] as JsonObject[]\n\n const provider = await this.getProvider(true, true)\n\n const block = this.config.block ?? payloadBlock ?? (await provider.getBlockNumber())\n\n // Check if ERC-1967 Upgradeable\n const erc1967Status = await getErc1967SlotStatus(provider, validatedAddress, block)\n\n // Check if ERC-1822 Upgradeable\n const erc1822Status = await getErc1822SlotStatus(provider, validatedAddress, block)\n\n const implementation = (isHexZero(erc1967Status.slots.implementation ?? '0x00') === true ? erc1822Status : erc1967Status).implementation\n\n const contract = new Contract(implementation, this.abi, provider)\n let transformedResult: unknown\n try {\n const result: unknown = await contract[validatedFunctionName](...mergedArgs)\n transformedResult = typeof result === 'bigint' ? `0x${result.toString(16)}` : result\n } catch {\n // const error = ex as Error & { code: string }\n // this.logger.error(`Error [${this.config.name}]: ${error.code} : ${error.message}`)\n }\n const network = await provider.getNetwork()\n const observation: EvmCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n block,\n chainId: Number(network.chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: EvmCallResultSchema,\n }\n if (implementation !== validatedAddress) {\n observation.implementation = implementation\n }\n // console.log(`observation: ${JSON.stringify(observation, null, 2)}`)\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "asSchema", "PayloadZodOfSchema", "zodIsFactory", "zodAsFactory", "zodToFactory", "result", "asSchema", "assertEx", "isPayloadOfSchemaType", "assertEx", "isPayloadOfSchemaType"]
7
7
  }
@@ -40,7 +40,7 @@ import {
40
40
  creatableModule,
41
41
  isPayloadOfSchemaType
42
42
  } from "@xyo-network/sdk";
43
- import { AbstractEvmWitness, EvmAddressSchema } from "@xyo-network/witness-evm-abstract";
43
+ import { AbstractEvmWitness, EvmAddressSchema } from "@xyo-network/witness-evm";
44
44
  var EvmContractWitnessConfigSchema = asSchema2("network.xyo.evm.contract.witness.config", true);
45
45
  var EvmContractWitness = class extends AbstractEvmWitness {
46
46
  async observeHandler(inPayloads = []) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/evm-contract-witness/Payload.ts", "../../src/modules/evm-contract-witness/Witness.ts"],
4
- "sourcesContent": ["import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nexport const EvmContractSchema = asSchema('network.xyo.evm.contract', true)\nexport type EvmContractSchema = typeof EvmContractSchema\n\nexport const EvmContractZod = z.extend(PayloadZodOfSchema(EvmContractSchema), {\n address: z.string(),\n block: z.number(),\n chainId: z.number(),\n code: z.optional(z.string()),\n})\n\nexport type EvmContract = z.infer<typeof EvmContractZod>\n\nexport const isEvmContract = zodIsFactory(EvmContractZod)\nexport const asEvmContract = zodAsFactory(EvmContractZod, 'asEvmContract')\nexport const toEvmContract = zodToFactory(EvmContractZod, 'toEvmContract')\n", "import { assertEx } from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport {\n asSchema, creatableModule, isPayloadOfSchemaType,\n} from '@xyo-network/sdk'\nimport type {\n EvmAddress, EvmWitnessConfig, EvmWitnessParams,\n} from '@xyo-network/witness-evm-abstract'\nimport { AbstractEvmWitness, EvmAddressSchema } from '@xyo-network/witness-evm-abstract'\n\nimport type { EvmContract } from './Payload.ts'\nimport { EvmContractSchema } from './Payload.ts'\n\nexport const EvmContractWitnessConfigSchema = asSchema('network.xyo.evm.contract.witness.config', true)\nexport type EvmContractWitnessConfigSchema = typeof EvmContractWitnessConfigSchema\n\nexport type EvmContractWitnessConfig = EvmWitnessConfig<{ address?: string }, EvmContractWitnessConfigSchema>\n\nexport type EvmContractWitnessParams = EvmWitnessParams<EvmContractWitnessConfig>\n\n@creatableModule<EvmContractWitness>()\nexport class EvmContractWitness<TParams extends EvmContractWitnessParams = EvmContractWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmAddress,\n EvmContract\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmContractWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmContractWitnessConfigSchema\n\n protected override async observeHandler(inPayloads: EvmAddress[] = []): Promise<EvmContract[]> {\n await this.startedAsync('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmAddress>(EvmAddressSchema)).map(async ({ address }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n\n const provider = await this.getProvider(true, true)\n\n const block = await provider.getBlockNumber()\n const code = await provider.getCode(validatedAddress, block)\n const network = await provider.getNetwork()\n\n const observation: EvmContract = {\n address: validatedAddress,\n block,\n chainId: Number(network.chainId),\n code,\n schema: EvmContractSchema,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
4
+ "sourcesContent": ["import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nexport const EvmContractSchema = asSchema('network.xyo.evm.contract', true)\nexport type EvmContractSchema = typeof EvmContractSchema\n\nexport const EvmContractZod = z.extend(PayloadZodOfSchema(EvmContractSchema), {\n address: z.string(),\n block: z.number(),\n chainId: z.number(),\n code: z.optional(z.string()),\n})\n\nexport type EvmContract = z.infer<typeof EvmContractZod>\n\nexport const isEvmContract = zodIsFactory(EvmContractZod)\nexport const asEvmContract = zodAsFactory(EvmContractZod, 'asEvmContract')\nexport const toEvmContract = zodToFactory(EvmContractZod, 'toEvmContract')\n", "import { assertEx } from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport {\n asSchema, creatableModule, isPayloadOfSchemaType,\n} from '@xyo-network/sdk'\nimport type {\n EvmAddress, EvmWitnessConfig, EvmWitnessParams,\n} from '@xyo-network/witness-evm'\nimport { AbstractEvmWitness, EvmAddressSchema } from '@xyo-network/witness-evm'\n\nimport type { EvmContract } from './Payload.ts'\nimport { EvmContractSchema } from './Payload.ts'\n\nexport const EvmContractWitnessConfigSchema = asSchema('network.xyo.evm.contract.witness.config', true)\nexport type EvmContractWitnessConfigSchema = typeof EvmContractWitnessConfigSchema\n\nexport type EvmContractWitnessConfig = EvmWitnessConfig<{ address?: string }, EvmContractWitnessConfigSchema>\n\nexport type EvmContractWitnessParams = EvmWitnessParams<EvmContractWitnessConfig>\n\n@creatableModule<EvmContractWitness>()\nexport class EvmContractWitness<TParams extends EvmContractWitnessParams = EvmContractWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmAddress,\n EvmContract\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmContractWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmContractWitnessConfigSchema\n\n protected override async observeHandler(inPayloads: EvmAddress[] = []): Promise<EvmContract[]> {\n await this.startedAsync('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<EvmAddress>(EvmAddressSchema)).map(async ({ address }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n\n const provider = await this.getProvider(true, true)\n\n const block = await provider.getBlockNumber()\n const code = await provider.getCode(validatedAddress, block)\n const network = await provider.getNetwork()\n\n const observation: EvmContract = {\n address: validatedAddress,\n block,\n chainId: Number(network.chainId),\n code,\n schema: EvmContractSchema,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP,SAAS,UAAU,0BAA0B;AAC7C,YAAY,OAAO;AAEZ,IAAM,oBAAoB,SAAS,4BAA4B,IAAI;AAGnE,IAAM,iBAAmB,SAAO,mBAAmB,iBAAiB,GAAG;AAAA,EAC5E,SAAW,SAAO;AAAA,EAClB,OAAS,SAAO;AAAA,EAChB,SAAW,SAAO;AAAA,EAClB,MAAQ,WAAW,SAAO,CAAC;AAC7B,CAAC;AAIM,IAAM,gBAAgB,aAAa,cAAc;AACjD,IAAM,gBAAgB,aAAa,gBAAgB,eAAe;AAClE,IAAM,gBAAgB,aAAa,gBAAgB,eAAe;;;ACpBzE,SAAS,gBAAgB;AAEzB;AAAA,EACE,YAAAA;AAAA,EAAU;AAAA,EAAiB;AAAA,OACtB;AAIP,SAAS,oBAAoB,wBAAwB;AAK9C,IAAM,iCAAiCC,UAAS,2CAA2C,IAAI;AAQ/F,IAAM,qBAAN,cAAsG,mBAI3G;AAAA,EAIA,MAAyB,eAAe,aAA2B,CAAC,GAA2B;AAC7F,UAAM,KAAK,aAAa,OAAO;AAC/B,QAAI;AACF,YAAM,eAAe,MAAM,QAAQ;AAAA,QACjC,WAAW,OAAO,sBAAkC,gBAAgB,CAAC,EAAE,IAAI,OAAO,EAAE,QAAQ,MAAM;AAChG,gBAAM,mBAAmB,SAAS,WAAW,KAAK,OAAO,SAAS,MAAM,iBAAiB;AAEzF,gBAAM,WAAW,MAAM,KAAK,YAAY,MAAM,IAAI;AAElD,gBAAM,QAAQ,MAAM,SAAS,eAAe;AAC5C,gBAAM,OAAO,MAAM,SAAS,QAAQ,kBAAkB,KAAK;AAC3D,gBAAM,UAAU,MAAM,SAAS,WAAW;AAE1C,gBAAM,cAA2B;AAAA,YAC/B,SAAS;AAAA,YACT;AAAA,YACA,SAAS,OAAO,QAAQ,OAAO;AAAA,YAC/B;AAAA,YACA,QAAQ;AAAA,UACV;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;AAjCE,cALW,oBAKc,iBAA0B,CAAC,GAAG,mDAAM,kBAAe,8BAA8B;AAC1G,cANW,oBAMc,uBAA8B;AAN5C,qBAAN;AAAA,EADN,gBAAoC;AAAA,GACxB;",
6
6
  "names": ["asSchema", "asSchema"]
7
7
  }
@@ -39,7 +39,7 @@ import {
39
39
  hexFromBigInt
40
40
  } from "@ariestools/sdk";
41
41
  import { isPayloadOfSchemaType } from "@xyo-network/sdk";
42
- import { AbstractEvmWitness } from "@xyo-network/witness-evm-abstract";
42
+ import { AbstractEvmWitness } from "@xyo-network/witness-evm";
43
43
  import { Contract, EventLog } from "ethers";
44
44
  var EvmEventsWitness = class extends AbstractEvmWitness {
45
45
  static configSchemas = [...super.configSchemas, EvmEventsWitnessConfigSchema];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/evm-events-witness/model.ts", "../../src/modules/evm-events-witness/Payload.ts", "../../src/modules/evm-events-witness/Witness.ts"],
4
- "sourcesContent": ["import { asSchema } from '@xyo-network/sdk'\nimport type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm-abstract'\nimport type { Fragment, JsonFragment } from 'ethers'\n\nexport type InterfaceAbi = string | readonly (Fragment | JsonFragment | string)[]\n\nexport const EvmEventsWitnessConfigSchema = asSchema('network.xyo.evm.events.witness.config', true)\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: InterfaceAbi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nexport const EvmEventsSchema = asSchema('network.xyo.evm.events', true)\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport const EvmEventsZod = z.extend(PayloadZodOfSchema(EvmEventsSchema), {\n address: z.optional(z.string()),\n eventName: z.optional(z.string()),\n fromBlock: z.optional(z.number()),\n toBlock: z.optional(z.number()),\n})\n\nexport type EvmEvents = z.infer<typeof EvmEventsZod>\n\nexport const isEvmEvents = zodIsFactory(EvmEventsZod)\nexport const asEvmEvents = zodAsFactory(EvmEventsZod, 'asEvmEvents')\nexport const toEvmEvents = zodToFactory(EvmEventsZod, 'toEvmEvents')\n\nexport const EvmEventSchema = asSchema('network.xyo.evm.event', true)\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport const EvmEventZod = z.extend(PayloadZodOfSchema(EvmEventSchema), {\n address: z.string(),\n args: z.record(z.string(), z.unknown()),\n block: z.number(),\n chainId: z.number(),\n eventName: z.string(),\n})\n\nexport type EvmEvent = z.infer<typeof EvmEventZod>\n\nexport const isEvmEvent = zodIsFactory(EvmEventZod)\nexport const asEvmEvent = zodAsFactory(EvmEventZod, 'asEvmEvent')\nexport const toEvmEvent = zodToFactory(EvmEventZod, 'toEvmEvent')\n", "import {\n assertEx, exists, hexFromBigInt,\n} from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm-abstract'\nimport type {\n Fragment, InterfaceAbi, JsonFragment,\n} from 'ethers'\nimport { Contract, EventLog } from 'ethers'\n\nimport type { EvmEventsWitnessParams } from './model.ts'\nimport { EvmEventsWitnessConfigSchema } from './model.ts'\nimport type { EvmEvent, EvmEvents } from './Payload.ts'\nimport { EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi(): InterfaceAbi {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observationGroups = await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({\n eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock,\n }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const baseContract = new Contract(validatedAddress, this.abi, provider)\n const contract = baseContract.attach(validatedAddress)\n\n const abi: InterfaceAbi = this.abi\n const abiArray = assertEx(\n typeof abi === 'string' ? undefined : abi,\n () => 'Abi is not an array',\n )\n\n const isMatchingEventFragment = (entry: Fragment | JsonFragment | string): entry is JsonFragment =>\n typeof entry === 'object' && 'name' in entry && entry.type === 'event' && entry.name === validatedEventName\n\n const abiEvent = assertEx(\n abiArray.find(isMatchingEventFragment),\n () => 'Could not find event',\n )\n const abiInputs = abiEvent.inputs ?? []\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n if (!(rawLog instanceof EventLog)) {\n return\n }\n const argsObject: Record<string, unknown> = {}\n\n for (const [index, input] of abiInputs.entries()) {\n const name = input.name\n if (name != null) {\n const value: unknown = rawLog.args[index]\n argsObject[name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n }\n }\n\n const eventResult: EvmEvent = {\n address: rawLog.address,\n args: argsObject,\n block: rawLog.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n })\n .filter(exists)\n\n return observation\n }),\n )\n const observations = observationGroups.flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
4
+ "sourcesContent": ["import { asSchema } from '@xyo-network/sdk'\nimport type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm'\nimport type { Fragment, JsonFragment } from 'ethers'\n\nexport type InterfaceAbi = string | readonly (Fragment | JsonFragment | string)[]\n\nexport const EvmEventsWitnessConfigSchema = asSchema('network.xyo.evm.events.witness.config', true)\nexport type EvmEventsWitnessConfigSchema = typeof EvmEventsWitnessConfigSchema\n\nexport type EvmEventsWitnessConfig = EvmWitnessConfig<\n {\n abi?: InterfaceAbi\n address?: string\n eventName?: string\n fromBlock?: number\n toBlock?: number\n },\n EvmEventsWitnessConfigSchema\n>\n\nexport type EvmEventsWitnessParams = EvmWitnessParams<EvmEventsWitnessConfig>\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport { asSchema, PayloadZodOfSchema } from '@xyo-network/sdk'\nimport * as z from 'zod/mini'\n\nexport const EvmEventsSchema = asSchema('network.xyo.evm.events', true)\nexport type EvmEventsSchema = typeof EvmEventsSchema\n\nexport const EvmEventsZod = z.extend(PayloadZodOfSchema(EvmEventsSchema), {\n address: z.optional(z.string()),\n eventName: z.optional(z.string()),\n fromBlock: z.optional(z.number()),\n toBlock: z.optional(z.number()),\n})\n\nexport type EvmEvents = z.infer<typeof EvmEventsZod>\n\nexport const isEvmEvents = zodIsFactory(EvmEventsZod)\nexport const asEvmEvents = zodAsFactory(EvmEventsZod, 'asEvmEvents')\nexport const toEvmEvents = zodToFactory(EvmEventsZod, 'toEvmEvents')\n\nexport const EvmEventSchema = asSchema('network.xyo.evm.event', true)\nexport type EvmEventSchema = typeof EvmEventSchema\n\nexport const EvmEventZod = z.extend(PayloadZodOfSchema(EvmEventSchema), {\n address: z.string(),\n args: z.record(z.string(), z.unknown()),\n block: z.number(),\n chainId: z.number(),\n eventName: z.string(),\n})\n\nexport type EvmEvent = z.infer<typeof EvmEventZod>\n\nexport const isEvmEvent = zodIsFactory(EvmEventZod)\nexport const asEvmEvent = zodAsFactory(EvmEventZod, 'asEvmEvent')\nexport const toEvmEvent = zodToFactory(EvmEventZod, 'toEvmEvent')\n", "import {\n assertEx, exists, hexFromBigInt,\n} from '@ariestools/sdk'\nimport type { Schema } from '@xyo-network/sdk'\nimport { isPayloadOfSchemaType } from '@xyo-network/sdk'\nimport { AbstractEvmWitness } from '@xyo-network/witness-evm'\nimport type {\n Fragment, InterfaceAbi, JsonFragment,\n} from 'ethers'\nimport { Contract, EventLog } from 'ethers'\n\nimport type { EvmEventsWitnessParams } from './model.ts'\nimport { EvmEventsWitnessConfigSchema } from './model.ts'\nimport type { EvmEvent, EvmEvents } from './Payload.ts'\nimport { EvmEventSchema, EvmEventsSchema } from './Payload.ts'\n\nexport class EvmEventsWitness<TParams extends EvmEventsWitnessParams = EvmEventsWitnessParams> extends AbstractEvmWitness<\n TParams,\n EvmEvents,\n EvmEvent\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmEventsWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmEventsWitnessConfigSchema\n\n get abi(): InterfaceAbi {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: EvmEvents[] = []): Promise<EvmEvent[]> {\n await this.startedAsync('throw')\n // calling it here to make sure we rests the cache\n await this.getProviders()\n try {\n const observationGroups = await Promise.all(\n inPayloads\n .filter(isPayloadOfSchemaType<EvmEvents>(EvmEventsSchema))\n .map(async ({\n eventName, address, fromBlock: payloadFromBlock, toBlock: payloadToBlock,\n }) => {\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedEventName = assertEx(eventName ?? this.config.eventName, () => 'Missing eventName')\n\n const provider = await this.getProvider(true, true)\n const network = await provider.getNetwork()\n\n const baseContract = new Contract(validatedAddress, this.abi, provider)\n const contract = baseContract.attach(validatedAddress)\n\n const abi: InterfaceAbi = this.abi\n const abiArray = assertEx(\n typeof abi === 'string' ? undefined : abi,\n () => 'Abi is not an array',\n )\n\n const isMatchingEventFragment = (entry: Fragment | JsonFragment | string): entry is JsonFragment =>\n typeof entry === 'object' && 'name' in entry && entry.type === 'event' && entry.name === validatedEventName\n\n const abiEvent = assertEx(\n abiArray.find(isMatchingEventFragment),\n () => 'Could not find event',\n )\n const abiInputs = abiEvent.inputs ?? []\n\n const toBlock = this.config.toBlock ?? payloadToBlock ?? (await provider.getBlockNumber())\n const fromBlock = this.config.fromBlock ?? payloadFromBlock ?? 0\n\n const allRawEvents = await contract.queryFilter(contract.filters[validatedEventName], fromBlock, toBlock)\n // console.log(`from-to: ${fromBlock}|${toBlock} = ${allRawEvents.length}`)\n\n const observation = allRawEvents\n .map((rawLog) => {\n if (!(rawLog instanceof EventLog)) {\n return\n }\n const argsObject: Record<string, unknown> = {}\n\n for (const [index, input] of abiInputs.entries()) {\n const name = input.name\n if (name != null) {\n const value: unknown = rawLog.args[index]\n argsObject[name] = typeof value === 'bigint' ? hexFromBigInt(value) : value\n }\n }\n\n const eventResult: EvmEvent = {\n address: rawLog.address,\n args: argsObject,\n block: rawLog.blockNumber,\n chainId: Number(network.chainId),\n eventName: validatedEventName,\n schema: EvmEventSchema,\n }\n return eventResult\n })\n .filter(exists)\n\n return observation\n }),\n )\n const observations = observationGroups.flat()\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["asSchema"]
7
7
  }
@@ -212,9 +212,9 @@ var ImageThumbnailWitness = class _ImageThumbnailWitness extends AbstractWitness
212
212
  } else {
213
213
  let cookedDataBuffer = dataBuffer;
214
214
  const urlParts = url.split(";");
215
- const [, contentType] = urlParts[0].split(":");
215
+ const [, contentType] = urlParts[0].split(":", 2);
216
216
  if (contentType.startsWith("image/svg")) {
217
- const [encoding, byteString] = urlParts[1].split(",");
217
+ const [encoding, byteString] = urlParts[1].split(",", 2);
218
218
  if (encoding === "base64") {
219
219
  const newSvg = await resolveDynamicSvg(byteString);
220
220
  const newSvgDataUrl = createDataUrl(Buffer2.from(newSvg).buffer, contentType);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modules/image-thumbnail/Plugin.ts", "../../src/modules/image-thumbnail/Witness/Config.ts", "../../src/modules/image-thumbnail/Witness/Witness.ts", "../../src/modules/image-thumbnail/Witness/ffmpeg/fluent/getVideoFrameAsImageFluent.ts", "../../src/modules/image-thumbnail/Witness/lib/checkIpfsUrl.ts", "../../src/modules/image-thumbnail/Witness/lib/createDataUrl.ts", "../../src/modules/image-thumbnail/Witness/lib/resolveDynamicSvg.ts", "../../src/modules/image-thumbnail/index.ts"],
4
- "sourcesContent": ["import { ImageThumbnailSchema } from '@xyo-network/payload-plugins/image-thumbnail'\nimport { createPayloadSetDualPlugin, PayloadSetSchema } from '@xyo-network/sdk'\n\nimport { ImageThumbnailDiviner } from '#diviner-image-thumbnail'\n\nimport { ImageThumbnailWitness } from './Witness/index.ts'\n\nexport const ImageThumbnailPlugin = () =>\n createPayloadSetDualPlugin<ImageThumbnailWitness, ImageThumbnailDiviner>(\n { required: { [ImageThumbnailSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n const result = await ImageThumbnailDiviner.create(params)\n return result\n },\n witness: async (params) => {\n const result = await ImageThumbnailWitness.create(params)\n return result\n },\n },\n )\n", "import { ImageThumbnailSchema } from '@xyo-network/payload-plugins/image-thumbnail'\nimport type { WitnessConfig } from '@xyo-network/sdk'\nimport { asSchema } from '@xyo-network/sdk'\n\nexport const ImageThumbnailWitnessConfigSchema = asSchema(`${ImageThumbnailSchema}.witness.config`, true)\nexport type ImageThumbnailWitnessConfigSchema = typeof ImageThumbnailWitnessConfigSchema\n\nexport type ImageThumbnailEncoding = 'PNG' | 'JPG' | 'GIF'\n\nexport type ImageThumbnailWitnessConfig = WitnessConfig<{\n dataUrlPassthrough?: boolean\n encoding?: ImageThumbnailEncoding\n height?: number\n ipfsGateway?: string\n maxAsyncProcesses?: number\n maxCacheBytes?: number\n maxCacheEntries?: number\n quality?: number\n runExclusive?: boolean\n schema: ImageThumbnailWitnessConfigSchema\n width?: number\n}>\n", "/* eslint-disable max-statements */\nimport { Buffer } from 'node:buffer'\nimport { promises as dnsPromises } from 'node:dns'\n\nimport { exists } from '@ariestools/sdk'\nimport type { ImageThumbnail } from '@xyo-network/payload-plugins/image-thumbnail'\nimport { ImageThumbnailSchema } from '@xyo-network/payload-plugins/image-thumbnail'\nimport type { UrlPayload } from '@xyo-network/payload-plugins/url'\nimport { UrlSchema } from '@xyo-network/payload-plugins/url'\nimport type { Schema } from '@xyo-network/sdk'\nimport { AbstractWitness, ObjectHasher } from '@xyo-network/sdk'\nimport { Semaphore } from 'async-mutex'\nimport { fileTypeFromBuffer } from 'file-type'\nimport graphicsMagick from 'gm'\nimport hasbin from 'hasbin'\nimport { sha256 } from 'hash-wasm'\nimport shajs from 'sha.js'\n\nimport type { ImageThumbnailEncoding } from './Config.ts'\nimport { ImageThumbnailWitnessConfigSchema } from './Config.ts'\nimport { getVideoFrameAsImageFluent } from './ffmpeg/index.ts'\nimport {\n checkIpfsUrl, createDataUrl, resolveDynamicSvg,\n} from './lib/index.ts'\nimport type { ImageThumbnailWitnessParams } from './Params.ts'\n\n// TODO: Break this into two Witnesses?\n\n// setFfmpegPath(ffmpegPath)\n\nconst gm = graphicsMagick.subClass({ imageMagick: '7+' })\n\nexport interface ImageThumbnailWitnessError extends Error {\n name: 'ImageThumbnailWitnessError'\n url: string\n}\n\nexport interface DnsError extends Error {\n code: string\n}\n\nexport class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams = ImageThumbnailWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ImageThumbnailWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = ImageThumbnailWitnessConfigSchema\n\n private _semaphore = new Semaphore(this.maxAsyncProcesses)\n\n get encoding() {\n return this.config.encoding ?? 'PNG'\n }\n\n get height() {\n return this.config.height ?? 128\n }\n\n get ipfsGateway() {\n return this.config.ipfsGateway ?? '5d7b6582.beta.decentralnetworkservices.com'\n }\n\n get maxAsyncProcesses() {\n return this.config.maxAsyncProcesses ?? 4\n }\n\n get quality() {\n return this.config.quality ?? 50\n }\n\n get width() {\n return this.config.width ?? 128\n }\n\n private static async binaryToSha256(data: ArrayBufferLike) {\n const viewData = new Uint8Array(data)\n await ObjectHasher.wasmInitialized\n if (ObjectHasher.wasmSupport.canUseWasm) {\n try {\n return await sha256(viewData)\n } catch {\n ObjectHasher.wasmSupport.allowWasm = false\n }\n }\n\n return shajs('sha256').update(viewData).digest().toString()\n }\n\n private static bufferFromDataUrl(url: string): ArrayBufferLike | undefined {\n if (!url.startsWith('data:image')) {\n return\n }\n const data = url.split(',', 2)[1]\n if (data) {\n return Uint8Array.from(atob(data), c => c.codePointAt(0) ?? 0).buffer\n }\n const error: ImageThumbnailWitnessError = {\n message: 'Invalid data Url',\n name: 'ImageThumbnailWitnessError',\n url,\n }\n throw error\n }\n\n protected override async observeHandler(payloads: UrlPayload[] = []): Promise<ImageThumbnail[]> {\n if (!hasbin.sync('magick')) {\n throw new Error('ImageMagick is required for this witness')\n }\n const urlPayloads = payloads.filter(payload => payload.schema === UrlSchema)\n const process = async () => {\n const results = await Promise.all(\n urlPayloads.map<Promise<ImageThumbnail>>(async ({ url }) => {\n let result: ImageThumbnail\n\n // if it is a data URL, return a Buffer\n const dataBuffer = ImageThumbnailWitness.bufferFromDataUrl(url)\n\n if (dataBuffer) {\n if (this.config.dataUrlPassthrough === true) {\n result = {\n schema: ImageThumbnailSchema,\n sourceHash: await ImageThumbnailWitness.binaryToSha256(dataBuffer),\n sourceUrl: url,\n url,\n }\n } else {\n let cookedDataBuffer = dataBuffer\n const urlParts = url.split(';')\n const [, contentType] = urlParts[0].split(':')\n if (contentType.startsWith('image/svg')) {\n const [encoding, byteString] = urlParts[1].split(',')\n if (encoding === 'base64') {\n const newSvg = await resolveDynamicSvg(byteString)\n const newSvgDataUrl = createDataUrl(Buffer.from(newSvg).buffer, contentType)\n cookedDataBuffer = ImageThumbnailWitness.bufferFromDataUrl(newSvgDataUrl) ?? dataBuffer\n }\n }\n result = await this.processMedia(\n cookedDataBuffer,\n {\n schema: ImageThumbnailSchema,\n sourceUrl: url,\n },\n contentType,\n )\n }\n } else {\n // if it is ipfs, go through cloud flair\n const mutatedUrl = checkIpfsUrl(url, this.ipfsGateway)\n result = await this.fromHttp(mutatedUrl, url)\n }\n return result\n }),\n )\n return results.filter(exists)\n }\n return this.config.runExclusive === true ? await this._semaphore.runExclusive(() => process()) : process()\n }\n\n private async createThumbnailDataUrl(sourceBuffer: ArrayBufferLike, encoding?: ImageThumbnailEncoding) {\n const thumb = await new Promise<Buffer>((resolve, reject) => {\n gm(Buffer.from(sourceBuffer))\n .quality(this.quality)\n .resize(this.width, this.height)\n .flatten()\n .toBuffer(encoding ?? this.encoding, (error, buffer) => {\n if (error) {\n reject(error)\n } else {\n resolve(buffer)\n }\n })\n })\n return createDataUrl(thumb.buffer, 'image/png')\n }\n\n /**\n * Creates an image thumbnail from a video.\n * @param videoBuffer The input video buffer.\n * @returns An buffer containing an image thumbnail for the video.\n */\n private async createThumbnailFromVideo(videoBuffer: ArrayBufferLike) {\n const imageBuffer = await getVideoFrameAsImageFluent(videoBuffer)\n return this.createThumbnailDataUrl(imageBuffer.buffer)\n }\n\n private async fromHttp(url: string, sourceUrl?: string): Promise<ImageThumbnail> {\n let response: Response\n let dnsResult: string[]\n try {\n const urlObj = new URL(url)\n dnsResult = await dnsPromises.resolve(urlObj.host)\n } catch (ex) {\n const error = ex as DnsError\n const result: ImageThumbnail = {\n http: { code: error.code },\n schema: ImageThumbnailSchema,\n sourceUrl: sourceUrl ?? url,\n }\n return result\n }\n try {\n response = await fetch(url)\n } catch (ex) {\n const result: ImageThumbnail = {\n http: { ipAddress: dnsResult[0] },\n schema: ImageThumbnailSchema,\n sourceUrl: sourceUrl ?? url,\n }\n if (ex instanceof Error) {\n result.http = result.http ?? {}\n result.http.code = ex.name\n }\n return result\n }\n\n const result: ImageThumbnail = {\n http: { status: response.status },\n schema: ImageThumbnailSchema,\n sourceUrl: sourceUrl ?? url,\n }\n\n if (response.status >= 200 && response.status < 300) {\n const contentType: string | undefined = response.headers.get('content-type') ?? undefined\n const sourceBuffer = await response.arrayBuffer()\n\n return this.processMedia(sourceBuffer, result, contentType)\n }\n return result\n }\n\n private async processMedia(sourceBuffer: ArrayBufferLike, imageThumbnail: ImageThumbnail, contentType?: string): Promise<ImageThumbnail> {\n const [mediaType, fileType] = contentType?.split('/') ?? ['', '']\n imageThumbnail.mime = imageThumbnail.mime ?? {}\n imageThumbnail.mime.returned = mediaType\n\n try {\n imageThumbnail.mime.detected = await fileTypeFromBuffer(sourceBuffer as ArrayBuffer)\n } catch (ex) {\n const error = ex as Error\n this.logger?.error(`FileType error: ${error.message}`)\n }\n\n const processImage = async (encoding?: ImageThumbnailEncoding) => {\n imageThumbnail.sourceHash = await ImageThumbnailWitness.binaryToSha256(sourceBuffer)\n imageThumbnail.url = await this.createThumbnailDataUrl(sourceBuffer, encoding)\n }\n\n const processVideo = async () => {\n // Gracefully handle the case where ffmpeg is not installed.\n\n if (hasbin.sync('ffmpeg')) {\n imageThumbnail.sourceHash = await ImageThumbnailWitness.binaryToSha256(sourceBuffer)\n imageThumbnail.url = await this.createThumbnailFromVideo(sourceBuffer)\n } else {\n imageThumbnail.mime = imageThumbnail.mime ?? {}\n imageThumbnail.mime.invalid = true\n }\n }\n\n let encoding: ImageThumbnailEncoding = 'PNG'\n\n switch (fileType.toUpperCase()) {\n case 'GIF': {\n encoding = 'GIF'\n break\n }\n case 'JPG':\n case 'JPEG': {\n encoding = 'JPG'\n break\n }\n }\n\n switch (mediaType) {\n case 'image': {\n await processImage(encoding)\n imageThumbnail.mime.type = mediaType\n break\n }\n case 'video': {\n await processVideo()\n imageThumbnail.mime.type = mediaType\n break\n }\n default: {\n const [detectedMediaType] = imageThumbnail.mime.detected?.mime?.split('/') ?? ['', '']\n switch (detectedMediaType) {\n case 'image': {\n await processImage()\n imageThumbnail.mime.type = imageThumbnail.mime.detected?.mime\n break\n }\n case 'video': {\n await processVideo()\n imageThumbnail.mime.type = imageThumbnail.mime.detected?.mime\n break\n }\n default: {\n imageThumbnail.mime.invalid = true\n break\n }\n }\n break\n }\n }\n return imageThumbnail\n }\n}\n", "import { unlink, writeFile } from 'node:fs/promises'\nimport { tmpdir } from 'node:os'\nimport type { WritableOptions } from 'node:stream'\nimport { Writable } from 'node:stream'\n\nimport ffmpeg from 'fluent-ffmpeg'\nimport { v4 as uuid } from 'uuid'\n\n/**\n * A Writable stream that collects output from ffmpeg.\n */\nclass FfmpegOutputStream extends Writable {\n private readonly chunks: Uint8Array[] = []\n\n constructor(options?: WritableOptions) {\n super(options)\n }\n\n override _write(chunk: never, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n this.chunks.push(chunk)\n callback()\n }\n\n /**\n * Collects the output from ffmpeg into a buffer.\n * @returns A buffer containing the concatenated\n * output from ffmpeg.\n */\n toBuffer = () => Buffer.concat(this.chunks)\n}\n\n/**\n * Execute FFmpeg using fluent API with provided input buffer and video thumbnail image.\n * @param videoBuffer Input video buffer.\n * @returns Output buffer containing the video thumbnail image.\n */\nexport const getVideoFrameAsImageFluent = async (videoBuffer: ArrayBufferLike) => {\n // Get a temp file name\n const tmpFile = `/${tmpdir()}/${uuid()}`\n try {\n // Write videoBuffer to temp file for use as input to ffmpeg to\n // avoid issues with ffmpeg inferring premature EOF from buffer\n // passed via stdin (happens when ffmpeg is trying to infer\n // input video format)\n await writeFile(tmpFile, new Uint8Array(videoBuffer), { encoding: 'binary' })\n const imageBuffer = await new Promise<Buffer>((resolve, reject) => {\n // Create a Writable stream to collect PNG output from ffmpeg\n const ffmpegOutput = new FfmpegOutputStream()\n // Execute ffmpeg using fluent API\n ffmpeg()\n // Uncomment to debug CLI args to ffmpeg\n // .on('start', (commandLine) => console.log('Spawned Ffmpeg with command: ' + commandLine))\n .on('error', err => reject(new Error(err.message, { cause: err })))\n // Listen for the 'end' event to combine the output into a buffer holding the PNG image\n .on('end', () => resolve(ffmpegOutput.toBuffer()))\n .input(tmpFile) // Use temp file as input\n .takeFrames(1) // Only take 1st video frame\n .withNoAudio() // Don't include audio\n .outputOptions('-f image2pipe') // Write output to stdout\n .videoCodec('png') // Force PNG output\n // Start processing and direct ffmpeg stdout to writable stream\n .pipe(ffmpegOutput)\n })\n return imageBuffer\n } finally {\n // Cleanup temp file\n try {\n await unlink(tmpFile)\n } catch {\n // No error here since file doesn't exist\n }\n }\n}\n", "import { assertEx } from '@ariestools/sdk'\n\nconst allowIpfsIoRepair = true\n\n/**\n * Returns the equivalent IPFS gateway URL for the supplied URL.\n * @param urlToCheck The URL to check\n * @returns If the supplied URL is an IPFS URL, it converts the URL to the\n * equivalent IPFS gateway URL. Otherwise, returns the original URL.\n */\nexport const checkIpfsUrl = (urlToCheck: string, ipfsGateway?: string): string => {\n try {\n const url = new URL(urlToCheck)\n let protocol = url.protocol\n let host = url.host\n let path = url.pathname\n const query = url.search\n if (protocol === 'ipfs:') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n }\n if (allowIpfsIoRepair && protocol === 'https' && host === 'ipfs.io') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n const pathParts = path.split('/')\n if (pathParts[0] === 'ipfs') {\n pathParts.shift()\n }\n path = pathParts.join('/')\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n }\n return urlToCheck\n } catch {\n // const error = ex as Error\n // console.error(`${error.name}:${error.message} [${urlToCheck}]`)\n // console.log(error.stack)\n return urlToCheck\n }\n}\n", "import { fromByteArray } from 'base64-js'\n\nexport const createDataUrl = (data: ArrayBufferLike, contextType: string, encoding: 'base64' = 'base64') => {\n return `data:${contextType};${encoding},${fromByteArray(new Uint8Array(data))}`\n}\n", "import { toByteArray } from 'base64-js'\nimport { Builder, parseStringPromise } from 'xml2js'\n\ninterface FetchedImage {\n buffer: ArrayBuffer\n contentType: string | null\n href: string\n ok: boolean\n}\n\ninterface SvgImageNode {\n $: { href: string }\n}\n\ninterface SvgNode {\n image: SvgImageNode[]\n}\n\ninterface SvgDocument {\n svg: SvgNode & Record<string, unknown>\n}\n\nexport const resolveDynamicSvg = async (base64Bytes: string): Promise<string> => {\n const decoder = new TextDecoder()\n const bytes = toByteArray(base64Bytes)\n const svg = decoder.decode(bytes)\n const svgObj = (await parseStringPromise(svg)) as SvgDocument\n const svgNode = svgObj.svg\n const imageResults: FetchedImage[] = await Promise.all(\n svgNode.image.map(async (img): Promise<FetchedImage> => {\n const { href } = img.$\n const response = await fetch(href)\n return {\n buffer: await response.arrayBuffer(),\n contentType: response.headers.get('content-type'),\n href,\n ok: response.ok,\n }\n }),\n )\n const image = imageResults.map(({\n buffer, contentType, href, ok,\n }) => {\n if (ok && buffer.byteLength > 0) {\n const sourceBytes = new Uint8Array(buffer)\n const base64 = sourceBytes.toBase64()\n return { $: { href: `data:${contentType ?? 'application/octet-stream'};base64,${base64}` } }\n }\n return { $: { href } }\n })\n const updatedSVG = { ...svgObj, svg: { ...svgNode, image } }\n const builder = new Builder()\n return builder.buildObject(updatedSVG)\n}\n", "export { ImageThumbnailPlugin as default, ImageThumbnailPlugin } from './Plugin.ts'\nexport * from './Witness/index.ts'\nexport * from '#diviner-image-thumbnail'\n"],
5
- "mappings": ";AAAA,SAAS,wBAAAA,6BAA4B;AACrC,SAAS,4BAA4B,wBAAwB;AAE7D,SAAS,6BAA6B;;;ACHtC,SAAS,4BAA4B;AAErC,SAAS,gBAAgB;AAElB,IAAM,oCAAoC,SAAS,GAAG,oBAAoB,mBAAmB,IAAI;;;ACHxG,SAAS,UAAAC,eAAc;AACvB,SAAS,YAAY,mBAAmB;AAExC,SAAS,cAAc;AAEvB,SAAS,wBAAAC,6BAA4B;AAErC,SAAS,iBAAiB;AAE1B,SAAS,iBAAiB,oBAAoB;AAC9C,SAAS,iBAAiB;AAC1B,SAAS,0BAA0B;AACnC,OAAO,oBAAoB;AAC3B,OAAO,YAAY;AACnB,SAAS,cAAc;AACvB,OAAO,WAAW;;;AChBlB,SAAS,QAAQ,iBAAiB;AAClC,SAAS,cAAc;AAEvB,SAAS,gBAAgB;AAEzB,OAAO,YAAY;AACnB,SAAS,MAAM,YAAY;AAK3B,IAAM,qBAAN,cAAiC,SAAS;AAAA,EACvB,SAAuB,CAAC;AAAA,EAEzC,YAAY,SAA2B;AACrC,UAAM,OAAO;AAAA,EACf;AAAA,EAES,OAAO,OAAc,WAA2B,UAAgD;AACvG,SAAK,OAAO,KAAK,KAAK;AACtB,aAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAW,MAAM,OAAO,OAAO,KAAK,MAAM;AAC5C;AAOO,IAAM,6BAA6B,OAAO,gBAAiC;AAEhF,QAAM,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;AACtC,MAAI;AAKF,UAAM,UAAU,SAAS,IAAI,WAAW,WAAW,GAAG,EAAE,UAAU,SAAS,CAAC;AAC5E,UAAM,cAAc,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AAEjE,YAAM,eAAe,IAAI,mBAAmB;AAE5C,aAAO,EAGJ,GAAG,SAAS,SAAO,OAAO,IAAI,MAAM,IAAI,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAEjE,GAAG,OAAO,MAAM,QAAQ,aAAa,SAAS,CAAC,CAAC,EAChD,MAAM,OAAO,EACb,WAAW,CAAC,EACZ,YAAY,EACZ,cAAc,eAAe,EAC7B,WAAW,KAAK,EAEhB,KAAK,YAAY;AAAA,IACtB,CAAC;AACD,WAAO;AAAA,EACT,UAAE;AAEA,QAAI;AACF,YAAM,OAAO,OAAO;AAAA,IACtB,QAAQ;AAAA,IAER;AAAA,EACF;AACF;;;ACxEA,SAAS,gBAAgB;AAEzB,IAAM,oBAAoB;AAQnB,IAAM,eAAe,CAAC,YAAoB,gBAAiC;AAChF,MAAI;AACF,UAAM,MAAM,IAAI,IAAI,UAAU;AAC9B,QAAI,WAAW,IAAI;AACnB,QAAI,OAAO,IAAI;AACf,QAAI,OAAO,IAAI;AACf,UAAM,QAAQ,IAAI;AAClB,QAAI,aAAa,SAAS;AACxB,iBAAW;AACX,aAAO,SAAS,aAAa,MAAM,yBAAyB;AAC5D,aAAO,IAAI,SAAS,SAAS,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,IAAI;AACpE,YAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,IAAI,IAAI;AACzC,aAAO,OAAO,SAAS,IAAI,GAAG,IAAI,IAAI,KAAK,KAAK;AAAA,IAClD;AACA,QAAI,qBAAqB,aAAa,WAAW,SAAS,WAAW;AACnE,iBAAW;AACX,aAAO,SAAS,aAAa,MAAM,yBAAyB;AAC5D,YAAM,YAAY,KAAK,MAAM,GAAG;AAChC,UAAI,UAAU,CAAC,MAAM,QAAQ;AAC3B,kBAAU,MAAM;AAAA,MAClB;AACA,aAAO,UAAU,KAAK,GAAG;AACzB,YAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,IAAI,IAAI;AACzC,aAAO,OAAO,SAAS,IAAI,GAAG,IAAI,IAAI,KAAK,KAAK;AAAA,IAClD;AACA,WAAO;AAAA,EACT,QAAQ;AAIN,WAAO;AAAA,EACT;AACF;;;AC1CA,SAAS,qBAAqB;AAEvB,IAAM,gBAAgB,CAAC,MAAuB,aAAqB,WAAqB,aAAa;AAC1G,SAAO,QAAQ,WAAW,IAAI,QAAQ,IAAI,cAAc,IAAI,WAAW,IAAI,CAAC,CAAC;AAC/E;;;ACJA,SAAS,mBAAmB;AAC5B,SAAS,SAAS,0BAA0B;AAqBrC,IAAM,oBAAoB,OAAO,gBAAyC;AAC/E,QAAM,UAAU,IAAI,YAAY;AAChC,QAAM,QAAQ,YAAY,WAAW;AACrC,QAAM,MAAM,QAAQ,OAAO,KAAK;AAChC,QAAM,SAAU,MAAM,mBAAmB,GAAG;AAC5C,QAAM,UAAU,OAAO;AACvB,QAAM,eAA+B,MAAM,QAAQ;AAAA,IACjD,QAAQ,MAAM,IAAI,OAAO,QAA+B;AACtD,YAAM,EAAE,KAAK,IAAI,IAAI;AACrB,YAAM,WAAW,MAAM,MAAM,IAAI;AACjC,aAAO;AAAA,QACL,QAAQ,MAAM,SAAS,YAAY;AAAA,QACnC,aAAa,SAAS,QAAQ,IAAI,cAAc;AAAA,QAChD;AAAA,QACA,IAAI,SAAS;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,QAAQ,aAAa,IAAI,CAAC;AAAA,IAC9B;AAAA,IAAQ;AAAA,IAAa;AAAA,IAAM;AAAA,EAC7B,MAAM;AACJ,QAAI,MAAM,OAAO,aAAa,GAAG;AAC/B,YAAM,cAAc,IAAI,WAAW,MAAM;AACzC,YAAM,SAAS,YAAY,SAAS;AACpC,aAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,eAAe,0BAA0B,WAAW,MAAM,GAAG,EAAE;AAAA,IAC7F;AACA,WAAO,EAAE,GAAG,EAAE,KAAK,EAAE;AAAA,EACvB,CAAC;AACD,QAAM,aAAa,EAAE,GAAG,QAAQ,KAAK,EAAE,GAAG,SAAS,MAAM,EAAE;AAC3D,QAAM,UAAU,IAAI,QAAQ;AAC5B,SAAO,QAAQ,YAAY,UAAU;AACvC;;;AJvBA,IAAM,KAAK,eAAe,SAAS,EAAE,aAAa,KAAK,CAAC;AAWjD,IAAM,wBAAN,MAAM,+BAAyG,gBAAyB;AAAA,EAC7I,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,iCAAiC;AAAA,EAC7G,OAAyB,sBAA8B;AAAA,EAE/C,aAAa,IAAI,UAAU,KAAK,iBAAiB;AAAA,EAEzD,IAAI,WAAW;AACb,WAAO,KAAK,OAAO,YAAY;AAAA,EACjC;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,OAAO,UAAU;AAAA,EAC/B;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,OAAO,eAAe;AAAA,EACpC;AAAA,EAEA,IAAI,oBAAoB;AACtB,WAAO,KAAK,OAAO,qBAAqB;AAAA,EAC1C;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,OAAO,WAAW;AAAA,EAChC;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK,OAAO,SAAS;AAAA,EAC9B;AAAA,EAEA,aAAqB,eAAe,MAAuB;AACzD,UAAM,WAAW,IAAI,WAAW,IAAI;AACpC,UAAM,aAAa;AACnB,QAAI,aAAa,YAAY,YAAY;AACvC,UAAI;AACF,eAAO,MAAM,OAAO,QAAQ;AAAA,MAC9B,QAAQ;AACN,qBAAa,YAAY,YAAY;AAAA,MACvC;AAAA,IACF;AAEA,WAAO,MAAM,QAAQ,EAAE,OAAO,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5D;AAAA,EAEA,OAAe,kBAAkB,KAA0C;AACzE,QAAI,CAAC,IAAI,WAAW,YAAY,GAAG;AACjC;AAAA,IACF;AACA,UAAM,OAAO,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;AAChC,QAAI,MAAM;AACR,aAAO,WAAW,KAAK,KAAK,IAAI,GAAG,OAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;AAAA,IACjE;AACA,UAAM,QAAoC;AAAA,MACxC,SAAS;AAAA,MACT,MAAM;AAAA,MACN;AAAA,IACF;AACA,UAAM;AAAA,EACR;AAAA,EAEA,MAAyB,eAAe,WAAyB,CAAC,GAA8B;AAC9F,QAAI,CAAC,OAAO,KAAK,QAAQ,GAAG;AAC1B,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC5D;AACA,UAAM,cAAc,SAAS,OAAO,aAAW,QAAQ,WAAW,SAAS;AAC3E,UAAM,UAAU,YAAY;AAC1B,YAAM,UAAU,MAAM,QAAQ;AAAA,QAC5B,YAAY,IAA6B,OAAO,EAAE,IAAI,MAAM;AAC1D,cAAI;AAGJ,gBAAM,aAAa,uBAAsB,kBAAkB,GAAG;AAE9D,cAAI,YAAY;AACd,gBAAI,KAAK,OAAO,uBAAuB,MAAM;AAC3C,uBAAS;AAAA,gBACP,QAAQC;AAAA,gBACR,YAAY,MAAM,uBAAsB,eAAe,UAAU;AAAA,gBACjE,WAAW;AAAA,gBACX;AAAA,cACF;AAAA,YACF,OAAO;AACL,kBAAI,mBAAmB;AACvB,oBAAM,WAAW,IAAI,MAAM,GAAG;AAC9B,oBAAM,CAAC,EAAE,WAAW,IAAI,SAAS,CAAC,EAAE,MAAM,GAAG;AAC7C,kBAAI,YAAY,WAAW,WAAW,GAAG;AACvC,sBAAM,CAAC,UAAU,UAAU,IAAI,SAAS,CAAC,EAAE,MAAM,GAAG;AACpD,oBAAI,aAAa,UAAU;AACzB,wBAAM,SAAS,MAAM,kBAAkB,UAAU;AACjD,wBAAM,gBAAgB,cAAcC,QAAO,KAAK,MAAM,EAAE,QAAQ,WAAW;AAC3E,qCAAmB,uBAAsB,kBAAkB,aAAa,KAAK;AAAA,gBAC/E;AAAA,cACF;AACA,uBAAS,MAAM,KAAK;AAAA,gBAClB;AAAA,gBACA;AAAA,kBACE,QAAQD;AAAA,kBACR,WAAW;AAAA,gBACb;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,UACF,OAAO;AAEL,kBAAM,aAAa,aAAa,KAAK,KAAK,WAAW;AACrD,qBAAS,MAAM,KAAK,SAAS,YAAY,GAAG;AAAA,UAC9C;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO,QAAQ,OAAO,MAAM;AAAA,IAC9B;AACA,WAAO,KAAK,OAAO,iBAAiB,OAAO,MAAM,KAAK,WAAW,aAAa,MAAM,QAAQ,CAAC,IAAI,QAAQ;AAAA,EAC3G;AAAA,EAEA,MAAc,uBAAuB,cAA+B,UAAmC;AACrG,UAAM,QAAQ,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AAC3D,SAAGC,QAAO,KAAK,YAAY,CAAC,EACzB,QAAQ,KAAK,OAAO,EACpB,OAAO,KAAK,OAAO,KAAK,MAAM,EAC9B,QAAQ,EACR,SAAS,YAAY,KAAK,UAAU,CAAC,OAAO,WAAW;AACtD,YAAI,OAAO;AACT,iBAAO,KAAK;AAAA,QACd,OAAO;AACL,kBAAQ,MAAM;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACL,CAAC;AACD,WAAO,cAAc,MAAM,QAAQ,WAAW;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,yBAAyB,aAA8B;AACnE,UAAM,cAAc,MAAM,2BAA2B,WAAW;AAChE,WAAO,KAAK,uBAAuB,YAAY,MAAM;AAAA,EACvD;AAAA,EAEA,MAAc,SAAS,KAAa,WAA6C;AAC/E,QAAI;AACJ,QAAI;AACJ,QAAI;AACF,YAAM,SAAS,IAAI,IAAI,GAAG;AAC1B,kBAAY,MAAM,YAAY,QAAQ,OAAO,IAAI;AAAA,IACnD,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,YAAMC,UAAyB;AAAA,QAC7B,MAAM,EAAE,MAAM,MAAM,KAAK;AAAA,QACzB,QAAQF;AAAA,QACR,WAAW,aAAa;AAAA,MAC1B;AACA,aAAOE;AAAA,IACT;AACA,QAAI;AACF,iBAAW,MAAM,MAAM,GAAG;AAAA,IAC5B,SAAS,IAAI;AACX,YAAMA,UAAyB;AAAA,QAC7B,MAAM,EAAE,WAAW,UAAU,CAAC,EAAE;AAAA,QAChC,QAAQF;AAAA,QACR,WAAW,aAAa;AAAA,MAC1B;AACA,UAAI,cAAc,OAAO;AACvB,QAAAE,QAAO,OAAOA,QAAO,QAAQ,CAAC;AAC9B,QAAAA,QAAO,KAAK,OAAO,GAAG;AAAA,MACxB;AACA,aAAOA;AAAA,IACT;AAEA,UAAM,SAAyB;AAAA,MAC7B,MAAM,EAAE,QAAQ,SAAS,OAAO;AAAA,MAChC,QAAQF;AAAA,MACR,WAAW,aAAa;AAAA,IAC1B;AAEA,QAAI,SAAS,UAAU,OAAO,SAAS,SAAS,KAAK;AACnD,YAAM,cAAkC,SAAS,QAAQ,IAAI,cAAc,KAAK;AAChF,YAAM,eAAe,MAAM,SAAS,YAAY;AAEhD,aAAO,KAAK,aAAa,cAAc,QAAQ,WAAW;AAAA,IAC5D;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,aAAa,cAA+B,gBAAgC,aAA+C;AACvI,UAAM,CAAC,WAAW,QAAQ,IAAI,aAAa,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE;AAChE,mBAAe,OAAO,eAAe,QAAQ,CAAC;AAC9C,mBAAe,KAAK,WAAW;AAE/B,QAAI;AACF,qBAAe,KAAK,WAAW,MAAM,mBAAmB,YAA2B;AAAA,IACrF,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,WAAK,QAAQ,MAAM,mBAAmB,MAAM,OAAO,EAAE;AAAA,IACvD;AAEA,UAAM,eAAe,OAAOG,cAAsC;AAChE,qBAAe,aAAa,MAAM,uBAAsB,eAAe,YAAY;AACnF,qBAAe,MAAM,MAAM,KAAK,uBAAuB,cAAcA,SAAQ;AAAA,IAC/E;AAEA,UAAM,eAAe,YAAY;AAG/B,UAAI,OAAO,KAAK,QAAQ,GAAG;AACzB,uBAAe,aAAa,MAAM,uBAAsB,eAAe,YAAY;AACnF,uBAAe,MAAM,MAAM,KAAK,yBAAyB,YAAY;AAAA,MACvE,OAAO;AACL,uBAAe,OAAO,eAAe,QAAQ,CAAC;AAC9C,uBAAe,KAAK,UAAU;AAAA,MAChC;AAAA,IACF;AAEA,QAAI,WAAmC;AAEvC,YAAQ,SAAS,YAAY,GAAG;AAAA,MAC9B,KAAK,OAAO;AACV,mBAAW;AACX;AAAA,MACF;AAAA,MACA,KAAK;AAAA,MACL,KAAK,QAAQ;AACX,mBAAW;AACX;AAAA,MACF;AAAA,IACF;AAEA,YAAQ,WAAW;AAAA,MACjB,KAAK,SAAS;AACZ,cAAM,aAAa,QAAQ;AAC3B,uBAAe,KAAK,OAAO;AAC3B;AAAA,MACF;AAAA,MACA,KAAK,SAAS;AACZ,cAAM,aAAa;AACnB,uBAAe,KAAK,OAAO;AAC3B;AAAA,MACF;AAAA,MACA,SAAS;AACP,cAAM,CAAC,iBAAiB,IAAI,eAAe,KAAK,UAAU,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE;AACrF,gBAAQ,mBAAmB;AAAA,UACzB,KAAK,SAAS;AACZ,kBAAM,aAAa;AACnB,2BAAe,KAAK,OAAO,eAAe,KAAK,UAAU;AACzD;AAAA,UACF;AAAA,UACA,KAAK,SAAS;AACZ,kBAAM,aAAa;AACnB,2BAAe,KAAK,OAAO,eAAe,KAAK,UAAU;AACzD;AAAA,UACF;AAAA,UACA,SAAS;AACP,2BAAe,KAAK,UAAU;AAC9B;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;;;AF1SO,IAAM,uBAAuB,MAClC;AAAA,EACE,EAAE,UAAU,EAAE,CAACC,qBAAoB,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACpE;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,sBAAsB,OAAO,MAAM;AACxD,aAAO;AAAA,IACT;AAAA,IACA,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,sBAAsB,OAAO,MAAM;AACxD,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;AOlBF,cAAc;",
4
+ "sourcesContent": ["import { ImageThumbnailSchema } from '@xyo-network/payload-plugins/image-thumbnail'\nimport { createPayloadSetDualPlugin, PayloadSetSchema } from '@xyo-network/sdk'\n\nimport { ImageThumbnailDiviner } from '#diviner-image-thumbnail'\n\nimport { ImageThumbnailWitness } from './Witness/index.ts'\n\nexport const ImageThumbnailPlugin = () =>\n createPayloadSetDualPlugin<ImageThumbnailWitness, ImageThumbnailDiviner>(\n { required: { [ImageThumbnailSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n const result = await ImageThumbnailDiviner.create(params)\n return result\n },\n witness: async (params) => {\n const result = await ImageThumbnailWitness.create(params)\n return result\n },\n },\n )\n", "import { ImageThumbnailSchema } from '@xyo-network/payload-plugins/image-thumbnail'\nimport type { WitnessConfig } from '@xyo-network/sdk'\nimport { asSchema } from '@xyo-network/sdk'\n\nexport const ImageThumbnailWitnessConfigSchema = asSchema(`${ImageThumbnailSchema}.witness.config`, true)\nexport type ImageThumbnailWitnessConfigSchema = typeof ImageThumbnailWitnessConfigSchema\n\nexport type ImageThumbnailEncoding = 'PNG' | 'JPG' | 'GIF'\n\nexport type ImageThumbnailWitnessConfig = WitnessConfig<{\n dataUrlPassthrough?: boolean\n encoding?: ImageThumbnailEncoding\n height?: number\n ipfsGateway?: string\n maxAsyncProcesses?: number\n maxCacheBytes?: number\n maxCacheEntries?: number\n quality?: number\n runExclusive?: boolean\n schema: ImageThumbnailWitnessConfigSchema\n width?: number\n}>\n", "/* eslint-disable max-statements */\nimport { Buffer } from 'node:buffer'\nimport { promises as dnsPromises } from 'node:dns'\n\nimport { exists } from '@ariestools/sdk'\nimport type { ImageThumbnail } from '@xyo-network/payload-plugins/image-thumbnail'\nimport { ImageThumbnailSchema } from '@xyo-network/payload-plugins/image-thumbnail'\nimport type { UrlPayload } from '@xyo-network/payload-plugins/url'\nimport { UrlSchema } from '@xyo-network/payload-plugins/url'\nimport type { Schema } from '@xyo-network/sdk'\nimport { AbstractWitness, ObjectHasher } from '@xyo-network/sdk'\nimport { Semaphore } from 'async-mutex'\nimport { fileTypeFromBuffer } from 'file-type'\nimport graphicsMagick from 'gm'\nimport hasbin from 'hasbin'\nimport { sha256 } from 'hash-wasm'\nimport shajs from 'sha.js'\n\nimport type { ImageThumbnailEncoding } from './Config.ts'\nimport { ImageThumbnailWitnessConfigSchema } from './Config.ts'\nimport { getVideoFrameAsImageFluent } from './ffmpeg/index.ts'\nimport {\n checkIpfsUrl, createDataUrl, resolveDynamicSvg,\n} from './lib/index.ts'\nimport type { ImageThumbnailWitnessParams } from './Params.ts'\n\n// TODO: Break this into two Witnesses?\n\n// setFfmpegPath(ffmpegPath)\n\nconst gm = graphicsMagick.subClass({ imageMagick: '7+' })\n\nexport interface ImageThumbnailWitnessError extends Error {\n name: 'ImageThumbnailWitnessError'\n url: string\n}\n\nexport interface DnsError extends Error {\n code: string\n}\n\nexport class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams = ImageThumbnailWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ImageThumbnailWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = ImageThumbnailWitnessConfigSchema\n\n private _semaphore = new Semaphore(this.maxAsyncProcesses)\n\n get encoding() {\n return this.config.encoding ?? 'PNG'\n }\n\n get height() {\n return this.config.height ?? 128\n }\n\n get ipfsGateway() {\n return this.config.ipfsGateway ?? '5d7b6582.beta.decentralnetworkservices.com'\n }\n\n get maxAsyncProcesses() {\n return this.config.maxAsyncProcesses ?? 4\n }\n\n get quality() {\n return this.config.quality ?? 50\n }\n\n get width() {\n return this.config.width ?? 128\n }\n\n private static async binaryToSha256(data: ArrayBufferLike) {\n const viewData = new Uint8Array(data)\n await ObjectHasher.wasmInitialized\n if (ObjectHasher.wasmSupport.canUseWasm) {\n try {\n return await sha256(viewData)\n } catch {\n ObjectHasher.wasmSupport.allowWasm = false\n }\n }\n\n return shajs('sha256').update(viewData).digest().toString()\n }\n\n private static bufferFromDataUrl(url: string): ArrayBufferLike | undefined {\n if (!url.startsWith('data:image')) {\n return\n }\n const data = url.split(',', 2)[1]\n if (data) {\n return Uint8Array.from(atob(data), c => c.codePointAt(0) ?? 0).buffer\n }\n const error: ImageThumbnailWitnessError = {\n message: 'Invalid data Url',\n name: 'ImageThumbnailWitnessError',\n url,\n }\n throw error\n }\n\n protected override async observeHandler(payloads: UrlPayload[] = []): Promise<ImageThumbnail[]> {\n if (!hasbin.sync('magick')) {\n throw new Error('ImageMagick is required for this witness')\n }\n const urlPayloads = payloads.filter(payload => payload.schema === UrlSchema)\n const process = async () => {\n const results = await Promise.all(\n urlPayloads.map<Promise<ImageThumbnail>>(async ({ url }) => {\n let result: ImageThumbnail\n\n // if it is a data URL, return a Buffer\n const dataBuffer = ImageThumbnailWitness.bufferFromDataUrl(url)\n\n if (dataBuffer) {\n if (this.config.dataUrlPassthrough === true) {\n result = {\n schema: ImageThumbnailSchema,\n sourceHash: await ImageThumbnailWitness.binaryToSha256(dataBuffer),\n sourceUrl: url,\n url,\n }\n } else {\n let cookedDataBuffer = dataBuffer\n const urlParts = url.split(';')\n const [, contentType] = urlParts[0].split(':', 2)\n if (contentType.startsWith('image/svg')) {\n const [encoding, byteString] = urlParts[1].split(',', 2)\n if (encoding === 'base64') {\n const newSvg = await resolveDynamicSvg(byteString)\n const newSvgDataUrl = createDataUrl(Buffer.from(newSvg).buffer, contentType)\n cookedDataBuffer = ImageThumbnailWitness.bufferFromDataUrl(newSvgDataUrl) ?? dataBuffer\n }\n }\n result = await this.processMedia(\n cookedDataBuffer,\n {\n schema: ImageThumbnailSchema,\n sourceUrl: url,\n },\n contentType,\n )\n }\n } else {\n // if it is ipfs, go through cloud flair\n const mutatedUrl = checkIpfsUrl(url, this.ipfsGateway)\n result = await this.fromHttp(mutatedUrl, url)\n }\n return result\n }),\n )\n return results.filter(exists)\n }\n return this.config.runExclusive === true ? await this._semaphore.runExclusive(() => process()) : process()\n }\n\n private async createThumbnailDataUrl(sourceBuffer: ArrayBufferLike, encoding?: ImageThumbnailEncoding) {\n const thumb = await new Promise<Buffer>((resolve, reject) => {\n gm(Buffer.from(sourceBuffer))\n .quality(this.quality)\n .resize(this.width, this.height)\n .flatten()\n .toBuffer(encoding ?? this.encoding, (error, buffer) => {\n if (error) {\n reject(error)\n } else {\n resolve(buffer)\n }\n })\n })\n return createDataUrl(thumb.buffer, 'image/png')\n }\n\n /**\n * Creates an image thumbnail from a video.\n * @param videoBuffer The input video buffer.\n * @returns An buffer containing an image thumbnail for the video.\n */\n private async createThumbnailFromVideo(videoBuffer: ArrayBufferLike) {\n const imageBuffer = await getVideoFrameAsImageFluent(videoBuffer)\n return this.createThumbnailDataUrl(imageBuffer.buffer)\n }\n\n private async fromHttp(url: string, sourceUrl?: string): Promise<ImageThumbnail> {\n let response: Response\n let dnsResult: string[]\n try {\n const urlObj = new URL(url)\n dnsResult = await dnsPromises.resolve(urlObj.host)\n } catch (ex) {\n const error = ex as DnsError\n const result: ImageThumbnail = {\n http: { code: error.code },\n schema: ImageThumbnailSchema,\n sourceUrl: sourceUrl ?? url,\n }\n return result\n }\n try {\n response = await fetch(url)\n } catch (ex) {\n const result: ImageThumbnail = {\n http: { ipAddress: dnsResult[0] },\n schema: ImageThumbnailSchema,\n sourceUrl: sourceUrl ?? url,\n }\n if (ex instanceof Error) {\n result.http = result.http ?? {}\n result.http.code = ex.name\n }\n return result\n }\n\n const result: ImageThumbnail = {\n http: { status: response.status },\n schema: ImageThumbnailSchema,\n sourceUrl: sourceUrl ?? url,\n }\n\n if (response.status >= 200 && response.status < 300) {\n const contentType: string | undefined = response.headers.get('content-type') ?? undefined\n const sourceBuffer = await response.arrayBuffer()\n\n return this.processMedia(sourceBuffer, result, contentType)\n }\n return result\n }\n\n private async processMedia(sourceBuffer: ArrayBufferLike, imageThumbnail: ImageThumbnail, contentType?: string): Promise<ImageThumbnail> {\n const [mediaType, fileType] = contentType?.split('/') ?? ['', '']\n imageThumbnail.mime = imageThumbnail.mime ?? {}\n imageThumbnail.mime.returned = mediaType\n\n try {\n imageThumbnail.mime.detected = await fileTypeFromBuffer(sourceBuffer as ArrayBuffer)\n } catch (ex) {\n const error = ex as Error\n this.logger?.error(`FileType error: ${error.message}`)\n }\n\n const processImage = async (encoding?: ImageThumbnailEncoding) => {\n imageThumbnail.sourceHash = await ImageThumbnailWitness.binaryToSha256(sourceBuffer)\n imageThumbnail.url = await this.createThumbnailDataUrl(sourceBuffer, encoding)\n }\n\n const processVideo = async () => {\n // Gracefully handle the case where ffmpeg is not installed.\n\n if (hasbin.sync('ffmpeg')) {\n imageThumbnail.sourceHash = await ImageThumbnailWitness.binaryToSha256(sourceBuffer)\n imageThumbnail.url = await this.createThumbnailFromVideo(sourceBuffer)\n } else {\n imageThumbnail.mime = imageThumbnail.mime ?? {}\n imageThumbnail.mime.invalid = true\n }\n }\n\n let encoding: ImageThumbnailEncoding = 'PNG'\n\n switch (fileType.toUpperCase()) {\n case 'GIF': {\n encoding = 'GIF'\n break\n }\n case 'JPG':\n case 'JPEG': {\n encoding = 'JPG'\n break\n }\n }\n\n switch (mediaType) {\n case 'image': {\n await processImage(encoding)\n imageThumbnail.mime.type = mediaType\n break\n }\n case 'video': {\n await processVideo()\n imageThumbnail.mime.type = mediaType\n break\n }\n default: {\n const [detectedMediaType] = imageThumbnail.mime.detected?.mime?.split('/') ?? ['', '']\n switch (detectedMediaType) {\n case 'image': {\n await processImage()\n imageThumbnail.mime.type = imageThumbnail.mime.detected?.mime\n break\n }\n case 'video': {\n await processVideo()\n imageThumbnail.mime.type = imageThumbnail.mime.detected?.mime\n break\n }\n default: {\n imageThumbnail.mime.invalid = true\n break\n }\n }\n break\n }\n }\n return imageThumbnail\n }\n}\n", "import { unlink, writeFile } from 'node:fs/promises'\nimport { tmpdir } from 'node:os'\nimport type { WritableOptions } from 'node:stream'\nimport { Writable } from 'node:stream'\n\nimport ffmpeg from 'fluent-ffmpeg'\nimport { v4 as uuid } from 'uuid'\n\n/**\n * A Writable stream that collects output from ffmpeg.\n */\nclass FfmpegOutputStream extends Writable {\n private readonly chunks: Uint8Array[] = []\n\n constructor(options?: WritableOptions) {\n super(options)\n }\n\n override _write(chunk: never, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n this.chunks.push(chunk)\n callback()\n }\n\n /**\n * Collects the output from ffmpeg into a buffer.\n * @returns A buffer containing the concatenated\n * output from ffmpeg.\n */\n toBuffer = () => Buffer.concat(this.chunks)\n}\n\n/**\n * Execute FFmpeg using fluent API with provided input buffer and video thumbnail image.\n * @param videoBuffer Input video buffer.\n * @returns Output buffer containing the video thumbnail image.\n */\nexport const getVideoFrameAsImageFluent = async (videoBuffer: ArrayBufferLike) => {\n // Get a temp file name\n const tmpFile = `/${tmpdir()}/${uuid()}`\n try {\n // Write videoBuffer to temp file for use as input to ffmpeg to\n // avoid issues with ffmpeg inferring premature EOF from buffer\n // passed via stdin (happens when ffmpeg is trying to infer\n // input video format)\n await writeFile(tmpFile, new Uint8Array(videoBuffer), { encoding: 'binary' })\n const imageBuffer = await new Promise<Buffer>((resolve, reject) => {\n // Create a Writable stream to collect PNG output from ffmpeg\n const ffmpegOutput = new FfmpegOutputStream()\n // Execute ffmpeg using fluent API\n ffmpeg()\n // Uncomment to debug CLI args to ffmpeg\n // .on('start', (commandLine) => console.log('Spawned Ffmpeg with command: ' + commandLine))\n .on('error', err => reject(new Error(err.message, { cause: err })))\n // Listen for the 'end' event to combine the output into a buffer holding the PNG image\n .on('end', () => resolve(ffmpegOutput.toBuffer()))\n .input(tmpFile) // Use temp file as input\n .takeFrames(1) // Only take 1st video frame\n .withNoAudio() // Don't include audio\n .outputOptions('-f image2pipe') // Write output to stdout\n .videoCodec('png') // Force PNG output\n // Start processing and direct ffmpeg stdout to writable stream\n .pipe(ffmpegOutput)\n })\n return imageBuffer\n } finally {\n // Cleanup temp file\n try {\n await unlink(tmpFile)\n } catch {\n // No error here since file doesn't exist\n }\n }\n}\n", "import { assertEx } from '@ariestools/sdk'\n\nconst allowIpfsIoRepair = true\n\n/**\n * Returns the equivalent IPFS gateway URL for the supplied URL.\n * @param urlToCheck The URL to check\n * @returns If the supplied URL is an IPFS URL, it converts the URL to the\n * equivalent IPFS gateway URL. Otherwise, returns the original URL.\n */\nexport const checkIpfsUrl = (urlToCheck: string, ipfsGateway?: string): string => {\n try {\n const url = new URL(urlToCheck)\n let protocol = url.protocol\n let host = url.host\n let path = url.pathname\n const query = url.search\n if (protocol === 'ipfs:') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n }\n if (allowIpfsIoRepair && protocol === 'https' && host === 'ipfs.io') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n const pathParts = path.split('/')\n if (pathParts[0] === 'ipfs') {\n pathParts.shift()\n }\n path = pathParts.join('/')\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n }\n return urlToCheck\n } catch {\n // const error = ex as Error\n // console.error(`${error.name}:${error.message} [${urlToCheck}]`)\n // console.log(error.stack)\n return urlToCheck\n }\n}\n", "import { fromByteArray } from 'base64-js'\n\nexport const createDataUrl = (data: ArrayBufferLike, contextType: string, encoding: 'base64' = 'base64') => {\n return `data:${contextType};${encoding},${fromByteArray(new Uint8Array(data))}`\n}\n", "import { toByteArray } from 'base64-js'\nimport { Builder, parseStringPromise } from 'xml2js'\n\ninterface FetchedImage {\n buffer: ArrayBuffer\n contentType: string | null\n href: string\n ok: boolean\n}\n\ninterface SvgImageNode {\n $: { href: string }\n}\n\ninterface SvgNode {\n image: SvgImageNode[]\n}\n\ninterface SvgDocument {\n svg: SvgNode & Record<string, unknown>\n}\n\nexport const resolveDynamicSvg = async (base64Bytes: string): Promise<string> => {\n const decoder = new TextDecoder()\n const bytes = toByteArray(base64Bytes)\n const svg = decoder.decode(bytes)\n const svgObj = (await parseStringPromise(svg)) as SvgDocument\n const svgNode = svgObj.svg\n const imageResults: FetchedImage[] = await Promise.all(\n svgNode.image.map(async (img): Promise<FetchedImage> => {\n const { href } = img.$\n const response = await fetch(href)\n return {\n buffer: await response.arrayBuffer(),\n contentType: response.headers.get('content-type'),\n href,\n ok: response.ok,\n }\n }),\n )\n const image = imageResults.map(({\n buffer, contentType, href, ok,\n }) => {\n if (ok && buffer.byteLength > 0) {\n const sourceBytes = new Uint8Array(buffer)\n const base64 = sourceBytes.toBase64()\n return { $: { href: `data:${contentType ?? 'application/octet-stream'};base64,${base64}` } }\n }\n return { $: { href } }\n })\n const updatedSVG = { ...svgObj, svg: { ...svgNode, image } }\n const builder = new Builder()\n return builder.buildObject(updatedSVG)\n}\n", "export { ImageThumbnailPlugin as default, ImageThumbnailPlugin } from './Plugin.ts'\nexport * from './Witness/index.ts'\nexport * from '#diviner-image-thumbnail'\n"],
5
+ "mappings": "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",
6
6
  "names": ["ImageThumbnailSchema", "Buffer", "ImageThumbnailSchema", "ImageThumbnailSchema", "Buffer", "result", "encoding", "ImageThumbnailSchema"]
7
7
  }
@@ -4,6 +4,7 @@ export declare const asApiCallPayload: {
4
4
  readonly __schema: true;
5
5
  };
6
6
  uri: string;
7
+ $version?: number | undefined;
7
8
  headers?: Record<string, string | undefined> | undefined;
8
9
  queries?: Record<string, string> | undefined;
9
10
  verb?: "get" | "post" | undefined;
@@ -11,6 +12,7 @@ export declare const asApiCallPayload: {
11
12
  schema: "network.xyo.api.call" & {
12
13
  readonly __schema: true;
13
14
  };
15
+ $version?: number | undefined;
14
16
  params?: Record<string, string> | undefined;
15
17
  uriTemplate?: string | undefined;
16
18
  headers?: Record<string, string | undefined> | undefined;
@@ -22,6 +24,7 @@ export declare const asApiCallPayload: {
22
24
  readonly __schema: true;
23
25
  };
24
26
  uri: string;
27
+ $version?: number | undefined;
25
28
  headers?: Record<string, string | undefined> | undefined;
26
29
  queries?: Record<string, string> | undefined;
27
30
  verb?: "get" | "post" | undefined;
@@ -29,6 +32,7 @@ export declare const asApiCallPayload: {
29
32
  schema: "network.xyo.api.call" & {
30
33
  readonly __schema: true;
31
34
  };
35
+ $version?: number | undefined;
32
36
  params?: Record<string, string> | undefined;
33
37
  uriTemplate?: string | undefined;
34
38
  headers?: Record<string, string | undefined> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"asApiCall.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCall.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA"}
1
+ {"version":3,"file":"asApiCall.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCall.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAsD,CAAA"}
@@ -6,6 +6,7 @@ export declare const asApiCallBase64Result: {
6
6
  call: import("@ariestools/sdk").BrandedHash;
7
7
  contentType: string;
8
8
  data: string;
9
+ $version?: number | undefined;
9
10
  }) | undefined;
10
11
  <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
11
12
  schema: string & {
@@ -14,6 +15,7 @@ export declare const asApiCallBase64Result: {
14
15
  call: import("@ariestools/sdk").BrandedHash;
15
16
  contentType: string;
16
17
  data: string;
18
+ $version?: number | undefined;
17
19
  };
18
20
  };
19
21
  //# sourceMappingURL=asApiCallBase64Result.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asApiCallBase64Result.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCallBase64Result.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAAgE,CAAA"}
1
+ {"version":3,"file":"asApiCallBase64Result.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCallBase64Result.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;CAAgE,CAAA"}
@@ -6,11 +6,13 @@ export declare const asApiCallResult: {
6
6
  call: import("@ariestools/sdk").BrandedHash;
7
7
  contentType: string;
8
8
  data: string;
9
+ $version?: number | undefined;
9
10
  } | {
10
11
  schema: string & {
11
12
  readonly __schema: true;
12
13
  };
13
14
  call: import("@ariestools/sdk").BrandedHash;
15
+ $version?: number | undefined;
14
16
  http?: {
15
17
  code?: string | undefined;
16
18
  status?: number | undefined;
@@ -22,6 +24,7 @@ export declare const asApiCallResult: {
22
24
  call: import("@ariestools/sdk").BrandedHash;
23
25
  contentType: "application/json";
24
26
  data: import('../index.js').ApiCallJsonResultType;
27
+ $version?: number | undefined;
25
28
  })) | undefined;
26
29
  <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & ({
27
30
  schema: string & {
@@ -30,11 +33,13 @@ export declare const asApiCallResult: {
30
33
  call: import("@ariestools/sdk").BrandedHash;
31
34
  contentType: string;
32
35
  data: string;
36
+ $version?: number | undefined;
33
37
  } | {
34
38
  schema: string & {
35
39
  readonly __schema: true;
36
40
  };
37
41
  call: import("@ariestools/sdk").BrandedHash;
42
+ $version?: number | undefined;
38
43
  http?: {
39
44
  code?: string | undefined;
40
45
  status?: number | undefined;
@@ -46,6 +51,7 @@ export declare const asApiCallResult: {
46
51
  call: import("@ariestools/sdk").BrandedHash;
47
52
  contentType: "application/json";
48
53
  data: import('../index.js').ApiCallJsonResultType;
54
+ $version?: number | undefined;
49
55
  });
50
56
  };
51
57
  //# sourceMappingURL=asApiCallResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asApiCallResult.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCallResult.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoD,CAAA"}
1
+ {"version":3,"file":"asApiCallResult.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCallResult.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoD,CAAA"}
@@ -6,6 +6,7 @@ export declare const asApiCallXmlResult: {
6
6
  call: import("@ariestools/sdk").BrandedHash;
7
7
  contentType: "application/xml" | "text/xml";
8
8
  data: string;
9
+ $version?: number | undefined;
9
10
  }) | undefined;
10
11
  <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
11
12
  schema: string & {
@@ -14,6 +15,7 @@ export declare const asApiCallXmlResult: {
14
15
  call: import("@ariestools/sdk").BrandedHash;
15
16
  contentType: "application/xml" | "text/xml";
16
17
  data: string;
18
+ $version?: number | undefined;
17
19
  };
18
20
  };
19
21
  //# sourceMappingURL=asApiCallXmlResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asApiCallXmlResult.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCallXmlResult.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;CAA0D,CAAA"}
1
+ {"version":3,"file":"asApiCallXmlResult.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiCallXmlResult.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;CAA0D,CAAA"}
@@ -4,6 +4,7 @@ export declare const asApiUriCallPayload: {
4
4
  readonly __schema: true;
5
5
  };
6
6
  uri: string;
7
+ $version?: number | undefined;
7
8
  headers?: Record<string, string | undefined> | undefined;
8
9
  queries?: Record<string, string> | undefined;
9
10
  verb?: "get" | "post" | undefined;
@@ -13,6 +14,7 @@ export declare const asApiUriCallPayload: {
13
14
  readonly __schema: true;
14
15
  };
15
16
  uri: string;
17
+ $version?: number | undefined;
16
18
  headers?: Record<string, string | undefined> | undefined;
17
19
  queries?: Record<string, string> | undefined;
18
20
  verb?: "get" | "post" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"asApiUriCall.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiUriCall.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAA4D,CAAA"}
1
+ {"version":3,"file":"asApiUriCall.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/api-call-witness/Payload/identity/asApiUriCall.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAA4D,CAAA"}