@etherisc/gif-next 0.0.2-b312c9a-831 → 0.0.2-b37fa8b-169

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 (520) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +94 -50
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -153
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -82
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +157 -114
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +298 -236
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +178 -168
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +183 -141
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +574 -282
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  64. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  67. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  68. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +494 -49
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -12
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +542 -109
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +965 -365
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +327 -64
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +907 -571
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -79
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -57
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +802 -1748
  87. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2835 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -49
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +49 -21
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -55
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -76
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -358
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -74
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +293 -63
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -46
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -150
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +127 -99
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +235 -4
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -133
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -85
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +103 -75
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +187 -144
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -47
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -57
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -466
  198. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +71 -35
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -43
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +227 -250
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -69
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +49 -21
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  240. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
  243. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  245. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  246. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -32
  247. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  248. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
  249. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  255. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  260. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1468 -128
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  272. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  273. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  274. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/Staking.sol/Staking.json +1623 -254
  276. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +132 -65
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -55
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
  288. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  289. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  290. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  292. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  293. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  295. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  297. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  338. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  342. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  346. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  348. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  350. package/contracts/accounting/AccountingService.sol +18 -8
  351. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  352. package/contracts/accounting/IAccountingService.sol +4 -2
  353. package/contracts/authorization/AccessAdmin.sol +422 -258
  354. package/contracts/authorization/AccessAdminLib.sol +396 -0
  355. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  356. package/contracts/authorization/Authorization.sol +142 -262
  357. package/contracts/authorization/IAccess.sol +25 -7
  358. package/contracts/authorization/IAccessAdmin.sol +87 -80
  359. package/contracts/authorization/IAuthorization.sol +9 -43
  360. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  361. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  362. package/contracts/distribution/BasicDistribution.sol +13 -11
  363. package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
  364. package/contracts/distribution/Distribution.sol +20 -60
  365. package/contracts/distribution/DistributionService.sol +172 -81
  366. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  367. package/contracts/distribution/IDistributionComponent.sol +3 -10
  368. package/contracts/distribution/IDistributionService.sol +34 -19
  369. package/contracts/examples/fire/FirePool.sol +0 -4
  370. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  371. package/contracts/examples/fire/FireProduct.sol +10 -13
  372. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  373. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  374. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  375. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  376. package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
  377. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  378. package/contracts/examples/unpermissioned/SimpleProduct.sol +112 -27
  379. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  380. package/contracts/instance/BaseStore.sol +93 -0
  381. package/contracts/instance/BundleSet.sol +4 -4
  382. package/contracts/instance/IBaseStore.sol +37 -0
  383. package/contracts/instance/IInstance.sol +103 -18
  384. package/contracts/instance/IInstanceService.sol +55 -6
  385. package/contracts/instance/Instance.sol +176 -64
  386. package/contracts/instance/InstanceAdmin.sol +263 -169
  387. package/contracts/instance/InstanceAuthorizationV3.sol +119 -64
  388. package/contracts/instance/InstanceReader.sol +420 -369
  389. package/contracts/instance/InstanceService.sol +306 -183
  390. package/contracts/instance/InstanceServiceManager.sol +1 -1
  391. package/contracts/instance/InstanceStore.sol +10 -72
  392. package/contracts/instance/ProductStore.sol +235 -0
  393. package/contracts/instance/RiskSet.sol +21 -14
  394. package/contracts/instance/TargetNames.sol +10 -0
  395. package/contracts/instance/base/BalanceStore.sol +4 -6
  396. package/contracts/instance/base/ObjectCounter.sol +1 -2
  397. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  398. package/contracts/instance/base/ObjectSet.sol +7 -8
  399. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  400. package/contracts/instance/module/IBundle.sol +6 -5
  401. package/contracts/instance/module/IComponents.sol +19 -7
  402. package/contracts/instance/module/IDistribution.sol +21 -8
  403. package/contracts/instance/module/IPolicy.sol +28 -8
  404. package/contracts/instance/module/IRisk.sol +4 -0
  405. package/contracts/oracle/BasicOracle.sol +2 -4
  406. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  407. package/contracts/oracle/IOracle.sol +9 -4
  408. package/contracts/oracle/Oracle.sol +3 -5
  409. package/contracts/oracle/OracleService.sol +24 -23
  410. package/contracts/oracle/OracleServiceManager.sol +1 -1
  411. package/contracts/pool/BasicPool.sol +3 -16
  412. package/contracts/pool/BasicPoolAuthorization.sol +29 -16
  413. package/contracts/pool/BundleService.sol +60 -99
  414. package/contracts/pool/BundleServiceManager.sol +1 -1
  415. package/contracts/pool/IBundleService.sol +27 -32
  416. package/contracts/pool/IPoolService.sol +57 -40
  417. package/contracts/pool/Pool.sol +13 -25
  418. package/contracts/pool/PoolLib.sol +341 -0
  419. package/contracts/pool/PoolService.sol +192 -193
  420. package/contracts/pool/PoolServiceManager.sol +1 -1
  421. package/contracts/product/ApplicationService.sol +88 -20
  422. package/contracts/product/ApplicationServiceManager.sol +1 -1
  423. package/contracts/product/BasicProduct.sol +3 -3
  424. package/contracts/product/BasicProductAuthorization.sol +31 -9
  425. package/contracts/product/ClaimService.sol +221 -209
  426. package/contracts/product/ClaimServiceManager.sol +1 -1
  427. package/contracts/product/IApplicationService.sol +24 -2
  428. package/contracts/product/IClaimService.sol +18 -5
  429. package/contracts/product/IPolicyService.sol +20 -8
  430. package/contracts/product/IPricingService.sol +1 -0
  431. package/contracts/product/IProductComponent.sol +4 -1
  432. package/contracts/product/IRiskService.sol +25 -10
  433. package/contracts/product/PolicyService.sol +113 -204
  434. package/contracts/product/PolicyServiceLib.sol +139 -0
  435. package/contracts/product/PolicyServiceManager.sol +1 -1
  436. package/contracts/product/PricingService.sol +52 -46
  437. package/contracts/product/PricingServiceManager.sol +3 -3
  438. package/contracts/product/Product.sol +93 -27
  439. package/contracts/product/RiskService.sol +121 -38
  440. package/contracts/product/RiskServiceManager.sol +1 -1
  441. package/contracts/registry/ChainNft.sol +4 -2
  442. package/contracts/registry/IRegistry.sol +23 -24
  443. package/contracts/registry/IRelease.sol +29 -0
  444. package/contracts/registry/Registry.sol +22 -11
  445. package/contracts/registry/RegistryAdmin.sol +107 -373
  446. package/contracts/registry/RegistryAuthorization.sol +336 -0
  447. package/contracts/registry/RegistryService.sol +4 -4
  448. package/contracts/registry/RegistryServiceManager.sol +1 -1
  449. package/contracts/registry/ReleaseAdmin.sol +195 -0
  450. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  451. package/contracts/registry/ReleaseRegistry.sol +157 -117
  452. package/contracts/registry/ServiceAuthorizationV3.sol +163 -28
  453. package/contracts/registry/TokenRegistry.sol +61 -59
  454. package/contracts/shared/Component.sol +23 -28
  455. package/contracts/shared/ComponentService.sol +317 -317
  456. package/contracts/shared/ComponentServiceManager.sol +1 -1
  457. package/contracts/shared/ContractLib.sol +164 -76
  458. package/contracts/shared/IComponent.sol +1 -5
  459. package/contracts/shared/IComponentService.sol +21 -26
  460. package/contracts/shared/IKeyValueStore.sol +9 -1
  461. package/contracts/shared/INftOwnable.sol +2 -0
  462. package/contracts/shared/IRegisterable.sol +15 -5
  463. package/contracts/shared/IService.sol +3 -5
  464. package/contracts/shared/InitializableERC165.sol +9 -1
  465. package/contracts/shared/InstanceLinkedComponent.sol +6 -9
  466. package/contracts/shared/KeyValueStore.sol +3 -3
  467. package/contracts/shared/NftOwnable.sol +8 -6
  468. package/contracts/shared/PolicyHolder.sol +4 -3
  469. package/contracts/shared/Registerable.sol +42 -19
  470. package/contracts/shared/RegistryLinked.sol +1 -1
  471. package/contracts/shared/Service.sol +13 -30
  472. package/contracts/shared/TokenHandler.sol +45 -92
  473. package/contracts/staking/IStaking.sol +266 -72
  474. package/contracts/staking/IStakingService.sol +45 -75
  475. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  476. package/contracts/staking/Staking.sol +494 -211
  477. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  478. package/contracts/staking/StakingManager.sol +4 -3
  479. package/contracts/staking/StakingReader.sol +58 -77
  480. package/contracts/staking/StakingService.sol +62 -181
  481. package/contracts/staking/StakingServiceManager.sol +6 -4
  482. package/contracts/staking/StakingStore.sol +1093 -330
  483. package/contracts/staking/TargetHandler.sol +132 -0
  484. package/contracts/staking/TargetManagerLib.sol +69 -46
  485. package/contracts/type/Amount.sol +4 -0
  486. package/contracts/type/Blocknumber.sol +15 -15
  487. package/contracts/type/ChainId.sol +101 -0
  488. package/contracts/type/Fee.sol +8 -8
  489. package/contracts/type/NftId.sol +3 -3
  490. package/contracts/type/ObjectType.sol +62 -41
  491. package/contracts/type/RiskId.sol +9 -3
  492. package/contracts/type/RoleId.sol +63 -45
  493. package/contracts/type/Seconds.sol +19 -0
  494. package/contracts/type/Selector.sol +5 -0
  495. package/contracts/type/String.sol +12 -0
  496. package/contracts/type/Timestamp.sol +4 -7
  497. package/contracts/type/UFixed.sol +35 -127
  498. package/contracts/type/Version.sol +54 -5
  499. package/contracts/upgradeability/IVersionable.sol +3 -0
  500. package/contracts/upgradeability/ProxyManager.sol +26 -12
  501. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  502. package/contracts/upgradeability/Versionable.sol +6 -3
  503. package/package.json +2 -2
  504. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  505. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  506. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  507. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  508. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  509. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  510. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  511. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  512. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  513. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  514. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  515. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  516. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  517. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  518. package/contracts/instance/module/IAccess.sol +0 -46
  519. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  520. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,106 +1,320 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
