@etherisc/gif-next 0.0.2-b20ce14-335 → 0.0.2-b214449-558

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 (711) hide show
  1. package/README.md +77 -10
  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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
  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/{components → distribution}/Distribution.sol/Distribution.json +250 -579
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -312
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +243 -325
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +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 +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +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 +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +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 +2408 -0
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -2173
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +238 -112
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -2820
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1916 -0
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1417 -436
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +272 -387
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -153
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  88. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  112. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +228 -284
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -229
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  122. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +318 -442
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +240 -69
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +543 -273
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  136. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +377 -414
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  148. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +451 -457
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +115 -145
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +301 -206
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +921 -0
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IPricingService.sol/IPricingService.json} +230 -230
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +64 -61
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +812 -0
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  176. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -249
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  209. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +60 -182
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  226. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +152 -125
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  232. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  275. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  277. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  336. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  339. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  344. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  350. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  351. package/contracts/accounting/AccountingService.sol +262 -0
  352. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  353. package/contracts/accounting/IAccountingService.sol +45 -0
  354. package/contracts/authorization/AccessAdmin.sol +689 -0
  355. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  356. package/contracts/authorization/Authorization.sol +337 -0
  357. package/contracts/authorization/IAccess.sol +49 -0
  358. package/contracts/authorization/IAccessAdmin.sol +143 -0
  359. package/contracts/authorization/IAuthorization.sol +74 -0
  360. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  361. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  362. package/contracts/distribution/BasicDistribution.sol +139 -0
  363. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  364. package/contracts/{components → distribution}/Distribution.sol +165 -162
  365. package/contracts/distribution/DistributionService.sol +357 -0
  366. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  367. package/contracts/distribution/IDistributionComponent.sol +52 -0
  368. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  369. package/contracts/examples/fire/DamageLevel.sol +59 -0
  370. package/contracts/examples/fire/FirePool.sol +90 -0
  371. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  372. package/contracts/examples/fire/FireProduct.sol +438 -0
  373. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  374. package/contracts/examples/fire/FireUSD.sol +26 -0
  375. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  376. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  378. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  379. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  381. package/contracts/instance/BundleSet.sol +130 -0
  382. package/contracts/instance/IInstance.sol +48 -80
  383. package/contracts/instance/IInstanceService.sol +40 -36
  384. package/contracts/instance/Instance.sol +164 -227
  385. package/contracts/instance/InstanceAdmin.sol +442 -0
  386. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  387. package/contracts/instance/InstanceReader.sol +372 -64
  388. package/contracts/instance/InstanceService.sol +275 -349
  389. package/contracts/instance/InstanceServiceManager.sol +14 -29
  390. package/contracts/instance/InstanceStore.sol +298 -0
  391. package/contracts/instance/RiskSet.sol +118 -0
  392. package/contracts/instance/base/BalanceStore.sol +123 -0
  393. package/contracts/instance/base/Cloneable.sol +28 -0
  394. package/contracts/instance/base/ObjectCounter.sol +20 -0
  395. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  396. package/contracts/instance/base/ObjectSet.sol +77 -0
  397. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  398. package/contracts/instance/module/IBundle.sol +6 -9
  399. package/contracts/instance/module/IComponents.sol +28 -18
  400. package/contracts/instance/module/IDistribution.sol +6 -6
  401. package/contracts/instance/module/IPolicy.sol +44 -36
  402. package/contracts/instance/module/IRisk.sol +4 -1
  403. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  404. package/contracts/oracle/BasicOracle.sol +47 -0
  405. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  406. package/contracts/oracle/IOracle.sol +36 -0
  407. package/contracts/oracle/IOracleComponent.sol +33 -0
  408. package/contracts/oracle/IOracleService.sol +66 -0
  409. package/contracts/oracle/Oracle.sol +156 -0
  410. package/contracts/oracle/OracleService.sol +310 -0
  411. package/contracts/oracle/OracleServiceManager.sol +39 -0
  412. package/contracts/pool/BasicPool.sol +175 -0
  413. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  414. package/contracts/pool/BundleService.sol +395 -0
  415. package/contracts/pool/BundleServiceManager.sol +39 -0
  416. package/contracts/{instance/service → pool}/IBundleService.sol +50 -37
  417. package/contracts/pool/IPoolComponent.sol +62 -0
  418. package/contracts/pool/IPoolService.sol +165 -0
  419. package/contracts/pool/Pool.sol +345 -0
  420. package/contracts/pool/PoolLib.sol +216 -0
  421. package/contracts/pool/PoolService.sol +757 -0
  422. package/contracts/pool/PoolServiceManager.sol +39 -0
  423. package/contracts/product/ApplicationService.sol +259 -0
  424. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  425. package/contracts/product/BasicProduct.sol +51 -0
  426. package/contracts/product/BasicProductAuthorization.sol +56 -0
  427. package/contracts/product/ClaimService.sol +632 -0
  428. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  429. package/contracts/{instance/service → product}/IApplicationService.sol +19 -31
  430. package/contracts/product/IClaimService.sol +135 -0
  431. package/contracts/product/IPolicyService.sol +91 -0
  432. package/contracts/product/IPricingService.sol +39 -0
  433. package/contracts/product/IProductComponent.sol +62 -0
  434. package/contracts/product/IRiskService.sol +33 -0
  435. package/contracts/product/PolicyService.sol +725 -0
  436. package/contracts/product/PolicyServiceManager.sol +39 -0
  437. package/contracts/product/PricingService.sol +304 -0
  438. package/contracts/product/PricingServiceManager.sol +39 -0
  439. package/contracts/product/Product.sol +463 -0
  440. package/contracts/product/RiskService.sol +145 -0
  441. package/contracts/product/RiskServiceManager.sol +39 -0
  442. package/contracts/registry/ChainNft.sol +79 -40
  443. package/contracts/registry/IRegistry.sol +95 -30
  444. package/contracts/registry/IRegistryService.sol +34 -40
  445. package/contracts/registry/IRelease.sol +26 -0
  446. package/contracts/registry/ITransferInterceptor.sol +1 -2
  447. package/contracts/registry/Registry.sol +460 -197
  448. package/contracts/registry/RegistryAdmin.sol +354 -0
  449. package/contracts/registry/RegistryService.sol +89 -130
  450. package/contracts/registry/RegistryServiceManager.sol +23 -32
  451. package/contracts/registry/ReleaseAdmin.sol +245 -0
  452. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  453. package/contracts/registry/ReleaseRegistry.sol +511 -0
  454. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  455. package/contracts/registry/TokenRegistry.sol +261 -64
  456. package/contracts/shared/Component.sol +227 -0
  457. package/contracts/shared/ComponentService.sol +692 -0
  458. package/contracts/shared/ComponentServiceManager.sol +38 -0
  459. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  460. package/contracts/shared/ContractLib.sol +253 -0
  461. package/contracts/shared/IComponent.sol +61 -0
  462. package/contracts/shared/IComponentService.sol +112 -0
  463. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  464. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  465. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  466. package/contracts/shared/INftOwnable.sol +4 -2
  467. package/contracts/shared/IPolicyHolder.sol +23 -14
  468. package/contracts/shared/IRegisterable.sol +23 -1
  469. package/contracts/shared/IRegistryLinked.sol +0 -1
  470. package/contracts/shared/IService.sol +12 -5
  471. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  472. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  473. package/contracts/shared/KeyValueStore.sol +131 -0
  474. package/contracts/shared/Lifecycle.sol +88 -0
  475. package/contracts/shared/NftIdSet.sol +65 -0
  476. package/contracts/shared/NftOwnable.sol +34 -27
  477. package/contracts/shared/PolicyHolder.sol +22 -41
  478. package/contracts/shared/Registerable.sol +55 -20
  479. package/contracts/shared/RegistryLinked.sol +9 -19
  480. package/contracts/shared/Service.sol +33 -40
  481. package/contracts/shared/TokenHandler.sol +321 -13
  482. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  483. package/contracts/staking/IStaking.sol +165 -0
  484. package/contracts/staking/IStakingService.sol +165 -0
  485. package/contracts/staking/StakeManagerLib.sol +224 -0
  486. package/contracts/staking/Staking.sol +526 -0
  487. package/contracts/staking/StakingLifecycle.sol +23 -0
  488. package/contracts/staking/StakingManager.sol +52 -0
  489. package/contracts/staking/StakingReader.sol +190 -0
  490. package/contracts/staking/StakingService.sol +430 -0
  491. package/contracts/staking/StakingServiceManager.sol +45 -0
  492. package/contracts/staking/StakingStore.sol +605 -0
  493. package/contracts/staking/TargetManagerLib.sol +211 -0
  494. package/contracts/{types → type}/AddressSet.sol +1 -1
  495. package/contracts/type/Amount.sol +150 -0
  496. package/contracts/{types → type}/Blocknumber.sol +26 -3
  497. package/contracts/{types → type}/ClaimId.sol +6 -1
  498. package/contracts/{types → type}/Fee.sol +24 -22
  499. package/contracts/{types → type}/Key32.sol +2 -2
  500. package/contracts/type/Key32Set.sol +62 -0
  501. package/contracts/{types → type}/NftId.sol +21 -16
  502. package/contracts/{types → type}/NftIdSet.sol +2 -2
  503. package/contracts/type/ObjectType.sol +303 -0
  504. package/contracts/{types → type}/PayoutId.sol +10 -10
  505. package/contracts/{types → type}/Referral.sol +2 -1
  506. package/contracts/type/RequestId.sol +75 -0
  507. package/contracts/type/RiskId.sol +74 -0
  508. package/contracts/type/RoleId.sol +182 -0
  509. package/contracts/type/Seconds.sol +101 -0
  510. package/contracts/type/Selector.sol +107 -0
  511. package/contracts/{types → type}/StateId.sol +41 -2
  512. package/contracts/type/String.sol +53 -0
  513. package/contracts/{types → type}/Timestamp.sol +16 -7
  514. package/contracts/{types → type}/UFixed.sol +40 -121
  515. package/contracts/{types → type}/Version.sol +19 -7
  516. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  517. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  518. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  519. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  520. package/package.json +11 -7
  521. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  522. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  523. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  524. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  525. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  526. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  528. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  529. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  530. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  531. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  533. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  536. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  537. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  538. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  540. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  543. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  545. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  547. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  550. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  552. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  554. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  556. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  558. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  560. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  562. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  564. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  566. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1543
  575. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  577. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1449
  579. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
  581. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  583. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  585. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  587. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  589. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  591. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  593. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  594. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  596. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  598. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  601. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  603. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  605. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  607. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  609. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  611. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  613. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  614. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  615. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  617. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  619. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  621. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  623. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  625. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  627. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  629. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  633. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  635. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  639. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  641. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  643. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  645. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  647. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  649. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  651. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  654. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  656. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  658. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  660. package/contracts/components/Component.sol +0 -253
  661. package/contracts/components/IComponent.sol +0 -76
  662. package/contracts/components/IDistributionComponent.sol +0 -71
  663. package/contracts/components/IPoolComponent.sol +0 -113
  664. package/contracts/components/IProductComponent.sol +0 -40
  665. package/contracts/components/Pool.sol +0 -302
  666. package/contracts/components/Product.sol +0 -371
  667. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  668. package/contracts/instance/BundleManager.sol +0 -126
  669. package/contracts/instance/Cloneable.sol +0 -51
  670. package/contracts/instance/InstanceAccessManager.sol +0 -527
  671. package/contracts/instance/ObjectManager.sol +0 -82
  672. package/contracts/instance/base/ComponentService.sol +0 -121
  673. package/contracts/instance/base/KeyValueStore.sol +0 -180
  674. package/contracts/instance/base/Lifecycle.sol +0 -117
  675. package/contracts/instance/module/IAccess.sol +0 -54
  676. package/contracts/instance/module/ISetup.sol +0 -33
  677. package/contracts/instance/module/ITreasury.sol +0 -23
  678. package/contracts/instance/service/ApplicationService.sol +0 -355
  679. package/contracts/instance/service/BundleService.sol +0 -443
  680. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  681. package/contracts/instance/service/ClaimService.sol +0 -239
  682. package/contracts/instance/service/DistributionService.sol +0 -431
  683. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  684. package/contracts/instance/service/IClaimService.sol +0 -92
  685. package/contracts/instance/service/IPolicyService.sol +0 -139
  686. package/contracts/instance/service/IPoolService.sol +0 -102
  687. package/contracts/instance/service/IProductService.sol +0 -40
  688. package/contracts/instance/service/PolicyService.sol +0 -571
  689. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  690. package/contracts/instance/service/PoolService.sol +0 -336
  691. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  692. package/contracts/instance/service/ProductService.sol +0 -210
  693. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  694. package/contracts/registry/RegistryAccessManager.sol +0 -216
  695. package/contracts/registry/ReleaseManager.sol +0 -324
  696. package/contracts/shared/ContractDeployerLib.sol +0 -72
  697. package/contracts/test/TestFee.sol +0 -25
  698. package/contracts/test/TestRegisterable.sol +0 -18
  699. package/contracts/test/TestRoleId.sol +0 -14
  700. package/contracts/test/TestService.sol +0 -25
  701. package/contracts/test/TestToken.sol +0 -26
  702. package/contracts/test/TestVersion.sol +0 -44
  703. package/contracts/test/TestVersionable.sol +0 -17
  704. package/contracts/types/Amount.sol +0 -70
  705. package/contracts/types/ChainId.sol +0 -38
  706. package/contracts/types/NumberId.sol +0 -52
  707. package/contracts/types/ObjectType.sol +0 -157
  708. package/contracts/types/RiskId.sol +0 -43
  709. package/contracts/types/RoleId.sol +0 -97
  710. package/contracts/types/Seconds.sol +0 -54
  711. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,60 +1,38 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
