@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8e4a894-109

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 (566) hide show
  1. package/README.md +178 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +334 -1853
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +616 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +480 -2122
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1569 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +979 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +656 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2837 -0
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +190 -0
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +76 -158
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +120 -249
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  45. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  46. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  47. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  48. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  49. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  50. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  51. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  53. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  54. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  55. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  56. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  57. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  58. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  59. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  61. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  63. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  64. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +371 -310
  65. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
  67. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
  69. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  70. package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
  71. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  73. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
  75. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  77. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  79. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
  81. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
  83. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +493 -0
  85. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +743 -0
  87. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +651 -0
  89. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  90. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +291 -265
  91. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +861 -0
  93. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  94. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +227 -174
  95. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  97. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  99. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  101. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  103. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  104. package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
  105. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  107. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +250 -65
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +373 -183
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +233 -210
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +503 -214
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +657 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  128. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +485 -0
  129. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  130. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  131. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  132. package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
  133. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  134. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +631 -0
  135. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  137. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  138. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +636 -0
  139. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  140. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +64 -56
  141. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  142. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  143. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +59 -8
  145. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  146. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  147. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +141 -158
  149. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  150. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  151. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  152. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
  153. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  154. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  155. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  156. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +344 -85
  157. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  158. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +191 -12
  159. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  160. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  161. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +231 -199
  163. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  164. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +114 -0
  165. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  166. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  167. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  168. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  169. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  170. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  171. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
  173. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  174. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  175. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  176. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  177. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  178. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  179. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  180. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  181. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  182. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  183. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  184. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  185. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  186. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  187. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  188. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  189. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  190. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
  191. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  192. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  193. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  194. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  195. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  196. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  197. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  198. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  199. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  200. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  201. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  202. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  203. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  204. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
  205. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  206. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  207. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  208. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  209. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  210. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  211. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  212. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  213. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  214. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  215. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  216. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  217. package/contracts/distribution/Distribution.sol +285 -0
  218. package/contracts/distribution/DistributionService.sol +348 -0
  219. package/contracts/distribution/DistributionServiceManager.sol +51 -0
  220. package/contracts/distribution/IDistributionComponent.sol +71 -0
  221. package/contracts/distribution/IDistributionService.sol +87 -0
  222. package/contracts/instance/BundleManager.sol +126 -0
  223. package/contracts/instance/IInstance.sol +67 -44
  224. package/contracts/instance/IInstanceService.sol +73 -0
  225. package/contracts/instance/Instance.sol +213 -69
  226. package/contracts/instance/InstanceAccessManager.sol +541 -0
  227. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  228. package/contracts/instance/InstanceReader.sol +368 -0
  229. package/contracts/instance/InstanceService.sol +308 -0
  230. package/contracts/instance/InstanceServiceManager.sol +54 -0
  231. package/contracts/instance/InstanceStore.sol +211 -0
  232. package/contracts/instance/base/Cloneable.sol +51 -0
  233. package/contracts/instance/base/IKeyValueStore.sol +22 -19
  234. package/contracts/instance/base/ILifecycle.sol +4 -4
  235. package/contracts/instance/base/KeyValueStore.sol +61 -54
  236. package/contracts/instance/base/Lifecycle.sol +28 -8
  237. package/contracts/instance/base/ObjectManager.sol +82 -0
  238. package/contracts/instance/module/IAccess.sol +54 -0
  239. package/contracts/instance/module/IBundle.sol +23 -0
  240. package/contracts/instance/module/IComponents.sol +41 -0
  241. package/contracts/instance/module/IDistribution.sol +42 -0
  242. package/contracts/instance/module/IPolicy.sol +77 -0
  243. package/contracts/instance/module/IRisk.sol +11 -0
  244. package/contracts/instance/module/ISetup.sol +33 -0
  245. package/contracts/instance/module/ITreasury.sol +23 -0
  246. package/contracts/pool/BundleService.sol +382 -0
  247. package/contracts/pool/BundleServiceManager.sol +51 -0
  248. package/contracts/pool/IBundleService.sol +118 -0
  249. package/contracts/pool/IPoolComponent.sol +114 -0
  250. package/contracts/pool/IPoolService.sol +114 -0
  251. package/contracts/pool/Pool.sol +302 -0
  252. package/contracts/pool/PoolService.sol +403 -0
  253. package/contracts/pool/PoolServiceManager.sol +51 -0
  254. package/contracts/product/ApplicationService.sol +186 -0
  255. package/contracts/product/ApplicationServiceManager.sol +35 -0
  256. package/contracts/product/ClaimService.sol +437 -0
  257. package/contracts/product/ClaimServiceManager.sol +35 -0
  258. package/contracts/product/IApplicationService.sol +62 -0
  259. package/contracts/product/IClaimService.sol +90 -0
  260. package/contracts/product/IPolicyService.sol +80 -0
  261. package/contracts/product/IPricingService.sol +37 -0
  262. package/contracts/product/IProductComponent.sol +41 -0
  263. package/contracts/product/IProductService.sol +40 -0
  264. package/contracts/product/PolicyService.sol +376 -0
  265. package/contracts/product/PolicyServiceManager.sol +54 -0
  266. package/contracts/product/PricingService.sol +275 -0
  267. package/contracts/product/PricingServiceManager.sol +51 -0
  268. package/contracts/product/Product.sol +375 -0
  269. package/contracts/product/ProductService.sol +210 -0
  270. package/contracts/product/ProductServiceManager.sol +54 -0
  271. package/contracts/registry/ChainNft.sol +49 -26
  272. package/contracts/registry/IRegistry.sol +60 -34
  273. package/contracts/registry/IRegistryService.sol +53 -16
  274. package/contracts/registry/ITransferInterceptor.sol +1 -0
  275. package/contracts/registry/Registry.sol +286 -324
  276. package/contracts/registry/RegistryAccessManager.sol +216 -0
  277. package/contracts/registry/RegistryService.sol +170 -268
  278. package/contracts/registry/RegistryServiceManager.sol +60 -0
  279. package/contracts/registry/ReleaseManager.sol +324 -0
  280. package/contracts/registry/TokenRegistry.sol +116 -0
  281. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  282. package/contracts/shared/Component.sol +271 -0
  283. package/contracts/shared/ComponentService.sol +150 -0
  284. package/contracts/shared/ERC165.sol +15 -9
  285. package/contracts/shared/IComponent.sol +90 -0
  286. package/contracts/shared/INftOwnable.sol +23 -0
  287. package/contracts/shared/IPolicyHolder.sol +40 -0
  288. package/contracts/shared/IRegisterable.sol +5 -12
  289. package/contracts/shared/IRegistryLinked.sol +11 -0
  290. package/contracts/shared/IService.sol +18 -0
  291. package/contracts/shared/IVersionable.sol +5 -48
  292. package/contracts/shared/NftOwnable.sol +118 -0
  293. package/contracts/shared/PolicyHolder.sol +94 -0
  294. package/contracts/shared/ProxyManager.sol +112 -58
  295. package/contracts/shared/Registerable.sol +33 -75
  296. package/contracts/shared/RegistryLinked.sol +43 -0
  297. package/contracts/shared/Service.sol +72 -0
  298. package/contracts/shared/TokenHandler.sol +35 -0
  299. package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
  300. package/contracts/shared/Versionable.sol +5 -93
  301. package/contracts/staking/IStakingService.sol +102 -0
  302. package/contracts/staking/StakeingServiceManager.sol +37 -0
  303. package/contracts/staking/StakingService.sol +166 -0
  304. package/contracts/type/Amount.sol +109 -0
  305. package/contracts/{types → type}/Blocknumber.sol +1 -0
  306. package/contracts/type/ClaimId.sol +75 -0
  307. package/contracts/type/DistributorType.sol +55 -0
  308. package/contracts/{types → type}/Fee.sol +19 -10
  309. package/contracts/{types → type}/Key32.sol +8 -3
  310. package/contracts/{types → type}/NftId.sol +8 -0
  311. package/contracts/type/NftIdSet.sol +62 -0
  312. package/contracts/{types → type}/ObjectType.sol +45 -14
  313. package/contracts/type/PayoutId.sol +82 -0
  314. package/contracts/type/Referral.sol +89 -0
  315. package/contracts/type/RoleId.sol +97 -0
  316. package/contracts/type/Seconds.sol +54 -0
  317. package/contracts/{types → type}/StateId.sol +12 -3
  318. package/contracts/{types → type}/Timestamp.sol +22 -13
  319. package/contracts/{types → type}/UFixed.sol +129 -12
  320. package/contracts/{types → type}/Version.sol +5 -1
  321. package/package.json +6 -5
  322. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  323. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  324. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  325. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  326. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  327. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  328. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  329. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  330. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  331. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  332. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  333. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  334. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  335. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  336. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  337. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  338. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  339. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  340. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  341. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  342. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  343. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  344. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  345. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  346. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  347. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  348. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  349. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  350. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  351. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  352. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  353. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  354. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  355. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  356. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  357. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  358. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  359. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  360. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  361. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  362. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  364. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  366. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  367. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  368. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  369. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  370. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  372. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  373. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  374. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  375. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -393
  376. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  377. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  378. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  379. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  380. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  381. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  382. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -380
  383. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  384. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  385. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  386. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  387. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  388. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  389. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  390. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  391. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  393. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  394. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  395. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  396. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  397. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  398. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  399. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  400. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  401. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  402. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  403. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  404. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  405. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  406. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  407. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  408. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  409. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  410. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  411. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  412. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  413. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  414. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  415. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  416. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  417. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  418. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  419. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  420. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  421. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  422. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  423. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  424. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  425. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  426. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  428. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  429. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  430. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  431. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  432. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  433. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  434. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  435. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  436. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  437. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  438. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  439. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  440. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  441. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  442. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  443. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  444. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  445. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  446. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  447. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  448. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  449. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  450. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  451. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  452. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  453. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  454. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  455. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  456. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  457. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  458. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  459. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  460. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  461. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  462. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  463. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  464. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  465. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  466. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  467. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  468. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  469. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  472. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  473. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  474. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  475. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  477. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  478. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  479. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  480. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  481. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  482. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  483. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  484. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  485. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  486. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  487. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  488. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  490. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  491. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  492. package/contracts/components/BaseComponent.sol +0 -79
  493. package/contracts/components/Distribution.sol +0 -155
  494. package/contracts/components/IBaseComponent.sol +0 -19
  495. package/contracts/components/IDistributionComponent.sol +0 -47
  496. package/contracts/components/IPoolComponent.sol +0 -65
  497. package/contracts/components/IProductComponent.sol +0 -39
  498. package/contracts/components/Pool.sol +0 -246
  499. package/contracts/components/Product.sol +0 -299
  500. package/contracts/experiment/errors/Require.sol +0 -38
  501. package/contracts/experiment/errors/Revert.sol +0 -44
  502. package/contracts/experiment/inheritance/A.sol +0 -53
  503. package/contracts/experiment/inheritance/B.sol +0 -28
  504. package/contracts/experiment/inheritance/C.sol +0 -34
  505. package/contracts/experiment/inheritance/IA.sol +0 -13
  506. package/contracts/experiment/inheritance/IB.sol +0 -10
  507. package/contracts/experiment/inheritance/IC.sol +0 -12
  508. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  509. package/contracts/experiment/statemachine/ISM.sol +0 -25
  510. package/contracts/experiment/statemachine/SM.sol +0 -57
  511. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  512. package/contracts/experiment/types/TypeA.sol +0 -47
  513. package/contracts/experiment/types/TypeB.sol +0 -29
  514. package/contracts/instance/IInstanceLinked.sol +0 -8
  515. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  516. package/contracts/instance/base/IInstanceBase.sol +0 -23
  517. package/contracts/instance/base/IService.sol +0 -15
  518. package/contracts/instance/base/InstanceBase.sol +0 -89
  519. package/contracts/instance/base/ModuleBase.sol +0 -57
  520. package/contracts/instance/base/ServiceBase.sol +0 -43
  521. package/contracts/instance/module/access/Access.sol +0 -149
  522. package/contracts/instance/module/access/IAccess.sol +0 -53
  523. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  524. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  525. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  526. package/contracts/instance/module/component/IComponent.sol +0 -28
  527. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  528. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  529. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  530. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  531. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  532. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  533. package/contracts/instance/module/risk/IRisk.sol +0 -26
  534. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  535. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  536. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  537. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  538. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  539. package/contracts/instance/service/DistributionService.sol +0 -54
  540. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  541. package/contracts/instance/service/IDistributionService.sol +0 -12
  542. package/contracts/instance/service/IPoolService.sol +0 -37
  543. package/contracts/instance/service/IProductService.sol +0 -107
  544. package/contracts/instance/service/PoolService.sol +0 -149
  545. package/contracts/instance/service/ProductService.sol +0 -509
  546. package/contracts/registry/IChainNft.sol +0 -22
  547. package/contracts/registry/IRegistryLinked.sol +0 -8
  548. package/contracts/registry/RegistryInstaller.sol +0 -100
  549. package/contracts/shared/IOwnable.sol +0 -6
  550. package/contracts/test/TestDistribution.sol +0 -22
  551. package/contracts/test/TestFee.sol +0 -25
  552. package/contracts/test/TestPool.sol +0 -27
  553. package/contracts/test/TestProduct.sol +0 -74
  554. package/contracts/test/TestRegisterable.sol +0 -18
  555. package/contracts/test/TestRoleId.sol +0 -14
  556. package/contracts/test/TestService.sol +0 -26
  557. package/contracts/test/TestToken.sol +0 -26
  558. package/contracts/test/TestVersion.sol +0 -44
  559. package/contracts/test/TestVersionable.sol +0 -17
  560. package/contracts/test/Usdc.sol +0 -26
  561. package/contracts/types/ChainId.sol +0 -38
  562. package/contracts/types/NftIdSet.sol +0 -60
  563. package/contracts/types/ReferralId.sol +0 -48
  564. package/contracts/types/RoleId.sol +0 -38
  565. /package/contracts/{types → type}/AddressSet.sol +0 -0
  566. /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,509 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
