hardhat-airsign 0.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +15 -10
  2. package/app-dist/assets/{add-CRSDwB2e.js → add-B1O0pD4h.js} +2 -2
  3. package/app-dist/assets/{add-CRSDwB2e.js.map → add-B1O0pD4h.js.map} +1 -1
  4. package/app-dist/assets/{all-wallets-DgqGjhs6.js → all-wallets-BcziYGZ_.js} +2 -2
  5. package/app-dist/assets/{all-wallets-DgqGjhs6.js.map → all-wallets-BcziYGZ_.js.map} +1 -1
  6. package/app-dist/assets/{app-store-BShzSz5b.js → app-store-DTZWqmmw.js} +2 -2
  7. package/app-dist/assets/{app-store-BShzSz5b.js.map → app-store-DTZWqmmw.js.map} +1 -1
  8. package/app-dist/assets/{apple-B_-sOHVN.js → apple-DnCGgNDe.js} +2 -2
  9. package/app-dist/assets/{apple-B_-sOHVN.js.map → apple-DnCGgNDe.js.map} +1 -1
  10. package/app-dist/assets/{arrow-bottom-DF5A1caW.js → arrow-bottom-DXZcPFiW.js} +2 -2
  11. package/app-dist/assets/{arrow-bottom-DF5A1caW.js.map → arrow-bottom-DXZcPFiW.js.map} +1 -1
  12. package/app-dist/assets/{arrow-bottom-circle-DIuZ8lC1.js → arrow-bottom-circle-1VxgUNV2.js} +2 -2
  13. package/app-dist/assets/{arrow-bottom-circle-DIuZ8lC1.js.map → arrow-bottom-circle-1VxgUNV2.js.map} +1 -1
  14. package/app-dist/assets/{arrow-left-CwTRYhiP.js → arrow-left-UpOOX78-.js} +2 -2
  15. package/app-dist/assets/{arrow-left-CwTRYhiP.js.map → arrow-left-UpOOX78-.js.map} +1 -1
  16. package/app-dist/assets/{arrow-right-CxBc1Z9Y.js → arrow-right-BgZSbrSb.js} +2 -2
  17. package/app-dist/assets/{arrow-right-CxBc1Z9Y.js.map → arrow-right-BgZSbrSb.js.map} +1 -1
  18. package/app-dist/assets/{arrow-top-DsqFntWs.js → arrow-top-CFitTuMQ.js} +2 -2
  19. package/app-dist/assets/{arrow-top-DsqFntWs.js.map → arrow-top-CFitTuMQ.js.map} +1 -1
  20. package/app-dist/assets/{bank-DaZBNytp.js → bank-Rx-cZHky.js} +2 -2
  21. package/app-dist/assets/{bank-DaZBNytp.js.map → bank-Rx-cZHky.js.map} +1 -1
  22. package/app-dist/assets/{basic-uYjQL5PS.js → basic-BqBpZO5u.js} +2 -2
  23. package/app-dist/assets/{basic-uYjQL5PS.js.map → basic-BqBpZO5u.js.map} +1 -1
  24. package/app-dist/assets/{browser-C1c_DZTT.js → browser-CxT64RYX.js} +2 -2
  25. package/app-dist/assets/{browser-C1c_DZTT.js.map → browser-CxT64RYX.js.map} +1 -1
  26. package/app-dist/assets/{card-Drom7Tv5.js → card-wzpea_VN.js} +2 -2
  27. package/app-dist/assets/{card-Drom7Tv5.js.map → card-wzpea_VN.js.map} +1 -1
  28. package/app-dist/assets/{ccip-DvVERuyo.js → ccip-8vMs6YOX.js} +2 -2
  29. package/app-dist/assets/{ccip-DvVERuyo.js.map → ccip-8vMs6YOX.js.map} +1 -1
  30. package/app-dist/assets/{checkmark-bWnoU59f.js → checkmark-5ZvdJ4cE.js} +2 -2
  31. package/app-dist/assets/{checkmark-bWnoU59f.js.map → checkmark-5ZvdJ4cE.js.map} +1 -1
  32. package/app-dist/assets/{checkmark-bold-xdhuFcVd.js → checkmark-bold-BYMoYpV3.js} +2 -2
  33. package/app-dist/assets/{checkmark-bold-xdhuFcVd.js.map → checkmark-bold-BYMoYpV3.js.map} +1 -1
  34. package/app-dist/assets/{chevron-bottom-g8RZtvvg.js → chevron-bottom-B6KoLsrA.js} +2 -2
  35. package/app-dist/assets/{chevron-bottom-g8RZtvvg.js.map → chevron-bottom-B6KoLsrA.js.map} +1 -1
  36. package/app-dist/assets/{chevron-left-CHq90J3p.js → chevron-left-UNWSh_Nj.js} +2 -2
  37. package/app-dist/assets/{chevron-left-CHq90J3p.js.map → chevron-left-UNWSh_Nj.js.map} +1 -1
  38. package/app-dist/assets/{chevron-right-DucMuosL.js → chevron-right-CLj5tStC.js} +2 -2
  39. package/app-dist/assets/{chevron-right-DucMuosL.js.map → chevron-right-CLj5tStC.js.map} +1 -1
  40. package/app-dist/assets/{chevron-top-jMvIimGH.js → chevron-top-DlIr11pX.js} +2 -2
  41. package/app-dist/assets/{chevron-top-jMvIimGH.js.map → chevron-top-DlIr11pX.js.map} +1 -1
  42. package/app-dist/assets/{chrome-store-DOAtVsxB.js → chrome-store-DSK4e2pT.js} +2 -2
  43. package/app-dist/assets/{chrome-store-DOAtVsxB.js.map → chrome-store-DSK4e2pT.js.map} +1 -1
  44. package/app-dist/assets/{clock-ByhfgiIa.js → clock-BFabU289.js} +2 -2
  45. package/app-dist/assets/{clock-ByhfgiIa.js.map → clock-BFabU289.js.map} +1 -1
  46. package/app-dist/assets/{close-kCTB-L29.js → close-BUfuggox.js} +2 -2
  47. package/app-dist/assets/{close-kCTB-L29.js.map → close-BUfuggox.js.map} +1 -1
  48. package/app-dist/assets/{coinPlaceholder-Nn0hvSA9.js → coinPlaceholder-DISCc80i.js} +2 -2
  49. package/app-dist/assets/{coinPlaceholder-Nn0hvSA9.js.map → coinPlaceholder-DISCc80i.js.map} +1 -1
  50. package/app-dist/assets/{compass-CbGNPMoI.js → compass-BoZDQj8C.js} +2 -2
  51. package/app-dist/assets/{compass-CbGNPMoI.js.map → compass-BoZDQj8C.js.map} +1 -1
  52. package/app-dist/assets/{copy-CAKeZlqs.js → copy-B7bketHz.js} +2 -2
  53. package/app-dist/assets/{copy-CAKeZlqs.js.map → copy-B7bketHz.js.map} +1 -1
  54. package/app-dist/assets/{core-BYSbgSRm.js → core-DPYRoLAn.js} +5 -5
  55. package/app-dist/assets/{core-BYSbgSRm.js.map → core-DPYRoLAn.js.map} +1 -1
  56. package/app-dist/assets/{cursor-Bt2rMzub.js → cursor-Dm0JxInY.js} +2 -2
  57. package/app-dist/assets/{cursor-Bt2rMzub.js.map → cursor-Dm0JxInY.js.map} +1 -1
  58. package/app-dist/assets/{cursor-transparent-B9I7l5HE.js → cursor-transparent-2ch9c1jg.js} +2 -2
  59. package/app-dist/assets/{cursor-transparent-B9I7l5HE.js.map → cursor-transparent-2ch9c1jg.js.map} +1 -1
  60. package/app-dist/assets/{desktop-Be_5H0x-.js → desktop-CIwtNj0u.js} +2 -2
  61. package/app-dist/assets/{desktop-Be_5H0x-.js.map → desktop-CIwtNj0u.js.map} +1 -1
  62. package/app-dist/assets/{disconnect-Dgoh7Tjm.js → disconnect-BOp-awMm.js} +2 -2
  63. package/app-dist/assets/{disconnect-Dgoh7Tjm.js.map → disconnect-BOp-awMm.js.map} +1 -1
  64. package/app-dist/assets/{discord-hBwKNnvZ.js → discord-BV0ggy08.js} +2 -2
  65. package/app-dist/assets/{discord-hBwKNnvZ.js.map → discord-BV0ggy08.js.map} +1 -1
  66. package/app-dist/assets/{etherscan-D0htYnpR.js → etherscan-t7Ki-QEK.js} +2 -2
  67. package/app-dist/assets/{etherscan-D0htYnpR.js.map → etherscan-t7Ki-QEK.js.map} +1 -1
  68. package/app-dist/assets/{events-pn7_SzwY.js → events-CavTDrjb.js} +2 -2
  69. package/app-dist/assets/{events-pn7_SzwY.js.map → events-CavTDrjb.js.map} +1 -1
  70. package/app-dist/assets/{exclamation-triangle-DOILyuF7.js → exclamation-triangle-Ccoe4UL9.js} +2 -2
  71. package/app-dist/assets/{exclamation-triangle-DOILyuF7.js.map → exclamation-triangle-Ccoe4UL9.js.map} +1 -1
  72. package/app-dist/assets/{extension-C9VDzCuK.js → extension-ChDmttRe.js} +2 -2
  73. package/app-dist/assets/{extension-C9VDzCuK.js.map → extension-ChDmttRe.js.map} +1 -1
  74. package/app-dist/assets/{external-link-CHYUmCEz.js → external-link-DubRbP6I.js} +2 -2
  75. package/app-dist/assets/{external-link-CHYUmCEz.js.map → external-link-DubRbP6I.js.map} +1 -1
  76. package/app-dist/assets/{facebook-Bsw-oFCw.js → facebook-CJcCYN5s.js} +2 -2
  77. package/app-dist/assets/{facebook-Bsw-oFCw.js.map → facebook-CJcCYN5s.js.map} +1 -1
  78. package/app-dist/assets/{farcaster-1gUIAUSw.js → farcaster-B4THrfxr.js} +2 -2
  79. package/app-dist/assets/{farcaster-1gUIAUSw.js.map → farcaster-B4THrfxr.js.map} +1 -1
  80. package/app-dist/assets/{filters-DDG3UMYY.js → filters-CuA9h5f-.js} +2 -2
  81. package/app-dist/assets/{filters-DDG3UMYY.js.map → filters-CuA9h5f-.js.map} +1 -1
  82. package/app-dist/assets/{github-CdtDuNaw.js → github-_wOQdqR_.js} +2 -2
  83. package/app-dist/assets/{github-CdtDuNaw.js.map → github-_wOQdqR_.js.map} +1 -1
  84. package/app-dist/assets/{google-BsG5fyrR.js → google-BETdiWIY.js} +2 -2
  85. package/app-dist/assets/{google-BsG5fyrR.js.map → google-BETdiWIY.js.map} +1 -1
  86. package/app-dist/assets/{help-circle-BCv1YqDB.js → help-circle-DGL5kFly.js} +2 -2
  87. package/app-dist/assets/{help-circle-BCv1YqDB.js.map → help-circle-DGL5kFly.js.map} +1 -1
  88. package/app-dist/assets/{id-CuxXJxny.js → id-BAmiPiG3.js} +2 -2
  89. package/app-dist/assets/{id-CuxXJxny.js.map → id-BAmiPiG3.js.map} +1 -1
  90. package/app-dist/assets/{image-B6FZSvkt.js → image-DBuiW2ya.js} +2 -2
  91. package/app-dist/assets/{image-B6FZSvkt.js.map → image-DBuiW2ya.js.map} +1 -1
  92. package/app-dist/assets/{index-BV0j_tJd.js → index-B7r6Bd0d.js} +2 -2
  93. package/app-dist/assets/{index-BV0j_tJd.js.map → index-B7r6Bd0d.js.map} +1 -1
  94. package/app-dist/assets/{index-CqsmC2RT.js → index-BgHayQna.js} +2 -2
  95. package/app-dist/assets/{index-CqsmC2RT.js.map → index-BgHayQna.js.map} +1 -1
  96. package/app-dist/assets/{index-COvL4P9m.js → index-BjRfNTdk.js} +2 -2
  97. package/app-dist/assets/{index-COvL4P9m.js.map → index-BjRfNTdk.js.map} +1 -1
  98. package/app-dist/assets/{index-Bu_XtD5E.css → index-C31w0EhJ.css} +1 -1
  99. package/app-dist/assets/index-D2ubWGvc.js +1753 -0
  100. package/app-dist/assets/index-D2ubWGvc.js.map +1 -0
  101. package/app-dist/assets/{index-DgGGl0Fe.js → index-DStAvMlI.js} +4 -4
  102. package/app-dist/assets/{index-DgGGl0Fe.js.map → index-DStAvMlI.js.map} +1 -1
  103. package/app-dist/assets/{index-DCjRGeb3.js → index-Dt_15Vcx.js} +2 -2
  104. package/app-dist/assets/{index-DCjRGeb3.js.map → index-Dt_15Vcx.js.map} +1 -1
  105. package/app-dist/assets/{index.es-DO7evs6Y.js → index.es-BaHcVq9H.js} +5 -5
  106. package/app-dist/assets/{index.es-DO7evs6Y.js.map → index.es-BaHcVq9H.js.map} +1 -1
  107. package/app-dist/assets/{info-Cywbxt_C.js → info-BGwX-8wC.js} +2 -2
  108. package/app-dist/assets/{info-Cywbxt_C.js.map → info-BGwX-8wC.js.map} +1 -1
  109. package/app-dist/assets/{info-circle-C86J6rkz.js → info-circle-BVE7L9LU.js} +2 -2
  110. package/app-dist/assets/{info-circle-C86J6rkz.js.map → info-circle-BVE7L9LU.js.map} +1 -1
  111. package/app-dist/assets/{lightbulb-CrZ_HglP.js → lightbulb-wyn0YT99.js} +2 -2
  112. package/app-dist/assets/{lightbulb-CrZ_HglP.js.map → lightbulb-wyn0YT99.js.map} +1 -1
  113. package/app-dist/assets/{mail-C3L0F8f-.js → mail-CqURWsZw.js} +2 -2
  114. package/app-dist/assets/{mail-C3L0F8f-.js.map → mail-CqURWsZw.js.map} +1 -1
  115. package/app-dist/assets/{metamask-sdk-CF6XpUqS.js → metamask-sdk-CCICWViI.js} +2 -2
  116. package/app-dist/assets/{metamask-sdk-CF6XpUqS.js.map → metamask-sdk-CCICWViI.js.map} +1 -1
  117. package/app-dist/assets/{mobile-D15vpxIp.js → mobile-DxekcR5S.js} +2 -2
  118. package/app-dist/assets/{mobile-D15vpxIp.js.map → mobile-DxekcR5S.js.map} +1 -1
  119. package/app-dist/assets/{more-B7ExUA9_.js → more-B2xjqArO.js} +2 -2
  120. package/app-dist/assets/{more-B7ExUA9_.js.map → more-B2xjqArO.js.map} +1 -1
  121. package/app-dist/assets/{network-placeholder-CcVy_R0p.js → network-placeholder-xy3H4Mg-.js} +2 -2
  122. package/app-dist/assets/{network-placeholder-CcVy_R0p.js.map → network-placeholder-xy3H4Mg-.js.map} +1 -1
  123. package/app-dist/assets/{nftPlaceholder-BACi0fly.js → nftPlaceholder-kGyQv4gE.js} +2 -2
  124. package/app-dist/assets/{nftPlaceholder-BACi0fly.js.map → nftPlaceholder-kGyQv4gE.js.map} +1 -1
  125. package/app-dist/assets/{off-Duwf9ts8.js → off-CSqaEbkD.js} +2 -2
  126. package/app-dist/assets/{off-Duwf9ts8.js.map → off-CSqaEbkD.js.map} +1 -1
  127. package/app-dist/assets/{play-store-4-EkI0KV.js → play-store-EIdU_7Z6.js} +2 -2
  128. package/app-dist/assets/{play-store-4-EkI0KV.js.map → play-store-EIdU_7Z6.js.map} +1 -1
  129. package/app-dist/assets/{plus-aeb5pwem.js → plus-CPg4pjRj.js} +2 -2
  130. package/app-dist/assets/{plus-aeb5pwem.js.map → plus-CPg4pjRj.js.map} +1 -1
  131. package/app-dist/assets/{qr-code-Cz7L38yy.js → qr-code-QAMIsYXK.js} +2 -2
  132. package/app-dist/assets/{qr-code-Cz7L38yy.js.map → qr-code-QAMIsYXK.js.map} +1 -1
  133. package/app-dist/assets/{recycle-horizontal-yjJpXq0U.js → recycle-horizontal-CV5Qhw2Q.js} +2 -2
  134. package/app-dist/assets/{recycle-horizontal-yjJpXq0U.js.map → recycle-horizontal-CV5Qhw2Q.js.map} +1 -1
  135. package/app-dist/assets/{refresh-fCA8pyDR.js → refresh-CJiM3xIB.js} +2 -2
  136. package/app-dist/assets/{refresh-fCA8pyDR.js.map → refresh-CJiM3xIB.js.map} +1 -1
  137. package/app-dist/assets/{reown-logo-YZnn6vkB.js → reown-logo-2D0oWXpD.js} +2 -2
  138. package/app-dist/assets/{reown-logo-YZnn6vkB.js.map → reown-logo-2D0oWXpD.js.map} +1 -1
  139. package/app-dist/assets/{search-BTh-Taun.js → search-DaHshq-U.js} +2 -2
  140. package/app-dist/assets/{search-BTh-Taun.js.map → search-DaHshq-U.js.map} +1 -1
  141. package/app-dist/assets/{secp256k1-DHeNy7w5.js → secp256k1-Od6Yo9wC.js} +2 -2
  142. package/app-dist/assets/{secp256k1-DHeNy7w5.js.map → secp256k1-Od6Yo9wC.js.map} +1 -1
  143. package/app-dist/assets/{secp256k1-BmolwVbs.js → secp256k1-RfsuBfnr.js} +2 -2
  144. package/app-dist/assets/{secp256k1-BmolwVbs.js.map → secp256k1-RfsuBfnr.js.map} +1 -1
  145. package/app-dist/assets/{send-n_iRWU2b.js → send-CYoNJcmR.js} +2 -2
  146. package/app-dist/assets/{send-n_iRWU2b.js.map → send-CYoNJcmR.js.map} +1 -1
  147. package/app-dist/assets/{swapHorizontal-BP6PC_Z_.js → swapHorizontal-CZlBSPys.js} +2 -2
  148. package/app-dist/assets/{swapHorizontal-BP6PC_Z_.js.map → swapHorizontal-CZlBSPys.js.map} +1 -1
  149. package/app-dist/assets/{swapHorizontalBold-CFegHLnf.js → swapHorizontalBold-CRZWDopS.js} +2 -2
  150. package/app-dist/assets/{swapHorizontalBold-CFegHLnf.js.map → swapHorizontalBold-CRZWDopS.js.map} +1 -1
  151. package/app-dist/assets/{swapHorizontalMedium-SMFfM3Zt.js → swapHorizontalMedium-CnvLAErw.js} +2 -2
  152. package/app-dist/assets/{swapHorizontalMedium-SMFfM3Zt.js.map → swapHorizontalMedium-CnvLAErw.js.map} +1 -1
  153. package/app-dist/assets/{swapHorizontalRoundedBold-BFRiRjq3.js → swapHorizontalRoundedBold-dSf21G7J.js} +2 -2
  154. package/app-dist/assets/{swapHorizontalRoundedBold-BFRiRjq3.js.map → swapHorizontalRoundedBold-dSf21G7J.js.map} +1 -1
  155. package/app-dist/assets/{swapVertical-DDYPFhjA.js → swapVertical-VhVxJU3T.js} +2 -2
  156. package/app-dist/assets/{swapVertical-DDYPFhjA.js.map → swapVertical-VhVxJU3T.js.map} +1 -1
  157. package/app-dist/assets/{telegram-CgxOCx9n.js → telegram-B-C9jpHB.js} +2 -2
  158. package/app-dist/assets/{telegram-CgxOCx9n.js.map → telegram-B-C9jpHB.js.map} +1 -1
  159. package/app-dist/assets/{three-dots-D1ACjz76.js → three-dots-FILuNYsd.js} +2 -2
  160. package/app-dist/assets/{three-dots-D1ACjz76.js.map → three-dots-FILuNYsd.js.map} +1 -1
  161. package/app-dist/assets/{twitch-B2cSw5Dv.js → twitch-DzwaF4Xb.js} +2 -2
  162. package/app-dist/assets/{twitch-B2cSw5Dv.js.map → twitch-DzwaF4Xb.js.map} +1 -1
  163. package/app-dist/assets/{twitterIcon-Y2aP57GN.js → twitterIcon-BlKnBtTW.js} +2 -2
  164. package/app-dist/assets/{twitterIcon-Y2aP57GN.js.map → twitterIcon-BlKnBtTW.js.map} +1 -1
  165. package/app-dist/assets/{verify-DLqSD1rk.js → verify-CmtNTJ_r.js} +2 -2
  166. package/app-dist/assets/{verify-DLqSD1rk.js.map → verify-CmtNTJ_r.js.map} +1 -1
  167. package/app-dist/assets/{verify-filled-M4ZQNUx-.js → verify-filled-DqUbrpnW.js} +2 -2
  168. package/app-dist/assets/{verify-filled-M4ZQNUx-.js.map → verify-filled-DqUbrpnW.js.map} +1 -1
  169. package/app-dist/assets/{w3m-modal-DO_pwuIZ.js → w3m-modal-CACYy1Ye.js} +2 -2
  170. package/app-dist/assets/{w3m-modal-DO_pwuIZ.js.map → w3m-modal-CACYy1Ye.js.map} +1 -1
  171. package/app-dist/assets/{wallet-BK-Vsgfk.js → wallet-DG-gDy5_.js} +2 -2
  172. package/app-dist/assets/{wallet-BK-Vsgfk.js.map → wallet-DG-gDy5_.js.map} +1 -1
  173. package/app-dist/assets/{wallet-placeholder-Dz0rtjLT.js → wallet-placeholder-C5F1lcuc.js} +2 -2
  174. package/app-dist/assets/{wallet-placeholder-Dz0rtjLT.js.map → wallet-placeholder-C5F1lcuc.js.map} +1 -1
  175. package/app-dist/assets/{walletconnect-EGqMGNfn.js → walletconnect-D9ToqDlh.js} +2 -2
  176. package/app-dist/assets/{walletconnect-EGqMGNfn.js.map → walletconnect-D9ToqDlh.js.map} +1 -1
  177. package/app-dist/assets/{warning-circle-BL_LsWzv.js → warning-circle-5kuvvJFh.js} +2 -2
  178. package/app-dist/assets/{warning-circle-BL_LsWzv.js.map → warning-circle-5kuvvJFh.js.map} +1 -1
  179. package/app-dist/assets/{x-Ck4eRtmA.js → x-B1dqvWvO.js} +2 -2
  180. package/app-dist/assets/{x-Ck4eRtmA.js.map → x-B1dqvWvO.js.map} +1 -1
  181. package/app-dist/index.html +2 -2
  182. package/dist/ContractService.d.ts +159 -0
  183. package/dist/ContractService.d.ts.map +1 -0
  184. package/dist/ContractService.js +530 -0
  185. package/dist/ContractService.js.map +1 -0
  186. package/dist/SigningServer.d.ts +6 -0
  187. package/dist/SigningServer.d.ts.map +1 -1
  188. package/dist/SigningServer.js +395 -0
  189. package/dist/SigningServer.js.map +1 -1
  190. package/dist/adapters/ethers-adapter.d.ts +34 -0
  191. package/dist/adapters/ethers-adapter.d.ts.map +1 -0
  192. package/dist/adapters/ethers-adapter.js +106 -0
  193. package/dist/adapters/ethers-adapter.js.map +1 -0
  194. package/dist/index.d.ts +2 -0
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/index.js +13 -3
  197. package/dist/index.js.map +1 -1
  198. package/dist/tasks/start.js +1 -1
  199. package/package.json +6 -3
  200. package/app-dist/assets/index-StZFkTrD.js +0 -1753
  201. package/app-dist/assets/index-StZFkTrD.js.map +0 -1