-
6
- import {Key32} from "../types/Key32.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ClaimId} from "../types/ClaimId.sol";
9
- import {DistributorType} from "../types/DistributorType.sol";
10
- import {PayoutId} from "../types/PayoutId.sol";
11
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, DISTRIBUTOR} from "../types/ObjectType.sol";
12
- import {ReferralId} from "../types/Referral.sol";
13
- import {RiskId} from "../types/RiskId.sol";
14
- import {INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
15
- import {StateId} from "../types/StateId.sol";
16
- import {VersionPart, VersionPartLib} from "../types/Version.sol";
17
-
18
- import {Registerable} from "../shared/Registerable.sol";
19
-
20
- import {IRegistry} from "../registry/IRegistry.sol";
21
-
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
22
8
  import {IInstance} from "./IInstance.sol";
9
+ import {IComponentService} from "../shared/IComponentService.sol";
10
+ import {IInstanceService} from "./IInstanceService.sol";
23
11
  import {InstanceReader} from "./InstanceReader.sol";
24
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
25
- import {BundleManager} from "./BundleManager.sol";
26
-
27
- import {KeyValueStore} from "./base/KeyValueStore.sol";
28
-
29
- import {IBundle} from "./module/IBundle.sol";
30
- import {IComponents} from "./module/IComponents.sol";
31
- import {IDistribution} from "./module/IDistribution.sol";
32
- import {IPolicy} from "./module/IPolicy.sol";
33
- import {IRisk} from "./module/IRisk.sol";
34
- import {ISetup} from "./module/ISetup.sol";
35
-
36
- import {VersionPart, VersionPartLib} from "../types/Version.sol";
12
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
13
+ import {InstanceStore} from "./InstanceStore.sol";
14
+ import {IRegistry} from "../registry/IRegistry.sol";
15
+ import {NftId} from "../type/NftId.sol";
16
+ import {Registerable} from "../shared/Registerable.sol";
17
+ import {RoleId} from "../type/RoleId.sol";
18
+ import {Seconds} from "../type/Seconds.sol";
19
+ import {UFixed} from "../type/UFixed.sol";
37
20
 
38
21
  contract Instance is
39
22
  IInstance,
40
- AccessManagedUpgradeable,
41
- Registerable,
42
- KeyValueStore
23
+ Registerable
43
24
  {
44
-
45
- uint256 public constant GIF_MAJOR_VERSION = 3;
46
-
47
- uint64 public constant ADMIN_ROLE = type(uint64).min;
48
- uint64 public constant PUBLIC_ROLE = type(uint64).max;
49
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
50
-
51
- uint32 public constant EXECUTION_DELAY = 0;
52
-
53
25
  bool private _initialized;
54
26
 
55
- InstanceAccessManager internal _accessManager;
27
+ IComponentService internal _componentService;
28
+ IInstanceService internal _instanceService;
29
+
30
+ InstanceAdmin internal _instanceAdmin;
56
31
  InstanceReader internal _instanceReader;
57
- BundleManager internal _bundleManager;
32
+ BundleSet internal _bundleSet;
33
+ RiskSet internal _riskSet;
34
+ InstanceStore internal _instanceStore;
35
+ NftId [] internal _products;
58
36
 
59
37
  modifier onlyChainNft() {
60
38
  if(msg.sender != getRegistry().getChainNftAddress()) {
@@ -63,213 +41,171 @@ contract Instance is
63
41
  _;
64
42
  }
65
43
 
66
- function initialize(address authority, address registryAddress, address initialOwner)
67
- public
44
+ function initialize(
45
+ InstanceAdmin instanceAdmin,
46
+ InstanceStore instanceStore,
47
+ BundleSet bundleSet,
48
+ RiskSet riskSet,
49
+ InstanceReader instanceReader,
50
+ IRegistry registry,
51
+ address initialOwner
52
+ )
53
+ external
68
54
  initializer()
69
55
  {
70
- __AccessManaged_init(authority);
71
-
72
- IRegistry registry = IRegistry(registryAddress);
73
- initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
74
- initializeLifecycle();
75
-
76
- registerInterface(type(IInstance).interfaceId);
77
- }
78
-
79
- //--- ProductSetup ------------------------------------------------------//
80
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
81
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
82
- }
83
-
84
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
85
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
86
- }
87
-
88
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
89
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
90
- }
91
-
92
- //--- DistributionSetup ------------------------------------------------------//
93
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
94
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
95
- }
96
-
97
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
98
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
99
- }
100
-
101
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
102
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
103
- }
104
-
105
- //--- PoolSetup ------------------------------------------------------//
106
- function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
107
- create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
108
- }
109
-
110
- function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
111
- update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
112
- }
113
-
114
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
115
- updateState(_toNftKey32(poolNftId, POOL()), newState);
116
- }
117
-
118
- //--- DistributorType -------------------------------------------------------//
119
- function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
120
- create(distributorType.toKey32(), abi.encode(info));
121
- }
122
-
123
- function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
124
- update(distributorType.toKey32(), abi.encode(info), newState);
125
- }
126
-
127
- function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
128
- updateState(distributorType.toKey32(), newState);
129
- }
130
-
131
- //--- Distributor -------------------------------------------------------//
132
- function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
133
- create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
134
- }
135
-
136
- function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
137
- update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
138
- }
56
+ if(address(instanceAdmin) == address(0)) {
57
+ revert ErrorInstanceInstanceAdminZero();
58
+ }
139
59
 
