@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-0fefe0d-162

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 (501) hide show
  1. package/README.md +123 -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 +372 -131
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1509 -174
  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 +500 -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 +1198 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -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 +2347 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -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 +757 -393
  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 +723 -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 +542 -305
  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 +548 -231
  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 +167 -103
  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/IComponent.sol/IComponent.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
  246. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -132
  248. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
  250. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  253. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  256. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  259. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  260. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  261. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
  262. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  273. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  274. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1390 -134
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
  285. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  287. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  288. package/artifacts/contracts/staking/Staking.sol/Staking.json +1479 -192
  289. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
  301. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  303. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
  305. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  308. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  310. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  312. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  314. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  316. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  318. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  320. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  321. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  322. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  324. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  325. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  326. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  328. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  330. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  332. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  334. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  335. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  336. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  338. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  340. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  342. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  347. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  349. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  351. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  361. package/contracts/accounting/AccountingService.sol +15 -3
  362. package/contracts/accounting/IAccountingService.sol +4 -2
  363. package/contracts/authorization/AccessAdmin.sol +292 -317
  364. package/contracts/authorization/AccessAdminLib.sol +517 -22
  365. package/contracts/authorization/AccessManagerCloneable.sol +0 -18
  366. package/contracts/authorization/Authorization.sol +64 -239
  367. package/contracts/authorization/IAccess.sol +29 -12
  368. package/contracts/authorization/IAccessAdmin.sol +25 -53
  369. package/contracts/authorization/IAuthorization.sol +3 -57
  370. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  371. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  372. package/contracts/distribution/BasicDistribution.sol +3 -4
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  374. package/contracts/distribution/Distribution.sol +9 -8
  375. package/contracts/distribution/DistributionService.sol +125 -62
  376. package/contracts/distribution/IDistributionComponent.sol +3 -1
  377. package/contracts/distribution/IDistributionService.sol +20 -8
  378. package/contracts/examples/fire/FireProduct.sol +6 -6
  379. package/contracts/examples/flight/FlightLib.sol +311 -0
  380. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  381. package/contracts/examples/flight/FlightOracle.sol +167 -0
  382. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  383. package/contracts/examples/flight/FlightPool.sol +89 -0
  384. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  385. package/contracts/examples/flight/FlightProduct.sol +625 -0
  386. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  387. package/contracts/examples/flight/FlightUSD.sol +28 -0
  388. package/contracts/examples/flight/originalV1.sol +396 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
  390. package/contracts/instance/BaseStore.sol +93 -0
  391. package/contracts/instance/IBaseStore.sol +37 -0
  392. package/contracts/instance/IInstance.sol +57 -6
  393. package/contracts/instance/IInstanceService.sol +42 -7
  394. package/contracts/instance/Instance.sol +111 -56
  395. package/contracts/instance/InstanceAdmin.sol +151 -294
  396. package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
  397. package/contracts/instance/InstanceReader.sol +370 -392
  398. package/contracts/instance/InstanceService.sol +186 -134
  399. package/contracts/instance/InstanceStore.sol +153 -128
  400. package/contracts/instance/ProductStore.sol +290 -0
  401. package/contracts/instance/RiskSet.sol +10 -2
  402. package/contracts/instance/TargetNames.sol +10 -0
  403. package/contracts/instance/base/BalanceStore.sol +4 -6
  404. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  405. package/contracts/instance/module/IBundle.sol +6 -5
  406. package/contracts/instance/module/IComponents.sol +15 -5
  407. package/contracts/instance/module/IDistribution.sol +17 -7
  408. package/contracts/instance/module/IPolicy.sol +28 -8
  409. package/contracts/instance/module/IRisk.sol +2 -0
  410. package/contracts/oracle/BasicOracle.sol +2 -3
  411. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  412. package/contracts/oracle/IOracle.sol +9 -4
  413. package/contracts/oracle/IOracleService.sol +12 -12
  414. package/contracts/oracle/Oracle.sol +4 -6
  415. package/contracts/oracle/OracleService.sol +8 -8
  416. package/contracts/pool/BasicPool.sol +4 -16
  417. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  418. package/contracts/pool/BundleService.sol +34 -43
  419. package/contracts/pool/IBundleService.sol +14 -13
  420. package/contracts/pool/IPoolService.sol +7 -2
  421. package/contracts/pool/Pool.sol +6 -18
  422. package/contracts/pool/PoolLib.sol +127 -2
  423. package/contracts/pool/PoolService.sol +40 -181
  424. package/contracts/product/ApplicationService.sol +64 -11
  425. package/contracts/product/BasicProduct.sol +2 -3
  426. package/contracts/product/BasicProductAuthorization.sol +13 -5
  427. package/contracts/product/ClaimService.sol +99 -105
  428. package/contracts/product/IApplicationService.sol +21 -2
  429. package/contracts/product/IClaimService.sol +5 -4
  430. package/contracts/product/IPolicyService.sol +9 -2
  431. package/contracts/product/IRiskService.sol +18 -3
  432. package/contracts/product/PolicyService.sol +40 -59
  433. package/contracts/product/PolicyServiceLib.sol +79 -5
  434. package/contracts/product/PricingService.sol +28 -31
  435. package/contracts/product/Product.sol +40 -16
  436. package/contracts/product/RiskService.sol +50 -15
  437. package/contracts/registry/IRegistry.sol +15 -9
  438. package/contracts/registry/IRelease.sol +6 -3
  439. package/contracts/registry/Registry.sol +15 -9
  440. package/contracts/registry/RegistryAdmin.sol +33 -118
  441. package/contracts/registry/RegistryAuthorization.sol +139 -69
  442. package/contracts/registry/RegistryService.sol +1 -1
  443. package/contracts/registry/ReleaseAdmin.sol +52 -106
  444. package/contracts/registry/ReleaseRegistry.sol +20 -12
  445. package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
  446. package/contracts/registry/TokenRegistry.sol +56 -52
  447. package/contracts/shared/Component.sol +8 -8
  448. package/contracts/shared/ComponentService.sol +245 -262
  449. package/contracts/shared/ContractLib.sol +106 -75
  450. package/contracts/shared/EcdsaChecker.sol +5 -0
  451. package/contracts/shared/IComponent.sol +1 -1
  452. package/contracts/shared/IComponentService.sol +14 -15
  453. package/contracts/shared/INftOwnable.sol +2 -0
  454. package/contracts/shared/IRegisterable.sol +0 -1
  455. package/contracts/shared/InstanceLinkedComponent.sol +63 -26
  456. package/contracts/shared/NftOwnable.sol +3 -1
  457. package/contracts/shared/PolicyHolder.sol +3 -2
  458. package/contracts/shared/Service.sol +6 -4
  459. package/contracts/staking/IStaking.sol +261 -70
  460. package/contracts/staking/IStakingService.sol +39 -84
  461. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  462. package/contracts/staking/Staking.sol +468 -217
  463. package/contracts/staking/StakingLib.sol +38 -124
  464. package/contracts/staking/StakingManager.sol +4 -3
  465. package/contracts/staking/StakingReader.sol +62 -71
  466. package/contracts/staking/StakingService.sol +42 -185
  467. package/contracts/staking/StakingServiceManager.sol +1 -0
  468. package/contracts/staking/StakingStore.sol +1093 -331
  469. package/contracts/staking/TargetHandler.sol +132 -0
  470. package/contracts/staking/TargetManagerLib.sol +69 -46
  471. package/contracts/type/Amount.sol +4 -0
  472. package/contracts/type/Blocknumber.sol +17 -22
  473. package/contracts/type/ChainId.sol +101 -0
  474. package/contracts/type/Fee.sol +8 -8
  475. package/contracts/type/NftId.sol +3 -3
  476. package/contracts/type/ObjectType.sol +17 -33
  477. package/contracts/type/Referral.sol +6 -0
  478. package/contracts/type/RequestIdSet.sol +62 -0
  479. package/contracts/type/RoleId.sol +57 -59
  480. package/contracts/type/Seconds.sol +23 -0
  481. package/contracts/type/String.sol +42 -0
  482. package/contracts/type/Timestamp.sol +14 -3
  483. package/contracts/type/UFixed.sol +28 -10
  484. package/contracts/upgradeability/IVersionable.sol +3 -0
  485. package/contracts/upgradeability/ProxyManager.sol +26 -12
  486. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  487. package/contracts/upgradeability/Versionable.sol +6 -3
  488. package/package.json +2 -1
  489. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  490. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  491. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  492. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  493. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  494. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  495. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  496. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  497. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  498. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  499. package/contracts/shared/IKeyValueStore.sol +0 -54
  500. package/contracts/shared/KeyValueStore.sol +0 -131
  501. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -3,51 +3,33 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "../authorization/IAccess.sol";
