@etherisc/gif-next 0.0.2-a2def05-550 → 0.0.2-a33f6f4-689

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 (515) hide show
  1. package/README.md +27 -6
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +495 -254
  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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +273 -16
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +391 -199
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +139 -15
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +161 -294
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +261 -27
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -184
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +339 -159
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -69
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +89 -166
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +205 -66
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +236 -259
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -175
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +301 -206
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +767 -356
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +235 -38
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +143 -92
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +283 -61
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +734 -324
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +205 -90
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +834 -226
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +174 -168
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -53
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +498 -357
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  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 +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +142 -183
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +243 -29
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +104 -116
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +118 -135
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +156 -81
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +130 -45
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +137 -154
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +261 -27
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +161 -262
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +114 -85
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -147
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +279 -247
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  136. package/artifacts/contracts/pool/Pool.sol/Pool.json +137 -165
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +495 -390
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +168 -55
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +195 -48
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +115 -42
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +251 -207
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +261 -27
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +319 -148
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -72
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +199 -21
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +244 -48
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +117 -43
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +237 -188
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +377 -148
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +153 -60
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +196 -105
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +123 -54
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  178. package/artifacts/contracts/product/Product.sol/Product.json +247 -203
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +172 -67
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +127 -42
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +117 -17
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +161 -53
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +590 -433
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +112 -183
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +102 -37
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +417 -249
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  213. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  214. package/artifacts/contracts/shared/Component.sol/Component.json +94 -93
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +495 -507
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -78
  219. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +60 -2
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -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 +1 -1
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +81 -75
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +445 -282
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +104 -116
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -134
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +60 -2
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  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 +1 -1
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +161 -108
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +148 -16
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +248 -188
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +131 -53
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +31 -63
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +204 -55
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -42
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +185 -130
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +33 -23
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  338. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  342. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  346. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  347. package/contracts/accounting/AccountingService.sol +262 -0
  348. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  349. package/contracts/accounting/IAccountingService.sol +45 -0
  350. package/contracts/authorization/AccessAdmin.sol +337 -222
  351. package/contracts/authorization/AccessAdminLib.sol +183 -0
  352. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  353. package/contracts/authorization/Authorization.sol +350 -202
  354. package/contracts/authorization/IAccess.sol +1 -0
  355. package/contracts/authorization/IAccessAdmin.sol +69 -35
  356. package/contracts/authorization/IAuthorization.sol +33 -7
  357. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  358. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  359. package/contracts/distribution/BasicDistribution.sol +20 -17
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  361. package/contracts/distribution/Distribution.sol +36 -87
  362. package/contracts/distribution/DistributionService.sol +132 -83
  363. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  364. package/contracts/distribution/IDistributionComponent.sol +1 -10
  365. package/contracts/distribution/IDistributionService.sol +22 -20
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +86 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +433 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +43 -12
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +8 -12
  375. package/contracts/examples/unpermissioned/SimplePool.sol +36 -10
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -29
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +42 -38
  380. package/contracts/instance/IInstance.sol +60 -17
  381. package/contracts/instance/IInstanceService.sol +27 -31
  382. package/contracts/instance/Instance.sol +115 -40
  383. package/contracts/instance/InstanceAdmin.sol +287 -122
  384. package/contracts/instance/InstanceAuthorizationV3.sol +90 -59
  385. package/contracts/instance/InstanceReader.sol +259 -39
  386. package/contracts/instance/InstanceService.sol +186 -194
  387. package/contracts/instance/InstanceServiceManager.sol +6 -7
  388. package/contracts/instance/InstanceStore.sol +13 -2
  389. package/contracts/instance/RiskSet.sol +118 -0
  390. package/contracts/instance/base/ObjectCounter.sol +1 -2
  391. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  392. package/contracts/instance/base/ObjectSet.sol +31 -33
  393. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  394. package/contracts/instance/module/IComponents.sol +13 -9
  395. package/contracts/instance/module/IDistribution.sol +5 -2
  396. package/contracts/instance/module/IPolicy.sol +4 -3
  397. package/contracts/instance/module/IRisk.sol +3 -0
  398. package/contracts/oracle/BasicOracle.sol +1 -4
  399. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  400. package/contracts/oracle/IOracleService.sol +2 -1
  401. package/contracts/oracle/Oracle.sol +5 -18
  402. package/contracts/oracle/OracleService.sol +111 -80
  403. package/contracts/oracle/OracleServiceManager.sol +6 -6
  404. package/contracts/pool/BasicPool.sol +32 -25
  405. package/contracts/pool/BasicPoolAuthorization.sol +27 -9
  406. package/contracts/pool/BundleService.sol +91 -134
  407. package/contracts/pool/BundleServiceManager.sol +6 -6
  408. package/contracts/pool/IBundleService.sol +15 -34
  409. package/contracts/pool/IPoolComponent.sol +19 -15
  410. package/contracts/pool/IPoolService.sol +70 -65
  411. package/contracts/pool/Pool.sol +136 -119
  412. package/contracts/pool/PoolLib.sol +216 -0
  413. package/contracts/pool/PoolService.sol +482 -236
  414. package/contracts/pool/PoolServiceManager.sol +4 -4
  415. package/contracts/product/ApplicationService.sol +47 -21
  416. package/contracts/product/ApplicationServiceManager.sol +4 -4
  417. package/contracts/product/BasicProduct.sol +9 -13
  418. package/contracts/product/BasicProductAuthorization.sol +24 -11
  419. package/contracts/product/ClaimService.sol +300 -155
  420. package/contracts/product/ClaimServiceManager.sol +4 -4
  421. package/contracts/product/IApplicationService.sol +8 -2
  422. package/contracts/product/IClaimService.sol +17 -4
  423. package/contracts/product/IPolicyService.sol +33 -11
  424. package/contracts/product/IPricingService.sol +10 -9
  425. package/contracts/product/IProductComponent.sol +27 -4
  426. package/contracts/product/IRiskService.sol +7 -7
  427. package/contracts/product/PolicyService.sol +337 -246
  428. package/contracts/product/PolicyServiceLib.sol +65 -0
  429. package/contracts/product/PolicyServiceManager.sol +4 -4
  430. package/contracts/product/PricingService.sol +36 -28
  431. package/contracts/product/PricingServiceManager.sol +4 -4
  432. package/contracts/product/Product.sol +118 -76
  433. package/contracts/product/RiskService.sol +90 -33
  434. package/contracts/product/RiskServiceManager.sol +4 -4
  435. package/contracts/registry/ChainNft.sol +10 -11
  436. package/contracts/registry/IRegistry.sol +16 -18
  437. package/contracts/registry/IRegistryService.sol +5 -12
  438. package/contracts/registry/IRelease.sol +26 -0
  439. package/contracts/registry/ITransferInterceptor.sol +1 -2
  440. package/contracts/registry/Registry.sol +36 -8
  441. package/contracts/registry/RegistryAdmin.sol +145 -351
  442. package/contracts/registry/RegistryAuthorization.sol +267 -0
  443. package/contracts/registry/RegistryService.sol +36 -47
  444. package/contracts/registry/RegistryServiceManager.sol +3 -3
  445. package/contracts/registry/ReleaseAdmin.sol +253 -0
  446. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  447. package/contracts/registry/ReleaseRegistry.sol +271 -245
  448. package/contracts/registry/ServiceAuthorizationV3.sol +182 -50
  449. package/contracts/registry/TokenRegistry.sol +6 -8
  450. package/contracts/shared/Component.sol +61 -119
  451. package/contracts/shared/ComponentService.sol +436 -369
  452. package/contracts/shared/ComponentServiceManager.sol +8 -5
  453. package/contracts/shared/ComponentVerifyingService.sol +27 -16
  454. package/contracts/shared/ContractLib.sol +281 -0
  455. package/contracts/shared/IComponent.sol +5 -17
  456. package/contracts/shared/IComponentService.sol +42 -38
  457. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  458. package/contracts/shared/ILifecycle.sol +3 -1
  459. package/contracts/shared/INftOwnable.sol +2 -0
  460. package/contracts/shared/IPolicyHolder.sol +12 -13
  461. package/contracts/shared/IRegisterable.sol +23 -1
  462. package/contracts/shared/IService.sol +3 -5
  463. package/contracts/shared/InitializableERC165.sol +9 -1
  464. package/contracts/shared/InstanceLinkedComponent.sol +69 -46
  465. package/contracts/shared/KeyValueStore.sol +1 -1
  466. package/contracts/shared/Lifecycle.sol +15 -4
  467. package/contracts/shared/NftOwnable.sol +27 -7
  468. package/contracts/shared/PolicyHolder.sol +12 -6
  469. package/contracts/shared/Registerable.sol +50 -19
  470. package/contracts/shared/RegistryLinked.sol +7 -13
  471. package/contracts/shared/Service.sol +13 -30
  472. package/contracts/shared/TokenHandler.sol +275 -72
  473. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  474. package/contracts/staking/IStaking.sol +17 -10
  475. package/contracts/staking/IStakingService.sol +16 -4
  476. package/contracts/staking/Staking.sol +97 -49
  477. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
  478. package/contracts/staking/StakingManager.sol +8 -6
  479. package/contracts/staking/StakingReader.sol +18 -21
  480. package/contracts/staking/StakingService.sol +81 -24
  481. package/contracts/staking/StakingServiceManager.sol +6 -5
  482. package/contracts/staking/StakingStore.sol +2 -1
  483. package/contracts/type/Amount.sol +15 -0
  484. package/contracts/type/ClaimId.sol +6 -1
  485. package/contracts/type/Key32.sol +2 -2
  486. package/contracts/type/Key32Set.sol +62 -0
  487. package/contracts/type/NftId.sol +7 -0
  488. package/contracts/type/ObjectType.sol +54 -35
  489. package/contracts/type/PayoutId.sol +10 -10
  490. package/contracts/type/RiskId.sol +38 -6
  491. package/contracts/type/RoleId.sol +23 -15
  492. package/contracts/type/Selector.sol +5 -0
  493. package/contracts/type/StateId.sol +14 -1
  494. package/contracts/type/Timestamp.sol +0 -5
  495. package/contracts/type/UFixed.sol +13 -119
  496. package/contracts/type/Version.sol +54 -5
  497. package/contracts/upgradeability/ProxyManager.sol +68 -34
  498. package/contracts/upgradeability/Versionable.sol +2 -2
  499. package/package.json +5 -4
  500. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  501. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  502. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  503. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  504. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  505. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  506. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  507. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  508. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  509. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  510. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  511. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  512. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  513. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  514. package/contracts/instance/module/IAccess.sol +0 -46
  515. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -3,6 +3,8 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "./IAccess.sol";
