@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-06d5e8b-738

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 (504) hide show
  1. package/README.md +124 -332
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
  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 +263 -87
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +376 -147
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -19
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -79
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +728 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1234 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2497 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  84. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  87. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  89. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +305 -5
  93. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +747 -553
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +331 -31
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1323 -2012
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  127. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +25 -16
  130. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
  132. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -10
  135. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
  143. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
  145. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
  147. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  149. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
  151. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  153. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  154. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
  155. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  157. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  158. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
  159. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  161. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  162. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +338 -79
  163. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
  165. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  166. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
  167. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
  169. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  170. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
  171. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  172. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
  173. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  175. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
  177. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
  179. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  181. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  183. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
  185. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  186. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
  187. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
  189. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  191. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  192. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  193. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
  195. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  196. package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
  197. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
  199. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  200. package/artifacts/contracts/product/Product.sol/Product.json +40 -31
  201. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  202. package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
  203. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
  205. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  223. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +169 -111
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  232. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +196 -201
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  244. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  245. package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
  246. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
  248. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -132
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
  252. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  255. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
  264. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  275. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  276. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1390 -134
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  288. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  290. package/artifacts/contracts/staking/Staking.sol/Staking.json +1479 -192
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  302. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  304. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  306. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
  307. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  308. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  310. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  336. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  337. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  338. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  340. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  342. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  344. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  349. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  351. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  353. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  356. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  358. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  360. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  362. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  363. package/contracts/accounting/AccountingService.sol +15 -3
  364. package/contracts/accounting/IAccountingService.sol +4 -2
  365. package/contracts/authorization/AccessAdmin.sol +303 -326
  366. package/contracts/authorization/AccessAdminLib.sol +535 -23
  367. package/contracts/authorization/AccessManagerCloneable.sol +0 -18
  368. package/contracts/authorization/Authorization.sol +64 -239
  369. package/contracts/authorization/IAccess.sol +29 -12
  370. package/contracts/authorization/IAccessAdmin.sol +25 -53
  371. package/contracts/authorization/IAuthorization.sol +3 -57
  372. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  373. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  374. package/contracts/distribution/BasicDistribution.sol +3 -4
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  376. package/contracts/distribution/Distribution.sol +9 -8
  377. package/contracts/distribution/DistributionService.sol +125 -62
  378. package/contracts/distribution/IDistributionComponent.sol +3 -1
  379. package/contracts/distribution/IDistributionService.sol +20 -8
  380. package/contracts/examples/fire/FireProduct.sol +6 -6
  381. package/contracts/examples/flight/FlightLib.sol +300 -0
  382. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  383. package/contracts/examples/flight/FlightOracle.sol +171 -0
  384. package/contracts/examples/flight/FlightOracleAuthorization.sol +53 -0
  385. package/contracts/examples/flight/FlightPool.sol +89 -0
  386. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  387. package/contracts/examples/flight/FlightProduct.sol +685 -0
  388. package/contracts/examples/flight/FlightProductAuthorization.sol +69 -0
  389. package/contracts/examples/flight/FlightUSD.sol +28 -0
  390. package/contracts/examples/flight/originalV1.sol +396 -0
  391. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
  392. package/contracts/instance/BaseStore.sol +93 -0
  393. package/contracts/instance/IBaseStore.sol +37 -0
  394. package/contracts/instance/IInstance.sol +57 -6
  395. package/contracts/instance/IInstanceService.sol +42 -7
  396. package/contracts/instance/Instance.sol +111 -56
  397. package/contracts/instance/InstanceAdmin.sol +150 -294
  398. package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
  399. package/contracts/instance/InstanceReader.sol +376 -392
  400. package/contracts/instance/InstanceService.sol +186 -134
  401. package/contracts/instance/InstanceStore.sol +153 -128
  402. package/contracts/instance/ProductStore.sol +290 -0
  403. package/contracts/instance/RiskSet.sol +10 -2
  404. package/contracts/instance/TargetNames.sol +10 -0
  405. package/contracts/instance/base/BalanceStore.sol +4 -6
  406. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  407. package/contracts/instance/module/IBundle.sol +6 -5
  408. package/contracts/instance/module/IComponents.sol +15 -5
  409. package/contracts/instance/module/IDistribution.sol +17 -7
  410. package/contracts/instance/module/IPolicy.sol +28 -8
  411. package/contracts/instance/module/IRisk.sol +2 -0
  412. package/contracts/oracle/BasicOracle.sol +2 -3
  413. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  414. package/contracts/oracle/IOracle.sol +9 -4
  415. package/contracts/oracle/IOracleService.sol +12 -12
  416. package/contracts/oracle/Oracle.sol +4 -6
  417. package/contracts/oracle/OracleService.sol +8 -8
  418. package/contracts/pool/BasicPool.sol +4 -16
  419. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  420. package/contracts/pool/BundleService.sol +34 -43
  421. package/contracts/pool/IBundleService.sol +14 -13
  422. package/contracts/pool/IPoolService.sol +7 -2
  423. package/contracts/pool/Pool.sol +6 -18
  424. package/contracts/pool/PoolLib.sol +127 -2
  425. package/contracts/pool/PoolService.sol +40 -181
  426. package/contracts/product/ApplicationService.sol +64 -11
  427. package/contracts/product/BasicProduct.sol +2 -3
  428. package/contracts/product/BasicProductAuthorization.sol +13 -5
  429. package/contracts/product/ClaimService.sol +99 -105
  430. package/contracts/product/IApplicationService.sol +21 -2
  431. package/contracts/product/IClaimService.sol +5 -4
  432. package/contracts/product/IPolicyService.sol +9 -2
  433. package/contracts/product/IRiskService.sol +18 -3
  434. package/contracts/product/PolicyService.sol +40 -59
  435. package/contracts/product/PolicyServiceLib.sol +79 -5
  436. package/contracts/product/PricingService.sol +28 -31
  437. package/contracts/product/Product.sol +40 -16
  438. package/contracts/product/RiskService.sol +50 -15
  439. package/contracts/registry/IRegistry.sol +15 -9
  440. package/contracts/registry/IRelease.sol +6 -3
  441. package/contracts/registry/Registry.sol +15 -9
  442. package/contracts/registry/RegistryAdmin.sol +39 -118
  443. package/contracts/registry/RegistryAuthorization.sol +139 -69
  444. package/contracts/registry/RegistryService.sol +1 -1
  445. package/contracts/registry/ReleaseAdmin.sol +59 -106
  446. package/contracts/registry/ReleaseRegistry.sol +20 -12
  447. package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
  448. package/contracts/registry/TokenRegistry.sol +56 -52
  449. package/contracts/shared/Component.sol +8 -8
  450. package/contracts/shared/ComponentService.sol +245 -262
  451. package/contracts/shared/ContractLib.sol +106 -75
  452. package/contracts/shared/EcdsaChecker.sol +5 -0
  453. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  454. package/contracts/shared/IComponent.sol +1 -1
  455. package/contracts/shared/IComponentService.sol +14 -15
  456. package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
  457. package/contracts/shared/INftOwnable.sol +2 -0
  458. package/contracts/shared/IRegisterable.sol +0 -1
  459. package/contracts/shared/InstanceLinkedComponent.sol +64 -26
  460. package/contracts/shared/NftOwnable.sol +3 -1
  461. package/contracts/shared/PolicyHolder.sol +3 -2
  462. package/contracts/shared/Service.sol +6 -4
  463. package/contracts/staking/IStaking.sol +261 -70
  464. package/contracts/staking/IStakingService.sol +39 -84
  465. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  466. package/contracts/staking/Staking.sol +468 -217
  467. package/contracts/staking/StakingLib.sol +38 -124
  468. package/contracts/staking/StakingManager.sol +4 -3
  469. package/contracts/staking/StakingReader.sol +62 -71
  470. package/contracts/staking/StakingService.sol +42 -185
  471. package/contracts/staking/StakingServiceManager.sol +1 -0
  472. package/contracts/staking/StakingStore.sol +1093 -331
  473. package/contracts/staking/TargetHandler.sol +132 -0
  474. package/contracts/staking/TargetManagerLib.sol +69 -46
  475. package/contracts/type/Amount.sol +4 -0
  476. package/contracts/type/Blocknumber.sol +17 -22
  477. package/contracts/type/ChainId.sol +101 -0
  478. package/contracts/type/Fee.sol +8 -8
  479. package/contracts/type/NftId.sol +3 -3
  480. package/contracts/type/ObjectType.sol +17 -33
  481. package/contracts/type/Referral.sol +6 -0
  482. package/contracts/type/RequestIdSet.sol +62 -0
  483. package/contracts/type/RoleId.sol +57 -59
  484. package/contracts/type/Seconds.sol +23 -0
  485. package/contracts/type/String.sol +42 -0
  486. package/contracts/type/Timestamp.sol +14 -3
  487. package/contracts/type/UFixed.sol +28 -10
  488. package/contracts/upgradeability/IVersionable.sol +3 -0
  489. package/contracts/upgradeability/ProxyManager.sol +26 -12
  490. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  491. package/contracts/upgradeability/Versionable.sol +6 -3
  492. package/package.json +2 -1
  493. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  494. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  495. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  496. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  497. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  498. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  499. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  500. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  501. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  502. package/contracts/shared/IKeyValueStore.sol +0 -54
  503. package/contracts/shared/KeyValueStore.sol +0 -131
  504. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -6,29 +6,216 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