@@ -0,0 +1,530 @@
1
+ "use strict";
2
+ /**
3
+ * ContractService — handles contract artifact discovery, ABI parsing,
4
+ * deployment address detection, read-only function execution, and event decoding.
5
+ *
6
+ * This service is version-agnostic — it uses the ethers adapter for all
7
+ * blockchain interactions, making it work with both ethers v5 (airsign v1)
8
+ * and ethers v6 (airsign v2).
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.ContractService = void 0;
15
+ const path_1 = __importDefault(require("path"));
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const ethers_adapter_1 = require("./adapters/ethers-adapter");
18
+ // ERC-1967 implementation slot
19
+ const ERC1967_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
20
+ // ERC-1967 beacon slot
21
+ const ERC1967_BEACON_SLOT = "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50";
22
+ // ERC-1967 admin slot
23
+ const ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
24
+ // ─── ContractService ──────────────────────────────────────────────
25
+ class ContractService {
26
+ constructor(projectRoot, networks) {
27
+ this.contracts = [];
28
+ /** User-configured addresses: contractName → (networkName → address) */
29
+ this.userAddresses = {};
30
+ /**
31
+ * Parse a single ABI param (handles nested components for tuples).
32
+ */
33
+ this.parseParam = (param) => {
34
+ const result = {
35
+ name: param.name || "",
36
+ type: param.type,
37
+ };
38
+ if (param.indexed) {
39
+ result.indexed = true;
40
+ }
41
+ if (param.internalType) {
42
+ result.internalType = param.internalType;
43
+ }
44
+ // Recursively parse tuple components
45
+ if (param.components && Array.isArray(param.components)) {
46
+ result.components = param.components.map(this.parseParam);
47
+ }
48
+ return result;
49
+ };
50
+ this.projectRoot = projectRoot;
51
+ this.networks = networks;
52
+ this.addressFilePath = path_1.default.join(projectRoot, ".airsign-addresses.json");
53
+ this.loadUserAddresses();
54
+ }
55
+ // ─── Initialization ───────────────────────────────────────────
56
+ /**
57
+ * Scan artifacts directory and build the contract list.
58
+ * Call this once on server start.
59
+ */
60
+ async scanArtifacts() {
61
+ const artifactsDir = path_1.default.join(this.projectRoot, "artifacts");
62
+ if (!fs_1.default.existsSync(artifactsDir)) {
63
+ console.log(" ℹ️ No artifacts/ directory found. Compile contracts first.");
64
+ this.contracts = [];
65
+ return;
66
+ }
67
+ const artifacts = this.findArtifactFiles(artifactsDir);
68
+ this.contracts = [];
69
+ for (const artifactPath of artifacts) {
70
+ try {
71
+ const raw = fs_1.default.readFileSync(artifactPath, "utf-8");
72
+ const artifact = JSON.parse(raw);
73
+ // Skip non-contract artifacts (no ABI or no bytecode)
74
+ if (!artifact.abi || !Array.isArray(artifact.abi) || artifact.abi.length === 0) {
75
+ continue;
76
+ }
77
+ // Skip interfaces and abstract contracts (no deployable bytecode)
78
+ if (!artifact.bytecode ||
79
+ artifact.bytecode === "0x" ||
80
+ artifact.bytecode === "") {
81
+ continue;
82
+ }
83
+ const contractName = artifact.contractName;
84
+ const sourceName = artifact.sourceName || "";
85
+ // Parse ABI
86
+ const functions = this.parseFunctions(artifact.abi);
87
+ const events = this.parseEvents(artifact.abi);
88
+ // Skip contracts with no functions (pure event-only contracts)
89
+ if (functions.read.length === 0 && functions.write.length === 0) {
90
+ continue;
91
+ }
92
+ // Auto-detect deployed addresses
93
+ const deployedAddresses = this.detectDeployedAddresses(contractName);
94
+ // Merge user-configured addresses (they override auto-detected)
95
+ const userAddrs = this.userAddresses[contractName] || {};
96
+ const mergedAddresses = { ...deployedAddresses, ...userAddrs };
97
+ this.contracts.push({
98
+ contractName,
99
+ sourceName,
100
+ abi: artifact.abi,
101
+ functions,
102
+ events,
103
+ deployedAddresses: mergedAddresses,
104
+ });
105
+ }
106
+ catch (err) {
107
+ // Skip malformed artifacts
108
+ continue;
109
+ }
110
+ }
111
+ console.log(` 📜 Found ${this.contracts.length} contracts with functions`);
112
+ }
113
+ // ─── Public API ───────────────────────────────────────────────
114
+ /**
115
+ * Get all discovered contracts.
116
+ */
117
+ getContracts() {
118
+ return this.contracts;
119
+ }
120
+ /**
121
+ * Get saved contract addresses (merged: auto-detected + user-configured).
122
+ */
123
+ getAddresses() {
124
+ const result = {};
125
+ for (const contract of this.contracts) {
126
+ result[contract.contractName] = { ...contract.deployedAddresses };
127
+ }
128
+ return result;
129
+ }
130
+ /**
131
+ * Save a contract address for a specific network.
132
+ */
133
+ saveAddress(contractName, networkName, address) {
134
+ if (!this.userAddresses[contractName]) {
135
+ this.userAddresses[contractName] = {};
136
+ }
137
+ this.userAddresses[contractName][networkName] = address;
138
+ // Update the in-memory contract info
139
+ const contract = this.contracts.find((c) => c.contractName === contractName);
140
+ if (contract) {
141
+ contract.deployedAddresses[networkName] = address;
142
+ }
143
+ // Persist to disk
144
+ this.persistUserAddresses();
145
+ }
146
+ /**
147
+ * Execute a read-only (view/pure) function call.
148
+ */
149
+ async executeReadCall(request) {
150
+ const { contractAddress, abi, functionName, args, networkName } = request;
151
+ // Validate address
152
+ if (!(0, ethers_adapter_1.isAddress)(contractAddress)) {
153
+ return { success: false, error: `Invalid contract address: ${contractAddress}` };
154
+ }
155
+ // Find network RPC URL
156
+ const network = this.networks.find((n) => n.name === networkName);
157
+ if (!network || !network.url) {
158
+ return { success: false, error: `Network "${networkName}" not found or has no RPC URL` };
159
+ }
160
+ try {
161
+ const provider = (0, ethers_adapter_1.createProvider)(network.url);
162
+ const contract = (0, ethers_adapter_1.createContract)(contractAddress, abi, provider);
163
+ // Check function exists
164
+ if (typeof contract[functionName] !== "function") {
165
+ return { success: false, error: `Function "${functionName}" not found on contract` };
166
+ }
167
+ const result = await contract[functionName](...args);
168
+ return { success: true, result: (0, ethers_adapter_1.serializeResult)(result) };
169
+ }
170
+ catch (err) {
171
+ // Try to decode revert reason
172
+ const reason = this.decodeRevertReason(err);
173
+ return { success: false, error: reason || err.message };
174
+ }
175
+ }
176
+ /**
177
+ * Fetch and decode events from a transaction receipt.
178
+ */
179
+ async fetchEvents(request) {
180
+ const { contractAddress, abi, txHash, networkName } = request;
181
+ const network = this.networks.find((n) => n.name === networkName);
182
+ if (!network || !network.url) {
183
+ return { success: false, error: `Network "${networkName}" not found or has no RPC URL` };
184
+ }
185
+ try {
186
+ const provider = (0, ethers_adapter_1.createProvider)(network.url);
187
+ const receipt = await (0, ethers_adapter_1.getTransactionReceipt)(provider, txHash);
188
+ if (!receipt) {
189
+ return { success: false, error: `Transaction receipt not found for ${txHash}` };
190
+ }
191
+ const iface = (0, ethers_adapter_1.createInterface)(abi);
192
+ const decodedEvents = [];
193
+ for (const log of receipt.logs) {
194
+ // Only decode logs from the target contract (or all if address is zero)
195
+ const logAddress = log.address.toLowerCase();
196
+ const targetAddress = contractAddress.toLowerCase();
197
+ if (logAddress !== targetAddress && contractAddress !== "0x") {
198
+ continue;
199
+ }
200
+ const parsed = (0, ethers_adapter_1.parseLog)(iface, {
201
+ topics: log.topics,
202
+ data: log.data,
203
+ });
204
+ if (parsed) {
205
+ // Convert parsed args to a clean object
206
+ const args = {};
207
+ for (const key of Object.keys(parsed.args)) {
208
+ if (isNaN(Number(key))) {
209
+ args[key] = (0, ethers_adapter_1.serializeResult)(parsed.args[key]);
210
+ }
211
+ }
212
+ decodedEvents.push({
213
+ name: parsed.name,
214
+ signature: parsed.signature,
215
+ args,
216
+ logIndex: log.logIndex,
217
+ address: log.address,
218
+ });
219
+ }
220
+ }
221
+ return { success: true, events: decodedEvents };
222
+ }
223
+ catch (err) {
224
+ return { success: false, error: err.message };
225
+ }
226
+ }
227
+ /**
228
+ * Check if a contract address is an ERC-1967 proxy.
229
+ * Returns the implementation address if it is, null otherwise.
230
+ */
231
+ async checkProxy(contractAddress, networkName) {
232
+ const network = this.networks.find((n) => n.name === networkName);
233
+ if (!network || !network.url) {
234
+ return { isProxy: false };
235
+ }
236
+ try {
237
+ const provider = (0, ethers_adapter_1.createProvider)(network.url);
238
+ // Check ERC-1967 implementation slot
239
+ const implSlotValue = await (0, ethers_adapter_1.getStorageAt)(provider, contractAddress, ERC1967_IMPLEMENTATION_SLOT);
240
+ // Parse address from slot (last 20 bytes of 32-byte slot)
241
+ const implAddress = this.addressFromSlot(implSlotValue);
242
+ if (!implAddress) {
243
+ return { isProxy: false };
244
+ }
245
+ // Check admin slot
246
+ const adminSlotValue = await (0, ethers_adapter_1.getStorageAt)(provider, contractAddress, ERC1967_ADMIN_SLOT);
247
+ const adminAddress = this.addressFromSlot(adminSlotValue);
248
+ // Try to match implementation address to a known compiled contract
249
+ let matchedContract;
250
+ for (const contract of this.contracts) {
251
+ for (const [netName, addr] of Object.entries(contract.deployedAddresses)) {
252
+ if (addr.toLowerCase() === implAddress.toLowerCase()) {
253
+ matchedContract = contract.contractName;
254
+ break;
255
+ }
256
+ }
257
+ if (matchedContract)
258
+ break;
259
+ }
260
+ return {
261
+ isProxy: true,
262
+ implementationAddress: implAddress,
263
+ adminAddress: adminAddress || undefined,
264
+ matchedContract,
265
+ };
266
+ }
267
+ catch {
268
+ return { isProxy: false };
269
+ }
270
+ }
271
+ // ─── Private: Artifact Discovery ──────────────────────────────
272
+ /**
273
+ * Recursively find all artifact JSON files.
274
+ * Skips .dbg.json files and build-info.
275
+ */
276
+ findArtifactFiles(dir) {
277
+ const results = [];
278
+ try {
279
+ const entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
280
+ for (const entry of entries) {
281
+ const fullPath = path_1.default.join(dir, entry.name);
282
+ if (entry.isDirectory()) {
283
+ // Skip build-info directory
284
+ if (entry.name === "build-info")
285
+ continue;
286
+ results.push(...this.findArtifactFiles(fullPath));
287
+ }
288
+ else if (entry.isFile() &&
289
+ entry.name.endsWith(".json") &&
290
+ !entry.name.endsWith(".dbg.json")) {
291
+ results.push(fullPath);
292
+ }
293
+ }
294
+ }
295
+ catch {
296
+ // Permission errors or similar — skip
297
+ }
298
+ return results;
299
+ }
300
+ // ─── Private: ABI Parsing ─────────────────────────────────────
301
+ /**
302
+ * Parse function entries from an ABI into read (view/pure) and write groups.
303
+ */
304
+ parseFunctions(abi) {
305
+ const read = [];
306
+ const write = [];
307
+ for (const entry of abi) {
308
+ if (entry.type !== "function")
309
+ continue;
310
+ const inputs = (entry.inputs || []).map(this.parseParam);
311
+ const outputs = (entry.outputs || []).map(this.parseParam);
312
+ const signature = `${entry.name}(${inputs.map((i) => i.type).join(",")})`;
313
+ const func = {
314
+ name: entry.name,
315
+ signature,
316
+ stateMutability: entry.stateMutability || "nonpayable",
317
+ inputs,
318
+ outputs,
319
+ payable: entry.stateMutability === "payable",
320
+ };
321
+ if (entry.stateMutability === "view" ||
322
+ entry.stateMutability === "pure") {
323
+ read.push(func);
324
+ }
325
+ else {
326
+ write.push(func);
327
+ }
328
+ }
329
+ // Sort alphabetically
330
+ read.sort((a, b) => a.name.localeCompare(b.name));
331
+ write.sort((a, b) => a.name.localeCompare(b.name));
332
+ return { read, write };
333
+ }
334
+ /**
335
+ * Parse event entries from an ABI.
336
+ */
337
+ parseEvents(abi) {
338
+ const events = [];
339
+ for (const entry of abi) {
340
+ if (entry.type !== "event")
341
+ continue;
342
+ const inputs = (entry.inputs || []).map(this.parseParam);
343
+ const signature = `${entry.name}(${inputs.map((i) => i.type).join(",")})`;
344
+ events.push({ name: entry.name, signature, inputs });
345
+ }
346
+ return events.sort((a, b) => a.name.localeCompare(b.name));
347
+ }
348
+ // ─── Private: Deployment Detection ────────────────────────────
349
+ /**
350
+ * Auto-detect deployed addresses from hardhat-deploy and hardhat-ignition.
351
+ */
352
+ detectDeployedAddresses(contractName) {
353
+ const addresses = {};
354
+ // 1. Check hardhat-deploy: deployments/<networkName>/<ContractName>.json
355
+ const deploymentsDir = path_1.default.join(this.projectRoot, "deployments");
356
+ if (fs_1.default.existsSync(deploymentsDir)) {
357
+ try {
358
+ const networkDirs = fs_1.default.readdirSync(deploymentsDir, { withFileTypes: true });
359
+ for (const networkDir of networkDirs) {
360
+ if (!networkDir.isDirectory())
361
+ continue;
362
+ const deploymentFile = path_1.default.join(deploymentsDir, networkDir.name, `${contractName}.json`);
363
+ if (fs_1.default.existsSync(deploymentFile)) {
364
+ try {
365
+ const deployment = JSON.parse(fs_1.default.readFileSync(deploymentFile, "utf-8"));
366
+ if (deployment.address && (0, ethers_adapter_1.isAddress)(deployment.address)) {
367
+ addresses[networkDir.name] = (0, ethers_adapter_1.getAddress)(deployment.address);
368
+ }
369
+ }
370
+ catch {
371
+ // Skip malformed deployment files
372
+ }
373
+ }
374
+ }
375
+ }
376
+ catch {
377
+ // Skip if can't read deployments dir
378
+ }
379
+ }
380
+ // 2. Check hardhat-ignition: ignition/deployments/<module>/deployed_addresses.json
381
+ const ignitionDir = path_1.default.join(this.projectRoot, "ignition", "deployments");
382
+ if (fs_1.default.existsSync(ignitionDir)) {
383
+ try {
384
+ const moduleDirs = fs_1.default.readdirSync(ignitionDir, { withFileTypes: true });
385
+ for (const moduleDir of moduleDirs) {
386
+ if (!moduleDir.isDirectory())
387
+ continue;
388
+ const addressesFile = path_1.default.join(ignitionDir, moduleDir.name, "deployed_addresses.json");
389
+ if (fs_1.default.existsSync(addressesFile)) {
390
+ try {
391
+ const deployedAddresses = JSON.parse(fs_1.default.readFileSync(addressesFile, "utf-8"));
392
+ // Ignition format: { "ModuleName#ContractName": "0x..." }
393
+ for (const [key, addr] of Object.entries(deployedAddresses)) {
394
+ const parts = key.split("#");
395
+ const deployedContractName = parts[parts.length - 1];
396
+ if (deployedContractName === contractName &&
397
+ typeof addr === "string" &&
398
+ (0, ethers_adapter_1.isAddress)(addr)) {
399
+ // Extract network name from module dir (e.g., "chain-11155111")
400
+ const networkName = this.chainIdToNetworkName(moduleDir.name);
401
+ if (networkName) {
402
+ addresses[networkName] = (0, ethers_adapter_1.getAddress)(addr);
403
+ }
404
+ }
405
+ }
406
+ }
407
+ catch {
408
+ // Skip malformed ignition files
409
+ }
410
+ }
411
+ }
412
+ }
413
+ catch {
414
+ // Skip if can't read ignition dir
415
+ }
416
+ }
417
+ return addresses;
418
+ }
419
+ // ─── Private: Address Persistence ─────────────────────────────
420
+ /**
421
+ * Load user-configured addresses from .airsign-addresses.json
422
+ */
423
+ loadUserAddresses() {
424
+ try {
425
+ if (fs_1.default.existsSync(this.addressFilePath)) {
426
+ const raw = fs_1.default.readFileSync(this.addressFilePath, "utf-8");
427
+ this.userAddresses = JSON.parse(raw);
428
+ }
429
+ }
430
+ catch {
431
+ this.userAddresses = {};
432
+ }
433
+ }
434
+ /**
435
+ * Save user-configured addresses to .airsign-addresses.json
436
+ */
437
+ persistUserAddresses() {
438
+ try {
439
+ fs_1.default.writeFileSync(this.addressFilePath, JSON.stringify(this.userAddresses, null, 2), "utf-8");
440
+ }
441
+ catch (err) {
442
+ console.log(" ⚠️ Could not save contract addresses:", err.message);
443
+ }
444
+ }
445
+ // ─── Private: Helpers ─────────────────────────────────────────
446
+ /**
447
+ * Extract an address from a 32-byte storage slot value.
448
+ * Returns null if the slot is empty (all zeros).
449
+ */
450
+ addressFromSlot(slotValue) {
451
+ if (!slotValue || slotValue === "0x" + "0".repeat(64)) {
452
+ return null;
453
+ }
454
+ // Address is the last 20 bytes (40 hex chars)
455
+ const hex = slotValue.replace("0x", "").padStart(64, "0");
456
+ const addressHex = "0x" + hex.slice(24);
457
+ if (addressHex === "0x" + "0".repeat(40)) {
458
+ return null;
459
+ }
460
+ try {
461
+ return (0, ethers_adapter_1.getAddress)(addressHex);
462
+ }
463
+ catch {
464
+ return null;
465
+ }
466
+ }
467
+ /**
468
+ * Try to map an ignition module directory name to a network name.
469
+ * Ignition uses "chain-<chainId>" format.
470
+ */
471
+ chainIdToNetworkName(dirName) {
472
+ const match = dirName.match(/^chain-(\d+)$/);
473
+ if (!match)
474
+ return dirName; // use as-is if not chain-ID format
475
+ const chainId = parseInt(match[1], 10);
476
+ // Find matching network in our config
477
+ for (const network of this.networks) {
478
+ if (network.chainId === chainId) {
479
+ return network.name;
480
+ }
481
+ }
482
+ // Fallback: well-known chain IDs
483
+ const wellKnown = {
484
+ 1: "mainnet",
485
+ 5: "goerli",
486
+ 11155111: "sepolia",
487
+ 137: "polygon",
488
+ 80001: "polygonMumbai",
489
+ 42161: "arbitrum",
490
+ 421614: "arbitrumSepolia",
491
+ 10: "optimism",
492
+ 11155420: "optimismSepolia",
493
+ 8453: "base",
494
+ 84532: "baseSepolia",
495
+ 56: "bsc",
496
+ 43114: "avalanche",
497
+ 31337: "hardhat",
498
+ };
499
+ return wellKnown[chainId] || null;
500
+ }
501
+ /**
502
+ * Try to decode a revert reason from an error.
503
+ */
504
+ decodeRevertReason(err) {
505
+ // ethers v5 puts the reason in different places depending on the error type
506
+ if (err.reason)
507
+ return `Reverted: ${err.reason}`;
508
+ if (err.error?.reason)
509
+ return `Reverted: ${err.error.reason}`;
510
+ if (err.error?.message)
511
+ return err.error.message;
512
+ // Try to decode from error data
513
+ if (err.data) {
514
+ try {
515
+ // Standard Error(string) selector: 0x08c379a0
516
+ if (typeof err.data === "string" && err.data.startsWith("0x08c379a0")) {
517
+ const iface = (0, ethers_adapter_1.createInterface)(["function Error(string)"]);
518
+ const decoded = iface.decodeFunctionData("Error", err.data);
519
+ return `Reverted: ${decoded[0]}`;
520
+ }
521
+ }
522
+ catch {
523
+ // Can't decode, fall through
524
+ }
525
+ }
526
+ return null;
527
+ }
528
+ }
529
+ exports.ContractService = ContractService;
530
+ //# sourceMappingURL=ContractService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractService.js","sourceRoot":"","sources":["../src/ContractService.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare class SigningServer {
13
13
  private sessionInfo;
