@etherisc/gif-next 0.0.2-7bf391b-976 → 0.0.2-7bf6e1c-877

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 (557) hide show
  1. package/README.md +95 -9
  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 +810 -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 +760 -278
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -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 +485 -26
  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 +588 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +194 -478
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +475 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +109 -366
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +227 -131
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -201
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
  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 +1474 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  65. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
  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/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +587 -64
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +405 -60
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +625 -182
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1637 -804
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -231
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1277 -1707
  89. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -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 +135 -343
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
  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 +103 -143
  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 +111 -303
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +160 -360
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +362 -445
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +185 -129
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +247 -152
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +141 -192
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +517 -281
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +139 -342
  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 +691 -558
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +206 -118
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +281 -412
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +458 -261
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +202 -122
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +335 -19
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +303 -83
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -236
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -337
  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 +205 -125
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  182. package/artifacts/contracts/product/Product.sol/Product.json +273 -404
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  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 +565 -109
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -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 +495 -253
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -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 +99 -262
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +503 -664
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +196 -134
  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 +92 -103
  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 +103 -143
  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 +35 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -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 +84 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +110 -302
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  264. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +544 -18
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  276. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  277. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +1644 -460
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +203 -109
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  292. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  293. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  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 +35 -11
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  301. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  337. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  343. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +134 -79
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  355. package/contracts/accounting/AccountingService.sol +274 -0
  356. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  357. package/contracts/accounting/IAccountingService.sol +47 -0
  358. package/contracts/authorization/AccessAdmin.sol +401 -313
  359. package/contracts/authorization/AccessAdminLib.sol +678 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  361. package/contracts/authorization/Authorization.sol +179 -207
  362. package/contracts/authorization/IAccess.sol +29 -11
  363. package/contracts/authorization/IAccessAdmin.sol +89 -83
  364. package/contracts/authorization/IAuthorization.sol +9 -37
  365. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  366. package/contracts/authorization/ServiceAuthorization.sol +235 -25
  367. package/contracts/distribution/BasicDistribution.sol +21 -19
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  369. package/contracts/distribution/Distribution.sol +46 -96
  370. package/contracts/distribution/DistributionService.sol +243 -131
  371. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  372. package/contracts/distribution/IDistributionComponent.sol +4 -11
  373. package/contracts/distribution/IDistributionService.sol +47 -29
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +86 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +433 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BaseStore.sol +93 -0
  388. package/contracts/instance/BundleSet.sol +42 -38
  389. package/contracts/instance/IBaseStore.sol +37 -0
  390. package/contracts/instance/IInstance.sol +113 -43
  391. package/contracts/instance/IInstanceService.sol +61 -34
  392. package/contracts/instance/Instance.sol +201 -104
  393. package/contracts/instance/InstanceAdmin.sol +218 -177
  394. package/contracts/instance/InstanceAuthorizationV3.sol +154 -83
  395. package/contracts/instance/InstanceReader.sol +455 -257
  396. package/contracts/instance/InstanceService.sol +333 -262
  397. package/contracts/instance/InstanceServiceManager.sol +6 -7
  398. package/contracts/instance/InstanceStore.sol +153 -107
  399. package/contracts/instance/ProductStore.sol +290 -0
  400. package/contracts/instance/RiskSet.sol +126 -0
  401. package/contracts/instance/TargetNames.sol +10 -0
  402. package/contracts/instance/base/BalanceStore.sol +4 -6
  403. package/contracts/instance/base/ObjectCounter.sol +1 -2
  404. package/contracts/instance/base/ObjectLifecycle.sol +12 -7
  405. package/contracts/instance/base/ObjectSet.sol +31 -33
  406. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  407. package/contracts/instance/module/IBundle.sol +6 -5
  408. package/contracts/instance/module/IComponents.sol +28 -14
  409. package/contracts/instance/module/IDistribution.sol +21 -8
  410. package/contracts/instance/module/IPolicy.sol +49 -28
  411. package/contracts/instance/module/IRisk.sol +5 -0
  412. package/contracts/oracle/BasicOracle.sol +3 -7
  413. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  414. package/contracts/oracle/IOracle.sol +9 -4
  415. package/contracts/oracle/IOracleService.sol +2 -1
  416. package/contracts/oracle/Oracle.sol +11 -25
  417. package/contracts/oracle/OracleService.sol +119 -87
  418. package/contracts/oracle/OracleServiceManager.sol +6 -6
  419. package/contracts/pool/BasicPool.sol +35 -40
  420. package/contracts/pool/BasicPoolAuthorization.sol +34 -11
  421. package/contracts/pool/BundleService.sol +117 -181
  422. package/contracts/pool/BundleServiceManager.sol +6 -6
  423. package/contracts/pool/IBundleService.sol +29 -48
  424. package/contracts/pool/IPoolComponent.sol +19 -15
  425. package/contracts/pool/IPoolService.sol +93 -72
  426. package/contracts/pool/Pool.sol +144 -141
  427. package/contracts/pool/PoolLib.sol +341 -0
  428. package/contracts/pool/PoolService.sol +375 -320
  429. package/contracts/pool/PoolServiceManager.sol +4 -4
  430. package/contracts/product/ApplicationService.sol +144 -47
  431. package/contracts/product/ApplicationServiceManager.sol +4 -4
  432. package/contracts/product/BasicProduct.sol +11 -15
  433. package/contracts/product/BasicProductAuthorization.sol +32 -12
  434. package/contracts/product/ClaimService.sol +391 -189
  435. package/contracts/product/ClaimServiceManager.sol +4 -4
  436. package/contracts/product/IApplicationService.sol +29 -3
  437. package/contracts/product/IClaimService.sol +47 -11
  438. package/contracts/product/IPolicyService.sol +52 -35
  439. package/contracts/product/IPricingService.sol +11 -10
  440. package/contracts/product/IProductComponent.sol +27 -5
  441. package/contracts/product/IRiskService.sol +48 -0
  442. package/contracts/product/PolicyService.sol +405 -316
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +4 -4
  445. package/contracts/product/PricingService.sol +90 -84
  446. package/contracts/product/PricingServiceManager.sol +4 -4
  447. package/contracts/product/Product.sol +190 -110
  448. package/contracts/product/RiskService.sol +189 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +72 -40
  451. package/contracts/registry/IRegistry.sol +70 -32
  452. package/contracts/registry/IRegistryService.sol +5 -12
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +367 -207
  456. package/contracts/registry/RegistryAdmin.sol +99 -291
  457. package/contracts/registry/RegistryAuthorization.sol +337 -0
  458. package/contracts/registry/RegistryService.sol +38 -49
  459. package/contracts/registry/RegistryServiceManager.sol +3 -3
  460. package/contracts/registry/ReleaseAdmin.sol +199 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  462. package/contracts/registry/ReleaseRegistry.sol +279 -239
  463. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  464. package/contracts/registry/TokenRegistry.sol +61 -59
  465. package/contracts/shared/Component.sol +71 -142
  466. package/contracts/shared/ComponentService.sol +429 -388
  467. package/contracts/shared/ComponentServiceManager.sol +8 -5
  468. package/contracts/shared/ContractLib.sol +312 -0
  469. package/contracts/shared/IComponent.sol +6 -19
  470. package/contracts/shared/IComponentService.sol +43 -40
  471. package/contracts/shared/IInstanceLinkedComponent.sol +2 -28
  472. package/contracts/shared/ILifecycle.sol +3 -1
  473. package/contracts/shared/INftOwnable.sol +4 -0
  474. package/contracts/shared/IPolicyHolder.sol +12 -22
  475. package/contracts/shared/IRegisterable.sol +22 -1
  476. package/contracts/shared/IService.sol +3 -5
  477. package/contracts/shared/InitializableERC165.sol +10 -2
  478. package/contracts/shared/InstanceLinkedComponent.sol +74 -54
  479. package/contracts/shared/Lifecycle.sol +15 -4
  480. package/contracts/shared/NftOwnable.sol +31 -9
  481. package/contracts/shared/PolicyHolder.sol +18 -54
  482. package/contracts/shared/Registerable.sol +52 -21
  483. package/contracts/shared/RegistryLinked.sol +9 -14
  484. package/contracts/shared/Service.sol +20 -35
  485. package/contracts/shared/TokenHandler.sol +309 -29
  486. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  487. package/contracts/staking/IStaking.sol +270 -71
  488. package/contracts/staking/IStakingService.sol +45 -78
  489. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  490. package/contracts/staking/Staking.sol +526 -245
  491. package/contracts/staking/StakingLib.sol +195 -0
  492. package/contracts/staking/StakingManager.sol +12 -9
  493. package/contracts/staking/StakingReader.sol +70 -82
  494. package/contracts/staking/StakingService.sol +63 -149
  495. package/contracts/staking/StakingServiceManager.sol +7 -5
  496. package/contracts/staking/StakingStore.sol +1093 -330
  497. package/contracts/staking/TargetHandler.sol +132 -0
  498. package/contracts/staking/TargetManagerLib.sol +73 -46
  499. package/contracts/type/Amount.sol +19 -0
  500. package/contracts/type/Blocknumber.sol +17 -22
  501. package/contracts/type/ChainId.sol +101 -0
  502. package/contracts/type/ClaimId.sol +6 -1
  503. package/contracts/type/Fee.sol +8 -8
  504. package/contracts/type/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/type/NftId.sol +7 -0
  507. package/contracts/type/ObjectType.sol +73 -37
  508. package/contracts/type/PayoutId.sol +10 -10
  509. package/contracts/type/RiskId.sol +38 -6
  510. package/contracts/type/RoleId.sol +61 -55
  511. package/contracts/type/Seconds.sol +27 -0
  512. package/contracts/type/Selector.sol +5 -0
  513. package/contracts/type/StateId.sol +15 -1
  514. package/contracts/type/String.sol +12 -0
  515. package/contracts/type/Timestamp.sol +4 -7
  516. package/contracts/type/UFixed.sol +38 -126
  517. package/contracts/type/Version.sol +54 -5
  518. package/contracts/upgradeability/IVersionable.sol +3 -0
  519. package/contracts/upgradeability/ProxyManager.sol +94 -46
  520. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  521. package/contracts/upgradeability/Versionable.sol +8 -5
  522. package/package.json +5 -4
  523. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  524. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  525. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  526. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  529. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  530. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  531. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  532. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  533. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  534. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  535. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  536. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  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/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  540. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  541. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  542. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  543. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  544. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  545. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  546. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  547. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  548. package/contracts/instance/module/IAccess.sol +0 -46
  549. package/contracts/product/IProductService.sol +0 -33
  550. package/contracts/product/ProductService.sol +0 -99
  551. package/contracts/product/ProductServiceManager.sol +0 -39
  552. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  553. package/contracts/shared/IKeyValueStore.sol +0 -54
  554. package/contracts/shared/InitializableCustom.sol +0 -177
  555. package/contracts/shared/KeyValueStore.sol +0 -131
  556. package/contracts/staking/StakeManagerLib.sol +0 -231
  557. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -2,15 +2,139 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