-
6
4
  import {IAccess} from "../authorization/IAccess.sol";
7
- import {ObjectType} from "../type/ObjectType.sol";
8
5
  import {IServiceAuthorization} from "./IServiceAuthorization.sol";
6
+
7
+ import {ADMIN_ROLE_NAME, PUBLIC_ROLE_NAME} from "./AccessAdmin.sol";
8
+ import {InitializableERC165} from "../shared/InitializableERC165.sol";
9
+ import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
10
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
9
11
  import {SelectorLib} from "../type/Selector.sol";
10
- import {StrLib} from "../type/String.sol";
12
+ import {Str, StrLib} from "../type/String.sol";
11
13
  import {TimestampLib} from "../type/Timestamp.sol";
12
14
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
13
15
 
14
- /// @dev Base contract for release specific service authorization contracts.
16
+
17
+ /// @dev Base contract for release specific service authorization contracts and for Authorization contracts.
15
18
  contract ServiceAuthorization is
19
+ InitializableERC165,
16
20
  IServiceAuthorization
17
21
  {
22
+
23
+ string public constant COMMIT_HASH = "1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a";
24
+
18
25
  uint256 public constant COMMIT_HASH_LENGTH = 40;
19
26
  uint256 public constant GIF_INITIAL_VERSION = 3;
20
27
 
21
- uint256 public immutable VERSION;
22
- string public COMMIT_HASH;
28
+ string public constant SERVICE_NAME_SUFFIX = "Service";
29
+ string public constant ROLE_NAME_SUFFIX = "_Role";
23
30
 
31
+ ObjectType public immutable DOMAIN;
32
+ uint256 internal immutable _release;
33
+ string internal _commitHash;
34
+
35
+ string internal _mainTargetName;
36
+ Str internal _mainTarget;
37
+
38
+ // services
24
39
  ObjectType[] internal _serviceDomains;
25
40
  mapping(ObjectType domain => address service) internal _serviceAddress;
26
- mapping(ObjectType domain => ObjectType[] authorizedDomains) internal _authorizedDomains;
27
- mapping(ObjectType domain => mapping(ObjectType authorizedDomain => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
28
41
 
29
- constructor(string memory commitHash, uint256 version) {
30
- assert(bytes(commitHash).length == COMMIT_HASH_LENGTH);
31
- assert(version >= GIF_INITIAL_VERSION);
42
+ // roles
43
+ RoleId[] internal _roles;
44
+ mapping(RoleId role => RoleInfo info) internal _roleInfo;
45
+
46
+ // targets
47
+ Str[] internal _targets;
48
+ mapping(Str target => bool exists) internal _targetExists;
49
+ mapping(Str target => RoleId roleId) internal _targetRole;
50
+ mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
51
+ mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
52
+
53
+
54
+ constructor(
55
+ string memory mainTargetName,
56
+ ObjectType domain,
57
+ uint8 release,
58
+ string memory commitHash
59
+ )
60
+ {
61
+ // checks
62
+ if (bytes(mainTargetName).length == 0) {
63
+ revert ErrorAuthorizationMainTargetNameEmpty();
64
+ }
65
+
66
+ if (domain == ObjectTypeLib.zero()) {
67
+ revert ErrorAuthorizationTargetDomainZero();
68
+ }
69
+
70
+ if (release < VersionPartLib.releaseMin().toInt() || release >= VersionPartLib.releaseMax().toInt()) {
71
+ revert ErrorAuthorizationReleaseInvalid(release);
72
+ }
73
+
74
+ if (bytes(commitHash).length != COMMIT_HASH_LENGTH) {
75
+ revert ErrorAuthorizationCommitHashInvalid(commitHash);
76
+ }
77
+
78
+ // effects
79
+ _initializeERC165();
80
+ _registerInterfaceNotInitializing(type(IServiceAuthorization).interfaceId);
81
+
82
+ _mainTargetName = mainTargetName;
83
+ _mainTarget = StrLib.toStr(mainTargetName);
84
+
85
+ DOMAIN = domain;
86
+ _release = release;
87
+ _commitHash = commitHash;
32
88
 
33
- COMMIT_HASH = commitHash;
34
- VERSION = version;
89
+ // setup of roles defined in OpenZeppelin AccessManager
90
+ _addRole(ADMIN_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, ADMIN_ROLE_NAME()));
91
+ _addRole(PUBLIC_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, PUBLIC_ROLE_NAME()));
92
+
93
+ // defines service domains relevant for the authorization
35
94
  _setupDomains();
36
95
  _setupDomainAuthorizations();
37
96
  }
38
97
 
98
+ /// @inheritdoc IServiceAuthorization
99
+ function getDomain() public view returns(ObjectType targetDomain) {
100
+ return DOMAIN;
101
+ }
102
+
103
+ /// @inheritdoc IServiceAuthorization
104
+ function getRelease() public view returns(VersionPart release) {
105
+ return VersionPartLib.toVersionPart(_release);
106
+ }
107
+
108
+ /// @inheritdoc IServiceAuthorization
39
109
  function getCommitHash() external view returns(string memory commitHash) {
40
- return COMMIT_HASH;
110
+ return _commitHash;
41
111
  }
42
112
 
43
- function getRelease() external view returns(VersionPart release) {
44
- return VersionPartLib.toVersionPart(VERSION);
113
+ /// @inheritdoc IServiceAuthorization
114
+ function getMainTargetName() public view returns (string memory name) {
115
+ return _mainTargetName;
45
116
  }
46
117
 
118
+ /// @inheritdoc IServiceAuthorization
119
+ function getMainTarget() external view returns(Str target) {
120
+ return _mainTarget;
121
+ }
122
+
123
+ /// @inheritdoc IServiceAuthorization
47
124
  function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
48
125
  return _serviceDomains;
49
126
  }
50
127
 
51
- function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain) {
128
+ /// @inheritdoc IServiceAuthorization
129
+ function getServiceDomain(uint256 idx) external view returns(ObjectType serviceDomain) {
52
130
  return _serviceDomains[idx];
53
131
  }
54
132
 
133
+ /// @inheritdoc IServiceAuthorization
134
+ function getServiceTarget(ObjectType serviceDomain) public view returns(Str target) {
135
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
136
+ ObjectTypeLib.toName(serviceDomain),
137
+ "Service",
138
+ getRelease());
139
+
140
+ return StrLib.toStr(serviceTargetName);
141
+ }
142
+
143
+ /// @inheritdoc IServiceAuthorization
144
+ function getServiceRole(ObjectType serviceDomain) public view returns(RoleId serviceRoleId) {
145
+ // special case domain ALL
146
+ if (serviceDomain == ALL()) {
147
+ return PUBLIC_ROLE();
148
+ }
149
+
150
+ Str target = getServiceTarget(serviceDomain);
151
+ return getTargetRole(target);
152
+ }
153
+
154
+ /// @inheritdoc IServiceAuthorization
55
155
  function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
56
156
  return _serviceAddress[serviceDomain];
57
157
  }
