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,90 @@
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 = "0xf147db8a" as const;
10
+ const FN_INPUTS = [] as const;
11
+ const FN_OUTPUTS = [
12
+ {
13
+ name: "",
14
+ type: "tuple[]",
15
+ internalType: "struct IModularCore.SupportedCallbackFunction[]",
16
+ components: [
17
+ {
18
+ name: "selector",
19
+ type: "bytes4",
20
+ internalType: "bytes4",
21
+ },
22
+ {
23
+ name: "mode",
24
+ type: "uint8",
25
+ internalType: "enum IModularCore.CallbackMode",
26
+ },
27
+ ],
28
+ },
29
+ ] as const;
30
+
31
+ /**
32
+ * Checks if the `getSupportedCallbackFunctions` method is supported by the given contract.
33
+ * @param contract The ThirdwebContract.
34
+ * @returns A promise that resolves to a boolean indicating if the `getSupportedCallbackFunctions` method is supported.
35
+ * @extension MODULAR
36
+ * @example
37
+ * ```ts
38
+ * import { isGetSupportedCallbackFunctionsSupported } from "thirdweb/extensions/modular";
39
+ *
40
+ * const supported = await isGetSupportedCallbackFunctionsSupported(contract);
41
+ * ```
42
+ */
43
+ export async function isGetSupportedCallbackFunctionsSupported(
44
+ contract: ThirdwebContract<any>,
45
+ ) {
46
+ return detectMethod({
47
+ contract,
48
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
49
+ });
50
+ }
51
+
52
+ /**
53
+ * Decodes the result of the getSupportedCallbackFunctions function call.
54
+ * @param result - The hexadecimal result to decode.
55
+ * @returns The decoded result as per the FN_OUTPUTS definition.
56
+ * @extension MODULAR
57
+ * @example
58
+ * ```ts
59
+ * import { decodeGetSupportedCallbackFunctionsResult } from "thirdweb/extensions/modular";
60
+ * const result = decodeGetSupportedCallbackFunctionsResult("...");
61
+ * ```
62
+ */
63
+ export function decodeGetSupportedCallbackFunctionsResult(result: Hex) {
64
+ return decodeAbiParameters(FN_OUTPUTS, result)[0];
65
+ }
66
+
67
+ /**
68
+ * Calls the "getSupportedCallbackFunctions" function on the contract.
69
+ * @param options - The options for the getSupportedCallbackFunctions function.
70
+ * @returns The parsed result of the function call.
71
+ * @extension MODULAR
72
+ * @example
73
+ * ```ts
74
+ * import { getSupportedCallbackFunctions } from "thirdweb/extensions/modular";
75
+ *
76
+ * const result = await getSupportedCallbackFunctions({
77
+ * contract,
78
+ * });
79
+ *
80
+ * ```
81
+ */
82
+ export async function getSupportedCallbackFunctions(
83
+ options: BaseTransactionOptions,
84
+ ) {
85
+ return readContract({
86
+ contract: options.contract,
87
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
88
+ params: [],
89
+ });
90
+ }
@@ -0,0 +1,138 @@
1
+ import type { AbiParameterToPrimitiveType } from "abitype";
2
+ import { readContract } from "../../../../../transaction/read-contract.js";
3
+ import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
4
+ import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
5
+ import { decodeAbiParameters } from "viem";
6
+ import type { Hex } from "../../../../../utils/encoding/hex.js";
7
+ import type { ThirdwebContract } from "../../../../../contract/contract.js";
8
+ import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
9
+
10
+ /**
11
+ * Represents the parameters for the "supportsInterface" function.
12
+ */
13
+ export type SupportsInterfaceParams = {
14
+ interfaceID: AbiParameterToPrimitiveType<{
15
+ name: "interfaceID";
16
+ type: "bytes4";
17
+ internalType: "bytes4";
18
+ }>;
19
+ };
20
+
21
+ export const FN_SELECTOR = "0x01ffc9a7" as const;
22
+ const FN_INPUTS = [
23
+ {
24
+ name: "interfaceID",
25
+ type: "bytes4",
26
+ internalType: "bytes4",
27
+ },
28
+ ] as const;
29
+ const FN_OUTPUTS = [
30
+ {
31
+ name: "",
32
+ type: "bool",
33
+ internalType: "bool",
34
+ },
35
+ ] as const;
36
+
37
+ /**
38
+ * Checks if the `supportsInterface` method is supported by the given contract.
39
+ * @param contract The ThirdwebContract.
40
+ * @returns A promise that resolves to a boolean indicating if the `supportsInterface` method is supported.
41
+ * @extension MODULAR
42
+ * @example
43
+ * ```ts
44
+ * import { isSupportsInterfaceSupported } from "thirdweb/extensions/modular";
45
+ *
46
+ * const supported = await isSupportsInterfaceSupported(contract);
47
+ * ```
48
+ */
49
+ export async function isSupportsInterfaceSupported(
50
+ contract: ThirdwebContract<any>,
51
+ ) {
52
+ return detectMethod({
53
+ contract,
54
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
55
+ });
56
+ }
57
+
58
+ /**
59
+ * Encodes the parameters for the "supportsInterface" function.
60
+ * @param options - The options for the supportsInterface function.
61
+ * @returns The encoded ABI parameters.
62
+ * @extension MODULAR
63
+ * @example
64
+ * ```ts
65
+ * import { encodeSupportsInterfaceParams } "thirdweb/extensions/modular";
66
+ * const result = encodeSupportsInterfaceParams({
67
+ * interfaceID: ...,
68
+ * });
69
+ * ```
70
+ */
71
+ export function encodeSupportsInterfaceParams(
72
+ options: SupportsInterfaceParams,
73
+ ) {
74
+ return encodeAbiParameters(FN_INPUTS, [options.interfaceID]);
75
+ }
76
+
77
+ /**
78
+ * Encodes the "supportsInterface" function into a Hex string with its parameters.
79
+ * @param options - The options for the supportsInterface function.
80
+ * @returns The encoded hexadecimal string.
81
+ * @extension MODULAR
82
+ * @example
83
+ * ```ts
84
+ * import { encodeSupportsInterface } "thirdweb/extensions/modular";
85
+ * const result = encodeSupportsInterface({
86
+ * interfaceID: ...,
87
+ * });
88
+ * ```
89
+ */
90
+ export function encodeSupportsInterface(options: SupportsInterfaceParams) {
91
+ // we do a "manual" concat here to avoid the overhead of the "concatHex" function
92
+ // we can do this because we know the specific formats of the values
93
+ return (FN_SELECTOR +
94
+ encodeSupportsInterfaceParams(options).slice(
95
+ 2,
96
+ )) as `${typeof FN_SELECTOR}${string}`;
97
+ }
98
+
99
+ /**
100
+ * Decodes the result of the supportsInterface function call.
101
+ * @param result - The hexadecimal result to decode.
102
+ * @returns The decoded result as per the FN_OUTPUTS definition.
103
+ * @extension MODULAR
104
+ * @example
105
+ * ```ts
106
+ * import { decodeSupportsInterfaceResult } from "thirdweb/extensions/modular";
107
+ * const result = decodeSupportsInterfaceResult("...");
108
+ * ```
109
+ */
110
+ export function decodeSupportsInterfaceResult(result: Hex) {
111
+ return decodeAbiParameters(FN_OUTPUTS, result)[0];
112
+ }
113
+
114
+ /**
115
+ * Calls the "supportsInterface" function on the contract.
116
+ * @param options - The options for the supportsInterface function.
117
+ * @returns The parsed result of the function call.
118
+ * @extension MODULAR
119
+ * @example
120
+ * ```ts
121
+ * import { supportsInterface } from "thirdweb/extensions/modular";
122
+ *
123
+ * const result = await supportsInterface({
124
+ * contract,
125
+ * interfaceID: ...,
126
+ * });
127
+ *
128
+ * ```
129
+ */
130
+ export async function supportsInterface(
131
+ options: BaseTransactionOptions<SupportsInterfaceParams>,
132
+ ) {
133
+ return readContract({
134
+ contract: options.contract,
135
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
136
+ params: [options.interfaceID],
137
+ });
138
+ }
@@ -0,0 +1,160 @@
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 "installExtension" function.
14
+ */
15
+ export type InstallExtensionParams = WithOverrides<{
16
+ extensionContract: AbiParameterToPrimitiveType<{
17
+ name: "extensionContract";
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 = "0xaca696f5" as const;
29
+ const FN_INPUTS = [
30
+ {
31
+ name: "extensionContract",
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 `installExtension` method is supported by the given contract.
45
+ * @param contract The ThirdwebContract.
46
+ * @returns A promise that resolves to a boolean indicating if the `installExtension` method is supported.
47
+ * @extension MODULAR
48
+ * @example
49
+ * ```ts
50
+ * import { isInstallExtensionSupported } from "thirdweb/extensions/modular";
51
+ *
52
+ * const supported = await isInstallExtensionSupported(contract);
53
+ * ```
54
+ */
55
+ export async function isInstallExtensionSupported(
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 "installExtension" function.
66
+ * @param options - The options for the installExtension function.
67
+ * @returns The encoded ABI parameters.
68
+ * @extension MODULAR
69
+ * @example
70
+ * ```ts
71
+ * import { encodeInstallExtensionParams } "thirdweb/extensions/modular";
72
+ * const result = encodeInstallExtensionParams({
73
+ * extensionContract: ...,
74
+ * data: ...,
75
+ * });
76
+ * ```
77
+ */
78
+ export function encodeInstallExtensionParams(options: InstallExtensionParams) {
79
+ return encodeAbiParameters(FN_INPUTS, [
80
+ options.extensionContract,
81
+ options.data,
82
+ ]);
83
+ }
84
+
85
+ /**
86
+ * Encodes the "installExtension" function into a Hex string with its parameters.
87
+ * @param options - The options for the installExtension function.
88
+ * @returns The encoded hexadecimal string.
89
+ * @extension MODULAR
90
+ * @example
91
+ * ```ts
92
+ * import { encodeInstallExtension } "thirdweb/extensions/modular";
93
+ * const result = encodeInstallExtension({
94
+ * extensionContract: ...,
95
+ * data: ...,
96
+ * });
97
+ * ```
98
+ */
99
+ export function encodeInstallExtension(options: InstallExtensionParams) {
100
+ // we do a "manual" concat here to avoid the overhead of the "concatHex" function
101
+ // we can do this because we know the specific formats of the values
102
+ return (FN_SELECTOR +
103
+ encodeInstallExtensionParams(options).slice(
104
+ 2,
105
+ )) as `${typeof FN_SELECTOR}${string}`;
106
+ }
107
+
108
+ /**
109
+ * Prepares a transaction to call the "installExtension" function on the contract.
110
+ * @param options - The options for the "installExtension" function.
111
+ * @returns A prepared transaction object.
112
+ * @extension MODULAR
113
+ * @example
114
+ * ```ts
115
+ * import { installExtension } from "thirdweb/extensions/modular";
116
+ *
117
+ * const transaction = installExtension({
118
+ * contract,
119
+ * extensionContract: ...,
120
+ * data: ...,
121
+ * overrides: {
122
+ * ...
123
+ * }
124
+ * });
125
+ *
126
+ * // Send the transaction
127
+ * ...
128
+ *
129
+ * ```
130
+ */
131
+ export function installExtension(
132
+ options: BaseTransactionOptions<
133
+ | InstallExtensionParams
134
+ | {
135
+ asyncParams: () => Promise<InstallExtensionParams>;
136
+ }
137
+ >,
138
+ ) {
139
+ const asyncOptions = once(async () => {
140
+ return "asyncParams" in options ? await options.asyncParams() : options;
141
+ });
142
+
143
+ return prepareContractCall({
144
+ contract: options.contract,
145
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
146
+ params: async () => {
147
+ const resolvedOptions = await asyncOptions();
148
+ return [resolvedOptions.extensionContract, resolvedOptions.data] as const;
149
+ },
150
+ value: async () => (await asyncOptions()).overrides?.value,
151
+ accessList: async () => (await asyncOptions()).overrides?.accessList,
152
+ gas: async () => (await asyncOptions()).overrides?.gas,
153
+ gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
154
+ maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
155
+ maxPriorityFeePerGas: async () =>
156
+ (await asyncOptions()).overrides?.maxPriorityFeePerGas,
157
+ nonce: async () => (await asyncOptions()).overrides?.nonce,
158
+ extraGas: async () => (await asyncOptions()).overrides?.extraGas,
159
+ });
160
+ }
@@ -0,0 +1,162 @@
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
+ extensionContract: AbiParameterToPrimitiveType<{
17
+ name: "extensionContract";
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: "extensionContract",
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
+ * extensionContract: ...,
74
+ * data: ...,
75
+ * });
76
+ * ```
77
+ */
78
+ export function encodeUninstallExtensionParams(
79
+ options: UninstallExtensionParams,
80
+ ) {
81
+ return encodeAbiParameters(FN_INPUTS, [
82
+ options.extensionContract,
83
+ options.data,
84
+ ]);
85
+ }
86
+
87
+ /**
88
+ * Encodes the "uninstallExtension" function into a Hex string with its parameters.
89
+ * @param options - The options for the uninstallExtension function.
90
+ * @returns The encoded hexadecimal string.
91
+ * @extension MODULAR
92
+ * @example
93
+ * ```ts
94
+ * import { encodeUninstallExtension } "thirdweb/extensions/modular";
95
+ * const result = encodeUninstallExtension({
96
+ * extensionContract: ...,
97
+ * data: ...,
98
+ * });
99
+ * ```
100
+ */
101
+ export function encodeUninstallExtension(options: UninstallExtensionParams) {
102
+ // we do a "manual" concat here to avoid the overhead of the "concatHex" function
103
+ // we can do this because we know the specific formats of the values
104
+ return (FN_SELECTOR +
105
+ encodeUninstallExtensionParams(options).slice(
106
+ 2,
107
+ )) as `${typeof FN_SELECTOR}${string}`;
108
+ }
109
+
110
+ /**
111
+ * Prepares a transaction to call the "uninstallExtension" function on the contract.
112
+ * @param options - The options for the "uninstallExtension" function.
113
+ * @returns A prepared transaction object.
114
+ * @extension MODULAR
115
+ * @example
116
+ * ```ts
117
+ * import { uninstallExtension } from "thirdweb/extensions/modular";
118
+ *
119
+ * const transaction = uninstallExtension({
120
+ * contract,
121
+ * extensionContract: ...,
122
+ * data: ...,
123
+ * overrides: {
124
+ * ...
125
+ * }
126
+ * });
127
+ *
128
+ * // Send the transaction
129
+ * ...
130
+ *
131
+ * ```
132
+ */
133
+ export function uninstallExtension(
134
+ options: BaseTransactionOptions<
135
+ | UninstallExtensionParams
136
+ | {
137
+ asyncParams: () => Promise<UninstallExtensionParams>;
138
+ }
139
+ >,
140
+ ) {
141
+ const asyncOptions = once(async () => {
142
+ return "asyncParams" in options ? await options.asyncParams() : options;
143
+ });
144
+
145
+ return prepareContractCall({
146
+ contract: options.contract,
147
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
148
+ params: async () => {
149
+ const resolvedOptions = await asyncOptions();
150
+ return [resolvedOptions.extensionContract, resolvedOptions.data] as const;
151
+ },
152
+ value: async () => (await asyncOptions()).overrides?.value,
153
+ accessList: async () => (await asyncOptions()).overrides?.accessList,
154
+ gas: async () => (await asyncOptions()).overrides?.gas,
155
+ gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
156
+ maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
157
+ maxPriorityFeePerGas: async () =>
158
+ (await asyncOptions()).overrides?.maxPriorityFeePerGas,
159
+ nonce: async () => (await asyncOptions()).overrides?.nonce,
160
+ extraGas: async () => (await asyncOptions()).overrides?.extraGas,
161
+ });
162
+ }
@@ -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
+ }
@@ -0,0 +1,25 @@
1
+ import { prepareEvent } from "../../../../../event/prepare-event.js";
2
+
3
+ /**
4
+ * Creates an event object for the ExtensionInstalled event.
5
+ * @returns The prepared event object.
6
+ * @extension MODULAR
7
+ * @example
8
+ * ```ts
9
+ * import { getContractEvents } from "thirdweb";
10
+ * import { extensionInstalledEvent } from "thirdweb/extensions/modular";
11
+ *
12
+ * const events = await getContractEvents({
13
+ * contract,
14
+ * events: [
15
+ * extensionInstalledEvent()
16
+ * ],
17
+ * });
18
+ * ```
19
+ */
20
+ export function extensionInstalledEvent() {
21
+ return prepareEvent({
22
+ signature:
23
+ "event ExtensionInstalled(address caller, address implementation, address installedExtension)",
24
+ });
25
+ }