@towns-protocol/web3 0.0.191

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 (327) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.md +3 -0
  3. package/dist/ContractHelpers.d.ts +18 -0
  4. package/dist/ContractHelpers.d.ts.map +1 -0
  5. package/dist/ContractHelpers.js +75 -0
  6. package/dist/ContractHelpers.js.map +1 -0
  7. package/dist/ContractTypes.d.ts +143 -0
  8. package/dist/ContractTypes.d.ts.map +1 -0
  9. package/dist/ContractTypes.js +65 -0
  10. package/dist/ContractTypes.js.map +1 -0
  11. package/dist/ConvertersEntitlements.d.ts +10 -0
  12. package/dist/ConvertersEntitlements.d.ts.map +1 -0
  13. package/dist/ConvertersEntitlements.js +120 -0
  14. package/dist/ConvertersEntitlements.js.map +1 -0
  15. package/dist/ConvertersRoles.d.ts +8 -0
  16. package/dist/ConvertersRoles.d.ts.map +1 -0
  17. package/dist/ConvertersRoles.js +94 -0
  18. package/dist/ConvertersRoles.js.map +1 -0
  19. package/dist/DelegateRegistry.d.ts +3 -0
  20. package/dist/DelegateRegistry.d.ts.map +1 -0
  21. package/dist/DelegateRegistry.js +72 -0
  22. package/dist/DelegateRegistry.js.map +1 -0
  23. package/dist/EntitlementCache.d.ts +20 -0
  24. package/dist/EntitlementCache.d.ts.map +1 -0
  25. package/dist/EntitlementCache.js +41 -0
  26. package/dist/EntitlementCache.js.map +1 -0
  27. package/dist/EntitlementCache.test.d.ts +5 -0
  28. package/dist/EntitlementCache.test.d.ts.map +1 -0
  29. package/dist/EntitlementCache.test.js +130 -0
  30. package/dist/EntitlementCache.test.js.map +1 -0
  31. package/dist/ISpaceDapp.d.ts +193 -0
  32. package/dist/ISpaceDapp.d.ts.map +1 -0
  33. package/dist/ISpaceDapp.js +2 -0
  34. package/dist/ISpaceDapp.js.map +1 -0
  35. package/dist/IStaticContractsInfo.d.ts +28 -0
  36. package/dist/IStaticContractsInfo.d.ts.map +1 -0
  37. package/dist/IStaticContractsInfo.js +13 -0
  38. package/dist/IStaticContractsInfo.js.map +1 -0
  39. package/dist/LocalhostWeb3Provider.d.ts +15 -0
  40. package/dist/LocalhostWeb3Provider.d.ts.map +1 -0
  41. package/dist/LocalhostWeb3Provider.js +60 -0
  42. package/dist/LocalhostWeb3Provider.js.map +1 -0
  43. package/dist/MockCrossChainEntitlement.d.ts +6 -0
  44. package/dist/MockCrossChainEntitlement.d.ts.map +1 -0
  45. package/dist/MockCrossChainEntitlement.js +104 -0
  46. package/dist/MockCrossChainEntitlement.js.map +1 -0
  47. package/dist/MockERC1155.d.ts +6 -0
  48. package/dist/MockERC1155.d.ts.map +1 -0
  49. package/dist/MockERC1155.js +518 -0
  50. package/dist/MockERC1155.js.map +1 -0
  51. package/dist/MockERC20.d.ts +6 -0
  52. package/dist/MockERC20.d.ts.map +1 -0
  53. package/dist/MockERC20.js +574 -0
  54. package/dist/MockERC20.js.map +1 -0
  55. package/dist/MockERC721A.d.ts +1563 -0
  56. package/dist/MockERC721A.d.ts.map +1 -0
  57. package/dist/MockERC721A.js +1913 -0
  58. package/dist/MockERC721A.js.map +1 -0
  59. package/dist/RiverRegistryFactory.d.ts +5 -0
  60. package/dist/RiverRegistryFactory.d.ts.map +1 -0
  61. package/dist/RiverRegistryFactory.js +5 -0
  62. package/dist/RiverRegistryFactory.js.map +1 -0
  63. package/dist/SpaceDappFactory.d.ts +5 -0
  64. package/dist/SpaceDappFactory.d.ts.map +1 -0
  65. package/dist/SpaceDappFactory.js +8 -0
  66. package/dist/SpaceDappFactory.js.map +1 -0
  67. package/dist/TestCrossChainEntitlement.d.ts +14 -0
  68. package/dist/TestCrossChainEntitlement.d.ts.map +1 -0
  69. package/dist/TestCrossChainEntitlement.js +100 -0
  70. package/dist/TestCrossChainEntitlement.js.map +1 -0
  71. package/dist/TestEthBalance.d.ts +60 -0
  72. package/dist/TestEthBalance.d.ts.map +1 -0
  73. package/dist/TestEthBalance.js +94 -0
  74. package/dist/TestEthBalance.js.map +1 -0
  75. package/dist/TestGatingERC1155.d.ts +17 -0
  76. package/dist/TestGatingERC1155.d.ts.map +1 -0
  77. package/dist/TestGatingERC1155.js +101 -0
  78. package/dist/TestGatingERC1155.js.map +1 -0
  79. package/dist/TestGatingERC20.d.ts +17 -0
  80. package/dist/TestGatingERC20.d.ts.map +1 -0
  81. package/dist/TestGatingERC20.js +149 -0
  82. package/dist/TestGatingERC20.js.map +1 -0
  83. package/dist/TestGatingNFT.d.ts +17 -0
  84. package/dist/TestGatingNFT.d.ts.map +1 -0
  85. package/dist/TestGatingNFT.js +140 -0
  86. package/dist/TestGatingNFT.js.map +1 -0
  87. package/dist/TestGatingUtils.d.ts +15 -0
  88. package/dist/TestGatingUtils.d.ts.map +1 -0
  89. package/dist/TestGatingUtils.js +112 -0
  90. package/dist/TestGatingUtils.js.map +1 -0
  91. package/dist/Utils.d.ts +59 -0
  92. package/dist/Utils.d.ts.map +1 -0
  93. package/dist/Utils.js +122 -0
  94. package/dist/Utils.js.map +1 -0
  95. package/dist/Web3Constants.d.ts +6 -0
  96. package/dist/Web3Constants.d.ts.map +1 -0
  97. package/dist/Web3Constants.js +7 -0
  98. package/dist/Web3Constants.js.map +1 -0
  99. package/dist/Web3Constants.test.d.ts +2 -0
  100. package/dist/Web3Constants.test.d.ts.map +1 -0
  101. package/dist/Web3Constants.test.js +15 -0
  102. package/dist/Web3Constants.test.js.map +1 -0
  103. package/dist/chain.d.ts +65 -0
  104. package/dist/chain.d.ts.map +1 -0
  105. package/dist/chain.js +48 -0
  106. package/dist/chain.js.map +1 -0
  107. package/dist/entitlement.d.ts +146 -0
  108. package/dist/entitlement.d.ts.map +1 -0
  109. package/dist/entitlement.js +931 -0
  110. package/dist/entitlement.js.map +1 -0
  111. package/dist/entitlement.test.d.ts +2 -0
  112. package/dist/entitlement.test.d.ts.map +1 -0
  113. package/dist/entitlement.test.js +1743 -0
  114. package/dist/entitlement.test.js.map +1 -0
  115. package/dist/error-types.d.ts +7 -0
  116. package/dist/error-types.d.ts.map +1 -0
  117. package/dist/error-types.js +13 -0
  118. package/dist/error-types.js.map +1 -0
  119. package/dist/index.d.ts +76 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +76 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/types.d.ts +29 -0
  124. package/dist/types.d.ts.map +1 -0
  125. package/dist/types.js +2 -0
  126. package/dist/types.js.map +1 -0
  127. package/dist/utils.test.d.ts +2 -0
  128. package/dist/utils.test.d.ts.map +1 -0
  129. package/dist/utils.test.js +44 -0
  130. package/dist/utils.test.js.map +1 -0
  131. package/dist/v3/BaseContractShim.d.ts +28 -0
  132. package/dist/v3/BaseContractShim.d.ts.map +1 -0
  133. package/dist/v3/BaseContractShim.js +185 -0
  134. package/dist/v3/BaseContractShim.js.map +1 -0
  135. package/dist/v3/BaseRegistry.d.ts +30 -0
  136. package/dist/v3/BaseRegistry.d.ts.map +1 -0
  137. package/dist/v3/BaseRegistry.js +64 -0
  138. package/dist/v3/BaseRegistry.js.map +1 -0
  139. package/dist/v3/EIP-712.d.ts +35 -0
  140. package/dist/v3/EIP-712.d.ts.map +1 -0
  141. package/dist/v3/EIP-712.js +57 -0
  142. package/dist/v3/EIP-712.js.map +1 -0
  143. package/dist/v3/IBanningShim.d.ts +7 -0
  144. package/dist/v3/IBanningShim.d.ts.map +1 -0
  145. package/dist/v3/IBanningShim.js +8 -0
  146. package/dist/v3/IBanningShim.js.map +1 -0
  147. package/dist/v3/IChannelShim.d.ts +8 -0
  148. package/dist/v3/IChannelShim.d.ts.map +1 -0
  149. package/dist/v3/IChannelShim.js +8 -0
  150. package/dist/v3/IChannelShim.js.map +1 -0
  151. package/dist/v3/ICreateSpaceShim.d.ts +9 -0
  152. package/dist/v3/ICreateSpaceShim.d.ts.map +1 -0
  153. package/dist/v3/ICreateSpaceShim.js +8 -0
  154. package/dist/v3/ICreateSpaceShim.js.map +1 -0
  155. package/dist/v3/IDropFacetShim.d.ts +7 -0
  156. package/dist/v3/IDropFacetShim.d.ts.map +1 -0
  157. package/dist/v3/IDropFacetShim.js +8 -0
  158. package/dist/v3/IDropFacetShim.js.map +1 -0
  159. package/dist/v3/IERC721AQueryableShim.d.ts +7 -0
  160. package/dist/v3/IERC721AQueryableShim.d.ts.map +1 -0
  161. package/dist/v3/IERC721AQueryableShim.js +8 -0
  162. package/dist/v3/IERC721AQueryableShim.js.map +1 -0
  163. package/dist/v3/IERC721AShim.d.ts +7 -0
  164. package/dist/v3/IERC721AShim.d.ts.map +1 -0
  165. package/dist/v3/IERC721AShim.js +8 -0
  166. package/dist/v3/IERC721AShim.js.map +1 -0
  167. package/dist/v3/IEntitlementCheckerShim.d.ts +7 -0
  168. package/dist/v3/IEntitlementCheckerShim.d.ts.map +1 -0
  169. package/dist/v3/IEntitlementCheckerShim.js +8 -0
  170. package/dist/v3/IEntitlementCheckerShim.js.map +1 -0
  171. package/dist/v3/IEntitlementDataQueryableShim.d.ts +8 -0
  172. package/dist/v3/IEntitlementDataQueryableShim.d.ts.map +1 -0
  173. package/dist/v3/IEntitlementDataQueryableShim.js +8 -0
  174. package/dist/v3/IEntitlementDataQueryableShim.js.map +1 -0
  175. package/dist/v3/IEntitlementsShim.d.ts +8 -0
  176. package/dist/v3/IEntitlementsShim.d.ts.map +1 -0
  177. package/dist/v3/IEntitlementsShim.js +8 -0
  178. package/dist/v3/IEntitlementsShim.js.map +1 -0
  179. package/dist/v3/ILegacySpaceArchitectShim.d.ts +8 -0
  180. package/dist/v3/ILegacySpaceArchitectShim.d.ts.map +1 -0
  181. package/dist/v3/ILegacySpaceArchitectShim.js +8 -0
  182. package/dist/v3/ILegacySpaceArchitectShim.js.map +1 -0
  183. package/dist/v3/IMembershipMetadataShim.d.ts +7 -0
  184. package/dist/v3/IMembershipMetadataShim.d.ts.map +1 -0
  185. package/dist/v3/IMembershipMetadataShim.js +8 -0
  186. package/dist/v3/IMembershipMetadataShim.js.map +1 -0
  187. package/dist/v3/IMembershipShim.d.ts +18 -0
  188. package/dist/v3/IMembershipShim.d.ts.map +1 -0
  189. package/dist/v3/IMembershipShim.js +73 -0
  190. package/dist/v3/IMembershipShim.js.map +1 -0
  191. package/dist/v3/IMulticallShim.d.ts +7 -0
  192. package/dist/v3/IMulticallShim.d.ts.map +1 -0
  193. package/dist/v3/IMulticallShim.js +8 -0
  194. package/dist/v3/IMulticallShim.js.map +1 -0
  195. package/dist/v3/INodeOperatorShim.d.ts +7 -0
  196. package/dist/v3/INodeOperatorShim.d.ts.map +1 -0
  197. package/dist/v3/INodeOperatorShim.js +8 -0
  198. package/dist/v3/INodeOperatorShim.js.map +1 -0
  199. package/dist/v3/INodeRegistryShim.d.ts +7 -0
  200. package/dist/v3/INodeRegistryShim.d.ts.map +1 -0
  201. package/dist/v3/INodeRegistryShim.js +8 -0
  202. package/dist/v3/INodeRegistryShim.js.map +1 -0
  203. package/dist/v3/IOperatorRegistryShim.d.ts +7 -0
  204. package/dist/v3/IOperatorRegistryShim.d.ts.map +1 -0
  205. package/dist/v3/IOperatorRegistryShim.js +8 -0
  206. package/dist/v3/IOperatorRegistryShim.js.map +1 -0
  207. package/dist/v3/IPrepayShim.d.ts +7 -0
  208. package/dist/v3/IPrepayShim.d.ts.map +1 -0
  209. package/dist/v3/IPrepayShim.js +8 -0
  210. package/dist/v3/IPrepayShim.js.map +1 -0
  211. package/dist/v3/IPricingShim.d.ts +8 -0
  212. package/dist/v3/IPricingShim.d.ts.map +1 -0
  213. package/dist/v3/IPricingShim.js +8 -0
  214. package/dist/v3/IPricingShim.js.map +1 -0
  215. package/dist/v3/IReviewShim.d.ts +61 -0
  216. package/dist/v3/IReviewShim.d.ts.map +1 -0
  217. package/dist/v3/IReviewShim.js +101 -0
  218. package/dist/v3/IReviewShim.js.map +1 -0
  219. package/dist/v3/IRiverPointsShim.d.ts +7 -0
  220. package/dist/v3/IRiverPointsShim.d.ts.map +1 -0
  221. package/dist/v3/IRiverPointsShim.js +8 -0
  222. package/dist/v3/IRiverPointsShim.js.map +1 -0
  223. package/dist/v3/IRolesShim.d.ts +8 -0
  224. package/dist/v3/IRolesShim.d.ts.map +1 -0
  225. package/dist/v3/IRolesShim.js +8 -0
  226. package/dist/v3/IRolesShim.js.map +1 -0
  227. package/dist/v3/IRuleEntitlementShim.d.ts +6 -0
  228. package/dist/v3/IRuleEntitlementShim.d.ts.map +1 -0
  229. package/dist/v3/IRuleEntitlementShim.js +3 -0
  230. package/dist/v3/IRuleEntitlementShim.js.map +1 -0
  231. package/dist/v3/IRuleEntitlementV2Shim.d.ts +6 -0
  232. package/dist/v3/IRuleEntitlementV2Shim.d.ts.map +1 -0
  233. package/dist/v3/IRuleEntitlementV2Shim.js +3 -0
  234. package/dist/v3/IRuleEntitlementV2Shim.js.map +1 -0
  235. package/dist/v3/ISpaceArchitectShim.d.ts +8 -0
  236. package/dist/v3/ISpaceArchitectShim.d.ts.map +1 -0
  237. package/dist/v3/ISpaceArchitectShim.js +38 -0
  238. package/dist/v3/ISpaceArchitectShim.js.map +1 -0
  239. package/dist/v3/ISpaceDelegationShim.d.ts +7 -0
  240. package/dist/v3/ISpaceDelegationShim.d.ts.map +1 -0
  241. package/dist/v3/ISpaceDelegationShim.js +8 -0
  242. package/dist/v3/ISpaceDelegationShim.js.map +1 -0
  243. package/dist/v3/ISpaceOwnerShim.d.ts +8 -0
  244. package/dist/v3/ISpaceOwnerShim.d.ts.map +1 -0
  245. package/dist/v3/ISpaceOwnerShim.js +8 -0
  246. package/dist/v3/ISpaceOwnerShim.js.map +1 -0
  247. package/dist/v3/IStreamRegistryShim.d.ts +7 -0
  248. package/dist/v3/IStreamRegistryShim.d.ts.map +1 -0
  249. package/dist/v3/IStreamRegistryShim.js +8 -0
  250. package/dist/v3/IStreamRegistryShim.js.map +1 -0
  251. package/dist/v3/ITippingShim.d.ts +20 -0
  252. package/dist/v3/ITippingShim.d.ts.map +1 -0
  253. package/dist/v3/ITippingShim.js +46 -0
  254. package/dist/v3/ITippingShim.js.map +1 -0
  255. package/dist/v3/ITreasuryShim.d.ts +7 -0
  256. package/dist/v3/ITreasuryShim.d.ts.map +1 -0
  257. package/dist/v3/ITreasuryShim.js +8 -0
  258. package/dist/v3/ITreasuryShim.js.map +1 -0
  259. package/dist/v3/MockERC721AShim.d.ts +7 -0
  260. package/dist/v3/MockERC721AShim.d.ts.map +1 -0
  261. package/dist/v3/MockERC721AShim.js +8 -0
  262. package/dist/v3/MockERC721AShim.js.map +1 -0
  263. package/dist/v3/OwnableFacetShim.d.ts +7 -0
  264. package/dist/v3/OwnableFacetShim.d.ts.map +1 -0
  265. package/dist/v3/OwnableFacetShim.js +8 -0
  266. package/dist/v3/OwnableFacetShim.js.map +1 -0
  267. package/dist/v3/PlatformRequirements.d.ts +10 -0
  268. package/dist/v3/PlatformRequirements.d.ts.map +1 -0
  269. package/dist/v3/PlatformRequirements.js +17 -0
  270. package/dist/v3/PlatformRequirements.js.map +1 -0
  271. package/dist/v3/PricingModules.d.ts +13 -0
  272. package/dist/v3/PricingModules.d.ts.map +1 -0
  273. package/dist/v3/PricingModules.js +23 -0
  274. package/dist/v3/PricingModules.js.map +1 -0
  275. package/dist/v3/RiverAirdropDapp.d.ts +16 -0
  276. package/dist/v3/RiverAirdropDapp.d.ts.map +1 -0
  277. package/dist/v3/RiverAirdropDapp.js +30 -0
  278. package/dist/v3/RiverAirdropDapp.js.map +1 -0
  279. package/dist/v3/RiverRegistry.d.ts +32 -0
  280. package/dist/v3/RiverRegistry.d.ts.map +1 -0
  281. package/dist/v3/RiverRegistry.js +96 -0
  282. package/dist/v3/RiverRegistry.js.map +1 -0
  283. package/dist/v3/RuleEntitlementShim.d.ts +11 -0
  284. package/dist/v3/RuleEntitlementShim.d.ts.map +1 -0
  285. package/dist/v3/RuleEntitlementShim.js +38 -0
  286. package/dist/v3/RuleEntitlementShim.js.map +1 -0
  287. package/dist/v3/RuleEntitlementV2Shim.d.ts +11 -0
  288. package/dist/v3/RuleEntitlementV2Shim.d.ts.map +1 -0
  289. package/dist/v3/RuleEntitlementV2Shim.js +38 -0
  290. package/dist/v3/RuleEntitlementV2Shim.js.map +1 -0
  291. package/dist/v3/Space.d.ts +97 -0
  292. package/dist/v3/Space.d.ts.map +1 -0
  293. package/dist/v3/Space.js +440 -0
  294. package/dist/v3/Space.js.map +1 -0
  295. package/dist/v3/SpaceDapp.d.ts +212 -0
  296. package/dist/v3/SpaceDapp.d.ts.map +1 -0
  297. package/dist/v3/SpaceDapp.js +1164 -0
  298. package/dist/v3/SpaceDapp.js.map +1 -0
  299. package/dist/v3/SpaceOwner.d.ts +13 -0
  300. package/dist/v3/SpaceOwner.d.ts.map +1 -0
  301. package/dist/v3/SpaceOwner.js +18 -0
  302. package/dist/v3/SpaceOwner.js.map +1 -0
  303. package/dist/v3/SpaceRegistrar.d.ts +25 -0
  304. package/dist/v3/SpaceRegistrar.d.ts.map +1 -0
  305. package/dist/v3/SpaceRegistrar.js +56 -0
  306. package/dist/v3/SpaceRegistrar.js.map +1 -0
  307. package/dist/v3/TokenPausableFacetShim.d.ts +7 -0
  308. package/dist/v3/TokenPausableFacetShim.d.ts.map +1 -0
  309. package/dist/v3/TokenPausableFacetShim.js +8 -0
  310. package/dist/v3/TokenPausableFacetShim.js.map +1 -0
  311. package/dist/v3/UserEntitlementShim.d.ts +11 -0
  312. package/dist/v3/UserEntitlementShim.d.ts.map +1 -0
  313. package/dist/v3/UserEntitlementShim.js +44 -0
  314. package/dist/v3/UserEntitlementShim.js.map +1 -0
  315. package/dist/v3/WalletLink.d.ts +50 -0
  316. package/dist/v3/WalletLink.d.ts.map +1 -0
  317. package/dist/v3/WalletLink.js +215 -0
  318. package/dist/v3/WalletLink.js.map +1 -0
  319. package/dist/v3/WalletLinkShim.d.ts +7 -0
  320. package/dist/v3/WalletLinkShim.d.ts.map +1 -0
  321. package/dist/v3/WalletLinkShim.js +8 -0
  322. package/dist/v3/WalletLinkShim.js.map +1 -0
  323. package/dist/v3/index.d.ts +24 -0
  324. package/dist/v3/index.d.ts.map +1 -0
  325. package/dist/v3/index.js +24 -0
  326. package/dist/v3/index.js.map +1 -0
  327. package/package.json +54 -0
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 River Association
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # web3
2
+
3
+ Dapps for our Space and Registry contracts
@@ -0,0 +1,18 @@
1
+ import { BigNumber, BigNumberish, ethers } from 'ethers';
2
+ import { BasicRoleInfo, Permission, Address } from './ContractTypes';
3
+ import { BaseChainConfig } from './IStaticContractsInfo';
4
+ import { ISpaceDapp } from './ISpaceDapp';
5
+ import { IArchitectBase as ISpaceArchitectBaseV3, IMembershipBase as IMembershipBaseV3 } from './v3';
6
+ export declare function mintMockNFT(provider: ethers.providers.Provider, config: BaseChainConfig, fromWallet: ethers.Wallet, toAddress: string): Promise<ethers.ContractTransaction>;
7
+ export declare function balanceOfMockNFT(config: BaseChainConfig, provider: ethers.providers.Provider, address: Address): Promise<BigNumber>;
8
+ export declare function getTestGatingNftAddress(_chainId: number): Promise<Address>;
9
+ export declare function getFilteredRolesFromSpace(spaceDapp: ISpaceDapp, spaceNetworkId: string): Promise<BasicRoleInfo[]>;
10
+ export declare function isRoleIdInArray(roleIds: BigNumber[] | readonly bigint[], roleId: BigNumberish | bigint): boolean;
11
+ type CreateMembershipStructArgs = {
12
+ name: string;
13
+ permissions: Permission[];
14
+ requirements: ISpaceArchitectBaseV3.MembershipRequirementsStruct;
15
+ } & Omit<IMembershipBaseV3.MembershipStruct, 'symbol' | 'price' | 'maxSupply' | 'duration' | 'currency' | 'feeRecipient' | 'freeAllocation' | 'pricingModule'>;
16
+ export declare function createMembershipStruct(args: CreateMembershipStructArgs): ISpaceArchitectBaseV3.MembershipStruct;
17
+ export {};
18
+ //# sourceMappingURL=ContractHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractHelpers.d.ts","sourceRoot":"","sources":["../src/ContractHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EACH,cAAc,IAAI,qBAAqB,EAEvC,eAAe,IAAI,iBAAiB,EACvC,MAAM,MAAM,CAAA;AAIb,wBAAgB,WAAW,CACvB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EACzB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAOrC;AAED,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,OAAO,EAAE,OAAO,sBAQnB;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhF;AAED,wBAAsB,yBAAyB,CAC3C,SAAS,EAAE,UAAU,EACrB,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,aAAa,EAAE,CAAC,CAW1B;AAED,wBAAgB,eAAe,CAC3B,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,MAAM,EAAE,EACxC,MAAM,EAAE,YAAY,GAAG,MAAM,GAC9B,OAAO,CAOT;AAYD,KAAK,0BAA0B,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,YAAY,EAAE,qBAAqB,CAAC,4BAA4B,CAAA;CACnE,GAAG,IAAI,CACJ,iBAAiB,CAAC,gBAAgB,EAChC,QAAQ,GACR,OAAO,GACP,WAAW,GACX,UAAU,GACV,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,eAAe,CACpB,CAAA;AAuBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,0CAOtE"}
@@ -0,0 +1,75 @@
1
+ import { ethers } from 'ethers';
2
+ import { MockERC721AShim as MockERC721AShimV3, } from './v3';
3
+ import { getTestGatingNFTContractAddress } from './TestGatingNFT';
4
+ export function mintMockNFT(provider, config, fromWallet, toAddress) {
5
+ if (!config.addresses.utils.mockNFT) {
6
+ throw new Error('No mock ERC721 address provided');
7
+ }
8
+ const mockNFTAddress = config.addresses.utils.mockNFT;
9
+ const mockNFT = new MockERC721AShimV3(mockNFTAddress, provider);
10
+ return mockNFT.write(fromWallet).mintTo(toAddress);
11
+ }
12
+ export function balanceOfMockNFT(config, provider, address) {
13
+ if (!config.addresses.utils.mockNFT) {
14
+ throw new Error('No mock ERC721 address provided');
15
+ }
16
+ const mockNFTAddress = config.addresses.utils.mockNFT;
17
+ const mockNFT = new MockERC721AShimV3(mockNFTAddress, provider);
18
+ return mockNFT.read.balanceOf(address);
19
+ }
20
+ export async function getTestGatingNftAddress(_chainId) {
21
+ return await getTestGatingNFTContractAddress();
22
+ }
23
+ export async function getFilteredRolesFromSpace(spaceDapp, spaceNetworkId) {
24
+ const spaceRoles = await spaceDapp.getRoles(spaceNetworkId);
25
+ const filteredRoles = [];
26
+ // Filter out space roles which won't work when creating a channel
27
+ for (const r of spaceRoles) {
28
+ // Filter out roles which have no permissions & the Owner role
29
+ if (r.name !== 'Owner') {
30
+ filteredRoles.push(r);
31
+ }
32
+ }
33
+ return filteredRoles;
34
+ }
35
+ export function isRoleIdInArray(roleIds, roleId) {
36
+ for (const r of roleIds) {
37
+ if (r.eq(roleId)) {
38
+ return true;
39
+ }
40
+ }
41
+ return false;
42
+ }
43
+ /**
44
+ * TODO: these are only used in tests, should move them to different file?
45
+ */
46
+ function isMembershipStructV3(returnValue) {
47
+ return typeof returnValue.settings.price === 'number';
48
+ }
49
+ function _createMembershipStruct({ name, permissions, requirements, }) {
50
+ return {
51
+ settings: {
52
+ name,
53
+ symbol: 'MEMBER',
54
+ price: 0,
55
+ maxSupply: 1000,
56
+ duration: 0,
57
+ currency: ethers.constants.AddressZero,
58
+ feeRecipient: ethers.constants.AddressZero,
59
+ freeAllocation: 0,
60
+ pricingModule: ethers.constants.AddressZero,
61
+ },
62
+ permissions,
63
+ requirements,
64
+ };
65
+ }
66
+ export function createMembershipStruct(args) {
67
+ const result = _createMembershipStruct(args);
68
+ if (isMembershipStructV3(result)) {
69
+ return result;
70
+ }
71
+ else {
72
+ throw new Error("createMembershipStruct: version is not 'v3'");
73
+ }
74
+ }
75
+ //# sourceMappingURL=ContractHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractHelpers.js","sourceRoot":"","sources":["../src/ContractHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ import { UserEntitlementShim as UserEntitlementShimV3 } from './v3/UserEntitlementShim';
2
+ import { IMembershipBase as IMembershipBaseV3, IArchitectBase as ISpaceArchitectBaseV3 } from './v3/ICreateSpaceShim';
3
+ import { ILegacyArchitectBase } from './v3/ILegacySpaceArchitectShim';
4
+ import { IRolesBase as IRolesBaseV3 } from './v3/IRolesShim';
5
+ import { RuleEntitlementShim } from './v3/RuleEntitlementShim';
6
+ import { IRuleEntitlementBase, IRuleEntitlementV2Base } from './v3';
7
+ import { IPricingModulesBase } from './v3/IPricingShim';
8
+ import { RuleEntitlementV2Shim } from './v3/RuleEntitlementV2Shim';
9
+ import { CreateSpaceParams, CreateLegacySpaceParams, UpdateChannelParams, UpdateChannelAccessParams } from './ISpaceDapp';
10
+ export declare const Permission: {
11
+ /** No permission required. */
12
+ readonly Undefined: "Undefined";
13
+ /** Read event permission. */
14
+ readonly Read: "Read";
15
+ /** Write event permission. */
16
+ readonly Write: "Write";
17
+ /** Invite user permission. */
18
+ readonly Invite: "Invite";
19
+ /** Join space permission. */
20
+ readonly JoinSpace: "JoinSpace";
21
+ /** Redact events permission. */
22
+ readonly Redact: "Redact";
23
+ /** Modify or ban user permission. */
24
+ readonly ModifyBanning: "ModifyBanning";
25
+ /** Pin/unpin events permission. */
26
+ readonly PinMessage: "PinMessage";
27
+ /** Add or remove channels permission. */
28
+ readonly AddRemoveChannels: "AddRemoveChannels";
29
+ /** Modify space settings permission. */
30
+ readonly ModifySpaceSettings: "ModifySpaceSettings";
31
+ /** React to a message permission. */
32
+ readonly React: "React";
33
+ };
34
+ export type Permission = (typeof Permission)[keyof typeof Permission];
35
+ export type EntitlementShim = UserEntitlementShimV3 | RuleEntitlementShim | RuleEntitlementV2Shim;
36
+ export type EntitlementStruct = IRolesBaseV3.CreateEntitlementStruct;
37
+ type UserEntitlementShim = UserEntitlementShimV3;
38
+ type MembershipInfoStruct = IMembershipBaseV3.MembershipStruct;
39
+ type TotalSupplyOutputStruct = {
40
+ totalSupply: number;
41
+ };
42
+ export type MembershipStruct = ISpaceArchitectBaseV3.MembershipStruct;
43
+ export type LegacyMembershipStruct = ILegacyArchitectBase.MembershipStruct;
44
+ export type MembershipRequirementsStruct = ISpaceArchitectBaseV3.MembershipRequirementsStruct;
45
+ export type LegacyMembershipRequirementsStruct = ILegacyArchitectBase.MembershipRequirementsStruct;
46
+ export type SpaceInfoStruct = ISpaceArchitectBaseV3.SpaceInfoStruct;
47
+ export type LegacySpaceInfoStruct = ILegacyArchitectBase.SpaceInfoStruct;
48
+ export type PricingModuleStruct = IPricingModulesBase.PricingModuleStruct;
49
+ /**
50
+ * Supported entitlement modules
51
+ */
52
+ export declare enum EntitlementModuleType {
53
+ UserEntitlement = "UserEntitlement",
54
+ RuleEntitlement = "RuleEntitlement",
55
+ RuleEntitlementV2 = "RuleEntitlementV2"
56
+ }
57
+ export declare function isLegacyMembershipType(object: MembershipStruct | LegacyMembershipStruct): object is LegacyMembershipStruct;
58
+ export declare function isCreateLegacySpaceParams(object: CreateSpaceParams | CreateLegacySpaceParams): object is CreateLegacySpaceParams;
59
+ export declare function isRuleDataV1(ruleData: IRuleEntitlementBase.RuleDataStruct | IRuleEntitlementV2Base.RuleDataV2Struct): ruleData is IRuleEntitlementBase.RuleDataStruct;
60
+ /**
61
+ * Role details from multiple contract sources
62
+ */
63
+ interface RuleDataV1 {
64
+ kind: 'v1';
65
+ rules: IRuleEntitlementBase.RuleDataStruct;
66
+ }
67
+ interface RuleDataV2 {
68
+ kind: 'v2';
69
+ rules: IRuleEntitlementV2Base.RuleDataV2Struct;
70
+ }
71
+ export type VersionedRuleData = RuleDataV1 | RuleDataV2;
72
+ export interface RoleDetails {
73
+ id: number;
74
+ name: string;
75
+ permissions: Permission[];
76
+ users: string[];
77
+ ruleData: VersionedRuleData;
78
+ channels: ChannelMetadata[];
79
+ }
80
+ /**
81
+ * Basic channel metadata from the space contract.
82
+ */
83
+ export interface ChannelMetadata {
84
+ name: string;
85
+ description?: string;
86
+ channelNetworkId: string;
87
+ disabled: boolean;
88
+ }
89
+ /**
90
+ * Channel details from multiple contract sources
91
+ */
92
+ export interface ChannelDetails {
93
+ /** The River `spaceId` which this channel belongs. */
94
+ spaceNetworkId: string;
95
+ /** The River `channelId` of the channel. */
96
+ channelNetworkId: string;
97
+ /** The name of the channel. */
98
+ name: string;
99
+ /** Whether the channel is disabled. */
100
+ disabled: boolean;
101
+ /** The roles defined for the channel {@link RoleEntitlements}. */
102
+ roles: RoleEntitlements[];
103
+ /** The description of the channel. */
104
+ description?: string;
105
+ }
106
+ /** Role details for a channel from multiple contract sources */
107
+ export interface RoleEntitlements {
108
+ /** The id of the role. */
109
+ roleId: number;
110
+ /** The name of the role. */
111
+ name: string;
112
+ /** The permissions that this role has. @see {@link Permission} */
113
+ permissions: Permission[];
114
+ /** The userIds that are in this role. */
115
+ users: string[];
116
+ /** @internal The River struct that represents the rule data of the role {@link VersionedRuleData}. */
117
+ ruleData: VersionedRuleData;
118
+ }
119
+ export interface EntitlementDetails {
120
+ users: string[];
121
+ ruleData: VersionedRuleData;
122
+ }
123
+ export interface BasicRoleInfo {
124
+ roleId: number;
125
+ name: string;
126
+ }
127
+ export interface EntitlementModule {
128
+ moduleType: EntitlementModuleType;
129
+ }
130
+ export declare function isPermission(permission: string): permission is Permission;
131
+ export declare function isUserEntitlement(entitlement: EntitlementModule): entitlement is UserEntitlementShim;
132
+ export declare function isRuleEntitlement(entitlement: EntitlementModule): entitlement is RuleEntitlementShim;
133
+ export declare function isRuleEntitlementV2(entitlement: EntitlementModule): entitlement is RuleEntitlementV2Shim;
134
+ export declare const isUpdateChannelStatusParams: (params: UpdateChannelParams) => params is UpdateChannelAccessParams;
135
+ export declare function isStringArray(args: any): args is string[];
136
+ export type MembershipInfo = Pick<MembershipInfoStruct, 'maxSupply' | 'currency' | 'feeRecipient' | 'price' | 'duration' | 'pricingModule'> & TotalSupplyInfo & {
137
+ prepaidSupply: number;
138
+ remainingFreeSupply: number;
139
+ };
140
+ export type TotalSupplyInfo = Pick<TotalSupplyOutputStruct, 'totalSupply'>;
141
+ export type Address = `0x${string}`;
142
+ export {};
143
+ //# sourceMappingURL=ContractTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractTypes.d.ts","sourceRoot":"","sources":["../src/ContractTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { NoopRuleData } from './entitlement';
2
+ export const Permission = {
3
+ /** No permission required. */
4
+ Undefined: 'Undefined',
5
+ /** Read event permission. */
6
+ Read: 'Read',
7
+ /** Write event permission. */
8
+ Write: 'Write',
9
+ /** Invite user permission. */
10
+ Invite: 'Invite',
11
+ /** Join space permission. */
12
+ JoinSpace: 'JoinSpace',
13
+ /** Redact events permission. */
14
+ Redact: 'Redact',
15
+ /** Modify or ban user permission. */
16
+ ModifyBanning: 'ModifyBanning',
17
+ /** Pin/unpin events permission. */
18
+ PinMessage: 'PinMessage',
19
+ /** Add or remove channels permission. */
20
+ AddRemoveChannels: 'AddRemoveChannels',
21
+ /** Modify space settings permission. */
22
+ ModifySpaceSettings: 'ModifySpaceSettings',
23
+ /** React to a message permission. */
24
+ React: 'React',
25
+ };
26
+ /**
27
+ * Supported entitlement modules
28
+ */
29
+ export var EntitlementModuleType;
30
+ (function (EntitlementModuleType) {
31
+ EntitlementModuleType["UserEntitlement"] = "UserEntitlement";
32
+ EntitlementModuleType["RuleEntitlement"] = "RuleEntitlement";
33
+ EntitlementModuleType["RuleEntitlementV2"] = "RuleEntitlementV2";
34
+ })(EntitlementModuleType || (EntitlementModuleType = {}));
35
+ export function isLegacyMembershipType(object) {
36
+ return typeof object.requirements.ruleData === typeof NoopRuleData;
37
+ }
38
+ export function isCreateLegacySpaceParams(object) {
39
+ return typeof object.membership.requirements.ruleData === typeof NoopRuleData;
40
+ }
41
+ export function isRuleDataV1(ruleData) {
42
+ return ruleData.checkOperations.length === 0 || 'threshold' in ruleData.checkOperations[0];
43
+ }
44
+ export function isPermission(permission) {
45
+ return Object.values(Permission).includes(permission);
46
+ }
47
+ export function isUserEntitlement(entitlement) {
48
+ return entitlement.moduleType === EntitlementModuleType.UserEntitlement;
49
+ }
50
+ export function isRuleEntitlement(entitlement) {
51
+ return entitlement.moduleType === EntitlementModuleType.RuleEntitlement;
52
+ }
53
+ export function isRuleEntitlementV2(entitlement) {
54
+ return entitlement.moduleType === EntitlementModuleType.RuleEntitlementV2;
55
+ }
56
+ export const isUpdateChannelStatusParams = (params) => {
57
+ return ('disabled' in params &&
58
+ !('roleIds' in params || 'channelName' in params || 'channelDescription' in params));
59
+ };
60
+ export function isStringArray(
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ args) {
63
+ return Array.isArray(args) && args.length > 0 && args.every((arg) => typeof arg === 'string');
64
+ }
65
+ //# sourceMappingURL=ContractTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractTypes.js","sourceRoot":"","sources":["../src/ContractTypes.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAS5C,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,8BAA8B;IAC9B,SAAS,EAAE,WAAW;IACtB,6BAA6B;IAC7B,IAAI,EAAE,MAAM;IACZ,8BAA8B;IAC9B,KAAK,EAAE,OAAO;IACd,8BAA8B;IAC9B,MAAM,EAAE,QAAQ;IAChB,6BAA6B;IAC7B,SAAS,EAAE,WAAW;IACtB,gCAAgC;IAChC,MAAM,EAAE,QAAQ;IAChB,qCAAqC;IACrC,aAAa,EAAE,eAAe;IAC9B,mCAAmC;IACnC,UAAU,EAAE,YAAY;IACxB,yCAAyC;IACzC,iBAAiB,EAAE,mBAAmB;IACtC,wCAAwC;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,qCAAqC;IACrC,KAAK,EAAE,OAAO;CACR,CAAA;AA4BV;;GAEG;AACH,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC7B,4DAAmC,CAAA;IACnC,4DAAmC,CAAA;IACnC,gEAAuC,CAAA;AAC3C,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,MAAM,UAAU,sBAAsB,CAClC,MAAiD;IAEjD,OAAO,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,KAAK,OAAO,YAAY,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,MAAmD;IAEnD,OAAO,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,KAAK,OAAO,YAAY,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CACxB,QAAuF;IAEvF,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;AAC9F,CAAC;AAqFD,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAwB,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,WAA8B;IAE9B,OAAO,WAAW,CAAC,UAAU,KAAK,qBAAqB,CAAC,eAAe,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,WAA8B;IAE9B,OAAO,WAAW,CAAC,UAAU,KAAK,qBAAqB,CAAC,eAAe,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,WAA8B;IAE9B,OAAO,WAAW,CAAC,UAAU,KAAK,qBAAqB,CAAC,iBAAiB,CAAA;AAC7E,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,MAA2B,EACQ,EAAE;IACrC,OAAO,CACH,UAAU,IAAI,MAAM;QACpB,CAAC,CAAC,SAAS,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,IAAI,oBAAoB,IAAI,MAAM,CAAC,CACtF,CAAA;AACL,CAAC,CAAA;AAED,MAAM,UAAU,aAAa;AACzB,8DAA8D;AAC9D,IAAS;IAET,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAA;AACjG,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Address, EntitlementStruct } from './ContractTypes';
2
+ import { IRuleEntitlementBase, IRuleEntitlementV2Base } from './v3';
3
+ export declare function encodeUsers(users: string[] | Address[]): string;
4
+ export declare function decodeUsers(encodedData: string): string[];
5
+ export declare function createUserEntitlementStruct(moduleAddress: string, users: string[]): EntitlementStruct;
6
+ export declare function createRuleEntitlementStruct(moduleAddress: Address, ruleData: IRuleEntitlementBase.RuleDataStruct): EntitlementStruct;
7
+ export declare function createRuleEntitlementV2Struct(moduleAddress: Address, ruleData: IRuleEntitlementV2Base.RuleDataV2Struct): EntitlementStruct;
8
+ export declare function convertRuleDataV1ToV2(ruleData: IRuleEntitlementBase.RuleDataStruct): IRuleEntitlementV2Base.RuleDataV2Struct;
9
+ export declare function convertRuleDataV2ToV1(ruleData: IRuleEntitlementV2Base.RuleDataV2Struct): IRuleEntitlementBase.RuleDataStruct;
10
+ //# sourceMappingURL=ConvertersEntitlements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvertersEntitlements.d.ts","sourceRoot":"","sources":["../src/ConvertersEntitlements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,MAAM,CAAA;AAYnE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,UAItD;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CASzD;AAED,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EAAE,GAChB,iBAAiB,CAMnB;AAED,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,oBAAoB,CAAC,cAAc,GAC9C,iBAAiB,CAMnB;AAED,wBAAgB,6BAA6B,CACzC,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,sBAAsB,CAAC,gBAAgB,GAClD,iBAAiB,CAMnB;AAED,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,oBAAoB,CAAC,cAAc,GAC9C,sBAAsB,CAAC,gBAAgB,CA+CzC;AAED,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,sBAAsB,CAAC,gBAAgB,GAClD,oBAAoB,CAAC,cAAc,CA+CrC"}
@@ -0,0 +1,120 @@
1
+ import { ethers } from 'ethers';
2
+ import { CheckOperationType, encodeRuleData, encodeRuleDataV2, encodeThresholdParams, decodeThresholdParams, } from './entitlement';
3
+ const UserAddressesEncoding = 'address[]';
4
+ export function encodeUsers(users) {
5
+ const abiCoder = ethers.utils.defaultAbiCoder;
6
+ const encodedData = abiCoder.encode([UserAddressesEncoding], [users]);
7
+ return encodedData;
8
+ }
9
+ export function decodeUsers(encodedData) {
10
+ const abiCoder = ethers.utils.defaultAbiCoder;
11
+ const decodedData = abiCoder.decode([UserAddressesEncoding], encodedData);
12
+ let u = [];
13
+ if (decodedData.length) {
14
+ // decoded value is in element 0 of the array
15
+ u = decodedData[0];
16
+ }
17
+ return u;
18
+ }
19
+ export function createUserEntitlementStruct(moduleAddress, users) {
20
+ const data = encodeUsers(users);
21
+ return {
22
+ module: moduleAddress,
23
+ data,
24
+ };
25
+ }
26
+ export function createRuleEntitlementStruct(moduleAddress, ruleData) {
27
+ const encoded = encodeRuleData(ruleData);
28
+ return {
29
+ module: moduleAddress,
30
+ data: encoded,
31
+ };
32
+ }
33
+ export function createRuleEntitlementV2Struct(moduleAddress, ruleData) {
34
+ const encoded = encodeRuleDataV2(ruleData);
35
+ return {
36
+ module: moduleAddress,
37
+ data: encoded,
38
+ };
39
+ }
40
+ export function convertRuleDataV1ToV2(ruleData) {
41
+ const operations = ruleData.operations.map((op) => {
42
+ return { ...op };
43
+ });
44
+ const logicalOperations = ruleData.logicalOperations.map((op) => {
45
+ return { ...op };
46
+ });
47
+ const checkOperations = ruleData.checkOperations.map((op) => {
48
+ switch (op.opType) {
49
+ case CheckOperationType.MOCK:
50
+ case CheckOperationType.ERC20:
51
+ case CheckOperationType.ERC721:
52
+ case CheckOperationType.ETH_BALANCE: {
53
+ const threshold = ethers.BigNumber.from(op.threshold).toBigInt();
54
+ return {
55
+ opType: op.opType,
56
+ chainId: op.chainId,
57
+ contractAddress: op.contractAddress,
58
+ params: encodeThresholdParams({ threshold }),
59
+ };
60
+ }
61
+ case CheckOperationType.ERC1155:
62
+ throw new Error('ERC1155 not supported for V1 Rule Data');
63
+ case CheckOperationType.ISENTITLED:
64
+ return {
65
+ opType: op.opType,
66
+ chainId: op.chainId,
67
+ contractAddress: op.contractAddress,
68
+ params: `0x`,
69
+ };
70
+ default:
71
+ throw new Error('Unsupported Check Operation Type');
72
+ }
73
+ });
74
+ return {
75
+ operations,
76
+ logicalOperations,
77
+ checkOperations,
78
+ };
79
+ }
80
+ export function convertRuleDataV2ToV1(ruleData) {
81
+ const operations = ruleData.operations.map((op) => {
82
+ return { ...op };
83
+ });
84
+ const logicalOperations = ruleData.logicalOperations.map((op) => {
85
+ return { ...op };
86
+ });
87
+ const checkOperations = ruleData.checkOperations.map((op) => {
88
+ switch (op.opType) {
89
+ case CheckOperationType.MOCK:
90
+ case CheckOperationType.ERC20:
91
+ case CheckOperationType.ERC721:
92
+ case CheckOperationType.ETH_BALANCE: {
93
+ const { threshold } = decodeThresholdParams(op.params);
94
+ return {
95
+ opType: op.opType,
96
+ chainId: op.chainId,
97
+ contractAddress: op.contractAddress,
98
+ threshold,
99
+ };
100
+ }
101
+ case CheckOperationType.ERC1155:
102
+ throw new Error('ERC1155 not supported for V1 Rule Data');
103
+ case CheckOperationType.ISENTITLED:
104
+ return {
105
+ opType: op.opType,
106
+ chainId: op.chainId,
107
+ contractAddress: op.contractAddress,
108
+ threshold: 0n,
109
+ };
110
+ default:
111
+ throw new Error('Unsupported Check Operation Type');
112
+ }
113
+ });
114
+ return {
115
+ operations,
116
+ logicalOperations,
117
+ checkOperations,
118
+ };
119
+ }
120
+ //# sourceMappingURL=ConvertersEntitlements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvertersEntitlements.js","sourceRoot":"","sources":["../src/ConvertersEntitlements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Permission, EntitlementStruct, MembershipStruct, LegacyMembershipStruct } from './ContractTypes';
2
+ import { Space as SpaceV3 } from './v3/Space';
3
+ import { IRuleEntitlementBase, IRuleEntitlementV2Base } from './v3';
4
+ export declare function createLegacyEntitlementStruct<Space extends SpaceV3>(spaceIn: Space, users: string[], ruleData: IRuleEntitlementBase.RuleDataStruct): Promise<EntitlementStruct[]>;
5
+ export declare function createEntitlementStruct<Space extends SpaceV3>(spaceIn: Space, users: string[], ruleData: IRuleEntitlementV2Base.RuleDataV2Struct): Promise<EntitlementStruct[]>;
6
+ export declare function toPermissions(permissions: readonly string[]): Permission[];
7
+ export declare function downgradeMembershipStruct(membership: MembershipStruct): LegacyMembershipStruct;
8
+ //# sourceMappingURL=ConvertersRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvertersRoles.d.ts","sourceRoot":"","sources":["../src/ConvertersRoles.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,UAAU,EACV,iBAAiB,EAEjB,gBAAgB,EAChB,sBAAsB,EACzB,MAAM,iBAAiB,CAAA;AAUxB,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,MAAM,CAAA;AAEnE,wBAAsB,6BAA6B,CAAC,KAAK,SAAS,OAAO,EACrE,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,oBAAoB,CAAC,cAAc,GAC9C,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2C9B;AAED,wBAAsB,uBAAuB,CAAC,KAAK,SAAS,OAAO,EAC/D,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,sBAAsB,CAAC,gBAAgB,GAClD,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2C9B;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,EAAE,CAK1E;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,gBAAgB,GAAG,sBAAsB,CAa9F"}
@@ -0,0 +1,94 @@
1
+ import { EntitlementModuleType, } from './ContractTypes';
2
+ import { createRuleEntitlementStruct, createRuleEntitlementV2Struct, createUserEntitlementStruct, convertRuleDataV2ToV1, } from './ConvertersEntitlements';
3
+ import { decodeRuleDataV2 } from './entitlement';
4
+ export async function createLegacyEntitlementStruct(spaceIn, users, ruleData) {
5
+ const space = spaceIn;
6
+ // figure out the addresses for each entitlement module
7
+ const entitlementModules = await space.Entitlements.read.getEntitlements();
8
+ let userEntitlementAddress;
9
+ let ruleEntitlementAddress;
10
+ for (const module of entitlementModules) {
11
+ switch (module.moduleType) {
12
+ case EntitlementModuleType.UserEntitlement:
13
+ userEntitlementAddress = module.moduleAddress;
14
+ break;
15
+ case EntitlementModuleType.RuleEntitlement:
16
+ ruleEntitlementAddress = module.moduleAddress;
17
+ break;
18
+ }
19
+ }
20
+ if (!userEntitlementAddress) {
21
+ throw new Error('User entitlement module address not found.');
22
+ }
23
+ if (!ruleEntitlementAddress) {
24
+ throw new Error('Rule entitlement module address not found.');
25
+ }
26
+ // create the entitlements array
27
+ const entitlements = [];
28
+ // create the user entitlement
29
+ if (users.length) {
30
+ const userEntitlement = createUserEntitlementStruct(userEntitlementAddress, users);
31
+ entitlements.push(userEntitlement);
32
+ }
33
+ if (ruleData.operations.length > 0) {
34
+ const ruleEntitlement = createRuleEntitlementStruct(ruleEntitlementAddress, ruleData);
35
+ entitlements.push(ruleEntitlement);
36
+ }
37
+ // return the converted entitlements
38
+ return entitlements;
39
+ }
40
+ export async function createEntitlementStruct(spaceIn, users, ruleData) {
41
+ const space = spaceIn;
42
+ // figure out the addresses for each entitlement module
43
+ const entitlementModules = await space.Entitlements.read.getEntitlements();
44
+ let userEntitlementAddress;
45
+ let ruleEntitlementAddress;
46
+ for (const module of entitlementModules) {
47
+ switch (module.moduleType) {
48
+ case EntitlementModuleType.UserEntitlement:
49
+ userEntitlementAddress = module.moduleAddress;
50
+ break;
51
+ case EntitlementModuleType.RuleEntitlementV2:
52
+ ruleEntitlementAddress = module.moduleAddress;
53
+ break;
54
+ }
55
+ }
56
+ if (!userEntitlementAddress) {
57
+ throw new Error('User entitlement module address not found.');
58
+ }
59
+ if (!ruleEntitlementAddress) {
60
+ throw new Error('Rule entitlement V2 module address not found.');
61
+ }
62
+ // create the entitlements array
63
+ const entitlements = [];
64
+ // create the user entitlement
65
+ if (users.length) {
66
+ const userEntitlement = createUserEntitlementStruct(userEntitlementAddress, users);
67
+ entitlements.push(userEntitlement);
68
+ }
69
+ if (ruleData.operations.length > 0) {
70
+ const ruleEntitlement = createRuleEntitlementV2Struct(ruleEntitlementAddress, ruleData);
71
+ entitlements.push(ruleEntitlement);
72
+ }
73
+ // return the converted entitlements
74
+ return entitlements;
75
+ }
76
+ export function toPermissions(permissions) {
77
+ return permissions.map((p) => {
78
+ const perm = p;
79
+ return perm;
80
+ });
81
+ }
82
+ export function downgradeMembershipStruct(membership) {
83
+ return {
84
+ requirements: {
85
+ ruleData: convertRuleDataV2ToV1(decodeRuleDataV2(membership.requirements.ruleData)),
86
+ everyone: membership.requirements.everyone,
87
+ users: membership.requirements.users,
88
+ syncEntitlements: membership.requirements.syncEntitlements,
89
+ },
90
+ permissions: membership.permissions,
91
+ settings: membership.settings,
92
+ };
93
+ }
94
+ //# sourceMappingURL=ConvertersRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvertersRoles.js","sourceRoot":"","sources":["../src/ConvertersRoles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ export declare function computeDelegatorsForProvider(provider: ethers.providers.BaseProvider, wallets: string[]): Promise<string[]>;
3
+ //# sourceMappingURL=DelegateRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DelegateRegistry.d.ts","sourceRoot":"","sources":["../src/DelegateRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAA;AAqEtC,wBAAsB,4BAA4B,CAC9C,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EACvC,OAAO,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBnB"}