thirdweb 5.37.0 → 5.37.1-nightly-26d825bc4f0475523ea761aa18ab979557295c28-20240722000339

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 (266) hide show
  1. package/dist/cjs/exports/extensions/lens.js +98 -0
  2. package/dist/cjs/exports/extensions/lens.js.map +1 -0
  3. package/dist/cjs/exports/extensions/permissions.js +7 -1
  4. package/dist/cjs/exports/extensions/permissions.js.map +1 -1
  5. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowData.js +133 -0
  6. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowData.js.map +1 -0
  7. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.js +115 -0
  8. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.js.map +1 -0
  9. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.js +115 -0
  10. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.js.map +1 -0
  11. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.js +71 -0
  12. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.js.map +1 -0
  13. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.js +115 -0
  14. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.js.map +1 -0
  15. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.js +115 -0
  16. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.js.map +1 -0
  17. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.js +115 -0
  18. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.js.map +1 -0
  19. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/isFollowing.js +115 -0
  20. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/isFollowing.js.map +1 -0
  21. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.js +115 -0
  22. package/dist/cjs/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.js.map +1 -0
  23. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getHandle.js +115 -0
  24. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getHandle.js.map +1 -0
  25. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.js +71 -0
  26. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.js.map +1 -0
  27. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getLocalName.js +115 -0
  28. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getLocalName.js.map +1 -0
  29. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getTokenId.js +115 -0
  30. package/dist/cjs/extensions/lens/__generated__/LensHandle/read/getTokenId.js.map +1 -0
  31. package/dist/cjs/extensions/lens/__generated__/LensHub/read/exists.js +115 -0
  32. package/dist/cjs/extensions/lens/__generated__/LensHub/read/exists.js.map +1 -0
  33. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getContentURI.js +122 -0
  34. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getContentURI.js.map +1 -0
  35. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getProfile.js +145 -0
  36. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getProfile.js.map +1 -0
  37. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.js +115 -0
  38. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.js.map +1 -0
  39. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getPublication.js +160 -0
  40. package/dist/cjs/extensions/lens/__generated__/LensHub/read/getPublication.js.map +1 -0
  41. package/dist/cjs/extensions/lens/__generated__/LensHub/read/mintTimestampOf.js +115 -0
  42. package/dist/cjs/extensions/lens/__generated__/LensHub/read/mintTimestampOf.js.map +1 -0
  43. package/dist/cjs/extensions/lens/__generated__/LensHub/read/nonces.js +115 -0
  44. package/dist/cjs/extensions/lens/__generated__/LensHub/read/nonces.js.map +1 -0
  45. package/dist/cjs/extensions/lens/__generated__/LensHub/read/tokenDataOf.js +125 -0
  46. package/dist/cjs/extensions/lens/__generated__/LensHub/read/tokenDataOf.js.map +1 -0
  47. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.js +115 -0
  48. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.js.map +1 -0
  49. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.js +115 -0
  50. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.js.map +1 -0
  51. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.js +115 -0
  52. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.js.map +1 -0
  53. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.js +125 -0
  54. package/dist/cjs/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.js.map +1 -0
  55. package/dist/cjs/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.js +115 -0
  56. package/dist/cjs/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.js.map +1 -0
  57. package/dist/cjs/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.js +116 -0
  58. package/dist/cjs/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.js.map +1 -0
  59. package/dist/cjs/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.js +115 -0
  60. package/dist/cjs/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.js.map +1 -0
  61. package/dist/cjs/extensions/lens/consts.js +26 -0
  62. package/dist/cjs/extensions/lens/consts.js.map +1 -0
  63. package/dist/cjs/extensions/lens/read/getFullProfile.js +74 -0
  64. package/dist/cjs/extensions/lens/read/getFullProfile.js.map +1 -0
  65. package/dist/cjs/extensions/lens/read/getHandleFromProfileId.js +50 -0
  66. package/dist/cjs/extensions/lens/read/getHandleFromProfileId.js.map +1 -0
  67. package/dist/cjs/extensions/lens/read/getProfileMetadata.js +55 -0
  68. package/dist/cjs/extensions/lens/read/getProfileMetadata.js.map +1 -0
  69. package/dist/cjs/extensions/lens/read/type.js +3 -0
  70. package/dist/cjs/extensions/lens/read/type.js.map +1 -0
  71. package/dist/cjs/extensions/permissions/utils.js +19 -5
  72. package/dist/cjs/extensions/permissions/utils.js.map +1 -1
  73. package/dist/cjs/version.js +1 -1
  74. package/dist/cjs/version.js.map +1 -1
  75. package/dist/esm/exports/extensions/lens.js +56 -0
  76. package/dist/esm/exports/extensions/lens.js.map +1 -0
  77. package/dist/esm/exports/extensions/permissions.js +4 -0
  78. package/dist/esm/exports/extensions/permissions.js.map +1 -1
  79. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowData.js +125 -0
  80. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowData.js.map +1 -0
  81. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.js +107 -0
  82. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.js.map +1 -0
  83. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.js +107 -0
  84. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.js.map +1 -0
  85. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.js +65 -0
  86. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.js.map +1 -0
  87. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.js +107 -0
  88. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.js.map +1 -0
  89. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.js +107 -0
  90. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.js.map +1 -0
  91. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.js +107 -0
  92. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.js.map +1 -0
  93. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/isFollowing.js +107 -0
  94. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/isFollowing.js.map +1 -0
  95. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.js +107 -0
  96. package/dist/esm/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.js.map +1 -0
  97. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getHandle.js +107 -0
  98. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getHandle.js.map +1 -0
  99. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.js +65 -0
  100. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.js.map +1 -0
  101. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getLocalName.js +107 -0
  102. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getLocalName.js.map +1 -0
  103. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getTokenId.js +107 -0
  104. package/dist/esm/extensions/lens/__generated__/LensHandle/read/getTokenId.js.map +1 -0
  105. package/dist/esm/extensions/lens/__generated__/LensHub/read/exists.js +107 -0
  106. package/dist/esm/extensions/lens/__generated__/LensHub/read/exists.js.map +1 -0
  107. package/dist/esm/extensions/lens/__generated__/LensHub/read/getContentURI.js +114 -0
  108. package/dist/esm/extensions/lens/__generated__/LensHub/read/getContentURI.js.map +1 -0
  109. package/dist/esm/extensions/lens/__generated__/LensHub/read/getProfile.js +137 -0
  110. package/dist/esm/extensions/lens/__generated__/LensHub/read/getProfile.js.map +1 -0
  111. package/dist/esm/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.js +107 -0
  112. package/dist/esm/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.js.map +1 -0
  113. package/dist/esm/extensions/lens/__generated__/LensHub/read/getPublication.js +152 -0
  114. package/dist/esm/extensions/lens/__generated__/LensHub/read/getPublication.js.map +1 -0
  115. package/dist/esm/extensions/lens/__generated__/LensHub/read/mintTimestampOf.js +107 -0
  116. package/dist/esm/extensions/lens/__generated__/LensHub/read/mintTimestampOf.js.map +1 -0
  117. package/dist/esm/extensions/lens/__generated__/LensHub/read/nonces.js +107 -0
  118. package/dist/esm/extensions/lens/__generated__/LensHub/read/nonces.js.map +1 -0
  119. package/dist/esm/extensions/lens/__generated__/LensHub/read/tokenDataOf.js +117 -0
  120. package/dist/esm/extensions/lens/__generated__/LensHub/read/tokenDataOf.js.map +1 -0
  121. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.js +107 -0
  122. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.js.map +1 -0
  123. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.js +107 -0
  124. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.js.map +1 -0
  125. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.js +107 -0
  126. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.js.map +1 -0
  127. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.js +117 -0
  128. package/dist/esm/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.js.map +1 -0
  129. package/dist/esm/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.js +107 -0
  130. package/dist/esm/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.js.map +1 -0
  131. package/dist/esm/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.js +108 -0
  132. package/dist/esm/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.js.map +1 -0
  133. package/dist/esm/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.js +107 -0
  134. package/dist/esm/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.js.map +1 -0
  135. package/dist/esm/extensions/lens/consts.js +23 -0
  136. package/dist/esm/extensions/lens/consts.js.map +1 -0
  137. package/dist/esm/extensions/lens/read/getFullProfile.js +71 -0
  138. package/dist/esm/extensions/lens/read/getFullProfile.js.map +1 -0
  139. package/dist/esm/extensions/lens/read/getHandleFromProfileId.js +47 -0
  140. package/dist/esm/extensions/lens/read/getHandleFromProfileId.js.map +1 -0
  141. package/dist/esm/extensions/lens/read/getProfileMetadata.js +52 -0
  142. package/dist/esm/extensions/lens/read/getProfileMetadata.js.map +1 -0
  143. package/dist/esm/extensions/lens/read/type.js +2 -0
  144. package/dist/esm/extensions/lens/read/type.js.map +1 -0
  145. package/dist/esm/extensions/permissions/utils.js +15 -1
  146. package/dist/esm/extensions/permissions/utils.js.map +1 -1
  147. package/dist/esm/version.js +1 -1
  148. package/dist/esm/version.js.map +1 -1
  149. package/dist/types/exports/extensions/lens.d.ts +53 -0
  150. package/dist/types/exports/extensions/lens.d.ts.map +1 -0
  151. package/dist/types/exports/extensions/permissions.d.ts +1 -0
  152. package/dist/types/exports/extensions/permissions.d.ts.map +1 -1
  153. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowData.d.ts +95 -0
  154. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowData.d.ts.map +1 -0
  155. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.d.ts +85 -0
  156. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.d.ts.map +1 -0
  157. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.d.ts +85 -0
  158. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.d.ts.map +1 -0
  159. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.d.ts +46 -0
  160. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.d.ts.map +1 -0
  161. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.d.ts +85 -0
  162. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.d.ts.map +1 -0
  163. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.d.ts +85 -0
  164. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.d.ts.map +1 -0
  165. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.d.ts +85 -0
  166. package/dist/types/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.d.ts.map +1 -0
  167. package/dist/types/extensions/lens/__generated__/FollowNFT/read/isFollowing.d.ts +85 -0
  168. package/dist/types/extensions/lens/__generated__/FollowNFT/read/isFollowing.d.ts.map +1 -0
  169. package/dist/types/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.d.ts +85 -0
  170. package/dist/types/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.d.ts.map +1 -0
  171. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandle.d.ts +85 -0
  172. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandle.d.ts.map +1 -0
  173. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts +46 -0
  174. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts.map +1 -0
  175. package/dist/types/extensions/lens/__generated__/LensHandle/read/getLocalName.d.ts +85 -0
  176. package/dist/types/extensions/lens/__generated__/LensHandle/read/getLocalName.d.ts.map +1 -0
  177. package/dist/types/extensions/lens/__generated__/LensHandle/read/getTokenId.d.ts +85 -0
  178. package/dist/types/extensions/lens/__generated__/LensHandle/read/getTokenId.d.ts.map +1 -0
  179. package/dist/types/extensions/lens/__generated__/LensHub/read/exists.d.ts +85 -0
  180. package/dist/types/extensions/lens/__generated__/LensHub/read/exists.d.ts.map +1 -0
  181. package/dist/types/extensions/lens/__generated__/LensHub/read/getContentURI.d.ts +92 -0
  182. package/dist/types/extensions/lens/__generated__/LensHub/read/getContentURI.d.ts.map +1 -0
  183. package/dist/types/extensions/lens/__generated__/LensHub/read/getProfile.d.ts +101 -0
  184. package/dist/types/extensions/lens/__generated__/LensHub/read/getProfile.d.ts.map +1 -0
  185. package/dist/types/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.d.ts +85 -0
  186. package/dist/types/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.d.ts.map +1 -0
  187. package/dist/types/extensions/lens/__generated__/LensHub/read/getPublication.d.ts +112 -0
  188. package/dist/types/extensions/lens/__generated__/LensHub/read/getPublication.d.ts.map +1 -0
  189. package/dist/types/extensions/lens/__generated__/LensHub/read/mintTimestampOf.d.ts +85 -0
  190. package/dist/types/extensions/lens/__generated__/LensHub/read/mintTimestampOf.d.ts.map +1 -0
  191. package/dist/types/extensions/lens/__generated__/LensHub/read/nonces.d.ts +85 -0
  192. package/dist/types/extensions/lens/__generated__/LensHub/read/nonces.d.ts.map +1 -0
  193. package/dist/types/extensions/lens/__generated__/LensHub/read/tokenDataOf.d.ts +91 -0
  194. package/dist/types/extensions/lens/__generated__/LensHub/read/tokenDataOf.d.ts.map +1 -0
  195. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.d.ts +85 -0
  196. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.d.ts.map +1 -0
  197. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.d.ts +85 -0
  198. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.d.ts.map +1 -0
  199. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.d.ts +85 -0
  200. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.d.ts.map +1 -0
  201. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.d.ts +92 -0
  202. package/dist/types/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.d.ts.map +1 -0
  203. package/dist/types/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.d.ts +85 -0
  204. package/dist/types/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.d.ts.map +1 -0
  205. package/dist/types/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.d.ts +85 -0
  206. package/dist/types/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.d.ts.map +1 -0
  207. package/dist/types/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.d.ts +85 -0
  208. package/dist/types/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.d.ts.map +1 -0
  209. package/dist/types/extensions/lens/consts.d.ts +20 -0
  210. package/dist/types/extensions/lens/consts.d.ts.map +1 -0
  211. package/dist/types/extensions/lens/read/getFullProfile.d.ts +37 -0
  212. package/dist/types/extensions/lens/read/getFullProfile.d.ts.map +1 -0
  213. package/dist/types/extensions/lens/read/getHandleFromProfileId.d.ts +28 -0
  214. package/dist/types/extensions/lens/read/getHandleFromProfileId.d.ts.map +1 -0
  215. package/dist/types/extensions/lens/read/getProfileMetadata.d.ts +36 -0
  216. package/dist/types/extensions/lens/read/getProfileMetadata.d.ts.map +1 -0
  217. package/dist/types/extensions/lens/read/type.d.ts +37 -0
  218. package/dist/types/extensions/lens/read/type.d.ts.map +1 -0
  219. package/dist/types/extensions/permissions/utils.d.ts +15 -2
  220. package/dist/types/extensions/permissions/utils.d.ts.map +1 -1
  221. package/dist/types/version.d.ts +1 -1
  222. package/dist/types/version.d.ts.map +1 -1
  223. package/package.json +1 -1
  224. package/src/exports/extensions/lens.ts +155 -0
  225. package/src/exports/extensions/permissions.ts +5 -0
  226. package/src/extensions/erc1155/drops/read/getActiveClaimCondition.test.ts +3 -4
  227. package/src/extensions/erc20/drops/read/getActiveClaimCondition.test.ts +2 -2
  228. package/src/extensions/erc721/drops/read/getActiveClaimCondition.test.ts +2 -2
  229. package/src/extensions/lens/__generated__/FollowNFT/read/getFollowData.ts +150 -0
  230. package/src/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.ts +134 -0
  231. package/src/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.ts +132 -0
  232. package/src/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.ts +74 -0
  233. package/src/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.ts +136 -0
  234. package/src/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.ts +136 -0
  235. package/src/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.ts +136 -0
  236. package/src/extensions/lens/__generated__/FollowNFT/read/isFollowing.ts +130 -0
  237. package/src/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.ts +129 -0
  238. package/src/extensions/lens/__generated__/LensHandle/read/getHandle.ts +127 -0
  239. package/src/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.ts +76 -0
  240. package/src/extensions/lens/__generated__/LensHandle/read/getLocalName.ts +127 -0
  241. package/src/extensions/lens/__generated__/LensHandle/read/getTokenId.ts +127 -0
  242. package/src/extensions/lens/__generated__/LensHub/read/exists.ts +123 -0
  243. package/src/extensions/lens/__generated__/LensHub/read/getContentURI.ts +140 -0
  244. package/src/extensions/lens/__generated__/LensHub/read/getProfile.ts +160 -0
  245. package/src/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.ts +136 -0
  246. package/src/extensions/lens/__generated__/LensHub/read/getPublication.ts +178 -0
  247. package/src/extensions/lens/__generated__/LensHub/read/mintTimestampOf.ts +129 -0
  248. package/src/extensions/lens/__generated__/LensHub/read/nonces.ts +123 -0
  249. package/src/extensions/lens/__generated__/LensHub/read/tokenDataOf.ts +137 -0
  250. package/src/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.ts +132 -0
  251. package/src/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.ts +136 -0
  252. package/src/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.ts +134 -0
  253. package/src/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.ts +150 -0
  254. package/src/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.ts +132 -0
  255. package/src/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.ts +124 -0
  256. package/src/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.ts +123 -0
  257. package/src/extensions/lens/consts.ts +35 -0
  258. package/src/extensions/lens/read/getFullProfile.test.ts +40 -0
  259. package/src/extensions/lens/read/getFullProfile.ts +106 -0
  260. package/src/extensions/lens/read/getHandleFromProfileId.test.ts +45 -0
  261. package/src/extensions/lens/read/getHandleFromProfileId.ts +67 -0
  262. package/src/extensions/lens/read/getProfileMetadata.test.ts +43 -0
  263. package/src/extensions/lens/read/getProfileMetadata.ts +67 -0
  264. package/src/extensions/lens/read/type.ts +50 -0
  265. package/src/extensions/permissions/utils.ts +15 -1
  266. package/src/version.ts +1 -1
