@etherisc/gif-next 0.0.2-b72409c-493 → 0.0.2-b75de7e-093

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 (720) hide show
  1. package/README.md +83 -93
  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 +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  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 +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +235 -538
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1509 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +864 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +332 -286
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +327 -332
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +377 -1971
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +306 -114
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +441 -2766
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1718 -568
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +330 -338
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +157 -114
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +290 -246
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +312 -416
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +386 -136
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +320 -367
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +450 -446
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +208 -167
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +273 -211
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +130 -61
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +277 -124
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +352 -260
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  213. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  214. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  219. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  220. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +115 -182
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  230. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +224 -97
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +148 -18
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  252. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +201 -236
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  267. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Service.sol/Service.json +134 -106
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  279. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  348. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  354. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  355. package/contracts/accounting/AccountingService.sol +262 -0
  356. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  357. package/contracts/accounting/IAccountingService.sol +45 -0
  358. package/contracts/authorization/AccessAdmin.sol +689 -0
  359. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  360. package/contracts/authorization/Authorization.sol +337 -0
  361. package/contracts/authorization/IAccess.sol +49 -0
  362. package/contracts/authorization/IAccessAdmin.sol +143 -0
  363. package/contracts/authorization/IAuthorization.sol +74 -0
  364. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  365. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  366. package/contracts/distribution/BasicDistribution.sol +141 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  368. package/contracts/{components → distribution}/Distribution.sol +173 -164
  369. package/contracts/distribution/DistributionService.sol +358 -0
  370. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  371. package/contracts/distribution/IDistributionComponent.sol +52 -0
  372. package/contracts/distribution/IDistributionService.sol +101 -0
  373. package/contracts/examples/fire/DamageLevel.sol +59 -0
  374. package/contracts/examples/fire/FirePool.sol +90 -0
  375. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  376. package/contracts/examples/fire/FireProduct.sol +438 -0
  377. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  378. package/contracts/examples/fire/FireUSD.sol +26 -0
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  380. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  382. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  383. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  385. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  386. package/contracts/instance/BundleSet.sol +130 -0
  387. package/contracts/instance/IInstance.sol +48 -76
  388. package/contracts/instance/IInstanceService.sol +39 -39
  389. package/contracts/instance/Instance.sol +168 -248
  390. package/contracts/instance/InstanceAdmin.sol +437 -0
  391. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  392. package/contracts/instance/InstanceReader.sol +409 -62
  393. package/contracts/instance/InstanceService.sol +274 -365
  394. package/contracts/instance/InstanceServiceManager.sol +14 -29
  395. package/contracts/instance/InstanceStore.sol +298 -0
  396. package/contracts/instance/RiskSet.sol +118 -0
  397. package/contracts/instance/base/BalanceStore.sol +123 -0
  398. package/contracts/instance/base/Cloneable.sol +28 -0
  399. package/contracts/instance/base/ObjectCounter.sol +20 -0
  400. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  401. package/contracts/instance/base/ObjectSet.sol +77 -0
  402. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  403. package/contracts/instance/module/IBundle.sol +8 -9
  404. package/contracts/instance/module/IComponents.sol +28 -12
  405. package/contracts/instance/module/IDistribution.sol +8 -7
  406. package/contracts/instance/module/IPolicy.sol +48 -35
  407. package/contracts/instance/module/IRisk.sol +4 -1
  408. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  409. package/contracts/oracle/BasicOracle.sol +47 -0
  410. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  411. package/contracts/oracle/IOracle.sol +36 -0
  412. package/contracts/oracle/IOracleComponent.sol +33 -0
  413. package/contracts/oracle/IOracleService.sol +66 -0
  414. package/contracts/oracle/Oracle.sol +156 -0
  415. package/contracts/oracle/OracleService.sol +310 -0
  416. package/contracts/oracle/OracleServiceManager.sol +39 -0
  417. package/contracts/pool/BasicPool.sol +175 -0
  418. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  419. package/contracts/pool/BundleService.sol +395 -0
  420. package/contracts/pool/BundleServiceManager.sol +39 -0
  421. package/contracts/pool/IBundleService.sol +115 -0
  422. package/contracts/pool/IPoolComponent.sol +62 -0
  423. package/contracts/pool/IPoolService.sol +165 -0
  424. package/contracts/pool/Pool.sol +345 -0
  425. package/contracts/pool/PoolLib.sol +216 -0
  426. package/contracts/pool/PoolService.sol +757 -0
  427. package/contracts/pool/PoolServiceManager.sol +39 -0
  428. package/contracts/product/ApplicationService.sol +259 -0
  429. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  430. package/contracts/product/BasicProduct.sol +51 -0
  431. package/contracts/product/BasicProductAuthorization.sol +56 -0
  432. package/contracts/product/ClaimService.sol +632 -0
  433. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  434. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  435. package/contracts/product/IClaimService.sol +135 -0
  436. package/contracts/product/IPolicyService.sol +95 -0
  437. package/contracts/product/IPricingService.sol +39 -0
  438. package/contracts/product/IProductComponent.sol +62 -0
  439. package/contracts/product/IRiskService.sol +33 -0
  440. package/contracts/product/PolicyService.sol +682 -0
  441. package/contracts/product/PolicyServiceLib.sol +65 -0
  442. package/contracts/product/PolicyServiceManager.sol +39 -0
  443. package/contracts/product/PricingService.sol +304 -0
  444. package/contracts/product/PricingServiceManager.sol +39 -0
  445. package/contracts/product/Product.sol +478 -0
  446. package/contracts/product/RiskService.sol +145 -0
  447. package/contracts/product/RiskServiceManager.sol +39 -0
  448. package/contracts/registry/ChainNft.sol +79 -40
  449. package/contracts/registry/IRegistry.sol +95 -30
  450. package/contracts/registry/IRegistryService.sol +36 -41
  451. package/contracts/registry/IRelease.sol +26 -0
  452. package/contracts/registry/ITransferInterceptor.sol +1 -2
  453. package/contracts/registry/Registry.sol +460 -197
  454. package/contracts/registry/RegistryAdmin.sol +354 -0
  455. package/contracts/registry/RegistryService.sol +89 -131
  456. package/contracts/registry/RegistryServiceManager.sol +23 -32
  457. package/contracts/registry/ReleaseAdmin.sol +245 -0
  458. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  459. package/contracts/registry/ReleaseRegistry.sol +511 -0
  460. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  461. package/contracts/registry/TokenRegistry.sol +261 -64
  462. package/contracts/shared/Component.sol +227 -0
  463. package/contracts/shared/ComponentService.sol +692 -0
  464. package/contracts/shared/ComponentServiceManager.sol +38 -0
  465. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  466. package/contracts/shared/ContractLib.sol +253 -0
  467. package/contracts/shared/IComponent.sol +61 -0
  468. package/contracts/shared/IComponentService.sol +112 -0
  469. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  470. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  471. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  472. package/contracts/shared/INftOwnable.sol +4 -2
  473. package/contracts/shared/IPolicyHolder.sol +23 -14
  474. package/contracts/shared/IRegisterable.sol +23 -1
  475. package/contracts/shared/IRegistryLinked.sol +0 -1
  476. package/contracts/shared/IService.sol +12 -7
  477. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  478. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  479. package/contracts/shared/KeyValueStore.sol +131 -0
  480. package/contracts/shared/Lifecycle.sol +88 -0
  481. package/contracts/shared/NftIdSet.sol +65 -0
  482. package/contracts/shared/NftOwnable.sol +34 -27
  483. package/contracts/shared/PolicyHolder.sol +22 -41
  484. package/contracts/shared/Registerable.sol +55 -20
  485. package/contracts/shared/RegistryLinked.sol +9 -19
  486. package/contracts/shared/Service.sol +36 -29
  487. package/contracts/shared/TokenHandler.sol +321 -13
  488. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  489. package/contracts/staking/IStaking.sol +165 -0
  490. package/contracts/staking/IStakingService.sol +165 -0
  491. package/contracts/staking/StakeManagerLib.sol +224 -0
  492. package/contracts/staking/Staking.sol +526 -0
  493. package/contracts/staking/StakingLifecycle.sol +23 -0
  494. package/contracts/staking/StakingManager.sol +52 -0
  495. package/contracts/staking/StakingReader.sol +190 -0
  496. package/contracts/staking/StakingService.sol +430 -0
  497. package/contracts/staking/StakingServiceManager.sol +45 -0
  498. package/contracts/staking/StakingStore.sol +605 -0
  499. package/contracts/staking/TargetManagerLib.sol +211 -0
  500. package/contracts/{types → type}/AddressSet.sol +1 -1
  501. package/contracts/type/Amount.sol +150 -0
  502. package/contracts/{types → type}/Blocknumber.sol +26 -3
  503. package/contracts/{types → type}/ClaimId.sol +31 -3
  504. package/contracts/{types → type}/Fee.sol +33 -24
  505. package/contracts/{types → type}/Key32.sol +2 -2
  506. package/contracts/type/Key32Set.sol +62 -0
  507. package/contracts/{types → type}/NftId.sol +21 -16
  508. package/contracts/{types → type}/NftIdSet.sol +2 -2
  509. package/contracts/type/ObjectType.sol +303 -0
  510. package/contracts/type/PayoutId.sol +82 -0
  511. package/contracts/{types → type}/Referral.sol +2 -1
  512. package/contracts/type/RequestId.sol +75 -0
  513. package/contracts/type/RiskId.sol +74 -0
  514. package/contracts/type/RoleId.sol +182 -0
  515. package/contracts/type/Seconds.sol +101 -0
  516. package/contracts/type/Selector.sol +107 -0
  517. package/contracts/{types → type}/StateId.sol +47 -4
  518. package/contracts/type/String.sol +53 -0
  519. package/contracts/{types → type}/Timestamp.sol +20 -6
  520. package/contracts/{types → type}/UFixed.sol +40 -121
  521. package/contracts/{types → type}/Version.sol +19 -7
  522. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  523. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  524. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  525. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  526. package/package.json +11 -7
  527. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  528. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  529. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  534. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  535. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  536. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  537. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  539. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  540. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  542. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  544. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  549. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  553. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  556. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  558. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  564. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  566. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  568. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  570. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  572. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  580. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  583. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  585. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  587. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  589. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  591. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  593. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  594. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  595. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  596. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  597. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  598. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  599. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  600. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  601. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  603. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  604. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  605. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  606. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  609. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  611. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  613. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  615. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  617. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  619. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  621. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  622. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  623. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  624. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  625. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  627. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  629. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  631. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  633. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  635. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  637. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  639. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  640. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  641. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  643. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  645. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  647. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  649. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  651. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  653. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  655. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  657. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  659. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  661. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  663. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  665. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  667. package/contracts/components/Component.sol +0 -251
  668. package/contracts/components/IComponent.sol +0 -74
  669. package/contracts/components/IDistributionComponent.sol +0 -71
  670. package/contracts/components/IPoolComponent.sol +0 -113
  671. package/contracts/components/IProductComponent.sol +0 -40
  672. package/contracts/components/Pool.sol +0 -299
  673. package/contracts/components/Product.sol +0 -293
  674. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  675. package/contracts/instance/BundleManager.sol +0 -127
  676. package/contracts/instance/Cloneable.sol +0 -51
  677. package/contracts/instance/InstanceAccessManager.sol +0 -522
  678. package/contracts/instance/ObjectManager.sol +0 -82
  679. package/contracts/instance/base/ComponentService.sol +0 -134
  680. package/contracts/instance/base/KeyValueStore.sol +0 -175
  681. package/contracts/instance/base/Lifecycle.sol +0 -109
  682. package/contracts/instance/module/IAccess.sol +0 -54
  683. package/contracts/instance/module/ISetup.sol +0 -33
  684. package/contracts/instance/module/ITreasury.sol +0 -23
  685. package/contracts/instance/service/ApplicationService.sol +0 -350
  686. package/contracts/instance/service/BundleService.sol +0 -336
  687. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  688. package/contracts/instance/service/ClaimService.sol +0 -151
  689. package/contracts/instance/service/DistributionService.sol +0 -467
  690. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  691. package/contracts/instance/service/IBundleService.sol +0 -62
  692. package/contracts/instance/service/IClaimService.sol +0 -61
  693. package/contracts/instance/service/IDistributionService.sol +0 -98
  694. package/contracts/instance/service/IPolicyService.sol +0 -72
  695. package/contracts/instance/service/IPoolService.sol +0 -35
  696. package/contracts/instance/service/IProductService.sol +0 -40
  697. package/contracts/instance/service/PolicyService.sol +0 -403
  698. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  699. package/contracts/instance/service/PoolService.sol +0 -220
  700. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  701. package/contracts/instance/service/ProductService.sol +0 -241
  702. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  703. package/contracts/registry/RegistryAccessManager.sol +0 -216
  704. package/contracts/registry/ReleaseManager.sol +0 -322
  705. package/contracts/shared/ContractDeployerLib.sol +0 -72
  706. package/contracts/test/TestFee.sol +0 -25
  707. package/contracts/test/TestRegisterable.sol +0 -18
  708. package/contracts/test/TestRoleId.sol +0 -14
  709. package/contracts/test/TestService.sol +0 -25
  710. package/contracts/test/TestToken.sol +0 -26
  711. package/contracts/test/TestVersion.sol +0 -44
  712. package/contracts/test/TestVersionable.sol +0 -17
  713. package/contracts/types/ChainId.sol +0 -38
  714. package/contracts/types/NumberId.sol +0 -52
  715. package/contracts/types/ObjectType.sol +0 -157
  716. package/contracts/types/PayoutId.sol +0 -54
  717. package/contracts/types/RiskId.sol +0 -43
  718. package/contracts/types/RoleId.sol +0 -97
  719. package/contracts/types/Seconds.sol +0 -54
  720. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,74 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {ObjectType} from "../type/ObjectType.sol";