5
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
6
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
6
  import {IRegistry} from "../registry/IRegistry.sol";
8
7
  import {IInstance} from "./IInstance.sol";
9
8
 
10
9
  import {AccessAdmin} from "../authorization/AccessAdmin.sol";
10
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
11
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
- import {NftId} from "../type/NftId.sol";
13
- import {ObjectType, INSTANCE, ORACLE} from "../type/ObjectType.sol";
14
- import {RoleId, RoleIdLib} from "../type/RoleId.sol";
15
- import {Str, StrLib} from "../type/String.sol";
16
- import {TokenHandler} from "../shared/TokenHandler.sol";
17
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
+ import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
13
+ import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
14
+ import {Str} from "../type/String.sol";
15
+ import {VersionPart} from "../type/Version.sol";
16
+ import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
18
17
 
19
18
 
20
19
  contract InstanceAdmin is
21
20
  AccessAdmin
22
21
  {
23
- string public constant INSTANCE_TARGET_NAME = "Instance";
24
- string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
- string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
26
- string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
- string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
-
29
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
30
-
22
+ // onlyInstanceService
31
23
  error ErrorInstanceAdminNotInstanceService(address caller);
32
24
 
33
- error ErrorInstanceAdminNotRegistered(address instance);
34
- error ErrorInstanceAdminNotInstance(address instance);
35
- error ErrorInstanceAdminAlreadyAuthorized(address instance);
36
-
37
- error ErrorInstanceAdminNotComponentRole(RoleId roleId);
38
- error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
39
- error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
40
-
41
- error ErrorInstanceAdminReleaseMismatch();
42
- error ErrorInstanceAdminExpectedTargetMissing(string targetName);
25
+ // authorizeFunctions
26
+ error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
43
27
 
44
28
  IInstance internal _instance;
45
29
  IRegistry internal _registry;
46
- VersionPart internal _release;
47
- uint64 internal _customIdNext;
48
30
 
49
- mapping(address target => RoleId roleId) internal _targetRoleId;
50
- uint64 internal _components;
31
+ uint64 internal _customRoleIdNext;
32
+
51
33
 
52
34
  modifier onlyInstanceService() {
53
35
  if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
@@ -56,6 +38,7 @@ contract InstanceAdmin is
56
38
  _;
57
39
  }
58
40
 
41
+
59
42
  /// @dev Only used for master instance admin.
60
43
  constructor(address accessManager) {
61
44
  initialize(
@@ -69,55 +52,82 @@ contract InstanceAdmin is
69
52
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
70
53
  function completeSetup(
71
54
  address registry,
72
- address instance,
73
55
  address authorization,
74
- VersionPart release
56
+ VersionPart release,
57
+ address instance
75
58
  )
76
59
  external
77
60
  reinitializer(uint64(release.toInt()))
78
- onlyDeployer()
79
61
  {
80
62
  // checks
81
- _checkRegistry(registry);
82
- _checkIsRegistered(registry, instance, INSTANCE());
63
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
83
64
 
65
+ // effects
84
66
  AccessManagerCloneable(
85
67
  authority()).completeSetup(
86
68
  registry,
87
69
  release);
88
70
 
89
- _checkAuthorization(authorization, INSTANCE(), release, true);
71
+ AccessAdminLib.checkAuthorization(
72
+ address(_authorization),
73
+ authorization,
74
+ INSTANCE(), // expectedDomain
75
+ release, // expectedRelease
76
+ false, // expectServiceAuthorization
77
+ true); // checkAlreadyInitialized
90
78
 
91
- // effects
92
79
  _registry = IRegistry(registry);
93
- _release = release;
94
-
95
80
  _instance = IInstance(instance);
96
81
  _authorization = IAuthorization(authorization);
97
- _components = 0;
98
- _customIdNext = CUSTOM_ROLE_ID_MIN;
82
+ _customRoleIdNext = 0;
99
83
 
100
84
  // link nft ownability to instance
101
85
  _linkToNftOwnable(instance);
102
86
 
103
- // create instance role and target
104
- _setupInstance(instance);
105
-
106
- // add instance authorization
87
+ // setup roles and services
107
88
  _createRoles(_authorization);
108
- // _createTargets(_authorization);
109
- _setupInstanceHelperTargetsWithRoles();
89
+ _setupServices(_authorization);
90
+
91
+ // setup instance targets
92
+ _createInstanceTargets(_authorization.getMainTargetName());
93
+
94
+ // authorize functions of instance contracts
110
95
  _createTargetAuthorizations(_authorization);
111
96
  }
112
97
 
98
+ /// @dev grants the service roles to the service addresses based on the authorization specification.
99
+ /// Service addresses used for the granting are determined by the registry and the release of this instance.
100
+ function _setupServices(IAuthorization authorization)
101
+ internal
102
+ {
103
+ ObjectType[] memory serviceDomains = authorization.getServiceDomains();
104
+
105
+ for(uint256 i = 0; i < serviceDomains.length; i++) {
106
+ ObjectType serviceDomain = serviceDomains[i];
107
+ RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
108
+ address service = _registry.getServiceAddress(serviceDomain, getRelease());
109
+
110
+ _grantRoleToAccount(
111
+ serviceRoleId,
112
+ service);
113
+ }
114
+ }
113
115
 
114
- function _createTargets(IAuthorization authorization)
116
+
117
+ function _createInstanceTargets(string memory instanceTargetName)
115
118
  internal
116
119
  {
117
- _createTargetWithRole(address(this), INSTANCE_ADMIN_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(INSTANCE_ADMIN_TARGET_NAME)));
118
- _createTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(INSTANCE_STORE_TARGET_NAME)));
119
- _createTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(BUNDLE_SET_TARGET_NAME)));
120
- _createTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(RISK_SET_TARGET_NAME)));
120
+ _createInstanceTarget(address(_instance), instanceTargetName);
121
+ _createInstanceTarget(address(this), INSTANCE_ADMIN_TARGET_NAME);
122
+ _createInstanceTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
123
+ _createInstanceTarget(address(_instance.getProductStore()), PRODUCT_STORE_TARGET_NAME);
124
+ _createInstanceTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
125
+ _createInstanceTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME);
126
+ }
127
+
128
+
129
+ function _createInstanceTarget(address target, string memory name) internal {
130
+ _createTarget(target, name, TargetType.Instance, true);
121
131
  }
