@etherisc/gif-next 0.0.2-b1fff40-773 → 0.0.2-b214449-558

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 (516) hide show
  1. package/README.md +46 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +203 -77
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
  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 +142 -44
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +163 -389
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +239 -295
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -119
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -64
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +194 -154
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +433 -143
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +980 -326
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +651 -514
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +114 -340
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  107. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -387
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +275 -314
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +122 -108
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +172 -97
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -219
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
  132. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  133. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -394
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  135. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +653 -532
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +326 -125
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +424 -326
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +145 -99
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +241 -398
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +540 -95
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +349 -167
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +420 -246
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -626
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -128
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +76 -106
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  292. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  322. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  326. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  328. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  331. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  333. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  335. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  337. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  340. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  342. package/contracts/accounting/AccountingService.sol +262 -0
  343. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  344. package/contracts/accounting/IAccountingService.sol +45 -0
  345. package/contracts/authorization/AccessAdmin.sol +232 -134
  346. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  347. package/contracts/authorization/Authorization.sol +321 -202
  348. package/contracts/authorization/IAccess.sol +1 -0
  349. package/contracts/authorization/IAccessAdmin.sol +17 -10
  350. package/contracts/authorization/IAuthorization.sol +27 -7
  351. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  352. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  353. package/contracts/distribution/BasicDistribution.sol +12 -22
  354. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  355. package/contracts/distribution/Distribution.sol +36 -50
  356. package/contracts/distribution/DistributionService.sol +113 -93
  357. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  358. package/contracts/distribution/IDistributionComponent.sol +1 -1
  359. package/contracts/distribution/IDistributionService.sol +14 -11
  360. package/contracts/examples/fire/DamageLevel.sol +59 -0
  361. package/contracts/examples/fire/FirePool.sol +90 -0
  362. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  363. package/contracts/examples/fire/FireProduct.sol +438 -0
  364. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  365. package/contracts/examples/fire/FireUSD.sol +26 -0
  366. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  367. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  368. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  369. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  370. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  371. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  372. package/contracts/instance/BundleSet.sol +42 -38
  373. package/contracts/instance/IInstance.sol +21 -37
  374. package/contracts/instance/IInstanceService.sol +9 -29
  375. package/contracts/instance/Instance.sol +59 -66
  376. package/contracts/instance/InstanceAdmin.sol +259 -83
  377. package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
  378. package/contracts/instance/InstanceReader.sol +263 -43
  379. package/contracts/instance/InstanceService.sol +125 -164
  380. package/contracts/instance/InstanceServiceManager.sol +6 -7
  381. package/contracts/instance/InstanceStore.sol +23 -2
  382. package/contracts/instance/RiskSet.sol +118 -0
  383. package/contracts/instance/base/ObjectCounter.sol +1 -2
  384. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  385. package/contracts/instance/base/ObjectSet.sol +31 -33
  386. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  387. package/contracts/instance/module/IBundle.sol +1 -1
  388. package/contracts/instance/module/IComponents.sol +14 -14
  389. package/contracts/instance/module/IPolicy.sol +26 -25
  390. package/contracts/instance/module/IRisk.sol +3 -0
  391. package/contracts/mock/Dip.sol +1 -1
  392. package/contracts/oracle/BasicOracle.sol +0 -1
  393. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  394. package/contracts/oracle/IOracleService.sol +2 -1
  395. package/contracts/oracle/Oracle.sol +9 -23
  396. package/contracts/oracle/OracleService.sol +113 -81
  397. package/contracts/oracle/OracleServiceManager.sol +6 -6
  398. package/contracts/pool/BasicPool.sol +38 -27
  399. package/contracts/pool/BasicPoolAuthorization.sol +32 -11
  400. package/contracts/pool/BundleService.sol +179 -125
  401. package/contracts/pool/BundleServiceManager.sol +6 -6
  402. package/contracts/pool/IBundleService.sol +29 -34
  403. package/contracts/pool/IPoolComponent.sol +19 -15
  404. package/contracts/pool/IPoolService.sol +90 -75
  405. package/contracts/pool/Pool.sol +145 -128
  406. package/contracts/pool/PoolLib.sol +216 -0
  407. package/contracts/pool/PoolService.sol +540 -217
  408. package/contracts/pool/PoolServiceManager.sol +4 -4
  409. package/contracts/product/ApplicationService.sol +72 -43
  410. package/contracts/product/ApplicationServiceManager.sol +4 -4
  411. package/contracts/product/BasicProduct.sol +13 -44
  412. package/contracts/product/BasicProductAuthorization.sol +24 -11
  413. package/contracts/product/ClaimService.sol +368 -153
  414. package/contracts/product/ClaimServiceManager.sol +4 -4
  415. package/contracts/product/IApplicationService.sol +6 -2
  416. package/contracts/product/IClaimService.sol +44 -8
  417. package/contracts/product/IPolicyService.sol +49 -36
  418. package/contracts/product/IPricingService.sol +10 -10
  419. package/contracts/product/IProductComponent.sol +27 -5
  420. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  421. package/contracts/product/PolicyService.sol +516 -267
  422. package/contracts/product/PolicyServiceManager.sol +4 -4
  423. package/contracts/product/PricingService.sol +66 -62
  424. package/contracts/product/PricingServiceManager.sol +4 -4
  425. package/contracts/product/Product.sol +160 -89
  426. package/contracts/product/RiskService.sol +145 -0
  427. package/contracts/product/RiskServiceManager.sol +39 -0
  428. package/contracts/registry/ChainNft.sol +72 -40
  429. package/contracts/registry/IRegistry.sol +60 -28
  430. package/contracts/registry/IRegistryService.sol +5 -12
  431. package/contracts/registry/IRelease.sol +26 -0
  432. package/contracts/registry/ITransferInterceptor.sol +1 -2
  433. package/contracts/registry/Registry.sol +357 -203
  434. package/contracts/registry/RegistryAdmin.sol +171 -182
  435. package/contracts/registry/RegistryService.sol +37 -48
  436. package/contracts/registry/RegistryServiceManager.sol +3 -3
  437. package/contracts/registry/ReleaseAdmin.sol +245 -0
  438. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  439. package/contracts/registry/ReleaseRegistry.sol +258 -234
  440. package/contracts/registry/ServiceAuthorizationV3.sol +99 -52
  441. package/contracts/registry/TokenRegistry.sol +6 -8
  442. package/contracts/shared/Component.sol +74 -127
  443. package/contracts/shared/ComponentService.sol +426 -385
  444. package/contracts/shared/ComponentServiceManager.sol +8 -5
  445. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  446. package/contracts/shared/ContractLib.sol +253 -0
  447. package/contracts/shared/IComponent.sol +8 -17
  448. package/contracts/shared/IComponentService.sol +41 -37
  449. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  450. package/contracts/shared/ILifecycle.sol +3 -1
  451. package/contracts/shared/INftOwnable.sol +2 -0
  452. package/contracts/shared/IPolicyHolder.sol +12 -22
  453. package/contracts/shared/IRegisterable.sol +23 -1
  454. package/contracts/shared/IService.sol +3 -5
  455. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  456. package/contracts/shared/InstanceLinkedComponent.sol +73 -48
  457. package/contracts/shared/KeyValueStore.sol +1 -1
  458. package/contracts/shared/Lifecycle.sol +15 -4
  459. package/contracts/shared/NftOwnable.sol +31 -11
  460. package/contracts/shared/PolicyHolder.sol +17 -57
  461. package/contracts/shared/Registerable.sol +55 -21
  462. package/contracts/shared/RegistryLinked.sol +9 -14
  463. package/contracts/shared/Service.sol +15 -32
  464. package/contracts/shared/TokenHandler.sol +309 -26
  465. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  466. package/contracts/staking/IStaking.sol +7 -9
  467. package/contracts/staking/IStakingService.sol +8 -3
  468. package/contracts/staking/StakeManagerLib.sol +19 -26
  469. package/contracts/staking/Staking.sol +71 -61
  470. package/contracts/staking/StakingManager.sol +8 -6
  471. package/contracts/staking/StakingReader.sol +13 -6
  472. package/contracts/staking/StakingService.sol +54 -35
  473. package/contracts/staking/StakingServiceManager.sol +6 -5
  474. package/contracts/staking/TargetManagerLib.sol +7 -3
  475. package/contracts/type/Amount.sol +15 -0
  476. package/contracts/type/Blocknumber.sol +7 -1
  477. package/contracts/type/ClaimId.sol +6 -1
  478. package/contracts/type/Key32.sol +2 -2
  479. package/contracts/type/Key32Set.sol +62 -0
  480. package/contracts/type/NftId.sol +7 -0
  481. package/contracts/type/ObjectType.sol +52 -20
  482. package/contracts/type/PayoutId.sol +10 -10
  483. package/contracts/type/RiskId.sol +35 -4
  484. package/contracts/type/RoleId.sol +23 -15
  485. package/contracts/type/Seconds.sol +21 -1
  486. package/contracts/type/Selector.sol +5 -0
  487. package/contracts/type/StateId.sol +15 -1
  488. package/contracts/type/Timestamp.sol +10 -5
  489. package/contracts/type/UFixed.sol +13 -119
  490. package/contracts/type/Version.sol +15 -5
  491. package/contracts/upgradeability/ProxyManager.sol +68 -34
  492. package/contracts/upgradeability/Versionable.sol +2 -2
  493. package/package.json +4 -3
  494. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  495. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  496. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  497. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  498. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  499. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  500. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  501. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  502. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  503. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  505. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  506. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  507. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  508. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  509. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  510. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  511. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  512. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  513. package/contracts/instance/module/IAccess.sol +0 -46
  514. package/contracts/product/ProductService.sol +0 -99
  515. package/contracts/product/ProductServiceManager.sol +0 -39
  516. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -11,16 +11,24 @@ interface IAuthorization is