@@ -0,0 +1,123 @@
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 "resolve" function.
12
+ */
13
+ export type ResolveParams = {
14
+ handleId: AbiParameterToPrimitiveType<{ type: "uint256"; name: "handleId" }>;
15
+ };
16
+
17
+ export const FN_SELECTOR = "0x4f896d4f" as const;
18
+ const FN_INPUTS = [
19
+ {
20
+ type: "uint256",
21
+ name: "handleId",
22
+ },
23
+ ] as const;
24
+ const FN_OUTPUTS = [
25
+ {
26
+ type: "uint256",
27
+ },
28
+ ] as const;
29
+
30
+ /**
31
+ * Checks if the `resolve` method is supported by the given contract.
32
+ * @param contract The ThirdwebContract.
33
+ * @returns A promise that resolves to a boolean indicating if the `resolve` method is supported.
34
+ * @extension LENS
35
+ * @example
36
+ * ```ts
37
+ * import { isResolveSupported } from "thirdweb/extensions/lens";
38
+ *
39
+ * const supported = await isResolveSupported(contract);
40
+ * ```
41
+ */
42
+ export async function isResolveSupported(contract: ThirdwebContract<any>) {
43
+ return detectMethod({
44
+ contract,
45
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
46
+ });
47
+ }
48
+
49
+ /**
50
+ * Encodes the parameters for the "resolve" function.
51
+ * @param options - The options for the resolve function.
52
+ * @returns The encoded ABI parameters.
53
+ * @extension LENS
54
+ * @example
55
+ * ```ts
56
+ * import { encodeResolveParams } "thirdweb/extensions/lens";
57
+ * const result = encodeResolveParams({
58
+ * handleId: ...,
59
+ * });
60
+ * ```
61
+ */
62
+ export function encodeResolveParams(options: ResolveParams) {
63
+ return encodeAbiParameters(FN_INPUTS, [options.handleId]);
64
+ }
65
+
66
+ /**
67
+ * Encodes the "resolve" function into a Hex string with its parameters.
68
+ * @param options - The options for the resolve function.
69
+ * @returns The encoded hexadecimal string.
70
+ * @extension LENS
71
+ * @example
72
+ * ```ts
73
+ * import { encodeResolve } "thirdweb/extensions/lens";
74
+ * const result = encodeResolve({
75
+ * handleId: ...,
76
+ * });
77
+ * ```
78
+ */
79
+ export function encodeResolve(options: ResolveParams) {
80
+ // we do a "manual" concat here to avoid the overhead of the "concatHex" function
81
+ // we can do this because we know the specific formats of the values
82
+ return (FN_SELECTOR +
83
+ encodeResolveParams(options).slice(2)) as `${typeof FN_SELECTOR}${string}`;
84
+ }
85
+
86
+ /**
87
+ * Decodes the result of the resolve function call.
88
+ * @param result - The hexadecimal result to decode.
89
+ * @returns The decoded result as per the FN_OUTPUTS definition.
90
+ * @extension LENS
91
+ * @example
92
+ * ```ts
93
+ * import { decodeResolveResult } from "thirdweb/extensions/lens";
94
+ * const result = decodeResolveResult("...");
95
+ * ```
96
+ */
97
+ export function decodeResolveResult(result: Hex) {
98
+ return decodeAbiParameters(FN_OUTPUTS, result)[0];
99
+ }
100
+
101
+ /**
102
+ * Calls the "resolve" function on the contract.
103
+ * @param options - The options for the resolve function.
104
+ * @returns The parsed result of the function call.
105
+ * @extension LENS
106
+ * @example
107
+ * ```ts
108
+ * import { resolve } from "thirdweb/extensions/lens";
109
+ *
110
+ * const result = await resolve({
111
+ * contract,
112
+ * handleId: ...,
113
+ * });
114
+ *
115
+ * ```
116
+ */
117
+ export async function resolve(options: BaseTransactionOptions<ResolveParams>) {
118
+ return readContract({
119
+ contract: options.contract,
120
+ method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
121
+ params: [options.handleId],
122
+ });
123
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * List of Lens's contracts on both polygon mainnet and polygon amoy testnet
3
+ * Update to the latest data here: https://www.lens.xyz/docs/resources/smart-contracts
4
+ *
5
+ * In our Lens extensions we will default to using these hard-coded values on mainnet
6
+ * to simplify the code for users, however they can override anytime
7
+ */
8
+
9
+ // ------------------- Mainnet Polygon (137) ------------------- //
10
+
11
+ // Core contracts
12
+ export const LENS_HUB_ADDRESS = "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d";
13
+ export const LENS_HANDLE_ADDRESS = "0xe7E7EaD361f3AaCD73A61A9bD6C10cA17F38E945";
14
+ export const LENS_TOKEN_HANDLE_REGISTRY_ADDRESS =
15
+ "0xD4F2F33680FCCb36748FA9831851643781608844";
16
+ export const LENS_FOLLOW_NFT_ADDRESS =
17
+ "0x288715E67B7b184fD299143280CA6c1Eb7F31e1B";
18
+ export const LENS_COLLECT_NFT_ADDRESS =
19
+ "0x0c2a7761E2971D906338F5da1ecF0027E4247fd7";
20
+ export const LENS_MODULE_REGISTRY_ADDRESS =
21
+ "0x1eD5983F0c883B96f7C35528a1e22EEA67DE3Ff9";
22
+
23
+ // ------------------- Polygon Amoy Testnet (80002) ------------------- //
24
+ export const LENS_HUB_ADDRESS_TESTNET =
25
+ "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d";
26
+ export const LENS_HANDLE_ADDRESS_TESTNET =
27
+ "0xe7E7EaD361f3AaCD73A61A9bD6C10cA17F38E945";
28
+ export const LENS_TOKEN_HANDLE_REGISTRY_ADDRESS_TESTNET =
29
+ "0xD4F2F33680FCCb36748FA9831851643781608844";
30
+ export const LENS_FOLLOW_NFT_ADDRESS_TESTNET =
31
+ "0x288715E67B7b184fD299143280CA6c1Eb7F31e1B";
32
+ export const LENS_COLLECT_NFT_ADDRESS_TESTNET =
33
+ "0x0c2a7761E2971D906338F5da1ecF0027E4247fd7";
34
+ export const LENS_MODULE_REGISTRY_ADDRESS_TESTNET =
35
+ "0x1eD5983F0c883B96f7C35528a1e22EEA67DE3Ff9";
@@ -0,0 +1,40 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { TEST_CLIENT } from "~test/test-clients.js";
3
+ import { MAX_UINT256 } from "~test/test-consts.js";
4
+ import { getFullProfile } from "./getFullProfile.js";
5
+
6
+ /**
7
+ * For Lens protocol, each profileId is an ERC721 tokenId.
8
+ * So any bigint from 0 to (current max profile id) should return a valid profile + handle
9
+ */
10
+
11
+ const profileId = 1000n;
12
+ const client = TEST_CLIENT;
13
+
14
+ describe("lens/getFullProfile", () => {
15
+ it("should return a full profile with handle and (maybe) profile metadata", async () => {
16
+ const profile = await getFullProfile({ profileId, client });
17
+
18
+ // Although there is a profile, the metadata of that profile might still be "null"
19
+ // if user hasn't set up any metadata like avatar, coverPicture, name, bio etc.
20
+ expect(typeof profile).toBe("object");
21
+ expect(profile?.handle.startsWith("lens/@")).toBe(true);
22
+ expect(typeof profile?.profileData).toBe("object");
23
+ });
24
+
25
+ it("should return null for invalid profileId", async () => {
26
+ // As of Jul 2024 Lens has about 465k profiles | So trying to get profile of a max-unit256 profileId should return "null"
27
+ // gotta be a very long before this number is reached so we should be safe
28
+ const profile = await getFullProfile({ profileId: MAX_UINT256, client });
29
+ expect(profile === null).toBe(true);
30
+ });
31
+
32
+ it("should return joinDate", async () => {
33
+ const profile = await getFullProfile({
34
+ profileId,
35
+ client,
36
+ includeJoinDate: true,
37
+ });
38
+ expect(typeof profile?.joinDate).toBe("bigint");
39
+ });
40
+ });
@@ -0,0 +1,106 @@
1
+ import { polygon } from "../../../chains/chain-definitions/polygon.js";
2
+ import type { Chain } from "../../../chains/types.js";
3
+ import type { ThirdwebClient } from "../../../client/client.js";
4
+ import { getContract } from "../../../contract/contract.js";
5
+ import type { Hex } from "../../../utils/encoding/hex.js";
6
+ import { getProfile } from "../__generated__/LensHub/read/getProfile.js";
7
+ import { getDefaultHandle } from "../__generated__/TokenHandleRegistry/read/getDefaultHandle.js";
8
+ import {
9
+ LENS_HANDLE_ADDRESS,
10
+ LENS_HUB_ADDRESS,
11
+ LENS_TOKEN_HANDLE_REGISTRY_ADDRESS,
12
+ } from "../consts.js";
13
+ import type { LensProfileSchema } from "./type.js";
14
+
15
+ export type GetFullProfileParams = {
16
+ profileId: bigint;
17
+ client: ThirdwebClient;
18
+ includeJoinDate?: boolean;
19
+ overrides?: {
20
+ lensHubAddress?: Hex;
21
+ lensHandleAddress?: Hex;
22
+ tokenHandleRegistryAddress?: Hex;
23
+ chain?: Chain;
24
+ };
25
+ };
26
+
27
+ export type FullProfileResponse = {
28
+ handle: string;
29
+ // Timestamp of the join date
30
+ joinDate: bigint | null;
31
+ profileData: LensProfileSchema | null;
32
+ } | null;
33
+
34
+ /**
35
+ * Return the profile data _with Lens handle_ and optional join date
36
+ *
37
+ * In Lens Protocol, each profile is associated with an ERC721 token,
38
+ * thus, the tokenId represent profileId and the 2 terms can be used interchangeably
39
+ * @extension LENS
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * import { getFullProfile } from "thirdweb/extension/lens";
44
+ *
45
+ * const profileId = 10000n; // profileId is the tokenId of the NFT
46
+ * const lensProfile = await getFullProfile({ profileId, client });
47
+ * ```
48
+ */
49
+ export async function getFullProfile(
50
+ options: GetFullProfileParams,
51
+ ): Promise<FullProfileResponse> {
52
+ const { profileId, overrides, includeJoinDate, client } = options;
53
+ const lensHubContract = getContract({
54
+ address: overrides?.lensHubAddress || LENS_HUB_ADDRESS,
55
+ chain: overrides?.chain || polygon,
56
+ client,
57
+ });
58
+ const tokenHandleRegistryContract = getContract({
59
+ address:
60
+ overrides?.tokenHandleRegistryAddress ||
61
+ LENS_TOKEN_HANDLE_REGISTRY_ADDRESS,
62
+ chain: overrides?.chain || polygon,
63
+ client,
64
+ });
65
+ const [profile, handleTokenId, { download }] = await Promise.all([
66
+ getProfile({ contract: lensHubContract, profileId }),
67
+ getDefaultHandle({
68
+ contract: tokenHandleRegistryContract,
69
+ profileId,
70
+ }).catch(() => null),
71
+ import("../../../storage/download.js"),
72
+ ]);
73
+
74
+ // A profile data should always pair with a handle, so we exit if either is missing
75
+ if (!profile || !handleTokenId) {
76
+ return null;
77
+ }
78
+
79
+ const [{ getHandle }, { mintTimestampOf }, profileData] = await Promise.all([
80
+ import("../__generated__/LensHandle/read/getHandle.js"),
81
+ import("../__generated__/LensHub/read/mintTimestampOf.js"),
82
+ profile?.metadataURI
83
+ ? (await download({ uri: profile.metadataURI, client })).json()
84
+ : null,
85
+ ]);
86
+
87
+ const lensHandleContract = getContract({
88
+ address: overrides?.lensHandleAddress || LENS_HANDLE_ADDRESS,
89
+ chain: overrides?.chain || polygon,
90
+ client,
91
+ });
92
+ const [handle, joinDate] = await Promise.all([
93
+ getHandle({ contract: lensHandleContract, tokenId: handleTokenId }),
94
+ includeJoinDate
95
+ ? mintTimestampOf({ contract: lensHubContract, tokenId: profileId })
96
+ : null,
97
+ ]);
98
+
99
+ const result: FullProfileResponse = {
100
+ profileData,
101
+ handle,
102
+ joinDate,
103
+ };
104
+
105
+ return result;
106
+ }
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { TEST_CLIENT } from "~test/test-clients.js";
3
+ import { MAX_UINT256 } from "~test/test-consts.js";
4
+ import { getHandleFromProfileId } from "./getHandleFromProfileId.js";
5
+
6
+ /**
7
+ * For Lens protocol, each profileId is an ERC721 tokenId.
8
+ * So any bigint from 0 to (current max id) should return a valid profile + handle
9
+ */
10
+
11
+ const profileId = 1000n;
12
+ const client = TEST_CLIENT;
13
+
14
+ describe("lens/getHandleFromProfileId should return a handle for a valid profileId", () => {
15
+ it("should return a string in this format: lens/@<handle>", async () => {
16
+ const handle = await getHandleFromProfileId({ profileId, client });
17
+ expect(typeof handle).toBe("string");
18
+ // @ts-ignore expected
19
+ expect(handle.startsWith("lens/")).toBe(true);
20
+ });
21
+
22
+ it("should return `null` for an invalid profileId", async () => {
23
+ // As of Jul 2024 Lens has about 465k profiles | So trying to get handle of a max-unit256 profileId should return "null"
24
+ // gotta be a very long before this number is reached so we should be safe
25
+ const handle = await getHandleFromProfileId({
26
+ profileId: MAX_UINT256,
27
+ client,
28
+ });
29
+ expect(handle).toBe(null);
30
+ });
31
+
32
+ it("should work with overrides", async () => {
33
+ const handle = await getHandleFromProfileId({
34
+ profileId,
35
+ client,
36
+ overrides: {
37
+ lensHandleAddress: "0xe7E7EaD361f3AaCD73A61A9bD6C10cA17F38E945",
38
+ tokenHandleRegistryAddress:
39
+ "0xD4F2F33680FCCb36748FA9831851643781608844",
40
+ },
41
+ });
42
+ // @ts-ignore expected
43
+ expect(handle.startsWith("lens/")).toBe(true);
44
+ });
45
+ });
@@ -0,0 +1,67 @@
1
+ import { polygon } from "../../../chains/chain-definitions/polygon.js";
2
+ import type { Chain } from "../../../chains/types.js";
3
+ import type { ThirdwebClient } from "../../../client/client.js";
4
+ import { getContract } from "../../../contract/contract.js";
5
+ import type { Hex } from "../../../utils/encoding/hex.js";
6
+ import { getHandle } from "../__generated__/LensHandle/read/getHandle.js";
7
+ import { getDefaultHandle } from "../__generated__/TokenHandleRegistry/read/getDefaultHandle.js";
8
+ import {
9
+ LENS_HANDLE_ADDRESS,
10
+ LENS_TOKEN_HANDLE_REGISTRY_ADDRESS,
11
+ } from "../consts.js";
12
+
13
+ export type GetHandleFromProfileIdParams = {
14
+ profileId: bigint;
15
+ client: ThirdwebClient;
16
+ overrides?: {
17
+ lensHandleAddress?: Hex;
18
+ tokenHandleRegistryAddress?: Hex;
19
+ chain?: Chain;
20
+ };
21
+ };
22
+
23
+ /**
24
+ * Return the Lens handle of a profile in the format: lens/@<name-of-user>
25
+ * @param options
26
+ * @returns
27
+ * @extension LENS
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import { getHandleFromProfileId } from "thirdweb/extensions/lens";
32
+ *
33
+ * const profileId = 461662n;
34
+ * const handle = await getHandleFromProfileId({ profileId, client }); // "lens/@captain_jack"
35
+ * ```
36
+ */
37
+ export async function getHandleFromProfileId(
38
+ options: GetHandleFromProfileIdParams,
39
+ ) {
40
+ const { profileId, overrides, client } = options;
41
+ const lensHandleContract = getContract({
42
+ address: overrides?.lensHandleAddress || LENS_HANDLE_ADDRESS,
43
+ chain: overrides?.chain || polygon,
44
+ client,
45
+ });
46
+ const tokenHandleRegistryContract = getContract({
47
+ address:
48
+ overrides?.tokenHandleRegistryAddress ||
49
+ LENS_TOKEN_HANDLE_REGISTRY_ADDRESS,
50
+ chain: overrides?.chain || polygon,
51
+ client,
52
+ });
53
+ const handleTokenId = await getDefaultHandle({
54
+ contract: tokenHandleRegistryContract,
55
+ profileId,
56
+ }).catch(() => null);
57
+ if (handleTokenId === null) {
58
+ return null;
59
+ }
60
+ // e.g: "lens/@JuanWick"
61
+ const handle = await getHandle({
62
+ contract: lensHandleContract,
63
+ tokenId: handleTokenId,
64
+ }).catch(() => null);
65
+
66
+ return handle;
67
+ }
@@ -0,0 +1,43 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { TEST_CLIENT } from "~test/test-clients.js";
3
+ import { MAX_UINT256 } from "~test/test-consts.js";
4
+ import { getProfileMetadata } from "./getProfileMetadata.js";
5
+
6
+ /**
7
+ * For Lens protocol, each profileId is an ERC721 tokenId.
8
+ * So any bigint from 0 to (current max profile id) should return a valid profile + handle
9
+ */
10
+
11
+ const profileId = 1000n;
12
+ const client = TEST_CLIENT;
13
+
14
+ describe("lens/getProfileMetadata", () => {
15
+ it("should return a profile object or null for valid profileId", async () => {
16
+ const profile = await getProfileMetadata({ profileId, client });
17
+
18
+ // Although there is a profile, the metadata of that profile might still be "missing"
19
+ // if user hasn't set up any metadata like avatar, coverPicture, name, bio etc.
20
+ expect(typeof profile).toBe("object");
21
+ });
22
+
23
+ it("should return null for invalid profileId", async () => {
24
+ // As of Jul 2024 Lens has about 465k profiles | So trying to get profile of a max-unit256 profileId should return nothing
25
+ // gotta be a very long before this number is reached so we should be safe
26
+ const profile = await getProfileMetadata({
27
+ profileId: MAX_UINT256,
28
+ client,
29
+ });
30
+ expect(profile === null).toBe(true);
31
+ });
32
+
33
+ it("should work with overrides", async () => {
34
+ const profile = await getProfileMetadata({
35
+ profileId,
36
+ client,
37
+ overrides: {
38
+ lensHubAddress: "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d",
39
+ },
40
+ });
41
+ expect(typeof profile).toBe("object");
42
+ });
43
+ });
@@ -0,0 +1,67 @@
1
+ import { polygon } from "../../../chains/chain-definitions/polygon.js";
2
+ import type { Chain } from "../../../chains/types.js";
3
+ import type { ThirdwebClient } from "../../../client/client.js";
4
+ import { getContract } from "../../../contract/contract.js";
5
+ import type { Hex } from "../../../utils/encoding/hex.js";
6
+ import { getProfile } from "../__generated__/LensHub/read/getProfile.js";
7
+ import { LENS_HUB_ADDRESS } from "../consts.js";
8
+ import type { LensProfileSchema } from "./type.js";
9
+
10
+ export type GetProfileMetadataParams = {
11
+ profileId: bigint;
12
+ client: ThirdwebClient;
13
+ overrides?: {
14
+ lensHubAddress?: Hex;
15
+ chain?: Chain;
16
+ };
17
+ };
18
+
19
+ /**
20
+ * Download user lens profile from Arweave
21
+ * This method does NOT give you the user handle & join-time - consider using `getFullProfileData` instead
22
+ * It is useful & cost efficient if you only want to get user's name, bio, picture, coverPicture etc.
23
+ *
24
+ * @important The contract here is the LensHub contract
25
+ * @param options
26
+ * @returns LensProfileSchema | null
27
+ * @extension LENS
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import { getProfileMetadata } from "thirdweb/extensions/lens";
32
+ *
33
+ * const profileData = await getProfileMetadata({ profileId, client });
34
+ *
35
+ * if (profileData) {
36
+ * console.log("Display name: ", profileData.lens.name);
37
+ * console.log("Bio: ", profileData.lens.bio);
38
+ * }
39
+ * ```
40
+ */
41
+ export async function getProfileMetadata(
42
+ options: GetProfileMetadataParams,
43
+ ): Promise<LensProfileSchema | null> {
44
+ const { client, profileId, overrides } = options;
45
+ const lensHubContract = getContract({
46
+ address: overrides?.lensHubAddress || LENS_HUB_ADDRESS,
47
+ chain: overrides?.chain || polygon,
48
+ client,
49
+ });
50
+ const profile = await getProfile({
51
+ contract: lensHubContract,
52
+ profileId,
53
+ }).catch(() => null);
54
+ if (profile === null) {
55
+ return profile;
56
+ }
57
+ if (!profile?.metadataURI) {
58
+ return null;
59
+ }
60
+ const { download } = await import("../../../storage/download.js");
61
+ const res = await download({
62
+ uri: profile.metadataURI,
63
+ client,
64
+ });
65
+ const profileData = ((await res.json()) as LensProfileSchema) || null;
66
+ return profileData;
67
+ }
@@ -0,0 +1,50 @@
1
+ export type LensProfileSchema = {
2
+ // A cryptographic signature of the Lens metadata
3
+ signature: string;
4
+ lens: {
5
+ // lens id
6
+ id: string;
7
+ // The profile display name
8
+ name: string;
9
+ // The profile bio as markdown
10
+ bio: string;
11
+ // The profile picture (avatar)
12
+ picture: string;
13
+ // The profile cover picture
14
+ coverPicture: string;
15
+ // extra metadata
16
+ attributes: MetadataAttribute[];
17
+ // The App Id, if omitted considered as global Profile data
18
+ appId?: string;
19
+ };
20
+ };
21
+
22
+ /**
23
+ * @internal
24
+ */
25
+ export type MetadataAttribute =
26
+ | {
27
+ type: "Boolean";
28
+ key: string;
29
+ value: "true" | "false";
30
+ }
31
+ | {
32
+ type: "Date";
33
+ key: string;
34
+ value: string; // should be a valid ISO 8601 date string
35
+ }
36
+ | {
37
+ type: "Number";
38
+ key: string;
39
+ value: string; // should be a valid JS number serialized as string
40
+ }
41
+ | {
42
+ type: "String";
43
+ key: string;
44
+ value: string;
45
+ }
46
+ | {
47
+ type: "JSON";
48
+ key: string;
49
+ value: string; // should be a JSON string
50
+ };
@@ -2,7 +2,10 @@ import { keccakId } from "../../utils/any-evm/keccak-id.js";
2
2
  import { LruMap } from "../../utils/caching/lru.js";
3
3
  import { type Hex, isHex, padHex } from "../../utils/encoding/hex.js";
4
4
 
5
- const roleMap = {
5
+ /**
6
+ * A map of all current thirdweb's smart contract roles
7
+ */
8
+ export const roleMap = {
6
9
  admin: "",
7
10
  transfer: "TRANSFER_ROLE",
8
11
  minter: "MINTER_ROLE",
@@ -32,6 +35,17 @@ export type RoleInput = ThirdwebContractRole | Hex | (string & {});
32
35
 
33
36
  const roleCache = new LruMap<Hex>(128);
34
37
 
38
+ /**
39
+ * Get a hex value of a smart contract role
40
+ * You need the hex value to interact with the smart contracts.
41
+ * @param role string
42
+ * @returns hex value of the contract role
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const adminRoleHash = getRoleHash("admin"); // 0x0000000...000000
47
+ * ```
48
+ */
35
49
  export function getRoleHash(role: RoleInput) {
36
50
  if (roleCache.has(role)) {
37
51
  // biome-ignore lint/style/noNonNullAssertion: we know it's in the cache
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.37.0";
1
+ export const version = "5.37.1-nightly-26d825bc4f0475523ea761aa18ab979557295c28-20240722000339";