@etherisc/gif-next 0.0.2-72dc555-736 → 0.0.2-72fe295-827

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 (751) hide show
  1. package/README.md +146 -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/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -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 +542 -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/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +571 -523
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -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 +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1560 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1051 -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 +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 +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1523 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -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 +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +528 -706
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +440 -161
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +409 -3017
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1637 -562
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +495 -361
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +356 -100
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3738 -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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  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 +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +850 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +736 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +245 -378
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +304 -263
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +178 -185
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +848 -264
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +325 -229
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +1192 -298
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +312 -336
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +341 -119
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +165 -220
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +353 -167
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  280. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  356. package/contracts/accounting/AccountingService.sol +262 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +45 -0
  359. package/contracts/authorization/AccessAdmin.sol +689 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  361. package/contracts/authorization/Authorization.sol +337 -0
  362. package/contracts/authorization/IAccess.sol +49 -0
  363. package/contracts/authorization/IAccessAdmin.sol +143 -0
  364. package/contracts/authorization/IAuthorization.sol +74 -0
  365. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  366. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  367. package/contracts/distribution/BasicDistribution.sol +141 -0
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  369. package/contracts/distribution/Distribution.sol +289 -0
  370. package/contracts/distribution/DistributionService.sol +385 -0
  371. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  372. package/contracts/distribution/IDistributionComponent.sol +52 -0
  373. package/contracts/distribution/IDistributionService.sol +105 -0
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +90 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +437 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BundleSet.sol +130 -0
  388. package/contracts/instance/IInstance.sol +56 -27
  389. package/contracts/instance/IInstanceService.sol +59 -17
  390. package/contracts/instance/Instance.sol +172 -368
  391. package/contracts/instance/InstanceAdmin.sol +437 -0
  392. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  393. package/contracts/instance/InstanceReader.sol +422 -78
  394. package/contracts/instance/InstanceService.sol +351 -130
  395. package/contracts/instance/InstanceServiceManager.sol +14 -32
  396. package/contracts/instance/InstanceStore.sol +298 -0
  397. package/contracts/instance/RiskSet.sol +118 -0
  398. package/contracts/instance/base/BalanceStore.sol +123 -0
  399. package/contracts/instance/base/Cloneable.sol +28 -0
  400. package/contracts/instance/base/ObjectCounter.sol +20 -0
  401. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  402. package/contracts/instance/base/ObjectSet.sol +77 -0
  403. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  404. package/contracts/instance/module/IBundle.sol +8 -8
  405. package/contracts/instance/module/IComponents.sol +51 -0
  406. package/contracts/instance/module/IDistribution.sol +11 -6
  407. package/contracts/instance/module/IPolicy.sol +59 -19
  408. package/contracts/instance/module/IRisk.sol +4 -1
  409. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  410. package/contracts/oracle/BasicOracle.sol +47 -0
  411. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  412. package/contracts/oracle/IOracle.sol +36 -0
  413. package/contracts/oracle/IOracleComponent.sol +33 -0
  414. package/contracts/oracle/IOracleService.sol +66 -0
  415. package/contracts/oracle/Oracle.sol +156 -0
  416. package/contracts/oracle/OracleService.sol +310 -0
  417. package/contracts/oracle/OracleServiceManager.sol +39 -0
  418. package/contracts/pool/BasicPool.sol +175 -0
  419. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  420. package/contracts/pool/BundleService.sol +395 -0
  421. package/contracts/pool/BundleServiceManager.sol +39 -0
  422. package/contracts/pool/IBundleService.sol +115 -0
  423. package/contracts/pool/IPoolComponent.sol +62 -0
  424. package/contracts/pool/IPoolService.sol +165 -0
  425. package/contracts/pool/Pool.sol +345 -0
  426. package/contracts/pool/PoolLib.sol +216 -0
  427. package/contracts/pool/PoolService.sol +757 -0
  428. package/contracts/pool/PoolServiceManager.sol +39 -0
  429. package/contracts/product/ApplicationService.sol +269 -0
  430. package/contracts/product/ApplicationServiceManager.sol +38 -0
  431. package/contracts/product/BasicProduct.sol +51 -0
  432. package/contracts/product/BasicProductAuthorization.sol +56 -0
  433. package/contracts/product/ClaimService.sol +632 -0
  434. package/contracts/product/ClaimServiceManager.sol +38 -0
  435. package/contracts/product/IApplicationService.sol +67 -0
  436. package/contracts/product/IClaimService.sol +135 -0
  437. package/contracts/product/IPolicyService.sol +95 -0
  438. package/contracts/product/IPricingService.sol +39 -0
  439. package/contracts/product/IProductComponent.sol +62 -0
  440. package/contracts/product/IRiskService.sol +30 -0
  441. package/contracts/product/PolicyService.sol +682 -0
  442. package/contracts/product/PolicyServiceLib.sol +65 -0
  443. package/contracts/product/PolicyServiceManager.sol +39 -0
  444. package/contracts/product/PricingService.sol +304 -0
  445. package/contracts/product/PricingServiceManager.sol +39 -0
  446. package/contracts/product/Product.sol +469 -0
  447. package/contracts/product/RiskService.sol +144 -0
  448. package/contracts/product/RiskServiceManager.sol +39 -0
  449. package/contracts/registry/ChainNft.sol +82 -35
  450. package/contracts/registry/IRegistry.sol +124 -37
  451. package/contracts/registry/IRegistryService.sol +40 -28
  452. package/contracts/registry/IRelease.sol +26 -0
  453. package/contracts/registry/ITransferInterceptor.sol +1 -1
  454. package/contracts/registry/Registry.sol +557 -271
  455. package/contracts/registry/RegistryAdmin.sol +354 -0
  456. package/contracts/registry/RegistryService.sol +116 -233
  457. package/contracts/registry/RegistryServiceManager.sol +26 -53
  458. package/contracts/registry/ReleaseAdmin.sol +245 -0
  459. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  460. package/contracts/registry/ReleaseRegistry.sol +511 -0
  461. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  462. package/contracts/registry/TokenRegistry.sol +261 -59
  463. package/contracts/shared/Component.sol +227 -0
  464. package/contracts/shared/ComponentService.sol +692 -0
  465. package/contracts/shared/ComponentServiceManager.sol +38 -0
  466. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  467. package/contracts/shared/ContractLib.sol +253 -0
  468. package/contracts/shared/IComponent.sol +61 -0
  469. package/contracts/shared/IComponentService.sol +112 -0
  470. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  471. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  472. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  473. package/contracts/shared/INftOwnable.sol +15 -12
  474. package/contracts/shared/IPolicyHolder.sol +35 -0
  475. package/contracts/shared/IRegisterable.sol +25 -5
  476. package/contracts/shared/IRegistryLinked.sol +11 -0
  477. package/contracts/shared/IService.sol +13 -5
  478. package/contracts/shared/InitializableERC165.sol +27 -0
  479. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  480. package/contracts/shared/KeyValueStore.sol +131 -0
  481. package/contracts/shared/Lifecycle.sol +88 -0
  482. package/contracts/shared/NftIdSet.sol +65 -0
  483. package/contracts/shared/NftOwnable.sol +75 -82
  484. package/contracts/shared/PolicyHolder.sol +62 -0
  485. package/contracts/shared/Registerable.sol +57 -38
  486. package/contracts/shared/RegistryLinked.sol +38 -0
  487. package/contracts/shared/Service.sol +43 -33
  488. package/contracts/shared/TokenHandler.sol +326 -12
  489. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  490. package/contracts/staking/IStaking.sol +165 -0
  491. package/contracts/staking/IStakingService.sol +165 -0
  492. package/contracts/staking/StakeManagerLib.sol +224 -0
  493. package/contracts/staking/Staking.sol +526 -0
  494. package/contracts/staking/StakingLifecycle.sol +23 -0
  495. package/contracts/staking/StakingManager.sol +52 -0
  496. package/contracts/staking/StakingReader.sol +190 -0
  497. package/contracts/staking/StakingService.sol +430 -0
  498. package/contracts/staking/StakingServiceManager.sol +45 -0
  499. package/contracts/staking/StakingStore.sol +605 -0
  500. package/contracts/staking/TargetManagerLib.sol +211 -0
  501. package/contracts/{types → type}/AddressSet.sol +1 -1
  502. package/contracts/type/Amount.sol +150 -0
  503. package/contracts/{types → type}/Blocknumber.sol +27 -3
  504. package/contracts/type/ClaimId.sol +80 -0
  505. package/contracts/{types → type}/DistributorType.sol +2 -2
  506. package/contracts/{types → type}/Fee.sol +33 -23
  507. package/contracts/{types → type}/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/{types → type}/NftId.sol +28 -15
  510. package/contracts/type/NftIdSet.sol +62 -0
  511. package/contracts/type/ObjectType.sol +303 -0
  512. package/contracts/type/PayoutId.sol +82 -0
  513. package/contracts/{types → type}/Referral.sol +6 -1
  514. package/contracts/type/RequestId.sol +75 -0
  515. package/contracts/type/RiskId.sol +75 -0
  516. package/contracts/type/RoleId.sol +182 -0
  517. package/contracts/type/Seconds.sol +101 -0
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/{types → type}/StateId.sol +48 -4
  520. package/contracts/type/String.sol +53 -0
  521. package/contracts/{types → type}/Timestamp.sol +33 -19
  522. package/contracts/{types → type}/UFixed.sol +41 -121
  523. package/contracts/{types → type}/Version.sol +20 -7
  524. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  525. package/contracts/upgradeability/ProxyManager.sol +232 -0
  526. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  527. package/contracts/upgradeability/Versionable.sol +59 -0
  528. package/package.json +12 -8
  529. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  531. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  532. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  533. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  535. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  539. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  541. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  542. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  543. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  544. package/artifacts/contracts/components/Product.sol/Product.json +0 -719
  545. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  549. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  551. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  553. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  555. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  557. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  559. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  561. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  563. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  565. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  568. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  570. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  572. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  574. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  576. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  578. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  580. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  581. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  582. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  584. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  585. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  586. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  587. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  588. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  590. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  591. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  592. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  593. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  595. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  597. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  599. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  601. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  602. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  604. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  605. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  607. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  609. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -839
  615. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  617. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1058
  619. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -448
  621. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  622. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  623. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  624. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  625. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  626. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  627. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  628. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  629. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  630. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  631. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  632. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  633. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  634. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  635. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  636. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  637. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  638. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  639. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  640. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  641. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  643. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  645. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  647. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  649. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  650. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  651. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  652. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  653. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  655. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  657. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  659. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  661. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  663. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  665. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  666. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  667. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  669. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  671. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  673. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  675. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  677. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  679. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  681. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  683. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  685. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  687. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  689. package/contracts/components/BaseComponent.sol +0 -91
  690. package/contracts/components/Distribution.sol +0 -159
  691. package/contracts/components/IBaseComponent.sol +0 -25
  692. package/contracts/components/IDistributionComponent.sol +0 -44
  693. package/contracts/components/IPoolComponent.sol +0 -62
  694. package/contracts/components/IProductComponent.sol +0 -35
  695. package/contracts/components/Pool.sol +0 -242
  696. package/contracts/components/Product.sol +0 -285
  697. package/contracts/experiment/cloning/Cloner.sol +0 -47
  698. package/contracts/experiment/errors/Require.sol +0 -38
  699. package/contracts/experiment/errors/Revert.sol +0 -44
  700. package/contracts/experiment/inheritance/A.sol +0 -53
  701. package/contracts/experiment/inheritance/B.sol +0 -28
  702. package/contracts/experiment/inheritance/C.sol +0 -34
  703. package/contracts/experiment/inheritance/IA.sol +0 -13
  704. package/contracts/experiment/inheritance/IB.sol +0 -10
  705. package/contracts/experiment/inheritance/IC.sol +0 -12
  706. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  707. package/contracts/experiment/statemachine/ISM.sol +0 -25
  708. package/contracts/experiment/statemachine/SM.sol +0 -57
  709. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  710. package/contracts/experiment/types/TypeA.sol +0 -47
  711. package/contracts/experiment/types/TypeB.sol +0 -29
  712. package/contracts/instance/AccessManagedSimple.sol +0 -115
  713. package/contracts/instance/AccessManagerSimple.sol +0 -692
  714. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  715. package/contracts/instance/InstanceAccessManager.sol +0 -288
  716. package/contracts/instance/base/ComponentServiceBase.sol +0 -124
  717. package/contracts/instance/base/IInstanceBase.sol +0 -23
  718. package/contracts/instance/base/KeyValueStore.sol +0 -172
  719. package/contracts/instance/base/Lifecycle.sol +0 -100
  720. package/contracts/instance/module/IAccess.sol +0 -38
  721. package/contracts/instance/module/ISetup.sol +0 -44
  722. package/contracts/instance/module/ITreasury.sol +0 -23
  723. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  724. package/contracts/instance/service/DistributionService.sol +0 -88
  725. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  726. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  727. package/contracts/instance/service/IDistributionService.sol +0 -12
  728. package/contracts/instance/service/IPoolService.sol +0 -37
  729. package/contracts/instance/service/IProductService.sol +0 -107
  730. package/contracts/instance/service/PoolService.sol +0 -194
  731. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  732. package/contracts/instance/service/ProductService.sol +0 -548
  733. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  734. package/contracts/shared/ContractDeployerLib.sol +0 -72
  735. package/contracts/shared/ERC165.sol +0 -25
  736. package/contracts/shared/ProxyManager.sol +0 -94
  737. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  738. package/contracts/shared/Versionable.sol +0 -147
  739. package/contracts/test/TestFee.sol +0 -25
  740. package/contracts/test/TestRegisterable.sol +0 -18
  741. package/contracts/test/TestRoleId.sol +0 -14
  742. package/contracts/test/TestService.sol +0 -24
  743. package/contracts/test/TestToken.sol +0 -26
  744. package/contracts/test/TestVersion.sol +0 -44
  745. package/contracts/test/TestVersionable.sol +0 -17
  746. package/contracts/types/ChainId.sol +0 -38
  747. package/contracts/types/NftIdSet.sol +0 -60
  748. package/contracts/types/NumberId.sol +0 -52
  749. package/contracts/types/ObjectType.sol +0 -152
  750. package/contracts/types/RiskId.sol +0 -43
  751. package/contracts/types/RoleId.sol +0 -89