122
132
 
123
133
 
@@ -130,64 +140,49 @@ contract InstanceAdmin is
130
140
  external
131
141
  restricted()
132
142
  {
133
- // checks
134
- _checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
135
-
136
- IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
137
- IAuthorization authorization = component.getAuthorization();
138
- _checkAuthorization(address(authorization), expectedType, getRelease(), false);
143
+ IAuthorization authorization = AccessAdminLib.checkComponentInitialization(
144
+ this, _authorization, componentAddress, expectedType);
139
145
 
140
146
  // effects
141
- // setup target and role for component (including token handler if applicable)
142
- _setupComponentAndTokenHandler(component, expectedType);
143
-
144
- // create other roles and function authorizations
145
147
  _createRoles(authorization);
148
+ _createTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component, true);
146
149
  _createTargetAuthorizations(authorization);
147
150
  }
148
151
 
149
- function getRelease()
150
- public
151
- view
152
- override
153
- returns (VersionPart release)
154
- {
155
- return _release;
156
- }
157
-
158
152
 
159
- // create instance role and target
160
- function _setupInstance(address instance) internal {
161
-
162
- // create instance role
163
- RoleId instanceRoleId = _authorization.getTargetRole(
164
- _authorization.getMainTarget());
153
+ /// @dev Creates a custom role.
154
+ function createRole(
155
+ string memory name,
156
+ RoleId adminRoleId,
157
+ uint32 maxMemberCount
158
+ )
159
+ external
160
+ restricted()
161
+ returns (RoleId roleId)
162
+ {
163
+ // create roleId
164
+ roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
165
165
 
166
+ // create role
166
167
  _createRole(
167
- instanceRoleId,
168
- _authorization.getRoleInfo(instanceRoleId));
169
-
170
- // create instance target
171
- _createTarget(
172
- instance,
173
- _authorization.getMainTargetName(),
174
- true, // checkAuthority
175
- false); // custom
176
-
177
- // assign instance role to instance
178
- _grantRoleToAccount(
179
- instanceRoleId,
180
- instance);
168
+ roleId,
169
+ AccessAdminLib.roleInfo(
170
+ adminRoleId,
171
+ IAccess.TargetType.Custom,
172
+ maxMemberCount,
173
+ name),
174
+ true); // revert on existing role
181
175
  }
