@etherisc/gif-next 0.0.2-ee54ca6-863 → 0.0.2-ef15ccf-423

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 (550) hide show
  1. package/README.md +91 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +204 -302
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +123 -186
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +634 -225
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +229 -86
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -160
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +429 -77
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +293 -265
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +175 -175
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +363 -233
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +986 -379
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +578 -65
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -60
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +641 -119
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -364
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +328 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1612 -816
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +421 -131
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +153 -64
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +755 -1092
  89. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1852 -0
  91. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  93. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  95. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  100. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  102. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  104. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  109. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +161 -183
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +116 -109
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +137 -135
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +201 -81
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +187 -56
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +185 -191
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +355 -279
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +182 -87
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +247 -121
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +152 -156
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +478 -227
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +165 -174
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +743 -379
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +237 -66
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +361 -57
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +176 -53
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +297 -234
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +370 -159
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +194 -83
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +296 -9
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +242 -24
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +299 -48
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +140 -37
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -202
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +286 -21
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +451 -151
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +213 -74
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +201 -129
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +167 -68
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  182. package/artifacts/contracts/product/Product.sol/Product.json +287 -224
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +372 -82
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +176 -53
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +144 -33
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +188 -69
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +753 -454
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +139 -181
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +151 -48
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +478 -258
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Component.sol/Component.json +113 -93
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +502 -519
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +198 -89
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +93 -68
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -109
  237. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +79 -6
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  240. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  247. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +136 -134
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +85 -7
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +37 -2
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +171 -38
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +89 -2
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1492 -173
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1648 -291
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +202 -69
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +286 -173
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +154 -55
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  305. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  341. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  347. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  351. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +128 -38
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  359. package/contracts/accounting/AccountingService.sol +274 -0
  360. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  361. package/contracts/accounting/IAccountingService.sol +47 -0
  362. package/contracts/authorization/AccessAdmin.sol +457 -266
  363. package/contracts/authorization/AccessAdminLib.sol +396 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  365. package/contracts/authorization/Authorization.sol +159 -207
  366. package/contracts/authorization/IAccess.sol +25 -6
  367. package/contracts/authorization/IAccessAdmin.sol +87 -79
  368. package/contracts/authorization/IAuthorization.sol +9 -37
  369. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  370. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  371. package/contracts/distribution/BasicDistribution.sol +20 -17
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  373. package/contracts/distribution/Distribution.sol +43 -91
  374. package/contracts/distribution/DistributionService.sol +224 -112
  375. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  376. package/contracts/distribution/IDistributionComponent.sol +4 -11
  377. package/contracts/distribution/IDistributionService.sol +38 -24
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +86 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +433 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +43 -12
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +8 -12
  387. package/contracts/examples/unpermissioned/SimplePool.sol +36 -10
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +134 -48
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BaseStore.sol +93 -0
  392. package/contracts/instance/BundleSet.sol +42 -38
  393. package/contracts/instance/IBaseStore.sol +37 -0
  394. package/contracts/instance/IInstance.sol +111 -18
  395. package/contracts/instance/IInstanceService.sol +61 -34
  396. package/contracts/instance/Instance.sol +196 -74
  397. package/contracts/instance/InstanceAdmin.sol +276 -182
  398. package/contracts/instance/InstanceAuthorizationV3.sol +145 -74
  399. package/contracts/instance/InstanceReader.sol +473 -270
  400. package/contracts/instance/InstanceService.sol +314 -267
  401. package/contracts/instance/InstanceServiceManager.sol +6 -7
  402. package/contracts/instance/InstanceStore.sol +21 -49
  403. package/contracts/instance/ProductStore.sol +143 -0
  404. package/contracts/instance/RiskSet.sol +126 -0
  405. package/contracts/instance/TargetNames.sol +10 -0
  406. package/contracts/instance/base/BalanceStore.sol +4 -6
  407. package/contracts/instance/base/ObjectCounter.sol +1 -2
  408. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  409. package/contracts/instance/base/ObjectSet.sol +31 -33
  410. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  411. package/contracts/instance/module/IBundle.sol +6 -5
  412. package/contracts/instance/module/IComponents.sol +29 -13
  413. package/contracts/instance/module/IDistribution.sol +21 -8
  414. package/contracts/instance/module/IPolicy.sol +30 -9
  415. package/contracts/instance/module/IRisk.sol +5 -0
  416. package/contracts/oracle/BasicOracle.sol +2 -5
  417. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  418. package/contracts/oracle/IOracle.sol +9 -4
  419. package/contracts/oracle/IOracleService.sol +2 -1
  420. package/contracts/oracle/Oracle.sol +7 -20
  421. package/contracts/oracle/OracleService.sol +117 -86
  422. package/contracts/oracle/OracleServiceManager.sol +6 -6
  423. package/contracts/pool/BasicPool.sol +34 -38
  424. package/contracts/pool/BasicPoolAuthorization.sol +34 -11
  425. package/contracts/pool/BundleService.sol +115 -167
  426. package/contracts/pool/BundleServiceManager.sol +6 -6
  427. package/contracts/pool/IBundleService.sol +28 -46
  428. package/contracts/pool/IPoolComponent.sol +19 -15
  429. package/contracts/pool/IPoolService.sol +77 -67
  430. package/contracts/pool/Pool.sol +140 -133
  431. package/contracts/pool/PoolLib.sol +341 -0
  432. package/contracts/pool/PoolService.sol +355 -250
  433. package/contracts/pool/PoolServiceManager.sol +4 -4
  434. package/contracts/product/ApplicationService.sol +110 -31
  435. package/contracts/product/ApplicationServiceManager.sol +4 -4
  436. package/contracts/product/BasicProduct.sol +10 -14
  437. package/contracts/product/BasicProductAuthorization.sol +32 -12
  438. package/contracts/product/ClaimService.sol +328 -189
  439. package/contracts/product/ClaimServiceManager.sol +4 -4
  440. package/contracts/product/IApplicationService.sol +28 -3
  441. package/contracts/product/IClaimService.sol +21 -7
  442. package/contracts/product/IPolicyService.sol +41 -12
  443. package/contracts/product/IPricingService.sol +10 -9
  444. package/contracts/product/IProductComponent.sol +27 -4
  445. package/contracts/product/IRiskService.sol +25 -10
  446. package/contracts/product/PolicyService.sol +357 -285
  447. package/contracts/product/PolicyServiceLib.sol +139 -0
  448. package/contracts/product/PolicyServiceManager.sol +4 -4
  449. package/contracts/product/PricingService.sol +59 -54
  450. package/contracts/product/PricingServiceManager.sol +4 -4
  451. package/contracts/product/Product.sol +153 -85
  452. package/contracts/product/RiskService.sol +129 -36
  453. package/contracts/product/RiskServiceManager.sol +4 -4
  454. package/contracts/registry/ChainNft.sol +10 -11
  455. package/contracts/registry/IRegistry.sol +31 -27
  456. package/contracts/registry/IRegistryService.sol +5 -12
  457. package/contracts/registry/IRelease.sol +29 -0
  458. package/contracts/registry/ITransferInterceptor.sol +1 -2
  459. package/contracts/registry/Registry.sol +51 -17
  460. package/contracts/registry/RegistryAdmin.sol +107 -380
  461. package/contracts/registry/RegistryAuthorization.sol +336 -0
  462. package/contracts/registry/RegistryService.sol +37 -48
  463. package/contracts/registry/RegistryServiceManager.sol +3 -3
  464. package/contracts/registry/ReleaseAdmin.sol +195 -0
  465. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  466. package/contracts/registry/ReleaseRegistry.sol +278 -244
  467. package/contracts/registry/ServiceAuthorizationV3.sol +204 -61
  468. package/contracts/registry/TokenRegistry.sol +61 -59
  469. package/contracts/shared/Component.sol +65 -119
  470. package/contracts/shared/ComponentService.sol +422 -376
  471. package/contracts/shared/ComponentServiceManager.sol +8 -5
  472. package/contracts/shared/ContractLib.sol +312 -0
  473. package/contracts/shared/IComponent.sol +6 -18
  474. package/contracts/shared/IComponentService.sol +43 -40
  475. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  476. package/contracts/shared/IKeyValueStore.sol +9 -1
  477. package/contracts/shared/ILifecycle.sol +3 -1
  478. package/contracts/shared/INftOwnable.sol +4 -0
  479. package/contracts/shared/IPolicyHolder.sol +12 -13
  480. package/contracts/shared/IRegisterable.sol +22 -1
  481. package/contracts/shared/IService.sol +3 -5
  482. package/contracts/shared/InitializableERC165.sol +9 -1
  483. package/contracts/shared/InstanceLinkedComponent.sol +71 -49
  484. package/contracts/shared/KeyValueStore.sol +4 -4
  485. package/contracts/shared/Lifecycle.sol +15 -4
  486. package/contracts/shared/NftOwnable.sol +29 -7
  487. package/contracts/shared/PolicyHolder.sol +15 -8
  488. package/contracts/shared/Registerable.sol +50 -19
  489. package/contracts/shared/RegistryLinked.sol +7 -13
  490. package/contracts/shared/Service.sol +18 -33
  491. package/contracts/shared/TokenHandler.sol +275 -72
  492. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  493. package/contracts/staking/IStaking.sol +271 -72
  494. package/contracts/staking/IStakingService.sol +45 -78
  495. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  496. package/contracts/staking/Staking.sol +523 -223
  497. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  498. package/contracts/staking/StakingManager.sol +12 -9
  499. package/contracts/staking/StakingReader.sol +70 -82
  500. package/contracts/staking/StakingService.sol +62 -148
  501. package/contracts/staking/StakingServiceManager.sol +7 -5
  502. package/contracts/staking/StakingStore.sol +1093 -330
  503. package/contracts/staking/TargetHandler.sol +132 -0
  504. package/contracts/staking/TargetManagerLib.sol +69 -46
  505. package/contracts/type/Amount.sol +19 -0
  506. package/contracts/type/Blocknumber.sol +15 -15
  507. package/contracts/type/ChainId.sol +101 -0
  508. package/contracts/type/ClaimId.sol +6 -1
  509. package/contracts/type/Fee.sol +8 -8
  510. package/contracts/type/Key32.sol +2 -2
  511. package/contracts/type/Key32Set.sol +62 -0
  512. package/contracts/type/NftId.sol +7 -0
  513. package/contracts/type/ObjectType.sol +70 -38
  514. package/contracts/type/PayoutId.sol +10 -10
  515. package/contracts/type/RiskId.sol +38 -6
  516. package/contracts/type/RoleId.sol +61 -55
  517. package/contracts/type/Seconds.sol +19 -0
  518. package/contracts/type/Selector.sol +5 -0
  519. package/contracts/type/StateId.sol +14 -1
  520. package/contracts/type/String.sol +12 -0
  521. package/contracts/type/Timestamp.sol +4 -7
  522. package/contracts/type/UFixed.sol +38 -126
  523. package/contracts/type/Version.sol +54 -5
  524. package/contracts/upgradeability/IVersionable.sol +3 -0
  525. package/contracts/upgradeability/ProxyManager.sol +93 -45
  526. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  527. package/contracts/upgradeability/Versionable.sol +8 -5
  528. package/package.json +5 -4
  529. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  530. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  531. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  532. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  533. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  535. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  536. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -427
  537. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  538. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  539. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  540. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  541. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  542. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  543. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  544. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  545. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  546. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  547. package/contracts/instance/module/IAccess.sol +0 -46
  548. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  549. package/contracts/shared/InitializableCustom.sol +0 -177
  550. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,217 +1,169 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccess} from "./IAccess.sol";