58
158
 
59
- function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains) {
60
- return _authorizedDomains[serviceDomain];
159
+ /// @inheritdoc IServiceAuthorization
160
+ function getTargetRole(Str target) public view returns(RoleId roleId) {
161
+ return _targetRole[target];
61
162
  }
62
163
 
63
- function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
64
- return _authorizedFunctions[serviceDomain][authorizedDomain];
164
+ /// @inheritdoc IServiceAuthorization
165
+ function roleExists(RoleId roleId) public view returns(bool exists) {
166
+ return _roleInfo[roleId].roleType != RoleType.Undefined;
65
167
  }
66
168
 
67
- // ERC165
68
- function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
69
- return (
70
- interfaceId == type(IServiceAuthorization).interfaceId ||
71
- interfaceId == type(IERC165).interfaceId
72
- );
169
+ /// @inheritdoc IServiceAuthorization
170
+ function getRoles() external view returns(RoleId[] memory roles) {
171
+ return _roles;
73
172
  }
74
173
 
174
+ /// @inheritdoc IServiceAuthorization
175
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
176
+ return _roleInfo[roleId];
177
+ }
75
178
 
76
- /// @dev Overwrite this function for a specific realease.
179
+ /// @inheritdoc IServiceAuthorization
180
+ function getRoleName(RoleId roleId) external view returns (string memory roleName) {
181
+ return _roleInfo[roleId].name.toString();
182
+ }
183
+
184
+ /// @inheritdoc IServiceAuthorization
185
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
186
+ return _authorizedRoles[target];
187
+ }
188
+
189
+ /// @inheritdoc IServiceAuthorization
190
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions) {
191
+ return _authorizedFunctions[target][roleId];
192
+ }
193
+
194
+ /// @dev Defines service domains relevant for the authorization.
195
+ /// When used for ReleaseAdmin the list defines the services to be registered for the release.
196
+ /// IMPORTANT: Both the list of the service domains as well as the ordering of the domains is important.
197
+ /// Trying to register services not in this list or register services in a different order will result in an error.
198
+ // solhint-disable-next-line no-empty-blocks
77
199
  function _setupDomains() internal virtual {}