6
+ import {RoleId} from "../type/RoleId.sol";
7
+ import {Str} from "../type/String.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+
10
+ interface IAuthorization is
11
+ IAccess
12
+ {
13
+
14
+ error ErrorAuthorizationMainTargetNameEmpty();
15
+ error ErrorAuthorizationTargetDomainZero();
16
+
17
+ /// @dev Returns the list of service targets.
18
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
19
+
20
+ /// @dev Returns the service role for the specified service domain.
21
+ function getServiceRole(ObjectType serviceDomain) external pure returns (RoleId serviceRoleId);
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
+
32
+ /// @dev Returns the name for the provided role id.
33
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
34
+
35
+ /// @dev Returns true iff the specified role id exists.
36
+ function roleExists(RoleId roleId) external view returns(bool exists);
37
+
38
+ /// @dev Returns the main target id name as string.
39
+ /// This name is used to derive the target id and a corresponding target role name
40
+ /// Overwrite this function to change the basic pool target name.
41
+ function getMainTargetName() external view returns (string memory name);
42
+
43
+ /// @dev Returns the main 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);
53
+
54
+ /// @dev Returns the complete list of targets.
55
+ function getTargets() external view returns(Str[] memory targets);
56
+
57
+ /// @dev Returns true iff the specified target exists.
58
+ function targetExists(Str target) external view returns(bool exists);
59
+
60
+ /// @dev Returns the role id associated with the target.
61
+ /// If no role is associated with the target the zero role id is returned.
62
+ function getTargetRole(Str target) external view returns(RoleId roleId);
63
+
64
+ /// @dev For the given target the list of authorized role ids is returned
65
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds);
66
+
67
+ /// @dev For the given target and role id the list of authorized functions is returned
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);
73
+ }
74
+
@@ -0,0 +1,40 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+
10
+ interface IServiceAuthorization is IERC165 {
11
+
12
+ /// @dev Returns the commit hash representing the deployed release
13
+ function getCommitHash()
14
+ external
15
+ view
16
+ returns(string memory commitHash);
17
+
18
+ /// @dev Returns the release (VersionPart) for which the service authorizations are defined by this contract.
19
+ function getRelease()
20
+ external
21
+ view
22
+ returns(VersionPart release);
23
+
24
+ /// @dev Returns the service domain for the provided index.
25
+ function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain);
26
+
27
+ /// @dev Returns the full list of service domains for this release.
28
+ /// Services need to be registered for the release in revers order of this list.
29
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
30
+
31
+ /// @dev Returns the expected service address for the provided domain.
32
+ function getServiceAddress(ObjectType serviceDomain) external view returns(address service);
33
+
34
+ /// @dev Given the service domain this function returns the list of other service domains that are authorized to access this service.
35
+ function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains);
36
+
37
+ /// @dev For the given service domain and authorized domain the function returns the list of authorized functions
38
+ function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions);
39
+ }
40
+
@@ -0,0 +1,106 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
9
+ import {SelectorLib} from "../type/Selector.sol";
10
+ import {StrLib} from "../type/String.sol";
11
+ import {TimestampLib} from "../type/Timestamp.sol";
12
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
13
+
14
+ /// @dev Base contract for release specific service authorization contracts.
15
+ contract ServiceAuthorization is
16
+ IServiceAuthorization
17
+ {
18
+ uint256 public constant COMMIT_HASH_LENGTH = 40;
19
+ uint256 public constant GIF_INITIAL_VERSION = 3;
20
+
21
+ uint256 public immutable VERSION;
22
+ string public COMMIT_HASH;
23
+
24
+ ObjectType[] internal _serviceDomains;
25
+ 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
+
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;
35
+ _setupDomains();
36
+ _setupDomainAuthorizations();
37
+ }
38
+
39
+ function getCommitHash() external view returns(string memory commitHash) {
40
+ return COMMIT_HASH;
41
+ }
42
+
43
+ function getRelease() external view returns(VersionPart release) {
44
+ return VersionPartLib.toVersionPart(VERSION);
45
+ }
46
+
47
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
48
+ return _serviceDomains;
49
+ }
50
+
51
+ function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain) {
52
+ return _serviceDomains[idx];
53
+ }
54
+
55
+ function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
56
+ return _serviceAddress[serviceDomain];
57
+ }
58
+
59
+ function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains) {
60
+ return _authorizedDomains[serviceDomain];
61
+ }
62
+
63
+ function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
64
+ return _authorizedFunctions[serviceDomain][authorizedDomain];
65
+ }
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
+
76
+ /// @dev Overwrite this function for a specific realease.
77
+ function _setupDomains() internal virtual {}
78
+
79
+ /// @dev Overwrite this function for a specific realease.
80
+ function _setupDomainAuthorizations() internal virtual {}
81
+
82
+ /// @dev Use this method to to add an authorized domain.
83
+ /// The services will need to be registered in the order they are added using this function.
84
+ function _authorizeDomain(ObjectType serviceDomain, address serviceAddress) internal {
85
+ _serviceDomains.push(serviceDomain);
86
+ _serviceAddress[serviceDomain] = serviceAddress;
87
+ }
88
+
89
+ /// @dev Use this method to authorize the specified domain to access the service domain.
90
+ function _authorizeForService(ObjectType serviceDomain, ObjectType authorizedDomain)
91
+ internal
92
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
93
+ {
94
+ _authorizedDomains[serviceDomain].push(authorizedDomain);
95
+ return _authorizedFunctions[serviceDomain][authorizedDomain];
96
+ }
97
+
98
+ /// @dev Use this method to authorize a specific function authorization
99
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
100
+ functions.push(
101
+ IAccess.FunctionInfo({
102
+ selector: SelectorLib.toSelector(selector),
103
+ name: StrLib.toStr(name),
104
+ createdAt: TimestampLib.blockTimestamp()}));
105
+ }
106
+ }
@@ -0,0 +1,141 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+
6
+ import {Distribution} from "./Distribution.sol";
7
+ import {DistributorType} from "../type/DistributorType.sol";
8
+ import {DISTRIBUTOR} from "../type/ObjectType.sol";
9
+ import {Fee} from "../type/Fee.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {ReferralId} from "../type/Referral.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {Timestamp} from "../type/Timestamp.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+
16
+
17
+ contract BasicDistribution is
18
+ Distribution
19
+ {
20
+
21
+ function setFees(
22
+ Fee memory distributionFee,
23
+ Fee memory minDistributionOwnerFee
24
+ )
25
+ external
26
+ virtual
27
+ onlyOwner()
28
+ restricted()
29
+ {
30
+ _setFees(
31
+ distributionFee,
32
+ minDistributionOwnerFee);
33
+ }
34
+
35
+
36
+ function createDistributorType(
37
+ string memory name,
38
+ UFixed minDiscountPercentage,
39
+ UFixed maxDiscountPercentage,
40
+ UFixed commissionPercentage,
41
+ uint32 maxReferralCount,
42
+ Seconds maxReferralLifetime,
43
+ bool allowSelfReferrals,
44
+ bool allowRenewals,
45
+ bytes memory data
46
+ )
47
+ external
48
+ virtual
49
+ restricted()
50
+ onlyOwner()
51
+ returns (DistributorType distributorType)
52
+ {
53
+ return _createDistributorType(
54
+ name,
55
+ minDiscountPercentage,
56
+ maxDiscountPercentage,
57
+ commissionPercentage,
58
+ maxReferralCount,
59
+ maxReferralLifetime,
60
+ allowSelfReferrals,
61
+ allowRenewals,
62
+ data);
63
+ }
64
+
65
+ function createDistributor(
66
+ address distributor,
67
+ DistributorType distributorType,
68
+ bytes memory data
69
+ )
70
+ external
71
+ virtual
72
+ restricted()
73
+ onlyOwner()
74
+ returns(NftId distributorNftId)
75
+ {
76
+ return _createDistributor(distributor, distributorType, data);
77
+ }
78
+
79
+ function changeDistributorType(
80
+ NftId distributorNftId,
81
+ DistributorType distributorType,
82
+ bytes memory data
83
+ )
84
+ external
85
+ virtual
86
+ restricted()
87
+ onlyOwner()
88
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
89
+ {
90
+ _changeDistributorType(distributorNftId, distributorType, data);
91
+ }
92
+
93
+ /**
94
+ * @dev lets distributors create referral codes.
95
+ * referral codes need to be unique
96
+ */
97
+ function createReferral(
98
+ string memory code,
99
+ UFixed discountPercentage,
100
+ uint32 maxReferrals,
101
+ Timestamp expiryAt,
102
+ bytes memory data
103
+ )
104
+ external
105
+ virtual
106
+ restricted()
107
+ onlyDistributor()
108
+ returns (ReferralId referralId)
109
+ {
110
+ NftId distributorNftId = getDistributorNftId(msg.sender);
111
+ return _createReferral(
112
+ distributorNftId,
113
+ code,
114
+ discountPercentage,
115
+ maxReferrals,
116
+ expiryAt,
117
+ data); // data
118
+ }
119
+
120
+ function _initializeBasicDistribution(
121
+ address registry,
122
+ NftId instanceNftId,
123
+ IAuthorization authorization,
124
+ address initialOwner,
125
+ string memory name,
126
+ address token
127
+ )
128
+ internal
129
+ virtual
130
+ onlyInitializing()
131
+ {
132
+ _initializeDistribution(
133
+ registry,
134
+ instanceNftId,
135
+ authorization,
136
+ initialOwner,
137
+ name,
138
+ token,
139
+ ""); // component specifc data
140
+ }
141
+ }
@@ -0,0 +1,60 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+
7
+ import {Authorization} from "../authorization/Authorization.sol";
8
+ import {BasicDistribution} from "./BasicDistribution.sol";
9
+ import {Distribution} from "./Distribution.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";
13
+
14
+
15
+ contract BasicDistributionAuthorization
16
+ is Authorization
17
+ {
18
+
19
+ constructor(string memory distributionlName)
20
+ Authorization(distributionlName, DISTRIBUTION())
21
+ {}
22
+
23
+ function _setupServiceTargets()
24
+ internal
25
+ virtual override
26
+ {
27
+ _addServiceTargetWithRole(COMPONENT());
28
+ }
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
+ }
41
+
42
+ function _setupTargetAuthorizations()
43
+ internal
44
+ virtual override
45
+ {
46
+ IAccess.FunctionInfo[] storage functions;
47
+
48
+ // authorize public role (open access to any account, only allows to lock target)
49
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
50
+ _authorize(functions, BasicDistribution.setFees.selector, "setFees");
51
+ _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
52
+ _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
53
+ _authorize(functions, BasicDistribution.changeDistributorType.selector, "changeDistributorType");
54
+ _authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
55
+
56
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
57
+ _authorize(functions, Distribution.withdrawCommission.selector, "withdrawCommission");
58
+ }
59
+ }
60
+