6
6
  import {IAccess} from "./IAccess.sol";
7
7
  import {IAccessAdmin} from "./IAccessAdmin.sol";
8
8
  import {IAuthorization} from "./IAuthorization.sol";
9
+ import {IComponent} from "../shared/IComponent.sol";
10
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
9
11
  import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {IService} from "../shared/IService.sol";
13
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
10
14
 
15
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
16
+ import {BlocknumberLib} from "../type/Blocknumber.sol";
11
17
  import {ContractLib} from "../shared/ContractLib.sol";
12
18
  import {ObjectType} from "../type/ObjectType.sol";
13
- import {RoleId} from "../type/RoleId.sol";
14
- import {SelectorLib} from "../type/Selector.sol";
19
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
20
+ import {Selector, SelectorLib} from "../type/Selector.sol";
15
21
  import {Str, StrLib} from "../type/String.sol";
16
22
  import {TimestampLib} from "../type/Timestamp.sol";
17
- import {VersionPart} from "../type/Version.sol";
23
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
18
24
 
19
25
 
20
26
  library AccessAdminLib { // ACCESS_ADMIN_LIB
21
27
 
28
+ string public constant TOKEN_HANDLER_SUFFIX = "Th";
29
+ string public constant ROLE_SUFFIX = "_Role";
30
+
31
+ uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
32
+ uint64 public constant COMPONENT_ROLE_FACTOR = 1000;
33
+ uint64 public constant COMPONENT_ROLE_MAX = 19000;
34
+
35
+ uint64 public constant CORE_ROLE_MIN = 100;
36
+ uint64 public constant SERVICE_ROLE_MIN = 1000; // + service domain * SERVICE_ROLE_FACTOR + release
37
+ uint64 public constant SERVICE_ROLE_FACTOR = 1000;
38
+ uint64 public constant INSTANCE_ROLE_MIN = 100000;
39
+
40
+ // MUST match with Authorization.COMPONENT_ROLE_MIN
41
+ uint64 public constant COMPONENT_ROLE_MIN = 110000;
42
+
43
+ uint64 public constant CUSTOM_ROLE_MIN = 1000000;
44
+
45
+
46
+ function ADMIN_ROLE_NAME() public pure returns (string memory) {
47
+ return "AdminRole";
48
+ }
49
+
50
+
51
+ function isAdminRoleName(string memory name) public pure returns (bool) {
52
+ return StrLib.eq(name, ADMIN_ROLE_NAME());
53
+ }
54
+
55
+
56
+ function PUBLIC_ROLE_NAME() public pure returns (string memory) {
57
+ return "PublicRole";
58
+ }
59
+
60
+
61
+ function getAdminRole() public pure returns (RoleId adminRoleId) {
62
+ // see oz AccessManagerUpgradeable
63
+ return RoleId.wrap(type(uint64).min);
64
+ }
65
+
66
+
67
+ function getPublicRole() public pure returns (RoleId publicRoleId) {
68
+ // see oz AccessManagerUpgradeable
69
+ return RoleId.wrap(type(uint64).max);
70
+ }
71
+
72
+
73
+ function isAdminOrPublicRole(string memory name)
74
+ public
75
+ view
76
+ returns (bool)
77
+ {
78
+ return StrLib.eq(name, ADMIN_ROLE_NAME())
79
+ || StrLib.eq(name, PUBLIC_ROLE_NAME());
80
+ }
81
+
82
+
83
+ function isDynamicRoleId(RoleId roleId)
84
+ public
85
+ pure
86
+ returns (bool)
87
+ {
88
+ return roleId.toInt() >= COMPONENT_ROLE_MIN;
89
+ }
90
+
91
+
92
+ function adminRoleInfo()
93
+ public
94
+ view
95
+ returns (IAccess.RoleInfo memory)
96
+ {
97
+ return roleInfo(
98
+ getAdminRole(),
99
+ IAccess.TargetType.Core,
100
+ 1,
101
+ ADMIN_ROLE_NAME());
102
+ }
103
+
104
+
105
+ function publicRoleInfo()
106
+ public
107
+ view
108
+ returns (IAccess.RoleInfo memory)
109
+ {
110
+ return roleInfo(
111
+ getAdminRole(),
112
+ IAccess.TargetType.Custom,
113
+ type(uint32).max,
114
+ PUBLIC_ROLE_NAME());
115
+ }
116
+
117
+
118
+ function coreRoleInfo(string memory name)
119
+ public
120
+ view
121
+ returns (IAccess.RoleInfo memory)
122
+ {
123
+ return roleInfo(
124
+ getAdminRole(),
125
+ IAccess.TargetType.Core,
126
+ 1,
127
+ name);
128
+ }
129
+
130
+
131
+ function serviceRoleInfo(string memory serviceName)
132
+ public
133
+ view
134
+ returns (IAccess.RoleInfo memory)
135
+ {
136
+ return roleInfo(
137
+ getAdminRole(),
138
+ IAccess.TargetType.Service,
139
+ 1,
140
+ serviceName);
141
+ }
142
+
143
+
144
+ /// @dev Creates a role info object from the provided parameters
145
+ function roleInfo(
146
+ RoleId adminRoleId,
147
+ IAccess.TargetType targetType,
148
+ uint32 maxMemberCount,
149
+ string memory roleName
150
+ )
151
+ public
152
+ view
153
+ returns (IAccess.RoleInfo memory info)
154
+ {
155
+ return IAccess.RoleInfo({
156
+ name: StrLib.toStr(roleName),
157
+ adminRoleId: adminRoleId,
158
+ targetType: targetType,
159
+ maxMemberCount: maxMemberCount,
160
+ createdAt: TimestampLib.current(),
161
+ pausedAt: TimestampLib.max(),
162
+ lastUpdateIn: BlocknumberLib.current()});
163
+ }
164
+
165
+
166
+ function getSelectors(
167
+ IAccess.FunctionInfo[] memory functions
168
+ )
169
+ public
170
+ pure
171
+ returns (
172
+ bytes4[] memory selectors
173
+ )
174
+ {
175
+ uint256 n = functions.length;
176
+ selectors = new bytes4[](n);
177
+ for (uint256 i = 0; i < n; i++) {
178
+ selectors[i] = functions[i].selector.toBytes4();
179
+ }
180
+ }
181
+
182
+
183
+ function checkInitParameters(
184
+ address authority,
185
+ string memory adminName
186
+ )
187
+ public
188
+ view
189
+ {
190
+ // only contract check (authority might not yet be initialized at this time)
191
+ if (!ContractLib.isContract(authority)) {
192
+ revert IAccessAdmin.ErrorAccessAdminAuthorityNotContract(authority);
193
+ }
194
+
195
+ // check name not empty
196
+ if (bytes(adminName).length == 0) {
197
+ revert IAccessAdmin.ErrorAccessAdminAccessManagerEmptyName();
198
+ }
199
+ }
200
+
201
+
22
202
  function checkRoleCreation(
23
203
  IAccessAdmin accessAdmin,
24
204
  RoleId roleId,
25
- IAccess.RoleInfo memory info
205
+ IAccess.RoleInfo memory info,
206
+ bool revertOnExistingRole
26
207
  )
27
208
  public
28
209
  view
210
+ returns (bool isAdminOrPublicRole)
29
211
  {
30
- // check role does not yet exist // ACCESS_ADMIN_LIB role creation checks
31
- if(accessAdmin.roleExists(roleId)) {
212
+ // check
213
+ if (roleId == ADMIN_ROLE() || roleId == PUBLIC_ROLE()) {
214
+ return true;
215
+ }
216
+
217
+ // check role does not yet exist
218
+ if(revertOnExistingRole && accessAdmin.roleExists(roleId)) {
32
219
  revert IAccessAdmin.ErrorAccessAdminRoleAlreadyCreated(
33
220
  roleId,
34
221
  accessAdmin.getRoleInfo(roleId).name.toString());
@@ -45,13 +232,52 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
45
232
  }
46
233
 
47
234
  // check role name is not used for another role
48
- RoleId roleIdForName = accessAdmin.getRoleForName(StrLib.toString(info.name));
49
- if(roleIdForName.gtz()) {
235
+ (RoleId roleIdForName, bool exists) = accessAdmin.getRoleForName(StrLib.toString(info.name));
236
+ if(revertOnExistingRole && exists) {
50
237
  revert IAccessAdmin.ErrorAccessAdminRoleNameAlreadyExists(
51
238
  roleId,
52
239
  info.name.toString(),
53
240
  roleIdForName);
54
241
  }
242
+
243
+ return false;
244
+ }
245
+
246
+
247
+ function checkRoleExists(
248
+ IAccessAdmin accessAdmin,
249
+ RoleId roleId,
250
+ bool onlyActiveRole,
251
+ bool allowAdminAndPublicRoles
252
+ )
253
+ internal
254
+ view
255
+ {
256
+ // check role exists
257
+ if (!accessAdmin.roleExists(roleId)) {
258
+ revert IAccessAdmin.ErrorAccessAdminRoleUnknown(roleId);
259
+ }
260
+
261
+ // if onlyActiveRoles: check if role is disabled
262
+ if (onlyActiveRole && accessAdmin.getRoleInfo(roleId).pausedAt <= TimestampLib.current()) {
263
+ revert IAccessAdmin.ErrorAccessAdminRoleIsPaused(roleId);
264
+ }
265
+
266
+ // if not allowAdminAndPublicRoles, check if role is admin or public role
267
+ if (!allowAdminAndPublicRoles) {
268
+ checkNotAdminOrPublicRole(roleId);
269
+ }
270
+ }
271
+
272
+
273
+ function checkNotAdminOrPublicRole(RoleId roleId) public pure {
274
+ if (roleId == ADMIN_ROLE()) {
275
+ revert IAccessAdmin.ErrorAccessAdminInvalidUseOfAdminRole();
276
+ }
277
+
278
+ if (roleId == PUBLIC_ROLE()) {
279
+ revert IAccessAdmin.ErrorAccessAdminInvalidUseOfPublicRole();
280
+ }
55
281
  }
56
282
 
57
283
  function checkTargetCreation(
@@ -97,7 +323,73 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
97
323
  revert IAccessAdmin.ErrorAccessAdminTargetAuthorityMismatch(accessAdmin.authority(), targetAuthority);
98
324
  }
99
325
  }
326
+ }
327
+
328
+
329
+ function checkComponentInitialization(
330
+ IAccessAdmin accessAdmin,
331
+ IAuthorization instanceAuthorization,
332
+ address componentAddress,
333
+ ObjectType expectedType
334
+ )
335
+ public
336
+ view
337
+ returns (IAuthorization componentAuthorization)
338
+ {
339
+ checkIsRegistered(address(accessAdmin.getRegistry()), componentAddress, expectedType);
340
+
341
+ VersionPart expecteRelease = accessAdmin.getRelease();
342
+ IAuthorizedComponent component = IAuthorizedComponent(componentAddress);
343
+ componentAuthorization = component.getAuthorization();
100
344
 
345
+ checkAuthorization(
346
+ address(instanceAuthorization),
347
+ address(componentAuthorization),
348
+ expectedType,
349
+ expecteRelease,
350
+ false, // expectServiceAuthorization,
351
+ false); // checkAlreadyInitialized
352
+ }
353
+
354
+
355
+ function checkTargetAndRoleForFunctions(
356
+ IAccessAdmin accessAdmin,
357
+ address target,
358
+ RoleId roleId,
359
+ bool onlyComponentOrContractTargets
360
+ )
361
+ public
362
+ view
363
+ {
364
+ // check target exists
365
+ IAccess.TargetType targetType = accessAdmin.getTargetInfo(target).targetType;
366
+ if (targetType == IAccess.TargetType.Undefined) {
367
+ revert IAccessAdmin.ErrorAccessAdminTargetNotCreated(target);
368
+ }
369
+
370
+ // check target type
371
+ if (onlyComponentOrContractTargets) {
372
+ if (targetType != IAccess.TargetType.Component && targetType != IAccess.TargetType.Contract) {
373
+ revert IAccessAdmin.ErrorAccessAdminNotComponentOrCustomTarget(target);
374
+ }
375
+ }
376
+
377
+ // check role exist
378
+ checkRoleExists(accessAdmin, roleId, true, true);
379
+ }
380
+
381
+
382
+ function checkTargetExists(
383
+ IAccessAdmin accessAdmin,
384
+ address target
385
+ )
386
+ public
387
+ view
388
+ {
389
+ // check not yet created
390
+ if (!accessAdmin.targetExists(target)) {
391
+ revert IAccessAdmin.ErrorAccessAdminTargetNotCreated(target);
392
+ }
101
393
  }
102
394
 
103
395
 
@@ -106,6 +398,7 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
106
398
  address authorization,
107
399
  ObjectType expectedDomain,
108
400
  VersionPart expectedRelease,
401
+ bool expectServiceAuthorization,
109
402
  bool checkAlreadyInitialized
110
403
  )