182
176
 
183
- /// @dev Creates a custom role
184
- // TODO implement
185
- // function createRole()
186
- // external
187
- // restricted()
188
- // {
189
177
 
190
- // }
178
+ /// @dev Activtes/pauses the specified role.
179
+ function setRoleActive(RoleId roleId, bool active)
180
+ external
181
+ restricted()
182
+ {
183
+ _setRoleActive(roleId, active);
184
+ }
185
+
191
186
 
192
187
  /// @dev Grants the provided role to the specified account
193
188
  function grantRole(
@@ -200,6 +195,61 @@ contract InstanceAdmin is
200
195
  }
201
196
 
202
197
 
198
+ /// @dev Revokes the provided role from the specified account
199
+ function revokeRole(
200
+ RoleId roleId,
201
+ address account)
202
+ external
203
+ restricted()
204
+ {
205
+ _revokeRoleFromAccount(roleId, account);
206
+ }
207
+
208
+
209
+ /// @dev Create a new contract target.
210
+ /// The target needs to be an access managed contract.
211
+ function createTarget(
212
+ address target,
213
+ string memory name
214
+ )
215
+ external
216
+ restricted()
217
+ returns (RoleId contractRoleId)
218
+ {
219
+ return _createTarget(
220
+ target,
221
+ name,
222
+ TargetType.Contract,
223
+ true); // check authority matches
224
+ }
225
+
226
+
227
+ /// @dev Add function authorizations for the specified component or custom target.
228
+ function authorizeFunctions(
229
+ address target,
230
+ RoleId roleId,
231
+ IAccess.FunctionInfo[] memory functions
232
+ )
233
+ external
234
+ restricted()
235
+ {
236
+ _authorizeTargetFunctions(target, roleId, functions, true, true);
237
+ }
238
+
239
+
240
+ /// @dev Removes function authorizations for the specified component or custom target.
241
+ function unauthorizeFunctions(
242
+ address target,
243
+ IAccess.FunctionInfo[] memory functions
244
+ )
245
+ external
246
+ restricted()
247
+ {
248
+ _authorizeTargetFunctions(target, ADMIN_ROLE(), functions, true, false);
249
+ }
250
+
251
+
252
+ /// @dev locks the instance and all its releated targets including component and custom targets.
203
253
  function setInstanceLocked(bool locked)