78
200
 
79
201
  /// @dev Overwrite this function for a specific realease.
202
+ // solhint-disable-next-line no-empty-blocks
80
203
  function _setupDomainAuthorizations() internal virtual {}
81
204
 
82
205
  /// @dev Use this method to to add an authorized domain.
83
206
  /// The services will need to be registered in the order they are added using this function.
84
- function _authorizeDomain(ObjectType serviceDomain, address serviceAddress) internal {
207
+ function _authorizeServiceDomain(ObjectType serviceDomain, address serviceAddress) internal {
85
208
  _serviceDomains.push(serviceDomain);
86
209
  _serviceAddress[serviceDomain] = serviceAddress;
210
+
211
+ string memory serviceName = ObjectTypeLib.toVersionedName(
212
+ ObjectTypeLib.toName(serviceDomain),
213
+ SERVICE_NAME_SUFFIX,
214
+ getRelease());
215
+
216
+ _addTargetWithRole(
217
+ serviceName,
218
+ RoleIdLib.toServiceRoleId(serviceDomain, getRelease()),
219
+ string(abi.encodePacked(serviceName, ROLE_NAME_SUFFIX)));
220
+ }
221
+
222
+
223
+ /// @dev Use this method to to add an authorized target together with its target role.
224
+ function _addTargetWithRole(
225
+ string memory targetName,
226
+ RoleId roleId,
227
+ string memory roleName
228
+ )
229
+ internal
230
+ {
231
+ // add target
232
+ Str target = StrLib.toStr(targetName);
233
+ _targets.push(target);
234
+
235
+ _targetExists[target] = true;
236
+
237
+ // link role to target if defined
238
+ if (roleId != RoleIdLib.zero()) {
239
+ // add role if new
240
+ if (!roleExists(roleId)) {
241
+ _addContractRole(roleId, roleName);
242
+ }
243
+
244
+ // link target to role
245
+ _targetRole[target] = roleId;
246
+ }
247
+ }
248
+
249
+
250
+ /// @dev Add a contract role for the provided role id and name.
251
+ function _addContractRole(RoleId roleId, string memory name) internal {
252
+ _addRole(
253
+ roleId,
254
+ _toRoleInfo(
255
+ ADMIN_ROLE(),
256
+ RoleType.Contract,
257
+ 1,
258
+ name));
87
259
  }
88
260
 
261
+
262
+ /// @dev Use this method to to add an authorized role.
263
+ function _addRole(RoleId roleId, RoleInfo memory info) internal {
264
+ _roles.push(roleId);
265
+ _roleInfo[roleId] = info;
266
+ }
267
+
268
+
269
+ /// @dev creates a role info object from the provided parameters
270
+ function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
271
+ return RoleInfo({
272
+ name: StrLib.toStr(name),
273
+ adminRoleId: adminRoleId,
274
+ roleType: roleType,
275
+ maxMemberCount: maxMemberCount,
276
+ createdAt: TimestampLib.current(),
277
+ pausedAt: TimestampLib.max()});
278
+ }
279
+
280
+
89
281
  /// @dev Use this method to authorize the specified domain to access the service domain.
