@towns-labs/web3 2.0.1

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 (378) hide show
  1. package/README.md +3 -0
  2. package/dist/BaseContractShim.d.ts +57 -0
  3. package/dist/BaseContractShim.d.ts.map +1 -0
  4. package/dist/BaseContractShim.js +224 -0
  5. package/dist/BaseContractShim.js.map +1 -0
  6. package/dist/airdrop/IDropFacetShim.d.ts +9 -0
  7. package/dist/airdrop/IDropFacetShim.d.ts.map +1 -0
  8. package/dist/airdrop/IDropFacetShim.js +9 -0
  9. package/dist/airdrop/IDropFacetShim.js.map +1 -0
  10. package/dist/airdrop/IRiverPointsShim.d.ts +9 -0
  11. package/dist/airdrop/IRiverPointsShim.d.ts.map +1 -0
  12. package/dist/airdrop/IRiverPointsShim.js +9 -0
  13. package/dist/airdrop/IRiverPointsShim.js.map +1 -0
  14. package/dist/airdrop/RiverAirdropDapp.d.ts +16 -0
  15. package/dist/airdrop/RiverAirdropDapp.d.ts.map +1 -0
  16. package/dist/airdrop/RiverAirdropDapp.js +30 -0
  17. package/dist/airdrop/RiverAirdropDapp.js.map +1 -0
  18. package/dist/app-registry/AppRegistryDapp.d.ts +68 -0
  19. package/dist/app-registry/AppRegistryDapp.d.ts.map +1 -0
  20. package/dist/app-registry/AppRegistryDapp.js +182 -0
  21. package/dist/app-registry/AppRegistryDapp.js.map +1 -0
  22. package/dist/app-registry/IAppFactoryShim.d.ts +9 -0
  23. package/dist/app-registry/IAppFactoryShim.d.ts.map +1 -0
  24. package/dist/app-registry/IAppFactoryShim.js +9 -0
  25. package/dist/app-registry/IAppFactoryShim.js.map +1 -0
  26. package/dist/app-registry/IAppInstallerShim.d.ts +9 -0
  27. package/dist/app-registry/IAppInstallerShim.d.ts.map +1 -0
  28. package/dist/app-registry/IAppInstallerShim.js +9 -0
  29. package/dist/app-registry/IAppInstallerShim.js.map +1 -0
  30. package/dist/app-registry/IAppRegistryShim.d.ts +9 -0
  31. package/dist/app-registry/IAppRegistryShim.d.ts.map +1 -0
  32. package/dist/app-registry/IAppRegistryShim.js +9 -0
  33. package/dist/app-registry/IAppRegistryShim.js.map +1 -0
  34. package/dist/app-registry/IIdentityRegistryShim.d.ts +9 -0
  35. package/dist/app-registry/IIdentityRegistryShim.d.ts.map +1 -0
  36. package/dist/app-registry/IIdentityRegistryShim.js +9 -0
  37. package/dist/app-registry/IIdentityRegistryShim.js.map +1 -0
  38. package/dist/app-registry/IReputationRegistryShim.d.ts +9 -0
  39. package/dist/app-registry/IReputationRegistryShim.d.ts.map +1 -0
  40. package/dist/app-registry/IReputationRegistryShim.js +9 -0
  41. package/dist/app-registry/IReputationRegistryShim.js.map +1 -0
  42. package/dist/app-registry/SimpleAppShim.d.ts +9 -0
  43. package/dist/app-registry/SimpleAppShim.d.ts.map +1 -0
  44. package/dist/app-registry/SimpleAppShim.js +9 -0
  45. package/dist/app-registry/SimpleAppShim.js.map +1 -0
  46. package/dist/base-registry/BaseRegistry.d.ts +32 -0
  47. package/dist/base-registry/BaseRegistry.d.ts.map +1 -0
  48. package/dist/base-registry/BaseRegistry.js +67 -0
  49. package/dist/base-registry/BaseRegistry.js.map +1 -0
  50. package/dist/base-registry/IEntitlementCheckerShim.d.ts +9 -0
  51. package/dist/base-registry/IEntitlementCheckerShim.d.ts.map +1 -0
  52. package/dist/base-registry/IEntitlementCheckerShim.js +9 -0
  53. package/dist/base-registry/IEntitlementCheckerShim.js.map +1 -0
  54. package/dist/base-registry/INodeOperatorShim.d.ts +9 -0
  55. package/dist/base-registry/INodeOperatorShim.d.ts.map +1 -0
  56. package/dist/base-registry/INodeOperatorShim.js +9 -0
  57. package/dist/base-registry/INodeOperatorShim.js.map +1 -0
  58. package/dist/base-registry/ISpaceDelegationShim.d.ts +9 -0
  59. package/dist/base-registry/ISpaceDelegationShim.d.ts.map +1 -0
  60. package/dist/base-registry/ISpaceDelegationShim.js +9 -0
  61. package/dist/base-registry/ISpaceDelegationShim.js.map +1 -0
  62. package/dist/base-registry/RewardsDistributionShim.d.ts +9 -0
  63. package/dist/base-registry/RewardsDistributionShim.d.ts.map +1 -0
  64. package/dist/base-registry/RewardsDistributionShim.js +9 -0
  65. package/dist/base-registry/RewardsDistributionShim.js.map +1 -0
  66. package/dist/cache/EntitlementCache.d.ts +25 -0
  67. package/dist/cache/EntitlementCache.d.ts.map +1 -0
  68. package/dist/cache/EntitlementCache.js +91 -0
  69. package/dist/cache/EntitlementCache.js.map +1 -0
  70. package/dist/cache/ICacheStorage.d.ts +44 -0
  71. package/dist/cache/ICacheStorage.d.ts.map +1 -0
  72. package/dist/cache/ICacheStorage.js +2 -0
  73. package/dist/cache/ICacheStorage.js.map +1 -0
  74. package/dist/cache/KVCacheStorage.d.ts +79 -0
  75. package/dist/cache/KVCacheStorage.d.ts.map +1 -0
  76. package/dist/cache/KVCacheStorage.js +227 -0
  77. package/dist/cache/KVCacheStorage.js.map +1 -0
  78. package/dist/cache/Keyable.d.ts +20 -0
  79. package/dist/cache/Keyable.d.ts.map +1 -0
  80. package/dist/cache/Keyable.js +62 -0
  81. package/dist/cache/Keyable.js.map +1 -0
  82. package/dist/cache/SimpleCache.d.ts +30 -0
  83. package/dist/cache/SimpleCache.d.ts.map +1 -0
  84. package/dist/cache/SimpleCache.js +84 -0
  85. package/dist/cache/SimpleCache.js.map +1 -0
  86. package/dist/cache/TTLCacheStorage.d.ts +19 -0
  87. package/dist/cache/TTLCacheStorage.d.ts.map +1 -0
  88. package/dist/cache/TTLCacheStorage.js +40 -0
  89. package/dist/cache/TTLCacheStorage.js.map +1 -0
  90. package/dist/chain.d.ts +89 -0
  91. package/dist/chain.d.ts.map +1 -0
  92. package/dist/chain.js +48 -0
  93. package/dist/chain.js.map +1 -0
  94. package/dist/delegate-registry/DelegateRegistry.d.ts +3 -0
  95. package/dist/delegate-registry/DelegateRegistry.d.ts.map +1 -0
  96. package/dist/delegate-registry/DelegateRegistry.js +72 -0
  97. package/dist/delegate-registry/DelegateRegistry.js.map +1 -0
  98. package/dist/eip-712/EIP-712.d.ts +35 -0
  99. package/dist/eip-712/EIP-712.d.ts.map +1 -0
  100. package/dist/eip-712/EIP-712.js +57 -0
  101. package/dist/eip-712/EIP-712.js.map +1 -0
  102. package/dist/erc-721/IERC721AQueryableShim.d.ts +9 -0
  103. package/dist/erc-721/IERC721AQueryableShim.d.ts.map +1 -0
  104. package/dist/erc-721/IERC721AQueryableShim.js +9 -0
  105. package/dist/erc-721/IERC721AQueryableShim.js.map +1 -0
  106. package/dist/erc-721/IERC721AShim.d.ts +9 -0
  107. package/dist/erc-721/IERC721AShim.d.ts.map +1 -0
  108. package/dist/erc-721/IERC721AShim.js +9 -0
  109. package/dist/erc-721/IERC721AShim.js.map +1 -0
  110. package/dist/index.d.ts +96 -0
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +96 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/platform-requirements/PlatformRequirements.d.ts +12 -0
  115. package/dist/platform-requirements/PlatformRequirements.d.ts.map +1 -0
  116. package/dist/platform-requirements/PlatformRequirements.js +18 -0
  117. package/dist/platform-requirements/PlatformRequirements.js.map +1 -0
  118. package/dist/pricing-modules/IPricingShim.d.ts +9 -0
  119. package/dist/pricing-modules/IPricingShim.d.ts.map +1 -0
  120. package/dist/pricing-modules/IPricingShim.js +9 -0
  121. package/dist/pricing-modules/IPricingShim.js.map +1 -0
  122. package/dist/pricing-modules/PricingModules.d.ts +13 -0
  123. package/dist/pricing-modules/PricingModules.d.ts.map +1 -0
  124. package/dist/pricing-modules/PricingModules.js +23 -0
  125. package/dist/pricing-modules/PricingModules.js.map +1 -0
  126. package/dist/pricing-modules/helpers.d.ts +16 -0
  127. package/dist/pricing-modules/helpers.d.ts.map +1 -0
  128. package/dist/pricing-modules/helpers.js +35 -0
  129. package/dist/pricing-modules/helpers.js.map +1 -0
  130. package/dist/readContractRetryer.d.ts +10 -0
  131. package/dist/readContractRetryer.d.ts.map +1 -0
  132. package/dist/readContractRetryer.js +68 -0
  133. package/dist/readContractRetryer.js.map +1 -0
  134. package/dist/river-registry/INodeRegistryShim.d.ts +9 -0
  135. package/dist/river-registry/INodeRegistryShim.d.ts.map +1 -0
  136. package/dist/river-registry/INodeRegistryShim.js +9 -0
  137. package/dist/river-registry/INodeRegistryShim.js.map +1 -0
  138. package/dist/river-registry/IOperatorRegistryShim.d.ts +9 -0
  139. package/dist/river-registry/IOperatorRegistryShim.d.ts.map +1 -0
  140. package/dist/river-registry/IOperatorRegistryShim.js +9 -0
  141. package/dist/river-registry/IOperatorRegistryShim.js.map +1 -0
  142. package/dist/river-registry/IStreamRegistryShim.d.ts +9 -0
  143. package/dist/river-registry/IStreamRegistryShim.d.ts.map +1 -0
  144. package/dist/river-registry/IStreamRegistryShim.js +9 -0
  145. package/dist/river-registry/IStreamRegistryShim.js.map +1 -0
  146. package/dist/river-registry/RiverRegistry.d.ts +18 -0
  147. package/dist/river-registry/RiverRegistry.d.ts.map +1 -0
  148. package/dist/river-registry/RiverRegistry.js +42 -0
  149. package/dist/river-registry/RiverRegistry.js.map +1 -0
  150. package/dist/river-registry/RiverRegistryFactory.d.ts +5 -0
  151. package/dist/river-registry/RiverRegistryFactory.d.ts.map +1 -0
  152. package/dist/river-registry/RiverRegistryFactory.js +5 -0
  153. package/dist/river-registry/RiverRegistryFactory.js.map +1 -0
  154. package/dist/space/IAppAccountShim.d.ts +9 -0
  155. package/dist/space/IAppAccountShim.d.ts.map +1 -0
  156. package/dist/space/IAppAccountShim.js +9 -0
  157. package/dist/space/IAppAccountShim.js.map +1 -0
  158. package/dist/space/IBanningShim.d.ts +9 -0
  159. package/dist/space/IBanningShim.d.ts.map +1 -0
  160. package/dist/space/IBanningShim.js +9 -0
  161. package/dist/space/IBanningShim.js.map +1 -0
  162. package/dist/space/IChannelShim.d.ts +9 -0
  163. package/dist/space/IChannelShim.d.ts.map +1 -0
  164. package/dist/space/IChannelShim.js +9 -0
  165. package/dist/space/IChannelShim.js.map +1 -0
  166. package/dist/space/IEntitlementDataQueryableShim.d.ts +11 -0
  167. package/dist/space/IEntitlementDataQueryableShim.d.ts.map +1 -0
  168. package/dist/space/IEntitlementDataQueryableShim.js +9 -0
  169. package/dist/space/IEntitlementDataQueryableShim.js.map +1 -0
  170. package/dist/space/IEntitlementsShim.d.ts +13 -0
  171. package/dist/space/IEntitlementsShim.d.ts.map +1 -0
  172. package/dist/space/IEntitlementsShim.js +19 -0
  173. package/dist/space/IEntitlementsShim.js.map +1 -0
  174. package/dist/space/IMembershipMetadataShim.d.ts +9 -0
  175. package/dist/space/IMembershipMetadataShim.d.ts.map +1 -0
  176. package/dist/space/IMembershipMetadataShim.js +9 -0
  177. package/dist/space/IMembershipMetadataShim.js.map +1 -0
  178. package/dist/space/IMembershipShim.d.ts +33 -0
  179. package/dist/space/IMembershipShim.d.ts.map +1 -0
  180. package/dist/space/IMembershipShim.js +139 -0
  181. package/dist/space/IMembershipShim.js.map +1 -0
  182. package/dist/space/IMulticallShim.d.ts +13 -0
  183. package/dist/space/IMulticallShim.d.ts.map +1 -0
  184. package/dist/space/IMulticallShim.js +15 -0
  185. package/dist/space/IMulticallShim.js.map +1 -0
  186. package/dist/space/IReviewShim.d.ts +64 -0
  187. package/dist/space/IReviewShim.d.ts.map +1 -0
  188. package/dist/space/IReviewShim.js +102 -0
  189. package/dist/space/IReviewShim.js.map +1 -0
  190. package/dist/space/IRolesShim.d.ts +10 -0
  191. package/dist/space/IRolesShim.d.ts.map +1 -0
  192. package/dist/space/IRolesShim.js +9 -0
  193. package/dist/space/IRolesShim.js.map +1 -0
  194. package/dist/space/ITippingShim.d.ts +39 -0
  195. package/dist/space/ITippingShim.d.ts.map +1 -0
  196. package/dist/space/ITippingShim.js +76 -0
  197. package/dist/space/ITippingShim.js.map +1 -0
  198. package/dist/space/ITreasuryShim.d.ts +9 -0
  199. package/dist/space/ITreasuryShim.d.ts.map +1 -0
  200. package/dist/space/ITreasuryShim.js +9 -0
  201. package/dist/space/ITreasuryShim.js.map +1 -0
  202. package/dist/space/OwnableFacetShim.d.ts +12 -0
  203. package/dist/space/OwnableFacetShim.d.ts.map +1 -0
  204. package/dist/space/OwnableFacetShim.js +19 -0
  205. package/dist/space/OwnableFacetShim.js.map +1 -0
  206. package/dist/space/Space.d.ts +107 -0
  207. package/dist/space/Space.d.ts.map +1 -0
  208. package/dist/space/Space.js +511 -0
  209. package/dist/space/Space.js.map +1 -0
  210. package/dist/space/TokenPausableFacetShim.d.ts +9 -0
  211. package/dist/space/TokenPausableFacetShim.d.ts.map +1 -0
  212. package/dist/space/TokenPausableFacetShim.js +9 -0
  213. package/dist/space/TokenPausableFacetShim.js.map +1 -0
  214. package/dist/space/entitlements/ConvertersEntitlements.d.ts +14 -0
  215. package/dist/space/entitlements/ConvertersEntitlements.d.ts.map +1 -0
  216. package/dist/space/entitlements/ConvertersEntitlements.js +193 -0
  217. package/dist/space/entitlements/ConvertersEntitlements.js.map +1 -0
  218. package/dist/space/entitlements/RuleBuilder.d.ts +83 -0
  219. package/dist/space/entitlements/RuleBuilder.d.ts.map +1 -0
  220. package/dist/space/entitlements/RuleBuilder.js +86 -0
  221. package/dist/space/entitlements/RuleBuilder.js.map +1 -0
  222. package/dist/space/entitlements/RuleEntitlementShim.d.ts +353 -0
  223. package/dist/space/entitlements/RuleEntitlementShim.d.ts.map +1 -0
  224. package/dist/space/entitlements/RuleEntitlementShim.js +40 -0
  225. package/dist/space/entitlements/RuleEntitlementShim.js.map +1 -0
  226. package/dist/space/entitlements/RuleEntitlementV2Shim.d.ts +353 -0
  227. package/dist/space/entitlements/RuleEntitlementV2Shim.d.ts.map +1 -0
  228. package/dist/space/entitlements/RuleEntitlementV2Shim.js +40 -0
  229. package/dist/space/entitlements/RuleEntitlementV2Shim.js.map +1 -0
  230. package/dist/space/entitlements/UserEntitlementShim.d.ts +13 -0
  231. package/dist/space/entitlements/UserEntitlementShim.d.ts.map +1 -0
  232. package/dist/space/entitlements/UserEntitlementShim.js +45 -0
  233. package/dist/space/entitlements/UserEntitlementShim.js.map +1 -0
  234. package/dist/space/entitlements/XChainConfig.d.ts +14 -0
  235. package/dist/space/entitlements/XChainConfig.d.ts.map +1 -0
  236. package/dist/space/entitlements/XChainConfig.js +70 -0
  237. package/dist/space/entitlements/XChainConfig.js.map +1 -0
  238. package/dist/space/entitlements/entitlement.d.ts +147 -0
  239. package/dist/space/entitlements/entitlement.d.ts.map +1 -0
  240. package/dist/space/entitlements/entitlement.js +940 -0
  241. package/dist/space/entitlements/entitlement.js.map +1 -0
  242. package/dist/space/entitlements/validateAndParseXChainConfig.d.ts +6 -0
  243. package/dist/space/entitlements/validateAndParseXChainConfig.d.ts.map +1 -0
  244. package/dist/space/entitlements/validateAndParseXChainConfig.js +34 -0
  245. package/dist/space/entitlements/validateAndParseXChainConfig.js.map +1 -0
  246. package/dist/space-dapp/SpaceDapp.d.ts +223 -0
  247. package/dist/space-dapp/SpaceDapp.d.ts.map +1 -0
  248. package/dist/space-dapp/SpaceDapp.js +1260 -0
  249. package/dist/space-dapp/SpaceDapp.js.map +1 -0
  250. package/dist/space-dapp/SpaceDappFactory.d.ts +5 -0
  251. package/dist/space-dapp/SpaceDappFactory.d.ts.map +1 -0
  252. package/dist/space-dapp/SpaceDappFactory.js +8 -0
  253. package/dist/space-dapp/SpaceDappFactory.js.map +1 -0
  254. package/dist/space-dapp/wrapTransaction.d.ts +4 -0
  255. package/dist/space-dapp/wrapTransaction.d.ts.map +1 -0
  256. package/dist/space-dapp/wrapTransaction.js +99 -0
  257. package/dist/space-dapp/wrapTransaction.js.map +1 -0
  258. package/dist/space-owner/GuardianFacetShim.d.ts +9 -0
  259. package/dist/space-owner/GuardianFacetShim.d.ts.map +1 -0
  260. package/dist/space-owner/GuardianFacetShim.js +9 -0
  261. package/dist/space-owner/GuardianFacetShim.js.map +1 -0
  262. package/dist/space-owner/SpaceOwner.d.ts +48 -0
  263. package/dist/space-owner/SpaceOwner.d.ts.map +1 -0
  264. package/dist/space-owner/SpaceOwner.js +81 -0
  265. package/dist/space-owner/SpaceOwner.js.map +1 -0
  266. package/dist/space-registrar/ICreateSpaceShim.d.ts +11 -0
  267. package/dist/space-registrar/ICreateSpaceShim.d.ts.map +1 -0
  268. package/dist/space-registrar/ICreateSpaceShim.js +9 -0
  269. package/dist/space-registrar/ICreateSpaceShim.js.map +1 -0
  270. package/dist/space-registrar/ILegacySpaceArchitectShim.d.ts +10 -0
  271. package/dist/space-registrar/ILegacySpaceArchitectShim.d.ts.map +1 -0
  272. package/dist/space-registrar/ILegacySpaceArchitectShim.js +9 -0
  273. package/dist/space-registrar/ILegacySpaceArchitectShim.js.map +1 -0
  274. package/dist/space-registrar/ISpaceArchitectShim.d.ts +10 -0
  275. package/dist/space-registrar/ISpaceArchitectShim.d.ts.map +1 -0
  276. package/dist/space-registrar/ISpaceArchitectShim.js +39 -0
  277. package/dist/space-registrar/ISpaceArchitectShim.js.map +1 -0
  278. package/dist/space-registrar/SpaceRegistrar.d.ts +27 -0
  279. package/dist/space-registrar/SpaceRegistrar.d.ts.map +1 -0
  280. package/dist/space-registrar/SpaceRegistrar.js +58 -0
  281. package/dist/space-registrar/SpaceRegistrar.js.map +1 -0
  282. package/dist/test-helpers/LocalhostWeb3Provider.d.ts +19 -0
  283. package/dist/test-helpers/LocalhostWeb3Provider.d.ts.map +1 -0
  284. package/dist/test-helpers/LocalhostWeb3Provider.js +80 -0
  285. package/dist/test-helpers/LocalhostWeb3Provider.js.map +1 -0
  286. package/dist/test-helpers/MockCrossChainEntitlement.d.ts +6 -0
  287. package/dist/test-helpers/MockCrossChainEntitlement.d.ts.map +1 -0
  288. package/dist/test-helpers/MockCrossChainEntitlement.js +104 -0
  289. package/dist/test-helpers/MockCrossChainEntitlement.js.map +1 -0
  290. package/dist/test-helpers/MockERC1155.d.ts +6 -0
  291. package/dist/test-helpers/MockERC1155.d.ts.map +1 -0
  292. package/dist/test-helpers/MockERC1155.js +518 -0
  293. package/dist/test-helpers/MockERC1155.js.map +1 -0
  294. package/dist/test-helpers/MockERC20.d.ts +6 -0
  295. package/dist/test-helpers/MockERC20.d.ts.map +1 -0
  296. package/dist/test-helpers/MockERC20.js +574 -0
  297. package/dist/test-helpers/MockERC20.js.map +1 -0
  298. package/dist/test-helpers/MockERC721A.d.ts +1563 -0
  299. package/dist/test-helpers/MockERC721A.d.ts.map +1 -0
  300. package/dist/test-helpers/MockERC721A.js +1913 -0
  301. package/dist/test-helpers/MockERC721A.js.map +1 -0
  302. package/dist/test-helpers/MockERC721AShim.d.ts +9 -0
  303. package/dist/test-helpers/MockERC721AShim.d.ts.map +1 -0
  304. package/dist/test-helpers/MockERC721AShim.js +9 -0
  305. package/dist/test-helpers/MockERC721AShim.js.map +1 -0
  306. package/dist/test-helpers/TestCrossChainEntitlement.d.ts +14 -0
  307. package/dist/test-helpers/TestCrossChainEntitlement.d.ts.map +1 -0
  308. package/dist/test-helpers/TestCrossChainEntitlement.js +99 -0
  309. package/dist/test-helpers/TestCrossChainEntitlement.js.map +1 -0
  310. package/dist/test-helpers/TestEthBalance.d.ts +72 -0
  311. package/dist/test-helpers/TestEthBalance.d.ts.map +1 -0
  312. package/dist/test-helpers/TestEthBalance.js +94 -0
  313. package/dist/test-helpers/TestEthBalance.js.map +1 -0
  314. package/dist/test-helpers/TestGatingERC1155.d.ts +17 -0
  315. package/dist/test-helpers/TestGatingERC1155.d.ts.map +1 -0
  316. package/dist/test-helpers/TestGatingERC1155.js +100 -0
  317. package/dist/test-helpers/TestGatingERC1155.js.map +1 -0
  318. package/dist/test-helpers/TestGatingERC20.d.ts +17 -0
  319. package/dist/test-helpers/TestGatingERC20.d.ts.map +1 -0
  320. package/dist/test-helpers/TestGatingERC20.js +149 -0
  321. package/dist/test-helpers/TestGatingERC20.js.map +1 -0
  322. package/dist/test-helpers/TestGatingNFT.d.ts +17 -0
  323. package/dist/test-helpers/TestGatingNFT.d.ts.map +1 -0
  324. package/dist/test-helpers/TestGatingNFT.js +137 -0
  325. package/dist/test-helpers/TestGatingNFT.js.map +1 -0
  326. package/dist/test-helpers/TestGatingUtils.d.ts +15 -0
  327. package/dist/test-helpers/TestGatingUtils.d.ts.map +1 -0
  328. package/dist/test-helpers/TestGatingUtils.js +112 -0
  329. package/dist/test-helpers/TestGatingUtils.js.map +1 -0
  330. package/dist/test-helpers/utils.d.ts +22 -0
  331. package/dist/test-helpers/utils.d.ts.map +1 -0
  332. package/dist/test-helpers/utils.js +30 -0
  333. package/dist/test-helpers/utils.js.map +1 -0
  334. package/dist/towns-token/TownsToken.d.ts +17 -0
  335. package/dist/towns-token/TownsToken.d.ts.map +1 -0
  336. package/dist/towns-token/TownsToken.js +33 -0
  337. package/dist/towns-token/TownsToken.js.map +1 -0
  338. package/dist/types/ContractTypes.d.ts +240 -0
  339. package/dist/types/ContractTypes.d.ts.map +1 -0
  340. package/dist/types/ContractTypes.js +65 -0
  341. package/dist/types/ContractTypes.js.map +1 -0
  342. package/dist/types/error-types.d.ts +7 -0
  343. package/dist/types/error-types.d.ts.map +1 -0
  344. package/dist/types/error-types.js +13 -0
  345. package/dist/types/error-types.js.map +1 -0
  346. package/dist/types/typechain.d.ts +4 -0
  347. package/dist/types/typechain.d.ts.map +1 -0
  348. package/dist/types/typechain.js +2 -0
  349. package/dist/types/typechain.js.map +1 -0
  350. package/dist/types/types.d.ts +29 -0
  351. package/dist/types/types.d.ts.map +1 -0
  352. package/dist/types/types.js +2 -0
  353. package/dist/types/types.js.map +1 -0
  354. package/dist/utils/ContractHelpers.d.ts +14 -0
  355. package/dist/utils/ContractHelpers.d.ts.map +1 -0
  356. package/dist/utils/ContractHelpers.js +54 -0
  357. package/dist/utils/ContractHelpers.js.map +1 -0
  358. package/dist/utils/Web3Constants.d.ts +6 -0
  359. package/dist/utils/Web3Constants.d.ts.map +1 -0
  360. package/dist/utils/Web3Constants.js +7 -0
  361. package/dist/utils/Web3Constants.js.map +1 -0
  362. package/dist/utils/ut.d.ts +46 -0
  363. package/dist/utils/ut.d.ts.map +1 -0
  364. package/dist/utils/ut.js +94 -0
  365. package/dist/utils/ut.js.map +1 -0
  366. package/dist/utils/web3Env.d.ts +36 -0
  367. package/dist/utils/web3Env.d.ts.map +1 -0
  368. package/dist/utils/web3Env.js +123 -0
  369. package/dist/utils/web3Env.js.map +1 -0
  370. package/dist/wallet-link/WalletLink.d.ts +58 -0
  371. package/dist/wallet-link/WalletLink.d.ts.map +1 -0
  372. package/dist/wallet-link/WalletLink.js +226 -0
  373. package/dist/wallet-link/WalletLink.js.map +1 -0
  374. package/dist/wallet-link/WalletLinkShim.d.ts +9 -0
  375. package/dist/wallet-link/WalletLinkShim.d.ts.map +1 -0
  376. package/dist/wallet-link/WalletLinkShim.js +9 -0
  377. package/dist/wallet-link/WalletLinkShim.js.map +1 -0
  378. package/package.json +50 -0