5
+ import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
5
6
 
7
+ import {InitializableERC165} from "../shared/InitializableERC165.sol";
8
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
9
+ import {VersionPart} from "../type/Version.sol";
10
+
11
+
12
+ /// @dev An AccessManager based on OpenZeppelin that is cloneable and has a central lock property.
13
+ /// The lock property allows to lock all services of a release in a central place.
14
+ /// Cloned by upon release preparation and instance cloning.
6
15
  contract AccessManagerCloneable is
7
- AccessManagerUpgradeable
16
+ AccessManagerUpgradeable,
17
+ InitializableERC165,
18
+ RegistryLinked
8
19
  {
20
+ error ErrorAccessManagerCallerNotAdmin(address caller);
21
+ error ErrorAccessManagerRegistryAlreadySet(address registry);
22
+ error ErrorAccessManagerInvalidRelease(VersionPart release);
9
23
 
10
- function initialize(address initialAdmin)
11
- external
24
+ error ErrorAccessManagerTargetAdminLocked(address target);
25
+ error ErrorAccessManagerCallerAdminLocked(address caller);
26
+
27
+ VersionPart private _release;
28
+ bool private _isLocked;
29
+
30
+
31
+ modifier onlyAdminRole() {
32
+ (bool isMember, ) = hasRole(ADMIN_ROLE, msg.sender);
33
+ if(!isMember) {
34
+ revert ErrorAccessManagerCallerNotAdmin(msg.sender);
35
+ }
36
+ _;
37
+ }
38
+
39
+
40
+ function initialize(address admin)
41
+ public
12
42
  initializer()
13
43
  {
14
- __AccessManager_init(initialAdmin);
44
+ __ERC165_init();
45
+ __AccessManager_init(admin);
46
+
47
+ _registerInterface(type(IAccessManager).interfaceId);
48
+ }
49
+
50
+
51
+ /// @dev Completes the setup of the access manager.
52
+ /// Links the access manager to the registry and sets the release version.
53
+ function completeSetup(
54
+ address registry,
55
+ VersionPart release
56
+ )
57
+ external
58
+ onlyAdminRole
59
+ reinitializer(uint64(release.toInt()))
60
+ {
61
+ _checkAndSetRegistry(registry);
62
+ _checkAndSetRelease(release);
63
+ }
64
+
65
+ /// @dev Returns true if the caller is authorized to call the target with the given selector and the manager lock is not set to locked.
66
+ /// Feturn values as in OpenZeppelin AccessManager.
67
+ /// For a locked manager the function reverts with ErrorAccessManagerTargetAdminLocked.
68
+ function canCall(
69
+ address caller,
70
+ address target,
71
+ bytes4 selector
72
+ )
73
+ public
74
+ view
75
+ virtual override
76
+ returns (
77
+ bool immediate,
78
+ uint32 delay
79
+ )
80
+ {
81
+ // locking of all contracts under control of this access manager
82
+ if (_isLocked) {
83
+ revert ErrorAccessManagerTargetAdminLocked(target);
84
+ }
85
+
86
+ (immediate, delay) = super.canCall(caller, target, selector);
87
+ }
88
+
89
+
90
+ /// @dev Locks/unlocks all services of this access manager.
91
+ /// Only the corresponding access admin can lock/unlock the services.
92
+ function setLocked(bool locked)
93
+ external
94
+ onlyAdminRole()
95
+ {
96
+ _isLocked = locked;
97
+ }
98
+
99
+
100
+ /// @dev Returns the release version of this access manager.
101
+ /// For the registry admin release 3 is returned.
102
+ /// For the release admin and the instance admin the actual release version is returned.
103
+ function getRelease() external view returns (VersionPart release) {
104
+ return _release;
105
+ }
106
+
107
+
108
+ /// @dev Returns true iff all contracts of this access manager are locked.
109
+ function isLocked()
110
+ public
111
+ view
112
+ returns (bool)
113
+ {
114
+ return _isLocked;
115
+ }
116
+
117
+
118
+ function _checkAndSetRelease(VersionPart release)
119
+ internal
120
+ {
121
+ if (!release.isValidRelease()) {
122
+ revert ErrorAccessManagerInvalidRelease(release);
123
+ }
124
+
125
+ _release = release;
126
+ }
127
+
128
+
129
+ function _checkAndSetRegistry(address registry)
130
+ internal
131
+ {
132
+ // checks
133
+ if(address(getRegistry()) != address(0)) {
134
+ revert ErrorAccessManagerRegistryAlreadySet(address(getRegistry()) );
135
+ }
136
+
137
+ // effects
138
+ __RegistryLinked_init(registry);
15
139
  }
16
140
  }