@@ -0,0 +1,247 @@
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(), POOL());
147
+ _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
148
+
149
+ functions = _authorizeForService(ACCOUNTING(), COMPONENT());
150
+ _authorize(functions, IAccountingService.decreaseComponentFees.selector, "decreaseComponentFees");
151
+
152
+ functions = _authorizeForService(ACCOUNTING(), DISTRIBUTION());
153
+ _authorize(functions, IAccountingService.increaseDistributionBalance.selector, "increaseDistributionBalance");
154
+ _authorize(functions, IAccountingService.decreaseDistributionBalance.selector, "decreaseDistributionBalance");
155
+ _authorize(functions, IAccountingService.increaseDistributorBalance.selector, "increaseDistributorBalance");
156
+ _authorize(functions, IAccountingService.decreaseDistributorBalance.selector, "decreaseDistributorBalance");
157
+
158
+ functions = _authorizeForService(ACCOUNTING(), POLICY());
159
+ _authorize(functions, IAccountingService.increaseProductFees.selector, "increaseProductFees");
160
+
161
+ functions = _authorizeForService(ACCOUNTING(), POOL());
162
+ _authorize(functions, IAccountingService.increasePoolBalance.selector, "increasePoolBalance");
163
+ _authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
164
+ _authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
165
+ _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
166
+
167
+ }
168
+
169
+
170
+ /// @dev Component service function authorization.
171
+ function _setupComponentServiceAuthorization()
172
+ internal
173
+ {
174
+ }
175
+
176
+ /// @dev Distribution service function authorization.
177
+ function _setupRiskServiceAuthorization()
178
+ internal
179
+ {
180
+ IAccess.FunctionInfo[] storage functions;
181
+ functions = _authorizeForService(RISK(), ALL());
182
+ _authorize(functions, IRiskService.createRisk.selector, "createRisk");
183
+ _authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
184
+ _authorize(functions, IRiskService.updateRiskState.selector, "updateRiskState");
185
+ }
186
+
187
+ /// @dev Distribution service function authorization.
188
+ function _setupClaimServiceAuthorization()
189
+ internal
190
+ {
191
+ IAccess.FunctionInfo[] storage functions;
192
+ functions = _authorizeForService(CLAIM(), ALL());
193
+ _authorize(functions, IClaimService.submit.selector, "submit");
194
+ }
195
+
196
+ /// @dev Distribution service function authorization.
197
+ function _setupDistributionServiceAuthorization()
198
+ internal
199
+ {
200
+ IAccess.FunctionInfo[] storage functions;
201
+ functions = _authorizeForService(DISTRIBUTION(), POLICY());
202
+ _authorize(functions, IDistributionService.processSale.selector, "processSale");
203
+ _authorize(functions, IDistributionService.processReferral.selector, "processReferral");
204
+ }
205
+
206
+
207
+ /// @dev Pool service function authorization.
208
+ function _setupPoolServiceAuthorization()
209
+ internal
210
+ {
211
+ IAccess.FunctionInfo[] storage functions;
212
+
213
+ functions = _authorizeForService(POOL(), POLICY());
214
+ _authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
215
+ _authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
216
+ _authorize(functions, IPoolService.processSale.selector, "processSale");
217
+
218
+ functions = _authorizeForService(POOL(), CLAIM());
219
+ _authorize(functions, IPoolService.processPayout.selector, "processPayout");
220
+
221
+ functions = _authorizeForService(POOL(), ALL());
222
+ _authorize(functions, IPoolService.withdrawBundleFees.selector, "withdrawBundleFees");
223
+ }
224
+
225
+
226
+ /// @dev Instance service function authorization.
227
+ function _setupBundleServiceAuthorization()
228
+ internal
229
+ {
230
+ IAccess.FunctionInfo[] storage functions;
231
+
232
+ functions = _authorizeForService(BUNDLE(), POOL());
233
+ _authorize(functions, IBundleService.stake.selector, "stake");
234
+ _authorize(functions, IBundleService.unstake.selector, "unstake");
235
+ _authorize(functions, IBundleService.close.selector, "close");
236
+ _authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
237
+ _authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
238
+
239
+ functions = _authorizeForService(BUNDLE(), ALL());
240
+ _authorize(functions, IBundleService.create.selector, "create");
241
+ _authorize(functions, IBundleService.extend.selector, "extend");
242
+ _authorize(functions, IBundleService.lock.selector, "lock");
243
+ _authorize(functions, IBundleService.unlock.selector, "unlock");
244
+ _authorize(functions, IBundleService.setFee.selector, "setFee");
245
+ }
246
+ }
247
+
@@ -1,111 +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 {Version, VersionPart, VersionLib, VersionPartLib} from "../types/Version.sol";
10
- 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";
11
15
 