140
- function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
141
- updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
142
- }
60
+ _instanceAdmin = instanceAdmin;
61
+
62
+ // setup instance object info
63
+ __Registerable_init(
64
+ instanceAdmin.authority(),
65
+ address(registry),
66
+ registry.getNftId(),
67
+ INSTANCE(),
68
+ true,
69
+ initialOwner,
70
+ "");
71
+
72
+ // store instance supporting contracts
73
+ _instanceStore = instanceStore;
74
+ _bundleSet = bundleSet;
75
+ _riskSet = riskSet;
76
+ _instanceReader = instanceReader;
143
77
 
144
- //--- Referral ----------------------------------------------------------//
145
- function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
146
- create(referralId.toKey32(), abi.encode(referralInfo));
147
- }
78
+ // initialize instance supporting contracts
79
+ _instanceStore.initialize();
80
+ _bundleSet.initialize(instanceAdmin.authority(), address(registry));
81
+ _riskSet.initialize(instanceAdmin.authority(), address(registry));
82
+ _instanceReader.initialize();
148
83
 
149
- function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
150
- update(referralId.toKey32(), abi.encode(referralInfo), newState);
151
- }
84
+ _componentService = IComponentService(
85
+ getRegistry().getServiceAddress(
86
+ COMPONENT(),
87
+ getRelease()));
152
88
 