111
404
  public
@@ -118,8 +411,14 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
118
411
  }
119
412
 
120
413
  // check contract type matches
121
- if (!ContractLib.supportsInterface(authorization, type(IAuthorization).interfaceId)) {
122
- revert IAccessAdmin.ErrorAccessAdminNotAuthorization(authorization);
414
+ if (expectServiceAuthorization) {
415
+ if (!ContractLib.supportsInterface(authorization, type(IServiceAuthorization).interfaceId)) {
416
+ revert IAccessAdmin.ErrorAccessAdminNotServiceAuthorization(authorization);
417
+ }
418
+ } else {
419
+ if (!ContractLib.supportsInterface(authorization, type(IAuthorization).interfaceId)) {
420
+ revert IAccessAdmin.ErrorAccessAdminNotAuthorization(authorization);
421
+ }
123
422
  }
124
423
 
125
424
  // check domain matches
@@ -144,6 +443,8 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
144
443
  public
145
444
  view
146
445
  {
446
+ checkRegistry(registry);
447
+
147
448
  ObjectType tagetType = IRegistry(registry).getObjectInfo(target).objectType;
148
449
  if (tagetType.eqz()) {
149
450
  revert IAccessAdmin.ErrorAccessAdminNotRegistered(target);
@@ -154,30 +455,241 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
154
455
  }
155
456
  }
156
457
 
157
- function toRole(RoleId adminRoleId, IAccessAdmin.RoleType roleType, uint32 maxMemberCount, string memory name)
458
+
459
+ function checkRegistry(
460
+ address registry
461
+ )
462
+ public
463
+ view
464
+ {
465
+ if (!ContractLib.isRegistry(registry)) {
466
+ revert IAccessAdmin.ErrorAccessAdminNotRegistry(registry);
467
+ }
468
+ }
469
+
470
+
471
+ function getAuthorizedRole(
472
+ IAccessAdmin accessAdmin,
473
+ IAuthorization authorization,
474
+ RoleId roleId
475
+ )
476
+ public
477
+ view
478
+ returns (RoleId authorizedRoleId)
479
+ {
480
+ string memory roleName = authorization.getRoleInfo(roleId).name.toString();
481
+ (authorizedRoleId, ) = accessAdmin.getRoleForName(roleName);
482
+ }
483
+
484
+
485
+ function getFunctionRoleId(
486
+ AccessManagerCloneable authority,
487
+ address target,
488
+ Selector selector
489
+ )
490
+ public
491
+ view
492
+ returns (RoleId functionRoleId)
493
+ {
494
+ return RoleIdLib.toRoleId(
495
+ authority.getTargetFunctionRole(
496
+ target,
497
+ selector.toBytes4()));
498
+ }
499
+
500
+
501
+ function getServiceRoleId(
502
+ address serviceAddress,
503
+ IAccess.TargetType serviceTargetType
504
+ )
505
+ public
506
+ view
507
+ returns (RoleId serviceRoleId)
508
+ {
509
+ IService service = IService(serviceAddress);
510
+
511
+ if (serviceTargetType == IAccess.TargetType.Service) {
512
+ return RoleIdLib.toServiceRoleId(service.getDomain(), service.getRelease());
513
+ } else if (serviceTargetType == IAccess.TargetType.GenericService) {
514
+ return RoleIdLib.toGenericServiceRoleId(service.getDomain());
515
+ }
516
+
517
+ revert IAccessAdmin.ErrorAccessAdminInvalidServiceType(serviceAddress, serviceTargetType);
518
+ }
519
+
520
+
521
+ function getVersionedServiceRoleId(
522
+ ObjectType serviceDomain,
523
+ VersionPart release
524
+ )
525
+ public
526
+ pure
527
+ returns (RoleId serviceRoleId)
528
+ {
529
+ return RoleIdLib.toRoleId(
530
+ SERVICE_ROLE_MIN + SERVICE_ROLE_FACTOR * serviceDomain.toInt() + release.toInt());
531
+ }
532
+
533
+
534
+ function getGenericServiceRoleId(
535
+ ObjectType serviceDomain
536
+ )
537
+ public
538
+ pure
539
+ returns (RoleId serviceRoleId)
540
+ {
541
+ return RoleIdLib.toRoleId(
542
+ SERVICE_ROLE_MIN + SERVICE_ROLE_FACTOR * serviceDomain.toInt() + VersionPartLib.releaseMax().toInt());
543
+ }
544
+
545
+
546
+ function getCustomRoleId(uint64 index)
547
+ public
548
+ pure
549
+ returns (RoleId customRoleId)
550
+ {
551
+ return RoleIdLib.toRoleId(CUSTOM_ROLE_MIN + index);
552
+ }
553
+
554
+
555
+ function isCustomRole(RoleId roleId)
556
+ public
557
+ pure
558
+ returns (bool)
559
+ {
560
+ return roleId.toInt() >= CUSTOM_ROLE_MIN;
561
+ }
562
+
563
+
564
+ function getTargetRoleId(
565
+ address target,
566
+ IAccess.TargetType targetType,
567
+ uint64 index
568
+ )
158
569
  public
570
+ view
571
+ returns (RoleId targetRoleId)
572
+ {
573
+ if (targetType == IAccess.TargetType.Core) {
574
+ return RoleIdLib.toRoleId(CORE_ROLE_MIN + index);
575
+ }
576
+
577
+ if (targetType == IAccess.TargetType.Service || targetType == IAccess.TargetType.GenericService ) {
578
+ return getServiceRoleId(target, targetType);
579
+ }
580
+
581
+ if (targetType == IAccess.TargetType.Instance) {
582
+ return RoleIdLib.toRoleId(INSTANCE_ROLE_MIN + index);
583
+ }
584
+
585
+ if (targetType == IAccess.TargetType.Component) {
586
+ return RoleIdLib.toRoleId(COMPONENT_ROLE_MIN + index);
587
+ }
588
+
589
+ if (targetType == IAccess.TargetType.Custom
590
+ || targetType == IAccess.TargetType.Contract)
591
+ {
592
+ return RoleIdLib.toRoleId(CUSTOM_ROLE_MIN + index);
593
+ }
594
+
595
+ revert IAccessAdmin.ErrorAccessAdminInvalidTargetType(target, targetType);
596
+ }
597
+
598
+
599
+ function getTokenHandler(
600
+ address target,
601
+ string memory targetName,
602
+ IAccess.TargetType targetType
603
+ )
604
+ public
605
+ view
606
+ returns (
607
+ address tokenHandler,
608
+ string memory tokenHandlerName
609
+ )
610
+ {
611
+ // not component or core (we need to check core because of staking)
612
+ if (targetType != IAccess.TargetType.Component && targetType != IAccess.TargetType.Core) {
613
+ return (address(0), "");
614
+ }
615
+
616
+ // not contract
617
+ if (!ContractLib.isContract(target)) {
618
+ return (address(0), "");
619
+ }
620
+
621
+ // not component
622
+ if (!ContractLib.supportsInterface(target, type(IComponent).interfaceId)) {
623
+ return (address(0), "");
624
+ }
625
+
626
+ tokenHandler = address(IComponent(target).getTokenHandler());
627
+ tokenHandlerName = string(abi.encodePacked(targetName, TOKEN_HANDLER_SUFFIX));
628
+ }
629
+
630
+
631
+ function toFunctionGrantingString(
632
+ IAccessAdmin accessAdmin,
633
+ Str functionName,
634
+ RoleId roleId
635
+ )
636
+ public
637
+ view
638
+ returns (string memory)
639
+ {
640
+ return string(
641
+ abi.encodePacked(
642
+ functionName.toString(),
643
+ "(): ",
644
+ getRoleName(accessAdmin, roleId)));
645
+ }
646
+
647
+
648
+ function getRoleName(
649
+ IAccessAdmin accessAdmin,
650
+ RoleId roleId
651
+ )
652
+ public
159
653
  view
160
- returns (IAccess.RoleInfo memory)
161
- {
162
- return IAccess.RoleInfo({
163
- name: StrLib.toStr(name),
164
- adminRoleId: adminRoleId,
165
- roleType: roleType,
166
- maxMemberCount: maxMemberCount,
167
- createdAt: TimestampLib.blockTimestamp(),
168
- pausedAt: TimestampLib.max()
169
- });
654
+ returns (string memory)
655
+ {
656
+ if (accessAdmin.roleExists(roleId)) {
657
+ return accessAdmin.getRoleInfo(roleId).name.toString();
658
+ }
659
+
660
+ return "<unknown-role>";
170
661
  }
171
662
 
172
- function toFunction(bytes4 selector, string memory name)
663
+
664
+ function toRoleName(string memory name) public pure returns (string memory) {
665
+ return string(
666
+ abi.encodePacked(
667
+ name,
668
+ ROLE_SUFFIX));
669
+ }
670
+
671
+
672
+ function toFunction(
673
+ bytes4 selector,
674
+ string memory name
675
+ )
173
676
  public
174
677
  view
175
678
  returns (IAccess.FunctionInfo memory)
176
679
  {
680
+ if(selector == bytes4(0)) {
681
+ revert IAccessAdmin.ErrorAccessAdminSelectorZero();
682
+ }
683
+
684
+ if(bytes(name).length == 0) {
685
+ revert IAccessAdmin.ErrorAccessAdminFunctionNameEmpty();
686
+ }
687
+
177
688
  return IAccess.FunctionInfo({
178
689
  name: StrLib.toStr(name),
179
690
  selector: SelectorLib.toSelector(selector),
180
- createdAt: TimestampLib.blockTimestamp()});
691
+ createdAt: TimestampLib.current(),
692
+ lastUpdateIn: BlocknumberLib.current()});
181
693
  }
182
694
 
183
695
  }
@@ -62,24 +62,6 @@ contract AccessManagerCloneable is
62
62
  _checkAndSetRelease(release);
63
63
  }
64
64
 
65
- // /// @dev Completes the setup of the access manager.
66
- // /// Links the access manager to the registry and sets the release version.
67
- // function completeSetup(
68
- // address registry,
69
- // VersionPart release,
70
- // bool verifyRelease
71
- // )
72
- // public
73
- // onlyAdminRole
74
- // reinitializer(uint64(release.toInt()))
75
- // {
76
- // _checkAndSetRegistry(registry);
77
-
78
- // if (verifyRelease) {
79
- // _checkAndSetRelease(release);
80
- // }
81
- // }
82
-
83
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.
84
66
  /// Feturn values as in OpenZeppelin AccessManager.
85
67
  /// For a locked manager the function reverts with ErrorAccessManagerTargetAdminLocked.