thirdweb 5.29.1-nightly-1b15e7b1f2714200e522f3ce8dbe8f91ee987c6e-20240614065154 → 5.29.2-nightly-7768067bf4f571a8c8ee6b646a58e2fc5f6bd052-20240614163812

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 (267) hide show
  1. package/dist/cjs/contract/actions/resolve-abi.js +19 -1
  2. package/dist/cjs/contract/actions/resolve-abi.js.map +1 -1
  3. package/dist/cjs/exports/contract.js +6 -1
  4. package/dist/cjs/exports/contract.js.map +1 -1
  5. package/dist/cjs/exports/extensions/modular.js +56 -0
  6. package/dist/cjs/exports/extensions/modular.js.map +1 -0
  7. package/dist/cjs/extensions/modular/ModularCore/write/installPublishedExtension.js +27 -0
  8. package/dist/cjs/extensions/modular/ModularCore/write/installPublishedExtension.js.map +1 -0
  9. package/dist/cjs/extensions/modular/ModularCore/write/uninstallExtensionByProxy.js +25 -0
  10. package/dist/cjs/extensions/modular/ModularCore/write/uninstallExtensionByProxy.js.map +1 -0
  11. package/dist/cjs/extensions/modular/ModularCore/write/uninstallPublishedExtension.js +26 -0
  12. package/dist/cjs/extensions/modular/ModularCore/write/uninstallPublishedExtension.js.map +1 -0
  13. package/dist/cjs/extensions/modular/__generated__/IModularCore/read/getInstalledExtensions.js +131 -0
  14. package/dist/cjs/extensions/modular/__generated__/IModularCore/read/getInstalledExtensions.js.map +1 -0
  15. package/dist/cjs/extensions/modular/__generated__/IModularCore/read/getSupportedCallbackFunctions.js +85 -0
  16. package/dist/cjs/extensions/modular/__generated__/IModularCore/read/getSupportedCallbackFunctions.js.map +1 -0
  17. package/dist/cjs/extensions/modular/__generated__/IModularCore/read/supportsInterface.js +118 -0
  18. package/dist/cjs/extensions/modular/__generated__/IModularCore/read/supportsInterface.js.map +1 -0
  19. package/dist/cjs/extensions/modular/__generated__/IModularCore/write/installExtension.js +128 -0
  20. package/dist/cjs/extensions/modular/__generated__/IModularCore/write/installExtension.js.map +1 -0
  21. package/dist/cjs/extensions/modular/__generated__/IModularCore/write/uninstallExtension.js +128 -0
  22. package/dist/cjs/extensions/modular/__generated__/IModularCore/write/uninstallExtension.js.map +1 -0
  23. package/dist/cjs/extensions/modular/__generated__/IModularExtension/read/getExtensionConfig.js +119 -0
  24. package/dist/cjs/extensions/modular/__generated__/IModularExtension/read/getExtensionConfig.js.map +1 -0
  25. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/ExtensionInstalled.js +28 -0
  26. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/ExtensionInstalled.js.map +1 -0
  27. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/ExtensionUninstalled.js +28 -0
  28. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/ExtensionUninstalled.js.map +1 -0
  29. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverCanceled.js +32 -0
  30. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverCanceled.js.map +1 -0
  31. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverRequested.js +32 -0
  32. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverRequested.js.map +1 -0
  33. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/OwnershipTransferred.js +33 -0
  34. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/OwnershipTransferred.js.map +1 -0
  35. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/RolesUpdated.js +33 -0
  36. package/dist/cjs/extensions/modular/__generated__/ModularCore/events/RolesUpdated.js.map +1 -0
  37. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/getInstalledExtensions.js +131 -0
  38. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/getInstalledExtensions.js.map +1 -0
  39. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/getSupportedCallbackFunctions.js +85 -0
  40. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/getSupportedCallbackFunctions.js.map +1 -0
  41. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/hasAllRoles.js +126 -0
  42. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/hasAllRoles.js.map +1 -0
  43. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/hasAnyRole.js +126 -0
  44. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/hasAnyRole.js.map +1 -0
  45. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/owner.js +73 -0
  46. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/owner.js.map +1 -0
  47. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/ownershipHandoverExpiresAt.js +118 -0
  48. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/ownershipHandoverExpiresAt.js.map +1 -0
  49. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/rolesOf.js +118 -0
  50. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/rolesOf.js.map +1 -0
  51. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/supportsInterface.js +118 -0
  52. package/dist/cjs/extensions/modular/__generated__/ModularCore/read/supportsInterface.js.map +1 -0
  53. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/cancelOwnershipHandover.js +51 -0
  54. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/cancelOwnershipHandover.js.map +1 -0
  55. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.js +117 -0
  56. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.js.map +1 -0
  57. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/grantRoles.js +125 -0
  58. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/grantRoles.js.map +1 -0
  59. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/installExtension.js +125 -0
  60. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/installExtension.js.map +1 -0
  61. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/renounceOwnership.js +51 -0
  62. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/renounceOwnership.js.map +1 -0
  63. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/renounceRoles.js +117 -0
  64. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/renounceRoles.js.map +1 -0
  65. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/requestOwnershipHandover.js +51 -0
  66. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/requestOwnershipHandover.js.map +1 -0
  67. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/revokeRoles.js +125 -0
  68. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/revokeRoles.js.map +1 -0
  69. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/transferOwnership.js +117 -0
  70. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/transferOwnership.js.map +1 -0
  71. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/uninstallExtension.js +125 -0
  72. package/dist/cjs/extensions/modular/__generated__/ModularCore/write/uninstallExtension.js.map +1 -0
  73. package/dist/cjs/extensions/modular/__generated__/ModularExtension/read/getExtensionConfig.js +119 -0
  74. package/dist/cjs/extensions/modular/__generated__/ModularExtension/read/getExtensionConfig.js.map +1 -0
  75. package/dist/cjs/version.js +1 -1
  76. package/dist/esm/contract/actions/resolve-abi.js +19 -1
  77. package/dist/esm/contract/actions/resolve-abi.js.map +1 -1
  78. package/dist/esm/exports/contract.js +2 -0
  79. package/dist/esm/exports/contract.js.map +1 -1
  80. package/dist/esm/exports/extensions/modular.js +28 -0
  81. package/dist/esm/exports/extensions/modular.js.map +1 -0
  82. package/dist/esm/extensions/modular/ModularCore/write/installPublishedExtension.js +23 -0
  83. package/dist/esm/extensions/modular/ModularCore/write/installPublishedExtension.js.map +1 -0
  84. package/dist/esm/extensions/modular/ModularCore/write/uninstallExtensionByProxy.js +21 -0
  85. package/dist/esm/extensions/modular/ModularCore/write/uninstallExtensionByProxy.js.map +1 -0
  86. package/dist/esm/extensions/modular/ModularCore/write/uninstallPublishedExtension.js +22 -0
  87. package/dist/esm/extensions/modular/ModularCore/write/uninstallPublishedExtension.js.map +1 -0
  88. package/dist/esm/extensions/modular/__generated__/IModularCore/read/getInstalledExtensions.js +125 -0
  89. package/dist/esm/extensions/modular/__generated__/IModularCore/read/getInstalledExtensions.js.map +1 -0
  90. package/dist/esm/extensions/modular/__generated__/IModularCore/read/getSupportedCallbackFunctions.js +79 -0
  91. package/dist/esm/extensions/modular/__generated__/IModularCore/read/getSupportedCallbackFunctions.js.map +1 -0
  92. package/dist/esm/extensions/modular/__generated__/IModularCore/read/supportsInterface.js +110 -0
  93. package/dist/esm/extensions/modular/__generated__/IModularCore/read/supportsInterface.js.map +1 -0
  94. package/dist/esm/extensions/modular/__generated__/IModularCore/write/installExtension.js +121 -0
  95. package/dist/esm/extensions/modular/__generated__/IModularCore/write/installExtension.js.map +1 -0
  96. package/dist/esm/extensions/modular/__generated__/IModularCore/write/uninstallExtension.js +121 -0
  97. package/dist/esm/extensions/modular/__generated__/IModularCore/write/uninstallExtension.js.map +1 -0
  98. package/dist/esm/extensions/modular/__generated__/IModularExtension/read/getExtensionConfig.js +113 -0
  99. package/dist/esm/extensions/modular/__generated__/IModularExtension/read/getExtensionConfig.js.map +1 -0
  100. package/dist/esm/extensions/modular/__generated__/ModularCore/events/ExtensionInstalled.js +24 -0
  101. package/dist/esm/extensions/modular/__generated__/ModularCore/events/ExtensionInstalled.js.map +1 -0
  102. package/dist/esm/extensions/modular/__generated__/ModularCore/events/ExtensionUninstalled.js +24 -0
  103. package/dist/esm/extensions/modular/__generated__/ModularCore/events/ExtensionUninstalled.js.map +1 -0
  104. package/dist/esm/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverCanceled.js +28 -0
  105. package/dist/esm/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverCanceled.js.map +1 -0
  106. package/dist/esm/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverRequested.js +28 -0
  107. package/dist/esm/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverRequested.js.map +1 -0
  108. package/dist/esm/extensions/modular/__generated__/ModularCore/events/OwnershipTransferred.js +29 -0
  109. package/dist/esm/extensions/modular/__generated__/ModularCore/events/OwnershipTransferred.js.map +1 -0
  110. package/dist/esm/extensions/modular/__generated__/ModularCore/events/RolesUpdated.js +29 -0
  111. package/dist/esm/extensions/modular/__generated__/ModularCore/events/RolesUpdated.js.map +1 -0
  112. package/dist/esm/extensions/modular/__generated__/ModularCore/read/getInstalledExtensions.js +125 -0
  113. package/dist/esm/extensions/modular/__generated__/ModularCore/read/getInstalledExtensions.js.map +1 -0
  114. package/dist/esm/extensions/modular/__generated__/ModularCore/read/getSupportedCallbackFunctions.js +79 -0
  115. package/dist/esm/extensions/modular/__generated__/ModularCore/read/getSupportedCallbackFunctions.js.map +1 -0
  116. package/dist/esm/extensions/modular/__generated__/ModularCore/read/hasAllRoles.js +118 -0
  117. package/dist/esm/extensions/modular/__generated__/ModularCore/read/hasAllRoles.js.map +1 -0
  118. package/dist/esm/extensions/modular/__generated__/ModularCore/read/hasAnyRole.js +118 -0
  119. package/dist/esm/extensions/modular/__generated__/ModularCore/read/hasAnyRole.js.map +1 -0
  120. package/dist/esm/extensions/modular/__generated__/ModularCore/read/owner.js +67 -0
  121. package/dist/esm/extensions/modular/__generated__/ModularCore/read/owner.js.map +1 -0
  122. package/dist/esm/extensions/modular/__generated__/ModularCore/read/ownershipHandoverExpiresAt.js +110 -0
  123. package/dist/esm/extensions/modular/__generated__/ModularCore/read/ownershipHandoverExpiresAt.js.map +1 -0
  124. package/dist/esm/extensions/modular/__generated__/ModularCore/read/rolesOf.js +110 -0
  125. package/dist/esm/extensions/modular/__generated__/ModularCore/read/rolesOf.js.map +1 -0
  126. package/dist/esm/extensions/modular/__generated__/ModularCore/read/supportsInterface.js +110 -0
  127. package/dist/esm/extensions/modular/__generated__/ModularCore/read/supportsInterface.js.map +1 -0
  128. package/dist/esm/extensions/modular/__generated__/ModularCore/write/cancelOwnershipHandover.js +46 -0
  129. package/dist/esm/extensions/modular/__generated__/ModularCore/write/cancelOwnershipHandover.js.map +1 -0
  130. package/dist/esm/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.js +110 -0
  131. package/dist/esm/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.js.map +1 -0
  132. package/dist/esm/extensions/modular/__generated__/ModularCore/write/grantRoles.js +118 -0
  133. package/dist/esm/extensions/modular/__generated__/ModularCore/write/grantRoles.js.map +1 -0
  134. package/dist/esm/extensions/modular/__generated__/ModularCore/write/installExtension.js +118 -0
  135. package/dist/esm/extensions/modular/__generated__/ModularCore/write/installExtension.js.map +1 -0
  136. package/dist/esm/extensions/modular/__generated__/ModularCore/write/renounceOwnership.js +46 -0
  137. package/dist/esm/extensions/modular/__generated__/ModularCore/write/renounceOwnership.js.map +1 -0
  138. package/dist/esm/extensions/modular/__generated__/ModularCore/write/renounceRoles.js +110 -0
  139. package/dist/esm/extensions/modular/__generated__/ModularCore/write/renounceRoles.js.map +1 -0
  140. package/dist/esm/extensions/modular/__generated__/ModularCore/write/requestOwnershipHandover.js +46 -0
  141. package/dist/esm/extensions/modular/__generated__/ModularCore/write/requestOwnershipHandover.js.map +1 -0
  142. package/dist/esm/extensions/modular/__generated__/ModularCore/write/revokeRoles.js +118 -0
  143. package/dist/esm/extensions/modular/__generated__/ModularCore/write/revokeRoles.js.map +1 -0
  144. package/dist/esm/extensions/modular/__generated__/ModularCore/write/transferOwnership.js +110 -0
  145. package/dist/esm/extensions/modular/__generated__/ModularCore/write/transferOwnership.js.map +1 -0
  146. package/dist/esm/extensions/modular/__generated__/ModularCore/write/uninstallExtension.js +118 -0
  147. package/dist/esm/extensions/modular/__generated__/ModularCore/write/uninstallExtension.js.map +1 -0
  148. package/dist/esm/extensions/modular/__generated__/ModularExtension/read/getExtensionConfig.js +113 -0
  149. package/dist/esm/extensions/modular/__generated__/ModularExtension/read/getExtensionConfig.js.map +1 -0
  150. package/dist/esm/version.js +1 -1
  151. package/dist/types/contract/actions/resolve-abi.d.ts.map +1 -1
  152. package/dist/types/exports/contract.d.ts +1 -0
  153. package/dist/types/exports/contract.d.ts.map +1 -1
  154. package/dist/types/exports/extensions/modular.d.ts +28 -0
  155. package/dist/types/exports/extensions/modular.d.ts.map +1 -0
  156. package/dist/types/extensions/modular/ModularCore/write/installPublishedExtension.d.ts +17 -0
  157. package/dist/types/extensions/modular/ModularCore/write/installPublishedExtension.d.ts.map +1 -0
  158. package/dist/types/extensions/modular/ModularCore/write/uninstallExtensionByProxy.d.ts +12 -0
  159. package/dist/types/extensions/modular/ModularCore/write/uninstallExtensionByProxy.d.ts.map +1 -0
  160. package/dist/types/extensions/modular/ModularCore/write/uninstallPublishedExtension.d.ts +15 -0
  161. package/dist/types/extensions/modular/ModularCore/write/uninstallPublishedExtension.d.ts.map +1 -0
  162. package/dist/types/extensions/modular/__generated__/IModularCore/read/getInstalledExtensions.d.ts +74 -0
  163. package/dist/types/extensions/modular/__generated__/IModularCore/read/getInstalledExtensions.d.ts.map +1 -0
  164. package/dist/types/extensions/modular/__generated__/IModularCore/read/getSupportedCallbackFunctions.d.ts +52 -0
  165. package/dist/types/extensions/modular/__generated__/IModularCore/read/getSupportedCallbackFunctions.d.ts.map +1 -0
  166. package/dist/types/extensions/modular/__generated__/IModularCore/read/supportsInterface.d.ts +86 -0
  167. package/dist/types/extensions/modular/__generated__/IModularCore/read/supportsInterface.d.ts.map +1 -0
  168. package/dist/types/extensions/modular/__generated__/IModularCore/write/installExtension.d.ts +89 -0
  169. package/dist/types/extensions/modular/__generated__/IModularCore/write/installExtension.d.ts.map +1 -0
  170. package/dist/types/extensions/modular/__generated__/IModularCore/write/uninstallExtension.d.ts +89 -0
  171. package/dist/types/extensions/modular/__generated__/IModularCore/write/uninstallExtension.d.ts.map +1 -0
  172. package/dist/types/extensions/modular/__generated__/IModularExtension/read/getExtensionConfig.d.ts +68 -0
  173. package/dist/types/extensions/modular/__generated__/IModularExtension/read/getExtensionConfig.d.ts.map +1 -0
  174. package/dist/types/extensions/modular/__generated__/ModularCore/events/ExtensionInstalled.d.ts +32 -0
  175. package/dist/types/extensions/modular/__generated__/ModularCore/events/ExtensionInstalled.d.ts.map +1 -0
  176. package/dist/types/extensions/modular/__generated__/ModularCore/events/ExtensionUninstalled.d.ts +32 -0
  177. package/dist/types/extensions/modular/__generated__/ModularCore/events/ExtensionUninstalled.d.ts.map +1 -0
  178. package/dist/types/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverCanceled.d.ts +42 -0
  179. package/dist/types/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverCanceled.d.ts.map +1 -0
  180. package/dist/types/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverRequested.d.ts +42 -0
  181. package/dist/types/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverRequested.d.ts.map +1 -0
  182. package/dist/types/extensions/modular/__generated__/ModularCore/events/OwnershipTransferred.d.ts +53 -0
  183. package/dist/types/extensions/modular/__generated__/ModularCore/events/OwnershipTransferred.d.ts.map +1 -0
  184. package/dist/types/extensions/modular/__generated__/ModularCore/events/RolesUpdated.d.ts +53 -0
  185. package/dist/types/extensions/modular/__generated__/ModularCore/events/RolesUpdated.d.ts.map +1 -0
  186. package/dist/types/extensions/modular/__generated__/ModularCore/read/getInstalledExtensions.d.ts +74 -0
  187. package/dist/types/extensions/modular/__generated__/ModularCore/read/getInstalledExtensions.d.ts.map +1 -0
  188. package/dist/types/extensions/modular/__generated__/ModularCore/read/getSupportedCallbackFunctions.d.ts +52 -0
  189. package/dist/types/extensions/modular/__generated__/ModularCore/read/getSupportedCallbackFunctions.d.ts.map +1 -0
  190. package/dist/types/extensions/modular/__generated__/ModularCore/read/hasAllRoles.d.ts +94 -0
  191. package/dist/types/extensions/modular/__generated__/ModularCore/read/hasAllRoles.d.ts.map +1 -0
  192. package/dist/types/extensions/modular/__generated__/ModularCore/read/hasAnyRole.d.ts +94 -0
  193. package/dist/types/extensions/modular/__generated__/ModularCore/read/hasAnyRole.d.ts.map +1 -0
  194. package/dist/types/extensions/modular/__generated__/ModularCore/read/owner.d.ts +46 -0
  195. package/dist/types/extensions/modular/__generated__/ModularCore/read/owner.d.ts.map +1 -0
  196. package/dist/types/extensions/modular/__generated__/ModularCore/read/ownershipHandoverExpiresAt.d.ts +86 -0
  197. package/dist/types/extensions/modular/__generated__/ModularCore/read/ownershipHandoverExpiresAt.d.ts.map +1 -0
  198. package/dist/types/extensions/modular/__generated__/ModularCore/read/rolesOf.d.ts +86 -0
  199. package/dist/types/extensions/modular/__generated__/ModularCore/read/rolesOf.d.ts.map +1 -0
  200. package/dist/types/extensions/modular/__generated__/ModularCore/read/supportsInterface.d.ts +86 -0
  201. package/dist/types/extensions/modular/__generated__/ModularCore/read/supportsInterface.d.ts.map +1 -0
  202. package/dist/types/extensions/modular/__generated__/ModularCore/write/cancelOwnershipHandover.d.ts +34 -0
  203. package/dist/types/extensions/modular/__generated__/ModularCore/write/cancelOwnershipHandover.d.ts.map +1 -0
  204. package/dist/types/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.d.ts +81 -0
  205. package/dist/types/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.d.ts.map +1 -0
  206. package/dist/types/extensions/modular/__generated__/ModularCore/write/grantRoles.d.ts +89 -0
  207. package/dist/types/extensions/modular/__generated__/ModularCore/write/grantRoles.d.ts.map +1 -0
  208. package/dist/types/extensions/modular/__generated__/ModularCore/write/installExtension.d.ts +89 -0
  209. package/dist/types/extensions/modular/__generated__/ModularCore/write/installExtension.d.ts.map +1 -0
  210. package/dist/types/extensions/modular/__generated__/ModularCore/write/renounceOwnership.d.ts +34 -0
  211. package/dist/types/extensions/modular/__generated__/ModularCore/write/renounceOwnership.d.ts.map +1 -0
  212. package/dist/types/extensions/modular/__generated__/ModularCore/write/renounceRoles.d.ts +81 -0
  213. package/dist/types/extensions/modular/__generated__/ModularCore/write/renounceRoles.d.ts.map +1 -0
  214. package/dist/types/extensions/modular/__generated__/ModularCore/write/requestOwnershipHandover.d.ts +34 -0
  215. package/dist/types/extensions/modular/__generated__/ModularCore/write/requestOwnershipHandover.d.ts.map +1 -0
  216. package/dist/types/extensions/modular/__generated__/ModularCore/write/revokeRoles.d.ts +89 -0
  217. package/dist/types/extensions/modular/__generated__/ModularCore/write/revokeRoles.d.ts.map +1 -0
  218. package/dist/types/extensions/modular/__generated__/ModularCore/write/transferOwnership.d.ts +81 -0
  219. package/dist/types/extensions/modular/__generated__/ModularCore/write/transferOwnership.d.ts.map +1 -0
  220. package/dist/types/extensions/modular/__generated__/ModularCore/write/uninstallExtension.d.ts +89 -0
  221. package/dist/types/extensions/modular/__generated__/ModularCore/write/uninstallExtension.d.ts.map +1 -0
  222. package/dist/types/extensions/modular/__generated__/ModularExtension/read/getExtensionConfig.d.ts +68 -0
  223. package/dist/types/extensions/modular/__generated__/ModularExtension/read/getExtensionConfig.d.ts.map +1 -0
  224. package/dist/types/utils/any-evm/deploy-metadata.d.ts +4 -1
  225. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  226. package/dist/types/version.d.ts +1 -1
  227. package/package.json +1 -1
  228. package/src/contract/actions/resolve-abi.ts +21 -0
  229. package/src/exports/contract.ts +7 -0
  230. package/src/exports/extensions/modular.ts +78 -0
  231. package/src/extensions/modular/ModularCore/write/installPublishedExtension.ts +51 -0
  232. package/src/extensions/modular/ModularCore/write/uninstallExtensionByProxy.ts +40 -0
  233. package/src/extensions/modular/ModularCore/write/uninstallPublishedExtension.ts +47 -0
  234. package/src/extensions/modular/__generated__/IModularCore/read/getInstalledExtensions.ts +134 -0
  235. package/src/extensions/modular/__generated__/IModularCore/read/getSupportedCallbackFunctions.ts +90 -0
  236. package/src/extensions/modular/__generated__/IModularCore/read/supportsInterface.ts +138 -0
  237. package/src/extensions/modular/__generated__/IModularCore/write/installExtension.ts +160 -0
  238. package/src/extensions/modular/__generated__/IModularCore/write/uninstallExtension.ts +162 -0
  239. package/src/extensions/modular/__generated__/IModularExtension/read/getExtensionConfig.ts +122 -0
  240. package/src/extensions/modular/__generated__/ModularCore/events/ExtensionInstalled.ts +25 -0
  241. package/src/extensions/modular/__generated__/ModularCore/events/ExtensionUninstalled.ts +25 -0
  242. package/src/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverCanceled.ts +43 -0
  243. package/src/extensions/modular/__generated__/ModularCore/events/OwnershipHandoverRequested.ts +43 -0
  244. package/src/extensions/modular/__generated__/ModularCore/events/OwnershipTransferred.ts +51 -0
  245. package/src/extensions/modular/__generated__/ModularCore/events/RolesUpdated.ts +49 -0
  246. package/src/extensions/modular/__generated__/ModularCore/read/getInstalledExtensions.ts +134 -0
  247. package/src/extensions/modular/__generated__/ModularCore/read/getSupportedCallbackFunctions.ts +90 -0
  248. package/src/extensions/modular/__generated__/ModularCore/read/hasAllRoles.ts +147 -0
  249. package/src/extensions/modular/__generated__/ModularCore/read/hasAnyRole.ts +147 -0
  250. package/src/extensions/modular/__generated__/ModularCore/read/owner.ts +74 -0
  251. package/src/extensions/modular/__generated__/ModularCore/read/ownershipHandoverExpiresAt.ts +140 -0
  252. package/src/extensions/modular/__generated__/ModularCore/read/rolesOf.ts +130 -0
  253. package/src/extensions/modular/__generated__/ModularCore/read/supportsInterface.ts +138 -0
  254. package/src/extensions/modular/__generated__/ModularCore/write/cancelOwnershipHandover.ts +53 -0
  255. package/src/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.ts +148 -0
  256. package/src/extensions/modular/__generated__/ModularCore/write/grantRoles.ts +155 -0
  257. package/src/extensions/modular/__generated__/ModularCore/write/installExtension.ts +157 -0
  258. package/src/extensions/modular/__generated__/ModularCore/write/renounceOwnership.ts +53 -0
  259. package/src/extensions/modular/__generated__/ModularCore/write/renounceRoles.ts +144 -0
  260. package/src/extensions/modular/__generated__/ModularCore/write/requestOwnershipHandover.ts +53 -0
  261. package/src/extensions/modular/__generated__/ModularCore/write/revokeRoles.ts +155 -0
  262. package/src/extensions/modular/__generated__/ModularCore/write/transferOwnership.ts +146 -0
  263. package/src/extensions/modular/__generated__/ModularCore/write/uninstallExtension.ts +159 -0
  264. package/src/extensions/modular/__generated__/ModularExtension/read/getExtensionConfig.ts +122 -0
  265. package/src/extensions/prebuilts/deploy-modular-core.test.ts +158 -0
  266. package/src/utils/any-evm/deploy-metadata.ts +4 -1
  267. package/src/version.ts +1 -1