153
- function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
154
- updateState(referralId.toKey32(), newState);
155
- }
89
+ _instanceService = IInstanceService(
90
+ getRegistry().getServiceAddress(
91
+ INSTANCE(),
92
+ getRelease()));
156
93
 
157
- //--- Bundle ------------------------------------------------------------//
158
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
159
- create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
94
+ _registerInterface(type(IInstance).interfaceId);
160
95
  }
161
96
 
162
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
163
- update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
164
- }
97
+ //--- ProductRegistration ----------------------------------------------//
165
98
 
166
- function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
167
- updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
99
+ function registerProduct(address product)
100
+ external
101
+ onlyOwner()
102
+ returns (NftId productNftId)
103
+ {
104
+ productNftId = _componentService.registerProduct(product);
105
+ _products.push(productNftId);
168
106
  }
169
107
 
170
- //--- Risk --------------------------------------------------------------//
171
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
172
- create(riskId.toKey32(), abi.encode(risk));
173
- }
108
+ //--- Staking ----------------------------------------------------------//
174
109
 
175
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
176
- update(riskId.toKey32(), abi.encode(risk), newState);
110
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
111
+ external
112
+ onlyOwner()
113
+ {
114
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
177
115
  }
178
116
 
179
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
180
- updateState(riskId.toKey32(), newState);
117
+ function setStakingRewardRate(UFixed rewardRate)
118
+ external
119
+ onlyOwner()
120
+ {
121
+ _instanceService.setStakingRewardRate(rewardRate);
181
122
  }