14
14
  private pendingCallbacks;
15
15
  private pendingTimeouts;
16
+ private pendingRpcCallbacks;
16
17
  private signerConnectedPromise;
17
18
  private signerConnectedResolve;
18
19
  private isSignerConnected;
@@ -20,6 +21,7 @@ export declare class SigningServer {
20
21
  private projectContext;
21
22
  private runningProcess;
22
23
  private runningProcessId;
24
+ private contractService;
23
25
  constructor(port?: number, host?: string, appPath?: string, projectContext?: ProjectContext);
24
26
  start(): Promise<SessionInfo>;
25
27
  stop(): Promise<void>;
@@ -60,6 +62,10 @@ export declare class SigningServer {
60
62
  * Kill the currently running process.
61
63
  */
62
64
  private killRunningProcess;
65
+ /**
66
+ * Find bytecode for a contract name from the artifacts directory.
67
+ */
68
+ private findBytecodeInArtifacts;
63
69
  private generateSessionId;
64
70
  /**
65
71
  * Try to find the pre-built signing app in multiple locations.
@@ -1 +1 @@
1
- {"version":3,"file":"SigningServer.d.ts","sourceRoot":"","sources":["../src/SigningServer.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,cAAc,EACd,eAAe,EAIf,WAAW,EACX,cAAc,EAIf,MAAM,SAAS,CAAC;AAKjB;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,EAAE,CAA6D;IACvE,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CACZ;IACZ,OAAO,CAAC,eAAe,CAA0C;IAGjE,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,iBAAiB,CAA4C;IAGrE,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,gBAAgB,CAAuB;gBAG7C,IAAI,GAAE,MAAa,EACnB,IAAI,GAAE,MAAkB,EACxB,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,cAAc;IAwQ3B,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAS7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,cAAc,IAAI,WAAW;IAI7B;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAQtC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI3D;;;OAGG;IACH,kBAAkB,CAChB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAC5C,IAAI;IA2CP,OAAO,CAAC,mBAAmB;IA8F3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA8FtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,cAAc;CA2BvB"}
1
+ {"version":3,"file":"SigningServer.d.ts","sourceRoot":"","sources":["../src/SigningServer.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,cAAc,EACd,eAAe,EAIf,WAAW,EACX,cAAc,EAIf,MAAM,SAAS,CAAC;AAMjB;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,EAAE,CAA6D;IACvE,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CACZ;IACZ,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,mBAAmB,CAA6D;IAGxF,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,iBAAiB,CAA4C;IAGrE,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,gBAAgB,CAAuB;IAG/C,OAAO,CAAC,eAAe,CAAgC;gBAGrD,IAAI,GAAE,MAAa,EACnB,IAAI,GAAE,MAAkB,EACxB,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,cAAc;IAioB3B,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAS7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,cAAc,IAAI,WAAW;IAI7B;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAQtC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI3D;;;OAGG;IACH,kBAAkB,CAChB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAC5C,IAAI;IA2CP,OAAO,CAAC,mBAAmB;IAsG3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA8FtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,cAAc;CA2BvB"}