@@ -3,216 +3,188 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "./IAccess.sol";
5
5
  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";
6
+
7
+ import {AccessAdminLib} from "./AccessAdminLib.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
10
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
9
11
  import {Str, StrLib} from "../type/String.sol";
10
- import {TimestampLib} from "../type/Timestamp.sol";
11
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
12
 
13
- contract Authorization
14
- is IAuthorization
13
+
14
+ contract Authorization is
15
+ ServiceAuthorization,
16
+ IAuthorization
15
17
  {
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
18
 
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
-
140
- /// @dev Add a contract role for the provided role id and name.
141
- function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
142
- _addRole(
143
- roleId,
144
- _toRoleInfo(
145
- adminRoleId,
146
- RoleType.Custom,
147
- maxMemberCount,
148
- name));
149
- }
150
-
151
- /// @dev Use this method to to add an authorized target together with its target role.
152
- function _addTargetWithRole(
153
- string memory targetName,
154
- RoleId roleId,
155
- string memory roleName
156
- )
157
- internal
158
- {
159
- // add target
160
- Str target = StrLib.toStr(targetName);
161
- _targets.push(target);
162
-
163
- _targetExists[target] = true;
164
-
165
- // link role to target if defined
166
- if (roleId != RoleIdLib.zero()) {
167
- // add role if new
168
- if (!roleExists(roleId)) {
169
- _addContractRole(roleId, roleName);
170
- }
171
-
172
- // link target to role
173
- _targetRole[target] = roleId;
174
- }
175
- }
176
-
177
- /// @dev Use this method to to add an authorized target.
178
- function _addTarget(string memory name) internal {
179
- _addTargetWithRole(name, RoleIdLib.zero(), "");
180
- }
181
-
182
- /// @dev Use this method to authorize the specified role to access the target.
183
- function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
184
- internal
185
- returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
186
- {
187
- Str targetStr = StrLib.toStr(target);
188
- _authorizedRoles[targetStr].push(authorizedRoleId);
189
- return _authorizedFunctions[targetStr][authorizedRoleId];
190
- }
191
-
192
- /// @dev Use this method to authorize a specific function authorization
193
- function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
194
- functions.push(
195
- IAccess.FunctionInfo({
196
- selector: SelectorLib.toSelector(selector),
197
- name: StrLib.toStr(name),
198
- createdAt: TimestampLib.blockTimestamp()}));
199
- }
200
-
201
- function _toTargetRoleName(string memory targetName) internal view returns (string memory) {
202
- return string(
203
- abi.encodePacked(
204
- targetName,
205
- ROLE_NAME_SUFFIX));
206
- }
207
-
208
- /// @dev creates a role info object from the provided parameters
209
- function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
210
- return RoleInfo({
211
- name: StrLib.toStr(name),
212
- adminRoleId: adminRoleId,
213
- roleType: roleType,
214
- maxMemberCount: maxMemberCount,
215
- createdAt: TimestampLib.blockTimestamp()});
216
- }
19
+ // MUST match with AccessAdminLib.COMPONENT_ROLE_MIN
20
+ uint64 public constant COMPONENT_ROLE_MIN = 110000;
21
+ uint64 public constant INSTANCE_ROLE_MIN = 100000;
22
+
23
+ uint64 internal _nextGifContractRoleId;
24
+ uint64 internal _nextInstanceContractRoleId;
25
+
26
+ string internal _tokenHandlerName = "ComponentTh";
27
+ Str internal _tokenHandlerTarget;
28
+
29
+
30
+ constructor(
31
+ string memory mainTargetName,
32
+ ObjectType domain,
33
+ uint8 release,
34
+ string memory commitHash,
35
+ IAccess.TargetType targetType,
36
+ bool includeTokenHandler
37
+ )
38
+ ServiceAuthorization(mainTargetName, domain, release, commitHash)
39
+ {
40
+ // IMPORTANT must match with AccessAdminLib.CORE_ROLE_MIN
41
+ _nextGifContractRoleId = 100;
42
+ _nextInstanceContractRoleId = INSTANCE_ROLE_MIN;
43
+
44
+ // setup main target
45
+ // special case: core targets
46
+ if (targetType == IAccess.TargetType.Core) {
47
+ _addGifTarget(_mainTargetName);
48
+ // special case instances
49
+ } else if (targetType == IAccess.TargetType.Instance) {
50
+ _addInstanceTarget(_mainTargetName);
51
+ // all other target types
52
+ } else {
53
+ if (domain.eqz()) {
54
+ revert ErrorAuthorizationTargetDomainZero();
55
+ }
56
+
57
+ RoleId mainRoleId = RoleIdLib.toRoleId(COMPONENT_ROLE_MIN);
58
+ string memory mainRoleName = _toTargetRoleName(_mainTargetName);
59
+
60
+ _addTargetWithRole(
61
+ _mainTargetName,
62
+ mainRoleId,
63
+ mainRoleName);
64
+ }
65
+
66
+ // setup use case specific parts
67
+ _setupServiceTargets();
68
+ _setupRoles(); // not including main target role
69
+ _setupTargets(); // not including main target (and token handler target)
70
+ _setupTargetAuthorizations(); // not including token handler target
71
+
72
+ // setup component token handler
73
+ if (includeTokenHandler) {
74
+ _tokenHandlerName = string(abi.encodePacked(mainTargetName, "Th"));
75
+ _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
76
+ _addTarget(_tokenHandlerName);
77
+ _setupTokenHandlerAuthorizations();
78
+ }
79
+
80
+ _registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
81
+ }
82
+
83
+
84
+ function getTokenHandlerName() public view returns(string memory) {
85
+ return _tokenHandlerName;
86
+ }
87
+
88
+ function getTokenHandlerTarget() public view returns(Str) {
89
+ return _tokenHandlerTarget;
90
+ }
91
+
92
+ function getTarget(string memory targetName) public pure returns(Str target) {
93
+ return StrLib.toStr(targetName);
94
+ }
95
+
96
+ function getTargets() external view returns(Str[] memory targets) {
97
+ return _targets;
98
+ }
99
+
100
+ function targetExists(Str target) external view returns(bool exists) {
101
+ return target == _mainTarget || _targetExists[target];
102
+ }
103
+
104
+ /// @dev Sets up the relevant service targets for the component.
105
+ /// Overwrite this function for use case specific authorizations.
106
+ // solhint-disable-next-line no-empty-blocks
107
+ function _setupServiceTargets() internal virtual { }
108
+
109
+ /// @dev Sets up the relevant (non-service) targets for the component.
110
+ /// Overwrite this function for use case specific authorizations.
111
+ // solhint-disable-next-line no-empty-blocks
112
+ function _setupTargets() internal virtual { }
113
+
114
+ /// @dev Sets up the relevant roles for the component.
115
+ /// Overwrite this function for use case specific authorizations.
116
+ // solhint-disable-next-line no-empty-blocks
117
+ function _setupRoles() internal virtual {}
118
+
119
+ /// @dev Sets up the relevant component's token handler authorizations.
120
+ /// Overwrite this function for use case specific authorizations.
121
+ // solhint-disable-next-line no-empty-blocks
122
+ function _setupTokenHandlerAuthorizations() internal virtual {}
123
+
124
+ /// @dev Sets up the relevant target authorizations for the component.
125
+ /// Overwrite this function for use case specific authorizations.
126
+ // solhint-disable-next-line no-empty-blocks
127
+ function _setupTargetAuthorizations() internal virtual {}
128
+
129
+
130
+ /// @dev Add a contract role for the provided role id and name.
131
+ function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
132
+ _addRole(
133
+ roleId,
134
+ AccessAdminLib.roleInfo(
135
+ adminRoleId,
136
+ TargetType.Custom,
137
+ maxMemberCount,
138
+ name));
139
+ }
140
+
141
+ /// @dev Add a gif target with its corresponding contract role
142
+ function _addGifTarget(string memory contractName) internal {
143
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
144
+ string memory contractRoleName = string(
145
+ abi.encodePacked(
146
+ contractName,
147
+ ROLE_NAME_SUFFIX));
148
+
149
+ _addTargetWithRole(
150
+ contractName,
151
+ contractRoleId,
152
+ contractRoleName);
153
+ }
154
+
155
+ /// @dev Add an instance target with its corresponding contract role
156
+ function _addInstanceTarget(string memory contractName) internal {
157
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextInstanceContractRoleId++);
158
+ string memory contractRoleName = _toTargetRoleName(contractName);
159
+
160
+ _addTargetWithRole(
161
+ contractName,
162
+ contractRoleId,
163
+ contractRoleName);
164
+ }
165
+
166
+ /// @dev Use this method to to add an authorized target.
167
+ function _addTarget(string memory name) internal {
168
+ _addTargetWithRole(name, RoleIdLib.zero(), "");
169
+ }
170
+
171
+
172
+ /// @dev Role id for targets registry, staking and instance
173
+ function _toTargetRoleId(ObjectType targetDomain)
174
+ internal
175
+ pure
176
+ returns (RoleId targetRoleId)
177
+ {
178
+ return RoleIdLib.toRoleId(100 * targetDomain.toInt());
179
+ }
180
+
181
+
182
+ /// @dev Returns the role name for the specified target name
183
+ function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
184
+ return string(
185
+ abi.encodePacked(
186
+ targetName,
187
+ ROLE_NAME_SUFFIX));
188
+ }
217
189
  }