90
- function _authorizeForService(ObjectType serviceDomain, ObjectType authorizedDomain)
282
+ function _authorizeForService(
283
+ ObjectType serviceDomain,
284
+ ObjectType authorizedDomain
285
+ )
91
286
  internal
92
287
  returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
93
288
  {
94
- _authorizedDomains[serviceDomain].push(authorizedDomain);
95
- return _authorizedFunctions[serviceDomain][authorizedDomain];
289
+ Str serviceTarget = getServiceTarget(serviceDomain);
290
+ RoleId authorizedRoleId = getServiceRole(authorizedDomain);
291
+
292
+ return _authorizeForTarget(serviceTarget.toString(), authorizedRoleId);
96
293
  }
97
294
 
295
+
296
+ /// @dev Use this method to authorize the specified role to access the target.
297
+ function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
298
+ internal
299
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
300
+ {
301
+ Str targetStr = StrLib.toStr(target);
302
+
303
+ // add authorized role if not already added
304
+ if (_authorizedFunctions[targetStr][authorizedRoleId].length == 0) {
305
+ _authorizedRoles[targetStr].push(authorizedRoleId);
306
+ }
307
+
308
+ return _authorizedFunctions[targetStr][authorizedRoleId];
309
+ }
310
+
311
+
98
312
  /// @dev Use this method to authorize a specific function authorization