@@ -0,0 +1,53 @@
1
+ import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
2
+ import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
3
+
4
+ import type { ThirdwebContract } from "../../../../../contract/contract.js";
5
+ import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
6
+
7
+ export const FN_SELECTOR = "0x25692962" as const;
8
+ const FN_INPUTS = [] as const;
9
+ const FN_OUTPUTS = [] as const;
10
+
11
+ /**
12
+ * Checks if the `requestOwnershipHandover` method is supported by the given contract.
13
+ * @param contract The ThirdwebContract.
14
+ * @returns A promise that resolves to a boolean indicating if the `requestOwnershipHandover` method is supported.
15
+ * @extension MODULAR
16
+ * @example
17
+ * ```ts
18
+ * import { isRequestOwnershipHandoverSupported } from "thirdweb/extensions/modular";
19
+ *
20
+ * const supported = await isRequestOwnershipHandoverSupported(contract);
21
+ * ```
22
+ */
23
+ export async function isRequestOwnershipHandoverSupported(
24
+ contract: ThirdwebContract<any>,
25
+ ) {
26
+ return detectMethod({
27
+ contract,
28
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
29
+ });
30
+ }
31
+
32
+ /**
33
+ * Prepares a transaction to call the "requestOwnershipHandover" function on the contract.
34
+ * @param options - The options for the "requestOwnershipHandover" function.
35
+ * @returns A prepared transaction object.
36
+ * @extension MODULAR
37
+ * @example
38
+ * ```ts
39
+ * import { requestOwnershipHandover } from "thirdweb/extensions/modular";
40
+ *
41
+ * const transaction = requestOwnershipHandover();
42
+ *
43
+ * // Send the transaction
44
+ * ...
45
+ *
46
+ * ```
47
+ */
48
+ export function requestOwnershipHandover(options: BaseTransactionOptions) {
49
+ return prepareContractCall({
50
+ contract: options.contract,
51
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
52
+ });
53
+ }
@@ -0,0 +1,155 @@
1
+ import type { AbiParameterToPrimitiveType } from "abitype";
2
+ import type {
3
+ BaseTransactionOptions,
4
+ WithOverrides,
5
+ } from "../../../../../transaction/types.js";
6
+ import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
7
+ import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
8
+ import { once } from "../../../../../utils/promise/once.js";
9
+ import type { ThirdwebContract } from "../../../../../contract/contract.js";
10
+ import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
11
+
12
+ /**
13
+ * Represents the parameters for the "revokeRoles" function.
14
+ */
15
+ export type RevokeRolesParams = WithOverrides<{
16
+ user: AbiParameterToPrimitiveType<{
17
+ name: "user";
18
+ type: "address";
19
+ internalType: "address";
20
+ }>;
21
+ roles: AbiParameterToPrimitiveType<{
22
+ name: "roles";
23
+ type: "uint256";
24
+ internalType: "uint256";
25
+ }>;
26
+ }>;
27
+
28
+ export const FN_SELECTOR = "0x4a4ee7b1" as const;
29
+ const FN_INPUTS = [
30
+ {
31
+ name: "user",
32
+ type: "address",
33
+ internalType: "address",
34
+ },
35
+ {
36
+ name: "roles",
37
+ type: "uint256",
38
+ internalType: "uint256",
39
+ },
40
+ ] as const;
41
+ const FN_OUTPUTS = [] as const;
42
+
43
+ /**
44
+ * Checks if the `revokeRoles` method is supported by the given contract.
45
+ * @param contract The ThirdwebContract.
46
+ * @returns A promise that resolves to a boolean indicating if the `revokeRoles` method is supported.
47
+ * @extension MODULAR
48
+ * @example
49
+ * ```ts
50
+ * import { isRevokeRolesSupported } from "thirdweb/extensions/modular";
51
+ *
52
+ * const supported = await isRevokeRolesSupported(contract);
53
+ * ```
54
+ */
55
+ export async function isRevokeRolesSupported(contract: ThirdwebContract<any>) {
56
+ return detectMethod({
57
+ contract,
58
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
59
+ });
60
+ }
61
+
62
+ /**
63
+ * Encodes the parameters for the "revokeRoles" function.
64
+ * @param options - The options for the revokeRoles function.
65
+ * @returns The encoded ABI parameters.
66
+ * @extension MODULAR
67
+ * @example
68
+ * ```ts
69
+ * import { encodeRevokeRolesParams } "thirdweb/extensions/modular";
70
+ * const result = encodeRevokeRolesParams({
71
+ * user: ...,
72
+ * roles: ...,
73
+ * });
74
+ * ```
75
+ */
76
+ export function encodeRevokeRolesParams(options: RevokeRolesParams) {
77
+ return encodeAbiParameters(FN_INPUTS, [options.user, options.roles]);
78
+ }
79
+
80
+ /**
81
+ * Encodes the "revokeRoles" function into a Hex string with its parameters.
82
+ * @param options - The options for the revokeRoles function.
83
+ * @returns The encoded hexadecimal string.
84
+ * @extension MODULAR
85
+ * @example
86
+ * ```ts
87
+ * import { encodeRevokeRoles } "thirdweb/extensions/modular";
88
+ * const result = encodeRevokeRoles({
89
+ * user: ...,
90
+ * roles: ...,
91
+ * });
92
+ * ```
93
+ */
94
+ export function encodeRevokeRoles(options: RevokeRolesParams) {
95
+ // we do a "manual" concat here to avoid the overhead of the "concatHex" function
96
+ // we can do this because we know the specific formats of the values
97
+ return (FN_SELECTOR +
98
+ encodeRevokeRolesParams(options).slice(
99
+ 2,
100
+ )) as `${typeof FN_SELECTOR}${string}`;
101
+ }
102
+
103
+ /**
104
+ * Prepares a transaction to call the "revokeRoles" function on the contract.
105
+ * @param options - The options for the "revokeRoles" function.
106
+ * @returns A prepared transaction object.
107
+ * @extension MODULAR
108
+ * @example
109
+ * ```ts
110
+ * import { revokeRoles } from "thirdweb/extensions/modular";
111
+ *
112
+ * const transaction = revokeRoles({
113
+ * contract,
114
+ * user: ...,
115
+ * roles: ...,
116
+ * overrides: {
117
+ * ...
118
+ * }
119
+ * });
120
+ *
121
+ * // Send the transaction
122
+ * ...
123
+ *
124
+ * ```
125
+ */
126
+ export function revokeRoles(
127
+ options: BaseTransactionOptions<
128
+ | RevokeRolesParams
129
+ | {
130
+ asyncParams: () => Promise<RevokeRolesParams>;
131
+ }
132
+ >,
133
+ ) {
134
+ const asyncOptions = once(async () => {
135
+ return "asyncParams" in options ? await options.asyncParams() : options;
136
+ });
137
+
138
+ return prepareContractCall({
139
+ contract: options.contract,
140
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
141
+ params: async () => {
142
+ const resolvedOptions = await asyncOptions();
143
+ return [resolvedOptions.user, resolvedOptions.roles] as const;
144
+ },
145
+ value: async () => (await asyncOptions()).overrides?.value,
146
+ accessList: async () => (await asyncOptions()).overrides?.accessList,
147
+ gas: async () => (await asyncOptions()).overrides?.gas,
148
+ gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
149
+ maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
150
+ maxPriorityFeePerGas: async () =>
151
+ (await asyncOptions()).overrides?.maxPriorityFeePerGas,
152
+ nonce: async () => (await asyncOptions()).overrides?.nonce,
153
+ extraGas: async () => (await asyncOptions()).overrides?.extraGas,
154
+ });
155
+ }
@@ -0,0 +1,146 @@
1
+ import type { AbiParameterToPrimitiveType } from "abitype";
2
+ import type {
3
+ BaseTransactionOptions,
4
+ WithOverrides,
5
+ } from "../../../../../transaction/types.js";
6
+ import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
7
+ import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
8
+ import { once } from "../../../../../utils/promise/once.js";
9
+ import type { ThirdwebContract } from "../../../../../contract/contract.js";
10
+ import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
11
+
12
+ /**
13
+ * Represents the parameters for the "transferOwnership" function.
14
+ */
15
+ export type TransferOwnershipParams = WithOverrides<{
16
+ newOwner: AbiParameterToPrimitiveType<{
17
+ name: "newOwner";
18
+ type: "address";
19
+ internalType: "address";
20
+ }>;
21
+ }>;
22
+
23
+ export const FN_SELECTOR = "0xf2fde38b" as const;
24
+ const FN_INPUTS = [
25
+ {
26
+ name: "newOwner",
27
+ type: "address",
28
+ internalType: "address",
29
+ },
30
+ ] as const;
31
+ const FN_OUTPUTS = [] as const;
32
+
33
+ /**
34
+ * Checks if the `transferOwnership` method is supported by the given contract.
35
+ * @param contract The ThirdwebContract.
36
+ * @returns A promise that resolves to a boolean indicating if the `transferOwnership` method is supported.
37
+ * @extension MODULAR
38
+ * @example
39
+ * ```ts
40
+ * import { isTransferOwnershipSupported } from "thirdweb/extensions/modular";
41
+ *
42
+ * const supported = await isTransferOwnershipSupported(contract);
43
+ * ```
44
+ */
45
+ export async function isTransferOwnershipSupported(
46
+ contract: ThirdwebContract<any>,
47
+ ) {
48
+ return detectMethod({
49
+ contract,
50
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
51
+ });
52
+ }
53
+
54
+ /**
55
+ * Encodes the parameters for the "transferOwnership" function.
56
+ * @param options - The options for the transferOwnership function.
57
+ * @returns The encoded ABI parameters.
58
+ * @extension MODULAR
59
+ * @example
60
+ * ```ts
61
+ * import { encodeTransferOwnershipParams } "thirdweb/extensions/modular";
62
+ * const result = encodeTransferOwnershipParams({
63
+ * newOwner: ...,
64
+ * });
65
+ * ```
66
+ */
67
+ export function encodeTransferOwnershipParams(
68
+ options: TransferOwnershipParams,
69
+ ) {
70
+ return encodeAbiParameters(FN_INPUTS, [options.newOwner]);
71
+ }
72
+
73
+ /**
74
+ * Encodes the "transferOwnership" function into a Hex string with its parameters.
75
+ * @param options - The options for the transferOwnership function.
76
+ * @returns The encoded hexadecimal string.
77
+ * @extension MODULAR
78
+ * @example
79
+ * ```ts
80
+ * import { encodeTransferOwnership } "thirdweb/extensions/modular";
81
+ * const result = encodeTransferOwnership({
82
+ * newOwner: ...,
83
+ * });
84
+ * ```
85
+ */
86
+ export function encodeTransferOwnership(options: TransferOwnershipParams) {
87
+ // we do a "manual" concat here to avoid the overhead of the "concatHex" function
88
+ // we can do this because we know the specific formats of the values
89
+ return (FN_SELECTOR +
90
+ encodeTransferOwnershipParams(options).slice(
91
+ 2,
92
+ )) as `${typeof FN_SELECTOR}${string}`;
93
+ }
94
+
95
+ /**
96
+ * Prepares a transaction to call the "transferOwnership" function on the contract.
97
+ * @param options - The options for the "transferOwnership" function.
98
+ * @returns A prepared transaction object.
99
+ * @extension MODULAR
100
+ * @example
101
+ * ```ts
102
+ * import { transferOwnership } from "thirdweb/extensions/modular";
103
+ *
104
+ * const transaction = transferOwnership({
105
+ * contract,
106
+ * newOwner: ...,
107
+ * overrides: {
108
+ * ...
109
+ * }
110
+ * });
111
+ *
112
+ * // Send the transaction
113
+ * ...
114
+ *
115
+ * ```
116
+ */
117
+ export function transferOwnership(
118
+ options: BaseTransactionOptions<
119
+ | TransferOwnershipParams
120
+ | {
121
+ asyncParams: () => Promise<TransferOwnershipParams>;
122
+ }
123
+ >,
124
+ ) {
125
+ const asyncOptions = once(async () => {
126
+ return "asyncParams" in options ? await options.asyncParams() : options;
127
+ });
128
+
129
+ return prepareContractCall({
130
+ contract: options.contract,
131
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
132
+ params: async () => {
133
+ const resolvedOptions = await asyncOptions();
134
+ return [resolvedOptions.newOwner] as const;
135
+ },
136
+ value: async () => (await asyncOptions()).overrides?.value,
137
+ accessList: async () => (await asyncOptions()).overrides?.accessList,
138
+ gas: async () => (await asyncOptions()).overrides?.gas,
139
+ gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
140
+ maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
141
+ maxPriorityFeePerGas: async () =>
142
+ (await asyncOptions()).overrides?.maxPriorityFeePerGas,
143
+ nonce: async () => (await asyncOptions()).overrides?.nonce,
144
+ extraGas: async () => (await asyncOptions()).overrides?.extraGas,
145
+ });
146
+ }
@@ -0,0 +1,159 @@
1
+ import type { AbiParameterToPrimitiveType } from "abitype";
2
+ import type {
3
+ BaseTransactionOptions,
4
+ WithOverrides,
5
+ } from "../../../../../transaction/types.js";
6
+ import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
7
+ import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
8
+ import { once } from "../../../../../utils/promise/once.js";
9
+ import type { ThirdwebContract } from "../../../../../contract/contract.js";
10
+ import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
11
+
12
+ /**
13
+ * Represents the parameters for the "uninstallExtension" function.
14
+ */
15
+ export type UninstallExtensionParams = WithOverrides<{
16
+ extension: AbiParameterToPrimitiveType<{
17
+ name: "_extension";
18
+ type: "address";
19
+ internalType: "address";
20
+ }>;
21
+ data: AbiParameterToPrimitiveType<{
22
+ name: "_data";
23
+ type: "bytes";
24
+ internalType: "bytes";
25
+ }>;
26
+ }>;
27
+
28
+ export const FN_SELECTOR = "0x42b7d0c8" as const;
29
+ const FN_INPUTS = [
30
+ {
31
+ name: "_extension",
32
+ type: "address",
33
+ internalType: "address",
34
+ },
35
+ {
36
+ name: "_data",
37
+ type: "bytes",
38
+ internalType: "bytes",
39
+ },
40
+ ] as const;
41
+ const FN_OUTPUTS = [] as const;
42
+
43
+ /**
44
+ * Checks if the `uninstallExtension` method is supported by the given contract.
45
+ * @param contract The ThirdwebContract.
46
+ * @returns A promise that resolves to a boolean indicating if the `uninstallExtension` method is supported.
47
+ * @extension MODULAR
48
+ * @example
49
+ * ```ts
50
+ * import { isUninstallExtensionSupported } from "thirdweb/extensions/modular";
51
+ *
52
+ * const supported = await isUninstallExtensionSupported(contract);
53
+ * ```
54
+ */
55
+ export async function isUninstallExtensionSupported(
56
+ contract: ThirdwebContract<any>,
57
+ ) {
58
+ return detectMethod({
59
+ contract,
60
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
61
+ });
62
+ }
63
+
64
+ /**
65
+ * Encodes the parameters for the "uninstallExtension" function.
66
+ * @param options - The options for the uninstallExtension function.
67
+ * @returns The encoded ABI parameters.
68
+ * @extension MODULAR
69
+ * @example
70
+ * ```ts
71
+ * import { encodeUninstallExtensionParams } "thirdweb/extensions/modular";
72
+ * const result = encodeUninstallExtensionParams({
73
+ * extension: ...,
74
+ * data: ...,
75
+ * });
76
+ * ```
77
+ */
78
+ export function encodeUninstallExtensionParams(
79
+ options: UninstallExtensionParams,
80
+ ) {
81
+ return encodeAbiParameters(FN_INPUTS, [options.extension, options.data]);
82
+ }
83
+
84
+ /**
85
+ * Encodes the "uninstallExtension" function into a Hex string with its parameters.
86
+ * @param options - The options for the uninstallExtension function.
87
+ * @returns The encoded hexadecimal string.
88
+ * @extension MODULAR
89
+ * @example
90
+ * ```ts
91
+ * import { encodeUninstallExtension } "thirdweb/extensions/modular";
92
+ * const result = encodeUninstallExtension({
93
+ * extension: ...,
94
+ * data: ...,
95
+ * });
96
+ * ```
97
+ */
98
+ export function encodeUninstallExtension(options: UninstallExtensionParams) {
99
+ // we do a "manual" concat here to avoid the overhead of the "concatHex" function
100
+ // we can do this because we know the specific formats of the values
101
+ return (FN_SELECTOR +
102
+ encodeUninstallExtensionParams(options).slice(
103
+ 2,
104
+ )) as `${typeof FN_SELECTOR}${string}`;
105
+ }
106
+
107
+ /**
108
+ * Prepares a transaction to call the "uninstallExtension" function on the contract.
109
+ * @param options - The options for the "uninstallExtension" function.
110
+ * @returns A prepared transaction object.
111
+ * @extension MODULAR
112
+ * @example
113
+ * ```ts
114
+ * import { uninstallExtension } from "thirdweb/extensions/modular";
115
+ *
116
+ * const transaction = uninstallExtension({
117
+ * contract,
118
+ * extension: ...,
119
+ * data: ...,
120
+ * overrides: {
121
+ * ...
122
+ * }
123
+ * });
124
+ *
125
+ * // Send the transaction
126
+ * ...
127
+ *
128
+ * ```
129
+ */
130
+ export function uninstallExtension(
131
+ options: BaseTransactionOptions<
132
+ | UninstallExtensionParams
133
+ | {
134
+ asyncParams: () => Promise<UninstallExtensionParams>;
135
+ }
136
+ >,
137
+ ) {
138
+ const asyncOptions = once(async () => {
139
+ return "asyncParams" in options ? await options.asyncParams() : options;
140
+ });
141
+
142
+ return prepareContractCall({
143
+ contract: options.contract,
144
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
145
+ params: async () => {
146
+ const resolvedOptions = await asyncOptions();
147
+ return [resolvedOptions.extension, resolvedOptions.data] as const;
148
+ },
149
+ value: async () => (await asyncOptions()).overrides?.value,
150
+ accessList: async () => (await asyncOptions()).overrides?.accessList,
151
+ gas: async () => (await asyncOptions()).overrides?.gas,
152
+ gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
153
+ maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
154
+ maxPriorityFeePerGas: async () =>
155
+ (await asyncOptions()).overrides?.maxPriorityFeePerGas,
156
+ nonce: async () => (await asyncOptions()).overrides?.nonce,
157
+ extraGas: async () => (await asyncOptions()).overrides?.extraGas,
158
+ });
159
+ }
@@ -0,0 +1,122 @@
1
+ import { readContract } from "../../../../../transaction/read-contract.js";
2
+ import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
3
+
4
+ import { decodeAbiParameters } from "viem";
5
+ import type { Hex } from "../../../../../utils/encoding/hex.js";
6
+ import type { ThirdwebContract } from "../../../../../contract/contract.js";
7
+ import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
8
+
9
+ export const FN_SELECTOR = "0x7c173ecc" as const;
10
+ const FN_INPUTS = [] as const;
11
+ const FN_OUTPUTS = [
12
+ {
13
+ name: "",
14
+ type: "tuple",
15
+ internalType: "struct IExtensionConfig.ExtensionConfig",
16
+ components: [
17
+ {
18
+ name: "registerInstallationCallback",
19
+ type: "bool",
20
+ internalType: "bool",
21
+ },
22
+ {
23
+ name: "requiredInterfaces",
24
+ type: "bytes4[]",
25
+ internalType: "bytes4[]",
26
+ },
27
+ {
28
+ name: "supportedInterfaces",
29
+ type: "bytes4[]",
30
+ internalType: "bytes4[]",
31
+ },
32
+ {
33
+ name: "callbackFunctions",
34
+ type: "tuple[]",
35
+ internalType: "struct IExtensionConfig.CallbackFunction[]",
36
+ components: [
37
+ {
38
+ name: "selector",
39
+ type: "bytes4",
40
+ internalType: "bytes4",
41
+ },
42
+ ],
43
+ },
44
+ {
45
+ name: "fallbackFunctions",
46
+ type: "tuple[]",
47
+ internalType: "struct IExtensionConfig.FallbackFunction[]",
48
+ components: [
49
+ {
50
+ name: "selector",
51
+ type: "bytes4",
52
+ internalType: "bytes4",
53
+ },
54
+ {
55
+ name: "permissionBits",
56
+ type: "uint256",
57
+ internalType: "uint256",
58
+ },
59
+ ],
60
+ },
61
+ ],
62
+ },
63
+ ] as const;
64
+
65
+ /**
66
+ * Checks if the `getExtensionConfig` method is supported by the given contract.
67
+ * @param contract The ThirdwebContract.
68
+ * @returns A promise that resolves to a boolean indicating if the `getExtensionConfig` method is supported.
69
+ * @extension MODULAR
70
+ * @example
71
+ * ```ts
72
+ * import { isGetExtensionConfigSupported } from "thirdweb/extensions/modular";
73
+ *
74
+ * const supported = await isGetExtensionConfigSupported(contract);
75
+ * ```
76
+ */
77
+ export async function isGetExtensionConfigSupported(
78
+ contract: ThirdwebContract<any>,
79
+ ) {
80
+ return detectMethod({
81
+ contract,
82
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
83
+ });
84
+ }
85
+
86
+ /**
87
+ * Decodes the result of the getExtensionConfig function call.
88
+ * @param result - The hexadecimal result to decode.
89
+ * @returns The decoded result as per the FN_OUTPUTS definition.
90
+ * @extension MODULAR
91
+ * @example
92
+ * ```ts
93
+ * import { decodeGetExtensionConfigResult } from "thirdweb/extensions/modular";
94
+ * const result = decodeGetExtensionConfigResult("...");
95
+ * ```
96
+ */
97
+ export function decodeGetExtensionConfigResult(result: Hex) {
98
+ return decodeAbiParameters(FN_OUTPUTS, result)[0];
99
+ }
100
+
101
+ /**
102
+ * Calls the "getExtensionConfig" function on the contract.
103
+ * @param options - The options for the getExtensionConfig function.
104
+ * @returns The parsed result of the function call.
105
+ * @extension MODULAR
106
+ * @example
107
+ * ```ts
108
+ * import { getExtensionConfig } from "thirdweb/extensions/modular";
109
+ *
110
+ * const result = await getExtensionConfig({
111
+ * contract,
112
+ * });
113
+ *
114
+ * ```
115
+ */
116
+ export async function getExtensionConfig(options: BaseTransactionOptions) {
117
+ return readContract({
118
+ contract: options.contract,
119
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
120
+ params: [],
121
+ });
122
+ }