182
123
 
183
- //--- Application (Policy) ----------------------------------------------//
184
- function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
185
- create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
124
+ function refillStakingRewardReserves(Amount dipAmount)
125
+ external
126
+ onlyOwner()
127
+ {
128
+ address instanceOwner = msg.sender;
129
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
186
130
  }
187
131
 
188
- function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
189
- update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
132
+ function withdrawStakingRewardReserves(Amount dipAmount)
133
+ external
134
+ onlyOwner()
135
+ returns (Amount newBalance)
136
+ {
137
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
190
138
  }
191
139
 
192
- function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
193
- updateState(_toNftKey32(applicationNftId, POLICY()), newState);
194
- }
140
+ //--- Roles ------------------------------------------------------------//
195
141
 
196
- //--- Policy ------------------------------------------------------------//
197
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
198
- update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
142
+ function createRole(string memory roleName, string memory adminName)
143
+ external
144
+ onlyOwner()
145
+ returns (RoleId roleId, RoleId admin)
146
+ {
147
+ // TODO refactor
148
+ // (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
199
149
  }
200
150
 
201
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
202
- updateState(_toNftKey32(policyNftId, POLICY()), newState);
151
+ function grantRole(RoleId roleId, address account)
152
+ external
153
+ onlyOwner()
154
+ {
155
+ _instanceAdmin.grantRole(roleId, account);
203
156
  }