5
4
  import {IAuthorization} from "./IAuthorization.sol";
6
- import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
7
- import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
8
- import {SelectorLib} from "../type/Selector.sol";
5
+
6
+ import {ObjectType} from "../type/ObjectType.sol";
7
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
8
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
9
9
  import {Str, StrLib} from "../type/String.sol";
10
- import {TimestampLib} from "../type/Timestamp.sol";
11
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
10
 
13
- contract Authorization
14
- is IAuthorization
11
+
12
+ contract Authorization is
13
+ ServiceAuthorization,
14
+ IAuthorization
15
15
  {
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
16
 
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
- }
17
+ // MUST match with AccessAdminLib.COMPONENT_ROLE_MIN
18
+ uint64 public constant COMPONENT_ROLE_MIN = 110000;
19
+
20
+ uint64 internal _nextGifContractRoleId;
21
+
22
+ string internal _tokenHandlerName = "ComponentTh";
23
+ Str internal _tokenHandlerTarget;
24
+
25
+
26
+ constructor(
27
+ string memory mainTargetName,
28
+ ObjectType domain,
29
+ uint8 release,
30
+ string memory commitHash,
31
+ bool isComponent,
32
+ bool includeTokenHandler
33
+ )
34
+ ServiceAuthorization(mainTargetName, domain, release, commitHash)
35
+ {
36
+ _nextGifContractRoleId = 10;
37
+
38
+ // setup main target
39
+ if (isComponent) {
40
+ if (domain.eqz()) {
41
+ revert ErrorAuthorizationTargetDomainZero();
42
+ }
43
+
44
+ RoleId mainRoleId = RoleIdLib.toRoleId(COMPONENT_ROLE_MIN);
45
+ string memory mainRolName = _toTargetRoleName(_mainTargetName);
46
+
47
+ _addTargetWithRole(
48
+ _mainTargetName,
49
+ mainRoleId,
50
+ mainRolName);
51
+ } else {
52
+ _addGifTarget(_mainTargetName);
53
+ }
54
+
55
+ // setup use case specific parts
56
+ _setupServiceTargets();
57
+ _setupRoles(); // not including main target role
58
+ _setupTargets(); // not including main target (and token handler target)
59
+ _setupTargetAuthorizations(); // not including token handler target
60
+
61
+ // setup component token handler
62
+ if (includeTokenHandler) {
63
+ _tokenHandlerName = string(abi.encodePacked(mainTargetName, "Th"));
64
+ _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
65
+ _addTarget(_tokenHandlerName);
66
+ _setupTokenHandlerAuthorizations();
67
+ }
68
+
69
+ _registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
70
+ }
71
+
72
+
73
+ function getTokenHandlerName() public view returns(string memory) {
74
+ return _tokenHandlerName;
75
+ }
76
+
77
+ function getTokenHandlerTarget() public view returns(Str) {
78
+ return _tokenHandlerTarget;
79
+ }
80
+
81
+ function getTarget(string memory targetName) public pure returns(Str target) {
82
+ return StrLib.toStr(targetName);
83
+ }
84
+
85
+ function getTargets() external view returns(Str[] memory targets) {
86
+ return _targets;
87
+ }
88
+
89
+ function targetExists(Str target) external view returns(bool exists) {
90
+ return target == _mainTarget || _targetExists[target];
91
+ }
92
+
93
+ /// @dev Sets up the relevant service targets for the component.
94
+ /// Overwrite this function for use case specific authorizations.
95
+ // solhint-disable-next-line no-empty-blocks
96
+ function _setupServiceTargets() internal virtual { }
97
+
98
+ /// @dev Sets up the relevant (non-service) targets for the component.
99
+ /// Overwrite this function for use case specific authorizations.
100
+ // solhint-disable-next-line no-empty-blocks
101
+ function _setupTargets() internal virtual { }
102
+
103
+ /// @dev Sets up the relevant roles for the component.
104
+ /// Overwrite this function for use case specific authorizations.
105
+ // solhint-disable-next-line no-empty-blocks
106
+ function _setupRoles() internal virtual {}
107
+
108
+ /// @dev Sets up the relevant component's token handler authorizations.
109
+ /// Overwrite this function for use case specific authorizations.
110
+ // solhint-disable-next-line no-empty-blocks
111
+ function _setupTokenHandlerAuthorizations() internal virtual {}
112
+
113
+ /// @dev Sets up the relevant target authorizations for the component.
114
+ /// Overwrite this function for use case specific authorizations.
115
+ // solhint-disable-next-line no-empty-blocks
116
+ function _setupTargetAuthorizations() internal virtual {}
117
+
118
+
119
+ /// @dev Add a contract role for the provided role id and name.
120
+ function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
121
+ _addRole(
122
+ roleId,
123
+ _toRoleInfo(
124
+ adminRoleId,
125
+ RoleType.Custom,
126
+ maxMemberCount,
127
+ name));
128
+ }
129
+
130
+ /// @dev Add a gif target with its corresponding contract role
131
+ function _addGifTarget(string memory contractName) internal {
132
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
133
+ string memory contractRoleName = string(
134
+ abi.encodePacked(
135
+ contractName,
136
+ ROLE_NAME_SUFFIX));
137
+
138
+ _addTargetWithRole(
139
+ contractName,
140
+ contractRoleId,
141
+ contractRoleName);
142
+ }
143
+
144
+
145
+ /// @dev Use this method to to add an authorized target.
146
+ function _addTarget(string memory name) internal {
147
+ _addTargetWithRole(name, RoleIdLib.zero(), "");
148
+ }
149
+
150
+
151
+ /// @dev Role id for targets registry, staking and instance
152
+ function _toTargetRoleId(ObjectType targetDomain)
153
+ internal
154
+ pure
155
+ returns (RoleId targetRoleId)
156
+ {
157
+ return RoleIdLib.toRoleId(100 * targetDomain.toInt());
158
+ }
159
+
160
+
161
+ /// @dev Returns the role name for the specified target name
162
+ function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
163
+ return string(
164
+ abi.encodePacked(
165
+ targetName,
166
+ ROLE_NAME_SUFFIX));
167
+ }
216
168
  }