@@ -0,0 +1,94 @@
1
+ import { ethers } from 'ethers';
2
+ export const ETH_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
3
+ export const EVERYONE_ADDRESS = '0x0000000000000000000000000000000000000001';
4
+ export const MOCK_ADDRESS = '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef';
5
+ export const MOCK_ADDRESS_2 = '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbee2';
6
+ export const MOCK_ADDRESS_3 = '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbee3';
7
+ export const MOCK_ADDRESS_4 = '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbee4';
8
+ export const MOCK_ADDRESS_5 = '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbee5';
9
+ export class NoEntitledWalletError extends Error {
10
+ constructor() {
11
+ super('No entitled wallet found');
12
+ this.name = 'NoEntitledWalletError';
13
+ // Setting the prototype is necessary for instanceof to work correctly
14
+ // It ensures that instanceof NoEntitledWalletError returns true
15
+ // This is because TypeScript's class syntax doesn't set up the prototype chain correctly for custom errors
16
+ Object.setPrototypeOf(this, NoEntitledWalletError.prototype);
17
+ }
18
+ /**
19
+ * throwIfRuntimeErrors is a helper function to process AggregateErrors emitted from Promise.any that may
20
+ * contain promises rejected with NoEntitledWalletErrors, which represent an entitlement check that evaluates
21
+ * to false, and not a true error condition. This method will filter out NoEntitledWalletErrors and throw an
22
+ * AggregateError with the remaining errors, if any exist. Otherwise, it will simply return undefined.
23
+ * @param error AggregateError
24
+ * @returns undefined
25
+ * @throws AggregateError
26
+ */
27
+ static throwIfRuntimeErrors = (error) => {
28
+ const runtimeErrors = error.errors.filter((e) => !(e instanceof NoEntitledWalletError));
29
+ if (runtimeErrors.length > 0) {
30
+ throw new AggregateError(runtimeErrors);
31
+ }
32
+ return undefined;
33
+ };
34
+ }
35
+ export function isEthersProvider(provider) {
36
+ return (typeof provider === 'object' &&
37
+ provider !== null &&
38
+ 'getNetwork' in provider &&
39
+ typeof provider.getNetwork === 'function');
40
+ }
41
+ export function isPublicClient(provider) {
42
+ return (typeof provider === 'object' &&
43
+ provider !== null &&
44
+ 'getNetwork' in provider &&
45
+ typeof provider.getNetwork !== 'function');
46
+ }
47
+ // River space stream ids are 64 characters long, and start with '10'
48
+ // incidentally this should also work if you just pass the space contract address with 0x prefix
49
+ export function SpaceAddressFromSpaceId(spaceId) {
50
+ return ethers.utils.getAddress(spaceId.slice(2, 42));
51
+ }
52
+ // River space stream ids are 64 characters long, and start with '10'
53
+ export function SpaceIdFromSpaceAddress(spaceAddress) {
54
+ return spaceAddress.toLowerCase().replace('0x', '10').padEnd(64, '0');
55
+ }
56
+ /**
57
+ * Use this function in the default case of a exhaustive switch statement to ensure that all cases are handled.
58
+ * Always throws JSON RPC error.
59
+ * @param value Switch value
60
+ * @param message Error message
61
+ * @param code JSON RPC error code
62
+ * @param data Optional data to include in the error
63
+ */
64
+ export function checkNever(value, message) {
65
+ throw new Error(message ?? `Unhandled switch value ${value}`);
66
+ }
67
+ export function parseChannelMetadataJSON(metadataStr) {
68
+ try {
69
+ const result = JSON.parse(metadataStr);
70
+ if (typeof result === 'object' &&
71
+ result !== null &&
72
+ 'name' in result &&
73
+ 'description' in result) {
74
+ return result;
75
+ }
76
+ }
77
+ catch (error) {
78
+ /* empty */
79
+ }
80
+ return {
81
+ name: metadataStr,
82
+ description: '',
83
+ };
84
+ }
85
+ export function toPermissions(permissions) {
86
+ return permissions.map((p) => {
87
+ const perm = p;
88
+ return perm;
89
+ });
90
+ }
91
+ export function stringifyChannelMetadataJSON({ name, description, }) {
92
+ return JSON.stringify({ name, description });
93
+ }
94
+ //# sourceMappingURL=ut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ut.js","sourceRoot":"","sources":["../../src/utils/ut.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { Address } from '../types/ContractTypes';
2
+ import { SafeEnvOpts } from '@towns-labs/utils';
3
+ export interface BaseChainConfig {
4
+ chainId: number;
5
+ addresses: {
6
+ spaceFactory: Address;
7
+ spaceOwner: Address;
8
+ baseRegistry: Address;
9
+ riverAirdrop: Address | undefined;
10
+ swapRouter: Address | undefined;
11
+ appRegistry: Address;
12
+ accountModules?: Address | undefined;
13
+ subscriptionModule: Address | undefined;
14
+ utils: {
15
+ mockNFT: Address | undefined;
16
+ member: Address | undefined;
17
+ towns: Address | undefined;
18
+ };
19
+ };
20
+ }
21
+ export interface RiverChainConfig {
22
+ chainId: number;
23
+ addresses: {
24
+ riverRegistry: Address;
25
+ };
26
+ }
27
+ export interface Web3Deployment {
28
+ base: BaseChainConfig;
29
+ river: RiverChainConfig;
30
+ }
31
+ export declare function web3Env(opts?: SafeEnvOpts): {
32
+ riverEnv: string | undefined;
33
+ getDeploymentIds: () => string[];
34
+ getDeployment: (inRiverEnv?: string) => Web3Deployment;
35
+ };
36
+ //# sourceMappingURL=web3Env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3Env.d.ts","sourceRoot":"","sources":["../../src/utils/web3Env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAW,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAExD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE;QACP,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,OAAO,CAAA;QACnB,YAAY,EAAE,OAAO,CAAA;QACrB,YAAY,EAAE,OAAO,GAAG,SAAS,CAAA;QACjC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAA;QAC/B,WAAW,EAAE,OAAO,CAAA;QACpB,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpC,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAA;QACvC,KAAK,EAAE;YACH,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;YAC5B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;YAC3B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;SAC7B,CAAA;KACJ,CAAA;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE;QACP,aAAa,EAAE,OAAO,CAAA;KACzB,CAAA;CACJ;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,gBAAgB,CAAA;CAC1B;AAsDD,wBAAgB,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW;;4BAGT,MAAM,EAAE;iCAOD,MAAM,KAAG,cAAc;EAqC9D"}
@@ -0,0 +1,123 @@
1
+ import DeploymentsJson from '@towns-labs/generated/config/deployments.json' with { type: 'json' };
2
+ import { safeEnv } from '@towns-labs/utils';
3
+ // we have multiple keys for the same value for backwards compatibility, priority is left to right
4
+ const envKey = {
5
+ RIVER_ENV: ['RIVER_ENV'],
6
+ BASE_CHAIN_ID: ['BASE_CHAIN_ID'],
7
+ BASE_ADDRESSES_ACCOUNT_MODULES: ['BASE_ADDRESSES_ACCOUNT_MODULES', 'ACCOUNT_MODULES_ADDRESS'],
8
+ BASE_ADDRESSES_APP_REGISTRY: ['BASE_ADDRESSES_APP_REGISTRY', 'BASE_REGISTRY_ADDRESS'],
9
+ BASE_ADDRESSES_SPACE_FACTORY: ['BASE_ADDRESSES_SPACE_FACTORY', 'SPACE_FACTORY_ADDRESS'],
10
+ BASE_ADDRESSES_SPACE_OWNER: ['BASE_ADDRESSES_SPACE_OWNER', 'SPACE_OWNER_ADDRESS'],
11
+ BASE_ADDRESSES_RIVER_AIRDROP: ['BASE_ADDRESSES_RIVER_AIRDROP', 'RIVER_AIRDROP_ADDRESS'],
12
+ BASE_ADDRESSES_SWAP_ROUTER: ['BASE_ADDRESSES_SWAP_ROUTER', 'SWAP_ROUTER_ADDRESS'],
13
+ BASE_ADDRESSES_SUBSCRIPTION_MODULE: ['BASE_ADDRESSES_SUBSCRIPTION_MODULE'],
14
+ BASE_ADDRESSES_UTILS_MOCK_NFT: ['BASE_ADDRESSES_UTILS_MOCK_NFT', 'MOCK_NFT_ADDRESS'],
15
+ BASE_ADDRESSES_UTILS_MEMBER: ['BASE_ADDRESSES_UTILS_MEMBER', 'MEMBER_ADDRESS'],
16
+ BASE_ADDRESSES_UTILS_TOWNS: ['BASE_ADDRESSES_UTILS_TOWNS', 'TOWNS_ADDRESS'],
17
+ RIVER_CHAIN_ID: ['RIVER_CHAIN_ID'],
18
+ RIVER_ADDRESSES_RIVER_REGISTRY: ['RIVER_ADDRESSES_RIVER_REGISTRY', 'RIVER_REGISTRY_ADDRESS'],
19
+ };
20
+ const LOCAL_DEV_ADDRESS = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
21
+ const LOCAL_ENV_ALIASES = new Set(['local_dev', 'localhost']);
22
+ const LOCAL_DEV_DEPLOYMENT = {
23
+ base: {
24
+ chainId: 31337,
25
+ addresses: {
26
+ spaceFactory: LOCAL_DEV_ADDRESS,
27
+ spaceOwner: LOCAL_DEV_ADDRESS,
28
+ baseRegistry: LOCAL_DEV_ADDRESS,
29
+ riverAirdrop: LOCAL_DEV_ADDRESS,
30
+ swapRouter: LOCAL_DEV_ADDRESS,
31
+ appRegistry: LOCAL_DEV_ADDRESS,
32
+ accountModules: LOCAL_DEV_ADDRESS,
33
+ subscriptionModule: LOCAL_DEV_ADDRESS,
34
+ utils: {
35
+ mockNFT: LOCAL_DEV_ADDRESS,
36
+ member: LOCAL_DEV_ADDRESS,
37
+ towns: LOCAL_DEV_ADDRESS,
38
+ },
39
+ },
40
+ },
41
+ river: {
42
+ chainId: 31338,
43
+ addresses: {
44
+ riverRegistry: LOCAL_DEV_ADDRESS,
45
+ },
46
+ },
47
+ };
48
+ const normalizeRiverEnv = (value) => {
49
+ if (!value)
50
+ return value;
51
+ return LOCAL_ENV_ALIASES.has(value) ? 'local_dev' : value;
52
+ };
53
+ export function web3Env(opts) {
54
+ const globalRiverEnv = normalizeRiverEnv(safeEnv(envKey.RIVER_ENV, opts));
55
+ const getDeploymentIds = () => {
56
+ const staticDeploymentIds = Object.keys(DeploymentsJson);
57
+ return globalRiverEnv && !staticDeploymentIds.includes(globalRiverEnv)
58
+ ? [globalRiverEnv, ...staticDeploymentIds]
59
+ : staticDeploymentIds;
60
+ };
61
+ const getDeployment = (inRiverEnv) => {
62
+ const riverEnv = normalizeRiverEnv(inRiverEnv ?? globalRiverEnv);
63
+ if (!riverEnv) {
64
+ throw new Error('RIVER_ENV is not defined');
65
+ }
66
+ const deployments = DeploymentsJson;
67
+ if (deployments[riverEnv]) {
68
+ return deployments[riverEnv];
69
+ }
70
+ if (riverEnv === 'local_dev') {
71
+ return LOCAL_DEV_DEPLOYMENT;
72
+ }
73
+ if (riverEnv !== globalRiverEnv) {
74
+ throw new Error(`Deployment ${riverEnv} not found in deployments.json keys: ${Object.keys(deployments).join(', ')}`);
75
+ }
76
+ const optionalEnv = (keys) => {
77
+ return safeEnv(keys, opts);
78
+ };
79
+ const requiredEnv = (keys) => {
80
+ const value = safeEnv(keys, opts);
81
+ if (!value) {
82
+ throw new Error(`One of ${keys.join(', ')}, ${keys.map((key) => `VITE_${key}`).join(', ')} is required to be set in process.env`);
83
+ }
84
+ return value;
85
+ };
86
+ return makeWeb3Deployment(optionalEnv, requiredEnv);
87
+ };
88
+ return {
89
+ riverEnv: globalRiverEnv,
90
+ getDeploymentIds,
91
+ getDeployment,
92
+ };
93
+ }
94
+ function makeWeb3Deployment(optionalEnv, requiredEnv) {
95
+ // check for environment variable overrides, if not use the deployment from the json file
96
+ return {
97
+ base: {
98
+ chainId: parseInt(requiredEnv(envKey.BASE_CHAIN_ID)),
99
+ addresses: {
100
+ accountModules: optionalEnv(envKey.BASE_ADDRESSES_ACCOUNT_MODULES),
101
+ baseRegistry: requiredEnv(envKey.BASE_ADDRESSES_APP_REGISTRY),
102
+ spaceFactory: requiredEnv(envKey.BASE_ADDRESSES_SPACE_FACTORY),
103
+ spaceOwner: requiredEnv(envKey.BASE_ADDRESSES_SPACE_OWNER),
104
+ riverAirdrop: requiredEnv(envKey.BASE_ADDRESSES_RIVER_AIRDROP),
105
+ swapRouter: optionalEnv(envKey.BASE_ADDRESSES_SWAP_ROUTER),
106
+ appRegistry: requiredEnv(envKey.BASE_ADDRESSES_APP_REGISTRY),
107
+ subscriptionModule: requiredEnv(envKey.BASE_ADDRESSES_SUBSCRIPTION_MODULE),
108
+ utils: {
109
+ mockNFT: optionalEnv(envKey.BASE_ADDRESSES_UTILS_MOCK_NFT),
110
+ member: optionalEnv(envKey.BASE_ADDRESSES_UTILS_MEMBER),
111
+ towns: optionalEnv(envKey.BASE_ADDRESSES_UTILS_TOWNS),
112
+ },
113
+ },
114
+ },
115
+ river: {
116
+ chainId: parseInt(requiredEnv(envKey.RIVER_CHAIN_ID)),
117
+ addresses: {
118
+ riverRegistry: requiredEnv(envKey.RIVER_ADDRESSES_RIVER_REGISTRY),
119
+ },
120
+ },
121
+ };
122
+ }
123
+ //# sourceMappingURL=web3Env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3Env.js","sourceRoot":"","sources":["../../src/utils/web3Env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { BigNumber, ContractTransaction, ethers } from 'ethers';
2
+ import { Address } from '../types/ContractTypes';
3
+ import { BaseChainConfig } from '../utils/web3Env';
4
+ import { IWalletLinkShim } from './WalletLinkShim';
5
+ import { OverrideExecution } from '../BaseContractShim';
6
+ export declare const INVALID_ADDRESS = "0x0000000000000000000000000000000000000000";
7
+ export declare class WalletLink {
8
+ private readonly LINKED_WALLET_MESSAGE;
9
+ readonly walletLinkShim: IWalletLinkShim;
10
+ private readonly eip712Domain;
11
+ address: Address;
12
+ constructor(config: BaseChainConfig, provider: ethers.providers.Provider);
13
+ isLinked(walletAddress: string): Promise<boolean>;
14
+ private assertNotLinked;
15
+ private assertLinked;
16
+ getDefaultWallet(rootKeyAddress: string): Promise<string>;
17
+ setDefaultWallet<T = ContractTransaction>(args: {
18
+ signer: ethers.Signer;
19
+ walletAddress: Address;
20
+ overrideExecution?: OverrideExecution<T>;
21
+ }): Promise<T extends undefined ? ContractTransaction : T>;
22
+ private generateRootKeySignatureForWallet;
23
+ private generateWalletSignatureForRootKey;
24
+ private generateRootKeySignatureForCallerData;
25
+ private generateLinkCallerData;
26
+ private generateLinkWalletData;
27
+ /**
28
+ * Link a wallet to the root key with the wallet as the caller
29
+ * @param rootKey
30
+ * @param wallet
31
+ */
32
+ linkCallerToRootKey(rootKey: ethers.Signer, wallet: ethers.Signer, nonceIn?: BigNumber): Promise<ContractTransaction>;
33
+ /**
34
+ * Link a wallet to the root key with the root key as the caller
35
+ *
36
+ * @param wallet
37
+ * @param rootKey
38
+ * @returns
39
+ */
40
+ linkWalletToRootKey(rootKey: ethers.Signer, wallet: ethers.Signer, nonceIn?: BigNumber): Promise<ContractTransaction>;
41
+ encodeLinkCallerToRootKey(rootKey: ethers.Signer, wallet: Address, nonceIn?: BigNumber): Promise<string>;
42
+ encodeLinkWalletToRootKey(rootKey: ethers.Signer, wallet: ethers.Signer, nonceIn?: BigNumber): Promise<string>;
43
+ parseError(error: any): Error;
44
+ getLinkedWallets(rootKey: string): Promise<string[]>;
45
+ getLinkedWalletsWithDelegations(rootKey: string): Promise<string[]>;
46
+ getRootKeyForWallet(wallet: string): Promise<string>;
47
+ checkIfLinked(rootKey: Address, wallet: Address): Promise<boolean>;
48
+ private generateRemoveLinkData;
49
+ removeLink(rootKey: ethers.Signer, walletAddress: string): Promise<ContractTransaction>;
50
+ /**
51
+ * Remove link from this caller to a root key
52
+ */
53
+ removeCallerLink(caller: ethers.Signer): Promise<ContractTransaction>;
54
+ encodeRemoveLink(rootKey: ethers.Signer, walletAddress: string): Promise<string>;
55
+ private signTypedData;
56
+ getInterface(): import("@towns-labs/generated/dev/typings/WalletLink").WalletLinkInterface;
57
+ }
58
+ //# sourceMappingURL=WalletLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletLink.d.ts","sourceRoot":"","sources":["../../src/wallet-link/WalletLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,eAAO,MAAM,eAAe,+CAA+C,CAAA;AAE3E,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA8B;IACpE,SAAgB,cAAc,EAAE,eAAe,CAAA;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAC9C,OAAO,EAAE,OAAO,CAAA;gBAEX,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;IAW3D,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAMhD,eAAe;YAUf,YAAY;IAOb,gBAAgB,CAAC,cAAc,EAAE,MAAM;IAIvC,gBAAgB,CAAC,CAAC,GAAG,mBAAmB,EAAE,IAAI,EAAE;QACzD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAC3C;IAUD,OAAO,CAAC,iCAAiC;IAkBzC,OAAO,CAAC,iCAAiC;IAkBzC,OAAO,CAAC,qCAAqC;YAkB/B,sBAAsB;YA0BtB,sBAAsB;IAyCpC;;;;OAIG;IACU,mBAAmB,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,OAAO,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,mBAAmB,CAAC;IAY/B;;;;;;OAMG;IACU,mBAAmB,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,OAAO,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,mBAAmB,CAAC;IAalB,yBAAyB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,CAAC;IAcL,yBAAyB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,OAAO,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,CAAC;IAeX,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;IAIvB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIpD,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAIjE,sBAAsB;IAcvB,UAAU,CACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EACtB,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAiB/B;;OAEG;IACU,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM;IAItC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM;YAiB7D,aAAa;IAcpB,YAAY;CAGtB"}
@@ -0,0 +1,226 @@
1
+ import { WalletAlreadyLinkedError, WalletNotLinkedError } from '../types/error-types';
2
+ import { IWalletLinkShim } from './WalletLinkShim';
3
+ import { createEip712LinkedWalletdData } from '../eip-712/EIP-712';
4
+ export const INVALID_ADDRESS = '0x0000000000000000000000000000000000000000';
5
+ export class WalletLink {
6
+ LINKED_WALLET_MESSAGE = 'Link your external wallet';
7
+ walletLinkShim;
8
+ eip712Domain;
9
+ address;
10
+ constructor(config, provider) {
11
+ this.walletLinkShim = new IWalletLinkShim(config.addresses.spaceFactory, provider);
12
+ this.address = config.addresses.spaceFactory;
13
+ this.eip712Domain = {
14
+ name: 'SpaceFactory',
15
+ version: '1',
16
+ chainId: config.chainId,
17
+ verifyingContract: config.addresses.spaceFactory,
18
+ };
19
+ }
20
+ async isLinked(walletAddress) {
21
+ const rootKeyAddress = await this.walletLinkShim.read.getRootKeyForWallet(walletAddress);
22
+ return rootKeyAddress !== INVALID_ADDRESS;
23
+ }
24
+ async assertNotLinked(wallet) {
25
+ const walletAddress = typeof wallet === 'string' ? wallet : await wallet.getAddress();
26
+ if (await this.isLinked(walletAddress)) {
27
+ throw new WalletAlreadyLinkedError();
28
+ }
29
+ return { walletAddress };
30
+ }
31
+ async assertLinked(walletAddress) {
32
+ if (!(await this.isLinked(walletAddress))) {
33
+ throw new WalletNotLinkedError();
34
+ }
35
+ return { walletAddress };
36
+ }
37
+ async getDefaultWallet(rootKeyAddress) {
38
+ return this.walletLinkShim.read.getDefaultWallet(rootKeyAddress);
39
+ }
40
+ async setDefaultWallet(args) {
41
+ const { signer, walletAddress, overrideExecution } = args;
42
+ return this.walletLinkShim.executeCall({
43
+ signer,
44
+ functionName: 'setDefaultWallet',
45
+ args: [walletAddress],
46
+ overrideExecution,
47
+ });
48
+ }
49
+ generateRootKeySignatureForWallet({ rootKey, walletAddress, rootKeyNonce, }) {
50
+ const { domain, types, value } = createEip712LinkedWalletdData({
51
+ domain: this.eip712Domain,
52
+ message: this.LINKED_WALLET_MESSAGE,
53
+ nonce: rootKeyNonce,
54
+ userID: walletAddress,
55
+ });
56
+ return this.signTypedData(rootKey, domain, types, value);
57
+ }
58
+ generateWalletSignatureForRootKey({ wallet, rootKeyAddress, nonce: rootKeyNonce, }) {
59
+ const { domain, types, value } = createEip712LinkedWalletdData({
60
+ domain: this.eip712Domain,
61
+ message: this.LINKED_WALLET_MESSAGE,
62
+ nonce: rootKeyNonce,
63
+ userID: rootKeyAddress,
64
+ });
65
+ return this.signTypedData(wallet, domain, types, value);
66
+ }
67
+ generateRootKeySignatureForCallerData({ rootKey, walletAddress, rootKeyNonce, }) {
68
+ const { domain, types, value } = createEip712LinkedWalletdData({
69
+ domain: this.eip712Domain,
70
+ message: this.LINKED_WALLET_MESSAGE,
71
+ nonce: rootKeyNonce,
72
+ userID: walletAddress,
73
+ });
74
+ return this.signTypedData(rootKey, domain, types, value);
75
+ }
76
+ async generateLinkCallerData(message, rootKey, wallet, nonceIn) {
77
+ const { walletAddress } = await this.assertNotLinked(wallet);
78
+ const rootKeyAddress = await rootKey.getAddress();
79
+ const nonce = nonceIn ?? (await this.walletLinkShim.read.getLatestNonceForRootKey(rootKeyAddress));
80
+ const rootKeySignature = await this.generateRootKeySignatureForCallerData({
81
+ rootKey,
82
+ walletAddress: walletAddress,
83
+ rootKeyNonce: nonce,
84
+ });
85
+ const rootKeyData = {
86
+ addr: rootKeyAddress,
87
+ signature: rootKeySignature,
88
+ message,
89
+ };
90
+ return { rootKeyData, nonce };
91
+ }
92
+ async generateLinkWalletData(message, rootKey, wallet, nonceIn) {
93
+ const { walletAddress } = await this.assertNotLinked(wallet);
94
+ const rootKeyAddress = await rootKey.getAddress();
95
+ const nonce = nonceIn ?? (await this.walletLinkShim.read.getLatestNonceForRootKey(rootKeyAddress));
96
+ // sign root key with new wallet address
97
+ const rootKeySignature = await this.generateRootKeySignatureForWallet({
98
+ rootKey,
99
+ walletAddress: walletAddress,
100
+ rootKeyNonce: nonce,
101
+ });
102
+ // sign new wallet with root key address
103
+ const walletSignature = await this.generateWalletSignatureForRootKey({
104
+ wallet,
105
+ rootKeyAddress: rootKeyAddress,
106
+ nonce,
107
+ });
108
+ const rootKeyData = {
109
+ addr: rootKeyAddress,
110
+ signature: rootKeySignature,
111
+ message,
112
+ };
113
+ const walletData = {
114
+ addr: walletAddress,
115
+ signature: walletSignature,
116
+ message,
117
+ };
118
+ return { rootKeyData, walletData, nonce };
119
+ }
120
+ /**
121
+ * Link a wallet to the root key with the wallet as the caller
122
+ * @param rootKey
123
+ * @param wallet
124
+ */
125
+ async linkCallerToRootKey(rootKey, wallet, nonceIn) {
126
+ const { rootKeyData, nonce } = await this.generateLinkCallerData(this.LINKED_WALLET_MESSAGE, rootKey, wallet, nonceIn);
127
+ // msg.sender = new wallet
128
+ return this.walletLinkShim.write(wallet).linkCallerToRootKey(rootKeyData, nonce);
129
+ }
130
+ /**
131
+ * Link a wallet to the root key with the root key as the caller
132
+ *
133
+ * @param wallet
134
+ * @param rootKey
135
+ * @returns
136
+ */
137
+ async linkWalletToRootKey(rootKey, wallet, nonceIn) {
138
+ const { walletData, rootKeyData, nonce } = await this.generateLinkWalletData(this.LINKED_WALLET_MESSAGE, rootKey, wallet, nonceIn);
139
+ // msg.sender = root key
140
+ return this.walletLinkShim
141
+ .write(rootKey)
142
+ .linkWalletToRootKey(walletData, rootKeyData, nonce);
143
+ }
144
+ async encodeLinkCallerToRootKey(rootKey, wallet, nonceIn) {
145
+ const { rootKeyData, nonce } = await this.generateLinkCallerData(this.LINKED_WALLET_MESSAGE, rootKey, wallet, nonceIn);
146
+ return this.walletLinkShim.interface.encodeFunctionData('linkCallerToRootKey', [
147
+ rootKeyData,
148
+ nonce,
149
+ ]);
150
+ }
151
+ async encodeLinkWalletToRootKey(rootKey, wallet, nonceIn) {
152
+ const { walletData, rootKeyData, nonce } = await this.generateLinkWalletData(this.LINKED_WALLET_MESSAGE, rootKey, wallet, nonceIn);
153
+ return this.walletLinkShim.interface.encodeFunctionData('linkWalletToRootKey', [
154
+ walletData,
155
+ rootKeyData,
156
+ nonce,
157
+ ]);
158
+ }
159
+ parseError(error) {
160
+ return this.walletLinkShim.parseError(error);
161
+ }
162
+ async getLinkedWallets(rootKey) {
163
+ return this.walletLinkShim.read.getWalletsByRootKey(rootKey);
164
+ }
165
+ async getLinkedWalletsWithDelegations(rootKey) {
166
+ return this.walletLinkShim.read.getWalletsByRootKey(rootKey);
167
+ }
168
+ getRootKeyForWallet(wallet) {
169
+ return this.walletLinkShim.read.getRootKeyForWallet(wallet);
170
+ }
171
+ async checkIfLinked(rootKey, wallet) {
172
+ return this.walletLinkShim.read.checkIfLinked(rootKey, wallet);
173
+ }
174
+ async generateRemoveLinkData(rootKey, walletAddress) {
175
+ await this.assertLinked(walletAddress);
176
+ const rootKeyAddress = await rootKey.getAddress();
177
+ const nonce = await this.walletLinkShim.read.getLatestNonceForRootKey(rootKeyAddress);
178
+ const { domain, types, value } = createEip712LinkedWalletdData({
179
+ domain: this.eip712Domain,
180
+ message: this.LINKED_WALLET_MESSAGE,
181
+ nonce,
182
+ userID: walletAddress,
183
+ });
184
+ const rootKeySignature = await this.signTypedData(rootKey, domain, types, value);
185
+ return { rootKeyAddress, rootKeySignature, nonce };
186
+ }
187
+ async removeLink(rootKey, walletAddress) {
188
+ const { rootKeyAddress, rootKeySignature, nonce } = await this.generateRemoveLinkData(rootKey, walletAddress);
189
+ return await this.walletLinkShim.write(rootKey).removeLink(walletAddress, {
190
+ addr: rootKeyAddress,
191
+ signature: rootKeySignature,
192
+ message: this.LINKED_WALLET_MESSAGE,
193
+ }, nonce);
194
+ }
195
+ /**
196
+ * Remove link from this caller to a root key
197
+ */
198
+ async removeCallerLink(caller) {
199
+ return this.walletLinkShim.write(caller).removeCallerLink();
200
+ }
201
+ async encodeRemoveLink(rootKey, walletAddress) {
202
+ const { rootKeyAddress, rootKeySignature, nonce } = await this.generateRemoveLinkData(rootKey, walletAddress);
203
+ return this.walletLinkShim.interface.encodeFunctionData('removeLink', [
204
+ walletAddress,
205
+ {
206
+ addr: rootKeyAddress,
207
+ signature: rootKeySignature,
208
+ message: this.LINKED_WALLET_MESSAGE,
209
+ },
210
+ nonce,
211
+ ]);
212
+ }
213
+ async signTypedData(signer, domain, types, value) {
214
+ if ('_signTypedData' in signer && typeof signer._signTypedData === 'function') {
215
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
216
+ return (await signer._signTypedData(domain, types, value));
217
+ }
218
+ else {
219
+ throw new Error('wallet does not have the function to sign typed data');
220
+ }
221
+ }
222
+ getInterface() {
223
+ return this.walletLinkShim.interface;
224
+ }
225
+ }
226
+ //# sourceMappingURL=WalletLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletLink.js","sourceRoot":"","sources":["../../src/wallet-link/WalletLink.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ethers } from 'ethers';
2
+ import { BaseContractShim } from '../BaseContractShim';
3
+ import { WalletLink__factory } from '@towns-labs/generated/dev/typings/factories/WalletLink__factory';
4
+ declare const connect: typeof WalletLink__factory.connect;
5
+ export declare class IWalletLinkShim extends BaseContractShim<typeof connect> {
6
+ constructor(address: string, provider: ethers.providers.Provider);
7
+ }
8
+ export {};
9
+ //# sourceMappingURL=WalletLinkShim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletLinkShim.d.ts","sourceRoot":"","sources":["../../src/wallet-link/WalletLinkShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iEAAiE,CAAA;AAErG,QAAA,MAAa,OAAO,oCAAwB,CAAA;AAE5C,qBAAa,eAAgB,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;gBACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;CAGnE"}
@@ -0,0 +1,9 @@
1
+ import { BaseContractShim } from '../BaseContractShim';
2
+ import { WalletLink__factory } from '@towns-labs/generated/dev/typings/factories/WalletLink__factory';
3
+ const { abi, connect } = WalletLink__factory;
4
+ export class IWalletLinkShim extends BaseContractShim {
5
+ constructor(address, provider) {
6
+ super(address, provider, connect, abi);
7
+ }
8
+ }
9
+ //# sourceMappingURL=WalletLinkShim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletLinkShim.js","sourceRoot":"","sources":["../../src/wallet-link/WalletLinkShim.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iEAAiE,CAAA;AAErG,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAA;AAE5C,MAAM,OAAO,eAAgB,SAAQ,gBAAgC;IACjE,YAAY,OAAe,EAAE,QAAmC;QAC5D,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;CACJ"}