204
157
 
205
- //--- Claim -------------------------------------------------------------//
206
- function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
207
- create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
158
+ function revokeRole(RoleId roleId, address account)
159
+ external
160
+ onlyOwner()
161
+ {
162
+ // TODO refactor
163
+ // AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
208
164
  }
209
165
 
210
- function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
211
- update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
212
- }
166
+ //--- Targets ------------------------------------------------------------//
213
167
 
214
- function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
215
- updateState(_toClaimKey32(policyNftId, claimId), newState);
168
+ function createTarget(address target, string memory name)
169
+ external
170
+ onlyOwner()
171
+ {
172
+ // TODO refactor
173
+ // _instanceAdmin.createTarget(target, name);
216
174
  }
217
175
 
218
- //--- Payout ------------------------------------------------------------//
219
- function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
220
- create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
176
+ function setTargetFunctionRole(
177
+ string memory targetName,
178
+ bytes4[] calldata selectors,
179
+ RoleId roleId
180
+ )
181
+ external
182
+ onlyOwner()
183
+ {
184
+ // TODO refactor
185
+ // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
221
186
  }
222
187
 
223
- function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
224
- update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
188
+ function setLocked(address target, bool locked)
189
+ external
190
+ onlyOwner()
191
+ {
192
+ _componentService.setLockedFromInstance(target, locked);
225
193
  }