204
254
  external
205
255
  // not restricted(): need to operate on locked instances to unlock instance
@@ -212,28 +262,20 @@ contract InstanceAdmin is
212
262
 
213
263
  function setTargetLocked(address target, bool locked)
214
264
  external
215
- // not restricted(): might need to operate on targets while instance is locked
265
+ // not restricted(): need to operate on locked instances to unlock instance
216
266
  onlyInstanceService()
217
267
  {
218
268
  _setTargetLocked(target, locked);
219
269
  }
220
270
 
221
271
 
222
- function setComponentLocked(address target, bool locked)
272
+ function setContractLocked(address target, bool locked)
223
273
  external
224
- restricted()
274
+ restricted() // component service
225
275
  {
226
276
  _setTargetLocked(target, locked);
227
277
  }
228
278
 
229
- /// @dev Returns the number of components that have been registered with this instance.
230
- function components()
231
- external
232
- view
233
- returns (uint64)
234
- {
235
- return _components;
236
- }
237
279
 
238
280
  /// @dev Returns the instance authorization specification used to set up this instance admin.
239
281
  function getInstanceAuthorization()
@@ -246,133 +288,6 @@ contract InstanceAdmin is
246
288
 
247
289
  // ------------------- Internal functions ------------------- //
248
290
 
