@wormhole-foundation/wormhole-connect 3.0.0-beta.10-development → 3.0.0-beta.12-development

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 (370) hide show
  1. package/dist/assets/{evm-Cz5gfo6J.js → evm-DwqzhXfk.js} +2 -2
  2. package/dist/assets/{index-BE0gG6Qf.js → index-CKPf-3Vo.js} +1 -1
  3. package/dist/assets/{index-D_PDN2kF.js → index-CYFq9U58.js} +1 -1
  4. package/dist/assets/{index-BD24Wfvc.js → index-C_YTupmk.js} +1 -1
  5. package/dist/assets/index-DA4wR-ie.js +1 -0
  6. package/dist/assets/{index-GZ5zavqs.js → index-GmuqTVr0.js} +1 -1
  7. package/dist/main.js +74 -74
  8. package/dist/src/WormholeConnect.d.ts.map +1 -1
  9. package/dist/src/components/Header.d.ts.map +1 -1
  10. package/dist/src/config/devnet/chains.d.ts.map +1 -1
  11. package/dist/src/config/mainnet/chains.d.ts.map +1 -1
  12. package/dist/src/config/testnet/chains.d.ts.map +1 -1
  13. package/dist/src/config/tokens.d.ts +1 -1
  14. package/dist/src/config/tokens.d.ts.map +1 -1
  15. package/dist/src/config/types.d.ts +2 -4
  16. package/dist/src/config/types.d.ts.map +1 -1
  17. package/dist/src/hooks/useAvailableWallets.d.ts +2 -3
  18. package/dist/src/hooks/useAvailableWallets.d.ts.map +1 -1
  19. package/dist/src/hooks/useFetchQuotes.d.ts.map +1 -1
  20. package/dist/src/hooks/useGasSlider.d.ts +2 -3
  21. package/dist/src/hooks/useGasSlider.d.ts.map +1 -1
  22. package/dist/src/sdklegacy/config/DEVNET.d.ts.map +1 -1
  23. package/dist/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
  24. package/dist/src/sdklegacy/config/TESTNET.d.ts.map +1 -1
  25. package/dist/src/sdklegacy/types.d.ts +1 -22
  26. package/dist/src/sdklegacy/types.d.ts.map +1 -1
  27. package/dist/src/sdklegacy/utils.d.ts +0 -2
  28. package/dist/src/sdklegacy/utils.d.ts.map +1 -1
  29. package/dist/src/store/transferInput.d.ts +1 -1
  30. package/dist/src/store/transferInput.d.ts.map +1 -1
  31. package/dist/src/store/wallet.d.ts +3 -3
  32. package/dist/src/store/wallet.d.ts.map +1 -1
  33. package/dist/src/utils/index.d.ts +2 -6
  34. package/dist/src/utils/index.d.ts.map +1 -1
  35. package/dist/src/utils/wallet/index.d.ts +5 -5
  36. package/dist/src/utils/wallet/index.d.ts.map +1 -1
  37. package/dist/src/views/v2/Bridge/AssetPicker/SearchableList/SearchInput.d.ts +1 -0
  38. package/dist/src/views/v2/Bridge/AssetPicker/SearchableList/SearchInput.d.ts.map +1 -1
  39. package/dist/src/views/v2/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -1
  40. package/dist/src/views/v2/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
  41. package/dist/src/views/v2/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  42. package/dist/src/views/v2/Bridge/SwapInputs/index.d.ts.map +1 -1
  43. package/dist/src/views/v2/Bridge/WalletConnector/Sidebar.d.ts.map +1 -1
  44. package/dist/src/views/v2/Bridge/index.d.ts.map +1 -1
  45. package/dist/src/views/v2/Redeem/index.d.ts.map +1 -1
  46. package/lib/{account-BNwyiy8l.js → account-gVjkECaX.js} +1 -1
  47. package/lib/{account-DwyagzkO.mjs → account-k-CXVcvA.mjs} +3 -3
  48. package/lib/{add-CaAYnJ3P.mjs → add-Bgr8Uh8B.mjs} +1 -1
  49. package/lib/{add-BTLwOvOZ.js → add-CgyvYm-l.js} +1 -1
  50. package/lib/{address-fP2co-yA.mjs → address-BJNAPSnr.mjs} +1 -1
  51. package/lib/{address-DboettO4.mjs → address-ByLIzxVb.mjs} +1 -1
  52. package/lib/{address-CCed-aPr.js → address-CSWlEusF.js} +1 -1
  53. package/lib/{address-XILx3C42.mjs → address-CrYNZ_Nj.mjs} +44 -36
  54. package/lib/{address-DQaI4gj3.js → address-DGYJWkFz.js} +1 -1
  55. package/lib/{address-Dj55KIoo.js → address-DfgK_jn7.js} +1 -1
  56. package/lib/{all-wallets-g1PHj0ct.js → all-wallets-BeYsJiCM.js} +1 -1
  57. package/lib/{all-wallets-n9txrQBL.mjs → all-wallets-DdRIEq-V.mjs} +1 -1
  58. package/lib/{app-store-BNDHv08u.js → app-store-C9yZzH2t.js} +1 -1
  59. package/lib/{app-store-XMImFsCe.mjs → app-store-eKRqPW4N.mjs} +1 -1
  60. package/lib/{apple-BeFuMsnp.js → apple-B3Aps_l8.js} +1 -1
  61. package/lib/{apple-N72l5xzV.mjs → apple-DQcCTOa_.mjs} +1 -1
  62. package/lib/{aptos-CyWepkzo.js → aptos-CxfKcGPe.js} +1 -1
  63. package/lib/{aptos-0L0BHb3H.mjs → aptos-DySrgy5u.mjs} +3 -3
  64. package/lib/{aptos-BqMeyqxb.js → aptos-IciOSw-S.js} +2 -2
  65. package/lib/{aptos-BS2IaWwv.mjs → aptos-M18090BQ.mjs} +7 -7
  66. package/lib/{arrow-bottom-9ZkDz94Q.js → arrow-bottom-CUgsoqql.js} +1 -1
  67. package/lib/{arrow-bottom-CBSeMq1y.mjs → arrow-bottom-Duiu5Tg_.mjs} +1 -1
  68. package/lib/{arrow-bottom-circle-CwbLgL2F.mjs → arrow-bottom-circle-CvfJ5p_y.mjs} +1 -1
  69. package/lib/{arrow-bottom-circle-DYiWMEvs.js → arrow-bottom-circle-u8tFbHrW.js} +1 -1
  70. package/lib/{arrow-left-C-UJV-mA.js → arrow-left-IZiFrwcP.js} +1 -1
  71. package/lib/{arrow-left-D69MKmnb.mjs → arrow-left-avYXBHF4.mjs} +1 -1
  72. package/lib/{arrow-right-BhLwNQPc.js → arrow-right-CF-NNN4L.js} +1 -1
  73. package/lib/{arrow-right-7G9yNtBl.mjs → arrow-right-Cbunep5L.mjs} +1 -1
  74. package/lib/{arrow-top-CahWAE97.mjs → arrow-top-DBWWW9Oy.mjs} +1 -1
  75. package/lib/{arrow-top-Dg2It593.js → arrow-top-DCGkz6k-.js} +1 -1
  76. package/lib/{bank-DPmi3p8t.js → bank-C-CLDGG9.js} +1 -1
  77. package/lib/{bank-D8KRyeTE.mjs → bank-C2jhIapN.mjs} +1 -1
  78. package/lib/{basic-DfPbK6fQ.mjs → basic-CIBqPAeW.mjs} +2 -2
  79. package/lib/{basic-COPQaPYV.js → basic-DVsxPr6-.js} +1 -1
  80. package/lib/{blake2b-B3WiClFL.js → blake2b-CCJ4LnEi.js} +1 -1
  81. package/lib/{blake2b-aE1Y9SPf.mjs → blake2b-GH2Zzt65.mjs} +1 -1
  82. package/lib/{browser-CVFlPbA0.js → browser-BQ2hKa4j.js} +1 -1
  83. package/lib/{browser-DuIqgD1X.mjs → browser-DFX8bJKi.mjs} +1 -1
  84. package/lib/{browser-ponyfill-C02z10qo.js → browser-ponyfill-DqqaJGv_.js} +1 -1
  85. package/lib/{browser-ponyfill-DpeYhHUN.mjs → browser-ponyfill-JlME40Yz.mjs} +1 -1
  86. package/lib/{card-DjqoMS8I.mjs → card-4-u9SA69.mjs} +1 -1
  87. package/lib/{card-D_R3jF-Z.js → card-CUMXwdG1.js} +1 -1
  88. package/lib/{ccip-CrHO1dC-.js → ccip-BTGJ_kF8.js} +1 -1
  89. package/lib/{ccip-i_XXGSg2.mjs → ccip-FetjJVFw.mjs} +2 -2
  90. package/lib/{chain-BYKgc1Rl.js → chain-DTh9H2Cq.js} +1 -1
  91. package/lib/{chain-Yvw9MtzH.mjs → chain-Dq8acwHq.mjs} +1 -1
  92. package/lib/{checkmark-DcyIdeXU.js → checkmark-BaLFRM45.js} +1 -1
  93. package/lib/{checkmark-DOw999Ie.mjs → checkmark-DDLHlQQ9.mjs} +1 -1
  94. package/lib/{checkmark-bold-Cge3RMDQ.js → checkmark-bold-COMu2UxE.js} +1 -1
  95. package/lib/{checkmark-bold-Dd3K5wgK.mjs → checkmark-bold-CuRoxeU8.mjs} +1 -1
  96. package/lib/{chevron-bottom-DQOL6ddO.mjs → chevron-bottom-BWzCLrD5.mjs} +1 -1
  97. package/lib/{chevron-bottom-DpWCBCtN.js → chevron-bottom-C4e9WRar.js} +1 -1
  98. package/lib/{chevron-left-CsfpWwbt.mjs → chevron-left--LyUtyQT.mjs} +1 -1
  99. package/lib/{chevron-left-ijPY6xtL.js → chevron-left-CGVLc133.js} +1 -1
  100. package/lib/{chevron-right-D7f6VXeA.js → chevron-right-BwKWUL52.js} +1 -1
  101. package/lib/{chevron-right-DW2-OAem.mjs → chevron-right-kMciDMkJ.mjs} +1 -1
  102. package/lib/{chevron-top-BKE9MT7D.js → chevron-top-CAHxogoB.js} +1 -1
  103. package/lib/{chevron-top-BFMGjavt.mjs → chevron-top-DwIXDDfD.mjs} +1 -1
  104. package/lib/{chrome-store-CqO7TK0g.mjs → chrome-store-BtgUtu2e.mjs} +1 -1
  105. package/lib/{chrome-store-ChoHQuXc.js → chrome-store-KsYwGQZ1.js} +1 -1
  106. package/lib/{chunk-KJH4KKG6-BK2qMrl4.js → chunk-KJH4KKG6-DOESg_ru.js} +1 -1
  107. package/lib/{chunk-KJH4KKG6-DS_5OXPM.mjs → chunk-KJH4KKG6-cfe1Zo7n.mjs} +2 -2
  108. package/lib/{clock-B5FRsuvL.mjs → clock-CeP_x_KK.mjs} +1 -1
  109. package/lib/{clock-CPreF9T0.js → clock-DZ0ehwc-.js} +1 -1
  110. package/lib/{close-S0uNyI0k.js → close-DQfNwzpp.js} +1 -1
  111. package/lib/{close-FqyWSE4_.mjs → close-fTN6nBRu.mjs} +1 -1
  112. package/lib/{coinPlaceholder-BZJlLM7Y.mjs → coinPlaceholder-DetWjpMK.mjs} +1 -1
  113. package/lib/{coinPlaceholder-Nsqc5lwS.js → coinPlaceholder-Dg3gZsJM.js} +1 -1
  114. package/lib/{compass-CzWYI8YS.js → compass-BNDqAmOT.js} +1 -1
  115. package/lib/{compass-C15Hbv8k.mjs → compass-Bi1bPHDM.mjs} +1 -1
  116. package/lib/{constants-PdfK5ygX.mjs → constants-CPx3n7t3.mjs} +3 -3
  117. package/lib/{constants-C24HBTfH.js → constants-CoxhiYrX.js} +1 -1
  118. package/lib/{contract-9GZtHjlK.mjs → contract-D8VzaUQJ.mjs} +1 -1
  119. package/lib/{contract-B8rZnG63.js → contract-DYtnmT6F.js} +1 -1
  120. package/lib/{copy-DbrWU_Sn.mjs → copy-C0ChGAOX.mjs} +1 -1
  121. package/lib/{copy-BcaWwGsu.js → copy-CYLp0MkE.js} +1 -1
  122. package/lib/{create-DFS178qc.js → create-BRB2U1qV.js} +1 -1
  123. package/lib/{create-BTamQq_m.mjs → create-CRa9FZnZ.mjs} +1 -1
  124. package/lib/{cursor-DPV4BhZQ.mjs → cursor-C0wqoNp_.mjs} +1 -1
  125. package/lib/{cursor-C8Q0dpzU.js → cursor-DsUEeeMn.js} +1 -1
  126. package/lib/{cursor-transparent-_EEiSXcN.mjs → cursor-transparent-DOFMlNyt.mjs} +1 -1
  127. package/lib/{cursor-transparent-Bk2Pis3h.js → cursor-transparent-Dgi2QAXz.js} +1 -1
  128. package/lib/{desktop-DIsvsF3d.js → desktop-7XDZ1UeO.js} +1 -1
  129. package/lib/{desktop-D-l8jhsv.mjs → desktop-DvAIpuqU.mjs} +1 -1
  130. package/lib/{disconnect-CuuGsNn9.js → disconnect-BPZFeB_X.js} +1 -1
  131. package/lib/{disconnect-C_byJjKB.mjs → disconnect-CVe77kqf.mjs} +1 -1
  132. package/lib/{discord-Dw7t9AOU.js → discord-BQnoDtpm.js} +1 -1
  133. package/lib/{discord-BuyE-1NF.mjs → discord-C8tW30M4.mjs} +1 -1
  134. package/lib/{etherscan-sT9lau-F.mjs → etherscan-BbTgK2kR.mjs} +1 -1
  135. package/lib/{etherscan-BpiPFsqX.js → etherscan-XnmA1DYM.js} +1 -1
  136. package/lib/{evm-rv7ZlROo.mjs → evm-B1mLJPQm.mjs} +9 -9
  137. package/lib/{evm-BtQQ6viH.js → evm-B92-10xg.js} +3 -3
  138. package/lib/{evm-DWT3Nmuq.js → evm-BcBUJ9Y7.js} +2 -2
  139. package/lib/{evm-PlOfGcwB.mjs → evm-DDTF3fsK.mjs} +9 -9
  140. package/lib/{exclamation-triangle-ca7edyAm.js → exclamation-triangle-BSU-BEmm.js} +1 -1
  141. package/lib/{exclamation-triangle-DN4JC4tj.mjs → exclamation-triangle-CDPTA2Zq.mjs} +1 -1
  142. package/lib/executor.js +1 -1
  143. package/lib/executor.mjs +37 -37
  144. package/lib/{extension-B2NwQEJh.mjs → extension-BoRmu23R.mjs} +1 -1
  145. package/lib/{extension-BT42HXRo.js → extension-JoJqEx2q.js} +1 -1
  146. package/lib/{external-link-DPxrE_1B.mjs → external-link-BmVFZxUx.mjs} +1 -1
  147. package/lib/{external-link-DUXVgd3Q.js → external-link-CDpvnIKV.js} +1 -1
  148. package/lib/{facebook-nlQKkoy4.mjs → facebook-BU0IgAsn.mjs} +1 -1
  149. package/lib/{facebook-BwiFRhTy.js → facebook-DVG-Of9i.js} +1 -1
  150. package/lib/{farcaster-DIPlSB57.mjs → farcaster-EqU1YhWT.mjs} +1 -1
  151. package/lib/{farcaster-B3iRAtGH.js → farcaster-HjCoTneu.js} +1 -1
  152. package/lib/{filters-BqX98gdQ.mjs → filters-9uiEFQFc.mjs} +1 -1
  153. package/lib/{filters-CADY0oT7.js → filters-Dj4vA-oO.js} +1 -1
  154. package/lib/{github-i2fLJDcn.mjs → github-Bv36prmZ.mjs} +1 -1
  155. package/lib/{github-DCpNepXY.js → github-CHTQ7Hhb.js} +1 -1
  156. package/lib/{google-RwvuhA_N.mjs → google-CIdoM_ZL.mjs} +1 -1
  157. package/lib/{google-CjlC1jg5.js → google-D4be9Rni.js} +1 -1
  158. package/lib/{help-circle-DbBRCuEk.js → help-circle-Cp-RWM01.js} +1 -1
  159. package/lib/{help-circle-CAJ7Vj6j.mjs → help-circle-Di6XLLqm.mjs} +1 -1
  160. package/lib/hosted.js +1 -1
  161. package/lib/hosted.mjs +1 -1
  162. package/lib/{id-BGx-wQhp.mjs → id-BKRrmUYA.mjs} +1 -1
  163. package/lib/{id-D37VTwOD.js → id-zzAVAbpV.js} +1 -1
  164. package/lib/{image-CwP7FRuU.mjs → image-CHXv-pfQ.mjs} +1 -1
  165. package/lib/{image-B6onBOl9.js → image-D0lV7yfg.js} +1 -1
  166. package/lib/{index-l-WipGzT.js → index--rEdlHs9.js} +1 -1
  167. package/lib/{index-lIqGH3dA.mjs → index-0V2bg9Sg.mjs} +2 -2
  168. package/lib/{index-C_onUkEJ.mjs → index-6NFOdkn_.mjs} +5 -5
  169. package/lib/{index-CGQJxGGA.mjs → index-B4yQb6w1.mjs} +78 -78
  170. package/lib/{index-CaWaUq6Q.mjs → index-B6QoC8kC.mjs} +1 -1
  171. package/lib/{index-DFnrdKHz.mjs → index-B8CSnOaL.mjs} +4 -4
  172. package/lib/{index-CXxeK1L6.mjs → index-BBXzsMzy.mjs} +18061 -18376
  173. package/lib/{index-Cxk2R-Am.mjs → index-BBwY_mLw.mjs} +9 -9
  174. package/lib/{index-D0EnJJ6x.js → index-BDN9fAFf.js} +1 -1
  175. package/lib/{index-Dkk8hroQ.js → index-BJjgo7T5.js} +1 -1
  176. package/lib/{index-DfErM9FS.mjs → index-BOmzGtQH.mjs} +10 -10
  177. package/lib/{index-hJ9bKuCY.js → index-Bn829hfx.js} +1 -1
  178. package/lib/{index-Du5REEg_.mjs → index-BsqWniHZ.mjs} +2 -2
  179. package/lib/{index-DkYpMDuW.mjs → index-BuMERF6V.mjs} +3 -3
  180. package/lib/{index-BLh5aG8-.mjs → index-BxR9BQdY.mjs} +5 -5
  181. package/lib/{index-Cf3S05FK.js → index-C9CCEaud.js} +1 -1
  182. package/lib/{index-C1_cSaXr.js → index-CAZoTTeF.js} +1 -1
  183. package/lib/{index-CYr_YvMH.js → index-CFikcYS0.js} +1 -1
  184. package/lib/{index-CS9iBnXX.mjs → index-CJXywlFV.mjs} +5 -5
  185. package/lib/{index-Sice5Hou.js → index-CMRsE6Rx.js} +2 -2
  186. package/lib/{index-BEJqMcqT.mjs → index-CSf9Xnts.mjs} +5 -5
  187. package/lib/{index-CmW6KmMC.js → index-C_DPPfkk.js} +1 -1
  188. package/lib/index-CbF5x2NI.js +1 -0
  189. package/lib/{index-DS3hzy1U.js → index-Cj6R9JbK.js} +1 -1
  190. package/lib/{index-Bu-zI45T.js → index-CjojdPoR.js} +1 -1
  191. package/lib/{index-CNTjCcyR.mjs → index-Co1W4Raf.mjs} +16 -14
  192. package/lib/{index-5DMnZ3K9.mjs → index-CpYW6xKB.mjs} +5 -5
  193. package/lib/{index-M9Ba07as.mjs → index-CreVTM0z.mjs} +7 -7
  194. package/lib/{index-BrGsuxgs.js → index-Csb-_vqa.js} +1 -1
  195. package/lib/{index-DfLfvzB0.js → index-Cv26ujGL.js} +1 -1
  196. package/lib/{index-CYYDe2bl.mjs → index-Cvt-EnSZ.mjs} +1 -1
  197. package/lib/{index-lIhQvgZM.mjs → index-D0eLvswO.mjs} +1 -1
  198. package/lib/{index-1Jby0-yj.js → index-D4dCJIWy.js} +1 -1
  199. package/lib/{index-C1JhFb5_.mjs → index-D5Wl9ZPE.mjs} +4 -4
  200. package/lib/{index-DzS1Ll_Q.js → index-DLyteqgH.js} +1 -1
  201. package/lib/{index-6TUUk7Kw.mjs → index-DUoona4h.mjs} +4 -4
  202. package/lib/{index-D6bm6RN3.js → index-DZ0LaYyC.js} +1 -1
  203. package/lib/{index-CmpBCyPP.js → index-Dg_iItNp.js} +1 -1
  204. package/lib/{index-D2mvEBkB.mjs → index-Dy8-WjNf.mjs} +8 -8
  205. package/lib/{index-mQV1DqpZ.mjs → index-FyK0K3it.mjs} +14 -14
  206. package/lib/{index-uPUSKdDo.js → index-T00Tc9JN.js} +1 -1
  207. package/lib/{index-BRH2VboQ.mjs → index-WR7oDg9u.mjs} +6 -6
  208. package/lib/{index-jhd52i9j.js → index-aoDDl5Bh.js} +1 -1
  209. package/lib/{index-DxGwdrFn.js → index-iIndJffV.js} +1 -1
  210. package/lib/{index-DlCZRxQL.js → index-uqZQu-qU.js} +1 -1
  211. package/lib/index-w1W7oltR.js +304 -0
  212. package/lib/{index.es-B7jCb8zH.js → index.es-B-gAV41L.js} +2 -2
  213. package/lib/{index.es-Dw6cvzlo.mjs → index.es-BjmsZFfK.mjs} +4 -4
  214. package/lib/{index.es-BhVEumjV.mjs → index.es-Buu5D0rZ.mjs} +6 -6
  215. package/lib/{index.es-Ck4NJOYT.js → index.es-SeoKSGri.js} +1 -1
  216. package/lib/index.js +1 -1
  217. package/lib/index.mjs +1 -1
  218. package/lib/{info-BhMx7Zq6.js → info-Bro13JOm.js} +1 -1
  219. package/lib/{info-CTA_ADWS.mjs → info-DI_ShZXM.mjs} +1 -1
  220. package/lib/{info-circle-nzb9zoU8.js → info-circle-B1XYC5VH.js} +1 -1
  221. package/lib/{info-circle-DN9B0Yi6.mjs → info-circle-Ysma0RJy.mjs} +1 -1
  222. package/lib/{lightbulb-BYt8eexq.js → lightbulb-BWSob509.js} +1 -1
  223. package/lib/{lightbulb-CeL9clew.mjs → lightbulb-llAiUdyo.mjs} +1 -1
  224. package/lib/{mail-BfIAmg2q.mjs → mail-DoQE8IHx.mjs} +1 -1
  225. package/lib/{mail-ouAgiQdL.js → mail-rZToesAW.js} +1 -1
  226. package/lib/mayan.js +1 -1
  227. package/lib/mayan.mjs +9 -9
  228. package/lib/{mint-DAd13kKg.mjs → mint-CDUlLJB4.mjs} +2 -2
  229. package/lib/{mint-CDSktsSe.js → mint-CyFSbOaj.js} +1 -1
  230. package/lib/{mobile-D7zXpqST.js → mobile-BbcVkbmr.js} +1 -1
  231. package/lib/{mobile-B210vkRD.mjs → mobile-EtRDQH27.mjs} +1 -1
  232. package/lib/{more-DCu8fdsU.js → more-BK6O3COI.js} +1 -1
  233. package/lib/{more-V7n1plpv.mjs → more-DVrhZdB3.mjs} +1 -1
  234. package/lib/{native-B-Mq6Gpc.js → native-Bdd5l9MQ.js} +1 -1
  235. package/lib/{native-DciEZuil.mjs → native-D6oc9ERK.mjs} +1 -1
  236. package/lib/{network-placeholder-DfGVbCNl.mjs → network-placeholder-BbB6hX07.mjs} +1 -1
  237. package/lib/{network-placeholder-DTJGzSV6.js → network-placeholder-K8zio41s.js} +1 -1
  238. package/lib/{nftPlaceholder-DF43BHqh.mjs → nftPlaceholder-BMuE_429.mjs} +1 -1
  239. package/lib/{nftPlaceholder-DVPyjtCX.js → nftPlaceholder-L3ThVWUO.js} +1 -1
  240. package/lib/ntt.js +1 -1
  241. package/lib/ntt.mjs +10 -10
  242. package/lib/{off-DVadjOgd.js → off-CHM9QBcy.js} +1 -1
  243. package/lib/{off-BKTude1x.mjs → off-CUzDZ7SQ.mjs} +1 -1
  244. package/lib/{platform-BIdtdn6B.js → platform-C7YwgvxU.js} +1 -1
  245. package/lib/{platform-DRiO8Lpy.js → platform-CgqczEeE.js} +1 -1
  246. package/lib/{platform-jTR8zNGC.mjs → platform-Ck9W87gm.mjs} +4 -4
  247. package/lib/{platform-7iep_MVG.mjs → platform-CyoDzIPB.mjs} +4 -4
  248. package/lib/{platform-DBNuoVoL.js → platform-DbvllBcy.js} +1 -1
  249. package/lib/{platform-BnY9AR2a.mjs → platform-DkmFvjoG.mjs} +6 -6
  250. package/lib/{play-store-yeOJdtps.mjs → play-store-B_TfUWJP.mjs} +1 -1
  251. package/lib/{play-store-BCGoGVyc.js → play-store-DodlKRO8.js} +1 -1
  252. package/lib/{plus-usr0h0Sg.mjs → plus-BY6E-gA7.mjs} +1 -1
  253. package/lib/{plus-Db3legXY.js → plus-DVGYUzNZ.js} +1 -1
  254. package/lib/{provider-jsonrpc-1XU1LSFl.mjs → provider-jsonrpc-BVvalXMV.mjs} +2 -2
  255. package/lib/{provider-jsonrpc-Ftos7WiF.js → provider-jsonrpc-D033z3Mz.js} +1 -1
  256. package/lib/{qr-code-BHrMFAeD.mjs → qr-code-DkdB4YWU.mjs} +1 -1
  257. package/lib/{qr-code-TxdsKI2-.js → qr-code-MKK1K7_f.js} +1 -1
  258. package/lib/{recycle-horizontal-C029OirL.mjs → recycle-horizontal-Bg37UVPn.mjs} +1 -1
  259. package/lib/{recycle-horizontal-CV-Z-xr2.js → recycle-horizontal-Bjn-ZLNs.js} +1 -1
  260. package/lib/{refresh-BOyC5R7s.mjs → refresh-D6TcjIU1.mjs} +1 -1
  261. package/lib/{refresh-gknrXeiN.js → refresh-dRlw97C1.js} +1 -1
  262. package/lib/{reown-logo-E4Y6lFRH.mjs → reown-logo-Dk82Zy5_.mjs} +1 -1
  263. package/lib/{reown-logo-EEGXueyS.js → reown-logo-Kc70GqDZ.js} +1 -1
  264. package/lib/{search-CS8TeAhL.mjs → search-D83RKxoH.mjs} +1 -1
  265. package/lib/{search-BgffY2-W.js → search-Dv-LI1Vx.js} +1 -1
  266. package/lib/{secp256k1-B4pP7t0Q.mjs → secp256k1-BrfK8uV1.mjs} +1 -1
  267. package/lib/{secp256k1-C5vdKPJ_.mjs → secp256k1-DV6Qne0v.mjs} +1 -1
  268. package/lib/{secp256k1-B8yo9NK3.js → secp256k1-DXHZqO4S.js} +1 -1
  269. package/lib/{secp256k1-vuensNa0.js → secp256k1-sf_P35Lc.js} +1 -1
  270. package/lib/{send-DPZWMS7g.js → send-BSMIYys9.js} +1 -1
  271. package/lib/{send-DAp63gAc.mjs → send-Cyopk79y.mjs} +1 -1
  272. package/lib/{signer-CjAhJiqS.js → signer-BZ3rTVnM.js} +1 -1
  273. package/lib/{signer-DJy6KKkU.mjs → signer-DIpGs_9B.mjs} +2 -2
  274. package/lib/solana-BHr-TCKL.js +1 -0
  275. package/lib/{solana-B-yJpfRk.mjs → solana-CrMvdvfl.mjs} +11 -11
  276. package/lib/{solana-Cv5Nbmh4.js → solana-DS2ZcUpG.js} +4 -4
  277. package/lib/solana-Dhrl0nvx.mjs +18 -0
  278. package/lib/{solanaEmbed.esm-Nb0f5Bcf.js → solanaEmbed.esm-1oBtzdki.js} +1 -1
  279. package/lib/{solanaEmbed.esm-DyoMhGln.mjs → solanaEmbed.esm-Dj8UZAI5.mjs} +2 -2
  280. package/lib/src/WormholeConnect.d.ts.map +1 -1
  281. package/lib/src/components/Header.d.ts.map +1 -1
  282. package/lib/src/config/devnet/chains.d.ts.map +1 -1
  283. package/lib/src/config/mainnet/chains.d.ts.map +1 -1
  284. package/lib/src/config/testnet/chains.d.ts.map +1 -1
  285. package/lib/src/config/tokens.d.ts +1 -1
  286. package/lib/src/config/tokens.d.ts.map +1 -1
  287. package/lib/src/config/types.d.ts +2 -4
  288. package/lib/src/config/types.d.ts.map +1 -1
  289. package/lib/src/hooks/useAvailableWallets.d.ts +2 -3
  290. package/lib/src/hooks/useAvailableWallets.d.ts.map +1 -1
  291. package/lib/src/hooks/useFetchQuotes.d.ts.map +1 -1
  292. package/lib/src/hooks/useGasSlider.d.ts +2 -3
  293. package/lib/src/hooks/useGasSlider.d.ts.map +1 -1
  294. package/lib/src/sdklegacy/config/DEVNET.d.ts.map +1 -1
  295. package/lib/src/sdklegacy/config/MAINNET.d.ts.map +1 -1
  296. package/lib/src/sdklegacy/config/TESTNET.d.ts.map +1 -1
  297. package/lib/src/sdklegacy/types.d.ts +1 -22
  298. package/lib/src/sdklegacy/types.d.ts.map +1 -1
  299. package/lib/src/sdklegacy/utils.d.ts +0 -2
  300. package/lib/src/sdklegacy/utils.d.ts.map +1 -1
  301. package/lib/src/store/transferInput.d.ts +1 -1
  302. package/lib/src/store/transferInput.d.ts.map +1 -1
  303. package/lib/src/store/wallet.d.ts +3 -3
  304. package/lib/src/store/wallet.d.ts.map +1 -1
  305. package/lib/src/utils/index.d.ts +2 -6
  306. package/lib/src/utils/index.d.ts.map +1 -1
  307. package/lib/src/utils/wallet/index.d.ts +5 -5
  308. package/lib/src/utils/wallet/index.d.ts.map +1 -1
  309. package/lib/src/views/v2/Bridge/AssetPicker/SearchableList/SearchInput.d.ts +1 -0
  310. package/lib/src/views/v2/Bridge/AssetPicker/SearchableList/SearchInput.d.ts.map +1 -1
  311. package/lib/src/views/v2/Bridge/AssetPicker/SearchableList/index.d.ts.map +1 -1
  312. package/lib/src/views/v2/Bridge/AssetPicker/TokenList.d.ts.map +1 -1
  313. package/lib/src/views/v2/Bridge/Routes/SingleRoute.d.ts.map +1 -1
  314. package/lib/src/views/v2/Bridge/SwapInputs/index.d.ts.map +1 -1
  315. package/lib/src/views/v2/Bridge/WalletConnector/Sidebar.d.ts.map +1 -1
  316. package/lib/src/views/v2/Bridge/index.d.ts.map +1 -1
  317. package/lib/src/views/v2/Redeem/index.d.ts.map +1 -1
  318. package/lib/{sui-C4YuLBNP.mjs → sui-C6UUvjyd.mjs} +3 -3
  319. package/lib/{sui-C4QOXfn4.mjs → sui-jsmS--zo.mjs} +8 -8
  320. package/lib/{sui-CViWN23E.js → sui-mpRuHBm9.js} +1 -1
  321. package/lib/{sui-Do3J5v2h.js → sui-wX1yJDdB.js} +1 -1
  322. package/lib/{swapHorizontal-BXabxyWk.js → swapHorizontal-Bg8dDuE0.js} +1 -1
  323. package/lib/{swapHorizontal-BAl7yPCe.mjs → swapHorizontal-BiNrGmxY.mjs} +1 -1
  324. package/lib/{swapHorizontalBold-CNpE1U1o.mjs → swapHorizontalBold-CNvg6Zjx.mjs} +1 -1
  325. package/lib/{swapHorizontalBold-2NjnySxd.js → swapHorizontalBold-DeCMOo5R.js} +1 -1
  326. package/lib/{swapHorizontalMedium-BwSIk8q4.js → swapHorizontalMedium-DClbbhUH.js} +1 -1
  327. package/lib/{swapHorizontalMedium-D6igpWxG.mjs → swapHorizontalMedium-TUPMHawi.mjs} +1 -1
  328. package/lib/{swapHorizontalRoundedBold-B6qi_uT4.mjs → swapHorizontalRoundedBold-BAlHBaC3.mjs} +1 -1
  329. package/lib/{swapHorizontalRoundedBold-DP63dC-o.js → swapHorizontalRoundedBold-Cwu5ydTm.js} +1 -1
  330. package/lib/{swapVertical-DosujBg8.mjs → swapVertical-DDYEDCbu.mjs} +1 -1
  331. package/lib/{swapVertical-CkN9z1k4.js → swapVertical-cn4noOLO.js} +1 -1
  332. package/lib/{telegram-D3tmdhc2.mjs → telegram-BGnemuS8.mjs} +1 -1
  333. package/lib/{telegram-CCqTguAZ.js → telegram-sBtcJjCa.js} +1 -1
  334. package/lib/{three-dots-DIorrO14.mjs → three-dots-BS-tA53X.mjs} +1 -1
  335. package/lib/{three-dots-CES7HN37.js → three-dots-Ci3M242Y.js} +1 -1
  336. package/lib/{tokens-D3bLTygd.js → tokens-DprimVrG.js} +1 -1
  337. package/lib/{tokens-CU3HMDM6.mjs → tokens-ZJvnv3ye.mjs} +3 -3
  338. package/lib/{twitch-CTYgEk87.mjs → twitch-DwEOOcQc.mjs} +1 -1
  339. package/lib/{twitch-D34MsrHU.js → twitch-kde2nyWc.js} +1 -1
  340. package/lib/{twitterIcon-DGIe51hs.mjs → twitterIcon-D-aL497o.mjs} +1 -1
  341. package/lib/{twitterIcon-DtgydUL9.js → twitterIcon-EX3YrhMm.js} +1 -1
  342. package/lib/{units-DGe2F5PR.js → units-BVg9f9bp.js} +1 -1
  343. package/lib/{units-Cik_7j3E.mjs → units-De4Es9C-.mjs} +2 -2
  344. package/lib/{unsignedTransaction-CQnHvnm6.js → unsignedTransaction-3gDumn1W.js} +1 -1
  345. package/lib/{unsignedTransaction-w2zI4bHP.mjs → unsignedTransaction-DmrfJNQf.mjs} +11 -11
  346. package/lib/{verify-JdOdGlJW.js → verify-BuD5oE0Y.js} +1 -1
  347. package/lib/{verify-DeO-Hik_.mjs → verify-DPJd26j0.mjs} +1 -1
  348. package/lib/{verify-filled-D3-Qs_-y.mjs → verify-filled-BSJMiVyN.mjs} +1 -1
  349. package/lib/{verify-filled-DDjscBOi.js → verify-filled-DgfMnLnW.js} +1 -1
  350. package/lib/{w3m-modal-aad-Io6d.js → w3m-modal-jDCMhVYM.js} +1 -1
  351. package/lib/{w3m-modal-B0yhKMwq.mjs → w3m-modal-vqqsLuJC.mjs} +2 -2
  352. package/lib/{wallet-yCXA67Qu.mjs → wallet-CiaeeygI.mjs} +1 -1
  353. package/lib/{wallet-BX_HNOiI.js → wallet-DlsCAJmu.js} +1 -1
  354. package/lib/{wallet-placeholder-CP7SPblM.js → wallet-placeholder-CWeGWgUL.js} +1 -1
  355. package/lib/{wallet-placeholder-B3Z8IdVs.mjs → wallet-placeholder-DhQ6l48d.mjs} +1 -1
  356. package/lib/{walletconnect-DIjBEyTX.mjs → walletconnect-CHFqRNg_.mjs} +1 -1
  357. package/lib/{walletconnect-DyRNFsK0.js → walletconnect-YkYiOGcA.js} +1 -1
  358. package/lib/{warning-circle-D8DVppzp.js → warning-circle-BKWEaDK7.js} +1 -1
  359. package/lib/{warning-circle-CXFKWypw.mjs → warning-circle-z__jbYAZ.mjs} +1 -1
  360. package/lib/web3-CevzYKNd.mjs +34 -0
  361. package/lib/{web3-B9XPIqI6.js → web3-IDpqtkwB.js} +1 -1
  362. package/lib/{x-Xk8iBbmJ.mjs → x-DXPEHEVV.mjs} +1 -1
  363. package/lib/{x-B8n79hg8.js → x-De5ksSKs.js} +1 -1
  364. package/package.json +26 -26
  365. package/dist/assets/index-C36A04gA.js +0 -1
  366. package/lib/index-CcYWzKmx.js +0 -1
  367. package/lib/index-DR9PpmKV.js +0 -304
  368. package/lib/solana-BduBLBMs.mjs +0 -18
  369. package/lib/solana-BsxuzgAi.js +0 -1
  370. package/lib/web3-B2F9atsZ.mjs +0 -34