12
- /// @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.
13
18
  contract TokenRegistry is
14
- NftOwnable
19
+ AccessManaged,
20
+ IRegistryLinked
15
21
  {
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);
16
25
 
17
- string public constant REGISTRY_SERVICE_NAME = "RegistryService";
26
+ error ErrorTokenRegistryChainIdZero();
27
+ error ErrorTokenRegistryTokenAddressZero();
18
28
 
19
- event LogRegistered(address token, string symbol, uint256 decimals);
20
- event LogTokenStateSet(address token, VersionPart majorVersion, bool 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);
21
33
 
22
- error NotContract(address account);
23
- error NotToken(address account);
24
- error TokenDecimalsZero();
25
- error TokenMajorVersionInvalid(VersionPart majorVersion);
34
+ error ErrorTokenRegistryTokenNotRegistered(uint256 chainId, address token);
35
+ error ErrorTokenRegistryMajorVersionInvalid(VersionPart majorVersion);
26
36
 
27
- address [] internal _token;
28
- mapping(address token => bool registered) internal _registered;
29
- mapping(address token => mapping(VersionPart majorVersion => bool isActive)) internal _active;
37
+ struct TokenInfo {
38
+ uint256 chainId;
39
+ address token;
40
+ uint8 decimals;
41
+ string symbol;
42
+ bool active;
43
+ }
30
44
 
