@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-ea09fbf-195

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 (714) hide show
  1. package/README.md +83 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → accounting/IAccountingService.sol/IAccountingService.json} +327 -380
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1092 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +259 -572
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -312
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +243 -325
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +263 -115
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +228 -123
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +288 -233
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1800 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1610 -560
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -445
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -157
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1780 -739
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +228 -284
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +302 -175
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -229
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +318 -442
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +820 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +347 -60
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1309 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +377 -414
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1626 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +792 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +451 -457
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1538 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +860 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +138 -163
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1082 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +968 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +64 -61
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1320 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +464 -29
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +953 -127
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -249
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  212. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +280 -180
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1597 -0
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +142 -132
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  228. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +152 -125
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1221 -0
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1067 -0
  277. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1272 -0
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  353. package/contracts/accounting/AccountingService.sol +262 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +45 -0
  356. package/contracts/authorization/AccessAdmin.sol +659 -0
  357. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  358. package/contracts/authorization/Authorization.sol +289 -0
  359. package/contracts/authorization/IAccess.sol +49 -0
  360. package/contracts/authorization/IAccessAdmin.sol +140 -0
  361. package/contracts/authorization/IAuthorization.sol +60 -0
  362. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  363. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  364. package/contracts/distribution/BasicDistribution.sol +139 -0
  365. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  366. package/contracts/{components → distribution}/Distribution.sol +170 -163
  367. package/contracts/distribution/DistributionService.sol +357 -0
  368. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  369. package/contracts/distribution/IDistributionComponent.sol +52 -0
  370. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  371. package/contracts/examples/fire/DamageLevel.sol +59 -0
  372. package/contracts/examples/fire/FirePool.sol +90 -0
  373. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  374. package/contracts/examples/fire/FireProduct.sol +438 -0
  375. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  376. package/contracts/examples/fire/FireUSD.sol +26 -0
  377. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  378. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  380. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  381. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  383. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  384. package/contracts/instance/BundleSet.sol +130 -0
  385. package/contracts/instance/IInstance.sol +43 -37
  386. package/contracts/instance/IInstanceService.sol +37 -49
  387. package/contracts/instance/Instance.sol +142 -106
  388. package/contracts/instance/InstanceAdmin.sol +326 -0
  389. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  390. package/contracts/instance/InstanceReader.sol +363 -60
  391. package/contracts/instance/InstanceService.sol +258 -384
  392. package/contracts/instance/InstanceServiceManager.sol +14 -29
  393. package/contracts/instance/InstanceStore.sol +174 -95
  394. package/contracts/instance/RiskSet.sol +118 -0
  395. package/contracts/instance/base/BalanceStore.sol +123 -0
  396. package/contracts/instance/base/Cloneable.sol +28 -0
  397. package/contracts/instance/base/ObjectCounter.sol +20 -0
  398. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelper.sol +30 -0
  401. package/contracts/instance/module/IAccess.sol +4 -12
  402. package/contracts/instance/module/IBundle.sol +6 -9
  403. package/contracts/instance/module/IComponents.sol +28 -18
  404. package/contracts/instance/module/IDistribution.sol +6 -6
  405. package/contracts/instance/module/IPolicy.sol +48 -35
  406. package/contracts/instance/module/IRisk.sol +4 -1
  407. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  410. package/contracts/oracle/IOracle.sol +36 -0
  411. package/contracts/oracle/IOracleComponent.sol +33 -0
  412. package/contracts/oracle/IOracleService.sol +66 -0
  413. package/contracts/oracle/Oracle.sol +156 -0
  414. package/contracts/oracle/OracleService.sol +310 -0
  415. package/contracts/oracle/OracleServiceManager.sol +39 -0
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  418. package/contracts/pool/BundleService.sol +425 -0
  419. package/contracts/pool/BundleServiceManager.sol +39 -0
  420. package/contracts/pool/IBundleService.sol +121 -0
  421. package/contracts/pool/IPoolComponent.sol +62 -0
  422. package/contracts/pool/IPoolService.sol +153 -0
  423. package/contracts/pool/Pool.sol +345 -0
  424. package/contracts/pool/PoolService.sol +615 -0
  425. package/contracts/pool/PoolServiceManager.sol +39 -0
  426. package/contracts/product/ApplicationService.sol +259 -0
  427. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  428. package/contracts/product/BasicProduct.sol +51 -0
  429. package/contracts/product/BasicProductAuthorization.sol +41 -0
  430. package/contracts/product/ClaimService.sol +708 -0
  431. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  432. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  433. package/contracts/product/IClaimService.sol +136 -0
  434. package/contracts/product/IPolicyService.sol +90 -0
  435. package/contracts/product/IPricingService.sol +39 -0
  436. package/contracts/product/IProductComponent.sol +62 -0
  437. package/contracts/product/IRiskService.sol +33 -0
  438. package/contracts/product/PolicyService.sol +736 -0
  439. package/contracts/product/PolicyServiceManager.sol +39 -0
  440. package/contracts/product/PricingService.sol +304 -0
  441. package/contracts/product/PricingServiceManager.sol +39 -0
  442. package/contracts/product/Product.sol +463 -0
  443. package/contracts/product/RiskService.sol +151 -0
  444. package/contracts/product/RiskServiceManager.sol +39 -0
  445. package/contracts/registry/ChainNft.sol +79 -40
  446. package/contracts/registry/IRegistry.sol +93 -30
  447. package/contracts/registry/IRegistryService.sol +34 -40
  448. package/contracts/registry/IRelease.sol +26 -0
  449. package/contracts/registry/ITransferInterceptor.sol +1 -2
  450. package/contracts/registry/Registry.sol +456 -197
  451. package/contracts/registry/RegistryAdmin.sol +344 -0
  452. package/contracts/registry/RegistryService.sol +89 -130
  453. package/contracts/registry/RegistryServiceManager.sol +23 -32
  454. package/contracts/registry/ReleaseAdmin.sol +245 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  456. package/contracts/registry/ReleaseRegistry.sol +511 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +242 -0
  458. package/contracts/registry/TokenRegistry.sol +261 -64
  459. package/contracts/shared/Component.sol +226 -0
  460. package/contracts/shared/ComponentService.sol +700 -0
  461. package/contracts/shared/ComponentServiceManager.sol +38 -0
  462. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  463. package/contracts/shared/ContractLib.sol +252 -0
  464. package/contracts/shared/IComponent.sol +61 -0
  465. package/contracts/shared/IComponentService.sol +116 -0
  466. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  467. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  468. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  469. package/contracts/shared/INftOwnable.sol +4 -2
  470. package/contracts/shared/IPolicyHolder.sol +23 -14
  471. package/contracts/shared/IRegisterable.sol +23 -1
  472. package/contracts/shared/IRegistryLinked.sol +0 -1
  473. package/contracts/shared/IService.sol +12 -5
  474. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  475. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  476. package/contracts/shared/KeyValueStore.sol +131 -0
  477. package/contracts/shared/Lifecycle.sol +88 -0
  478. package/contracts/shared/NftIdSet.sol +65 -0
  479. package/contracts/shared/NftOwnable.sol +34 -27
  480. package/contracts/shared/PolicyHolder.sol +22 -41
  481. package/contracts/shared/Registerable.sol +55 -20
  482. package/contracts/shared/RegistryLinked.sol +9 -19
  483. package/contracts/shared/Service.sol +33 -40
  484. package/contracts/shared/TokenHandler.sol +368 -12
  485. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  486. package/contracts/staking/IStaking.sol +173 -0
  487. package/contracts/staking/IStakingService.sol +157 -0
  488. package/contracts/staking/StakeManagerLib.sol +224 -0
  489. package/contracts/staking/Staking.sol +526 -0
  490. package/contracts/staking/StakingLifecycle.sol +23 -0
  491. package/contracts/staking/StakingManager.sol +52 -0
  492. package/contracts/staking/StakingReader.sol +190 -0
  493. package/contracts/staking/StakingService.sol +439 -0
  494. package/contracts/staking/StakingServiceManager.sol +44 -0
  495. package/contracts/staking/StakingStore.sol +605 -0
  496. package/contracts/staking/TargetManagerLib.sol +211 -0
  497. package/contracts/{types → type}/AddressSet.sol +1 -1
  498. package/contracts/type/Amount.sol +150 -0
  499. package/contracts/{types → type}/Blocknumber.sol +26 -3
  500. package/contracts/{types → type}/ClaimId.sol +31 -3
  501. package/contracts/{types → type}/Fee.sol +24 -22
  502. package/contracts/{types → type}/Key32.sol +2 -2
  503. package/contracts/type/Key32Set.sol +62 -0
  504. package/contracts/{types → type}/NftId.sol +21 -16
  505. package/contracts/{types → type}/NftIdSet.sol +2 -2
  506. package/contracts/type/ObjectType.sol +290 -0
  507. package/contracts/type/PayoutId.sol +82 -0
  508. package/contracts/{types → type}/Referral.sol +2 -1
  509. package/contracts/type/RequestId.sol +75 -0
  510. package/contracts/type/RiskId.sol +74 -0
  511. package/contracts/type/RoleId.sol +165 -0
  512. package/contracts/type/Seconds.sol +101 -0
  513. package/contracts/type/Selector.sol +102 -0
  514. package/contracts/{types → type}/StateId.sol +47 -4
  515. package/contracts/type/String.sol +53 -0
  516. package/contracts/{types → type}/Timestamp.sol +20 -6
  517. package/contracts/{types → type}/UFixed.sol +40 -121
  518. package/contracts/{types → type}/Version.sol +19 -7
  519. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  520. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  521. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  522. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  523. package/package.json +11 -7
  524. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  525. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  526. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  531. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  532. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  533. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  539. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  541. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  546. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  548. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  550. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  551. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  553. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  555. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  557. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  559. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  561. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  567. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  587. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  589. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  594. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  596. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  598. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  599. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  606. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  614. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  615. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  617. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  618. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  620. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  622. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  624. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  640. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  642. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  644. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  646. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  648. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  650. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  652. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  654. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  656. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  658. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  660. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  662. package/contracts/components/Component.sol +0 -253
  663. package/contracts/components/IComponent.sol +0 -76
  664. package/contracts/components/IDistributionComponent.sol +0 -71
  665. package/contracts/components/IPoolComponent.sol +0 -113
  666. package/contracts/components/IProductComponent.sol +0 -40
  667. package/contracts/components/Pool.sol +0 -303
  668. package/contracts/components/Product.sol +0 -293
  669. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  670. package/contracts/instance/BundleManager.sol +0 -127
  671. package/contracts/instance/Cloneable.sol +0 -51
  672. package/contracts/instance/InstanceAccessManager.sol +0 -540
  673. package/contracts/instance/ObjectManager.sol +0 -82
  674. package/contracts/instance/base/ComponentService.sol +0 -121
  675. package/contracts/instance/base/KeyValueStore.sol +0 -180
  676. package/contracts/instance/base/Lifecycle.sol +0 -109
  677. package/contracts/instance/module/ISetup.sol +0 -33
  678. package/contracts/instance/module/ITreasury.sol +0 -23
  679. package/contracts/instance/service/ApplicationService.sol +0 -351
  680. package/contracts/instance/service/BundleService.sol +0 -431
  681. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  682. package/contracts/instance/service/ClaimService.sol +0 -151
  683. package/contracts/instance/service/DistributionService.sol +0 -437
  684. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  685. package/contracts/instance/service/IBundleService.sol +0 -93
  686. package/contracts/instance/service/IClaimService.sol +0 -61
  687. package/contracts/instance/service/IPolicyService.sol +0 -72
  688. package/contracts/instance/service/IPoolService.sol +0 -99
  689. package/contracts/instance/service/IProductService.sol +0 -40
  690. package/contracts/instance/service/PolicyService.sol +0 -362
  691. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  692. package/contracts/instance/service/PoolService.sol +0 -303
  693. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  694. package/contracts/instance/service/ProductService.sol +0 -209
  695. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  696. package/contracts/registry/RegistryAccessManager.sol +0 -216
  697. package/contracts/registry/ReleaseManager.sol +0 -324
  698. package/contracts/shared/ContractDeployerLib.sol +0 -72
  699. package/contracts/test/TestFee.sol +0 -25
  700. package/contracts/test/TestRegisterable.sol +0 -18
  701. package/contracts/test/TestRoleId.sol +0 -14
  702. package/contracts/test/TestService.sol +0 -25
  703. package/contracts/test/TestToken.sol +0 -26
  704. package/contracts/test/TestVersion.sol +0 -44
  705. package/contracts/test/TestVersionable.sol +0 -17
  706. package/contracts/types/Amount.sol +0 -60
  707. package/contracts/types/ChainId.sol +0 -38
  708. package/contracts/types/NumberId.sol +0 -52
  709. package/contracts/types/ObjectType.sol +0 -157
  710. package/contracts/types/PayoutId.sol +0 -54
  711. package/contracts/types/RiskId.sol +0 -43
  712. package/contracts/types/RoleId.sol +0 -97
  713. package/contracts/types/Seconds.sol +0 -54
  714. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,242 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