99
313
  function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
100
314
  functions.push(
101
315
  IAccess.FunctionInfo({
102
316
  selector: SelectorLib.toSelector(selector),
103
317
  name: StrLib.toStr(name),
104
- createdAt: TimestampLib.blockTimestamp()}));
318
+ createdAt: TimestampLib.current()}));
105
319
  }
106
320
  }
@@ -1,15 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+
4
6
  import {Distribution} from "./Distribution.sol";
7
+ import {DistributorType} from "../type/DistributorType.sol";
5
8
  import {DISTRIBUTOR} from "../type/ObjectType.sol";
6
- import {IAuthorization} from "../authorization/IAuthorization.sol";
9
+ import {Fee} from "../type/Fee.sol";
7
10
  import {NftId} from "../type/NftId.sol";
8
11
  import {ReferralId} from "../type/Referral.sol";
9
- import {Fee} from "../type/Fee.sol";
10
- import {UFixed} from "../type/UFixed.sol";
11
- import {DistributorType} from "../type/DistributorType.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
12
13
  import {Timestamp} from "../type/Timestamp.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
13
15
 
14
16
 
15
17
  contract BasicDistribution is
@@ -37,7 +39,7 @@ contract BasicDistribution is
37
39
  UFixed maxDiscountPercentage,
38
40
  UFixed commissionPercentage,
39
41
  uint32 maxReferralCount,
40
- uint32 maxReferralLifetime,
42
+ Seconds maxReferralLifetime,
41
43
  bool allowSelfReferrals,
42
44
  bool allowRenewals,
43
45
  bytes memory data
@@ -93,6 +95,7 @@ contract BasicDistribution is
93
95
  * referral codes need to be unique
94
96
  */
