@etherisc/gif-next 0.0.2-d288ca9-933 → 0.0.2-d2ffc4d-802

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