217
169
 
@@ -10,37 +10,56 @@ interface IAccess {
10
10
 
11
11
  enum RoleType {
12
12
  Undefined, // no role must have this type
13
+ Core, // GIF core roles
13
14
  Contract, // roles assigned to contracts, cannot be revoked
14
- Gif, // framework roles that may be freely assigned and revoked
15
+ Custom // use case specific rules for components
16
+ }
17
+
18
+ enum TargetType {
19
+ Undefined, // no target must have this type
20
+ Core, // GIF core contracts
21
+ GenericService, // release independent service contracts
22
+ Service, // service contracts
23
+ Instance, // instance contracts
24
+ Component, // instance contracts
15
25
  Custom // use case specific rules for components
16
26
  }
17
27
 
18
28
  struct RoleInfo {
19
- RoleId adminRoleId;
20
- RoleType roleType;
21
- uint32 maxMemberCount;
29
+ // slot 0
30
+ RoleId adminRoleId;
31
+ RoleType roleType;
32
+ uint32 maxMemberCount;
33
+ Timestamp createdAt;
34
+ Timestamp pausedAt;
35
+ // slot 1
22
36
  Str name;
23
- Timestamp createdAt;
24
37
  }
25
38
 
39
+ // TODO recalc slot allocation
26
40
  struct TargetInfo {
27
41
  Str name;
28
- bool isCustom;
42
+ TargetType targetType;
43
+ RoleId roleId;
29
44
  Timestamp createdAt;
30
45
  }
31
46
 
32
47
  struct FunctionInfo {
48
+ // slot 0
33
49
  Str name; // function name
50
+ // slot 1
34
51
  Selector selector; // function selector
35
52
  Timestamp createdAt;
36
53
  }
37
54
 
38
55
  struct RoleNameInfo {
56
+ // slot 0
39
57
  RoleId roleId;
40
58
  bool exists;
41
59
  }
42
60
 
43
61
  struct TargeNameInfo {
62
+ // slot 0
44
63
  address target;
45
64
  bool exists;
46
65
  }