11
11
  IAccess
12
12
  {
13
13
 
14
- /// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
15
- /// Matches with the release returned by the linked service authorization.
16
- function getRelease() external view returns(VersionPart release);
14
+ error ErrorAuthorizationMainTargetNameEmpty();
15
+ error ErrorAuthorizationTargetDomainZero();
17
16
 
18
- /// @dev Returns the list of involved roles.
19
- function getRoles() external view returns(RoleId[] memory roles);
17
+ /// @dev Returns the list of service targets.
18
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
20
19
 
21
20
  /// @dev Returns the service role for the specified service domain.
22
21
  function getServiceRole(ObjectType serviceDomain) external pure returns (RoleId serviceRoleId);
23
22
 
23
+ /// @dev Returns the service target for the specified domain.
24
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
25
+
26
+ /// @dev Returns the component role for the specified domain.
27
+ function getComponentRole(ObjectType componentDomain) external view returns(RoleId componentRoleId);
28
+
29
+ /// @dev Returns the list of involved roles.
30
+ function getRoles() external view returns(RoleId[] memory roles);
31
+
24
32
  /// @dev Returns the name for the provided role id.
25
33
  function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
26
34
 
@@ -30,10 +38,18 @@ interface IAuthorization is
30
38
  /// @dev Returns the main target id name as string.
31
39
  /// This name is used to derive the target id and a corresponding target role name
32
40
  /// Overwrite this function to change the basic pool target name.
33
- function getTargetName() external view returns (string memory name);
41
+ function getMainTargetName() external view returns (string memory name);
34
42
 
35
43
  /// @dev Returns the main target.
36
- function getTarget() external view returns(Str target);
44
+ function getMainTarget() external view returns(Str target);
45
+
46
+ /// @dev Returns the token hander name.
47
+ /// Only components have a token handler.
48
+ function getTokenHandlerName() external view returns(string memory name);
49
+
50
+ /// @dev Returns the token hander target.
51
+ /// Only components have a token handler.
52
+ function getTokenHandlerTarget() external view returns(Str target);
37
53
 
38
54
  /// @dev Returns the complete list of targets.
39
55
  function getTargets() external view returns(Str[] memory targets);
@@ -50,5 +66,9 @@ interface IAuthorization is
50
66
 
51
67
  /// @dev For the given target and role id the list of authorized functions is returned
52
68
  function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions);