249
- function _setupComponentAndTokenHandler(
250
- IInstanceLinkedComponent component,
251
- ObjectType componentType
252
- )
253
- internal
254
- {
255
-
256
- IAuthorization authorization = component.getAuthorization();
257
- string memory targetName = authorization.getMainTargetName();
258
-
259
- // create component role and target
260
- RoleId componentRoleId = _createComponentRoleId(component, authorization);
261
-
262
- // create component's target
263
- _createTarget(
264
- address(component),
265
- targetName,
266
- true, // checkAuthority
267
- false); // custom
268
-
269
- // create component's token handler target if app
270
- if (componentType != ORACLE()) {
271
- NftId componentNftId = _registry.getNftIdForAddress(address(component));
272
- address tokenHandler = address(
273
- _instance.getInstanceReader().getComponentInfo(
274
- componentNftId).tokenHandler);
275
-
276
- _createTarget(
277
- tokenHandler,
278
- authorization.getTokenHandlerName(),
279
- true,
280
- false);
281
-
282
- // token handler does not require its own role
283
- // token handler is not calling other components
284
- }
285
-
286
- // assign component role to component
287
- _grantRoleToAccount(
288
- componentRoleId,
289
- address(component));
290
- }
291
-
292
-
293
- function _createComponentRoleId(
294
- IInstanceLinkedComponent component,
295
- IAuthorization authorization
296
- )
297
- internal
298
- returns (RoleId componentRoleId)
299
- {
300
- // checks
301
- // check component is not yet authorized
302
- if (_targetRoleId[address(component)].gtz()) {
303
- revert ErrorInstanceAdminAlreadyAuthorized(address(component));
304
- }
305
-
306
- // check generic component role
307
- RoleId genericComponentRoleId = authorization.getTargetRole(
308
- authorization.getMainTarget());
309
-
310
- if (!genericComponentRoleId.isComponentRole()) {
311
- revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
312
- }
313
-
314
- // check component role does not exist
315
- componentRoleId = toComponentRole(
316
- genericComponentRoleId,
317
- _components);
318
-
319
- if (roleExists(componentRoleId)) {
320
- revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
321
- }
322
-
323
- // check role info
324
- IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
325
- genericComponentRoleId);
326
-
327
- if (roleInfo.roleType != IAccess.RoleType.Contract) {
328
- revert ErrorInstanceAdminRoleTypeNotContract(
329
- componentRoleId,
330
- roleInfo.roleType);
331
- }
332
-
333
- // effects
334
- _targetRoleId[address(component)] = componentRoleId;
335
- _components++;
336
-
337
- _createRole(
338
- componentRoleId,
339
- roleInfo);
340
- }
341
-
342
-
343
- function _createRoles(IAuthorization authorization)
344
- internal
345
- {
346
- RoleId[] memory roles = authorization.getRoles();
347
- RoleId mainTargetRoleId = authorization.getTargetRole(
348
- authorization.getMainTarget());
349
-
350
- RoleId roleId;
351
- RoleInfo memory roleInfo;
352
-
353
- for(uint256 i = 0; i < roles.length; i++) {
354
-
355
- roleId = roles[i];
356
-
357
- // skip main target role, create role if not exists
358
- if (roleId != mainTargetRoleId && !roleExists(roleId)) {
359
- _createRole(
360
- roleId,
361
- authorization.getRoleInfo(roleId));
362
- }
363
- }
364
- }
365
-
366
-
367
- function toComponentRole(RoleId roleId, uint64 componentIdx)
368
- internal
369
- pure
370
- returns (RoleId)
371
- {
372
- return RoleIdLib.toRoleId(
373
- RoleIdLib.toInt(roleId) + componentIdx);
374
- }
375
-
376
291
 