7
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
8
- import {IInstance} from "../../instance/IInstance.sol";
9
- import {IPolicy, IPolicyModule} from "../module/policy/IPolicy.sol";
10
- import {IPool} from "../module/pool/IPoolModule.sol";
11
- import {IRisk} from "../module/risk/IRisk.sol";
12
- import {IBundle} from "../module/bundle/IBundle.sol";
13
- import {IProductService} from "./IProductService.sol";
14
- import {ITreasury, ITreasuryModule, TokenHandler} from "../../instance/module/treasury/ITreasury.sol";
15
-
16
- import {IVersionable} from "../../shared/IVersionable.sol";
17
- import {Versionable} from "../../shared/Versionable.sol";
18
-
19
- import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
20
- import {UFixed, UFixedMathLib} from "../../types/UFixed.sol";
21
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
22
- import {ObjectType, INSTANCE, PRODUCT, POLICY} from "../../types/ObjectType.sol";
23
- import {APPLIED, UNDERWRITTEN, ACTIVE} from "../../types/StateId.sol";
24
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
25
- import {Fee, FeeLib} from "../../types/Fee.sol";
26
- import {ReferralId} from "../../types/ReferralId.sol";
27
- import {RiskId} from "../../types/RiskId.sol";
28
- import {StateId} from "../../types/StateId.sol";
29
- import {Version, VersionLib} from "../../types/Version.sol";
30
-
31
- import {IService} from "../base/IService.sol";
32
- import {ServiceBase} from "../base/ServiceBase.sol";
33
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
34
- import {IProductService} from "./IProductService.sol";
35
-
36
- // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
37
- contract ProductService is ComponentServiceBase, IProductService {
38
- using NftIdLib for NftId;
39
-
40
- string public constant NAME = "ProductService";
41
-
42
- event LogProductServiceSender(address sender);
43
-
44
- constructor(
45
- address registry,
46
- NftId registryNftId,
47
- address initialOwner
48
- ) ComponentServiceBase(registry, registryNftId, initialOwner)
49
- {
50
- _registerInterface(type(IProductService).interfaceId);
51
- }
52
-
53
-
54
- function getName() public pure override(IService, ServiceBase) returns(string memory name) {
55
- return NAME;
56
- }
57
-
58
- function setFees(
59
- Fee memory productFee,
60
- Fee memory processingFee
61
- )
62
- external
63
- override
64
- {
65
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
66
- NftId productNftId = productInfo.nftId;
67
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productNftId);
68
- treasuryInfo.productFee = productFee;
69
- treasuryInfo.processingFee = processingFee;
70
- instance.setTreasuryInfo(productNftId, treasuryInfo);
71
- }
72
-
73
- function createRisk(
74
- RiskId riskId,
75
- bytes memory data
76
- ) external override {
77
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
78
- NftId productNftId = productInfo.nftId;
79
- instance.createRisk(
80
- riskId,
81
- productNftId,
82
- data
83
- );
84
- }
85
-
86
- function setRiskInfo(
87
- RiskId riskId,
88
- IRisk.RiskInfo memory info
89
- ) external {
90
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
91
- instance.setRiskInfo(
92
- riskId,
93
- info
94
- );
95
- }
96
-
97
- function updateRiskState(
98
- RiskId riskId,
99
- StateId state
100
- ) external {
101
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
102
- instance.updateRiskState(
103
- riskId,
104
- state
105
- );
106
- }
107
-
108
- function _getAndVerifyInstanceAndProduct() internal view returns (IProductComponent product) {
109
- IRegistry.ObjectInfo memory productInfo;
110
- (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
111
- product = IProductComponent(productInfo.objectAddress);
112
- }
113
-
114
- function calculatePremium(
115
- RiskId riskId,
116
- uint256 sumInsuredAmount,
117
- uint256 lifetime,
118
- bytes memory applicationData,
119
- NftId bundleNftId,
120
- ReferralId referralId
121
- )
122
- public
123
- view
124
- override
125
- returns (
126
- uint256 premiumAmount,
127
- uint256 productFeeAmount,
128
- uint256 poolFeeAmount,
129
- uint256 bundleFeeAmount,
130
- uint256 distributionFeeAmount
131
- )
132
- {
133
- IProductComponent product = _getAndVerifyInstanceAndProduct();
134
- uint256 netPremiumAmount = product.calculateNetPremium(
135
- sumInsuredAmount,
136
- riskId,
137
- lifetime,
138
- applicationData
139
- );
140
-
141
- (
142
- productFeeAmount,
143
- poolFeeAmount,
144
- bundleFeeAmount,
145
- distributionFeeAmount
146
- ) = _calculateFeeAmounts(
147
- netPremiumAmount,
148
- product,
149
- bundleNftId,
150
- referralId
151
- );
152
-
153
- premiumAmount = netPremiumAmount + productFeeAmount;
154
- premiumAmount += poolFeeAmount + bundleFeeAmount;
155
- premiumAmount += distributionFeeAmount;
156
- }
157
-
158
- function _calculateFeeAmounts(
159
- uint256 netPremiumAmount,
160
- IProductComponent product,
161
- NftId bundleNftId,
162
- ReferralId referralId
163
- )
164
- internal
165
- view
166
- returns (
167
- uint256 productFeeAmount,
168
- uint256 poolFeeAmount,
169
- uint256 bundleFeeAmount,
170
- uint256 distributionFeeAmount
171
- )
172
- {
173
- IInstance instance = product.getInstance();
174
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(product.getNftId());
175
- IBundle.BundleInfo memory bundleInfo = instance.getBundleInfo(bundleNftId);
176
- require(bundleInfo.poolNftId == treasuryInfo.poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
177
-
178
- (productFeeAmount,) = FeeLib.calculateFee(treasuryInfo.productFee, netPremiumAmount);
179
- (poolFeeAmount,) = FeeLib.calculateFee(treasuryInfo.poolFee, netPremiumAmount);
180
- (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
181
-
182
- IRegistry.ObjectInfo memory distributionInfo = getRegistry().getObjectInfo(treasuryInfo.distributionNftId);
183
- IDistributionComponent distribution = IDistributionComponent(distributionInfo.objectAddress);
184
- distributionFeeAmount = distribution.calculateFeeAmount(referralId, netPremiumAmount);
185
- }
186
-
187
-
188
- function createApplication(
189
- address applicationOwner,
190
- RiskId riskId,
191
- uint256 sumInsuredAmount,
192
- uint256 lifetime,
193
- bytes memory applicationData,
194
- NftId bundleNftId,
195
- ReferralId referralId
196
- ) external override returns (NftId policyNftId) {
197
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
198
- // TODO add validations (see create bundle in pool service)
199
-
200
- policyNftId = getRegistryService().registerPolicy(
201
- IRegistry.ObjectInfo(
202
- zeroNftId(),
203
- productInfo.nftId,
204
- POLICY(),
205
- false, // intercepting property for policies is defined on product
206
- address(0),
207
- applicationOwner,
208
- ""
209
- )
210
- );
211
-
212
- (uint256 premiumAmount,,,,) = calculatePremium(
213
- riskId,
214
- sumInsuredAmount,
215
- lifetime,
216
- applicationData,
217
- bundleNftId,
218
- referralId
219
- );
220
-
221
- instance.createPolicyInfo(
222
- policyNftId,
223
- productInfo.nftId,
224
- referralId,
225
- riskId,
226
- sumInsuredAmount,
227
- premiumAmount,
228
- lifetime,
229
- bundleNftId
230
- );
231
-
232
- // TODO add logging
233
- }
234
-
235
- function _getAndVerifyUnderwritingSetup(
236
- IInstance instance,
237
- IPolicy.PolicyInfo memory policyInfo
238
- )
239
- internal
240
- view
241
- returns (
242
- ITreasury.TreasuryInfo memory treasuryInfo,
243
- NftId bundleNftId,
244
- IBundle.BundleInfo memory bundleInfo,
245
- uint256 collateralAmount
246
- )
247
- {
248
- // check match between policy and bundle (via pool)
249
- treasuryInfo = instance.getTreasuryInfo(policyInfo.productNftId);
250
- bundleNftId = policyInfo.bundleNftId;
251
- bundleInfo = instance.getBundleInfo(bundleNftId);
252
- require(bundleInfo.poolNftId == treasuryInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
253
-
254
- // calculate required collateral
255
- NftId poolNftId = treasuryInfo.poolNftId;
256
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
257
-
258
- // obtain remaining return values
259
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
260
- }
261
-
262
- function _lockCollateralInBundle(
263
- IInstance instance,
264
- NftId bundleNftId,
265
- IBundle.BundleInfo memory bundleInfo,
266
- NftId policyNftId,
267
- uint256 collateralAmount
268
- )
269
- internal
270
- returns (IBundle.BundleInfo memory)
271
- {
272
- bundleInfo.lockedAmount += collateralAmount;
273
- instance.collateralizePolicy(bundleNftId, policyNftId, collateralAmount);
274
- return bundleInfo;
275
- }
276
-
277
- function _underwriteByPool(
278
- ITreasury.TreasuryInfo memory treasuryInfo,
279
- NftId policyNftId,
280
- IPolicy.PolicyInfo memory policyInfo,
281
- bytes memory bundleFilter,
282
- uint256 collateralAmount
283
- )
284
- internal
285
- {
286
- address poolAddress = getRegistry().getObjectInfo(treasuryInfo.poolNftId).objectAddress;
287
- IPoolComponent pool = IPoolComponent(poolAddress);
288
- pool.underwrite(
289
- policyNftId,
290
- policyInfo.applicationData,
291
- bundleFilter,
292
- collateralAmount);
293
- }
294
-
295
-
296
- function revoke(
297
- NftId policyNftId
298
- )
299
- external
300
- override
301
- {
302
- require(false, "ERROR:PRS-234:NOT_YET_IMPLEMENTED");
303
- }
304
-
305
-
306
- function underwrite(
307
- NftId policyNftId,
308
- bool requirePremiumPayment,
309
- Timestamp activateAt
310
- )
311
- external
312
- override
313
- {
314
- // check caller is registered product
315
- (
316
- IRegistry.ObjectInfo memory productInfo,
317
- IInstance instance
318
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
319
-
320
- // check match between policy and calling product
321
- NftId productNftId = productInfo.nftId;
322
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
323
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
324
- require(instance.getState(policyNftId.toKey32(POLICY())) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
325
-
326
- ITreasury.TreasuryInfo memory treasuryInfo;
327
- NftId bundleNftId;
328
- IBundle.BundleInfo memory bundleInfo;
329
- uint256 collateralAmount;
330
-
331
- (
332
- treasuryInfo,
333
- bundleNftId,
334
- bundleInfo,
335
- collateralAmount
336
- ) = _getAndVerifyUnderwritingSetup(
337
- instance,
338
- policyInfo
339
- );
340
-
341
- // lock bundle collateral
342
- bundleInfo = _lockCollateralInBundle(
343
- instance,
344
- bundleNftId,
345
- bundleInfo,
346
- policyNftId,
347
- collateralAmount);
348
-
349
- // set policy state to underwritten
350
- instance.updatePolicyState(policyNftId, UNDERWRITTEN());
351
-
352
- // optional activation of policy
353
- if(activateAt > zeroTimestamp()) {
354
- policyInfo.activatedAt = activateAt;
355
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
356
-
357
- instance.updatePolicyState(policyNftId, ACTIVE());
358
- }
359
-
360
- // optional collection of premium
361
- if(requirePremiumPayment) {
362
- uint256 netPremiumAmount = _processPremiumByTreasury(
363
- instance,
364
- productInfo.nftId,
365
- treasuryInfo,
366
- policyNftId,
367
- policyInfo.premiumAmount);
368
-
369
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
370
- bundleInfo.balanceAmount += netPremiumAmount;
371
- }
372
-
373
- instance.setPolicyInfo(policyNftId, policyInfo);
374
- instance.setBundleInfo(bundleNftId, bundleInfo);
375
-
376
- // involve pool if necessary
377
- {
378
- NftId poolNftId = treasuryInfo.poolNftId;
379
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
380
-
381
- if(poolInfo.isVerifying) {
382
- _underwriteByPool(
383
- treasuryInfo,
384
- policyNftId,
385
- policyInfo,
386
- bundleInfo.filter,
387
- collateralAmount
388
- );
389
- }
390
- }
391
-
392
- // TODO add logging
393
- }
394
-
395
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
396
- UFixed sumInsuredUFixed = UFixedMathLib.toUFixed(sumInsuredAmount);
397
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
398
- return collateralUFixed.toInt();
399
- }
400
-
401
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
402
- // check caller is registered product
403
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
404
-
405
- // perform actual token transfers
406
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
407
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productInfo.nftId);
408
-
409
- uint256 premiumAmount = policyInfo.premiumAmount;
410
- _processPremiumByTreasury(instance, productInfo.nftId, treasuryInfo, policyNftId, premiumAmount);
411
-
412
- // policy level book keeping for premium paid
413
- policyInfo.premiumPaidAmount += premiumAmount;
414
-
415
- // optional activation of policy
416
- if(activateAt > zeroTimestamp()) {
417
- require(
418
- policyInfo.activatedAt.eqz(),
419
- "ERROR:PRS-030:ALREADY_ACTIVATED");
420
-
421
- policyInfo.activatedAt = activateAt;
422
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
423
-
424
- instance.updatePolicyState(policyNftId, ACTIVE());
425
- }
426
-
427
- instance.setPolicyInfo(policyNftId, policyInfo);
428
-
429
- // TODO add logging
430
- }
431
-
432
- function activate(NftId policyNftId, Timestamp activateAt) external override {
433
- // check caller is registered product
434
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
435
-
436
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
437
-
438
- require(
439
- policyInfo.activatedAt.eqz(),
440
- "ERROR:PRS-020:ALREADY_ACTIVATED");
441
-
442
- policyInfo.activatedAt = activateAt;
443
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
444
-
445
- instance.setPolicyInfo(policyNftId, policyInfo);
446
- instance.updatePolicyState(policyNftId, ACTIVE());
447
-
448
- // TODO add logging
449
- }
450
-
451
- function close(
452
- NftId policyNftId
453
- ) external override // solhint-disable-next-line no-empty-blocks
454
- {
455
-
456
- }
457
-
458
- function _getPoolNftId(
459
- IInstance instance,
460
- NftId productNftId
461
- )
462
- internal
463
- view
464
- returns (NftId poolNftid)
465
- {
466
- return instance.getTreasuryInfo(productNftId).poolNftId;
467
- }
468
-
469
-
470
- function _processPremiumByTreasury(
471
- IInstance instance,
472
- NftId productNftId,
473
- ITreasury.TreasuryInfo memory treasuryInfo,
474
- NftId policyNftId,
475
- uint256 premiumAmount
476
- )
477
- internal
478
- returns (uint256 netPremiumAmount)
479
- {
480
- // process token transfer(s)
481
- if(premiumAmount > 0) {
482
- TokenHandler tokenHandler = instance.getTokenHandler(productNftId);
483
- address policyOwner = getRegistry().ownerOf(policyNftId);
484
- address poolWallet = instance.getComponentWallet(treasuryInfo.poolNftId);
485
- netPremiumAmount = premiumAmount;
486
- Fee memory productFee = treasuryInfo.productFee;
487
-
488
- if (FeeLib.feeIsZero(productFee)) {
489
- tokenHandler.transfer(
490
- policyOwner,
491
- poolWallet,
492
- premiumAmount
493
- );
494
- } else {
495
- (uint256 feeAmount, uint256 netAmount) = instance.calculateFeeAmount(
496
- premiumAmount,
497
- productFee
498
- );
499
-
500
- address productWallet = instance.getComponentWallet(productNftId);
501
- tokenHandler.transfer(policyOwner, productWallet, feeAmount);
502
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
503
- netPremiumAmount = netAmount;
504
- }
505
- }
506
-
507
- // TODO add logging
508
- }
509
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC721Enumerable} from "@openzeppelin5/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
5
-
6
- interface IChainNft is IERC721Enumerable {
7
- function mint(
8
- address to,
9
- address interceptor,
10
- string memory uri
11
- ) external returns (uint256 tokenId);
12
-
13
- function burn(uint256 tokenId) external;
14
-
15
- function setURI(uint256 tokenId, string memory uri) external;
16
-
17
- function exists(uint256 tokenId) external view returns (bool);
18
-
19
- function totalMinted() external view returns (uint256);
20
-
21
- function getRegistryAddress() external view returns (address registry);
22
- }
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../registry/IRegistry.sol";
5
-
6
- interface IRegistryLinked {
7
- function getRegistry() external view returns (IRegistry registry);
8
- }
@@ -1,100 +0,0 @@
1
- // SPDX-License-Identifier: UNLICENSED
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC721Receiver} from "@openzeppelin5/contracts/token/ERC721/IERC721Receiver.sol";
5
- import {Ownable} from "@openzeppelin5/contracts/access/Ownable.sol";
6
-
7
- import {IChainNft} from "./IChainNft.sol";
8
- import {IRegistry} from "./IRegistry.sol";
9
- import {IVersionable} from "../shared/IVersionable.sol";
10
- import {NftId} from "../types/NftId.sol";
11
- import {ProxyManager} from "../shared/ProxyManager.sol";
12
- import {Registry} from "./Registry.sol";
13
- import {RegistryService} from "./RegistryService.sol";
14
-
15
-
16
- contract RegistryInstaller is
17
- Ownable,
18
- IERC721Receiver
19
- {
20
- error ErrorProxyManagerWithZeroAddress();
21
- error ErrorRegistryServiceWithZeroAddress();
22
- error ErrorProxyManagerUnexpectedOwner(address expectedOwner, address actualOwner);
23
- error ErrorInstallerNotProxyManagerOwner(address installer, address actualOwner);
24
-
25
- ProxyManager private _proxyManager;
26
- address private _implementation;
27
- RegistryService private _registryService;
28
- IRegistry private _registry;
29
- IChainNft private _chainNft;
30
-
31
- /// @dev initializes proxy manager with registry service implementation and deploys registry
32
- constructor(
33
- address proxyManagerAddress,
34
- address registryServiceImplementationAddress
35
- )
36
- Ownable(msg.sender)
37
- {
38
- if (proxyManagerAddress == address(0)) { revert ErrorProxyManagerWithZeroAddress(); }
39
- if (registryServiceImplementationAddress == address(0)) { revert ErrorRegistryServiceWithZeroAddress(); }
40
-
41
- _proxyManager = ProxyManager(proxyManagerAddress);
42
- // check proxy manager owner is owner of installer
43
- if (_proxyManager.owner() != owner()) { revert ErrorProxyManagerUnexpectedOwner(_proxyManager.owner(), owner()); }
44
-
45
- _implementation = registryServiceImplementationAddress;
46
- }
47
-
48
- function installRegistryServiceWithRegistry()
49
- external
50
- onlyOwner()
51
- {
52
- // check that this contract is now proxy manager owner
53
- if (_proxyManager.owner() != address(this)) { revert ErrorInstallerNotProxyManagerOwner(address(this), _proxyManager.owner()); }
54
-
55
- IVersionable versionable = _proxyManager.deploy(_implementation, type(Registry).creationCode);
56
- _registryService = RegistryService(address(versionable));
57
- _registry = _registryService.getRegistry();
58
- _chainNft = _registry.getChainNft();
59
-
60
- // transfer registry ownership back to owner
61
- NftId registryNftId = _registry.getNftId(address(_registry));
62
- _chainNft.safeTransferFrom(
63
- address(this),
64
- owner(),
65
- registryNftId.toInt(),
66
- "");
67
-
68
- // transfer proxy manager back to owner
69
- _proxyManager.transferOwnership(owner());
70
- }
71
-
72
- function getRegistryService()
73
- external
74
- view
75
- returns (RegistryService registryService)
76
- {
77
- return _registryService;
78
- }
79
-
80
- function getRegistry()
81
- external
82
- view
83
- returns (RegistryService registryService)
84
- {
85
- return _registryService;
86
- }
87
-
88
- //--- IERC721Receiver -----------------------------------//
89
- function onERC721Received(
90
- address operator,
91
- address from,
92
- uint256 tokenId,
93
- bytes calldata data
94
- )
95
- external
96
- returns (bytes4)
97
- {
98
- return IERC721Receiver.onERC721Received.selector;
99
- }
100
- }
@@ -1,6 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IOwnable {
5
- function getOwner() external view returns (address owner);
6
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee} from "../../contracts/types/Fee.sol";
5
- import {NftId} from "../../contracts/types/NftId.sol";
6
- import {Distribution} from "../../contracts/components/Distribution.sol";
7
-
8
-
9
- contract TestDistribution is Distribution {
10
-
11
- constructor(
12
- address registry,
13
- NftId instanceNftid,
14
- address token,
15
- bool isVerifying,
16
- Fee memory distributionFee,
17
- address initialOwner
18
- )
19
- Distribution(registry, instanceNftid, token, isVerifying, distributionFee, initialOwner)
20
- // solhint-disable-next-line no-empty-blocks
21
- {}
22
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {UFixed, UFixedMathLib} from "../types/UFixed.sol";
5
- import {Fee, FeeLib} from "../types/Fee.sol";
6
-
7
- contract TestFee {
8
-
9
- function createFee(
10
- uint256 fractionalValue,
11
- int8 exponent,
12
- uint256 fixedValue
13
- )
14
- external
15
- pure
16
- returns(Fee memory fee)
17
- {
18
- return FeeLib.toFee(UFixedMathLib.toUFixed(fractionalValue, exponent), fixedValue);
19
- }
20
-
21
- function getZeroFee() external pure returns(Fee memory fee) {
22
- return FeeLib.zeroFee();
23
- }
24
-
25
- }