31
- constructor()
32
- NftOwnable()
33
- { }
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;
34
48
 
49
+ IRegistry internal _registry;
50
+ ReleaseRegistry internal _releaseRegistry;
51
+ IERC20Metadata internal _dipToken;
35
52
 
36
- /// @dev link ownership of token registry to nft owner of registry service
37
- function linkToNftOwnable(address registryAddress)
38
- external
39
- onlyOwner
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)
40
63
  {
41
- IRegistry registry = IRegistry(registryAddress);
42
- address registryServiceAddress = registry.getServiceAddress(REGISTRY_SERVICE_NAME, registry.getMajorVersion());
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());
78
+ }
43
79
 
44
- _linkToNftOwnable(registryAddress, registryServiceAddress);
80
+
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)
85
+ external
86
+ restricted()
87
+ {
88
+ IERC20Metadata token = _verifyOnchainToken(tokenAddress);
89
+ _registerToken(block.chainid, tokenAddress, token.decimals(), token.symbol());
45
90
  }
46
91
 
47
- /// @dev token state is informative, registry have no clue about used tokens
48
- // component owner is responsible for token selection and operations
49
- // service MUST deny registration of component with inactive token
50
- 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
+ )
51
101
  external
52
- onlyOwner
102
+ restricted()
53
103
  {
54
- // verify that token is registered
55
- if (!_registered[token]) {
56
- _registerToken(token);
104
+ if (chainId == block.chainid) {
105
+ revert ErrorTokenRegistryNotRemoteToken(chainId, token);
57
106
  }
58
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
+ {
59
175
  // verify valid major version
60
- // ensure major version increments is one
61
- uint256 version = majorVersion.toInt();
62
- if (version < _registry.getMajorVersionMin().toInt() || version > _registry.getMajorVersionMax().toInt()) {
63
- revert TokenMajorVersionInvalid(majorVersion);
176
+ if(enforceVersionCheck) {
177
+ uint256 version = majorVersion.toInt();
178
+ if (!getRegistry().isActiveRelease(majorVersion)) {
179
+ revert ErrorTokenRegistryMajorVersionInvalid(majorVersion);
180
+ }
64
181
  }
65
182
 
66
- _active[token][majorVersion] = active;
183
+ _active[chainId][token][majorVersion] = active;
67
184
 
68
- emit LogTokenStateSet(token, majorVersion, active);
185
+ emit LogTokenRegistryTokenStateSet(chainId, token, majorVersion, active);
69
186
  }
70
187
 
188
+ /// @dev returns the dip token for this chain
189
+ function getDipToken() external view returns (IERC20Metadata dipToken) {
190
+ return _dipToken;
191
+ }
192
+
193
+ /// @dev returns the number of registered tokens
71
194
  function tokens() external view returns (uint256) {
72
195
  return _token.length;
73
196
  }
74
197
 
75
- function getToken(uint256 idx) external view returns (IERC20Metadata token) {
76
- 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];
77
206
  }
78
207
 
79
- function isRegistered(address token) external view returns (bool) {
80
- 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];
81
220
  }
82
221
 
83
- function isActive(address token, VersionPart majorVersion) external view returns (bool) {
84
- return _active[token][majorVersion];
222
+ function getDipTokenAddress() external view returns (address) {
223
+ return address(_dipToken);
85
224
  }
86
225
 
87
- /// @dev some sanity checks to prevent unintended registration
88
- 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;
89
246
 
90
247
  // MUST be contract
91
- if(token.code.length == 0) {
92
- revert NotContract(token);
248
+ if(tokenAddress.code.length == 0) {
249
+ revert ErrorTokenRegistryTokenNotContract(chainId, tokenAddress);
250
+ }
251
+
252
+ // MUST implement required erc20 view functions
253
+ if(!_implementsErc20Functions(token)) {
254
+ revert ErrorTokenRegistryTokenNotErc20(chainId, tokenAddress);
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;
93
266
  }
94
267
 
95
- // MUST not be GIF registerable
96
- if(ERC165Checker.supportsInterface(token, type(IRegisterable).interfaceId)) {
97
- revert NotToken(token);
268
+ try token.balanceOf(address(1)) returns (uint256) {
269
+ // so far so goood
270
+ } catch {
271
+ return false;
98
272
  }
99
273
 
100
- // MUST have decimals > 0
101
- IERC20Metadata erc20 = IERC20Metadata(token);
102
- if(erc20.decimals() == 0) {
103
- revert TokenDecimalsZero();
274
+ try token.allowance(address(1), address(2)) returns (uint256) {
275
+ // so far so goood
276
+ } catch {
277
+ return false;
104
278
  }
105
279
 
106
- _registered[token] = true;
107
- _token.push(token);
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});
307
+
308
+ _tokenInfo[chainId][token] = tokenInfo;
309
+ _token.push(tokenInfo);
108
310
 
109
- emit LogRegistered(token, erc20.symbol(), erc20.decimals());
311
+ emit LogTokenRegistryTokenRegistered(chainId, token, decimals, symbol);
110
312
  }
111
313
  }