377
292
  function _createTargetAuthorizations(IAuthorization authorization)
378
293
  internal
@@ -383,68 +298,10 @@ contract InstanceAdmin is
383
298
  for(uint256 i = 0; i < targets.length; i++) {
384
299
  target = targets[i];
385
300
  RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
386
- RoleId authorizedRole;
387
301
 
388
302
  for(uint256 j = 0; j < authorizedRoles.length; j++) {
389
- authorizedRole = authorizedRoles[j];
390
-
391
- _authorizeTargetFunctions(
392
- getTargetForName(target),
393
- authorizedRole,
394
- authorization.getAuthorizedFunctions(
395
- target,
396
- authorizedRole));
303
+ _authorizeFunctions(authorization, target, authorizedRoles[j]);
397
304
  }
398
305
  }
399
306
  }
400
-
401
- function _checkAndCreateTargetWithRole(
402
- address target,
403
- string memory targetName
404
- )
405
- internal
406
- {
407
- // check that target name is defined in authorization specification
408
- Str name = StrLib.toStr(targetName);
409
- if (!_authorization.targetExists(name)) {
410
- revert ErrorInstanceAdminExpectedTargetMissing(targetName);
411
- }
412
-
413
- // create named target
414
- _createTarget(
415
- target,
416
- targetName,
417
- false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
418
- false);
419
-
420
- // assign target role if defined
421
- RoleId targetRoleId = _authorization.getTargetRole(name);
422
- if (targetRoleId != RoleIdLib.zero()) {
423
- _grantRoleToAccount(targetRoleId, target);
424
- }
425
- }
426
-
427
- function _setupInstanceHelperTargetsWithRoles()
428
- internal
429
- {
430
-
431
- // create module targets
432
- _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
433
- _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
434
- _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
435
- _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME);
436
-
437
- // create targets for services that need to access the instance targets
438
- ObjectType[] memory serviceDomains = _authorization.getServiceDomains();
439
- VersionPart release = _authorization.getRelease();
440
- ObjectType serviceDomain;
441
-
442
- for (uint256 i = 0; i < serviceDomains.length; i++) {
443
- serviceDomain = serviceDomains[i];
444
-
445
- _checkAndCreateTargetWithRole(
446
- _registry.getServiceAddress(serviceDomain, release),
447
- _authorization.getServiceTarget(serviceDomain).toString());
448
- }
449
- }
450
307
  }