218
190
 
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Blocknumber} from "../type/Blocknumber.sol";
4
5
  import {RoleId} from "../type/RoleId.sol";
5
6
  import {Selector} from "../type/Selector.sol";
6
7
  import {Str} from "../type/String.sol";
@@ -8,39 +9,56 @@ import {Timestamp} from "../type/Timestamp.sol";
8
9
 
9
10
  interface IAccess {
10
11
 
11
- enum RoleType {
12
- Undefined, // no role must have this type
13
- 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
12
+ enum TargetType {
13
+ Undefined, // no target must have this type
14
+ Core, // GIF core contracts
15
+ GenericService, // release independent service contracts
16
+ Service, // service contracts
17
+ Instance, // instance contracts
18
+ Component, // instance contracts
19
+ Contract, // normal contracts
20
+ Custom // use case specific rules for contracts or normal accounts
16
21
  }
17
22
 
18
23
  struct RoleInfo {
19
- RoleId adminRoleId;
20
- RoleType roleType;
21
- uint32 maxMemberCount;
22
- Str name;
23
- Timestamp createdAt;
24
+ // slot 0
25
+ RoleId adminRoleId; // 64
26
+ TargetType targetType; // ?
27
+ uint32 maxMemberCount; // 32
28
+ Timestamp createdAt; // 40
29
+ Timestamp pausedAt; // 40
30
+ Blocknumber lastUpdateIn; // 40
31
+ // slot 1
32
+ Str name; // 256
24
33
  }
25
34
 
35
+
36
+ // TODO recalc slot allocation
26
37
  struct TargetInfo {
27
38
  Str name;
28
- bool isCustom;
39
+ TargetType targetType;
40
+ RoleId roleId;
29
41
  Timestamp createdAt;
42
+ Blocknumber lastUpdateIn;
30
43
  }
31
44
 
32
45
  struct FunctionInfo {
46
+ // slot 0
33
47
  Str name; // function name
48
+ // slot 1
34
49
  Selector selector; // function selector
35
50
  Timestamp createdAt;
51
+ Blocknumber lastUpdateIn;
36
52
  }
37
53
 
38
54
  struct RoleNameInfo {
55
+ // slot 0
39
56
  RoleId roleId;
40
57
  bool exists;
41
58
  }
42
59
 
43
60
  struct TargeNameInfo {
61
+ // slot 0
44
62
  address target;
45
63
  bool exists;
46
64
  }