69
+
70
+ /// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
71
+ /// Matches with the release returned by the linked service authorization.
72
+ function getRelease() external view returns(VersionPart release);
53
73
  }
54
74
 
@@ -1,11 +1,13 @@
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
+
4
6
  import {IAccess} from "../authorization/IAccess.sol";
5
7
  import {ObjectType} from "../type/ObjectType.sol";
6
8
  import {VersionPart} from "../type/Version.sol";
7
9
 
8
- interface IServiceAuthorization {
10
+ interface IServiceAuthorization is IERC165 {
9
11
 
10
12
  /// @dev Returns the commit hash representing the deployed release
11
13
  function getCommitHash()
@@ -1,6 +1,8 @@
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
+
4
6
  import {IAccess} from "../authorization/IAccess.sol";
5
7
  import {ObjectType} from "../type/ObjectType.sol";
6
8
  import {IServiceAuthorization} from "./IServiceAuthorization.sol";
@@ -10,30 +12,36 @@ import {TimestampLib} from "../type/Timestamp.sol";
10
12
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
11
13
 
12
14
  /// @dev Base contract for release specific service authorization contracts.
13
- contract ServiceAuthorization
14
- is IServiceAuthorization
15
+ contract ServiceAuthorization is
16
+ IServiceAuthorization
15
17
  {
16
- uint256 public constant GIF_VERSION_3 = 3;
18
+ uint256 public constant COMMIT_HASH_LENGTH = 40;
19
+ uint256 public constant GIF_INITIAL_VERSION = 3;
17
20
 
18
- string private _commitHash;
21
+ uint256 public immutable VERSION;
22
+ string public COMMIT_HASH;
19
23
 
20
24
  ObjectType[] internal _serviceDomains;
21
25
  mapping(ObjectType domain => address service) internal _serviceAddress;
22
26
  mapping(ObjectType domain => ObjectType[] authorizedDomains) internal _authorizedDomains;
23
27
  mapping(ObjectType domain => mapping(ObjectType authorizedDomain => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
24
28
 
25
- constructor(string memory commitHash) {
26
- _commitHash = commitHash;
29
+ constructor(string memory commitHash, uint256 version) {
30
+ assert(bytes(commitHash).length == COMMIT_HASH_LENGTH);
31
+ assert(version >= GIF_INITIAL_VERSION);
32
+
33
+ COMMIT_HASH = commitHash;
34
+ VERSION = version;
27
35
  _setupDomains();
28
36
  _setupDomainAuthorizations();
29
37
  }
30
38
 
31
39
  function getCommitHash() external view returns(string memory commitHash) {
32
- return _commitHash;
40
+ return COMMIT_HASH;
33
41
  }
34
42
 
35
43
  function getRelease() external view returns(VersionPart release) {
36
- return VersionPartLib.toVersionPart(GIF_VERSION_3);
44
+ return VersionPartLib.toVersionPart(VERSION);
37
45
  }
38
46
 
39
47
  function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
@@ -56,6 +64,15 @@ contract ServiceAuthorization
56
64
  return _authorizedFunctions[serviceDomain][authorizedDomain];
57
65
  }
58
66
 
67
+ // ERC165
68
+ function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
69
+ return (
70
+ interfaceId == type(IServiceAuthorization).interfaceId ||
71
+ interfaceId == type(IERC165).interfaceId
72
+ );
73
+ }
74
+
75
+
59
76
  /// @dev Overwrite this function for a specific realease.
60
77
  function _setupDomains() internal virtual {}
61
78
 
@@ -86,5 +103,4 @@ contract ServiceAuthorization
86
103
  name: StrLib.toStr(name),
87
104
  createdAt: TimestampLib.blockTimestamp()}));
88
105
  }