95
97
  function createReferral(
98
+ NftId distributorNftId,
96
99
  string memory code,
97
100
  UFixed discountPercentage,
98
101
  uint32 maxReferrals,
@@ -102,10 +105,10 @@ contract BasicDistribution is
102
105
  external
103
106
  virtual
104
107
  restricted()
105
- onlyDistributor()
108
+ onlyNftOwner(distributorNftId)
106
109
  returns (ReferralId referralId)
107
110
  {
108
- NftId distributorNftId = getDistributorNftId(msg.sender);
111
+ _checkNftType(distributorNftId, DISTRIBUTOR());
109
112
  return _createReferral(
110
113
  distributorNftId,
111
114
  code,
@@ -120,20 +123,19 @@ contract BasicDistribution is
120
123
  NftId instanceNftId,
121
124
  IAuthorization authorization,
122
125
  address initialOwner,
123
- string memory name,
124
- address token
126
+ string memory name
125
127
  )
126
128
  internal
127
129
  virtual
128
130
  onlyInitializing()
129
131
  {
130
- _initializeDistribution(
132
+ __Distribution_init(
131
133
  registry,
132
134
  instanceNftId,
133
135
  authorization,
136
+ false,
134
137
  initialOwner,
135
138
  name,
136
- token,
137
139
  ""); // component specifc data
138
140
  }
139
141
  }
@@ -1,30 +1,50 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+
4
7
  import {Authorization} from "../authorization/Authorization.sol";
5
8
  import {BasicDistribution} from "./BasicDistribution.sol";
6
9
  import {Distribution} from "./Distribution.sol";
7
- import {DISTRIBUTION} from "../type/ObjectType.sol";
8
- import {IAccess} from "../authorization/IAccess.sol";
9
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
10
- import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
11
+ import {PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {TokenHandler} from "../shared/TokenHandler.sol";
11
13
 
12
14
 
13
15
  contract BasicDistributionAuthorization
14
16
  is Authorization
15
17
  {
16
18
 
17
- constructor(string memory distributionlName)
18
- Authorization(distributionlName)
19
+ constructor(string memory distributionName)
20
+ Authorization(
21
+ distributionName,
22
+ DISTRIBUTION(),
23
+ 3,
24
+ COMMIT_HASH,
25
+ true,
26
+ true)
19
27
  {}
20
28
 
21
- function _setupTargets()
29
+ function _setupServiceTargets()
22
30
  internal
23
31
  virtual override
24
32
  {
25
- _addComponentTargetWithRole(DISTRIBUTION()); // basic target
33
+ _authorizeServiceDomain(COMPONENT(), address(11));
34
+ _authorizeServiceDomain(DISTRIBUTION(), address(11));
26
35
  }
27
36
 
37
+ function _setupTokenHandlerAuthorizations() internal virtual override {
38
+ IAccess.FunctionInfo[] storage functions;
39
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
40
+ _authorize(functions, TokenHandler.approve.selector, "approve");
41
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
42
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
43
+
44
+ // authorize token handler functions for pool service role
45
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(DISTRIBUTION()));
46
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
47
+ }
28
48
 
29
49
  function _setupTargetAuthorizations()
30
50
  internal
@@ -33,7 +53,7 @@ contract BasicDistributionAuthorization
33
53
  IAccess.FunctionInfo[] storage functions;
34
54
 
35
55
  // authorize public role (open access to any account, only allows to lock target)
36
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
56
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
37
57
  _authorize(functions, BasicDistribution.setFees.selector, "setFees");
38
58
  _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
39
59
  _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
@@ -1,19 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
6
4
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
- import {IDistributionService} from "./IDistributionService.sol";
8
- import {NftId, NftIdLib} from "../type/NftId.sol";
9
- import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
10
- import {Fee} from "../type/Fee.sol";
11
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
12
5
  import {IComponentService} from "../shared/IComponentService.sol";
13
6
  import {IDistributionComponent} from "./IDistributionComponent.sol";
14
- import {UFixed} from "../type/UFixed.sol";
7
+ import {IDistributionService} from "./IDistributionService.sol";
8
+
9
+ import {Amount} from "../type/Amount.sol";
10
+ import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
15
11
  import {DistributorType} from "../type/DistributorType.sol";
12
+ import {Fee} from "../type/Fee.sol";
13
+ import {NftId} from "../type/NftId.sol";
14
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
15
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
16
17
  import {Timestamp} from "../type/Timestamp.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
17
19
 
18
20
 
19
21
  abstract contract Distribution is
@@ -26,17 +28,8 @@ abstract contract Distribution is
26
28
  struct DistributionStorage {
27
29
  IComponentService _componentService;
28
30
  IDistributionService _distributionService;
29
- mapping(address distributor => NftId distributorNftId) _distributorNftId;
30
- }
31
-
32
- modifier onlyDistributor() {
33
- if (!isDistributor(msg.sender)) {
34
- revert ErrorDistributionNotDistributor(msg.sender);
35
- }
36
- _;
37
31
  }
38
32
 
39
-
40
33
  function processRenewal(
41
34
  ReferralId referralId,
42
35
  uint256 feeAmount
@@ -44,6 +37,7 @@ abstract contract Distribution is
44
37
  external
45
38
  virtual
46
39
  restricted()
40
+ // solhint-disable-next-line no-empty-blocks
47
41
  {
48
42
  // default is no action
49
43
  }
@@ -54,7 +48,6 @@ abstract contract Distribution is
54
48
  external
55
49
  virtual
56
50
  restricted()
57
- onlyDistributor()
58
51
  onlyNftOfType(distributorNftId, DISTRIBUTOR())
59
52
  onlyNftOwner(distributorNftId)
60
53
  returns (Amount withdrawnAmount)
@@ -62,29 +55,9 @@ abstract contract Distribution is
62
55
  return _withdrawCommission(distributorNftId, amount);
63
56
  }
64
57
 
65
-
66
- function isDistributor(address candidate)
67
- public
68
- view
69
- returns (bool)
70
- {
71
- DistributionStorage storage $ = _getDistributionStorage();
72
- return $._distributorNftId[candidate].gtz();
73
- }
74
-
75
-
76
- function getDistributorNftId(address distributor)
77
- public
78
- view
79
- returns (NftId distributorNftId)
80
- {
81
- DistributionStorage storage $ = _getDistributionStorage();
82
- return $._distributorNftId[distributor];
83
- }
84
-
85
-
86
58
  function getDiscountPercentage(string memory referralCode)
87
59
  external
60
+ virtual
88
61
  view
89
62
  returns (
90
63
  UFixed discountPercentage,
@@ -100,6 +73,7 @@ abstract contract Distribution is
100
73
  string memory referralCode
101
74
  )
102
75
  public
76
+ virtual
103
77
  view
104
78
  returns (ReferralId referralId)
105
79
  {
@@ -110,7 +84,7 @@ abstract contract Distribution is
110
84
 
111
85
 
112
86
  function calculateRenewalFeeAmount(
113
- ReferralId referralId,
87
+ ReferralId, // referralId
114
88
  uint256 netPremiumAmount
115
89
  )
116
90
  external
@@ -124,32 +98,31 @@ abstract contract Distribution is
124
98
 
125
99
 
126
100
  /// @dev Returns true iff the component needs to be called when selling/renewing policis
127
- function isVerifying() external pure returns (bool verifying) {
101
+ function isVerifying() external virtual pure returns (bool verifying) {
128
102
  return true;
129
103
  }
130
104
 
131
105
 
132
- function _initializeDistribution(
106
+ function __Distribution_init(
133
107
  address registry,
134
108
  NftId productNftId,
135
109
  IAuthorization authorization,
110
+ bool isInterceptor,
136
111
  address initialOwner,
137
112
  string memory name,
138
- address token,
139
113
  bytes memory componentData // component specifidc data
140
114
  )
141
115
  internal
142
116
  virtual
143
117
  onlyInitializing()
144
118
  {
145
- _initializeInstanceLinkedComponent(
119
+ __InstanceLinkedComponent_init(
146
120
  registry,
147
121
  productNftId,
148
122
  name,
149
- token,
150
123
  DISTRIBUTION(),
151
124
  authorization,
152
- true,
125
+ isInterceptor,
153
126
  initialOwner,
154
127
  componentData);
155
128
 
@@ -180,7 +153,7 @@ abstract contract Distribution is
180
153
  UFixed maxDiscountPercentage,
181
154
  UFixed commissionPercentage,
182
155
  uint32 maxReferralCount,
183
- uint32 maxReferralLifetime,
156
+ Seconds maxReferralLifetime,
184
157
  bool allowSelfReferrals,
185
158
  bool allowRenewals,
186
159
  bytes memory data
@@ -213,16 +186,11 @@ abstract contract Distribution is
213
186
  returns(NftId distributorNftId)
214
187
  {
215
188
  DistributionStorage storage $ = _getDistributionStorage();
216
- if($._distributorNftId[distributor].gtz()) {
217
- revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
218
- }
219
189
 
220
190
  distributorNftId = $._distributionService.createDistributor(
221
191
  distributor,
222
192
  distributorType,
223
193
  data);
224
-
225
- $._distributorNftId[distributor] = distributorNftId;
226
194
  }
227
195
 
228
196
  /// @dev Uptates the distributor type for the specified distributor.
@@ -271,14 +239,6 @@ abstract contract Distribution is
271
239
  return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
272
240
  }
273
241
 
274
- function _nftTransferFrom(address from, address to, uint256 tokenId, address operator) internal virtual override {
275
- // keep track of distributor nft owner
276
- emit LogDistributorUpdated(to, operator);
277
- DistributionStorage storage $ = _getDistributionStorage();
278
- $._distributorNftId[from] = NftIdLib.zero();
279
- $._distributorNftId[to] = NftIdLib.toNftId(tokenId);
280
- }
281
-
282
242
  function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
283
243
  assembly {
284
244
  $.slot := DISTRIBUTION_STORAGE_LOCATION_V1