226
194
 
227
- function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
228
- updateState(_toPayoutKey32(policyNftId, payoutId), newState);
229
- }
195
+ //--- ITransferInterceptor ----------------------------------------------//
230
196
 
231
- //--- ITransferInterceptor ------------------------------------------------------------//
232
- function nftMint(address to, uint256 tokenId) external onlyChainNft {
233
- assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
234
- assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
235
- }
236
-
237
- function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
238
- assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
239
- assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
197
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
198
+ // TODO refactor
199
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
240
200
  }
241
201
 
242
202
  //--- initial setup functions -------------------------------------------//
243
203
 
244
- function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
245
- if(address(_accessManager) != address(0)) {
246
- revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
247
- }
248
-
249
- if(accessManager.authority() != authority()) {
250
- revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
251
- }
252
-
253
- _accessManager = accessManager;
254
- }
255
-
256
- function setBundleManager(BundleManager bundleManager) external restricted() {
257
- if(address(_bundleManager) != address(0)) {
258
- revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
259
- }
260
-
261
- if(bundleManager.getInstance() != Instance(this)) {
262
- revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
263
- }
264
-
265
- if(bundleManager.authority() != authority()) {
266
- revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
267
- }
268
-
269
- _bundleManager = bundleManager;
270
- }
271
204
 
272
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
205
+ function setInstanceReader(InstanceReader instanceReader)
206
+ external
207
+ restricted()
208
+ {
273
209
  if(instanceReader.getInstance() != Instance(this)) {
274
210
  revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
275
211
  }
@@ -279,32 +215,33 @@ contract Instance is
279
215
 
280
216
  //--- external view functions -------------------------------------------//
281
217
 
282
- function getInstanceReader() external view returns (InstanceReader) {
283
- return _instanceReader;
218
+ function products() external view returns (uint256 productCount) {
219
+ return _products.length;
284
220
  }
285
221
 
286
- function getBundleManager() external view returns (BundleManager) {
287
- return _bundleManager;
222
+ function getProductNftid(uint256 idx) external view returns (NftId productNftId) {
223
+ return _products[idx];
288
224
  }
289
225
 
290
- function getInstanceAccessManager() external view returns (InstanceAccessManager) {
291
- return _accessManager;
226
+ function getInstanceReader() external view returns (InstanceReader) {
227
+ return _instanceReader;
292
228
  }
293
229
 
294
- function getMajorVersion() external pure returns (VersionPart majorVersion) {
295
- return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
230
+ function getBundleSet() external view returns (BundleSet) {
231
+ return _bundleSet;
296
232
  }
297
233
 
298
- //--- internal view/pure functions --------------------------------------//
299
- function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
300
- return nftId.toKey32(objectType);
234
+ function getRiskSet() external view returns (RiskSet) {
235
+ return _riskSet;
301
236
  }
302
237
 
303
- function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
304
- return claimId.toKey32(policyNftId);
238
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
239
+ return _instanceAdmin;
305
240
  }
306
241
 
307
- function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
308
- return payoutId.toKey32(policyNftId);
242
+ function getInstanceStore() external view returns (InstanceStore) {
243
+ return _instanceStore;
309
244
  }
310
- }
245
+
246
+ //--- internal view/pure functions --------------------------------------//
247
+ }