@etherisc/gif-next 0.0.2-aa0bd77 → 0.0.2-aa33e53-965

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 (642) hide show
  1. package/README.md +483 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1850 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1285 -0
  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 +1480 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1423 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2471 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -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 +714 -460
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1076 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +835 -538
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2646 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1322 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +772 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3784 -0
  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/base/Cloneable.sol/Cloneable.json +137 -0
  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/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1250 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1454 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +870 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1041 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  144. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1552 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +894 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +572 -0
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  176. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  178. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  180. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  182. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  184. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  185. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  186. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.json +780 -0
  188. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  190. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  192. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1065 -123
  194. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  196. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  198. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +1570 -161
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  204. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  206. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  208. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +773 -0
  210. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  212. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  214. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  216. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  218. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  220. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  221. package/artifacts/contracts/shared/Component.sol/Component.json +705 -0
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1535 -0
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +854 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +630 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  245. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +74 -74
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +348 -0
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  253. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  273. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1646 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1196 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +2054 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +842 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1425 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +782 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  360. package/contracts/accounting/AccountingService.sol +274 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +47 -0
  363. package/contracts/authorization/AccessAdmin.sol +780 -0
  364. package/contracts/authorization/AccessAdminLib.sol +396 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +169 -0
  367. package/contracts/authorization/IAccess.sol +67 -0
  368. package/contracts/authorization/IAccessAdmin.sol +144 -0
  369. package/contracts/authorization/IAuthorization.sol +27 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  372. package/contracts/distribution/BasicDistribution.sol +141 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  374. package/contracts/distribution/Distribution.sol +247 -0
  375. package/contracts/distribution/DistributionService.sol +448 -0
  376. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  377. package/contracts/distribution/IDistributionComponent.sol +45 -0
  378. package/contracts/distribution/IDistributionService.sol +115 -0
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +86 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +433 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BundleSet.sol +130 -0
  393. package/contracts/instance/IInstance.sol +140 -15
  394. package/contracts/instance/IInstanceService.sol +116 -0
  395. package/contracts/instance/Instance.sol +327 -44
  396. package/contracts/instance/InstanceAdmin.sol +383 -0
  397. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  398. package/contracts/instance/InstanceReader.sol +632 -0
  399. package/contracts/instance/InstanceService.sol +524 -0
  400. package/contracts/instance/InstanceServiceManager.sol +39 -0
  401. package/contracts/instance/InstanceStore.sol +298 -0
  402. package/contracts/instance/RiskSet.sol +118 -0
  403. package/contracts/instance/base/BalanceStore.sol +121 -0
  404. package/contracts/instance/base/Cloneable.sol +28 -0
  405. package/contracts/instance/base/ObjectCounter.sol +20 -0
  406. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  407. package/contracts/instance/base/ObjectSet.sol +77 -0
  408. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  409. package/contracts/instance/module/IBundle.sol +21 -0
  410. package/contracts/instance/module/IComponents.sol +62 -0
  411. package/contracts/instance/module/IDistribution.sol +54 -0
  412. package/contracts/instance/module/IPolicy.sol +105 -0
  413. package/contracts/instance/module/IRisk.sol +16 -0
  414. package/contracts/mock/Dip.sol +26 -0
  415. package/contracts/oracle/BasicOracle.sol +45 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  417. package/contracts/oracle/IOracle.sol +41 -0
  418. package/contracts/oracle/IOracleComponent.sol +33 -0
  419. package/contracts/oracle/IOracleService.sol +66 -0
  420. package/contracts/oracle/Oracle.sol +154 -0
  421. package/contracts/oracle/OracleService.sol +310 -0
  422. package/contracts/oracle/OracleServiceManager.sol +39 -0
  423. package/contracts/pool/BasicPool.sol +173 -0
  424. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  425. package/contracts/pool/BundleService.sol +406 -0
  426. package/contracts/pool/BundleServiceManager.sol +39 -0
  427. package/contracts/pool/IBundleService.sol +121 -0
  428. package/contracts/pool/IPoolComponent.sol +62 -0
  429. package/contracts/pool/IPoolService.sol +170 -0
  430. package/contracts/pool/Pool.sol +343 -0
  431. package/contracts/pool/PoolLib.sol +359 -0
  432. package/contracts/pool/PoolService.sol +614 -0
  433. package/contracts/pool/PoolServiceManager.sol +39 -0
  434. package/contracts/product/ApplicationService.sol +327 -0
  435. package/contracts/product/ApplicationServiceManager.sol +38 -0
  436. package/contracts/product/BasicProduct.sol +49 -0
  437. package/contracts/product/BasicProductAuthorization.sol +63 -0
  438. package/contracts/product/ClaimService.sol +641 -0
  439. package/contracts/product/ClaimServiceManager.sol +38 -0
  440. package/contracts/product/IApplicationService.sol +88 -0
  441. package/contracts/product/IClaimService.sol +135 -0
  442. package/contracts/product/IPolicyService.sol +102 -0
  443. package/contracts/product/IPricingService.sol +40 -0
  444. package/contracts/product/IProductComponent.sol +62 -0
  445. package/contracts/product/IRiskService.sol +37 -0
  446. package/contracts/product/PolicyService.sol +645 -0
  447. package/contracts/product/PolicyServiceLib.sol +139 -0
  448. package/contracts/product/PolicyServiceManager.sol +39 -0
  449. package/contracts/product/PricingService.sol +306 -0
  450. package/contracts/product/PricingServiceManager.sol +39 -0
  451. package/contracts/product/Product.sol +472 -0
  452. package/contracts/product/RiskService.sol +163 -0
  453. package/contracts/product/RiskServiceManager.sol +39 -0
  454. package/contracts/registry/ChainNft.sol +176 -100
  455. package/contracts/registry/IRegistry.sol +158 -51
  456. package/contracts/registry/IRegistryService.sol +62 -0
  457. package/contracts/registry/IRelease.sol +29 -0
  458. package/contracts/registry/ITransferInterceptor.sol +6 -0
  459. package/contracts/registry/Registry.sol +671 -111
  460. package/contracts/registry/RegistryAdmin.sol +188 -0
  461. package/contracts/registry/RegistryAuthorization.sol +284 -0
  462. package/contracts/registry/RegistryService.sol +241 -0
  463. package/contracts/registry/RegistryServiceManager.sol +53 -0
  464. package/contracts/registry/ReleaseAdmin.sol +195 -0
  465. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  466. package/contracts/registry/ReleaseRegistry.sol +520 -0
  467. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  468. package/contracts/registry/TokenRegistry.sol +314 -0
  469. package/contracts/shared/Component.sol +210 -0
  470. package/contracts/shared/ComponentService.sol +679 -0
  471. package/contracts/shared/ComponentServiceManager.sol +38 -0
  472. package/contracts/shared/ContractLib.sol +311 -0
  473. package/contracts/shared/IComponent.sol +58 -0
  474. package/contracts/shared/IComponentService.sol +111 -0
  475. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  476. package/contracts/shared/IKeyValueStore.sol +54 -0
  477. package/contracts/shared/ILifecycle.sol +31 -0
  478. package/contracts/shared/INftOwnable.sol +27 -0
  479. package/contracts/shared/IPolicyHolder.sol +35 -0
  480. package/contracts/shared/IRegisterable.sol +36 -0
  481. package/contracts/shared/IRegistryLinked.sol +11 -0
  482. package/contracts/shared/IService.sol +23 -0
  483. package/contracts/shared/InitializableERC165.sol +35 -0
  484. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  485. package/contracts/shared/KeyValueStore.sol +131 -0
  486. package/contracts/shared/Lifecycle.sol +88 -0
  487. package/contracts/shared/NftIdSet.sol +65 -0
  488. package/contracts/shared/NftOwnable.sol +129 -0
  489. package/contracts/shared/PolicyHolder.sol +63 -0
  490. package/contracts/shared/Registerable.sol +106 -0
  491. package/contracts/shared/RegistryLinked.sol +38 -0
  492. package/contracts/shared/Service.sol +67 -0
  493. package/contracts/shared/TokenHandler.sol +342 -0
  494. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  495. package/contracts/staking/IStaking.sol +195 -0
  496. package/contracts/staking/IStakingService.sol +170 -0
  497. package/contracts/staking/Staking.sol +605 -0
  498. package/contracts/staking/StakingLib.sol +281 -0
  499. package/contracts/staking/StakingLifecycle.sol +23 -0
  500. package/contracts/staking/StakingManager.sol +52 -0
  501. package/contracts/staking/StakingReader.sol +199 -0
  502. package/contracts/staking/StakingService.sol +468 -0
  503. package/contracts/staking/StakingServiceManager.sol +45 -0
  504. package/contracts/staking/StakingStore.sol +606 -0
  505. package/contracts/staking/TargetManagerLib.sol +211 -0
  506. package/contracts/type/AddressSet.sol +58 -0
  507. package/contracts/type/Amount.sol +150 -0
  508. package/contracts/type/Blocknumber.sol +142 -0
  509. package/contracts/type/ClaimId.sol +80 -0
  510. package/contracts/type/DistributorType.sol +55 -0
  511. package/contracts/type/Fee.sol +66 -0
  512. package/contracts/type/Key32.sol +50 -0
  513. package/contracts/type/Key32Set.sol +62 -0
  514. package/contracts/type/NftId.sol +85 -0
  515. package/contracts/type/NftIdSet.sol +62 -0
  516. package/contracts/type/ObjectType.sol +307 -0
  517. package/contracts/type/PayoutId.sol +82 -0
  518. package/contracts/type/Referral.sol +90 -0
  519. package/contracts/type/RequestId.sol +75 -0
  520. package/contracts/type/RiskId.sol +75 -0
  521. package/contracts/type/RoleId.sol +180 -0
  522. package/contracts/type/Seconds.sol +105 -0
  523. package/contracts/type/Selector.sol +107 -0
  524. package/contracts/type/StateId.sol +149 -0
  525. package/contracts/type/String.sol +65 -0
  526. package/contracts/type/Timestamp.sol +141 -0
  527. package/contracts/type/UFixed.sol +262 -0
  528. package/contracts/type/Version.sol +159 -0
  529. package/contracts/upgradeability/IVersionable.sol +56 -0
  530. package/contracts/upgradeability/ProxyManager.sol +246 -0
  531. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +20 -0
  532. package/contracts/upgradeability/Versionable.sol +62 -0
  533. package/package.json +26 -7
  534. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  535. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  536. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  537. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  538. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  540. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  542. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  543. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -195
  544. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  545. package/artifacts/contracts/components/Product.sol/Product.json +0 -213
  546. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  548. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  550. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  552. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  554. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  556. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  558. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  560. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  562. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  564. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  566. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  567. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  568. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  569. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  570. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  571. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  572. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  574. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  575. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  576. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  578. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  579. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  580. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  581. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  582. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  583. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  585. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  586. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  587. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  589. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  591. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  592. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  593. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  594. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  595. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  596. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  597. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  598. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  599. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  600. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  602. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  603. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  604. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  605. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  606. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  607. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  608. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  609. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  610. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  611. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  612. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  613. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  615. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -10
  617. package/contracts/components/Component.sol +0 -62
  618. package/contracts/components/IPool.sol +0 -9
  619. package/contracts/components/IProduct.sol +0 -11
  620. package/contracts/components/Pool.sol +0 -29
  621. package/contracts/components/Product.sol +0 -65
  622. package/contracts/experiment/inheritance/A.sol +0 -56
  623. package/contracts/experiment/inheritance/B.sol +0 -23
  624. package/contracts/experiment/inheritance/C.sol +0 -28
  625. package/contracts/experiment/inheritance/IA.sol +0 -18
  626. package/contracts/experiment/inheritance/IB.sol +0 -9
  627. package/contracts/experiment/inheritance/IC.sol +0 -11
  628. package/contracts/experiment/types/TypeA.sol +0 -42
  629. package/contracts/experiment/types/TypeB.sol +0 -24
  630. package/contracts/instance/access/Access.sol +0 -218
  631. package/contracts/instance/access/IAccess.sol +0 -83
  632. package/contracts/instance/component/ComponentModule.sol +0 -259
  633. package/contracts/instance/component/IComponent.sol +0 -94
  634. package/contracts/instance/policy/IPolicy.sol +0 -66
  635. package/contracts/instance/policy/PolicyModule.sol +0 -106
  636. package/contracts/instance/pool/IPoolModule.sol +0 -40
  637. package/contracts/instance/pool/PoolModule.sol +0 -83
  638. package/contracts/instance/product/IProductService.sol +0 -45
  639. package/contracts/instance/product/ProductService.sol +0 -105
  640. package/contracts/registry/IChainNft.sol +0 -18
  641. package/contracts/types/ChainId.sol +0 -24
  642. package/contracts/types/NftId.sol +0 -25