6
+ } from "../../contracts/type/ObjectType.sol";
7
+
8
+ import {IAccess} from "../authorization/IAccess.sol";
9
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
10
+ import {IBundleService} from "../pool/IBundleService.sol";
11
+ import {IClaimService} from "../product/IClaimService.sol";
12
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
13
+ import {IInstanceService} from "../instance/IInstanceService.sol";
14
+ import {IPoolService} from "../pool/IPoolService.sol";
15
+ import {IStakingService} from "../staking/IStakingService.sol";
16
+ import {IRegistryService} from "./IRegistryService.sol";
17
+ import {IRiskService} from "../product/IRiskService.sol";
18
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
19
+
20
+
21
+ contract ServiceAuthorizationV3
22
+ is ServiceAuthorization
23
+ {
24
+
25
+ constructor(string memory commitHash)
26
+ ServiceAuthorization(commitHash, 3)
27
+ {}
28
+
29
+ function _setupDomains()
30
+ internal
31
+ override
32
+ {
33
+ _authorizeDomain(REGISTRY(), address(1));
34
+ _authorizeDomain(STAKING(), address(2));
35
+ _authorizeDomain(INSTANCE(), address(3));
36
+ _authorizeDomain(ACCOUNTING(), address(4));
37
+ _authorizeDomain(COMPONENT(), address(5));
38
+ _authorizeDomain(DISTRIBUTION(), address(6));
39
+ _authorizeDomain(PRICE(), address(7));
40
+ _authorizeDomain(BUNDLE(), address(8));
41
+ _authorizeDomain(POOL(), address(9));
42
+ _authorizeDomain(ORACLE(), address(10));
43
+ _authorizeDomain(RISK(), address(11));
44
+ _authorizeDomain(POLICY(), address(12));
45
+ _authorizeDomain(CLAIM(), address(13));
46
+ _authorizeDomain(APPLICATION(), address(14));
47
+ }
48
+
49
+
50
+ function _setupDomainAuthorizations()
51
+ internal
52
+ override
53
+ {
54
+ _setupIRegistryServiceAuthorization();
55
+ _setupStakingServiceAuthorization();
56
+ _setupInstanceServiceAuthorization();
57
+ _setupInstanceServiceAuthorization();
58
+ _setupAccountingServiceAuthorization();
59
+ _setupComponentServiceAuthorization();
60
+ _setupClaimServiceAuthorization();
61
+ _setupRiskServiceAuthorization();
62
+ _setupDistributionServiceAuthorization();
63
+ _setupPoolServiceAuthorization();
64
+ _setupBundleServiceAuthorization();
65
+ }
66
+
67
+
68
+ /// @dev registry service authorization.
69
+ /// authorized functions MUST be implemented with a restricted modifier
70
+ function _setupIRegistryServiceAuthorization()
71
+ internal
72
+ {
73
+ IAccess.FunctionInfo[] storage functions;
74
+
75
+ functions = _authorizeForService(REGISTRY(), APPLICATION());
76
+ _authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
77
+
78
+ functions = _authorizeForService(REGISTRY(), BUNDLE());
79
+ _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
80
+
81
+ functions = _authorizeForService(REGISTRY(), COMPONENT());
82
+ _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
83
+ _authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
84
+
85
+ functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
86
+ _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
87
+
88
+ functions = _authorizeForService(REGISTRY(), INSTANCE());
89
+ _authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
90
+
91
+ functions = _authorizeForService(REGISTRY(), STAKING());
92
+ _authorize(functions, IRegistryService.registerStake.selector, "registerStake");
93
+ }
94
+
95
+
96
+ /// @dev staking service authorization.
97
+ /// authorized functions MUST be implemented with a restricted modifier
98
+ function _setupStakingServiceAuthorization()
99
+ internal
100
+ {
101
+ IAccess.FunctionInfo[] storage functions;
102
+
103
+ functions = _authorizeForService(STAKING(), INSTANCE());
104
+ _authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
105
+ _authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
106
+ _authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
107
+ _authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
108
+ _authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
109
+
110
+ functions = _authorizeForService(STAKING(), ALL());
111
+ _authorize(functions, IStakingService.create.selector, "create");
112
+ _authorize(functions, IStakingService.stake.selector, "stake");
113
+ _authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
114
+ _authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
115
+ _authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
116
+ _authorize(functions, IStakingService.unstake.selector, "unstake");
117
+ }
118
+
119
+
120
+ /// @dev Instance service function authorization.
121
+ function _setupInstanceServiceAuthorization()
122
+ internal
123
+ {
124
+ IAccess.FunctionInfo[] storage functions;
125
+ functions = _authorizeForService(INSTANCE(), ALL());
126
+ _authorize(functions, IInstanceService.createInstance.selector, "createInstance");
127
+ _authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
128
+ _authorize(functions, IInstanceService.upgradeMasterInstanceReader.selector, "upgradeMasterInstanceReader");
129
+
130
+ _authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
131
+ _authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
132
+ _authorize(functions, IInstanceService.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
133
+ _authorize(functions, IInstanceService.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
134
+ }
135
+
136
+ /// @dev Accounting service function authorization.
137
+ function _setupAccountingServiceAuthorization()
138
+ internal
139
+ {
140
+ IAccess.FunctionInfo[] storage functions;
141
+
142
+ functions = _authorizeForService(ACCOUNTING(), BUNDLE());
143
+ _authorize(functions, IAccountingService.increaseBundleBalance.selector, "increaseBundleBalance");
144
+ _authorize(functions, IAccountingService.decreaseBundleBalance.selector, "decreaseBundleBalance");
145
+
146
+ functions = _authorizeForService(ACCOUNTING(), COMPONENT());
147
+ _authorize(functions, IAccountingService.decreaseComponentFees.selector, "decreaseComponentFees");
148
+
149
+ functions = _authorizeForService(ACCOUNTING(), DISTRIBUTION());
150
+ _authorize(functions, IAccountingService.increaseDistributionBalance.selector, "increaseDistributionBalance");
151
+ _authorize(functions, IAccountingService.decreaseDistributionBalance.selector, "decreaseDistributionBalance");
152
+ _authorize(functions, IAccountingService.increaseDistributorBalance.selector, "increaseDistributorBalance");
153
+ _authorize(functions, IAccountingService.decreaseDistributorBalance.selector, "decreaseDistributorBalance");
154
+
155
+ functions = _authorizeForService(ACCOUNTING(), POLICY());
156
+ _authorize(functions, IAccountingService.increaseProductFees.selector, "increaseProductFees");
157
+
158
+ functions = _authorizeForService(ACCOUNTING(), POOL());
159
+ _authorize(functions, IAccountingService.increasePoolBalance.selector, "increasePoolBalance");
160
+ _authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
161
+ _authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
162
+ _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
163
+
164
+ }
165
+
166
+
167
+ /// @dev Component service function authorization.
168
+ function _setupComponentServiceAuthorization()
169
+ internal
170
+ {
171
+ }
172
+
173
+ /// @dev Distribution service function authorization.
174
+ function _setupRiskServiceAuthorization()
175
+ internal
176
+ {
177
+ IAccess.FunctionInfo[] storage functions;
178
+ functions = _authorizeForService(RISK(), ALL());
179
+ _authorize(functions, IRiskService.createRisk.selector, "createRisk");
180
+ _authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
181
+ _authorize(functions, IRiskService.updateRiskState.selector, "updateRiskState");
182
+ }
183
+
184
+ /// @dev Distribution service function authorization.
185
+ function _setupClaimServiceAuthorization()
186
+ internal
187
+ {
188
+ IAccess.FunctionInfo[] storage functions;
189
+ functions = _authorizeForService(CLAIM(), ALL());
190
+ _authorize(functions, IClaimService.submit.selector, "submit");
191
+ }
192
+
193
+ /// @dev Distribution service function authorization.
194
+ function _setupDistributionServiceAuthorization()
195
+ internal
196
+ {
197
+ IAccess.FunctionInfo[] storage functions;
198
+ functions = _authorizeForService(DISTRIBUTION(), POLICY());
199
+ _authorize(functions, IDistributionService.processSale.selector, "processSale");
200
+ _authorize(functions, IDistributionService.processReferral.selector, "processReferral");
201
+ }
202
+
203
+
204
+ /// @dev Pool service function authorization.
205
+ function _setupPoolServiceAuthorization()
206
+ internal
207
+ {
208
+ IAccess.FunctionInfo[] storage functions;
209
+
210
+ functions = _authorizeForService(POOL(), POLICY());
211
+ _authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
212
+ _authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
213
+ _authorize(functions, IPoolService.processSale.selector, "processSale");
214
+
215
+ functions = _authorizeForService(POOL(), CLAIM());
216
+ _authorize(functions, IPoolService.processPayout.selector, "processPayout");
217
+ }
218
+
219
+
220
+ /// @dev Instance service function authorization.
221
+ function _setupBundleServiceAuthorization()
222
+ internal
223
+ {
224
+ IAccess.FunctionInfo[] storage functions;
225
+
226
+ functions = _authorizeForService(BUNDLE(), POOL());
227
+ _authorize(functions, IBundleService.stake.selector, "stake");
228
+ _authorize(functions, IBundleService.unstake.selector, "unstake");
229
+ _authorize(functions, IBundleService.close.selector, "close");
230
+ _authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
231
+ _authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
232
+
233
+ functions = _authorizeForService(BUNDLE(), ALL());
234
+ _authorize(functions, IBundleService.create.selector, "create");
235
+ _authorize(functions, IBundleService.extend.selector, "extend");
236
+ _authorize(functions, IBundleService.lock.selector, "lock");
237
+ _authorize(functions, IBundleService.unlock.selector, "unlock");
238
+ _authorize(functions, IBundleService.setFee.selector, "setFee");
239
+ _authorize(functions, IBundleService.withdrawBundleFees.selector, "withdrawBundleFees");
240
+ }
241
+ }
242
+
@@ -1,116 +1,313 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
4
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
6
  import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
6
7
 
7
- import {IRegisterable} from "../shared/IRegisterable.sol";
8
+ import {REGISTRY} from "../type/ObjectType.sol";
9
+ import {VersionPart} from "../type/Version.sol";
10
+
8
11
  import {IRegistry} from "./IRegistry.sol";
9
- import {VersionPart} from "../types/Version.sol";
10
- import {REGISTRY} from "../types/ObjectType.sol";
11
- import {NftOwnable} from "../shared/NftOwnable.sol";
12
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
13
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
14
+ import {RegistryAdmin} from "./RegistryAdmin.sol";
12
15
 
13
- /// @title contract to register token per GIF major release.
16
+ /// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
17
+ /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
14
18
  contract TokenRegistry is
15
- NftOwnable
19
+ AccessManaged,
20
+ IRegistryLinked
16
21
  {
17
- event LogRegistered(address token, string symbol, uint256 decimals);
18
- event LogTokenStateSet(address token, VersionPart majorVersion, bool active);
22
+ event LogTokenRegistryTokenRegistered(uint256 chainId, address token, uint256 decimals, string symbol);
23
+ event LogTokenRegistryTokenGlobalStateSet(uint256 chainId, address token, bool active);
24
+ event LogTokenRegistryTokenStateSet(uint256 chainId, address token, VersionPart majorVersion, bool active);
19
25
 
20
- error NotContract(address account);
21
- error NotToken(address account);
22
- error TokenDecimalsZero();
23
- error TokenMajorVersionInvalid(VersionPart majorVersion);
26
+ error ErrorTokenRegistryChainIdZero();
27
+ error ErrorTokenRegistryTokenAddressZero();
24
28
 
25
- address [] internal _token;
26
- mapping(address token => bool registered) internal _registered;
27
- mapping(address token => mapping(VersionPart majorVersion => bool isActive)) internal _active;
29
+ error ErrorTokenRegistryNotRemoteToken(uint256 chainId, address token);
30
+ error ErrorTokenRegistryTokenAlreadyRegistered(uint256 chainId, address token);
31
+ error ErrorTokenRegistryTokenNotContract(uint256 chainId, address token);
32
+ error ErrorTokenRegistryTokenNotErc20(uint256 chainId, address token);
28
33
 
29
- constructor(
30
- address registry
31
- )
32
- {
33
- initialize(registry);
34
+ error ErrorTokenRegistryTokenNotRegistered(uint256 chainId, address token);
35
+ error ErrorTokenRegistryMajorVersionInvalid(VersionPart majorVersion);
36
+
37
+ struct TokenInfo {
38
+ uint256 chainId;
39
+ address token;
40
+ uint8 decimals;
41
+ string symbol;
42
+ bool active;
34
43
  }
35
44
 
36
- function initialize(address registry)
37
- public
38
- initializer()
45
+ mapping(uint256 chainId => mapping(address token => TokenInfo info)) internal _tokenInfo;
46
+ mapping(uint256 chainId => mapping(address token => mapping(VersionPart majorVersion => bool isActive))) internal _active;
47
+ TokenInfo [] internal _token;
48
+
49
+ IRegistry internal _registry;
50
+ ReleaseRegistry internal _releaseRegistry;
51
+ IERC20Metadata internal _dipToken;
52
+
53
+ /// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
54
+ modifier onlyRegisteredToken(uint256 chainId, address token) {
55
+ if (!isRegistered(chainId, token)) {
56
+ revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
57
+ }
58
+ _;
59
+ }
60
+
61
+ constructor(IRegistry registry, IERC20Metadata dipToken)
62
+ AccessManaged(msg.sender)
39
63
  {
40
- initializeNftOwnable(msg.sender, registry);
64
+ // set authority
65
+ address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
66
+ setAuthority(authority);
67
+
68
+ _registry = registry;
69
+ _dipToken = _verifyOnchainToken(address(dipToken));
70
+
71
+ // register dip token
72
+ uint256 chainId = block.chainid;
73
+ _registerToken(
74
+ chainId,
75
+ address(_dipToken),
76
+ _dipToken.decimals(),
77
+ _dipToken.symbol());
41
78
  }
42
79
 
43
80
 
44
- /// @dev link ownership of token registry to nft owner of registry service
45
- // TODO latter registry service will get new release, new address, new nft, TokenRegistry will not catch that -> use AccessManaged only for services
46
- function linkToNftOwnable(address registryAddress)
81
+ /// @dev register an onchain token.
82
+ /// this function verifies that the provided token address is a contract that implements
83
+ /// the non optional erc20 view functions.
84
+ function registerToken(address tokenAddress)
47
85
  external
48
- onlyOwner
86
+ restricted()
49
87
  {
50
- IRegistry registry = IRegistry(registryAddress);
51
- // TODO use _latest instead of _initial -> but _latest is 0 before first release activation
52
- address registryServiceAddress = registry.getServiceAddress(REGISTRY(), registry.getNextVersion());
53
-
54
- _linkToNftOwnable(registryServiceAddress);
88
+ IERC20Metadata token = _verifyOnchainToken(tokenAddress);
89
+ _registerToken(block.chainid, tokenAddress, token.decimals(), token.symbol());
55
90
  }
56
91
 
57
- /// @dev token state is informative, registry have no clue about used tokens
58
- // component owner is responsible for token selection and operations
59
- // service MUST deny registration of component with inactive token
60
- function setActive(address token, VersionPart majorVersion, bool active)
92
+
93
+ /// @dev register the remote token with the provided attributes.
94
+ /// this function may not be used for tokens when chainId == block.chainid.
95
+ function registerRemoteToken(
96
+ uint256 chainId,
97
+ address token,
98
+ uint8 decimals,
99
+ string memory symbol
100
+ )
61
101
  external
62
- onlyOwner
102
+ restricted()
63
103
  {
64
- // verify that token is registered
65
- if (!_registered[token]) {
66
- _registerToken(token);
104
+ if (chainId == block.chainid) {
105
+ revert ErrorTokenRegistryNotRemoteToken(chainId, token);
67
106
  }
68
107
 
108
+ _registerToken(chainId, token, decimals, symbol);
109
+ }
110
+
111
+
112
+ /// @dev set active flag on token itself.
113
+ /// when setting a token to active=false isActive will return false
114
+ /// regardless of release specific active value.
115
+ function setActive(
116
+ uint256 chainId,
117
+ address token,
118
+ bool active
119
+ )
120
+ external
121
+ restricted()
122
+ onlyRegisteredToken(chainId, token)
123
+ {
124
+ _tokenInfo[chainId][token].active = active;
125
+ emit LogTokenRegistryTokenGlobalStateSet(chainId, token, active);
126
+ }
127
+
128
+
129
+ /// @dev sets active state for specified token and major version.
130
+ /// internally calls setActiveWithVersionCheck() with enforcing version check.
131
+ /// token state is informative, registry have no clue about used tokens
132
+ /// component owner is responsible for token selection and operations
133
+ /// service MUST deny registration of component with inactive token.
134
+ function setActiveForVersion(
135
+ uint256 chainId,
136
+ address token,
137
+ VersionPart majorVersion,
138
+ bool active
139
+ )
140
+ external
141
+ restricted()
142
+ onlyRegisteredToken(chainId, token)
143
+ {
144
+ _setActiveWithVersionCheck(chainId, token, majorVersion, active, true);
145
+ }
146
+
147
+
148
+ /// @dev as setActiveForVersion() with the option to skip the version check.
149
+ /// enforcing the version check checks if the provided major version with the release manager.
150
+ /// the function reverts if the provided majorVersion is unknown to the release manager.
151
+ function setActiveWithVersionCheck(
152
+ uint256 chainId,
153
+ address token,
154
+ VersionPart majorVersion,
155
+ bool active,
156
+ bool enforceVersionCheck
157
+ )
158
+ external
159
+ restricted()
160
+ onlyRegisteredToken(chainId, token)
161
+ {
162
+ _setActiveWithVersionCheck(chainId, token, majorVersion, active, enforceVersionCheck);
163
+ }
164
+
165
+
166
+ function _setActiveWithVersionCheck(
167
+ uint256 chainId,
168
+ address token,
169
+ VersionPart majorVersion,
170
+ bool active,
171
+ bool enforceVersionCheck
172
+ )
173
+ internal
174
+ {
69
175
  // verify valid major version
70
- // ensure major version increments is one
71
- uint256 version = majorVersion.toInt();
72
- if (!getRegistry().isValidRelease(majorVersion)) {
73
- revert TokenMajorVersionInvalid(majorVersion);
176
+ if(enforceVersionCheck) {
177
+ uint256 version = majorVersion.toInt();
178
+ if (!getRegistry().isActiveRelease(majorVersion)) {
179
+ revert ErrorTokenRegistryMajorVersionInvalid(majorVersion);
180
+ }
74
181
  }
75
182
 
76
- _active[token][majorVersion] = active;
183
+ _active[chainId][token][majorVersion] = active;
184
+
185
+ emit LogTokenRegistryTokenStateSet(chainId, token, majorVersion, active);
186
+ }
77
187
 
78
- emit LogTokenStateSet(token, majorVersion, active);
188
+ /// @dev returns the dip token for this chain
189
+ function getDipToken() external view returns (IERC20Metadata dipToken) {
190
+ return _dipToken;
79
191
  }
80
192
 
193
+ /// @dev returns the number of registered tokens
81
194
  function tokens() external view returns (uint256) {
82
195
  return _token.length;
83
196
  }
84
197
 
85
- function getToken(uint256 idx) external view returns (IERC20Metadata token) {
86
- return IERC20Metadata(_token[idx]);
198
+ /// @dev returns the token info for the specified index position [0 .. tokens() - 1].
199
+ function getTokenInfo(uint256 idx) external view returns (TokenInfo memory tokenInfo) {
200
+ return _token[idx];
201
+ }
202
+
203
+ /// @dev returns the token info for the specified token coordinates.
204
+ function getTokenInfo(uint256 chainId, address token) external view returns (TokenInfo memory tokenInfo) {
205
+ return _tokenInfo[chainId][token];
87
206
  }
88
207
 
89
- function isRegistered(address token) external view returns (bool) {
90
- return _registered[token];
208
+ /// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
209
+ function isRegistered(uint256 chainId, address token) public view returns (bool) {
210
+ return _tokenInfo[chainId][token].chainId > 0;
211
+ }
212
+
213
+ /// @dev returns true iff both the token is active for the specfied release and the global token state is active
214
+ function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool) {
215
+ if(!_tokenInfo[chainId][token].active) {
216
+ return false;
217
+ }
218
+
219
+ return _active[chainId][token][release];
91
220
  }
92
221
 
93
- function isActive(address token, VersionPart majorVersion) external view returns (bool) {
94
- return _active[token][majorVersion];
222
+ function getDipTokenAddress() external view returns (address) {
223
+ return address(_dipToken);
95
224
  }
96
225
 
97
- /// @dev some sanity checks to prevent unintended registration
98
- function _registerToken(address token) internal {
226
+ //--- IRegistryLinked --------------------------------------------------//
227
+
228
+ /// @dev returns the dip token for this chain
229
+ function getRegistry() public view returns (IRegistry) {
230
+ return _registry;
231
+ }
232
+
233
+ //--- internal functions ------------------------------------------------//
234
+
235
+
236
+ /// @dev checks if provided token address refers to a smart contract that implements
237
+ /// erc20 functionality (via its non-optional functions)
238
+ function _verifyOnchainToken(address tokenAddress)
239
+ internal
240
+ virtual
241
+ view
242
+ returns (IERC20Metadata token)
243
+ {
244
+ token = IERC20Metadata(tokenAddress);
245
+ uint256 chainId = block.chainid;
99
246
 
100
247
  // MUST be contract
101
- if(token.code.length == 0) {
102
- revert NotContract(token);
248
+ if(tokenAddress.code.length == 0) {
249
+ revert ErrorTokenRegistryTokenNotContract(chainId, tokenAddress);
103
250
  }
104
251
 
105
- // MUST have decimals > 0 (indicator that this is in fact an erc20 token)
106
- IERC20Metadata erc20 = IERC20Metadata(token);
107
- if(erc20.decimals() == 0) {
108
- revert TokenDecimalsZero();
252
+ // MUST implement required erc20 view functions
253
+ if(!_implementsErc20Functions(token)) {
254
+ revert ErrorTokenRegistryTokenNotErc20(chainId, tokenAddress);
109
255
  }
256
+ }
257
+
258
+
259
+ /// @dev checks availability of non-optional view functions
260
+ /// https://eips.ethereum.org/EIPS/eip-20#methods
261
+ function _implementsErc20Functions(IERC20Metadata token) internal view returns (bool implementsErc20Functions) {
262
+ try token.totalSupply() returns (uint256) {
263
+ // so far so goood
264
+ } catch {
265
+ return false;
266
+ }
267
+
268
+ try token.balanceOf(address(1)) returns (uint256) {
269
+ // so far so goood
270
+ } catch {
271
+ return false;
272
+ }
273
+
274
+ try token.allowance(address(1), address(2)) returns (uint256) {
275
+ // so far so goood
276
+ } catch {
277
+ return false;
278
+ }
279
+
280
+ return true;
281
+ }
282
+
283
+ /// @dev some sanity checks to prevent unintended registration:
284
+ /// - token not yet registered
285
+ /// - chainId not zero
286
+ /// - token address not zero
287
+ function _registerToken(uint256 chainId, address token, uint8 decimals, string memory symbol) internal {
288
+
289
+ if (isRegistered(chainId, token)) {
290
+ revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
291
+ }
292
+
293
+ if(chainId == 0) {
294
+ revert ErrorTokenRegistryChainIdZero();
295
+ }
296
+
297
+ if(token == address(0)) {
298
+ revert ErrorTokenRegistryTokenAddressZero();
299
+ }
300
+
301
+ TokenInfo memory tokenInfo = TokenInfo({
302
+ chainId: chainId,
303
+ token: token,
304
+ decimals: decimals,
305
+ symbol: symbol,
306
+ active: true});
110
307
 
111
- _registered[token] = true;
112
- _token.push(token);
308
+ _tokenInfo[chainId][token] = tokenInfo;
309
+ _token.push(tokenInfo);
113
310
 
114
- emit LogRegistered(token, erc20.symbol(), erc20.decimals());
311
+ emit LogTokenRegistryTokenRegistered(chainId, token, decimals, symbol);
115
312
  }
116
313
  }