5
5
  import {IAuthorization} from "./IAuthorization.sol";
6
+
7
+ import {InitializableERC165} from "../shared/InitializableERC165.sol";
6
8
  import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
7
9
  import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
8
10
  import {SelectorLib} from "../type/Selector.sol";
@@ -10,208 +12,354 @@ import {Str, StrLib} from "../type/String.sol";
10
12
  import {TimestampLib} from "../type/Timestamp.sol";
11
13
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
14
 
13
- contract Authorization
14
- is IAuthorization
15
+ contract Authorization is
16
+ InitializableERC165,
17
+ IAuthorization
15
18
  {
16
- uint256 public constant GIF_VERSION = 3;
17
- string public constant ROLE_NAME_SUFFIX = "Role";
18
- string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
19
-
20
- string internal _mainTargetName = "Component";
21
- Str[] internal _targets;
22
-
23
- mapping(Str target => RoleId roleid) internal _targetRole;
24
- mapping(Str target => bool exists) internal _targetExists;
25
-
26
- RoleId[] internal _roles;
27
- mapping(RoleId role => RoleInfo info) internal _roleInfo;
28
-
29
- mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
30
- mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
31
-
32
-
33
- constructor(string memory mainTargetName) {
34
- _mainTargetName = mainTargetName;
35
-
36
- _setupRoles();
37
- _setupTargets();
38
- _setupTargetAuthorizations();
39
- }
40
-
41
- function getRelease() public virtual pure returns(VersionPart release) {
42
- return VersionPartLib.toVersionPart(GIF_VERSION);
43
- }
44
-
45
- function getRoles() external view returns(RoleId[] memory roles) {
46
- return _roles;
47
- }
48
-
49
- function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
50
- return RoleIdLib.roleForTypeAndVersion(
51
- serviceDomain, getRelease());
52
- }
53
-
54
- function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
55
- return _roleInfo[roleId];
56
- }
57
-
58
- function roleExists(RoleId roleId) public view returns(bool exists) {
59
- return _roleInfo[roleId].roleType != RoleType.Undefined;
60
- }
61
-
62
- function getTarget() public view returns(Str) {
63
- if (_targets.length > 0) {
64
- return _targets[0];
65
- }
66
-
67
- return StrLib.toStr("");
68
- }
69
-
70
- function getTargets() external view returns(Str[] memory targets) {
71
- return _targets;
72
- }
73
-
74
- function targetExists(Str target) external view returns(bool exists) {
75
- return _targetExists[target];
76
- }
77
-
78
- function getTargetRole(Str target) external view returns(RoleId roleId) {
79
- return _targetRole[target];
80
- }
81
-
82
- function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
83
- return _authorizedRoles[target];
84
- }
85
-
86
- function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
87
- return _authorizedFunctions[target][roleId];
88
- }
89
-
90
- function getTargetName() public virtual view returns (string memory name) {
91
- return _mainTargetName;
92
- }
93
-
94
- /// @dev Overwrite this function for a specific realease.
95
- /// The first target added represents the components/module main target.
96
- function _setupTargets() internal virtual { }
97
-
98
- /// @dev Overwrite this function for a specific realease.
99
- function _setupRoles() internal virtual {}
100
-
101
- /// @dev Overwrite this function for a specific realease.
102
- function _setupTargetAuthorizations() internal virtual {}
103
-
104
- /// @dev Use this method to to add an authorized role.
105
- function _addRole(RoleId roleId, RoleInfo memory info) internal {
106
- _roles.push(roleId);
107
- _roleInfo[roleId] = info;
108
- }
109
-
110
- /// @dev Add a contract role for the provided role id and name.
111
- function _addContractRole(RoleId roleId, string memory name) internal {
112
- _addRole(
113
- roleId,
114
- _toRoleInfo(
115
- ADMIN_ROLE(),
116
- RoleType.Contract,
117
- 1,
118
- name));
119
- }
120
-
121
- /// @dev Add the versioned service role for the specified service domain
122
- function _addServiceRole(ObjectType serviceDomain) internal {
123
- _addContractRole(
124
- getServiceRole(serviceDomain),
125
- ObjectTypeLib.toVersionedName(
126
- ObjectTypeLib.toName(serviceDomain),
127
- SERVICE_ROLE_NAME_SUFFIX,
128
- getRelease().toInt()));
129
- }
130
-
131
- function _addComponentTargetWithRole(ObjectType componentType) internal {
132
- _addTargetWithRole(
133
- getTargetName(),
134
- RoleIdLib.toComponentRoleId(componentType, 0),
135
- _toTargetRoleName(
136
- getTargetName()));
137
- }
138
-
139
- /// @dev Add a contract role for the provided role id and name.
140
- function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
141
- _addRole(
142
- roleId,
143
- _toRoleInfo(
144
- adminRoleId,
145
- RoleType.Custom,
146
- maxMemberCount,
147
- name));
148
- }
149
-
150
- /// @dev Use this method to to add an authorized target together with its target role.
151
- function _addTargetWithRole(
152
- string memory targetName,
153
- RoleId roleId,
154
- string memory roleName
155
- )
156
- internal
157
- {
158
- // add target
159
- Str target = StrLib.toStr(targetName);
160
- _targets.push(target);
161
-
162
- _targetExists[target] = true;
163
-
164
- // link role to target if defined
165
- if (roleId != RoleIdLib.zero()) {
166
- // add role if new
167
- if (!roleExists(roleId)) {
168
- _addContractRole(roleId, roleName);
169
- }
170
-
171
- // link target to role
172
- _targetRole[target] = roleId;
173
- }
174
- }
175
-
176
- /// @dev Use this method to to add an authorized target.
177
- function _addTarget(string memory name) internal {
178
- _addTargetWithRole(name, RoleIdLib.zero(), "");
179
- }
180
-
181
- /// @dev Use this method to authorize the specified role to access the target.
182
- function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
183
- internal
184
- returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
185
- {
186
- Str targetStr = StrLib.toStr(target);
187
- _authorizedRoles[targetStr].push(authorizedRoleId);
188
- return _authorizedFunctions[targetStr][authorizedRoleId];
189
- }
190
-
191
- /// @dev Use this method to authorize a specific function authorization
192
- function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
193
- functions.push(
194
- IAccess.FunctionInfo({
195
- selector: SelectorLib.toSelector(selector),
196
- name: StrLib.toStr(name),
197
- createdAt: TimestampLib.blockTimestamp()}));
198
- }
199
-
200
- function _toTargetRoleName(string memory targetName) internal view returns (string memory) {
201
- return string(
202
- abi.encodePacked(
203
- targetName,
204
- ROLE_NAME_SUFFIX));
205
- }
206
-
207
- /// @dev creates a role info object from the provided parameters
208
- function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
209
- return RoleInfo({
210
- name: StrLib.toStr(name),
211
- adminRoleId: adminRoleId,
212
- roleType: roleType,
213
- maxMemberCount: maxMemberCount,
214
- createdAt: TimestampLib.blockTimestamp()});
215
- }
19
+ uint256 public constant GIF_RELEASE = 3;
20
+
21
+ string public constant ROLE_NAME_SUFFIX = "Role";
22
+ string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
23
+
24
+ uint64 internal _nextGifContractRoleId;
25
+ ObjectType[] internal _serviceDomains;
26
+ mapping(ObjectType domain => Str target) internal _serviceTarget;
27
+
28
+ string internal _mainTargetName = "Component";
29
+ string internal _tokenHandlerName = "ComponentTH";
30
+
31
+ ObjectType internal _domain;
32
+ Str internal _mainTarget;
33
+ Str internal _tokenHandlerTarget;
34
+ Str[] internal _targets;
35
+
36
+ mapping(Str target => RoleId roleid) internal _targetRole;
37
+ mapping(Str target => bool exists) internal _targetExists;
38
+
39
+ RoleId[] internal _roles;
40
+ mapping(RoleId role => RoleInfo info) internal _roleInfo;
41
+
42
+ mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
43
+ mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
44
+
45
+
46
+ constructor(
47
+ string memory mainTargetName,
48
+ ObjectType targetDomain,
49
+ bool isComponent,
50
+ bool includeTokenHandler
51
+ )
52
+ {
53
+ // checks
54
+ if (bytes(mainTargetName).length == 0) {
55
+ revert ErrorAuthorizationMainTargetNameEmpty();
56
+ }
57
+
58
+ if (targetDomain == ObjectTypeLib.zero()) {
59
+ revert ErrorAuthorizationTargetDomainZero();
60
+ }
61
+
62
+ // effects
63
+ _initializeERC165();
64
+
65
+ _domain = targetDomain;
66
+ _mainTargetName = mainTargetName;
67
+ _mainTarget = StrLib.toStr(mainTargetName);
68
+ _nextGifContractRoleId = 10;
69
+
70
+ if (isComponent) {
71
+ if (targetDomain.eqz()) {
72
+ revert ErrorAuthorizationTargetDomainZero();
73
+ }
74
+
75
+ RoleId mainRoleId = RoleIdLib.toComponentRoleId(targetDomain, 0);
76
+ string memory mainRolName = _toTargetRoleName(_mainTargetName);
77
+
78
+ _addTargetWithRole(
79
+ _mainTargetName,
80
+ mainRoleId,
81
+ mainRolName);
82
+ } else {
83
+ _addGifContractTarget(_mainTargetName);
84
+ }
85
+ // setup use case specific parts
86
+ _setupServiceTargets();
87
+ _setupRoles(); // not including main target role
88
+ _setupTargets(); // not including main target (and token handler target)
89
+ _setupTargetAuthorizations(); // not including token handler target
90
+
91
+ // setup component token handler
92
+ if (includeTokenHandler) {
93
+ _tokenHandlerName = string(abi.encodePacked(mainTargetName, "TH"));
94
+ _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
95
+ _addTarget(_tokenHandlerName);
96
+ _setupTokenHandlerAuthorizations();
97
+ }
98
+
99
+ _registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
100
+ }
101
+
102
+ function getDomain() external view returns(ObjectType targetDomain) {
103
+ return _domain;
104
+ }
105
+
106
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
107
+ return _serviceDomains;
108
+ }
109
+
110
+ function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
111
+ return RoleIdLib.toComponentRoleId(componentDomain, 0);
112
+ }
113
+
114
+ function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
115
+ return RoleIdLib.roleForTypeAndVersion(
116
+ serviceDomain,
117
+ getRelease());
118
+ }
119
+
120
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
121
+ return _serviceTarget[serviceDomain];
122
+ }
123
+
124
+ function getRoles() external view returns(RoleId[] memory roles) {
125
+ return _roles;
126
+ }
127
+
128
+ function roleExists(RoleId roleId) public view returns(bool exists) {
129
+ return _roleInfo[roleId].roleType != RoleType.Undefined;
130
+ }
131
+
132
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
133
+ return _roleInfo[roleId];
134
+ }
135
+
136
+ function getMainTargetName() public virtual view returns (string memory name) {
137
+ return _mainTargetName;
138
+ }
139
+
140
+ function getMainTarget() public view returns(Str) {
141
+ return _mainTarget;
142
+ }
143
+
144
+ function getTokenHandlerName() public view returns(string memory) {
145
+ return _tokenHandlerName;
146
+ }
147
+
148
+ function getTokenHandlerTarget() public view returns(Str) {
149
+ return _tokenHandlerTarget;
150
+ }
151
+
152
+ function getTarget(string memory targetName) public view returns(Str target) {
153
+ return StrLib.toStr(targetName);
154
+ }
155
+
156
+ function getTargets() external view returns(Str[] memory targets) {
157
+ return _targets;
158
+ }
159
+
160
+ function targetExists(Str target) external view returns(bool exists) {
161
+ return target == _mainTarget || _targetExists[target];
162
+ }
163
+
164
+ function getTargetRole(Str target) public view returns(RoleId roleId) {
165
+ return _targetRole[target];
166
+ }
167
+
168
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
169
+ return _authorizedRoles[target];
170
+ }
171
+
172
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
173
+ return _authorizedFunctions[target][roleId];
174
+ }
175
+
176
+ function getRelease() public virtual pure returns(VersionPart release) {
177
+ return VersionPartLib.toVersionPart(GIF_RELEASE);
178
+ }
179
+
180
+ /// @dev Sets up the relevant service targets for the component.
181
+ /// Overwrite this function for use case specific authorizations.
182
+ function _setupServiceTargets() internal virtual { }
183
+
184
+ /// @dev Sets up the relevant (non-service) targets for the component.
185
+ /// Overwrite this function for use case specific authorizations.
186
+ function _setupTargets() internal virtual { }
187
+
188
+ /// @dev Sets up the relevant roles for the component.
189
+ /// Overwrite this function for use case specific authorizations.
190
+ function _setupRoles() internal virtual {}
191
+
192
+ /// @dev Sets up the relevant component's token handler authorizations.
193
+ /// Overwrite this function for use case specific authorizations.
194
+ function _setupTokenHandlerAuthorizations() internal virtual {}
195
+
196
+ /// @dev Sets up the relevant target authorizations for the component.
197
+ /// Overwrite this function for use case specific authorizations.
198
+ function _setupTargetAuthorizations() internal virtual {}
199
+
200
+ function _addGifContractTarget(string memory contractName) internal {
201
+
202
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
203
+ string memory contractRoleName = string(
204
+ abi.encodePacked(
205
+ contractName,
206
+ ROLE_NAME_SUFFIX));
207
+
208
+ _addTargetWithRole(
209
+ contractName,
210
+ contractRoleId,
211
+ contractRoleName);
212
+ }
213
+
214
+ /// @dev Add the service target role for the specified service domain
215
+ function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
216
+ // add service domain
217
+ _serviceDomains.push(serviceDomain);
218
+
219
+ // get versioned target name
220
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
221
+ ObjectTypeLib.toName(serviceDomain),
222
+ "Service",
223
+ getRelease());
224
+
225
+ _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
226
+
227
+ RoleId serviceRoleId = getServiceRole(serviceDomain);
228
+ string memory serviceRoleName = ObjectTypeLib.toVersionedName(
229
+ ObjectTypeLib.toName(serviceDomain),
230
+ "ServiceRole",
231
+ getRelease());
232
+
233
+ _addTargetWithRole(
234
+ serviceTargetName,
235
+ serviceRoleId,
236
+ serviceRoleName);
237
+ }
238
+
239
+
240
+ /// @dev Use this method to to add an authorized role.
241
+ function _addRole(RoleId roleId, RoleInfo memory info) internal {
242
+ _roles.push(roleId);
243
+ _roleInfo[roleId] = info;
244
+ }
245
+
246
+
247
+ /// @dev Add a contract role for the provided role id and name.
248
+ function _addContractRole(RoleId roleId, string memory name) internal {
249
+ _addRole(
250
+ roleId,
251
+ _toRoleInfo(
252
+ ADMIN_ROLE(),
253
+ RoleType.Contract,
254
+ 1,
255
+ name));
256
+ }
257
+
258
+
259
+ /// @dev Add the versioned service role for the specified service domain
260
+ function _addServiceRole(ObjectType serviceDomain) internal {
261
+ _addContractRole(
262
+ getServiceRole(serviceDomain),
263
+ ObjectTypeLib.toVersionedName(
264
+ ObjectTypeLib.toName(serviceDomain),
265
+ SERVICE_ROLE_NAME_SUFFIX,
266
+ getRelease()));
267
+ }
268
+
269
+
270
+ /// @dev Add a contract role for the provided role id and name.
271
+ function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
272
+ _addRole(
273
+ roleId,
274
+ _toRoleInfo(
275
+ adminRoleId,
276
+ RoleType.Custom,
277
+ maxMemberCount,
278
+ name));
279
+ }
280
+
281
+
282
+ /// @dev Use this method to to add an authorized target together with its target role.
283
+ function _addTargetWithRole(
284
+ string memory targetName,
285
+ RoleId roleId,
286
+ string memory roleName
287
+ )
288
+ internal
289
+ {
290
+ // add target
291
+ Str target = StrLib.toStr(targetName);
292
+ _targets.push(target);
293
+
294
+ _targetExists[target] = true;
295
+
296
+ // link role to target if defined
297
+ if (roleId != RoleIdLib.zero()) {
298
+ // add role if new
299
+ if (!roleExists(roleId)) {
300
+ _addContractRole(roleId, roleName);
301
+ }
302
+
303
+ // link target to role
304
+ _targetRole[target] = roleId;
305
+ }
306
+ }
307
+
308
+
309
+ /// @dev Use this method to to add an authorized target.
310
+ function _addTarget(string memory name) internal {
311
+ _addTargetWithRole(name, RoleIdLib.zero(), "");
312
+ }
313
+
314
+
315
+ /// @dev Use this method to authorize the specified role to access the target.
316
+ function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
317
+ internal
318
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
319
+ {
320
+ Str targetStr = StrLib.toStr(target);
321
+ _authorizedRoles[targetStr].push(authorizedRoleId);
322
+ return _authorizedFunctions[targetStr][authorizedRoleId];
323
+ }
324
+
325
+
326
+ /// @dev Use this method to authorize a specific function authorization
327
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
328
+ functions.push(
329
+ IAccess.FunctionInfo({
330
+ selector: SelectorLib.toSelector(selector),
331
+ name: StrLib.toStr(name),
332
+ createdAt: TimestampLib.blockTimestamp()}));
333
+ }
334
+
335
+
336
+ /// @dev role id for targets registry, staking and instance
337
+ function _toTargetRoleId(ObjectType targetDomain)
338
+ internal
339
+ pure
340
+ returns (RoleId targetRoleId)
341
+ {
342
+ return RoleIdLib.roleForType(targetDomain);
343
+ }
344
+
345
+
346
+ function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
347
+ return string(
348
+ abi.encodePacked(
349
+ targetName,
350
+ ROLE_NAME_SUFFIX));
351
+ }
352
+
353
+
354
+ /// @dev creates a role info object from the provided parameters
355
+ function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
356
+ return RoleInfo({
357
+ name: StrLib.toStr(name),
358
+ adminRoleId: adminRoleId,
359
+ roleType: roleType,
360
+ maxMemberCount: maxMemberCount,
361
+ createdAt: TimestampLib.blockTimestamp(),
362
+ pausedAt: TimestampLib.max()});
363
+ }
216
364
  }
217
365
 
@@ -21,6 +21,7 @@ interface IAccess {
21
21
  uint32 maxMemberCount;
22
22
  Str name;
23
23
  Timestamp createdAt;
24
+ Timestamp pausedAt;
24
25
  }
25
26
 
26
27
  struct TargetInfo {