@@ -1 +1 @@
1
- var X=Object.defineProperty;var Y=(n,f,e)=>f in n?X(n,f,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[f]=e;var d=(n,f,e)=>Y(n,typeof f!="symbol"?f+"":f,e);import"./index-C36A04gA.js";import{a as L,E as f0}from"./index-D_PDN2kF.js";import{p as y,a6 as e0,ad as H,t as p,ag as a0,aL as C,aK as t0,aP as b0,ao as q,cz as D,at as I,cA as F,aZ as U,cu as u,cB as j,ac as n0,cC as N,cy as V,cr as d0,cD as c0,am as K}from"../main.js";import{E as v,C as S}from"./evm-Cz5gfo6J.js";import{c as s0,l as i0,h as r0,I as $,C as E}from"./contract-bGGxC9_m.js";import{r as Z}from"./chain-DF9mIQM9.js";import"./create-CbRd6EbF.js";import"./provider-jsonrpc-DTnJKzTS.js";const p0=new RegExp("^bytes([0-9]+)$"),y0=new RegExp("^(u?int)([0-9]*)$"),o0=new RegExp("^(.*)\\[([0-9]*)\\]$");function G(n,f,e){switch(n){case"address":return e?p(C(f,32)):p(a0(f));case"string":return s0(f);case"bytes":return p(f);case"bool":return f=f?"0x01":"0x00",e?p(C(f,32)):p(f)}let a=n.match(y0);if(a){let t=a[1]==="int",b=parseInt(a[2]||"256");return y((!a[2]||a[2]===String(b))&&b%8===0&&b!==0&&b<=256,"invalid number type","type",n),e&&(b=256),t&&(f=i0(f,b)),p(C(r0(f),b/8))}if(a=n.match(p0),a){const t=parseInt(a[1]);return y(String(t)===a[1]&&t!==0&&t<=32,"invalid bytes type","type",n),y(t0(f)===t,`invalid value for ${n}`,"value",f),e?p(b0(f,32)):f}if(a=n.match(o0),a&&Array.isArray(f)){const t=a[1],b=parseInt(a[2]||String(f.length));y(b===f.length,`invalid array length for ${n}`,"value",f);const c=[];return f.forEach(function(s){c.push(G(t,s,!0))}),p(H(c))}y(!1,"invalid type","type",n)}function u0(n,f){y(n.length===f.length,"wrong number of values; expected ${ types.length }","values",f);const e=[];return n.forEach(function(a,t){e.push(G(a,f[t]))}),e0(H(e))}class B{constructor(f,e,a,t){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"chainId");d(this,"circleChainId");d(this,"msgTransmitter");d(this,"tokenMessenger");d(this,"tokenEventHash");d(this,"messageSentEventHash");d(this,"messageReceivedEventHash");var i,r;if(this.network=f,this.chain=e,this.provider=a,this.contracts=t,f==="Devnet")throw new Error("CircleBridge not supported on Devnet");this.chainId=q.get(f,e);const b=D.get(f,e);if(b===void 0)throw new Error(`Circle chain id not found for ${f} ${e}`);this.circleChainId=b;const c=(i=t.cctp)==null?void 0:i.messageTransmitter;if(!c)throw new Error(`Circle Messenge Transmitter contract for domain ${e} not found`);this.msgTransmitter=k.connect(c,a);const s=(r=t.cctp)==null?void 0:r.tokenMessenger;if(!s)throw new Error(`Circle Token Messenger contract for domain ${e} not found`);this.tokenMessenger=R.connect(s,a),this.tokenEventHash=this.tokenMessenger.getEvent("DepositForBurn").fragment.topicHash,this.messageSentEventHash=this.msgTransmitter.getEvent("MessageSent").fragment.topicHash,this.messageReceivedEventHash=this.msgTransmitter.getEvent("MessageReceived").fragment.topicHash}static async fromRpc(f,e){const[a,t]=await v.chainFromRpc(f),b=e[t];if(b.network!==a)throw new Error(`Network mismatch: ${b.network} != ${a}`);return new B(a,t,f,b.contracts)}async*redeem(f,e,a){const t=new I(f).toString(),b=await this.msgTransmitter.receiveMessage.populateTransaction(F.serialize(e),U.decode(a));yield this.createUnsignedTx(u(b,t),"CircleBridge.redeem")}async*transfer(f,e,a){const t=new I(f).toString(),b=e.address.toUniversalAddress().toUint8Array(),c=j.get(this.network,this.chain),s=v.getTokenImplementation(this.provider,c);if(await s.allowance(t,this.tokenMessenger.target)<a){const T=await s.approve.populateTransaction(this.tokenMessenger.target,a);yield this.createUnsignedTx(u(T,t),"ERC20.approve of CircleBridge",!1)}const r=await this.tokenMessenger.depositForBurn.populateTransaction(a,D.get(this.network,e.chain),b,c);yield this.createUnsignedTx(u(r,t),"CircleBridge.transfer")}async isTransferCompleted(f){const e=n0(u0(["uint32","uint64"],[f.sourceDomain,f.nonce]));return(await this.msgTransmitter.usedNonces.staticCall(e)).toString()==="1"}async parseTransactionDetails(f){const e=await this.provider.getTransactionReceipt(f);if(!e)throw new Error(`No receipt for ${f} on ${this.chain}`);const a=e.logs.filter(o=>o.topics[0]===this.messageSentEventHash).map(o=>{const{topics:J,data:Q}=o;return this.msgTransmitter.interface.parseLog({topics:J.slice(),data:Q})}).filter(o=>!!o);if(a.length===0)throw new Error(`No log message for message transmitter found in ${f}`);a.length>1&&console.error(`Expected 1 event to be found for transaction, got>${a.length}}`);const[t]=a,{message:b}=t.args,[c,s]=F.deserialize(U.decode(b)),{payload:i}=c,r=i.messageSender,T=i.mintRecipient,g=N(this.network,c.sourceDomain),A=N(this.network,c.destinationDomain),_={chain:g,address:i.burnToken};return{from:{chain:g,address:r},to:{chain:A,address:T},token:_,amount:i.amount,message:c,id:{hash:s}}}createUnsignedTx(f,e,a=!1){return new L(V(f,this.chainId),this.network,this.chain,e,a)}}class O{constructor(f,e,a,t){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"circleRelayer");d(this,"chainId");d(this,"tokenAddr");d(this,"core");var s;if(this.network=f,this.chain=e,this.provider=a,this.contracts=t,f==="Devnet")throw new Error("AutomaticCircleBridge not supported on Devnet");this.chainId=q.get(f,e);const b=(s=this.contracts.cctp)==null?void 0:s.wormholeRelayer;if(!b)throw new Error(`Wormhole Circle relayer contract for domain ${e} not found`);this.circleRelayer=x.connect(b,a);const c=j.get(this.network,this.chain);if(!c)throw new Error(`USDC contract not found for ${this.network} ${this.chain}`);this.tokenAddr=c,this.core=new f0(f,e,a,t)}static async fromRpc(f,e){const[a,t]=await v.chainFromRpc(f),b=e[t];if(b.network!==a)throw new Error(`Network mismatch: ${b.network} != ${a}`);return new O(a,t,f,b.contracts)}async getRelayerFee(f){return this.circleRelayer.relayerFee(d0(f),this.tokenAddr)}async*transfer(f,e,a,t){const b=new I(f).toString(),c=c0(e.chain),s=e.address.toUniversalAddress().toUint8Array(),i=t||0n,r=v.getTokenImplementation(this.provider,this.tokenAddr);if(await r.allowance(b,this.circleRelayer.target)<a){const _=await r.approve.populateTransaction(this.circleRelayer.target,a);yield this.createUnsignedTx(u(_,b),"ERC20.approve of CircleRelayer")}const g=await this.core.getMessageFee(),A=await this.circleRelayer.transferTokensWithRelay.populateTransaction(this.tokenAddr,a,i,c,s,{value:g});yield this.createUnsignedTx(u(A,b),"CircleRelayer.transfer")}createUnsignedTx(f,e,a=!1){return new L(V(f,this.chainId),this.network,this.chain,e,a)}async nativeTokenAmount(f){return await this.circleRelayer.calculateNativeSwapAmountOut(this.tokenAddr,f)}async maxSwapAmount(){return await this.circleRelayer.calculateMaxSwapAmountIn(this.tokenAddr)}}const h=[{inputs:[{internalType:"address",name:"circleIntegration_",type:"address"},{internalType:"uint8",name:"nativeTokenDecimals_",type:"uint8"},{internalType:"address",name:"feeRecipient_",type:"address"},{internalType:"address",name:"ownerAssistant_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldRecipient",type:"address"},{indexed:!0,internalType:"address",name:"newRecipient",type:"address"}],name:"FeeRecipientUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransfered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"tokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nativeAmount",type:"uint256"}],name:"SwapExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"uint256",name:"swapRate",type:"uint256"}],name:"SwapRateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"address_",type:"bytes32"}],name:"bytes32ToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"token",type:"address"}],name:"calculateMaxSwapAmountIn",outputs:[{internalType:"uint256",name:"maxAllowed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"token",type:"address"},{internalType:"uint256",name:"toNativeAmount",type:"uint256"}],name:"calculateNativeSwapAmountOut",outputs:[{internalType:"uint256",name:"nativeAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"cancelOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"circleIntegration",outputs:[{internalType:"contract ICircleIntegration",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"confirmOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"decodeTransferTokensWithRelay",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"uint256",name:"targetRelayerFee",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"bytes32",name:"targetRecipientWallet",type:"bytes32"}],internalType:"struct CircleRelayerStructs.TransferTokensWithRelay",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"uint256",name:"targetRelayerFee",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"bytes32",name:"targetRecipientWallet",type:"bytes32"}],internalType:"struct CircleRelayerStructs.TransferTokensWithRelay",name:"transfer",type:"tuple"}],name:"encodeTransferTokensWithRelay",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"feeRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getPaused",outputs:[{internalType:"bool",name:"paused",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"emitterChainId",type:"uint16"}],name:"getRegisteredContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"maxNativeSwapAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"nativeSwapRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeSwapRatePrecision",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeTokenDecimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"ownerAssistant",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"encodedWormholeMessage",type:"bytes"},{internalType:"bytes",name:"circleBridgeMessage",type:"bytes"},{internalType:"bytes",name:"circleAttestation",type:"bytes"}],internalType:"struct ICircleIntegration.RedeemParameters",name:"redeemParams",type:"tuple"}],name:"redeemTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bytes32",name:"contractAddress",type:"bytes32"}],name:"registerContract",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"}],name:"relayerFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bool",name:"paused",type:"bool"}],name:"setPauseForTransfers",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newOwner",type:"address"}],name:"submitOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipientWallet",type:"bytes32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newFeeRecipient",type:"address"}],name:"updateFeeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"updateMaxNativeSwapAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"swapRate",type:"uint256"}],name:"updateNativeSwapRate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"uint256",name:"nativeSwapRatePrecision_",type:"uint256"}],name:"updateNativeSwapRatePrecision",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newAssistant",type:"address"}],name:"updateOwnerAssistant",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"updateRelayerFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"}],P="0x6080604090808252346200034a5760808162002baa80380380916200002582856200034f565b8339810103126200034a576200003b8162000389565b6020808301519260ff84168085036200034a576200006960606200006188850162000389565b930162000389565b6001600b556001600160a01b03949092908516918215620002fb5715620002b7578416918215620002735784169081156200022f57600092835490640100000000600160c01b0333871b169362ff000060018060a01b031999858b600554161760055560101b1691828663ff010000600160c01b0319861617178755896003541617600355886002541617600255885193634d4502c960e11b85528685600481875afa94851562000225579087949392918796620001d5575b5061ffff600496169263ff000001600160c01b03191617171784558751928380926384acd1bb60e01b82525afa928315620001cb57829362000182575b505050169060045416176004556305f5e1006006555161280b90816200039f8239f35b9080929350813d8311620001c3575b6200019d81836200034f565b81010312620001bf5751908282168203620001bc57503880806200015f565b80fd5b5080fd5b503d62000191565b86513d84823e3d90fd5b8092949650859193953d83116200021d575b620001f381836200034f565b8101031262000219575161ffff8116810362000219579386939092909161ffff62000122565b8580fd5b503d620001e7565b8a513d88823e3d90fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206f776e657220617373697374616e740000000000000000006044820152606490fd5b865162461bcd60e51b815260048101859052601d60248201527f696e76616c69642066656520726563697069656e7420616464726573730000006044820152606490fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206e617469766520646563696d616c730000000000000000006044820152606490fd5b875162461bcd60e51b815260048101869052602260248201527f696e76616c696420636972636c6520696e746567726174696f6e206164647265604482015261737360f01b6064820152608490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200037357604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200034a5756fe60806040526004361015610013575b600080fd5b60003560e01c8063038c0b66146102a7578063086049851461029e5780630a55d735146102955780630e1c863e1461028c57806313d8900b1461028357806316fb440a1461027a5780631a28219514610271578063203c5095146102685780632a88b4251461025f5780632efe4f421461025657806332d9965a1461024d5780633d62cca014610244578063469048401461023b57806351e2d7b51461023257806359b87d8e146102295780635ced058e146102205780636805b84b1461021757806368aa9ef41461020e5780636ddbaff31461020557806384acd1bb146101fc5780638da5cb5b146101f35780638e151dd1146101ea57806394cc743d146101e15780639a8a0592146101d8578063a2f32c8f146101cf578063ad48cb5e146101c6578063b5419523146101bd578063cd601c78146101b4578063dd6522aa146101ab578063e30c3978146101a2578063ea1d2e4a14610199578063ffa1ad74146101905763fff982a81461018857600080fd5b61000e6112e4565b5061000e61129d565b5061000e6111f7565b5061000e6111cd565b5061000e6111a3565b5061000e61117b565b5061000e61113d565b5061000e611118565b5061000e6110c9565b5061000e6110a6565b5061000e61100d565b5061000e610fd9565b5061000e610faf565b5061000e610f85565b5061000e610f22565b5061000e610e94565b5061000e610e6d565b5061000e610e45565b5061000e610bc6565b5061000e610aec565b5061000e610ac2565b5061000e610a88565b5061000e610a69565b5061000e610a2b565b5061000e610943565b5061000e61086b565b5061000e6107f8565b5061000e6107a9565b5061000e6106d3565b5061000e6104a1565b5061000e61042a565b5061000e610392565b503461000e57600080600319360112610383576001546001600160a01b03908116903382900361033e57825460201c6001600160a01b031660008054640100000000600160c01b031916602085901b640100000000600160c01b0316179055600180546001600160a01b0319169055167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee678380a380f35b60405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206d7573742062652070656e64696e674f776e657200000000006044820152606490fd5b80fd5b61ffff81160361000e57565b503461000e57604036600319011261000e576004356103b081610386565b600054602435916103e291906103d4602083901c6001600160a01b031633146122e6565b61ffff809116911614612329565b80156103ed57600655005b60405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606490fd5b5060031960203682011261000e57600435906001600160401b03821161000e57606090823603011261000e5761046290600401611b89565b005b6001600160a01b0381160361000e57565b606090600319011261000e5760043561048d81610386565b9060243561049a81610464565b9060443590565b503461000e576104626104b336610475565b916104e96000546104da60018060a01b0333818460201c16149081156105d6575b506123bf565b61ffff83811691161415612415565b61050c6105048261ffff16600052600a602052604060002090565b541515612451565b6005546105729061053390610527906001600160a01b031681565b6001600160a01b031690565b604051633b6e750f60e01b81526001600160a01b038516600482015290602090829060249082905afa9081156105c9575b60009161059b575b50612496565b61ffff1660009081526007602090815260408083206001600160a01b0390941683529290522055565b6105bc915060203d81116105c2575b6105b48183610659565b8101906116ff565b3861056c565b503d6105aa565b6105d161158c565b610564565b6002541633149050386104d4565b50634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761061657604052565b61061e6105e4565b604052565b604081019081106001600160401b0382111761061657604052565b60a081019081106001600160401b0382111761061657604052565b90601f801991011681019081106001600160401b0382111761061657604052565b60405190610687826105fb565b565b6040519061010082018281106001600160401b0382111761061657604052565b6020906001600160401b0381116106c6575b601f01601f19160190565b6106ce6105e4565b6106bb565b503461000e57602036600319011261000e576004356001600160401b03811161000e573660238201121561000e57806004013590610710826106a9565b61071d6040519182610659565b828152366024848401011161000e57600060208461077d95602461074996018386013783010152612664565b60405191829182919091606080608083019460ff815116845260208101516020850152604081015160408501520151910152565b0390f35b604090600319011261000e5760043561079981610386565b906024356107a681610464565b90565b503461000e5760206107e561ffff6107c036610781565b91166000526007835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b8015150361000e57565b503461000e57604036600319011261000e5760043561081681610386565b63ff000000602435610827816107ee565b6000549261085590610847602086901c6001600160a01b031633146122e6565b61ffff858116911614612329565b63ff0000001990921691151560181b1617600055005b503461000e5761087a36610781565b60005490916001600160a01b039161089d916103d4602083901c851633146122e6565b8082169182156108ee57600380546001600160a01b031981166001600160a01b039384161790915516167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3600080a3005b60405162461bcd60e51b815260206004820152602760248201527f6e6577466565526563697069656e742063616e6e6f7420657175616c206164646044820152667265737328302960c81b6064820152608490fd5b503461000e5761095236610475565b909160009261097c845460018060a01b039333858360201c16148015610a1e575b6103d4906123bf565b600554604051633b6e750f60e01b81526001600160a01b0383811660048301526109c392602091839160249183918916165afa908115610a11575b869161059b5750612496565b6109ce8315156124d7565b6001600160a01b0381166000908152600860205260409020839055167fc6eb9fb936b61b402d503deeffc822f46492e15c2c8f079815cc4850ad7b02b08380a380f35b610a1961158c565b6109b7565b5060025485163314610973565b503461000e57602036600319011261000e57600435610a4981610464565b60018060a01b031660005260096020526020604060002054604051908152f35b503461000e57600036600319011261000e576020600654604051908152f35b503461000e57602036600319011261000e5761ffff600435610aa981610386565b16600052600a6020526020604060002054604051908152f35b503461000e57600036600319011261000e576003546040516001600160a01b039091168152602090f35b503461000e57604036600319011261000e57600435610b0a81610386565b6000549060243590610b2a602084901c6001600160a01b031633146122e6565b8115610b7157610b506104629361ffff808416908115159283610b64575b505050612363565b61ffff16600052600a602052604060002055565b1614159050388080610b48565b60405162461bcd60e51b815260206004820152602760248201527f636f6e7472616374416464726573732063616e6e6f7420657175616c206279746044820152666573333228302960c81b6064820152608490fd5b5060a036600319011261000e57600435610bdf81610464565b6024359060443560643591610bf383610386565b608435926002600b5414610e00576002600b5560ff60005460181c16610dc757610c1e851515611370565b610c298415156113b1565b6001600160a01b038281169590610c418715156113fd565b610c598361ffff16600052600a602052604060002090565b549382610c67861515611449565b610c70916121a5565b9587610c8a8561ffff166000526007602052604060002090565b6001600160a01b039091166000908152602091909152604090205495610cb081886114ba565b8811610cbb906114cf565b610cc361067a565b6001815296602088015260408701526060860152600554166001600160a01b03166001600160a01b031694610cf9908688611613565b610d0161067a565b6001600160a01b039096168652602086015261ffff1660408501526060840152610d2a90612523565b6040516328a87c1360e21b81529283918291610d4a919060048401611543565b03815a602094600091f161077d918115610dba575b600091610d8c575b50610d726001600b55565b6040516001600160401b0390911681529081906020820190565b610dad915060203d8111610db3575b610da58183610659565b81019061152f565b38610d67565b503d610d9b565b610dc261158c565b610d5f565b60405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b503461000e57602036600319011261000e576040516004356001600160a01b03168152602090f35b503461000e57600036600319011261000e57602060ff60005460181c166040519015158152f35b503461000e57600036600319011261000e576002546040516001600160a01b039091168152602090f35b60ff81160361000e57565b60005b838110610edc5750506000910152565b8181015183820152602001610ecc565b90602091610f0581518092818552858086019101610ec9565b601f01601f1916010190565b9060206107a6928181520190610eec565b503461000e57608036600319011261000e5761077d610f71604051610f46816105fb565b600435610f5281610ebe565b8152602435602082015260443560408201526064356060820152612523565b604051918291602083526020830190610eec565b503461000e57600036600319011261000e576004546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e57600054604051602091821c6001600160a01b03168152f35b503461000e57604036600319011261000e576020611005600435610ffc81610464565b602435906120d2565b604051908152f35b503461000e5761101c36610781565b6000546001600160a01b039261103e91906103d4602083901c861633146122e6565b168015611062576bffffffffffffffffffffffff60a01b6001541617600155600080f35b606460405162461bcd60e51b815260206004820152602060248201527f6e65774f776e65722063616e6e6f7420657175616c20616464726573732830296044820152fd5b503461000e57600036600319011261000e57602061ffff60005416604051908152f35b503461000e57602036600319011261000e576111066004356110ea81610386565b600054906103d4602083901c6001600160a01b031633146122e6565b600180546001600160a01b0319169055005b503461000e57600036600319011261000e57602060ff60005460101c16604051908152f35b503461000e57602036600319011261000e5760043561115b81610464565b60018060a01b031660005260086020526020604060002054604051908152f35b503461000e57602036600319011261000e57602061100560043561119e81610464565b611fa2565b503461000e57600036600319011261000e576005546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e576001546040516001600160a01b039091168152602090f35b503461000e5761120636610781565b6000546001600160a01b039261122891906103d4602083901c861633146122e6565b16801561124c576bffffffffffffffffffffffff60a01b6002541617600255600080f35b60405162461bcd60e51b8152602060048201526024808201527f6e6577417373697374616e742063616e6e6f7420657175616c206164647265736044820152637328302960e01b6064820152608490fd5b503461000e57600036600319011261000e5761077d6040516112be81610623565b60058152640302e322e360dc1b6020820152604051918291602083526020830190610eec565b503461000e576104626113566112f936610475565b600054909391926001600160a01b039161131e916103d4602083901c851633146122e6565b6020816005541691602460405180948193633b6e750f60e01b8352881660048301525afa9081156105c95760009161059b5750612496565b6001600160a01b0316600090815260096020526040902055565b1561137757565b60405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606490fd5b156113b857565b60405162461bcd60e51b815260206004820152601860248201527f696e76616c69642074617267657420726563697069656e7400000000000000006044820152606490fd5b1561140457565b60405162461bcd60e51b815260206004820152601d60248201527f746f6b656e2063616e6e6f7420657175616c20616464726573732830290000006044820152606490fd5b1561145057565b60405162461bcd60e51b815260206004820152602560248201527f434952434c452d52454c415945523a20746172676574206e6f742072656769736044820152641d195c995960da1b6064820152608490fd5b50634e487b7160e01b600052601160045260246000fd5b919082018092116114c757565b6106876114a3565b156114d657565b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420616d6f756e74526563656976656400000000006044820152606490fd5b51906001600160401b038216820361000e57565b9081602091031261000e576107a69061151b565b60c09060606107a6949360018060a01b0381511683526020810151602084015261ffff604082015116604084015201516060820152600060808201528160a08201520190610eec565b506040513d6000823e3d90fd5b9081602091031261000e575190565b156115af57565b60405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b61166961068793928315801561166e575b61162d906115a8565b60405163095ea7b360e01b60208201526001600160a01b039091166024820152604481019390935282606481015b03601f198101845283610659565b611714565b50604051636eb1769f60e11b81523060048201526001600160a01b038216602482015261162d90602081806044810103816001600160a01b0389165afa9081156116f2575b6000916116c4575b50159050611624565b6116e5915060203d81116116eb575b6116dd8183610659565b810190611599565b386116bb565b503d6116d3565b6116fa61158c565b6116b3565b9081602091031261000e57516107a6816107ee565b604051611791916001600160a01b031661172d82610623565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af13d15611819573d91611775836106a9565b926117836040519485610659565b83523d60008785013e61181d565b805190828215928315611801575b505050156117aa5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b61181193508201810191016116ff565b38828161179f565b6060915b9192901561187f5750815115611831575090565b3b1561183a5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156118925750805190602001fd5b60405162461bcd60e51b81529081906118ae9060048301610f11565b0390fd5b519063ffffffff8216820361000e57565b81601f8201121561000e5780516118d9816106a9565b926118e76040519485610659565b8184526020828401011161000e576107a69160208085019101610ec9565b9060208282031261000e5781516001600160401b039283821161000e5701906101008282031261000e57611937610689565b928251845260208301516020850152611952604084016118b2565b6040850152611963606084016118b2565b60608501526119746080840161151b565b608085015260a083015160a085015260c083015160c085015260e083015190811161000e576119a392016118c3565b60e082015290565b9035601e198236030181121561000e5701602081359101916001600160401b03821161000e57813603831361000e57565b908060209392818452848401376000828201840152601f01601f1916010190565b9060606107a69260208152611a25611a1584806119ab565b84602085015260808401916119dc565b90611a58611a4d611a3960208701876119ab565b601f198587038101604087015295916119dc565b9460408101906119ab565b939092828603019101526119dc565b9081602091031261000e57516107a681610386565b15611a8357565b60405162461bcd60e51b815260206004820152602860248201527f66726f6d41646472657373206973206e6f74206120726567697374657265642060448201526718dbdb9d1c9858dd60c21b6064820152608490fd5b15611ae057565b60405162461bcd60e51b815260206004820152602360248201527f726563697069656e742063616e6e6f742073776170206e61746976652061737360448201526265747360e81b6064820152608490fd5b15611b3857565b606460405162461bcd60e51b815260206004820152602060248201527f696e73756666696369656e74206e617469766520617373657420616d6f756e746044820152fd5b919082039182116114c757565b600554611bc3906001600160a01b0390611ba4908216610527565b90604051936357bf927b60e01b855284806000958693600483016119fd565b038183865af1938415611ea1575b8394611e7d575b50611c33611c62611bec60e0870151612664565b93611c5b60a088015191611c0760408a015163ffffffff1690565b6040518092638cf67ba960e01b825281806020998a956004830191909163ffffffff6020820193169052565b03915afa908115611e70575b8891611e43575b5061ffff16600052600a602052604060002090565b5414611a7c565b8451611c76906001600160a01b0316610527565b60608401519094906001600160a01b03169383851691823314611e295761068797928483611cbc938a6040611cca999701948551611ce7575b50505001519051906114ba565b9182611cd1575b0151611b7c565b9216611eae565b611ce2838660035416878a16611eae565b611cc3565b611cf082611fa2565b80875111611e21575b50611d058651836120d2565b92831580611dd557828291611d1c87341015611b31565b82611d278834611b7c565b8015908115611da1575b5050879091611d97575b83928392f115611d8a575b8551604080519182526020820194909452918b169233927f764f0dc063c06f32d89a3f3af80c0db4be8a090901f589a478b447e0a51f09f19190a45b388a81611caf565b611d9261158c565b611d46565b6108fc9150611d3b565b8280929181928290611dcc575b3390f115611dbf575b823880611d31565b611dc761158c565b611db7565b506108fc611dae565b509250505080845234158015611ded575b5050611d82565b81908190611e18575b81809134903390f115611e0b575b3880611de6565b611e1361158c565b611e04565b506108fc611df6565b865238611cf9565b50505061068794611e3a3415611ad9565b01519216611eae565b611e639150853d8711611e69575b611e5b8183610659565b810190611a67565b38611c46565b503d611e51565b611e7861158c565b611c3f565b611e9a9194503d8085833e611e928183610659565b810190611905565b9238611bd8565b611ea961158c565b611bd1565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261068791611669826064810161165b565b15611eee57565b60405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606490fd5b9081602091031261000e57516107a681610ebe565b818102929181159184041417156114c757565b9060ff8091169116039060ff82116114c757565b60ff16604d8111611f75575b600a0a90565b611f7d6114a3565b611f6f565b8115611f8c570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031660008181526008602052604090205490611fc6821515611ee7565b60405163313ce56760e01b815291602083600481855afa9283156120c5575b600093612095575b5060ff60005460101c16918260ff8516116000146120535761203f61204a936120396107a696946120336120449560018060a01b03166000526009602052604060002090565b54611f3c565b93611f4f565b611f63565b90611f3c565b60065490611f82565b61203f6107a69461208061208f946120336120869560018060a01b03166000526009602052604060002090565b94611f4f565b60065490611f3c565b90611f82565b6120b791935060203d81116120be575b6120af8183610659565b810190611f27565b9138611fed565b503d6120a5565b6120cd61158c565b611fe5565b6001600160a01b03166000818152600860209081526040909120600492919054916120fe831515611ee7565b60405163313ce56760e01b815293849182905afa918215612198575b600092612178575b5060ff60005460101c168060ff841611600014612159579061204461203f61208f936121536107a697600654611f3c565b95611f4f565b61204461203f61217393946120396107a697600654611f3c565b611f82565b61219191925060203d81116120be576120af8183610659565b9038612122565b6121a061158c565b61211a565b6040516370a0823160e01b8082523060048301526107a69391926020926001600160a01b0390911691908385602481865afa948515612274575b60009561224d575b50906121f68492303386612281565b60405190815230600482015291829060249082905afa918215612240575b600092612223575b5050611b7c565b6122399250803d106116eb576116dd8183610659565b388061221c565b61224861158c565b612214565b849291955061226b6121f691843d86116116eb576116dd8183610659565b959192506121e7565b61227c61158c565b6121df565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526106879160a082018281106001600160401b038211176122d9575b604052611714565b6122e16105e4565b6122d1565b156122ed57565b60405162461bcd60e51b815260206004820152601460248201527331b0b63632b9103737ba103a34329037bbb732b960611b6044820152606490fd5b1561233057565b60405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339031b430b4b760a91b6044820152606490fd5b1561236a57565b60405162461bcd60e51b815260206004820152602760248201527f636861696e49645f2063616e6e6f7420657175616c2030206f7220746869732060448201526618da185a5b925960ca1b6064820152608490fd5b156123c657565b60405162461bcd60e51b815260206004820152602160248201527f63616c6c6572206e6f7420746865206f776e6572206f7220617373697374616e6044820152601d60fa1b6064820152608490fd5b1561241c57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21031b430b4b760991b6044820152606490fd5b1561245857565b60405162461bcd60e51b815260206004820152601660248201527518dbdb9d1c9858dd08191bd95cdb89dd08195e1a5cdd60521b6044820152606490fd5b1561249d57565b60405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b9bdd081858d8d95c1d195960721b6044820152606490fd5b156124de57565b60405162461bcd60e51b815260206004820152601960248201527f737761702072617465206d757374206265206e6f6e7a65726f000000000000006044820152606490fd5b600160ff825116036125725780519060208101519060606040820151910151916040519360ff60f81b9060f81b166020850152602184015260418301526061820152606181526107a68161063e565b60405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606490fd5b156125b257565b60405162461bcd60e51b815260206004820152602960248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152681c185e5b1bd859125960ba1b6064820152608490fd5b1561261057565b60405162461bcd60e51b815260206004820152602660248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152650d8cadccee8d60d31b6064820152608490fd5b90604051612671816105fb565b600081526020810192600084526040820160008152606083019060008252839560018451106126f0576126c6600160ff6126bf610687986126b8848a0151829060ff169052565b5160ff1690565b16146125ab565b6126cf8461272b565b90526126da83612778565b90526126e582612788565b905251606114612609565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b602181511061273b576021015190565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b604181511061273b576041015190565b6061815110612798576061015190565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fdfea2646970667358221220ce69d4caa8128b752fcc5b0ad82cfd1a64124612c8555100c2e05c2766faa13f64736f6c63430008110033",l0=n=>n.length>1;class x extends S{constructor(...f){l0(f)?super(...f):super(h,P,f[0])}getDeployTransaction(f,e,a,t,b){return super.getDeployTransaction(f,e,a,t,b||{})}deploy(f,e,a,t,b){return super.deploy(f,e,a,t,b||{})}connect(f){return super.connect(f)}static createInterface(){return new $(h)}static connect(f,e){return new E(f,h,e)}}d(x,"bytecode",P),d(x,"abi",h);const w=[{inputs:[{internalType:"address",name:"_messageTransmitter",type:"address"},{internalType:"uint32",name:"_messageBodyVersion",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!0,internalType:"address",name:"burnToken",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"bytes32",name:"mintRecipient",type:"bytes32"},{indexed:!1,internalType:"uint32",name:"destinationDomain",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"destinationTokenMessenger",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"destinationCaller",type:"bytes32"}],name:"DepositForBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"localMinter",type:"address"}],name:"LocalMinterAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"localMinter",type:"address"}],name:"LocalMinterRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"mintRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"mintToken",type:"address"}],name:"MintAndWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"domain",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"tokenMessenger",type:"bytes32"}],name:"RemoteTokenMessengerAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"domain",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"tokenMessenger",type:"bytes32"}],name:"RemoteTokenMessengerRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newRescuer",type:"address"}],name:"RescuerChanged",type:"event"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newLocalMinter",type:"address"}],name:"addLocalMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{internalType:"bytes32",name:"tokenMessenger",type:"bytes32"}],name:"addRemoteTokenMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"},{internalType:"address",name:"burnToken",type:"address"}],name:"depositForBurn",outputs:[{internalType:"uint64",name:"_nonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"},{internalType:"address",name:"burnToken",type:"address"},{internalType:"bytes32",name:"destinationCaller",type:"bytes32"}],name:"depositForBurnWithCaller",outputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"remoteDomain",type:"uint32"},{internalType:"bytes32",name:"sender",type:"bytes32"},{internalType:"bytes",name:"messageBody",type:"bytes"}],name:"handleReceiveMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"localMessageTransmitter",outputs:[{internalType:"contract IMessageTransmitter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"localMinter",outputs:[{internalType:"contract ITokenMinter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageBodyVersion",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"remoteTokenMessengers",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"removeLocalMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"removeRemoteTokenMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newDestinationCaller",type:"bytes32"},{internalType:"bytes32",name:"newMintRecipient",type:"bytes32"}],name:"replaceDepositForBurn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"tokenContract",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rescuer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRescuer",type:"address"}],name:"updateRescuer",outputs:[],stateMutability:"nonpayable",type:"function"}],z="0x60c06040523480156200001157600080fd5b506040516200366238038062003662833981810160405260408110156200003757600080fd5b508051602090910151620000546200004e620000d9565b620000dd565b6001600160a01b038216620000b0576040805162461bcd60e51b815260206004820152601a60248201527f4d6573736167655472616e736d6974746572206e6f7420736574000000000000604482015290519081900360640190fd5b60609190911b6001600160601b03191660805260e01b6001600160e01b03191660a05262000157565b3390565b600180546001600160a01b0319169055620001048162000107602090811b6200177c17901c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805160601c60a05160e01c6134b9620001a960003980610819528061114e528061133f5280611fda5250806108455280610c4c52806121fc5280612252528061293f5280612a1652506134b96000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806391f17888116100cd578063da87e44811610081578063f2fde38b11610066578063f2fde38b146104a7578063f79fd08e146104da578063f856ddb6146104fd57610151565b8063da87e44814610476578063e30c39781461049f57610151565b80639cdbb181116100b25780639cdbb1811461040a578063b2118a8d1461042b578063cb75c11c1461046e57610151565b806391f178881461036c57806396abeb701461037457610151565b80636fd3504e116101245780638197beb9116101095780638197beb9146102fc57806382a5e6651461032f5780638da5cb5b1461036457610151565b80636fd3504e1461028c57806379ba5097146102f457610151565b806329a78e33146101565780632ab60045146102205780632c1219211461025357806338a6318314610284575b600080fd5b61021e6004803603608081101561016c57600080fd5b81019060208101813564010000000081111561018757600080fd5b82018360208201111561019957600080fd5b803590602001918460018302840111640100000000831117156101bb57600080fd5b9193909290916020810190356401000000008111156101d957600080fd5b8201836020820111156101eb57600080fd5b8035906020019184600183028401116401000000008311171561020d57600080fd5b91935091508035906020013561054e565b005b61021e6004803603602081101561023657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b67565b61025b610c4a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61025b610c6e565b6102d7600480360360808110156102a257600080fd5b50803590602081013563ffffffff16906040810135906060013573ffffffffffffffffffffffffffffffffffffffff16610c8a565b6040805167ffffffffffffffff9092168252519081900360200190f35b61021e610ca4565b61021e6004803603602081101561031257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d47565b6103526004803603602081101561034557600080fd5b503563ffffffff16610ecf565b60408051918252519081900360200190f35b61025b610ee1565b61021e610efd565b6103f66004803603606081101561038a57600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156103b757600080fd5b8201836020820111156103c957600080fd5b803590602001918460018302840111640100000000831117156103eb57600080fd5b509092509050610ffe565b604080519115158252519081900360200190f35b61041261133d565b6040805163ffffffff9092168252519081900360200190f35b61021e6004803603606081101561044157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611361565b61025b6113f7565b61021e6004803603604081101561048c57600080fd5b5063ffffffff8135169060200135611413565b61025b61155f565b61021e600480360360208110156104bd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661157b565b61021e600480360360208110156104f057600080fd5b503563ffffffff16611613565b6102d7600480360360a081101561051357600080fd5b5080359063ffffffff6020820135169060408101359073ffffffffffffffffffffffffffffffffffffffff60608201351690608001356116f7565b6000610594600088888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117f19050565b90506105c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611817565b60006105ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611955565b905061061b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166119cc565b60006106487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611b09565b905073__$8c977731748aa4504deed57239565df533$__635ced058e826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561069957600080fd5b505af41580156106ad573d6000803e3d6000fd5b505050506040513d60208110156106c357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16331461074857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642073656e64657220666f72206d657373616765000000000000604482015290519081900360640190fd5b836107b457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d696e7420726563697069656e74206d757374206265206e6f6e7a65726f0000604482015290519081900360640190fd5b60006107e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b3a565b905060006108107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611b6b565b905060006108417f000000000000000000000000000000000000000000000000000000000000000084898588611b9c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b857b7748d8d8d8d868e6040518763ffffffff1660e01b81526004018080602001806020018060200185815260200184810384528a8a82818152602001925080828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101858103845288815260200190508888808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018681038452885181528851602091820193918a019250908190849084905b8381101561096757818101518382015260200161094f565b50505050905090810190601f1680156109945780820380516001836020036101000a031916815260200191505b509950505050505050505050600060405180830381600087803b1580156109ba57600080fd5b505af11580156109ce573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff1673__$8c977731748aa4504deed57239565df533$__635ced058e856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a3857600080fd5b505af4158015610a4c573d6000803e3d6000fd5b505050506040513d6020811015610a6257600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16610aa57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611bff565b67ffffffffffffffff167f2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c0858b610afd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008d16611c30565b610b287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008e16611c61565b60408051948552602085019390935263ffffffff909116838301526060830152608082018e9052519081900360a00190a4505050505050505050505050565b610b6f611c92565b73ffffffffffffffffffffffffffffffffffffffff8116610bdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613335602a913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6000610c998585858585611d3c565b90505b949350505050565b6000610cae6121c3565b90508073ffffffffffffffffffffffffffffffffffffffff16610ccf61155f565b73ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061330c6029913960400191505060405180910390fd5b610d44816121c7565b50565b610d4f611c92565b73ffffffffffffffffffffffffffffffffffffffff8116610dd157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff1615610e5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4c6f63616c206d696e74657220697320616c7265616479207365742e00000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f109bb3e70cbf1931e295b49e75c67013b85ff80d64e6f1d321f37157b90c38309181900360200190a150565b60046020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610f05611c92565b60035473ffffffffffffffffffffffffffffffffffffffff1680610f8a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f206c6f63616c206d696e746572206973207365742e000000000000000000604482015290519081900360640190fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f2db49fbf671271826a27b02ebc496209c85fffffb4bccc67430d2a0f22b4d1ac9181900360200190a150565b60006110086121f8565b61107357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964206d657373616765207472616e736d69747465720000000000604482015290519081900360640190fd5b848461107f8282612279565b6110d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061335f6021913960400191505060405180910390fd5b600061111a600087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117f19050565b90506111477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166119cc565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166111997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166122a5565b63ffffffff161461120b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e76616c6964206d65737361676520626f64792076657273696f6e00000000604482015290519081900360640190fd5b60006112387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166122d5565b905060006112677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b3a565b905060006112967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611b6b565b905060006112a2612306565b905061132b818d8573__$8c977731748aa4504deed57239565df533$__635ced058e896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156112f957600080fd5b505af415801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b5051866123aa565b5060019b9a5050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025473ffffffffffffffffffffffffffffffffffffffff1633146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133c76024913960400191505060405180910390fd5b6113f273ffffffffffffffffffffffffffffffffffffffff841683836124c3565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b61141b611c92565b8061148757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62797465733332283029206e6f7420616c6c6f77656400000000000000000000604482015290519081900360640190fd5b63ffffffff82166000908152600460205260409020541561150957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f546f6b656e4d657373656e67657220616c726561647920736574000000000000604482015290519081900360640190fd5b63ffffffff82166000818152600460209081526040918290208490558151928352820183905280517f4bba2b08298cf59661b4895e384cc2ac3962ce2d71f1b7c11bca52e1169f95999281900390910190a15050565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b611583611c92565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556115ce610ee1565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61161b611c92565b63ffffffff811660009081526004602052604090205461169c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20546f6b656e4d657373656e676572207365740000000000000000000000604482015290519081900360640190fd5b63ffffffff8116600081815260046020908152604080832080549390558051938452908301829052805191927f3dcea012093dbca2bb8ed7fd2b2ff90305ab70bddda8bbb94d4152735a98f0b1929081900390910190a15050565b60008161176557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642064657374696e6174696f6e2063616c6c6572000000000000604482015290519081900360640190fd5b6117728686868686611d3c565b9695505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b81516000906020840161180c64ffffffffff85168284612550565b925050505b92915050565b6118427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166125af565b6118ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b60746118da7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166125ec565b6bffffffffffffffffffffffff161015610d4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c6964206d6573736167653a20746f6f2073686f7274000000000000604482015290519081900360640190fd5b60006119c46074806119887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166125ec565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9103166000612600565b90505b919050565b6119f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166125af565b611a6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b6084611a8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166125ec565b6bffffffffffffffffffffffff1614610d4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c6964206d657373616765206c656e67746800000000000000000000604482015290519081900360640190fd5b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660646020612686565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612686565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660446020612831565b6040805160e09690961b7fffffffff000000000000000000000000000000000000000000000000000000001660208701526024860194909452604485019290925260648401526084808401919091528151808403909101815260a4909201905290565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600c6008612831565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660086004612831565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660346020612686565b611c9a6121c3565b73ffffffffffffffffffffffffffffffffffffffff16611cb8610ee1565b73ffffffffffffffffffffffffffffffffffffffff1614611d3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b6000808611611dac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f416d6f756e74206d757374206265206e6f6e7a65726f00000000000000000000604482015290519081900360640190fd5b83611e1857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d696e7420726563697069656e74206d757374206265206e6f6e7a65726f0000604482015290519081900360640190fd5b6000611e2386612852565b90506000611e2f612306565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8084166024830152604482018c905291519293508792918316916323b872dd916064808201926020929091908290030181600087803b158015611eb357600080fd5b505af1158015611ec7573d6000803e3d6000fd5b505050506040513d6020811015611edd57600080fd5b5051611f4a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e73666572206f7065726174696f6e206661696c656400000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff16639dc29fac878b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611fbb57600080fd5b505af1158015611fcf573d6000803e3d6000fd5b5050505060006121297f000000000000000000000000000000000000000000000000000000000000000073__$8c977731748aa4504deed57239565df533$__6382c947b78a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561205e57600080fd5b505af4158015612072573d6000803e3d6000fd5b505050506040513d602081101561208857600080fd5b5051604080517f82c947b700000000000000000000000000000000000000000000000000000000815233600482015290518c918f9173__$8c977731748aa4504deed57239565df533$__916382c947b7916024808301926020929190829003018186803b1580156120f857600080fd5b505af415801561210c573d6000803e3d6000fd5b505050506040513d602081101561212257600080fd5b5051611b9c565b905060006121398a8689856128d4565b604080518d8152602081018c905263ffffffff8d168183015260608101889052608081018a90529051919250339173ffffffffffffffffffffffffffffffffffffffff8b169167ffffffffffffffff8516917f2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c09181900360a00190a49a9950505050505050505050565b3390565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610d448161177c565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161580159061227457503373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016145b905090565b6000811580159061229e575063ffffffff831660009081526004602052604090205482145b9392505050565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612831565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246020612686565b60035460009073ffffffffffffffffffffffffffffffffffffffff1661238d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c6f63616c206d696e746572206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1690565b604080517fd54de06f00000000000000000000000000000000000000000000000000000000815263ffffffff861660048201526024810185905273ffffffffffffffffffffffffffffffffffffffff848116604483015260648201849052915187926000929084169163d54de06f9160848082019260209290919082900301818787803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b505050506040513d602081101561246457600080fd5b505160408051858152905191925073ffffffffffffffffffffffffffffffffffffffff80841692908716917f1b2a7ff080b8cb6ff436ce0372e399692bbfb6d4ae5766fd8d58a7b8cc6142e6919081900360200190a350505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526113f2908490612b07565b60008061255d8484612bdf565b905060405181111561256d575060005b8061259b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061229e565b6125a6858585612c51565b95945050505050565b60006125ba82612c64565b64ffffffffff1664ffffffffff14156125d5575060006119c7565b60006125e083612c6a565b60405110199392505050565b60181c6bffffffffffffffffffffffff1690565b60008061260c86612c94565b6bffffffffffffffffffffffff16905061262586612c6a565b612639856126338489612bdf565b90612bdf565b1115612668577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610c9c565b6126728186612bdf565b90506117728364ffffffffff168286612550565b600060ff82166126985750600061229e565b6126a1846125ec565b6bffffffffffffffffffffffff166126bc8460ff8516612bdf565b111561279b576126fd6126ce85612c94565b6bffffffffffffffffffffffff166126e5866125ec565b6bffffffffffffffffffffffff16858560ff16612ca8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612760578181015183820152602001612748565b50505050905090810190601f16801561278d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156127f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806133eb603a913960400191505060405180910390fd5b60088202600061280786612c94565b6bffffffffffffffffffffffff169050600061282283612e03565b91909501511695945050505050565b60008160200360080260ff16612848858585612686565b901c949350505050565b63ffffffff8116600090815260046020526040812054806119c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4e6f20546f6b656e4d657373656e67657220666f7220646f6d61696e00000000604482015290519081900360640190fd5b600082612a14576040517f0ba469bc00000000000000000000000000000000000000000000000000000000815263ffffffff8616600482019081526024820186905260606044830190815284516064840152845173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001693630ba469bc938a938a93899360840190602085019080838360005b8381101561299357818101518382015260200161297b565b50505050905090810190601f1680156129c05780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156129e157600080fd5b505af11580156129f5573d6000803e3d6000fd5b505050506040513d6020811015612a0b57600080fd5b50519050610c9c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f7259a75868686866040518563ffffffff1660e01b8152600401808563ffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612ab8578181015183820152602001612aa0565b50505050905090810190601f168015612ae55780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156129e157600080fd5b6000612b69826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e4c9092919063ffffffff16565b8051909150156113f257808060200190516020811015612b8857600080fd5b50516113f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613425602a913960400191505060405180910390fd5b8181018281101561181157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b6000612c75826125ec565b612c7e83612c94565b016bffffffffffffffffffffffff169050919050565b60781c6bffffffffffffffffffffffff1690565b60606000612cb586612e5b565b9150506000612cc386612e5b565b9150506000612cd186612e5b565b9150506000612cdf86612e5b565b91505083838383604051602001808061344f603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216133a682397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6060610c9c8484600085612f2f565b600080601f5b600f8160ff161115612ec35760ff600882021684901c612e80816130e9565b61ffff16841793508160ff16601014612e9b57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612e61565b50600f5b60ff8160ff161015612f295760ff600882021684901c612ee6816130e9565b61ffff16831792508160ff16600014612f0157601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612ec7565b50915091565b606082471015612f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133806026913960400191505060405180910390fd5b612f9385613119565b612ffe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061306757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161302a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146130c9576040519150601f19603f3d011682016040523d82523d6000602084013e6130ce565b606091505b50915091506130de82828661311f565b979650505050505050565b60006130fb60048360ff16901c61319f565b60ff161760081b62ffff00166131108261319f565b60ff1617919050565b3b151590565b6060831561312e57508161229e565b82511561313e5782518084602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152845160248401528451859391928392604401919085019080838360008315612760578181015183820152602001612748565b600060f08083179060ff821614156131bb5760309150506119c7565b8060ff1660f114156131d15760319150506119c7565b8060ff1660f214156131e75760329150506119c7565b8060ff1660f314156131fd5760339150506119c7565b8060ff1660f414156132135760349150506119c7565b8060ff1660f514156132295760359150506119c7565b8060ff1660f6141561323f5760369150506119c7565b8060ff1660f714156132555760379150506119c7565b8060ff1660f8141561326b5760389150506119c7565b8060ff1660f914156132815760399150506119c7565b8060ff1660fa14156132975760619150506119c7565b8060ff1660fb14156132ad5760629150506119c7565b8060ff1660fc14156132c35760639150506119c7565b8060ff1660fd14156132d95760649150506119c7565b8060ff1660fe14156132ef5760659150506119c7565b8060ff1660ff14156133055760669150506119c7565b5091905056fe4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737352656d6f746520546f6b656e4d657373656e67657220756e737570706f72746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657254797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212206b689f34f4e15f499706461beeb293d1cec2381023fbd21a46dcbc1856ad238864736f6c63430007060033",m0=n=>typeof n[0]=="string"||Array.isArray(n[0])||"_isInterface"in n[0],l=class l extends S{constructor(...f){if(m0(f))super(...f);else{const[e,a]=f;super(w,l.linkBytecode(e),a)}}static linkBytecode(f){let e=z;return e=e.replace(new RegExp("__\\$8c977731748aa4504deed57239565df533\\$__","g"),f["src/messages/Message.sol:Message"].replace(/^0x/,"").toLowerCase()),e}getDeployTransaction(f,e,a){return super.getDeployTransaction(f,e,a||{})}deploy(f,e,a){return super.deploy(f,e,a||{})}connect(f){return super.connect(f)}static createInterface(){return new $(w)}static connect(f,e){return new E(f,w,e)}};d(l,"bytecode",z),d(l,"abi",w);let R=l;const M=[{inputs:[{internalType:"uint32",name:"_localDomain",type:"uint32"},{internalType:"address",name:"_attester",type:"address"},{internalType:"uint32",name:"_maxMessageBodySize",type:"uint32"},{internalType:"uint32",name:"_version",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"attester",type:"address"}],name:"AttesterDisabled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"attester",type:"address"}],name:"AttesterEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousAttesterManager",type:"address"},{indexed:!0,internalType:"address",name:"newAttesterManager",type:"address"}],name:"AttesterManagerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newMaxMessageBodySize",type:"uint256"}],name:"MaxMessageBodySizeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"sender",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"messageBody",type:"bytes"}],name:"MessageReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"MessageSent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[],name:"Pause",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAddress",type:"address"}],name:"PauserChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newRescuer",type:"address"}],name:"RescuerChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"oldSignatureThreshold",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newSignatureThreshold",type:"uint256"}],name:"SignatureThresholdUpdated",type:"event"},{anonymous:!1,inputs:[],name:"Unpause",type:"event"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"attesterManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"attester",type:"address"}],name:"disableAttester",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAttester",type:"address"}],name:"enableAttester",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"getEnabledAttester",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNumEnabledAttesters",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"attester",type:"address"}],name:"isEnabledAttester",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"localDomain",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxMessageBodySize",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextAvailableNonce",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"attestation",type:"bytes"}],name:"receiveMessage",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes",name:"newMessageBody",type:"bytes"},{internalType:"bytes32",name:"newDestinationCaller",type:"bytes32"}],name:"replaceMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"tokenContract",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rescuer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes",name:"messageBody",type:"bytes"}],name:"sendMessage",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"destinationCaller",type:"bytes32"},{internalType:"bytes",name:"messageBody",type:"bytes"}],name:"sendMessageWithCaller",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newMaxMessageBodySize",type:"uint256"}],name:"setMaxMessageBodySize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newSignatureThreshold",type:"uint256"}],name:"setSignatureThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"signatureThreshold",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAttesterManager",type:"address"}],name:"updateAttesterManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newPauser",type:"address"}],name:"updatePauser",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRescuer",type:"address"}],name:"updateRescuer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"usedNonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"}],W="0x60c06040526002805460ff60a01b191690553480156200001e57600080fd5b506040516200481f3803806200481f833981810160405260808110156200004457600080fd5b508051602082015160408301516060909301519192909182620000706200006a620000bb565b620000bf565b6200007b33620000e9565b60016004556200008b816200010b565b506001600160e01b031960e094851b811660805263ffffffff9290921660085590921b90911660a0525062000342565b3390565b600180546001600160a01b0319169055620000e6816200026b602090811b620024b817901c565b50565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b031633146200016b576040805162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b6001600160a01b038116620001c7576040805162461bcd60e51b815260206004820152601c60248201527f4e6577206174746573746572206d757374206265206e6f6e7a65726f00000000604482015290519081900360640190fd5b620001e2816005620002bb60201b6200252d1790919060201c565b62000234576040805162461bcd60e51b815260206004820152601860248201527f417474657374657220616c726561647920656e61626c65640000000000000000604482015290519081900360640190fd5b6040516001600160a01b038216907f5b99bab45c72ce67e89466dbc47480b9c1fde1400e7268bbf463b8354ee4653f90600090a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002d2836001600160a01b038416620002db565b90505b92915050565b6000620002e983836200032a565b6200032157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002d5565b506000620002d5565b60009081526001919091016020526040902054151590565b60805160e01c60a05160e01c61449a6200038560003980610d325280611173528061267e525080610f5052806118805280611c2c528061269f525061449a6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638da5cb5b1161010f578063bbde5374116100a2578063f2fde38b11610071578063f2fde38b146106da578063f7259a751461070d578063fae3687914610796578063feb61724146107c9576101e5565b8063bbde537414610665578063beb673d814610682578063de7769d41461069f578063e30c3978146106d2576101e5565b8063a82f2e26116100de578063a82f2e26146104fe578063af47b9bb14610506578063b2118a8d1461050e578063b857b77414610551576101e5565b80638da5cb5b146104c957806392492c68146104d15780639b0d94b7146104ee5780639fd0506d146104f6576101e5565b8063554bab3c116101875780637af82f60116101565780637af82f601461047e5780638371744e146104b15780638456cb59146104b95780638d3638f4146104c1576101e5565b8063554bab3c1461036557806357ecfd28146103985780635c975abb1461046e57806379ba509714610476576101e5565b806338a63183116101c357806338a63183146102f15780633f4ba83a1461032257806351079a531461032a57806354fd4d5014610344576101e5565b80630ba469bc146101ea5780632ab60045146102895780632d025080146102be575b600080fd5b61026c6004803603606081101561020057600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561022d57600080fd5b82018360208201111561023f57600080fd5b8035906020019184600183028401116401000000008311171561026157600080fd5b5090925090506107e6565b6040805167ffffffffffffffff9092168252519081900360200190f35b6102bc6004803603602081101561029f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610931565b005b6102bc600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a14565b6102f9610c40565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102bc610c5c565b610332610d1f565b60408051918252519081900360200190f35b61034c610d30565b6040805163ffffffff9092168252519081900360200190f35b6102bc6004803603602081101561037b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d54565b61045a600480360360408110156103ae57600080fd5b8101906020810181356401000000008111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111640100000000831117156103fd57600080fd5b91939092909160208101903564010000000081111561041b57600080fd5b82018360208201111561042d57600080fd5b8035906020019184600183028401116401000000008311171561044f57600080fd5b509092509050610e3d565b604080519115158252519081900360200190f35b61045a6116bb565b6102bc6116dc565b61045a6004803603602081101561049457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661177f565b61026c611794565b6102bc6117a4565b61034c61187e565b6102f96118a2565b6102bc600480360360208110156104e757600080fd5b50356118be565b6102f9611901565b6102f961191d565b610332611939565b61033261193f565b6102bc6004803603606081101561052457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611945565b6102bc6004803603608081101561056757600080fd5b81019060208101813564010000000081111561058257600080fd5b82018360208201111561059457600080fd5b803590602001918460018302840111640100000000831117156105b657600080fd5b9193909290916020810190356401000000008111156105d457600080fd5b8201836020820111156105e657600080fd5b8035906020019184600183028401116401000000008311171561060857600080fd5b91939092909160208101903564010000000081111561062657600080fd5b82018360208201111561063857600080fd5b8035906020019184600183028401116401000000008311171561065a57600080fd5b9193509150356119db565b6102bc6004803603602081101561067b57600080fd5b5035611d59565b6102f96004803603602081101561069857600080fd5b5035611f7b565b6102bc600480360360208110156106b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611f88565b6102f9612092565b6102bc600480360360208110156106f057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166120ae565b61026c6004803603608081101561072357600080fd5b63ffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561075757600080fd5b82018360208201111561076957600080fd5b8035906020019184600183028401116401000000008311171561078b57600080fd5b509092509050612146565b6102bc600480360360208110156107ac57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166122e4565b610332600480360360208110156107df57600080fd5b50356124a6565b60025460009074010000000000000000000000000000000000000000900460ff161561087357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60008061087e612558565b9050600073__$8c977731748aa4504deed57239565df533$__6382c947b7336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156108e757600080fd5b505af41580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051905061092488888584868b8b61259a565b509150505b949350505050565b6109396127a4565b73ffffffffffffffffffffffffffffffffffffffff81166109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614231602a913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60075473ffffffffffffffffffffffffffffffffffffffff163314610a9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b6000610aa4610d1f565b905060018111610b1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f546f6f2066657720656e61626c65642061747465737465727300000000000000604482015290519081900360640190fd5b6004548111610b8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5369676e6174757265207468726573686f6c6420697320746f6f206c6f770000604482015290519081900360640190fd5b610b9060058361284e565b610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f417474657374657220616c72656164792064697361626c656400000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8316907f78e573a18c75957b7cadaab01511aa1c19a659f06ecf53e01de37ed92d3261fc90600090a25050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff163314610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143916022913960400191505060405180910390fd5b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6000610d2b6005612870565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d5c6127a4565b73ffffffffffffffffffffffffffffffffffffffff8116610dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806141be6028913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60025460009074010000000000000000000000000000000000000000900460ff1615610eca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b610ed68585858561287b565b6000610f1c600087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050612a989050565b9050610f497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216612abc565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610f9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612bfa565b63ffffffff161461100d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642064657374696e6174696f6e20646f6d61696e000000000000604482015290519081900360640190fd5b600061103a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c2b565b1461116c57604080517f82c947b7000000000000000000000000000000000000000000000000000000008152336004820152905173__$8c977731748aa4504deed57239565df533$__916382c947b7916024808301926020929190829003018186803b1580156110a957600080fd5b505af41580156110bd573d6000803e3d6000fd5b505050506040513d60208110156110d357600080fd5b50516111007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c2b565b1461116c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642063616c6c657220666f72206d657373616765000000000000604482015290519081900360640190fd5b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166111be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c5c565b63ffffffff161461123057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c6964206d6573736167652076657273696f6e000000000000000000604482015290519081900360640190fd5b600061125d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c8c565b9050600061128c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612cbc565b9050600061129a8383612ced565b6000818152600a60205260409020549091501561131857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f6e636520616c726561647920757365640000000000000000000000000000604482015290519081900360640190fd5b6000818152600a60205260408120600190556113557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612d68565b905060006113ae6113877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612d99565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016612e08565b905073__$8c977731748aa4504deed57239565df533$__635ced058e6113f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916612e4c565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561142957600080fd5b505af415801561143d573d6000803e3d6000fd5b505050506040513d602081101561145357600080fd5b50516040517f96abeb7000000000000000000000000000000000000000000000000000000000815263ffffffff8716600482019081526024820185905260606044830190815284516064840152845173ffffffffffffffffffffffffffffffffffffffff909416936396abeb70938a938893889391929091608490910190602085019080838360005b838110156114f45781810151838201526020016114dc565b50505050905090810190601f1680156115215780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b505050506040513d602081101561156c57600080fd5b50516115d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f68616e646c65526563656976654d6573736167652829206661696c6564000000604482015290519081900360640190fd5b8367ffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f58200b4c34ae05ee816d710053fff3fb75af4395915d3d2a771b24aa10e3cc5d878585604051808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561166e578181015183820152602001611656565b50505050905090810190601f16801561169b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a35060019a9950505050505050505050565b60025474010000000000000000000000000000000000000000900460ff1681565b60006116e6612e7d565b90508073ffffffffffffffffffffffffffffffffffffffff16611707612092565b73ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806142086029913960400191505060405180910390fd5b61177c81612e81565b50565b600061178c600583612eb2565b90505b919050565b60095467ffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff163314611814576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143916022913960400191505060405180910390fd5b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6118c66127a4565b60088190556040805182815290517fb13bf6bebed03d1b318e3ea32e4b2a3ad9f5e2312cdf340a2f4bbfaee39f928d9181900360200190a150565b60075473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60045481565b60085481565b60035473ffffffffffffffffffffffffffffffffffffffff1633146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143336024913960400191505060405180910390fd5b6119d673ffffffffffffffffffffffffffffffffffffffff84168383612ed4565b505050565b60025474010000000000000000000000000000000000000000900460ff1615611a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b611a718787878761287b565b6000611ab7600089898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050612a989050565b9050611ae47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216612abc565b6000611b117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d68565b905073__$8c977731748aa4504deed57239565df533$__635ced058e826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b6257600080fd5b505af4158015611b76573d6000803e3d6000fd5b505050506040513d6020811015611b8c57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314611bfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806142cf6021913960400191505060405180910390fd5b6000611c287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612c8c565b90507f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff1614611cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806142a3602c913960400191505060405180910390fd5b6000611cdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612bfa565b90506000611d0a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612e4c565b90506000611d397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612cbc565b9050611d4a83838988858e8e61259a565b50505050505050505050505050565b60075473ffffffffffffffffffffffffffffffffffffffff163314611ddf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b80611e4b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964207369676e6174757265207468726573686f6c640000000000604482015290519081900360640190fd5b611e556005612870565b811115611ec357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e6577207369676e6174757265207468726573686f6c6420746f6f2068696768604482015290519081900360640190fd5b600454811415611f3457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5369676e6174757265207468726573686f6c6420616c72656164792073657400604482015290519081900360640190fd5b6004805490829055604080518281526020810184905281517f149153f58b4da003a8cfd4523709a202402182cb5aa335046911277a1be6eede929181900390910190a15050565b600061178c600583612f61565b611f906127a4565b73ffffffffffffffffffffffffffffffffffffffff811661201257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f496e76616c6964206174746573746572206d616e616765722061646472657373604482015290519081900360640190fd5b60075473ffffffffffffffffffffffffffffffffffffffff1661203482612f6d565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0cee1b7ae04f3c788dd3a46c6fa677eb95b913611ef7ab59524fdc09d346021960405160405180910390a35050565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b6120b66127a4565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556121016118a2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60025460009074010000000000000000000000000000000000000000900460ff16156121d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b83612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141e66022913960400191505060405180910390fd5b6000612233612558565b9050600073__$8c977731748aa4504deed57239565df533$__6382c947b7336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561229c57600080fd5b505af41580156122b0573d6000803e3d6000fd5b505050506040513d60208110156122c657600080fd5b505190506122d988888884868a8a61259a565b509695505050505050565b60075473ffffffffffffffffffffffffffffffffffffffff16331461236a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166123ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4e6577206174746573746572206d757374206265206e6f6e7a65726f00000000604482015290519081900360640190fd5b6123f760058261252d565b61246257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f417474657374657220616c726561647920656e61626c65640000000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907f5b99bab45c72ce67e89466dbc47480b9c1fde1400e7268bbf463b8354ee4653f90600090a250565b600a6020526000908152604090205481565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061254f8373ffffffffffffffffffffffffffffffffffffffff8416612fb4565b90505b92915050565b600980547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff9283169081019092161790915590565b60085481111561260b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65737361676520626f64792065786365656473206d61782073697a65000000604482015290519081900360640190fd5b8561267757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f526563697069656e74206d757374206265206e6f6e7a65726f00000000000000604482015290519081900360640190fd5b60006126ff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008a87898c8c8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ffe92505050565b90507f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612760578181015183820152602001612748565b50505050905090810190601f16801561278d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a15050505050505050565b6127ac612e7d565b73ffffffffffffffffffffffffffffffffffffffff166127ca6118a2565b73ffffffffffffffffffffffffffffffffffffffff161461284c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b600061254f8373ffffffffffffffffffffffffffffffffffffffff84166130f3565b600061178c826131d7565b60045460410281146128ee57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c6964206174746573746174696f6e206c656e677468000000000000604482015290519081900360640190fd5b60008085856040518083838082843760405192018290039091209450600093505050505b600454811015612a8f5760006129316041838102908101908789614173565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093945061297492508691508490506131db565b90508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1611612a1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964207369676e6174757265206f72646572206f72206475706500604482015290519081900360640190fd5b612a198161177f565b612a8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964207369676e61747572653a206e6f7420617474657374657200604482015290519081900360640190fd5b935050600101612912565b50505050505050565b815160009060208401612ab364ffffffffff851682846131e7565b95945050505050565b612ae77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216613248565b612b5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b6074612b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316613285565b6bffffffffffffffffffffffff16101561177c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c6964206d6573736167653a20746f6f2073686f7274000000000000604482015290519081900360640190fd5b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660086004613299565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316605460206132ba565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004613299565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600480613299565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600c6008613299565b6040805160e09390931b7fffffffff000000000000000000000000000000000000000000000000000000001660208085019190915260c09290921b7fffffffffffffffff0000000000000000000000000000000000000000000000001660248401528051808403600c018152602c9093019052815191012090565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316601460206132ba565b600061178c607480612dcc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616613285565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9103166000613465565b6060600080612e1684613285565b6bffffffffffffffffffffffff1690506040519150819250612e3b84836020016134f5565b508181016020016040529052919050565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316603460206132ba565b3390565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561177c816124b8565b600061254f8373ffffffffffffffffffffffffffffffffffffffff8416613621565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526119d6908490613639565b600061254f8383613711565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000612fc08383613621565b612ff657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155612552565b506000612552565b60608888888888888888604051602001808963ffffffff1660e01b81526004018863ffffffff1660e01b81526004018763ffffffff1660e01b81526004018667ffffffffffffffff1660c01b815260080185815260200184815260200183815260200182805190602001908083835b602083106130aa57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161306d565b6001836020036101000a03801982511681845116808217855250505050505090500198505050505050505050604051602081830303815290604052905098975050505050505050565b600081815260018301602052604081205480156131cd5783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808301919081019060009087908390811061314457fe5b906000526020600020015490508087600001848154811061316157fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061319157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612552565b6000915050612552565b5490565b600061254f838361378f565b6000806131f4848461381f565b9050604051811115613204575060005b80613232577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050613241565b61323d858585613891565b9150505b9392505050565b6000613253826138a4565b64ffffffffff1664ffffffffff141561326e5750600061178f565b6000613279836138aa565b60405110199392505050565b60181c6bffffffffffffffffffffffff1690565b60008160200360080260ff166132b08585856132ba565b901c949350505050565b600060ff82166132cc57506000613241565b6132d584613285565b6bffffffffffffffffffffffff166132f08460ff851661381f565b11156133cf57613331613302856138d4565b6bffffffffffffffffffffffff1661331986613285565b6bffffffffffffffffffffffff16858560ff166138e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561339457818101518382015260200161337c565b50505050905090810190601f1680156133c15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff16111561342c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614357603a913960400191505060405180910390fd5b60088202600061343b866138d4565b6bffffffffffffffffffffffff169050600061345683613a43565b91909501511695945050505050565b600080613471866138d4565b6bffffffffffffffffffffffff16905061348a866138aa565b61349e85613498848961381f565b9061381f565b11156134cd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610929565b6134d7818661381f565b90506134eb8364ffffffffff1682866131e7565b9695505050505050565b600061350083613a8c565b613555576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806143dd6028913960400191505060405180910390fd5b61355e83613248565b6135b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614405602b913960400191505060405180910390fd5b60006135be84613285565b6bffffffffffffffffffffffff16905060006135d9856138d4565b6bffffffffffffffffffffffff16905060006040519050848111156135fe5760206060fd5b8285848460045afa506134eb613613876138a4565b64ffffffffff168685613891565b60009081526001919091016020526040902054151590565b600061369b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613a9e9092919063ffffffff16565b8051909150156119d6578080602001905160208110156136ba57600080fd5b50516119d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806143b3602a913960400191505060405180910390fd5b8154600090821061376d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061419c6022913960400191505060405180910390fd5b82600001828154811061377c57fe5b9060005260206000200154905092915050565b6000815160411461380157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6134eb86828585613aad565b8181018281101561255257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b60006138b582613285565b6138be836138d4565b016bffffffffffffffffffffffff169050919050565b60781c6bffffffffffffffffffffffff1690565b606060006138f586613c9b565b915050600061390386613c9b565b915050600061391186613c9b565b915050600061391f86613c9b565b915050838383836040516020018080614430603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216142f082397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000613a9782613d6f565b1592915050565b60606109298484600085613d97565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115613b28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061425b6022913960400191505060405180910390fd5b8360ff16601b1480613b3d57508360ff16601c145b613b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143116022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015613bee573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b600080601f5b600f8160ff161115613d035760ff600882021684901c613cc081613f51565b61ffff16841793508160ff16601014613cdb57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613ca1565b50600f5b60ff8160ff161015613d695760ff600882021684901c613d2681613f51565b61ffff16831792508160ff16600014613d4157601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613d07565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b606082471015613df2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061427d6026913960400191505060405180910390fd5b613dfb85613f81565b613e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613ecf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613e92565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613f31576040519150601f19603f3d011682016040523d82523d6000602084013e613f36565b606091505b5091509150613f46828286613f87565b979650505050505050565b6000613f6360048360ff16901c614007565b60ff161760081b62ffff0016613f7882614007565b60ff1617919050565b3b151590565b60608315613f96575081613241565b825115613fa65782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561339457818101518382015260200161337c565b600060f08083179060ff8216141561402357603091505061178f565b8060ff1660f1141561403957603191505061178f565b8060ff1660f2141561404f57603291505061178f565b8060ff1660f3141561406557603391505061178f565b8060ff1660f4141561407b57603491505061178f565b8060ff1660f5141561409157603591505061178f565b8060ff1660f614156140a757603691505061178f565b8060ff1660f714156140bd57603791505061178f565b8060ff1660f814156140d357603891505061178f565b8060ff1660f914156140e957603991505061178f565b8060ff1660fa14156140ff57606191505061178f565b8060ff1660fb141561411557606291505061178f565b8060ff1660fc141561412b57606391505061178f565b8060ff1660fd141561414157606491505061178f565b8060ff1660fe141561415757606591505061178f565b8060ff1660ff141561416d57606691505061178f565b50919050565b60008085851115614182578182fd5b8386111561418e578182fd5b505082019391909203915056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737344657374696e6174696f6e2063616c6c6572206d757374206265206e6f6e7a65726f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4d657373616765206e6f74206f726967696e616c6c792073656e742066726f6d207468697320646f6d61696e53656e646572206e6f74207065726d697474656420746f20757365206e6f6e63652e20417474656d7074656420746f20696e646578206174206f666673657420307845434453413a20696e76616c6964207369676e6174757265202776272076616c7565526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657254797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220e2eab27571cb9d2ecf49a592b1b78e24c28061c662fef829a376f797fcfcd15864736f6c63430007060033",T0=n=>typeof n[0]=="string"||Array.isArray(n[0])||"_isInterface"in n[0],m=class m extends S{constructor(...f){if(T0(f))super(...f);else{const[e,a]=f;super(M,m.linkBytecode(e),a)}}static linkBytecode(f){let e=W;return e=e.replace(new RegExp("__\\$8c977731748aa4504deed57239565df533\\$__","g"),f["src/messages/Message.sol:Message"].replace(/^0x/,"").toLowerCase()),e}getDeployTransaction(f,e,a,t,b){return super.getDeployTransaction(f,e,a,t,b||{})}deploy(f,e,a,t,b){return super.deploy(f,e,a,t,b||{})}connect(f){return super.connect(f)}static createInterface(){return new $(M)}static connect(f,e){return new E(f,M,e)}};d(m,"bytecode",W),d(m,"abi",M);let k=m;const g0=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),h0=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),I0=Object.freeze(Object.defineProperty({__proto__:null,CircleRelayer__factory:x,MessageTransmitter:g0,MessageTransmitter__factory:k,TokenMessenger:h0,TokenMessenger__factory:R},Symbol.toStringTag,{value:"Module"}));Z(K,"CircleBridge",B);Z(K,"AutomaticCircleBridge",O);export{O as EvmAutomaticCircleBridge,B as EvmCircleBridge,I0 as ethers_contracts};
1
+ var X=Object.defineProperty;var Y=(n,f,e)=>f in n?X(n,f,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[f]=e;var d=(n,f,e)=>Y(n,typeof f!="symbol"?f+"":f,e);import"./index-DA4wR-ie.js";import{a as L,E as f0}from"./index-CYFq9U58.js";import{p as y,a6 as e0,ad as H,t as p,ag as a0,aL as C,aK as t0,aP as b0,ao as q,cz as D,at as I,cA as F,aZ as U,cu as u,cB as j,ac as n0,cC as N,cy as V,cr as d0,cD as c0,am as K}from"../main.js";import{E as v,C as S}from"./evm-DwqzhXfk.js";import{c as s0,l as i0,h as r0,I as $,C as E}from"./contract-bGGxC9_m.js";import{r as Z}from"./chain-DF9mIQM9.js";import"./create-CbRd6EbF.js";import"./provider-jsonrpc-DTnJKzTS.js";const p0=new RegExp("^bytes([0-9]+)$"),y0=new RegExp("^(u?int)([0-9]*)$"),o0=new RegExp("^(.*)\\[([0-9]*)\\]$");function G(n,f,e){switch(n){case"address":return e?p(C(f,32)):p(a0(f));case"string":return s0(f);case"bytes":return p(f);case"bool":return f=f?"0x01":"0x00",e?p(C(f,32)):p(f)}let a=n.match(y0);if(a){let t=a[1]==="int",b=parseInt(a[2]||"256");return y((!a[2]||a[2]===String(b))&&b%8===0&&b!==0&&b<=256,"invalid number type","type",n),e&&(b=256),t&&(f=i0(f,b)),p(C(r0(f),b/8))}if(a=n.match(p0),a){const t=parseInt(a[1]);return y(String(t)===a[1]&&t!==0&&t<=32,"invalid bytes type","type",n),y(t0(f)===t,`invalid value for ${n}`,"value",f),e?p(b0(f,32)):f}if(a=n.match(o0),a&&Array.isArray(f)){const t=a[1],b=parseInt(a[2]||String(f.length));y(b===f.length,`invalid array length for ${n}`,"value",f);const c=[];return f.forEach(function(s){c.push(G(t,s,!0))}),p(H(c))}y(!1,"invalid type","type",n)}function u0(n,f){y(n.length===f.length,"wrong number of values; expected ${ types.length }","values",f);const e=[];return n.forEach(function(a,t){e.push(G(a,f[t]))}),e0(H(e))}class B{constructor(f,e,a,t){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"chainId");d(this,"circleChainId");d(this,"msgTransmitter");d(this,"tokenMessenger");d(this,"tokenEventHash");d(this,"messageSentEventHash");d(this,"messageReceivedEventHash");var i,r;if(this.network=f,this.chain=e,this.provider=a,this.contracts=t,f==="Devnet")throw new Error("CircleBridge not supported on Devnet");this.chainId=q.get(f,e);const b=D.get(f,e);if(b===void 0)throw new Error(`Circle chain id not found for ${f} ${e}`);this.circleChainId=b;const c=(i=t.cctp)==null?void 0:i.messageTransmitter;if(!c)throw new Error(`Circle Messenge Transmitter contract for domain ${e} not found`);this.msgTransmitter=k.connect(c,a);const s=(r=t.cctp)==null?void 0:r.tokenMessenger;if(!s)throw new Error(`Circle Token Messenger contract for domain ${e} not found`);this.tokenMessenger=R.connect(s,a),this.tokenEventHash=this.tokenMessenger.getEvent("DepositForBurn").fragment.topicHash,this.messageSentEventHash=this.msgTransmitter.getEvent("MessageSent").fragment.topicHash,this.messageReceivedEventHash=this.msgTransmitter.getEvent("MessageReceived").fragment.topicHash}static async fromRpc(f,e){const[a,t]=await v.chainFromRpc(f),b=e[t];if(b.network!==a)throw new Error(`Network mismatch: ${b.network} != ${a}`);return new B(a,t,f,b.contracts)}async*redeem(f,e,a){const t=new I(f).toString(),b=await this.msgTransmitter.receiveMessage.populateTransaction(F.serialize(e),U.decode(a));yield this.createUnsignedTx(u(b,t),"CircleBridge.redeem")}async*transfer(f,e,a){const t=new I(f).toString(),b=e.address.toUniversalAddress().toUint8Array(),c=j.get(this.network,this.chain),s=v.getTokenImplementation(this.provider,c);if(await s.allowance(t,this.tokenMessenger.target)<a){const T=await s.approve.populateTransaction(this.tokenMessenger.target,a);yield this.createUnsignedTx(u(T,t),"ERC20.approve of CircleBridge",!1)}const r=await this.tokenMessenger.depositForBurn.populateTransaction(a,D.get(this.network,e.chain),b,c);yield this.createUnsignedTx(u(r,t),"CircleBridge.transfer")}async isTransferCompleted(f){const e=n0(u0(["uint32","uint64"],[f.sourceDomain,f.nonce]));return(await this.msgTransmitter.usedNonces.staticCall(e)).toString()==="1"}async parseTransactionDetails(f){const e=await this.provider.getTransactionReceipt(f);if(!e)throw new Error(`No receipt for ${f} on ${this.chain}`);const a=e.logs.filter(o=>o.topics[0]===this.messageSentEventHash).map(o=>{const{topics:J,data:Q}=o;return this.msgTransmitter.interface.parseLog({topics:J.slice(),data:Q})}).filter(o=>!!o);if(a.length===0)throw new Error(`No log message for message transmitter found in ${f}`);a.length>1&&console.error(`Expected 1 event to be found for transaction, got>${a.length}}`);const[t]=a,{message:b}=t.args,[c,s]=F.deserialize(U.decode(b)),{payload:i}=c,r=i.messageSender,T=i.mintRecipient,g=N(this.network,c.sourceDomain),A=N(this.network,c.destinationDomain),_={chain:g,address:i.burnToken};return{from:{chain:g,address:r},to:{chain:A,address:T},token:_,amount:i.amount,message:c,id:{hash:s}}}createUnsignedTx(f,e,a=!1){return new L(V(f,this.chainId),this.network,this.chain,e,a)}}class O{constructor(f,e,a,t){d(this,"network");d(this,"chain");d(this,"provider");d(this,"contracts");d(this,"circleRelayer");d(this,"chainId");d(this,"tokenAddr");d(this,"core");var s;if(this.network=f,this.chain=e,this.provider=a,this.contracts=t,f==="Devnet")throw new Error("AutomaticCircleBridge not supported on Devnet");this.chainId=q.get(f,e);const b=(s=this.contracts.cctp)==null?void 0:s.wormholeRelayer;if(!b)throw new Error(`Wormhole Circle relayer contract for domain ${e} not found`);this.circleRelayer=x.connect(b,a);const c=j.get(this.network,this.chain);if(!c)throw new Error(`USDC contract not found for ${this.network} ${this.chain}`);this.tokenAddr=c,this.core=new f0(f,e,a,t)}static async fromRpc(f,e){const[a,t]=await v.chainFromRpc(f),b=e[t];if(b.network!==a)throw new Error(`Network mismatch: ${b.network} != ${a}`);return new O(a,t,f,b.contracts)}async getRelayerFee(f){return this.circleRelayer.relayerFee(d0(f),this.tokenAddr)}async*transfer(f,e,a,t){const b=new I(f).toString(),c=c0(e.chain),s=e.address.toUniversalAddress().toUint8Array(),i=t||0n,r=v.getTokenImplementation(this.provider,this.tokenAddr);if(await r.allowance(b,this.circleRelayer.target)<a){const _=await r.approve.populateTransaction(this.circleRelayer.target,a);yield this.createUnsignedTx(u(_,b),"ERC20.approve of CircleRelayer")}const g=await this.core.getMessageFee(),A=await this.circleRelayer.transferTokensWithRelay.populateTransaction(this.tokenAddr,a,i,c,s,{value:g});yield this.createUnsignedTx(u(A,b),"CircleRelayer.transfer")}createUnsignedTx(f,e,a=!1){return new L(V(f,this.chainId),this.network,this.chain,e,a)}async nativeTokenAmount(f){return await this.circleRelayer.calculateNativeSwapAmountOut(this.tokenAddr,f)}async maxSwapAmount(){return await this.circleRelayer.calculateMaxSwapAmountIn(this.tokenAddr)}}const h=[{inputs:[{internalType:"address",name:"circleIntegration_",type:"address"},{internalType:"uint8",name:"nativeTokenDecimals_",type:"uint8"},{internalType:"address",name:"feeRecipient_",type:"address"},{internalType:"address",name:"ownerAssistant_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldRecipient",type:"address"},{indexed:!0,internalType:"address",name:"newRecipient",type:"address"}],name:"FeeRecipientUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransfered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"tokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nativeAmount",type:"uint256"}],name:"SwapExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"uint256",name:"swapRate",type:"uint256"}],name:"SwapRateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"address_",type:"bytes32"}],name:"bytes32ToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"token",type:"address"}],name:"calculateMaxSwapAmountIn",outputs:[{internalType:"uint256",name:"maxAllowed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"token",type:"address"},{internalType:"uint256",name:"toNativeAmount",type:"uint256"}],name:"calculateNativeSwapAmountOut",outputs:[{internalType:"uint256",name:"nativeAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"cancelOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"circleIntegration",outputs:[{internalType:"contract ICircleIntegration",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"confirmOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"decodeTransferTokensWithRelay",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"uint256",name:"targetRelayerFee",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"bytes32",name:"targetRecipientWallet",type:"bytes32"}],internalType:"struct CircleRelayerStructs.TransferTokensWithRelay",name:"transfer",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"uint256",name:"targetRelayerFee",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"bytes32",name:"targetRecipientWallet",type:"bytes32"}],internalType:"struct CircleRelayerStructs.TransferTokensWithRelay",name:"transfer",type:"tuple"}],name:"encodeTransferTokensWithRelay",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"feeRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getPaused",outputs:[{internalType:"bool",name:"paused",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"emitterChainId",type:"uint16"}],name:"getRegisteredContract",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"maxNativeSwapAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"nativeSwapRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeSwapRatePrecision",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeTokenDecimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"ownerAssistant",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"encodedWormholeMessage",type:"bytes"},{internalType:"bytes",name:"circleBridgeMessage",type:"bytes"},{internalType:"bytes",name:"circleAttestation",type:"bytes"}],internalType:"struct ICircleIntegration.RedeemParameters",name:"redeemParams",type:"tuple"}],name:"redeemTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bytes32",name:"contractAddress",type:"bytes32"}],name:"registerContract",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"}],name:"relayerFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"bool",name:"paused",type:"bool"}],name:"setPauseForTransfers",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newOwner",type:"address"}],name:"submitOwnershipTransferRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"toNativeTokenAmount",type:"uint256"},{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"bytes32",name:"targetRecipientWallet",type:"bytes32"}],name:"transferTokensWithRelay",outputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newFeeRecipient",type:"address"}],name:"updateFeeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"updateMaxNativeSwapAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"swapRate",type:"uint256"}],name:"updateNativeSwapRate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"uint256",name:"nativeSwapRatePrecision_",type:"uint256"}],name:"updateNativeSwapRatePrecision",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"newAssistant",type:"address"}],name:"updateOwnerAssistant",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"updateRelayerFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"}],P="0x6080604090808252346200034a5760808162002baa80380380916200002582856200034f565b8339810103126200034a576200003b8162000389565b6020808301519260ff84168085036200034a576200006960606200006188850162000389565b930162000389565b6001600b556001600160a01b03949092908516918215620002fb5715620002b7578416918215620002735784169081156200022f57600092835490640100000000600160c01b0333871b169362ff000060018060a01b031999858b600554161760055560101b1691828663ff010000600160c01b0319861617178755896003541617600355886002541617600255885193634d4502c960e11b85528685600481875afa94851562000225579087949392918796620001d5575b5061ffff600496169263ff000001600160c01b03191617171784558751928380926384acd1bb60e01b82525afa928315620001cb57829362000182575b505050169060045416176004556305f5e1006006555161280b90816200039f8239f35b9080929350813d8311620001c3575b6200019d81836200034f565b81010312620001bf5751908282168203620001bc57503880806200015f565b80fd5b5080fd5b503d62000191565b86513d84823e3d90fd5b8092949650859193953d83116200021d575b620001f381836200034f565b8101031262000219575161ffff8116810362000219579386939092909161ffff62000122565b8580fd5b503d620001e7565b8a513d88823e3d90fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206f776e657220617373697374616e740000000000000000006044820152606490fd5b865162461bcd60e51b815260048101859052601d60248201527f696e76616c69642066656520726563697069656e7420616464726573730000006044820152606490fd5b865162461bcd60e51b815260048101859052601760248201527f696e76616c6964206e617469766520646563696d616c730000000000000000006044820152606490fd5b875162461bcd60e51b815260048101869052602260248201527f696e76616c696420636972636c6520696e746567726174696f6e206164647265604482015261737360f01b6064820152608490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200037357604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200034a5756fe60806040526004361015610013575b600080fd5b60003560e01c8063038c0b66146102a7578063086049851461029e5780630a55d735146102955780630e1c863e1461028c57806313d8900b1461028357806316fb440a1461027a5780631a28219514610271578063203c5095146102685780632a88b4251461025f5780632efe4f421461025657806332d9965a1461024d5780633d62cca014610244578063469048401461023b57806351e2d7b51461023257806359b87d8e146102295780635ced058e146102205780636805b84b1461021757806368aa9ef41461020e5780636ddbaff31461020557806384acd1bb146101fc5780638da5cb5b146101f35780638e151dd1146101ea57806394cc743d146101e15780639a8a0592146101d8578063a2f32c8f146101cf578063ad48cb5e146101c6578063b5419523146101bd578063cd601c78146101b4578063dd6522aa146101ab578063e30c3978146101a2578063ea1d2e4a14610199578063ffa1ad74146101905763fff982a81461018857600080fd5b61000e6112e4565b5061000e61129d565b5061000e6111f7565b5061000e6111cd565b5061000e6111a3565b5061000e61117b565b5061000e61113d565b5061000e611118565b5061000e6110c9565b5061000e6110a6565b5061000e61100d565b5061000e610fd9565b5061000e610faf565b5061000e610f85565b5061000e610f22565b5061000e610e94565b5061000e610e6d565b5061000e610e45565b5061000e610bc6565b5061000e610aec565b5061000e610ac2565b5061000e610a88565b5061000e610a69565b5061000e610a2b565b5061000e610943565b5061000e61086b565b5061000e6107f8565b5061000e6107a9565b5061000e6106d3565b5061000e6104a1565b5061000e61042a565b5061000e610392565b503461000e57600080600319360112610383576001546001600160a01b03908116903382900361033e57825460201c6001600160a01b031660008054640100000000600160c01b031916602085901b640100000000600160c01b0316179055600180546001600160a01b0319169055167f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee678380a380f35b60405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206d7573742062652070656e64696e674f776e657200000000006044820152606490fd5b80fd5b61ffff81160361000e57565b503461000e57604036600319011261000e576004356103b081610386565b600054602435916103e291906103d4602083901c6001600160a01b031633146122e6565b61ffff809116911614612329565b80156103ed57600655005b60405162461bcd60e51b81526020600482015260156024820152740707265636973696f6e206d757374206265203e203605c1b6044820152606490fd5b5060031960203682011261000e57600435906001600160401b03821161000e57606090823603011261000e5761046290600401611b89565b005b6001600160a01b0381160361000e57565b606090600319011261000e5760043561048d81610386565b9060243561049a81610464565b9060443590565b503461000e576104626104b336610475565b916104e96000546104da60018060a01b0333818460201c16149081156105d6575b506123bf565b61ffff83811691161415612415565b61050c6105048261ffff16600052600a602052604060002090565b541515612451565b6005546105729061053390610527906001600160a01b031681565b6001600160a01b031690565b604051633b6e750f60e01b81526001600160a01b038516600482015290602090829060249082905afa9081156105c9575b60009161059b575b50612496565b61ffff1660009081526007602090815260408083206001600160a01b0390941683529290522055565b6105bc915060203d81116105c2575b6105b48183610659565b8101906116ff565b3861056c565b503d6105aa565b6105d161158c565b610564565b6002541633149050386104d4565b50634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761061657604052565b61061e6105e4565b604052565b604081019081106001600160401b0382111761061657604052565b60a081019081106001600160401b0382111761061657604052565b90601f801991011681019081106001600160401b0382111761061657604052565b60405190610687826105fb565b565b6040519061010082018281106001600160401b0382111761061657604052565b6020906001600160401b0381116106c6575b601f01601f19160190565b6106ce6105e4565b6106bb565b503461000e57602036600319011261000e576004356001600160401b03811161000e573660238201121561000e57806004013590610710826106a9565b61071d6040519182610659565b828152366024848401011161000e57600060208461077d95602461074996018386013783010152612664565b60405191829182919091606080608083019460ff815116845260208101516020850152604081015160408501520151910152565b0390f35b604090600319011261000e5760043561079981610386565b906024356107a681610464565b90565b503461000e5760206107e561ffff6107c036610781565b91166000526007835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b8015150361000e57565b503461000e57604036600319011261000e5760043561081681610386565b63ff000000602435610827816107ee565b6000549261085590610847602086901c6001600160a01b031633146122e6565b61ffff858116911614612329565b63ff0000001990921691151560181b1617600055005b503461000e5761087a36610781565b60005490916001600160a01b039161089d916103d4602083901c851633146122e6565b8082169182156108ee57600380546001600160a01b031981166001600160a01b039384161790915516167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3600080a3005b60405162461bcd60e51b815260206004820152602760248201527f6e6577466565526563697069656e742063616e6e6f7420657175616c206164646044820152667265737328302960c81b6064820152608490fd5b503461000e5761095236610475565b909160009261097c845460018060a01b039333858360201c16148015610a1e575b6103d4906123bf565b600554604051633b6e750f60e01b81526001600160a01b0383811660048301526109c392602091839160249183918916165afa908115610a11575b869161059b5750612496565b6109ce8315156124d7565b6001600160a01b0381166000908152600860205260409020839055167fc6eb9fb936b61b402d503deeffc822f46492e15c2c8f079815cc4850ad7b02b08380a380f35b610a1961158c565b6109b7565b5060025485163314610973565b503461000e57602036600319011261000e57600435610a4981610464565b60018060a01b031660005260096020526020604060002054604051908152f35b503461000e57600036600319011261000e576020600654604051908152f35b503461000e57602036600319011261000e5761ffff600435610aa981610386565b16600052600a6020526020604060002054604051908152f35b503461000e57600036600319011261000e576003546040516001600160a01b039091168152602090f35b503461000e57604036600319011261000e57600435610b0a81610386565b6000549060243590610b2a602084901c6001600160a01b031633146122e6565b8115610b7157610b506104629361ffff808416908115159283610b64575b505050612363565b61ffff16600052600a602052604060002055565b1614159050388080610b48565b60405162461bcd60e51b815260206004820152602760248201527f636f6e7472616374416464726573732063616e6e6f7420657175616c206279746044820152666573333228302960c81b6064820152608490fd5b5060a036600319011261000e57600435610bdf81610464565b6024359060443560643591610bf383610386565b608435926002600b5414610e00576002600b5560ff60005460181c16610dc757610c1e851515611370565b610c298415156113b1565b6001600160a01b038281169590610c418715156113fd565b610c598361ffff16600052600a602052604060002090565b549382610c67861515611449565b610c70916121a5565b9587610c8a8561ffff166000526007602052604060002090565b6001600160a01b039091166000908152602091909152604090205495610cb081886114ba565b8811610cbb906114cf565b610cc361067a565b6001815296602088015260408701526060860152600554166001600160a01b03166001600160a01b031694610cf9908688611613565b610d0161067a565b6001600160a01b039096168652602086015261ffff1660408501526060840152610d2a90612523565b6040516328a87c1360e21b81529283918291610d4a919060048401611543565b03815a602094600091f161077d918115610dba575b600091610d8c575b50610d726001600b55565b6040516001600160401b0390911681529081906020820190565b610dad915060203d8111610db3575b610da58183610659565b81019061152f565b38610d67565b503d610d9b565b610dc261158c565b610d5f565b60405162461bcd60e51b81526020600482015260116024820152701c995b185e595c881a5cc81c185d5cd959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b503461000e57602036600319011261000e576040516004356001600160a01b03168152602090f35b503461000e57600036600319011261000e57602060ff60005460181c166040519015158152f35b503461000e57600036600319011261000e576002546040516001600160a01b039091168152602090f35b60ff81160361000e57565b60005b838110610edc5750506000910152565b8181015183820152602001610ecc565b90602091610f0581518092818552858086019101610ec9565b601f01601f1916010190565b9060206107a6928181520190610eec565b503461000e57608036600319011261000e5761077d610f71604051610f46816105fb565b600435610f5281610ebe565b8152602435602082015260443560408201526064356060820152612523565b604051918291602083526020830190610eec565b503461000e57600036600319011261000e576004546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e57600054604051602091821c6001600160a01b03168152f35b503461000e57604036600319011261000e576020611005600435610ffc81610464565b602435906120d2565b604051908152f35b503461000e5761101c36610781565b6000546001600160a01b039261103e91906103d4602083901c861633146122e6565b168015611062576bffffffffffffffffffffffff60a01b6001541617600155600080f35b606460405162461bcd60e51b815260206004820152602060248201527f6e65774f776e65722063616e6e6f7420657175616c20616464726573732830296044820152fd5b503461000e57600036600319011261000e57602061ffff60005416604051908152f35b503461000e57602036600319011261000e576111066004356110ea81610386565b600054906103d4602083901c6001600160a01b031633146122e6565b600180546001600160a01b0319169055005b503461000e57600036600319011261000e57602060ff60005460101c16604051908152f35b503461000e57602036600319011261000e5760043561115b81610464565b60018060a01b031660005260086020526020604060002054604051908152f35b503461000e57602036600319011261000e57602061100560043561119e81610464565b611fa2565b503461000e57600036600319011261000e576005546040516001600160a01b039091168152602090f35b503461000e57600036600319011261000e576001546040516001600160a01b039091168152602090f35b503461000e5761120636610781565b6000546001600160a01b039261122891906103d4602083901c861633146122e6565b16801561124c576bffffffffffffffffffffffff60a01b6002541617600255600080f35b60405162461bcd60e51b8152602060048201526024808201527f6e6577417373697374616e742063616e6e6f7420657175616c206164647265736044820152637328302960e01b6064820152608490fd5b503461000e57600036600319011261000e5761077d6040516112be81610623565b60058152640302e322e360dc1b6020820152604051918291602083526020830190610eec565b503461000e576104626113566112f936610475565b600054909391926001600160a01b039161131e916103d4602083901c851633146122e6565b6020816005541691602460405180948193633b6e750f60e01b8352881660048301525afa9081156105c95760009161059b5750612496565b6001600160a01b0316600090815260096020526040902055565b1561137757565b60405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b6044820152606490fd5b156113b857565b60405162461bcd60e51b815260206004820152601860248201527f696e76616c69642074617267657420726563697069656e7400000000000000006044820152606490fd5b1561140457565b60405162461bcd60e51b815260206004820152601d60248201527f746f6b656e2063616e6e6f7420657175616c20616464726573732830290000006044820152606490fd5b1561145057565b60405162461bcd60e51b815260206004820152602560248201527f434952434c452d52454c415945523a20746172676574206e6f742072656769736044820152641d195c995960da1b6064820152608490fd5b50634e487b7160e01b600052601160045260246000fd5b919082018092116114c757565b6106876114a3565b156114d657565b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420616d6f756e74526563656976656400000000006044820152606490fd5b51906001600160401b038216820361000e57565b9081602091031261000e576107a69061151b565b60c09060606107a6949360018060a01b0381511683526020810151602084015261ffff604082015116604084015201516060820152600060808201528160a08201520190610eec565b506040513d6000823e3d90fd5b9081602091031261000e575190565b156115af57565b60405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b61166961068793928315801561166e575b61162d906115a8565b60405163095ea7b360e01b60208201526001600160a01b039091166024820152604481019390935282606481015b03601f198101845283610659565b611714565b50604051636eb1769f60e11b81523060048201526001600160a01b038216602482015261162d90602081806044810103816001600160a01b0389165afa9081156116f2575b6000916116c4575b50159050611624565b6116e5915060203d81116116eb575b6116dd8183610659565b810190611599565b386116bb565b503d6116d3565b6116fa61158c565b6116b3565b9081602091031261000e57516107a6816107ee565b604051611791916001600160a01b031661172d82610623565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af13d15611819573d91611775836106a9565b926117836040519485610659565b83523d60008785013e61181d565b805190828215928315611801575b505050156117aa5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b61181193508201810191016116ff565b38828161179f565b6060915b9192901561187f5750815115611831575090565b3b1561183a5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156118925750805190602001fd5b60405162461bcd60e51b81529081906118ae9060048301610f11565b0390fd5b519063ffffffff8216820361000e57565b81601f8201121561000e5780516118d9816106a9565b926118e76040519485610659565b8184526020828401011161000e576107a69160208085019101610ec9565b9060208282031261000e5781516001600160401b039283821161000e5701906101008282031261000e57611937610689565b928251845260208301516020850152611952604084016118b2565b6040850152611963606084016118b2565b60608501526119746080840161151b565b608085015260a083015160a085015260c083015160c085015260e083015190811161000e576119a392016118c3565b60e082015290565b9035601e198236030181121561000e5701602081359101916001600160401b03821161000e57813603831361000e57565b908060209392818452848401376000828201840152601f01601f1916010190565b9060606107a69260208152611a25611a1584806119ab565b84602085015260808401916119dc565b90611a58611a4d611a3960208701876119ab565b601f198587038101604087015295916119dc565b9460408101906119ab565b939092828603019101526119dc565b9081602091031261000e57516107a681610386565b15611a8357565b60405162461bcd60e51b815260206004820152602860248201527f66726f6d41646472657373206973206e6f74206120726567697374657265642060448201526718dbdb9d1c9858dd60c21b6064820152608490fd5b15611ae057565b60405162461bcd60e51b815260206004820152602360248201527f726563697069656e742063616e6e6f742073776170206e61746976652061737360448201526265747360e81b6064820152608490fd5b15611b3857565b606460405162461bcd60e51b815260206004820152602060248201527f696e73756666696369656e74206e617469766520617373657420616d6f756e746044820152fd5b919082039182116114c757565b600554611bc3906001600160a01b0390611ba4908216610527565b90604051936357bf927b60e01b855284806000958693600483016119fd565b038183865af1938415611ea1575b8394611e7d575b50611c33611c62611bec60e0870151612664565b93611c5b60a088015191611c0760408a015163ffffffff1690565b6040518092638cf67ba960e01b825281806020998a956004830191909163ffffffff6020820193169052565b03915afa908115611e70575b8891611e43575b5061ffff16600052600a602052604060002090565b5414611a7c565b8451611c76906001600160a01b0316610527565b60608401519094906001600160a01b03169383851691823314611e295761068797928483611cbc938a6040611cca999701948551611ce7575b50505001519051906114ba565b9182611cd1575b0151611b7c565b9216611eae565b611ce2838660035416878a16611eae565b611cc3565b611cf082611fa2565b80875111611e21575b50611d058651836120d2565b92831580611dd557828291611d1c87341015611b31565b82611d278834611b7c565b8015908115611da1575b5050879091611d97575b83928392f115611d8a575b8551604080519182526020820194909452918b169233927f764f0dc063c06f32d89a3f3af80c0db4be8a090901f589a478b447e0a51f09f19190a45b388a81611caf565b611d9261158c565b611d46565b6108fc9150611d3b565b8280929181928290611dcc575b3390f115611dbf575b823880611d31565b611dc761158c565b611db7565b506108fc611dae565b509250505080845234158015611ded575b5050611d82565b81908190611e18575b81809134903390f115611e0b575b3880611de6565b611e1361158c565b611e04565b506108fc611df6565b865238611cf9565b50505061068794611e3a3415611ad9565b01519216611eae565b611e639150853d8711611e69575b611e5b8183610659565b810190611a67565b38611c46565b503d611e51565b611e7861158c565b611c3f565b611e9a9194503d8085833e611e928183610659565b810190611905565b9238611bd8565b611ea961158c565b611bd1565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261068791611669826064810161165b565b15611eee57565b60405162461bcd60e51b81526020600482015260116024820152701cddd85c081c985d19481b9bdd081cd95d607a1b6044820152606490fd5b9081602091031261000e57516107a681610ebe565b818102929181159184041417156114c757565b9060ff8091169116039060ff82116114c757565b60ff16604d8111611f75575b600a0a90565b611f7d6114a3565b611f6f565b8115611f8c570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031660008181526008602052604090205490611fc6821515611ee7565b60405163313ce56760e01b815291602083600481855afa9283156120c5575b600093612095575b5060ff60005460101c16918260ff8516116000146120535761203f61204a936120396107a696946120336120449560018060a01b03166000526009602052604060002090565b54611f3c565b93611f4f565b611f63565b90611f3c565b60065490611f82565b61203f6107a69461208061208f946120336120869560018060a01b03166000526009602052604060002090565b94611f4f565b60065490611f3c565b90611f82565b6120b791935060203d81116120be575b6120af8183610659565b810190611f27565b9138611fed565b503d6120a5565b6120cd61158c565b611fe5565b6001600160a01b03166000818152600860209081526040909120600492919054916120fe831515611ee7565b60405163313ce56760e01b815293849182905afa918215612198575b600092612178575b5060ff60005460101c168060ff841611600014612159579061204461203f61208f936121536107a697600654611f3c565b95611f4f565b61204461203f61217393946120396107a697600654611f3c565b611f82565b61219191925060203d81116120be576120af8183610659565b9038612122565b6121a061158c565b61211a565b6040516370a0823160e01b8082523060048301526107a69391926020926001600160a01b0390911691908385602481865afa948515612274575b60009561224d575b50906121f68492303386612281565b60405190815230600482015291829060249082905afa918215612240575b600092612223575b5050611b7c565b6122399250803d106116eb576116dd8183610659565b388061221c565b61224861158c565b612214565b849291955061226b6121f691843d86116116eb576116dd8183610659565b959192506121e7565b61227c61158c565b6121df565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526106879160a082018281106001600160401b038211176122d9575b604052611714565b6122e16105e4565b6122d1565b156122ed57565b60405162461bcd60e51b815260206004820152601460248201527331b0b63632b9103737ba103a34329037bbb732b960611b6044820152606490fd5b1561233057565b60405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339031b430b4b760a91b6044820152606490fd5b1561236a57565b60405162461bcd60e51b815260206004820152602760248201527f636861696e49645f2063616e6e6f7420657175616c2030206f7220746869732060448201526618da185a5b925960ca1b6064820152608490fd5b156123c657565b60405162461bcd60e51b815260206004820152602160248201527f63616c6c6572206e6f7420746865206f776e6572206f7220617373697374616e6044820152601d60fa1b6064820152608490fd5b1561241c57565b60405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21031b430b4b760991b6044820152606490fd5b1561245857565b60405162461bcd60e51b815260206004820152601660248201527518dbdb9d1c9858dd08191bd95cdb89dd08195e1a5cdd60521b6044820152606490fd5b1561249d57565b60405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b9bdd081858d8d95c1d195960721b6044820152606490fd5b156124de57565b60405162461bcd60e51b815260206004820152601960248201527f737761702072617465206d757374206265206e6f6e7a65726f000000000000006044820152606490fd5b600160ff825116036125725780519060208101519060606040820151910151916040519360ff60f81b9060f81b166020850152602184015260418301526061820152606181526107a68161063e565b60405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c185e5b1bd8591259607a1b6044820152606490fd5b156125b257565b60405162461bcd60e51b815260206004820152602960248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152681c185e5b1bd859125960ba1b6064820152608490fd5b1561261057565b60405162461bcd60e51b815260206004820152602660248201527f434952434c455f52454c415945523a20696e76616c6964206d657373616765206044820152650d8cadccee8d60d31b6064820152608490fd5b90604051612671816105fb565b600081526020810192600084526040820160008152606083019060008252839560018451106126f0576126c6600160ff6126bf610687986126b8848a0151829060ff169052565b5160ff1690565b16146125ab565b6126cf8461272b565b90526126da83612778565b90526126e582612788565b905251606114612609565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b602181511061273b576021015190565b60405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606490fd5b604181511061273b576041015190565b6061815110612798576061015190565b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fdfea2646970667358221220ce69d4caa8128b752fcc5b0ad82cfd1a64124612c8555100c2e05c2766faa13f64736f6c63430008110033",l0=n=>n.length>1;class x extends S{constructor(...f){l0(f)?super(...f):super(h,P,f[0])}getDeployTransaction(f,e,a,t,b){return super.getDeployTransaction(f,e,a,t,b||{})}deploy(f,e,a,t,b){return super.deploy(f,e,a,t,b||{})}connect(f){return super.connect(f)}static createInterface(){return new $(h)}static connect(f,e){return new E(f,h,e)}}d(x,"bytecode",P),d(x,"abi",h);const w=[{inputs:[{internalType:"address",name:"_messageTransmitter",type:"address"},{internalType:"uint32",name:"_messageBodyVersion",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!0,internalType:"address",name:"burnToken",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"bytes32",name:"mintRecipient",type:"bytes32"},{indexed:!1,internalType:"uint32",name:"destinationDomain",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"destinationTokenMessenger",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"destinationCaller",type:"bytes32"}],name:"DepositForBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"localMinter",type:"address"}],name:"LocalMinterAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"localMinter",type:"address"}],name:"LocalMinterRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"mintRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"mintToken",type:"address"}],name:"MintAndWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"domain",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"tokenMessenger",type:"bytes32"}],name:"RemoteTokenMessengerAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"domain",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"tokenMessenger",type:"bytes32"}],name:"RemoteTokenMessengerRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newRescuer",type:"address"}],name:"RescuerChanged",type:"event"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newLocalMinter",type:"address"}],name:"addLocalMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{internalType:"bytes32",name:"tokenMessenger",type:"bytes32"}],name:"addRemoteTokenMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"},{internalType:"address",name:"burnToken",type:"address"}],name:"depositForBurn",outputs:[{internalType:"uint64",name:"_nonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"},{internalType:"address",name:"burnToken",type:"address"},{internalType:"bytes32",name:"destinationCaller",type:"bytes32"}],name:"depositForBurnWithCaller",outputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"remoteDomain",type:"uint32"},{internalType:"bytes32",name:"sender",type:"bytes32"},{internalType:"bytes",name:"messageBody",type:"bytes"}],name:"handleReceiveMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"localMessageTransmitter",outputs:[{internalType:"contract IMessageTransmitter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"localMinter",outputs:[{internalType:"contract ITokenMinter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"messageBodyVersion",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"remoteTokenMessengers",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"removeLocalMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"removeRemoteTokenMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newDestinationCaller",type:"bytes32"},{internalType:"bytes32",name:"newMintRecipient",type:"bytes32"}],name:"replaceDepositForBurn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"tokenContract",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rescuer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRescuer",type:"address"}],name:"updateRescuer",outputs:[],stateMutability:"nonpayable",type:"function"}],z="0x60c06040523480156200001157600080fd5b506040516200366238038062003662833981810160405260408110156200003757600080fd5b508051602090910151620000546200004e620000d9565b620000dd565b6001600160a01b038216620000b0576040805162461bcd60e51b815260206004820152601a60248201527f4d6573736167655472616e736d6974746572206e6f7420736574000000000000604482015290519081900360640190fd5b60609190911b6001600160601b03191660805260e01b6001600160e01b03191660a05262000157565b3390565b600180546001600160a01b0319169055620001048162000107602090811b6200177c17901c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805160601c60a05160e01c6134b9620001a960003980610819528061114e528061133f5280611fda5250806108455280610c4c52806121fc5280612252528061293f5280612a1652506134b96000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806391f17888116100cd578063da87e44811610081578063f2fde38b11610066578063f2fde38b146104a7578063f79fd08e146104da578063f856ddb6146104fd57610151565b8063da87e44814610476578063e30c39781461049f57610151565b80639cdbb181116100b25780639cdbb1811461040a578063b2118a8d1461042b578063cb75c11c1461046e57610151565b806391f178881461036c57806396abeb701461037457610151565b80636fd3504e116101245780638197beb9116101095780638197beb9146102fc57806382a5e6651461032f5780638da5cb5b1461036457610151565b80636fd3504e1461028c57806379ba5097146102f457610151565b806329a78e33146101565780632ab60045146102205780632c1219211461025357806338a6318314610284575b600080fd5b61021e6004803603608081101561016c57600080fd5b81019060208101813564010000000081111561018757600080fd5b82018360208201111561019957600080fd5b803590602001918460018302840111640100000000831117156101bb57600080fd5b9193909290916020810190356401000000008111156101d957600080fd5b8201836020820111156101eb57600080fd5b8035906020019184600183028401116401000000008311171561020d57600080fd5b91935091508035906020013561054e565b005b61021e6004803603602081101561023657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b67565b61025b610c4a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61025b610c6e565b6102d7600480360360808110156102a257600080fd5b50803590602081013563ffffffff16906040810135906060013573ffffffffffffffffffffffffffffffffffffffff16610c8a565b6040805167ffffffffffffffff9092168252519081900360200190f35b61021e610ca4565b61021e6004803603602081101561031257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d47565b6103526004803603602081101561034557600080fd5b503563ffffffff16610ecf565b60408051918252519081900360200190f35b61025b610ee1565b61021e610efd565b6103f66004803603606081101561038a57600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156103b757600080fd5b8201836020820111156103c957600080fd5b803590602001918460018302840111640100000000831117156103eb57600080fd5b509092509050610ffe565b604080519115158252519081900360200190f35b61041261133d565b6040805163ffffffff9092168252519081900360200190f35b61021e6004803603606081101561044157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611361565b61025b6113f7565b61021e6004803603604081101561048c57600080fd5b5063ffffffff8135169060200135611413565b61025b61155f565b61021e600480360360208110156104bd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661157b565b61021e600480360360208110156104f057600080fd5b503563ffffffff16611613565b6102d7600480360360a081101561051357600080fd5b5080359063ffffffff6020820135169060408101359073ffffffffffffffffffffffffffffffffffffffff60608201351690608001356116f7565b6000610594600088888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117f19050565b90506105c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611817565b60006105ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611955565b905061061b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166119cc565b60006106487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611b09565b905073__$8c977731748aa4504deed57239565df533$__635ced058e826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561069957600080fd5b505af41580156106ad573d6000803e3d6000fd5b505050506040513d60208110156106c357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16331461074857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642073656e64657220666f72206d657373616765000000000000604482015290519081900360640190fd5b836107b457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d696e7420726563697069656e74206d757374206265206e6f6e7a65726f0000604482015290519081900360640190fd5b60006107e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b3a565b905060006108107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611b6b565b905060006108417f000000000000000000000000000000000000000000000000000000000000000084898588611b9c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b857b7748d8d8d8d868e6040518763ffffffff1660e01b81526004018080602001806020018060200185815260200184810384528a8a82818152602001925080828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101858103845288815260200190508888808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018681038452885181528851602091820193918a019250908190849084905b8381101561096757818101518382015260200161094f565b50505050905090810190601f1680156109945780820380516001836020036101000a031916815260200191505b509950505050505050505050600060405180830381600087803b1580156109ba57600080fd5b505af11580156109ce573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff1673__$8c977731748aa4504deed57239565df533$__635ced058e856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a3857600080fd5b505af4158015610a4c573d6000803e3d6000fd5b505050506040513d6020811015610a6257600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16610aa57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611bff565b67ffffffffffffffff167f2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c0858b610afd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008d16611c30565b610b287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008e16611c61565b60408051948552602085019390935263ffffffff909116838301526060830152608082018e9052519081900360a00190a4505050505050505050505050565b610b6f611c92565b73ffffffffffffffffffffffffffffffffffffffff8116610bdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613335602a913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6000610c998585858585611d3c565b90505b949350505050565b6000610cae6121c3565b90508073ffffffffffffffffffffffffffffffffffffffff16610ccf61155f565b73ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061330c6029913960400191505060405180910390fd5b610d44816121c7565b50565b610d4f611c92565b73ffffffffffffffffffffffffffffffffffffffff8116610dd157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff1615610e5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4c6f63616c206d696e74657220697320616c7265616479207365742e00000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f109bb3e70cbf1931e295b49e75c67013b85ff80d64e6f1d321f37157b90c38309181900360200190a150565b60046020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610f05611c92565b60035473ffffffffffffffffffffffffffffffffffffffff1680610f8a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f206c6f63616c206d696e746572206973207365742e000000000000000000604482015290519081900360640190fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f2db49fbf671271826a27b02ebc496209c85fffffb4bccc67430d2a0f22b4d1ac9181900360200190a150565b60006110086121f8565b61107357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964206d657373616765207472616e736d69747465720000000000604482015290519081900360640190fd5b848461107f8282612279565b6110d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061335f6021913960400191505060405180910390fd5b600061111a600087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117f19050565b90506111477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166119cc565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166111997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166122a5565b63ffffffff161461120b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e76616c6964206d65737361676520626f64792076657273696f6e00000000604482015290519081900360640190fd5b60006112387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166122d5565b905060006112677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611b3a565b905060006112967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611b6b565b905060006112a2612306565b905061132b818d8573__$8c977731748aa4504deed57239565df533$__635ced058e896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156112f957600080fd5b505af415801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b5051866123aa565b5060019b9a5050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025473ffffffffffffffffffffffffffffffffffffffff1633146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133c76024913960400191505060405180910390fd5b6113f273ffffffffffffffffffffffffffffffffffffffff841683836124c3565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b61141b611c92565b8061148757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62797465733332283029206e6f7420616c6c6f77656400000000000000000000604482015290519081900360640190fd5b63ffffffff82166000908152600460205260409020541561150957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f546f6b656e4d657373656e67657220616c726561647920736574000000000000604482015290519081900360640190fd5b63ffffffff82166000818152600460209081526040918290208490558151928352820183905280517f4bba2b08298cf59661b4895e384cc2ac3962ce2d71f1b7c11bca52e1169f95999281900390910190a15050565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b611583611c92565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556115ce610ee1565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61161b611c92565b63ffffffff811660009081526004602052604090205461169c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20546f6b656e4d657373656e676572207365740000000000000000000000604482015290519081900360640190fd5b63ffffffff8116600081815260046020908152604080832080549390558051938452908301829052805191927f3dcea012093dbca2bb8ed7fd2b2ff90305ab70bddda8bbb94d4152735a98f0b1929081900390910190a15050565b60008161176557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642064657374696e6174696f6e2063616c6c6572000000000000604482015290519081900360640190fd5b6117728686868686611d3c565b9695505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b81516000906020840161180c64ffffffffff85168284612550565b925050505b92915050565b6118427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166125af565b6118ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b60746118da7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166125ec565b6bffffffffffffffffffffffff161015610d4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c6964206d6573736167653a20746f6f2073686f7274000000000000604482015290519081900360640190fd5b60006119c46074806119887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166125ec565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9103166000612600565b90505b919050565b6119f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166125af565b611a6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b6084611a8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166125ec565b6bffffffffffffffffffffffff1614610d4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c6964206d657373616765206c656e67746800000000000000000000604482015290519081900360640190fd5b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660646020612686565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612686565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660446020612831565b6040805160e09690961b7fffffffff000000000000000000000000000000000000000000000000000000001660208701526024860194909452604485019290925260648401526084808401919091528151808403909101815260a4909201905290565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600c6008612831565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660086004612831565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660346020612686565b611c9a6121c3565b73ffffffffffffffffffffffffffffffffffffffff16611cb8610ee1565b73ffffffffffffffffffffffffffffffffffffffff1614611d3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b6000808611611dac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f416d6f756e74206d757374206265206e6f6e7a65726f00000000000000000000604482015290519081900360640190fd5b83611e1857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d696e7420726563697069656e74206d757374206265206e6f6e7a65726f0000604482015290519081900360640190fd5b6000611e2386612852565b90506000611e2f612306565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8084166024830152604482018c905291519293508792918316916323b872dd916064808201926020929091908290030181600087803b158015611eb357600080fd5b505af1158015611ec7573d6000803e3d6000fd5b505050506040513d6020811015611edd57600080fd5b5051611f4a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e73666572206f7065726174696f6e206661696c656400000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff16639dc29fac878b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611fbb57600080fd5b505af1158015611fcf573d6000803e3d6000fd5b5050505060006121297f000000000000000000000000000000000000000000000000000000000000000073__$8c977731748aa4504deed57239565df533$__6382c947b78a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561205e57600080fd5b505af4158015612072573d6000803e3d6000fd5b505050506040513d602081101561208857600080fd5b5051604080517f82c947b700000000000000000000000000000000000000000000000000000000815233600482015290518c918f9173__$8c977731748aa4504deed57239565df533$__916382c947b7916024808301926020929190829003018186803b1580156120f857600080fd5b505af415801561210c573d6000803e3d6000fd5b505050506040513d602081101561212257600080fd5b5051611b9c565b905060006121398a8689856128d4565b604080518d8152602081018c905263ffffffff8d168183015260608101889052608081018a90529051919250339173ffffffffffffffffffffffffffffffffffffffff8b169167ffffffffffffffff8516917f2fa9ca894982930190727e75500a97d8dc500233a5065e0f3126c48fbe0343c09181900360a00190a49a9950505050505050505050565b3390565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610d448161177c565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161580159061227457503373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016145b905090565b6000811580159061229e575063ffffffff831660009081526004602052604090205482145b9392505050565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612831565b60006119c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246020612686565b60035460009073ffffffffffffffffffffffffffffffffffffffff1661238d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c6f63616c206d696e746572206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b5060035473ffffffffffffffffffffffffffffffffffffffff1690565b604080517fd54de06f00000000000000000000000000000000000000000000000000000000815263ffffffff861660048201526024810185905273ffffffffffffffffffffffffffffffffffffffff848116604483015260648201849052915187926000929084169163d54de06f9160848082019260209290919082900301818787803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b505050506040513d602081101561246457600080fd5b505160408051858152905191925073ffffffffffffffffffffffffffffffffffffffff80841692908716917f1b2a7ff080b8cb6ff436ce0372e399692bbfb6d4ae5766fd8d58a7b8cc6142e6919081900360200190a350505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526113f2908490612b07565b60008061255d8484612bdf565b905060405181111561256d575060005b8061259b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061229e565b6125a6858585612c51565b95945050505050565b60006125ba82612c64565b64ffffffffff1664ffffffffff14156125d5575060006119c7565b60006125e083612c6a565b60405110199392505050565b60181c6bffffffffffffffffffffffff1690565b60008061260c86612c94565b6bffffffffffffffffffffffff16905061262586612c6a565b612639856126338489612bdf565b90612bdf565b1115612668577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610c9c565b6126728186612bdf565b90506117728364ffffffffff168286612550565b600060ff82166126985750600061229e565b6126a1846125ec565b6bffffffffffffffffffffffff166126bc8460ff8516612bdf565b111561279b576126fd6126ce85612c94565b6bffffffffffffffffffffffff166126e5866125ec565b6bffffffffffffffffffffffff16858560ff16612ca8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612760578181015183820152602001612748565b50505050905090810190601f16801561278d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156127f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806133eb603a913960400191505060405180910390fd5b60088202600061280786612c94565b6bffffffffffffffffffffffff169050600061282283612e03565b91909501511695945050505050565b60008160200360080260ff16612848858585612686565b901c949350505050565b63ffffffff8116600090815260046020526040812054806119c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4e6f20546f6b656e4d657373656e67657220666f7220646f6d61696e00000000604482015290519081900360640190fd5b600082612a14576040517f0ba469bc00000000000000000000000000000000000000000000000000000000815263ffffffff8616600482019081526024820186905260606044830190815284516064840152845173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001693630ba469bc938a938a93899360840190602085019080838360005b8381101561299357818101518382015260200161297b565b50505050905090810190601f1680156129c05780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156129e157600080fd5b505af11580156129f5573d6000803e3d6000fd5b505050506040513d6020811015612a0b57600080fd5b50519050610c9c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f7259a75868686866040518563ffffffff1660e01b8152600401808563ffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612ab8578181015183820152602001612aa0565b50505050905090810190601f168015612ae55780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156129e157600080fd5b6000612b69826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e4c9092919063ffffffff16565b8051909150156113f257808060200190516020811015612b8857600080fd5b50516113f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613425602a913960400191505060405180910390fd5b8181018281101561181157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b6000612c75826125ec565b612c7e83612c94565b016bffffffffffffffffffffffff169050919050565b60781c6bffffffffffffffffffffffff1690565b60606000612cb586612e5b565b9150506000612cc386612e5b565b9150506000612cd186612e5b565b9150506000612cdf86612e5b565b91505083838383604051602001808061344f603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216133a682397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6060610c9c8484600085612f2f565b600080601f5b600f8160ff161115612ec35760ff600882021684901c612e80816130e9565b61ffff16841793508160ff16601014612e9b57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612e61565b50600f5b60ff8160ff161015612f295760ff600882021684901c612ee6816130e9565b61ffff16831792508160ff16600014612f0157601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612ec7565b50915091565b606082471015612f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133806026913960400191505060405180910390fd5b612f9385613119565b612ffe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061306757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161302a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146130c9576040519150601f19603f3d011682016040523d82523d6000602084013e6130ce565b606091505b50915091506130de82828661311f565b979650505050505050565b60006130fb60048360ff16901c61319f565b60ff161760081b62ffff00166131108261319f565b60ff1617919050565b3b151590565b6060831561312e57508161229e565b82511561313e5782518084602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152845160248401528451859391928392604401919085019080838360008315612760578181015183820152602001612748565b600060f08083179060ff821614156131bb5760309150506119c7565b8060ff1660f114156131d15760319150506119c7565b8060ff1660f214156131e75760329150506119c7565b8060ff1660f314156131fd5760339150506119c7565b8060ff1660f414156132135760349150506119c7565b8060ff1660f514156132295760359150506119c7565b8060ff1660f6141561323f5760369150506119c7565b8060ff1660f714156132555760379150506119c7565b8060ff1660f8141561326b5760389150506119c7565b8060ff1660f914156132815760399150506119c7565b8060ff1660fa14156132975760619150506119c7565b8060ff1660fb14156132ad5760629150506119c7565b8060ff1660fc14156132c35760639150506119c7565b8060ff1660fd14156132d95760649150506119c7565b8060ff1660fe14156132ef5760659150506119c7565b8060ff1660ff14156133055760669150506119c7565b5091905056fe4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737352656d6f746520546f6b656e4d657373656e67657220756e737570706f72746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657254797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212206b689f34f4e15f499706461beeb293d1cec2381023fbd21a46dcbc1856ad238864736f6c63430007060033",m0=n=>typeof n[0]=="string"||Array.isArray(n[0])||"_isInterface"in n[0],l=class l extends S{constructor(...f){if(m0(f))super(...f);else{const[e,a]=f;super(w,l.linkBytecode(e),a)}}static linkBytecode(f){let e=z;return e=e.replace(new RegExp("__\\$8c977731748aa4504deed57239565df533\\$__","g"),f["src/messages/Message.sol:Message"].replace(/^0x/,"").toLowerCase()),e}getDeployTransaction(f,e,a){return super.getDeployTransaction(f,e,a||{})}deploy(f,e,a){return super.deploy(f,e,a||{})}connect(f){return super.connect(f)}static createInterface(){return new $(w)}static connect(f,e){return new E(f,w,e)}};d(l,"bytecode",z),d(l,"abi",w);let R=l;const M=[{inputs:[{internalType:"uint32",name:"_localDomain",type:"uint32"},{internalType:"address",name:"_attester",type:"address"},{internalType:"uint32",name:"_maxMessageBodySize",type:"uint32"},{internalType:"uint32",name:"_version",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"attester",type:"address"}],name:"AttesterDisabled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"attester",type:"address"}],name:"AttesterEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousAttesterManager",type:"address"},{indexed:!0,internalType:"address",name:"newAttesterManager",type:"address"}],name:"AttesterManagerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newMaxMessageBodySize",type:"uint256"}],name:"MaxMessageBodySizeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"sender",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"messageBody",type:"bytes"}],name:"MessageReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"MessageSent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[],name:"Pause",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAddress",type:"address"}],name:"PauserChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newRescuer",type:"address"}],name:"RescuerChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"oldSignatureThreshold",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newSignatureThreshold",type:"uint256"}],name:"SignatureThresholdUpdated",type:"event"},{anonymous:!1,inputs:[],name:"Unpause",type:"event"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"attesterManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"attester",type:"address"}],name:"disableAttester",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAttester",type:"address"}],name:"enableAttester",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"getEnabledAttester",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNumEnabledAttesters",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"attester",type:"address"}],name:"isEnabledAttester",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"localDomain",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxMessageBodySize",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextAvailableNonce",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"attestation",type:"bytes"}],name:"receiveMessage",outputs:[{internalType:"bool",name:"success",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes",name:"newMessageBody",type:"bytes"},{internalType:"bytes32",name:"newDestinationCaller",type:"bytes32"}],name:"replaceMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"tokenContract",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"rescueERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rescuer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes",name:"messageBody",type:"bytes"}],name:"sendMessage",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"destinationCaller",type:"bytes32"},{internalType:"bytes",name:"messageBody",type:"bytes"}],name:"sendMessageWithCaller",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newMaxMessageBodySize",type:"uint256"}],name:"setMaxMessageBodySize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newSignatureThreshold",type:"uint256"}],name:"setSignatureThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"signatureThreshold",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAttesterManager",type:"address"}],name:"updateAttesterManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newPauser",type:"address"}],name:"updatePauser",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRescuer",type:"address"}],name:"updateRescuer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"usedNonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"}],W="0x60c06040526002805460ff60a01b191690553480156200001e57600080fd5b506040516200481f3803806200481f833981810160405260808110156200004457600080fd5b508051602082015160408301516060909301519192909182620000706200006a620000bb565b620000bf565b6200007b33620000e9565b60016004556200008b816200010b565b506001600160e01b031960e094851b811660805263ffffffff9290921660085590921b90911660a0525062000342565b3390565b600180546001600160a01b0319169055620000e6816200026b602090811b620024b817901c565b50565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b031633146200016b576040805162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b6001600160a01b038116620001c7576040805162461bcd60e51b815260206004820152601c60248201527f4e6577206174746573746572206d757374206265206e6f6e7a65726f00000000604482015290519081900360640190fd5b620001e2816005620002bb60201b6200252d1790919060201c565b62000234576040805162461bcd60e51b815260206004820152601860248201527f417474657374657220616c726561647920656e61626c65640000000000000000604482015290519081900360640190fd5b6040516001600160a01b038216907f5b99bab45c72ce67e89466dbc47480b9c1fde1400e7268bbf463b8354ee4653f90600090a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002d2836001600160a01b038416620002db565b90505b92915050565b6000620002e983836200032a565b6200032157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002d5565b506000620002d5565b60009081526001919091016020526040902054151590565b60805160e01c60a05160e01c61449a6200038560003980610d325280611173528061267e525080610f5052806118805280611c2c528061269f525061449a6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638da5cb5b1161010f578063bbde5374116100a2578063f2fde38b11610071578063f2fde38b146106da578063f7259a751461070d578063fae3687914610796578063feb61724146107c9576101e5565b8063bbde537414610665578063beb673d814610682578063de7769d41461069f578063e30c3978146106d2576101e5565b8063a82f2e26116100de578063a82f2e26146104fe578063af47b9bb14610506578063b2118a8d1461050e578063b857b77414610551576101e5565b80638da5cb5b146104c957806392492c68146104d15780639b0d94b7146104ee5780639fd0506d146104f6576101e5565b8063554bab3c116101875780637af82f60116101565780637af82f601461047e5780638371744e146104b15780638456cb59146104b95780638d3638f4146104c1576101e5565b8063554bab3c1461036557806357ecfd28146103985780635c975abb1461046e57806379ba509714610476576101e5565b806338a63183116101c357806338a63183146102f15780633f4ba83a1461032257806351079a531461032a57806354fd4d5014610344576101e5565b80630ba469bc146101ea5780632ab60045146102895780632d025080146102be575b600080fd5b61026c6004803603606081101561020057600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561022d57600080fd5b82018360208201111561023f57600080fd5b8035906020019184600183028401116401000000008311171561026157600080fd5b5090925090506107e6565b6040805167ffffffffffffffff9092168252519081900360200190f35b6102bc6004803603602081101561029f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610931565b005b6102bc600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a14565b6102f9610c40565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102bc610c5c565b610332610d1f565b60408051918252519081900360200190f35b61034c610d30565b6040805163ffffffff9092168252519081900360200190f35b6102bc6004803603602081101561037b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d54565b61045a600480360360408110156103ae57600080fd5b8101906020810181356401000000008111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460018302840111640100000000831117156103fd57600080fd5b91939092909160208101903564010000000081111561041b57600080fd5b82018360208201111561042d57600080fd5b8035906020019184600183028401116401000000008311171561044f57600080fd5b509092509050610e3d565b604080519115158252519081900360200190f35b61045a6116bb565b6102bc6116dc565b61045a6004803603602081101561049457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661177f565b61026c611794565b6102bc6117a4565b61034c61187e565b6102f96118a2565b6102bc600480360360208110156104e757600080fd5b50356118be565b6102f9611901565b6102f961191d565b610332611939565b61033261193f565b6102bc6004803603606081101561052457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611945565b6102bc6004803603608081101561056757600080fd5b81019060208101813564010000000081111561058257600080fd5b82018360208201111561059457600080fd5b803590602001918460018302840111640100000000831117156105b657600080fd5b9193909290916020810190356401000000008111156105d457600080fd5b8201836020820111156105e657600080fd5b8035906020019184600183028401116401000000008311171561060857600080fd5b91939092909160208101903564010000000081111561062657600080fd5b82018360208201111561063857600080fd5b8035906020019184600183028401116401000000008311171561065a57600080fd5b9193509150356119db565b6102bc6004803603602081101561067b57600080fd5b5035611d59565b6102f96004803603602081101561069857600080fd5b5035611f7b565b6102bc600480360360208110156106b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611f88565b6102f9612092565b6102bc600480360360208110156106f057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166120ae565b61026c6004803603608081101561072357600080fd5b63ffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561075757600080fd5b82018360208201111561076957600080fd5b8035906020019184600183028401116401000000008311171561078b57600080fd5b509092509050612146565b6102bc600480360360208110156107ac57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166122e4565b610332600480360360208110156107df57600080fd5b50356124a6565b60025460009074010000000000000000000000000000000000000000900460ff161561087357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60008061087e612558565b9050600073__$8c977731748aa4504deed57239565df533$__6382c947b7336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156108e757600080fd5b505af41580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051905061092488888584868b8b61259a565b509150505b949350505050565b6109396127a4565b73ffffffffffffffffffffffffffffffffffffffff81166109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614231602a913960400191505060405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60075473ffffffffffffffffffffffffffffffffffffffff163314610a9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b6000610aa4610d1f565b905060018111610b1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f546f6f2066657720656e61626c65642061747465737465727300000000000000604482015290519081900360640190fd5b6004548111610b8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5369676e6174757265207468726573686f6c6420697320746f6f206c6f770000604482015290519081900360640190fd5b610b9060058361284e565b610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f417474657374657220616c72656164792064697361626c656400000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8316907f78e573a18c75957b7cadaab01511aa1c19a659f06ecf53e01de37ed92d3261fc90600090a25050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff163314610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143916022913960400191505060405180910390fd5b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6000610d2b6005612870565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d5c6127a4565b73ffffffffffffffffffffffffffffffffffffffff8116610dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806141be6028913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60025460009074010000000000000000000000000000000000000000900460ff1615610eca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b610ed68585858561287b565b6000610f1c600087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050612a989050565b9050610f497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216612abc565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610f9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612bfa565b63ffffffff161461100d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642064657374696e6174696f6e20646f6d61696e000000000000604482015290519081900360640190fd5b600061103a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c2b565b1461116c57604080517f82c947b7000000000000000000000000000000000000000000000000000000008152336004820152905173__$8c977731748aa4504deed57239565df533$__916382c947b7916024808301926020929190829003018186803b1580156110a957600080fd5b505af41580156110bd573d6000803e3d6000fd5b505050506040513d60208110156110d357600080fd5b50516111007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c2b565b1461116c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c69642063616c6c657220666f72206d657373616765000000000000604482015290519081900360640190fd5b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166111be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c5c565b63ffffffff161461123057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c6964206d6573736167652076657273696f6e000000000000000000604482015290519081900360640190fd5b600061125d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612c8c565b9050600061128c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612cbc565b9050600061129a8383612ced565b6000818152600a60205260409020549091501561131857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f6e636520616c726561647920757365640000000000000000000000000000604482015290519081900360640190fd5b6000818152600a60205260408120600190556113557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612d68565b905060006113ae6113877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612d99565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016612e08565b905073__$8c977731748aa4504deed57239565df533$__635ced058e6113f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916612e4c565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561142957600080fd5b505af415801561143d573d6000803e3d6000fd5b505050506040513d602081101561145357600080fd5b50516040517f96abeb7000000000000000000000000000000000000000000000000000000000815263ffffffff8716600482019081526024820185905260606044830190815284516064840152845173ffffffffffffffffffffffffffffffffffffffff909416936396abeb70938a938893889391929091608490910190602085019080838360005b838110156114f45781810151838201526020016114dc565b50505050905090810190601f1680156115215780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b505050506040513d602081101561156c57600080fd5b50516115d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f68616e646c65526563656976654d6573736167652829206661696c6564000000604482015290519081900360640190fd5b8367ffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f58200b4c34ae05ee816d710053fff3fb75af4395915d3d2a771b24aa10e3cc5d878585604051808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561166e578181015183820152602001611656565b50505050905090810190601f16801561169b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a35060019a9950505050505050505050565b60025474010000000000000000000000000000000000000000900460ff1681565b60006116e6612e7d565b90508073ffffffffffffffffffffffffffffffffffffffff16611707612092565b73ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806142086029913960400191505060405180910390fd5b61177c81612e81565b50565b600061178c600583612eb2565b90505b919050565b60095467ffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff163314611814576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143916022913960400191505060405180910390fd5b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6118c66127a4565b60088190556040805182815290517fb13bf6bebed03d1b318e3ea32e4b2a3ad9f5e2312cdf340a2f4bbfaee39f928d9181900360200190a150565b60075473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60045481565b60085481565b60035473ffffffffffffffffffffffffffffffffffffffff1633146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806143336024913960400191505060405180910390fd5b6119d673ffffffffffffffffffffffffffffffffffffffff84168383612ed4565b505050565b60025474010000000000000000000000000000000000000000900460ff1615611a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b611a718787878761287b565b6000611ab7600089898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050612a989050565b9050611ae47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216612abc565b6000611b117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d68565b905073__$8c977731748aa4504deed57239565df533$__635ced058e826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611b6257600080fd5b505af4158015611b76573d6000803e3d6000fd5b505050506040513d6020811015611b8c57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314611bfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806142cf6021913960400191505060405180910390fd5b6000611c287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612c8c565b90507f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff1614611cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806142a3602c913960400191505060405180910390fd5b6000611cdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612bfa565b90506000611d0a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612e4c565b90506000611d397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612cbc565b9050611d4a83838988858e8e61259a565b50505050505050505050505050565b60075473ffffffffffffffffffffffffffffffffffffffff163314611ddf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b80611e4b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964207369676e6174757265207468726573686f6c640000000000604482015290519081900360640190fd5b611e556005612870565b811115611ec357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e6577207369676e6174757265207468726573686f6c6420746f6f2068696768604482015290519081900360640190fd5b600454811415611f3457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5369676e6174757265207468726573686f6c6420616c72656164792073657400604482015290519081900360640190fd5b6004805490829055604080518281526020810184905281517f149153f58b4da003a8cfd4523709a202402182cb5aa335046911277a1be6eede929181900390910190a15050565b600061178c600583612f61565b611f906127a4565b73ffffffffffffffffffffffffffffffffffffffff811661201257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f496e76616c6964206174746573746572206d616e616765722061646472657373604482015290519081900360640190fd5b60075473ffffffffffffffffffffffffffffffffffffffff1661203482612f6d565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0cee1b7ae04f3c788dd3a46c6fa677eb95b913611ef7ab59524fdc09d346021960405160405180910390a35050565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b6120b66127a4565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556121016118a2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60025460009074010000000000000000000000000000000000000000900460ff16156121d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b83612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141e66022913960400191505060405180910390fd5b6000612233612558565b9050600073__$8c977731748aa4504deed57239565df533$__6382c947b7336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561229c57600080fd5b505af41580156122b0573d6000803e3d6000fd5b505050506040513d60208110156122c657600080fd5b505190506122d988888884868a8a61259a565b509695505050505050565b60075473ffffffffffffffffffffffffffffffffffffffff16331461236a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616c6c6572206e6f74206174746573746572206d616e616765720000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166123ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4e6577206174746573746572206d757374206265206e6f6e7a65726f00000000604482015290519081900360640190fd5b6123f760058261252d565b61246257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f417474657374657220616c726561647920656e61626c65640000000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907f5b99bab45c72ce67e89466dbc47480b9c1fde1400e7268bbf463b8354ee4653f90600090a250565b600a6020526000908152604090205481565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061254f8373ffffffffffffffffffffffffffffffffffffffff8416612fb4565b90505b92915050565b600980547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff9283169081019092161790915590565b60085481111561260b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65737361676520626f64792065786365656473206d61782073697a65000000604482015290519081900360640190fd5b8561267757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f526563697069656e74206d757374206265206e6f6e7a65726f00000000000000604482015290519081900360640190fd5b60006126ff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008a87898c8c8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ffe92505050565b90507f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612760578181015183820152602001612748565b50505050905090810190601f16801561278d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a15050505050505050565b6127ac612e7d565b73ffffffffffffffffffffffffffffffffffffffff166127ca6118a2565b73ffffffffffffffffffffffffffffffffffffffff161461284c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b600061254f8373ffffffffffffffffffffffffffffffffffffffff84166130f3565b600061178c826131d7565b60045460410281146128ee57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c6964206174746573746174696f6e206c656e677468000000000000604482015290519081900360640190fd5b60008085856040518083838082843760405192018290039091209450600093505050505b600454811015612a8f5760006129316041838102908101908789614173565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093945061297492508691508490506131db565b90508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1611612a1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964207369676e6174757265206f72646572206f72206475706500604482015290519081900360640190fd5b612a198161177f565b612a8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964207369676e61747572653a206e6f7420617474657374657200604482015290519081900360640190fd5b935050600101612912565b50505050505050565b815160009060208401612ab364ffffffffff851682846131e7565b95945050505050565b612ae77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216613248565b612b5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b6074612b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316613285565b6bffffffffffffffffffffffff16101561177c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c6964206d6573736167653a20746f6f2073686f7274000000000000604482015290519081900360640190fd5b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660086004613299565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316605460206132ba565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004613299565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600480613299565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600c6008613299565b6040805160e09390931b7fffffffff000000000000000000000000000000000000000000000000000000001660208085019190915260c09290921b7fffffffffffffffff0000000000000000000000000000000000000000000000001660248401528051808403600c018152602c9093019052815191012090565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316601460206132ba565b600061178c607480612dcc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616613285565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9103166000613465565b6060600080612e1684613285565b6bffffffffffffffffffffffff1690506040519150819250612e3b84836020016134f5565b508181016020016040529052919050565b600061178c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316603460206132ba565b3390565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561177c816124b8565b600061254f8373ffffffffffffffffffffffffffffffffffffffff8416613621565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526119d6908490613639565b600061254f8383613711565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000612fc08383613621565b612ff657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155612552565b506000612552565b60608888888888888888604051602001808963ffffffff1660e01b81526004018863ffffffff1660e01b81526004018763ffffffff1660e01b81526004018667ffffffffffffffff1660c01b815260080185815260200184815260200183815260200182805190602001908083835b602083106130aa57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161306d565b6001836020036101000a03801982511681845116808217855250505050505090500198505050505050505050604051602081830303815290604052905098975050505050505050565b600081815260018301602052604081205480156131cd5783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808301919081019060009087908390811061314457fe5b906000526020600020015490508087600001848154811061316157fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061319157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050612552565b6000915050612552565b5490565b600061254f838361378f565b6000806131f4848461381f565b9050604051811115613204575060005b80613232577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050613241565b61323d858585613891565b9150505b9392505050565b6000613253826138a4565b64ffffffffff1664ffffffffff141561326e5750600061178f565b6000613279836138aa565b60405110199392505050565b60181c6bffffffffffffffffffffffff1690565b60008160200360080260ff166132b08585856132ba565b901c949350505050565b600060ff82166132cc57506000613241565b6132d584613285565b6bffffffffffffffffffffffff166132f08460ff851661381f565b11156133cf57613331613302856138d4565b6bffffffffffffffffffffffff1661331986613285565b6bffffffffffffffffffffffff16858560ff166138e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561339457818101518382015260200161337c565b50505050905090810190601f1680156133c15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff16111561342c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614357603a913960400191505060405180910390fd5b60088202600061343b866138d4565b6bffffffffffffffffffffffff169050600061345683613a43565b91909501511695945050505050565b600080613471866138d4565b6bffffffffffffffffffffffff16905061348a866138aa565b61349e85613498848961381f565b9061381f565b11156134cd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610929565b6134d7818661381f565b90506134eb8364ffffffffff1682866131e7565b9695505050505050565b600061350083613a8c565b613555576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806143dd6028913960400191505060405180910390fd5b61355e83613248565b6135b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614405602b913960400191505060405180910390fd5b60006135be84613285565b6bffffffffffffffffffffffff16905060006135d9856138d4565b6bffffffffffffffffffffffff16905060006040519050848111156135fe5760206060fd5b8285848460045afa506134eb613613876138a4565b64ffffffffff168685613891565b60009081526001919091016020526040902054151590565b600061369b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613a9e9092919063ffffffff16565b8051909150156119d6578080602001905160208110156136ba57600080fd5b50516119d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806143b3602a913960400191505060405180910390fd5b8154600090821061376d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061419c6022913960400191505060405180910390fd5b82600001828154811061377c57fe5b9060005260206000200154905092915050565b6000815160411461380157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6134eb86828585613aad565b8181018281101561255257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b60006138b582613285565b6138be836138d4565b016bffffffffffffffffffffffff169050919050565b60781c6bffffffffffffffffffffffff1690565b606060006138f586613c9b565b915050600061390386613c9b565b915050600061391186613c9b565b915050600061391f86613c9b565b915050838383836040516020018080614430603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216142f082397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000613a9782613d6f565b1592915050565b60606109298484600085613d97565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115613b28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061425b6022913960400191505060405180910390fd5b8360ff16601b1480613b3d57508360ff16601c145b613b92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806143116022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015613bee573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612ab357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b600080601f5b600f8160ff161115613d035760ff600882021684901c613cc081613f51565b61ffff16841793508160ff16601014613cdb57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613ca1565b50600f5b60ff8160ff161015613d695760ff600882021684901c613d2681613f51565b61ffff16831792508160ff16600014613d4157601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613d07565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b606082471015613df2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061427d6026913960400191505060405180910390fd5b613dfb85613f81565b613e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613ecf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613e92565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613f31576040519150601f19603f3d011682016040523d82523d6000602084013e613f36565b606091505b5091509150613f46828286613f87565b979650505050505050565b6000613f6360048360ff16901c614007565b60ff161760081b62ffff0016613f7882614007565b60ff1617919050565b3b151590565b60608315613f96575081613241565b825115613fa65782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561339457818101518382015260200161337c565b600060f08083179060ff8216141561402357603091505061178f565b8060ff1660f1141561403957603191505061178f565b8060ff1660f2141561404f57603291505061178f565b8060ff1660f3141561406557603391505061178f565b8060ff1660f4141561407b57603491505061178f565b8060ff1660f5141561409157603591505061178f565b8060ff1660f614156140a757603691505061178f565b8060ff1660f714156140bd57603791505061178f565b8060ff1660f814156140d357603891505061178f565b8060ff1660f914156140e957603991505061178f565b8060ff1660fa14156140ff57606191505061178f565b8060ff1660fb141561411557606291505061178f565b8060ff1660fc141561412b57606391505061178f565b8060ff1660fd141561414157606491505061178f565b8060ff1660fe141561415757606591505061178f565b8060ff1660ff141561416d57606691505061178f565b50919050565b60008085851115614182578182fd5b8386111561418e578182fd5b505082019391909203915056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737344657374696e6174696f6e2063616c6c6572206d757374206265206e6f6e7a65726f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4d657373616765206e6f74206f726967696e616c6c792073656e742066726f6d207468697320646f6d61696e53656e646572206e6f74207065726d697474656420746f20757365206e6f6e63652e20417474656d7074656420746f20696e646578206174206f666673657420307845434453413a20696e76616c6964207369676e6174757265202776272076616c7565526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657254797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220e2eab27571cb9d2ecf49a592b1b78e24c28061c662fef829a376f797fcfcd15864736f6c63430007060033",T0=n=>typeof n[0]=="string"||Array.isArray(n[0])||"_isInterface"in n[0],m=class m extends S{constructor(...f){if(T0(f))super(...f);else{const[e,a]=f;super(M,m.linkBytecode(e),a)}}static linkBytecode(f){let e=W;return e=e.replace(new RegExp("__\\$8c977731748aa4504deed57239565df533\\$__","g"),f["src/messages/Message.sol:Message"].replace(/^0x/,"").toLowerCase()),e}getDeployTransaction(f,e,a,t,b){return super.getDeployTransaction(f,e,a,t,b||{})}deploy(f,e,a,t,b){return super.deploy(f,e,a,t,b||{})}connect(f){return super.connect(f)}static createInterface(){return new $(M)}static connect(f,e){return new E(f,M,e)}};d(m,"bytecode",W),d(m,"abi",M);let k=m;const g0=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),h0=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),I0=Object.freeze(Object.defineProperty({__proto__:null,CircleRelayer__factory:x,MessageTransmitter:g0,MessageTransmitter__factory:k,TokenMessenger:h0,TokenMessenger__factory:R},Symbol.toStringTag,{value:"Module"}));Z(K,"CircleBridge",B);Z(K,"AutomaticCircleBridge",O);export{O as EvmAutomaticCircleBridge,B as EvmCircleBridge,I0 as ethers_contracts};