89
- }
90
-
106
+ }
@@ -1,25 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
5
4
  import {Distribution} from "./Distribution.sol";
5
+ import {DISTRIBUTOR} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
- import {IDistributionService} from "./IDistributionService.sol";
8
- import {IProductService} from "../product/IProductService.sol";
9
- import {NftId, NftIdLib} from "../type/NftId.sol";
10
- import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
11
- import {Fee, FeeLib} from "../type/Fee.sol";
12
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
- import {IComponentService} from "../shared/IComponentService.sol";
14
- import {IDistribution} from "../instance/module/IDistribution.sol";
15
- import {IDistributionComponent} from "./IDistributionComponent.sol";
16
- import {IRegistry} from "../registry/IRegistry.sol";
17
- import {TokenHandler} from "../shared/TokenHandler.sol";
18
- import {InstanceReader} from "../instance/InstanceReader.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {ReferralId} from "../type/Referral.sol";
9
+ import {Fee} from "../type/Fee.sol";
19
10
  import {UFixed} from "../type/UFixed.sol";
20
11
  import {DistributorType} from "../type/DistributorType.sol";
21
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
23
13
 
24
14
 
25
15
  contract BasicDistribution is
@@ -54,8 +44,8 @@ contract BasicDistribution is
54
44
  )
55
45
  external
56
46
  virtual
57
- onlyOwner()
58
47
  restricted()
48
+ onlyOwner()
59
49
  returns (DistributorType distributorType)