@@ -0,0 +1,345 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ ALL, RELEASE, 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 {IApplicationService} from "../product/IApplicationService.sol";
11
+ import {IBundleService} from "../pool/IBundleService.sol";
12
+ import {IClaimService} from "../product/IClaimService.sol";
13
+ import {IComponentService} from "../shared/IComponentService.sol";
14
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
15
+ import {IInstanceService} from "../instance/IInstanceService.sol";
16
+ import {IOracleService} from "../oracle/IOracleService.sol";
17
+ import {IPolicyService} from "../product/IPolicyService.sol";
18
+ import {IPoolService} from "../pool/IPoolService.sol";
19
+ import {IStakingService} from "../staking/IStakingService.sol";
20
+ import {IRegistryService} from "./IRegistryService.sol";
21
+ import {IRiskService} from "../product/IRiskService.sol";
22
+
23
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
24
+
25
+
26
+ contract ServiceAuthorizationV3
27
+ is ServiceAuthorization
28
+ {
29
+
30
+ constructor(string memory commitHash)
31
+ ServiceAuthorization(
32
+ "ReleaseAdmin",
33
+ RELEASE(),
34
+ 3,
35
+ commitHash)
36
+ {}
37
+
38
+ function _setupDomains()
39
+ internal
40
+ override
41
+ {
42
+ _authorizeServiceDomain(REGISTRY(), address(1));
43
+ _authorizeServiceDomain(STAKING(), address(2));
44
+ _authorizeServiceDomain(INSTANCE(), address(3));
45
+ _authorizeServiceDomain(ACCOUNTING(), address(4));
46
+ _authorizeServiceDomain(COMPONENT(), address(5));
47
+ _authorizeServiceDomain(DISTRIBUTION(), address(6));
48
+ _authorizeServiceDomain(PRICE(), address(7));
49
+ _authorizeServiceDomain(BUNDLE(), address(8));
50
+ _authorizeServiceDomain(POOL(), address(9));
51
+ _authorizeServiceDomain(ORACLE(), address(10));
52
+ _authorizeServiceDomain(RISK(), address(11));
53
+ _authorizeServiceDomain(POLICY(), address(12));
54
+ _authorizeServiceDomain(CLAIM(), address(13));
55
+ _authorizeServiceDomain(APPLICATION(), address(14));
56
+ }
57
+
58
+
59
+ function _setupDomainAuthorizations()
60
+ internal
61
+ override
62
+ {
63
+ _setupRegistryServiceAuthorization();
64
+ _setupStakingServiceAuthorization();
65
+ _setupInstanceServiceAuthorization();
66
+ _setupAccountingServiceAuthorization();
67
+ _setupComponentServiceAuthorization();
68
+ _setupClaimServiceAuthorization();
69
+ _setupRiskServiceAuthorization();
70
+ _setupDistributionServiceAuthorization();
71
+ _setupPoolServiceAuthorization();
72
+ _setupBundleServiceAuthorization();
73
+ _setupOracleServiceAuthorization();
74
+ _setupApplicationServiceAuthorization();
75
+ _setupPolicyServiceAuthorization();
76
+ }
77
+
78
+
79
+ /// @dev registry service authorization.
80
+ /// authorized functions MUST be implemented with a restricted modifier
81
+ function _setupRegistryServiceAuthorization()
82
+ internal
83
+ {
84
+ IAccess.FunctionInfo[] storage functions;
85
+
86
+ functions = _authorizeForService(REGISTRY(), APPLICATION());
87
+ _authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
88
+
89
+ functions = _authorizeForService(REGISTRY(), BUNDLE());
90
+ _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
91
+
92
+ functions = _authorizeForService(REGISTRY(), COMPONENT());
93
+ _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
94
+ _authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
95
+
96
+ functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
97
+ _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
98
+
99
+ functions = _authorizeForService(REGISTRY(), INSTANCE());
100
+ _authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
101
+
102
+ functions = _authorizeForService(REGISTRY(), STAKING());
103
+ _authorize(functions, IRegistryService.registerStake.selector, "registerStake");
104
+ }
105
+
106
+
107
+ /// @dev staking service authorization.
108
+ /// authorized functions MUST be implemented with a restricted modifier
109
+ function _setupStakingServiceAuthorization()
110
+ internal
111
+ {
112
+ IAccess.FunctionInfo[] storage functions;
113
+
114
+ functions = _authorizeForService(STAKING(), INSTANCE());
115
+ _authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
116
+ _authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
117
+ _authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
118
+ _authorize(functions, IStakingService.setInstanceMaxStakedAmount.selector, "setInstanceMaxStakedAmount");
119
+ _authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
120
+ _authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
121
+
122
+ functions = _authorizeForService(STAKING(), ALL());
123
+ _authorize(functions, IStakingService.create.selector, "create");
124
+ _authorize(functions, IStakingService.stake.selector, "stake");
125
+ _authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
126
+ _authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
127
+ _authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
128
+ _authorize(functions, IStakingService.unstake.selector, "unstake");
129
+ }
130
+
131
+
132
+ /// @dev Instance service function authorization.
133
+ function _setupInstanceServiceAuthorization()
134
+ internal
135
+ {
136
+ IAccess.FunctionInfo[] storage functions;
137
+ functions = _authorizeForService(INSTANCE(), ALL());
138
+ _authorize(functions, IInstanceService.createRole.selector, "createRole");
139
+ _authorize(functions, IInstanceService.setRoleActive.selector, "setRoleActive");
140
+ _authorize(functions, IInstanceService.grantRole.selector, "grantRole");
141
+ _authorize(functions, IInstanceService.revokeRole.selector, "revokeRole");
142
+
143
+ _authorize(functions, IInstanceService.createTarget.selector, "createTarget");
144
+ _authorize(functions, IInstanceService.authorizeFunctions.selector, "authorizeFunctions");
145
+ _authorize(functions, IInstanceService.unauthorizeFunctions.selector, "unauthorizeFunctions");
146
+ _authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
147
+ _authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
148
+
149
+ _authorize(functions, IInstanceService.createInstance.selector, "createInstance");
150
+ _authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
151
+ _authorize(functions, IInstanceService.upgradeMasterInstanceReader.selector, "upgradeMasterInstanceReader");
152
+
153
+ _authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
154
+ _authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
155
+ _authorize(functions, IInstanceService.setStakingMaxAmount.selector, "setStakingMaxAmount");
156
+ _authorize(functions, IInstanceService.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
157
+ _authorize(functions, IInstanceService.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
158
+ }
159
+
160
+ /// @dev Accounting service function authorization.
161
+ function _setupAccountingServiceAuthorization()
162
+ internal
163
+ {
164
+ IAccess.FunctionInfo[] storage functions;
165
+
166
+ functions = _authorizeForService(ACCOUNTING(), BUNDLE());
167
+ _authorize(functions, IAccountingService.increaseBundleBalance.selector, "increaseBundleBalance");
168
+ _authorize(functions, IAccountingService.decreaseBundleBalance.selector, "decreaseBundleBalance");
169
+
170
+ functions = _authorizeForService(ACCOUNTING(), COMPONENT());
171
+ _authorize(functions, IAccountingService.decreaseComponentFees.selector, "decreaseComponentFees");
172
+
173
+ functions = _authorizeForService(ACCOUNTING(), DISTRIBUTION());
174
+ _authorize(functions, IAccountingService.increaseDistributionBalance.selector, "increaseDistributionBalance");
175
+ _authorize(functions, IAccountingService.decreaseDistributionBalance.selector, "decreaseDistributionBalance");
176
+ _authorize(functions, IAccountingService.increaseDistributorBalance.selector, "increaseDistributorBalance");
177
+ _authorize(functions, IAccountingService.decreaseDistributorBalance.selector, "decreaseDistributorBalance");
178
+
179
+ functions = _authorizeForService(ACCOUNTING(), POLICY());
180
+ _authorize(functions, IAccountingService.increaseProductFees.selector, "increaseProductFees");
181
+
182
+ functions = _authorizeForService(ACCOUNTING(), POOL());
183
+ _authorize(functions, IAccountingService.increasePoolBalance.selector, "increasePoolBalance");
184
+ _authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
185
+ _authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
186
+ _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
187
+ _authorize(functions, IAccountingService.increaseProductFeesForPool.selector, "increaseProductFeesForPool");
188
+
189
+ }
190
+
191
+
192
+ /// @dev Component service function authorization.
193
+ function _setupComponentServiceAuthorization()
194
+ internal
195
+ {
196
+ IAccess.FunctionInfo[] storage functions;
197
+
198
+ functions = _authorizeForService(COMPONENT(), ALL());
199
+ _authorize(functions, IComponentService.registerComponent.selector, "registerComponent");
200
+ _authorize(functions, IComponentService.approveTokenHandler.selector, "approveTokenHandler");
201
+ _authorize(functions, IComponentService.setWallet.selector, "setWallet");
202
+ _authorize(functions, IComponentService.setLocked.selector, "setLocked");
203
+ _authorize(functions, IComponentService.withdrawFees.selector, "withdrawFees");
204
+ _authorize(functions, IComponentService.registerProduct.selector, "registerProduct");
205
+ _authorize(functions, IComponentService.setProductFees.selector, "setProductFees");
206
+ _authorize(functions, IComponentService.setDistributionFees.selector, "setDistributionFees");
207
+ _authorize(functions, IComponentService.setPoolFees.selector, "setPoolFees");
208
+
209
+ }
210
+
211
+ /// @dev Distribution service function authorization.
212
+ function _setupRiskServiceAuthorization()
213
+ internal
214
+ {
215
+ IAccess.FunctionInfo[] storage functions;
216
+ functions = _authorizeForService(RISK(), ALL());
217
+ _authorize(functions, IRiskService.createRisk.selector, "createRisk");
218
+ _authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
219
+ _authorize(functions, IRiskService.updateRiskState.selector, "updateRiskState");
220
+ }
221
+
222
+ /// @dev Distribution service function authorization.
223
+ function _setupClaimServiceAuthorization()
224
+ internal
225
+ {
226
+ IAccess.FunctionInfo[] storage functions;
227
+ functions = _authorizeForService(CLAIM(), ALL());
228
+ _authorize(functions, IClaimService.submit.selector, "submit");
229
+ _authorize(functions, IClaimService.confirm.selector, "confirm");
230
+ _authorize(functions, IClaimService.decline.selector, "decline");
231
+ _authorize(functions, IClaimService.revoke.selector, "revoke");
232
+ _authorize(functions, IClaimService.close.selector, "close");
233
+ _authorize(functions, IClaimService.createPayoutForBeneficiary.selector, "createPayoutForBeneficiary");
234
+ _authorize(functions, IClaimService.createPayout.selector, "createPayout");
235
+ _authorize(functions, IClaimService.processPayout.selector, "processPayout");
236
+ _authorize(functions, IClaimService.cancelPayout.selector, "cancelPayout");
237
+ }
238
+
239
+ /// @dev Distribution service function authorization.
240
+ function _setupDistributionServiceAuthorization()
241
+ internal
242
+ {
243
+ IAccess.FunctionInfo[] storage functions;
244
+ functions = _authorizeForService(DISTRIBUTION(), POLICY());
245
+ _authorize(functions, IDistributionService.processSale.selector, "processSale");
246
+ _authorize(functions, IDistributionService.processReferral.selector, "processReferral");
247
+
248
+ functions = _authorizeForService(DISTRIBUTION(), ALL());
249
+ _authorize(functions, IDistributionService.createDistributorType.selector, "createDistributorType");
250
+ _authorize(functions, IDistributionService.createDistributor.selector, "createDistributor");
251
+ _authorize(functions, IDistributionService.changeDistributorType.selector, "changeDistributorType");
252
+ _authorize(functions, IDistributionService.createReferral.selector, "createReferral");
253
+ _authorize(functions, IDistributionService.withdrawCommission.selector, "withdrawCommission");
254
+ }
255
+
256
+
257
+ /// @dev Pool service function authorization.
258
+ function _setupPoolServiceAuthorization()
259
+ internal
260
+ {
261
+ IAccess.FunctionInfo[] storage functions;
262
+
263
+ functions = _authorizeForService(POOL(), POLICY());
264
+ _authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
265
+ _authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
266
+ _authorize(functions, IPoolService.processSale.selector, "processSale");
267
+
268
+ functions = _authorizeForService(POOL(), CLAIM());
269
+ _authorize(functions, IPoolService.processPayout.selector, "processPayout");
270
+
271
+ functions = _authorizeForService(POOL(), ALL());
272
+ _authorize(functions, IPoolService.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
273
+ _authorize(functions, IPoolService.closeBundle.selector, "closeBundle");
274
+ _authorize(functions, IPoolService.processFundedClaim.selector, "processFundedClaim");
275
+ _authorize(functions, IPoolService.stake.selector, "stake");
276
+ _authorize(functions, IPoolService.unstake.selector, "unstake");
277
+ _authorize(functions, IPoolService.fundPoolWallet.selector, "fundPoolWallet");
278
+ _authorize(functions, IPoolService.defundPoolWallet.selector, "defundPoolWallet");
279
+ _authorize(functions, IPoolService.withdrawBundleFees.selector, "withdrawBundleFees");
280
+ }
281
+
282
+
283
+ /// @dev Instance service function authorization.
284
+ function _setupBundleServiceAuthorization()
285
+ internal
286
+ {
287
+ IAccess.FunctionInfo[] storage functions;
288
+
289
+ functions = _authorizeForService(BUNDLE(), POOL());
290
+ _authorize(functions, IBundleService.stake.selector, "stake");
291
+ _authorize(functions, IBundleService.unstake.selector, "unstake");
292
+ _authorize(functions, IBundleService.close.selector, "close");
293
+ _authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
294
+ _authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
295
+
296
+ functions = _authorizeForService(BUNDLE(), ALL());
297
+ _authorize(functions, IBundleService.create.selector, "create");
298
+ _authorize(functions, IBundleService.extend.selector, "extend");
299
+ _authorize(functions, IBundleService.lock.selector, "lock");
300
+ _authorize(functions, IBundleService.unlock.selector, "unlock");
301
+ _authorize(functions, IBundleService.setFee.selector, "setFee");
302
+ }
303
+
304
+ function _setupOracleServiceAuthorization()
305
+ internal
306
+ {
307
+ IAccess.FunctionInfo[] storage functions;
308
+
309
+ functions = _authorizeForService(ORACLE(), ALL());
310
+ _authorize(functions, IOracleService.request.selector, "request");
311
+ _authorize(functions, IOracleService.respond.selector, "respond");
312
+ _authorize(functions, IOracleService.resend.selector, "resend");
313
+ _authorize(functions, IOracleService.cancel.selector, "cancel");
314
+ }
315
+
316
+ function _setupApplicationServiceAuthorization()
317
+ internal
318
+ {
319
+ IAccess.FunctionInfo[] storage functions;
320
+
321
+ functions = _authorizeForService(APPLICATION(), ALL());
322
+ _authorize(functions, IApplicationService.create.selector, "create");
323
+ _authorize(functions, IApplicationService.renew.selector, "renew");
324
+ _authorize(functions, IApplicationService.adjust.selector, "adjust");
325
+ _authorize(functions, IApplicationService.revoke.selector, "revoke");
326
+ }
327
+
328
+ function _setupPolicyServiceAuthorization()
329
+ internal
330
+ {
331
+ IAccess.FunctionInfo[] storage functions;
332
+
333
+ functions = _authorizeForService(POLICY(), ALL());
334
+ _authorize(functions, IPolicyService.decline.selector, "decline");
335
+ _authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
336
+ _authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
337
+ _authorize(functions, IPolicyService.activate.selector, "activate");
338
+ _authorize(functions, IPolicyService.adjustActivation.selector, "adjustActivation");
339
+ _authorize(functions, IPolicyService.expire.selector, "expire");
340
+ _authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
341
+ _authorize(functions, IPolicyService.close.selector, "close");
342
+
343
+ }
344
+ }
345
+
@@ -0,0 +1,314 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
+
7
+ import {IRegistry} from "./IRegistry.sol";
8
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
+
10
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
11
+ import {RegistryAdmin} from "./RegistryAdmin.sol";
12
+ import {VersionPart} from "../type/Version.sol";
13
+
14
+ /// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
15
+ /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
16
+ contract TokenRegistry is
17
+ AccessManaged,
18
+ IRegistryLinked
19
+ {
20
+ event LogTokenRegistryTokenRegistered(uint256 chainId, address token, uint256 decimals, string symbol);
21
+ event LogTokenRegistryTokenGlobalStateSet(uint256 chainId, address token, bool active);
22
+ event LogTokenRegistryTokenStateSet(uint256 chainId, address token, VersionPart majorVersion, bool active);
23
+
24
+ error ErrorTokenRegistryChainIdZero();
25
+ error ErrorTokenRegistryTokenAddressZero();
26
+
27
+ error ErrorTokenRegistryNotRemoteToken(uint256 chainId, address token);
28
+ error ErrorTokenRegistryTokenAlreadyRegistered(uint256 chainId, address token);
29
+ error ErrorTokenRegistryTokenNotContract(uint256 chainId, address token);
30
+ error ErrorTokenRegistryTokenNotErc20(uint256 chainId, address token);
31
+
32
+ error ErrorTokenRegistryTokenNotRegistered(uint256 chainId, address token);
33
+ error ErrorTokenRegistryMajorVersionInvalid(VersionPart majorVersion);
34
+
35
+ struct TokenInfo {
36
+ // slot 0
37
+ uint256 chainId;
38
+ // slot 1
39
+ string symbol;
40
+ // slot 2
41
+ address token;
42
+ uint8 decimals;
43
+ bool active;
44
+ }
45
+
46
+ mapping(uint256 chainId => mapping(address token => TokenInfo info)) internal _tokenInfo;
47
+ mapping(uint256 chainId => mapping(address token => mapping(VersionPart majorVersion => bool isActive))) internal _active;
48
+ TokenInfo [] internal _token;
49
+
50
+ IRegistry internal _registry;
51
+ ReleaseRegistry internal _releaseRegistry;
52
+ IERC20Metadata internal _dipToken;
53
+
54
+ /// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
55
+ modifier onlyRegisteredToken(uint256 chainId, address token) {
56
+ if (!isRegistered(chainId, token)) {
57
+ revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
58
+ }
59
+ _;
60
+ }
61
+
62
+ constructor(IRegistry registry, IERC20Metadata dipToken)
63
+ AccessManaged(msg.sender)
64
+ {
65
+ // set authority
66
+ address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
67
+ setAuthority(authority);
68
+
69
+ _registry = registry;
70
+ _dipToken = _verifyOnchainToken(address(dipToken));
71
+
72
+ // register dip token
73
+ uint256 chainId = block.chainid;
74
+ _registerToken(
75
+ chainId,
76
+ address(_dipToken),
77
+ _dipToken.decimals(),
78
+ _dipToken.symbol());
79
+ }
80
+
81
+
82
+ /// @dev register an onchain token.
83
+ /// this function verifies that the provided token address is a contract that implements
84
+ /// the non optional erc20 view functions.
85
+ function registerToken(address tokenAddress)
86
+ external
87
+ restricted()
88
+ {
89
+ IERC20Metadata token = _verifyOnchainToken(tokenAddress);
90
+ _registerToken(block.chainid, tokenAddress, token.decimals(), token.symbol());
91
+ }
92
+
93
+
94
+ /// @dev register the remote token with the provided attributes.
95
+ /// this function may not be used for tokens when chainId == block.chainid.
96
+ function registerRemoteToken(
97
+ uint256 chainId,
98
+ address token,
99
+ uint8 decimals,
100
+ string memory symbol
101
+ )
102
+ external
103
+ restricted()
104
+ {
105
+ if (chainId == block.chainid) {
106
+ revert ErrorTokenRegistryNotRemoteToken(chainId, token);
107
+ }
108
+
109
+ _registerToken(chainId, token, decimals, symbol);
110
+ }
111
+
112
+
113
+ /// @dev set active flag on token itself.
114
+ /// when setting a token to active=false isActive will return false
115
+ /// regardless of release specific active value.
116
+ function setActive(
117
+ uint256 chainId,
118
+ address token,
119
+ bool active
120
+ )
121
+ external
122
+ restricted()
123
+ onlyRegisteredToken(chainId, token)
124
+ {
125
+ _tokenInfo[chainId][token].active = active;
126
+ emit LogTokenRegistryTokenGlobalStateSet(chainId, token, active);
127
+ }
128
+
129
+
130
+ /// @dev sets active state for specified token and major version.
131
+ /// internally calls setActiveWithVersionCheck() with enforcing version check.
132
+ /// token state is informative, registry have no clue about used tokens
133
+ /// component owner is responsible for token selection and operations
134
+ /// service MUST deny registration of component with inactive token.
135
+ function setActiveForVersion(
136
+ uint256 chainId,
137
+ address token,
138
+ VersionPart majorVersion,
139
+ bool active
140
+ )
141
+ external
142
+ restricted()
143
+ onlyRegisteredToken(chainId, token)
144
+ {
145
+ _setActiveWithVersionCheck(chainId, token, majorVersion, active, true);
146
+ }
147
+
148
+
149
+ /// @dev as setActiveForVersion() with the option to skip the version check.
150
+ /// enforcing the version check checks if the provided major version with the release manager.
151
+ /// the function reverts if the provided majorVersion is unknown to the release manager.
152
+ function setActiveWithVersionCheck(
153
+ uint256 chainId,
154
+ address token,
155
+ VersionPart majorVersion,
156
+ bool active,
157
+ bool enforceVersionCheck
158
+ )
159
+ external
160
+ restricted()
161
+ onlyRegisteredToken(chainId, token)
162
+ {
163
+ _setActiveWithVersionCheck(chainId, token, majorVersion, active, enforceVersionCheck);
164
+ }
165
+
166
+
167
+ function _setActiveWithVersionCheck(
168
+ uint256 chainId,
169
+ address token,
170
+ VersionPart majorVersion,
171
+ bool active,
172
+ bool enforceVersionCheck
173
+ )
174
+ internal
175
+ {
176
+ // verify valid major version
177
+ if(enforceVersionCheck) {
178
+ uint256 version = majorVersion.toInt();
179
+ if (!getRegistry().isActiveRelease(majorVersion)) {
180
+ revert ErrorTokenRegistryMajorVersionInvalid(majorVersion);
181
+ }
182
+ }
183
+
184
+ _active[chainId][token][majorVersion] = active;
185
+
186
+ emit LogTokenRegistryTokenStateSet(chainId, token, majorVersion, active);
187
+ }
188
+
189
+ /// @dev returns the dip token for this chain
190
+ function getDipToken() external view returns (IERC20Metadata dipToken) {
191
+ return _dipToken;
192
+ }
193
+
194
+ /// @dev returns the number of registered tokens
195
+ function tokens() external view returns (uint256) {
196
+ return _token.length;
197
+ }
198
+
199
+ /// @dev returns the token info for the specified index position [0 .. tokens() - 1].
200
+ function getTokenInfo(uint256 idx) external view returns (TokenInfo memory tokenInfo) {
201
+ return _token[idx];
202
+ }
203
+
204
+ /// @dev returns the token info for the specified token coordinates.
205
+ function getTokenInfo(uint256 chainId, address token) external view returns (TokenInfo memory tokenInfo) {
206
+ return _tokenInfo[chainId][token];
207
+ }
208
+
209
+ /// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
210
+ function isRegistered(uint256 chainId, address token) public view returns (bool) {
211
+ return _tokenInfo[chainId][token].chainId > 0;
212
+ }
213
+
214
+ /// @dev returns true iff both the token is active for the specfied release and the global token state is active
215
+ function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool) {
216
+ if(!_tokenInfo[chainId][token].active) {
217
+ return false;
218
+ }
219
+
220
+ return _active[chainId][token][release];
221
+ }
222
+
223
+ function getDipTokenAddress() external view returns (address) {
224
+ return address(_dipToken);
225
+ }
226
+
227
+ //--- IRegistryLinked --------------------------------------------------//
228
+
229
+ /// @dev returns the dip token for this chain
230
+ function getRegistry() public view returns (IRegistry) {
231
+ return _registry;
232
+ }
233
+
234
+ //--- internal functions ------------------------------------------------//
235
+
236
+
237
+ /// @dev checks if provided token address refers to a smart contract that implements
238
+ /// erc20 functionality (via its non-optional functions)
239
+ function _verifyOnchainToken(address tokenAddress)
240
+ internal
241
+ virtual
242
+ view
243
+ returns (IERC20Metadata token)
244
+ {
245
+ token = IERC20Metadata(tokenAddress);
246
+ uint256 chainId = block.chainid;
247
+
248
+ // MUST be contract
249
+ if(tokenAddress.code.length == 0) {
250
+ revert ErrorTokenRegistryTokenNotContract(chainId, tokenAddress);
251
+ }
252
+
253
+ // MUST implement required erc20 view functions
254
+ if(!_implementsErc20Functions(token)) {
255
+ revert ErrorTokenRegistryTokenNotErc20(chainId, tokenAddress);
256
+ }
257
+ }
258
+
259
+
260
+ /// @dev checks availability of non-optional view functions
261
+ /// https://eips.ethereum.org/EIPS/eip-20#methods
262
+ function _implementsErc20Functions(IERC20Metadata token) internal view returns (bool implementsErc20Functions) {
263
+ try token.totalSupply() returns (uint256) {
264
+ // so far so goood
265
+ } catch {
266
+ return false;
267
+ }
268
+
269
+ try token.balanceOf(address(1)) returns (uint256) {
270
+ // so far so goood
271
+ } catch {
272
+ return false;
273
+ }
274
+
275
+ try token.allowance(address(1), address(2)) returns (uint256) {
276
+ // so far so goood
277
+ } catch {
278
+ return false;
279
+ }
280
+
281
+ return true;
282
+ }
283
+
284
+ /// @dev some sanity checks to prevent unintended registration:
285
+ /// - token not yet registered
286
+ /// - chainId not zero
287
+ /// - token address not zero
288
+ function _registerToken(uint256 chainId, address token, uint8 decimals, string memory symbol) internal {
289
+
290
+ if (isRegistered(chainId, token)) {
291
+ revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
292
+ }
293
+
294
+ if(chainId == 0) {
295
+ revert ErrorTokenRegistryChainIdZero();
296
+ }
297
+
298
+ if(token == address(0)) {
299
+ revert ErrorTokenRegistryTokenAddressZero();
300
+ }
301
+
302
+ TokenInfo memory tokenInfo = TokenInfo({
303
+ chainId: chainId,
304
+ token: token,
305
+ decimals: decimals,
306
+ symbol: symbol,
307
+ active: true});
308
+
309
+ _tokenInfo[chainId][token] = tokenInfo;
310
+ _token.push(tokenInfo);
311
+
312
+ emit LogTokenRegistryTokenRegistered(chainId, token, decimals, symbol);
313
+ }
314
+ }