60
50
  {
61
51
  return _createDistributorType(
@@ -77,24 +67,25 @@ contract BasicDistribution is
77
67
  )
78
68
  external
79
69
  virtual
80
- onlyOwner()
81
70
  restricted()
71
+ onlyOwner()
82
72
  returns(NftId distributorNftId)
83
73
  {
84
74
  return _createDistributor(distributor, distributorType, data);
85
75
  }
86
76
 
87
- function updateDistributorType(
77
+ function changeDistributorType(
88
78
  NftId distributorNftId,
89
79
  DistributorType distributorType,
90
80
  bytes memory data
91
81
  )
92
82
  external
93
83
  virtual
94
- onlyOwner()
95
84
  restricted()
85
+ onlyOwner()
86
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
96
87
  {
97
- _updateDistributorType(distributorNftId, distributorType, data);
88
+ _changeDistributorType(distributorNftId, distributorType, data);
98
89
  }
99
90
 
100
91
  /**
@@ -110,8 +101,8 @@ contract BasicDistribution is
110
101
  )
111
102
  external
112
103
  virtual
113
- onlyDistributor()
114
104
  restricted()
105
+ onlyDistributor()
115
106
  returns (ReferralId referralId)
116
107
  {
117
108
  NftId distributorNftId = getDistributorNftId(msg.sender);
@@ -143,7 +134,6 @@ contract BasicDistribution is
143
134
  initialOwner,
144
135
  name,
145
136
  token,
146
- "", // registry data
147
137
  ""); // component specifc data
148
138
  }
149
139
  }
@@ -1,13 +1,15 @@
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 {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {TokenHandler} from "../shared/TokenHandler.sol";
11
13
 
12
14
 
13
15
  contract BasicDistributionAuthorization
@@ -15,16 +17,27 @@ contract BasicDistributionAuthorization
15
17
  {
16
18
 
17
19
  constructor(string memory distributionlName)
18
- Authorization(distributionlName)
20
+ Authorization(distributionlName, DISTRIBUTION())
19
21
  {}
20
22
 
21
- function _setupTargets()
23
+ function _setupServiceTargets()
22
24
  internal
23
25
  virtual override
24
26
  {
25
- _addComponentTargetWithRole(DISTRIBUTION()); // basic target
27
+ _addServiceTargetWithRole(COMPONENT());
26
28
  }
27
29
 
30
+ function _setupTokenHandlerAuthorizations() internal virtual override {
31
+ IAccess.FunctionInfo[] storage functions;
32
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
33
+ _authorize(functions, TokenHandler.approve.selector, "approve");
34
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
35
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
36
+
37
+ // authorize token handler functions for pool service role
38
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(DISTRIBUTION()));
39
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
40
+ }
28
41
 
29
42
  function _setupTargetAuthorizations()
30
43
  internal
@@ -33,11 +46,11 @@ contract BasicDistributionAuthorization
33
46
  IAccess.FunctionInfo[] storage functions;
34
47
 
35
48
  // authorize public role (open access to any account, only allows to lock target)
36
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
49
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
37
50
  _authorize(functions, BasicDistribution.setFees.selector, "setFees");
38
51
  _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
39
52
  _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
40
- _authorize(functions, BasicDistribution.updateDistributorType.selector, "updateDistributorType");
53
+ _authorize(functions, BasicDistribution.changeDistributorType.selector, "changeDistributorType");
41
54
  _authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
42
55
 
43
56
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
@@ -1,25 +1,19 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IDistributionService} from "./IDistributionService.sol";
8
- import {IProductService} from "../product/IProductService.sol";
9
8
  import {NftId, NftIdLib} from "../type/NftId.sol";
10
9
  import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
11
- import {Fee, FeeLib} from "../type/Fee.sol";
10
+ import {Fee} from "../type/Fee.sol";
12
11
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
12
  import {IComponentService} from "../shared/IComponentService.sol";
14
- import {IDistribution} from "../instance/module/IDistribution.sol";
15
13
  import {IDistributionComponent} from "./IDistributionComponent.sol";
16
- import {IRegistry} from "../registry/IRegistry.sol";
17
- import {TokenHandler} from "../shared/TokenHandler.sol";
18
- import {InstanceReader} from "../instance/InstanceReader.sol";
19
14
  import {UFixed} from "../type/UFixed.sol";
20
15
  import {DistributorType} from "../type/DistributorType.sol";
21
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
16
+ import {Timestamp} from "../type/Timestamp.sol";
23
17
 
24
18
 
25
19
  abstract contract Distribution is
@@ -42,13 +36,30 @@ abstract contract Distribution is
42
36
  _;
43
37
  }
44
38
 
45
- function register()
39
+
40
+ function processRenewal(
41
+ ReferralId referralId,
42
+ uint256 feeAmount
43
+ )
46
44
  external
47
45
  virtual
48
- onlyOwner()
46
+ restricted()
49
47
  {
50
- _getDistributionStorage()._componentService.registerDistribution();
51
- _approveTokenHandler(type(uint256).max);
48
+ // default is no action
49
+ }
50
+
51
+
52
+ /// @inheritdoc IDistributionComponent
53
+ function withdrawCommission(NftId distributorNftId, Amount amount)
54
+ external
55
+ virtual
56
+ restricted()
57
+ onlyDistributor()
58
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
59
+ onlyNftOwner(distributorNftId)
60
+ returns (Amount withdrawnAmount)
61
+ {
62
+ return _withdrawCommission(distributorNftId, amount);
52
63
  }
53
64
 
54
65
 
@@ -112,42 +123,19 @@ abstract contract Distribution is
112
123
  }
113
124
 
114
125
 
115
- function processRenewal(
116
- ReferralId referralId,
117
- uint256 feeAmount
118
- )
119
- external
120
- virtual
121
- restricted()
122
- {
123
- // default is no action
124
- }
125
-
126
126
  /// @dev Returns true iff the component needs to be called when selling/renewing policis
127
127
  function isVerifying() external pure returns (bool verifying) {
128
128
  return true;
129
129
  }
130
130
 
131
- /// @inheritdoc IDistributionComponent
132
- function withdrawCommission(NftId distributorNftId, Amount amount)
133
- external
134
- virtual
135
- restricted()
136
- onlyDistributor()
137
- onlyNftOwner(distributorNftId)
138
- returns (Amount withdrawnAmount)
139
- {
140
- return _withdrawCommission(distributorNftId, amount);
141
- }
142
-
131
+
143
132
  function _initializeDistribution(
144
133
  address registry,
145
- NftId instanceNftId,
134
+ NftId productNftId,
146
135
  IAuthorization authorization,
147
136
  address initialOwner,
148
137
  string memory name,
149
138
  address token,
150
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
151
139
  bytes memory componentData // component specifidc data
152
140
  )
153
141
  internal
@@ -156,21 +144,20 @@ abstract contract Distribution is
156
144
  {
157
145
  _initializeInstanceLinkedComponent(
158
146
  registry,
159
- instanceNftId,
147
+ productNftId,
160
148
  name,
161
149
  token,
162
150
  DISTRIBUTION(),
163
151
  authorization,
164
152
  true,
165
153
  initialOwner,
166
- registryData,
167
154
  componentData);
168
155
 
169
156
  DistributionStorage storage $ = _getDistributionStorage();
170
157
  $._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
171
158
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
172
159
 
173
- registerInterface(type(IDistributionComponent).interfaceId);
160
+ _registerInterface(type(IDistributionComponent).interfaceId);
174
161
  }
175
162
 
176
163
  /// @dev Sets the distribution fees to the provided values.
@@ -239,7 +226,7 @@ abstract contract Distribution is
239
226
  }
240
227
 
241
228
  /// @dev Uptates the distributor type for the specified distributor.
242
- function _updateDistributorType(
229
+ function _changeDistributorType(
243
230
  NftId distributorNftId,
244
231
  DistributorType distributorType,
245
232
  bytes memory data
@@ -248,11 +235,10 @@ abstract contract Distribution is
248
235
  virtual
249
236
  {
250
237
  DistributionStorage storage $ = _getDistributionStorage();
251
- // TODO re-enable once implemented
252
- // $._distributionService.updateDistributorType(
253
- // distributorNftId,
254
- // distributorType,
255
- // data);
238
+ $._distributionService.changeDistributorType(
239
+ distributorNftId,
240
+ distributorType,
241
+ data);
256
242
  }
257
243
 
258
244
  /// @dev Create a new referral code for the provided distributor.
@@ -285,9 +271,9 @@ abstract contract Distribution is
285
271
  return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
286
272
  }
287
273
 
288
- function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
274
+ function _nftTransferFrom(address from, address to, uint256 tokenId, address operator) internal virtual override {
289
275
  // keep track of distributor nft owner
290
- emit LogDistributorUpdated(to, msg.sender);
276
+ emit LogDistributorUpdated(to, operator);
291
277
  DistributionStorage storage $ = _getDistributionStorage();
292
278
  $._distributorNftId[from] = NftIdLib.zero();
293
279
  $._distributorNftId[to] = NftIdLib.toNftId(tokenId);