@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-deb924b-641

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 (438) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
  14. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +79 -49
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -21
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +207 -192
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -51
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +97 -73
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +76 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +233 -184
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +106 -56
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +152 -33
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +127 -40
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +280 -147
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +152 -33
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +344 -99
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +175 -199
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +44 -272
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -38
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -8
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -22
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
  130. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  132. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
  134. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
  136. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
  138. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
  140. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
  142. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  144. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
  146. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
  148. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
  150. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  152. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  157. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
  158. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  160. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
  162. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  163. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -47
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +157 -112
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  179. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  181. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  184. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  186. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
  188. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  190. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  192. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  194. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +315 -49
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  202. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -108
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -38
  208. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  210. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
  212. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  216. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -8
  218. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -21
  220. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
  222. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  224. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  228. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  231. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
  234. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  237. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  238. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  240. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  241. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  242. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  244. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  245. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  246. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  248. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  252. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  253. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  254. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  255. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +41 -22
  256. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  257. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
  258. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +48 -43
  260. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -71
  262. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  263. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  264. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +31 -19
  266. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
  268. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +137 -51
  270. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +22 -20
  272. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
  274. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  275. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  276. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  277. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  286. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  287. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  288. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  290. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  291. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  292. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  294. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  296. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  298. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  300. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +23 -4
  302. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  304. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  309. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  319. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  321. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  322. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  323. package/contracts/accounting/AccountingService.sol +3 -4
  324. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  325. package/contracts/authorization/AccessAdmin.sol +156 -82
  326. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  327. package/contracts/authorization/Authorization.sol +277 -229
  328. package/contracts/authorization/IAccessAdmin.sol +13 -7
  329. package/contracts/authorization/IAuthorization.sol +15 -1
  330. package/contracts/distribution/BasicDistribution.sol +7 -5
  331. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  332. package/contracts/distribution/Distribution.sol +10 -8
  333. package/contracts/distribution/DistributionService.sol +26 -25
  334. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  335. package/contracts/distribution/IDistributionService.sol +14 -13
  336. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  337. package/contracts/examples/fire/FireProduct.sol +3 -1
  338. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  339. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  340. package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
  341. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  342. package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
  343. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  344. package/contracts/instance/BundleSet.sol +4 -4
  345. package/contracts/instance/IInstance.sol +6 -7
  346. package/contracts/instance/IInstanceService.sol +2 -0
  347. package/contracts/instance/Instance.sol +19 -11
  348. package/contracts/instance/InstanceAdmin.sol +213 -64
  349. package/contracts/instance/InstanceAuthorizationV3.sol +8 -17
  350. package/contracts/instance/InstanceReader.sol +75 -34
  351. package/contracts/instance/InstanceService.sol +43 -31
  352. package/contracts/instance/InstanceServiceManager.sol +1 -1
  353. package/contracts/instance/InstanceStore.sol +1 -0
  354. package/contracts/instance/RiskSet.sol +11 -12
  355. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  356. package/contracts/instance/base/ObjectSet.sol +7 -8
  357. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  358. package/contracts/instance/module/IComponents.sol +0 -8
  359. package/contracts/instance/module/IDistribution.sol +2 -1
  360. package/contracts/instance/module/IRisk.sol +2 -0
  361. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  362. package/contracts/oracle/Oracle.sol +1 -1
  363. package/contracts/oracle/OracleService.sol +16 -15
  364. package/contracts/oracle/OracleServiceManager.sol +1 -1
  365. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  366. package/contracts/pool/BundleService.sol +28 -58
  367. package/contracts/pool/BundleServiceManager.sol +1 -1
  368. package/contracts/pool/IBundleService.sol +13 -19
  369. package/contracts/pool/IPoolService.sol +50 -38
  370. package/contracts/pool/Pool.sol +9 -9
  371. package/contracts/pool/PoolLib.sol +216 -0
  372. package/contracts/pool/PoolService.sol +296 -154
  373. package/contracts/pool/PoolServiceManager.sol +1 -1
  374. package/contracts/product/ApplicationService.sol +3 -3
  375. package/contracts/product/ApplicationServiceManager.sol +1 -1
  376. package/contracts/product/BasicProduct.sol +2 -0
  377. package/contracts/product/BasicProductAuthorization.sol +23 -8
  378. package/contracts/product/ClaimService.sol +157 -139
  379. package/contracts/product/ClaimServiceManager.sol +1 -1
  380. package/contracts/product/IClaimService.sol +14 -2
  381. package/contracts/product/IPolicyService.sol +11 -6
  382. package/contracts/product/IProductComponent.sol +4 -1
  383. package/contracts/product/PolicyService.sol +90 -144
  384. package/contracts/product/PolicyServiceLib.sol +65 -0
  385. package/contracts/product/PolicyServiceManager.sol +1 -1
  386. package/contracts/product/PricingService.sol +23 -19
  387. package/contracts/product/PricingServiceManager.sol +3 -3
  388. package/contracts/product/Product.sol +51 -0
  389. package/contracts/product/RiskService.sol +61 -23
  390. package/contracts/product/RiskServiceManager.sol +1 -1
  391. package/contracts/registry/IRegistry.sol +8 -15
  392. package/contracts/registry/IRelease.sol +26 -0
  393. package/contracts/registry/Registry.sol +7 -2
  394. package/contracts/registry/RegistryAdmin.sol +126 -229
  395. package/contracts/registry/RegistryService.sol +3 -3
  396. package/contracts/registry/RegistryServiceManager.sol +1 -1
  397. package/contracts/registry/ReleaseAdmin.sol +245 -0
  398. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  399. package/contracts/registry/ReleaseRegistry.sol +124 -99
  400. package/contracts/registry/ServiceAuthorizationV3.sol +42 -2
  401. package/contracts/registry/TokenRegistry.sol +6 -8
  402. package/contracts/shared/Component.sol +27 -19
  403. package/contracts/shared/ComponentService.sol +85 -89
  404. package/contracts/shared/ComponentServiceManager.sol +1 -1
  405. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  406. package/contracts/shared/ContractLib.sol +32 -3
  407. package/contracts/shared/IComponent.sol +3 -4
  408. package/contracts/shared/IComponentService.sol +0 -4
  409. package/contracts/shared/IRegisterable.sol +15 -4
  410. package/contracts/shared/IService.sol +3 -5
  411. package/contracts/shared/InstanceLinkedComponent.sol +2 -2
  412. package/contracts/shared/NftOwnable.sol +4 -4
  413. package/contracts/shared/PolicyHolder.sol +1 -1
  414. package/contracts/shared/Registerable.sol +45 -19
  415. package/contracts/shared/RegistryLinked.sol +1 -1
  416. package/contracts/shared/Service.sol +8 -27
  417. package/contracts/shared/TokenHandler.sol +40 -88
  418. package/contracts/staking/IStaking.sol +1 -10
  419. package/contracts/staking/IStakingService.sol +11 -1
  420. package/contracts/staking/StakeManagerLib.sol +67 -16
  421. package/contracts/staking/Staking.sol +35 -20
  422. package/contracts/staking/StakingReader.sol +1 -16
  423. package/contracts/staking/StakingService.sol +53 -44
  424. package/contracts/staking/StakingServiceManager.sol +5 -4
  425. package/contracts/type/ObjectType.sol +41 -27
  426. package/contracts/type/RiskId.sol +5 -0
  427. package/contracts/type/RoleId.sol +24 -4
  428. package/contracts/type/Selector.sol +5 -0
  429. package/contracts/type/Timestamp.sol +0 -5
  430. package/contracts/type/Version.sol +15 -5
  431. package/contracts/upgradeability/ProxyManager.sol +1 -1
  432. package/package.json +1 -1
  433. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  434. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  435. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  436. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  437. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  438. package/contracts/instance/module/IAccess.sol +0 -46
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
 
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
7
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
7
8
  import {Amount} from "../type/Amount.sol";
8
9
  import {BundleSet} from "./BundleSet.sol";
@@ -80,6 +81,7 @@ contract InstanceService is
80
81
  _;
81
82
  }
82
83
 
84
+
83
85
  // TODO check component - service - instance version match
84
86
  modifier onlyComponent() {
85
87
  if (! getRegistry().isRegisteredComponent(msg.sender)) {
@@ -90,6 +92,7 @@ contract InstanceService is
90
92
 
91
93
  function createInstance()
92
94
  external
95
+ restricted()
93
96
  returns (
94
97
  IInstance instance,
95
98
  NftId instanceNftId
@@ -113,7 +116,11 @@ contract InstanceService is
113
116
  TargetManagerLib.getDefaultRewardRate());
114
117
 
115
118
  // MUST be set after instance is set up and registered
116
- instanceAdmin.initializeInstanceAuthorization(address(instance));
119
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
120
+ VersionPart release = AccessManagerCloneable(authority()).getRelease();
121
+ instanceAdmin.completeSetup(
122
+ address(instance),
123
+ address(instanceAuthorization));
117
124
 
118
125
  emit LogInstanceCloned(
119
126
  instanceNftId,
@@ -124,6 +131,7 @@ contract InstanceService is
124
131
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
125
132
  external
126
133
  virtual
134
+ restricted()
127
135
  onlyInstance()
128
136
  {
129
137
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -136,6 +144,7 @@ contract InstanceService is
136
144
  function setStakingRewardRate(UFixed rewardRate)
137
145
  external
138
146
  virtual
147
+ restricted()
139
148
  onlyInstance()
140
149
  {
141
150
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -148,6 +157,7 @@ contract InstanceService is
148
157
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
149
158
  external
150
159
  virtual
160
+ restricted()
151
161
  onlyInstance()
152
162
  {
153
163
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -161,6 +171,7 @@ contract InstanceService is
161
171
  function withdrawStakingRewardReserves(Amount dipAmount)
162
172
  external
163
173
  virtual
174
+ restricted()
164
175
  onlyInstance()
165
176
  returns (Amount newBalance)
166
177
  {
@@ -170,14 +181,26 @@ contract InstanceService is
170
181
  dipAmount);
171
182
  }
172
183
 
173
- function getMasterInstanceReader() external view returns (address) {
174
- return _masterInstanceReader;
184
+ function upgradeInstanceReader(NftId instanceNftId)
185
+ external
186
+ nonReentrant()
187
+ restricted()
188
+ onlyInstanceOwner(instanceNftId)
189
+ onlyNftOfType(instanceNftId, INSTANCE())
190
+ {
191
+ IRegistry registry = getRegistry();
192
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
193
+ Instance instance = Instance(instanceInfo.objectAddress);
194
+
195
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
196
+ upgradedInstanceReaderClone.initializeWithInstance(address(instance));
197
+ instance.setInstanceReader(upgradedInstanceReaderClone);
175
198
  }
176
199
 
177
200
  function setAndRegisterMasterInstance(address instanceAddress)
178
- external
179
- onlyOwner
180
- returns(NftId masterInstanceNftId)
201
+ external
202
+ onlyOwner()
203
+ returns(NftId masterInstanceNftId)
181
204
  {
182
205
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
183
206
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
@@ -209,8 +232,8 @@ contract InstanceService is
209
232
  if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
210
233
  if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
211
234
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
212
- if(bundleSet.getInstance() != instance) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
213
- if(riskSet.getInstance() != instance) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
235
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
236
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
214
237
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
215
238
 
216
239
  _masterAccessManager = accessManagerAddress;
@@ -226,7 +249,10 @@ contract InstanceService is
226
249
  masterInstanceNftId = info.nftId;
227
250
  }
228
251
 
229
- function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
252
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
253
+ external
254
+ onlyOwner
255
+ {
230
256
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
231
257
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
232
258
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -237,19 +263,8 @@ contract InstanceService is
237
263
  _masterInstanceReader = instanceReaderAddress;
238
264
  }
239
265
 
240
- function upgradeInstanceReader(NftId instanceNftId)
241
- external
242
- nonReentrant()
243
- onlyInstanceOwner(instanceNftId)
244
- onlyNftOfType(instanceNftId, INSTANCE())
245
- {
246
- IRegistry registry = getRegistry();
247
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
248
- Instance instance = Instance(instanceInfo.objectAddress);
249
-
250
- InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
251
- upgradedInstanceReaderClone.initializeWithInstance(address(instance));
252
- instance.setInstanceReader(upgradedInstanceReaderClone);
266
+ function getMasterInstanceReader() external view returns (address) {
267
+ return _masterInstanceReader;
253
268
  }
254
269
 
255
270
  /// @dev create new cloned instance admin
@@ -260,19 +275,16 @@ contract InstanceService is
260
275
  returns (InstanceAdmin clonedInstanceAdmin)
261
276
  {
262
277
  // start with setting up a new OZ access manager
278
+ // TODO consider _masterInstanceAdmin.authority() instead of _masterAccessManager
263
279
  AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
264
280
  Clones.clone(_masterAccessManager));
265
281
 
266
282
  // set up the instance admin
267
283
  clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
268
- clonedAccessManager.initialize(
269
- address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
270
-
271
- address authorization = address(
272
- InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
273
284
  clonedInstanceAdmin.initialize(
274
285
  clonedAccessManager,
275
- authorization);
286
+ getRegistry(),
287
+ getRelease());
276
288
  }
277
289
 
278
290
 
@@ -344,11 +356,11 @@ contract InstanceService is
344
356
  initializer()
345
357
  {
346
358
  (
347
- address registryAddress,
348
- address authority
359
+ address authority,
360
+ address registry
349
361
  ) = abi.decode(data, (address, address));
350
362
 
351
- _initializeService(registryAddress, authority, owner);
363
+ __Service_init(authority, registry, owner);
352
364
 
353
365
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
354
366
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
@@ -17,7 +17,7 @@ contract InstanceServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  InstanceService svc = new InstanceService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -91,6 +91,7 @@ contract InstanceStore is
91
91
  _create(_toNftKey32(productNftId, FEE()), abi.encode(info));
92
92
  }
93
93
 
94
+ // Fee only has one state, so no change change possible
94
95
  function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
95
96
  _update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
96
97
  }
@@ -1,18 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IPolicy} from "../instance/module/IPolicy.sol";
5
4
  import {Key32} from "../type/Key32.sol";
6
5
  import {LibNftIdSet} from "../type/NftIdSet.sol";
7
6
  import {NftId} from "../type/NftId.sol";
8
- import {RiskIdLib, RiskId} from "../type/RiskId.sol";
9
-
10
7
  import {ObjectSet} from "./base/ObjectSet.sol";
8
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
9
+ import {RiskIdLib, RiskId} from "../type/RiskId.sol";
11
10
 
12
- contract RiskSet is
11
+ /// @dev RiskSet manages the risks and its active policies per product.
12
+ contract RiskSet is
13
13
  ObjectSet
14
14
  {
15
- using LibNftIdSet for LibNftIdSet.Set;
16
15
 
17
16
  event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
18
17
  event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
@@ -36,7 +35,7 @@ contract RiskSet is
36
35
  revert ErrorRiskSetRiskLocked(riskId, policyNftId);
37
36
  }
38
37
 
39
- _activePolicies[riskId].add(policyNftId);
38
+ LibNftIdSet.add(_activePolicies[riskId], policyNftId);
40
39
  emit LogRiskSetPolicyLinked(riskId, policyNftId);
41
40
  }
42
41
 
@@ -48,14 +47,14 @@ contract RiskSet is
48
47
  revert ErrorRiskSetRiskUnknown(riskId);
49
48
  }
50
49
 
51
- _activePolicies[riskId].remove(policyNftId);
50
+ LibNftIdSet.remove(_activePolicies[riskId], policyNftId);
52
51
  emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
53
52
  }
54
53
 
55
54
  /// @dev add a new risk to a product registered with this instance
56
55
  // the corresponding product is fetched via instance reader
57
56
  function add(RiskId riskId) external restricted() {
58
- NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
57
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
59
58
 
60
59
  // ensure product is registered with instance
61
60
  if(productNftId.eqz()) {
@@ -68,14 +67,14 @@ contract RiskSet is
68
67
 
69
68
  /// @dev Applications linked to active risks may be underwritten
70
69
  function activate(RiskId riskId) external restricted() {
71
- NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
70
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
72
71
  _activate(productNftId, riskId.toKey32());
73
72
  emit LogRiskSetRiskActive(productNftId, riskId);
74
73
  }
75
74
 
76
75
  /// @dev Applications linked to paused/archived risks may not be underwritten
77
76
  function pause(RiskId riskId) external restricted() {
78
- NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
77
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
79
78
  _deactivate(productNftId, riskId.toKey32());
80
79
  emit LogRiskSetRiskPaused(productNftId, riskId);
81
80
  }
@@ -110,10 +109,10 @@ contract RiskSet is
110
109
  }
111
110
 
112
111
  function linkedPolicies(RiskId riskId) external view returns(uint256) {
113
- return _activePolicies[riskId].size();
112
+ return LibNftIdSet.size(_activePolicies[riskId]);
114
113
  }
115
114
 
116
115
  function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
117
- return _activePolicies[riskId].getElementAt(idx);
116
+ return LibNftIdSet.getElementAt(_activePolicies[riskId], idx);
118
117
  }
119
118
  }
@@ -65,6 +65,7 @@ contract ObjectLifecycle is
65
65
 
66
66
  function _setupClaimLifecycle() private {
67
67
  setInitialState(CLAIM(), SUBMITTED());
68
+ setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
68
69
  setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
69
70
  setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
70
71
  setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
@@ -72,8 +73,8 @@ contract ObjectLifecycle is
72
73
 
73
74
  function _setupPayoutLifecycle() private {
74
75
  setInitialState(PAYOUT(), EXPECTED());
75
- // TODO: add state cancelled
76
76
  setStateTransition(PAYOUT(), EXPECTED(), PAID());
77
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
77
78
  }
78
79
 
79
80
  function _setupRiskLifecycle() private {
@@ -3,7 +3,6 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Cloneable} from "./Cloneable.sol";
5
5
 
6
- import {IInstance} from "../IInstance.sol";
7
6
  import {LibKey32Set} from "../../type/Key32Set.sol";
8
7
  import {NftId} from "../../type/NftId.sol";
9
8
  import {Key32} from "../../type/Key32.sol";
@@ -19,21 +18,21 @@ contract ObjectSet is
19
18
 
20
19
  mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
21
20
  mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
22
- IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
21
+ address internal _instanceAddress;
23
22
 
24
23
  /// @dev This initializer needs to be called from the instance itself.
25
- function initialize()
24
+ function initialize(address authority, address registry)
26
25
  external
27
26
  initializer()
28
27
  {
29
- _instance = IInstance(msg.sender);
30
- __Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
28
+ _instanceAddress = msg.sender;
29
+ __Cloneable_init(authority, registry);
31
30
 
32
- emit LogObjectSetInitialized(address(_instance));
31
+ emit LogObjectSetInitialized(address(_instanceAddress));
33
32
  }
34
33
 
35
- function getInstance() external view returns (IInstance) {
36
- return _instance;
34
+ function getInstanceAddress() external view returns (address) {
35
+ return _instanceAddress;
37
36
  }
38
37
 
39
38
  function _add(NftId componentNftId, Key32 key) internal {
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../module/IBundle.sol";
5
+ import {IInstance} from "../IInstance.sol";
6
+ import {IRisk} from "../module/IRisk.sol";
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+
10
+
11
+ library ObjectSetHelperLib {
12
+
13
+ function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
14
+
15
+ return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
16
+ }
17
+
18
+ function getProductNftId(address instanceAddress, RiskId riskId) public view returns (NftId) {
19
+ return getRiskInfo(instanceAddress, riskId).productNftId;
20
+ }
21
+
22
+ function getBundleInfo(address instanceAddress, NftId bundleNftId) public view returns (IBundle.BundleInfo memory) {
23
+ return IInstance(instanceAddress).getInstanceReader().getBundleInfo(bundleNftId);
24
+ }
25
+
26
+ function getPoolNftId(address instanceAddress, NftId bundleNftId) public view returns (NftId) {
27
+ return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
28
+ }
29
+
30
+ }
@@ -27,14 +27,6 @@ interface IComponents {
27
27
  NftId poolNftId; // mandatory
28
28
  NftId distributionNftId; // 0..1 (optional)
29
29
  NftId [] oracleNftId; // 0..n (optional)
30
- // TODO: remove those fields
31
- Fee productFee; // product fee on net premium
32
- Fee processingFee; // product fee on payout amounts
33
- Fee distributionFee; // distribution fee for sales that do not include commissions
34
- Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
35
- Fee poolFee; // pool fee on net premium
36
- Fee stakingFee; // pool fee on staked capital from investor
37
- Fee performanceFee; // pool fee on profits from capital investors
38
30
  }
39
31
 
40
32
  struct FeeInfo {
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {Amount} from "../../type/Amount.sol";
5
5
  import {DistributorType} from "../../type/DistributorType.sol";
6
6
  import {NftId} from "../../type/NftId.sol";
7
+ import {Seconds} from "../../type/Seconds.sol";
7
8
  import {Timestamp} from "../../type/Timestamp.sol";
8
9
  import {UFixed} from "../../type/UFixed.sol";
9
10
 
@@ -15,7 +16,7 @@ interface IDistribution {
15
16
  UFixed maxDiscountPercentage;
16
17
  UFixed commissionPercentage;
17
18
  uint32 maxReferralCount;
18
- uint32 maxReferralLifetime;
19
+ Seconds maxReferralLifetime;
19
20
  bool allowSelfReferrals;
20
21
  bool allowRenewals;
21
22
  bytes data;
@@ -2,11 +2,13 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
7
8
 
8
9
  struct RiskInfo {
9
10
  NftId productNftId;
11
+ Timestamp createdAt;
10
12
  bytes data;
11
13
  }
12
14
  }
@@ -15,18 +15,9 @@ contract BasicOracleAuthorization
15
15
  {
16
16
 
17
17
  constructor(string memory componentName)
18
- Authorization(componentName)
18
+ Authorization(componentName, ORACLE())
19
19
  {}
20
20
 
21
- function _setupTargets()
22
- internal
23
- virtual override
24
- {
25
- // basic component target
26
- _addComponentTargetWithRole(ORACLE());
27
- }
28
-
29
-
30
21
  function _setupTargetAuthorizations()
31
22
  internal
32
23
  virtual override
@@ -34,12 +25,12 @@ contract BasicOracleAuthorization
34
25
  IAccess.FunctionInfo[] storage functions;
35
26
 
36
27
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), getServiceRole(ORACLE()));
28
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
38
29
  _authorize(functions, IOracle.request.selector, "request");
39
30
  _authorize(functions, IOracle.cancel.selector, "cancel");
40
31
 
41
32
  // authorize public role (open access to any account, only allows to lock target)
42
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
33
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
43
34
  _authorize(functions, BasicOracle.respond.selector, "respond");
44
35
  }
45
36
  }
@@ -69,7 +69,7 @@ abstract contract Oracle is
69
69
  override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
70
  onlyOwner()
71
71
  restricted()
72
- returns (Amount withdrawnAmount)
72
+ returns (Amount)
73
73
  {
74
74
  revert ErrorOracleNotImplemented("withdrawFees");
75
75
  }
@@ -32,11 +32,11 @@ contract OracleService is
32
32
  initializer()
33
33
  {
34
34
  (
35
- address registryAddress,
36
- address authority
35
+ address authority,
36
+ address registry
37
37
  ) = abi.decode(data, (address, address));
38
38
 
39
- _initializeService(registryAddress, authority, owner);
39
+ __Service_init(authority, registry, owner);
40
40
  _registerInterface(type(IOracleService).interfaceId);
41
41
  }
42
42
 
@@ -52,11 +52,10 @@ contract OracleService is
52
52
  onlyNftOfType(oracleNftId, ORACLE())
53
53
  returns (RequestId requestId)
54
54
  {
55
- // IRegistry registry = getRegistry();
56
-
55
+ // checks
57
56
  // get and check active caller
58
57
  (
59
- IRegistry.ObjectInfo memory info,
58
+ IRegistry.ObjectInfo memory requesterInfo,
60
59
  address instance
61
60
  ) = ContractLib.getAndVerifyAnyComponent(
62
61
  getRegistry(), msg.sender, true);
@@ -65,8 +64,9 @@ contract OracleService is
65
64
  NftId requesterNftId,
66
65
  IOracleComponent oracle
67
66
  ) = _checkRequestParams(
68
- getRegistry(), oracleNftId, info, expiryAt, callbackMethodName);
67
+ getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
69
68
 
69
+ // effects
70
70
  {
71
71
  // create request info
72
72
  IOracle.RequestInfo memory request = IOracle.RequestInfo({
@@ -84,14 +84,15 @@ contract OracleService is
84
84
  requestId = IInstance(instance).getInstanceStore().createRequest(request);
85
85
  }
86
86
 
87
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
88
+
89
+ // interactions
87
90
  // callback to oracle component
88
91
  oracle.request(
89
92
  requestId,
90
93
  requesterNftId,
91
94
  requestData,
92
95
  expiryAt);
93
-
94
- emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
95
96
  }
96
97
 
97
98
 
@@ -220,7 +221,7 @@ contract OracleService is
220
221
  function _checkRequestParams(
221
222
  IRegistry registry,
222
223
  NftId oracleNftId,
223
- IRegistry.ObjectInfo memory info,
224
+ IRegistry.ObjectInfo memory requesterInfo,
224
225
  Timestamp expiryAt,
225
226
  string memory callbackMethodName
226
227
  )
@@ -237,17 +238,17 @@ contract OracleService is
237
238
  registry, oracleNftId, true);
238
239
 
239
240
  // obtain return values
240
- requesterNftId = info.nftId;
241
+ requesterNftId = requesterInfo.nftId;
241
242
  oracle = IOracleComponent(oracleInfo.objectAddress);
242
243
 
243
244
  // check that requester and oracle share same product cluster
244
- if (info.objectType == PRODUCT()) {
245
+ if (requesterInfo.objectType == PRODUCT()) {
245
246
  if (oracleInfo.parentNftId != requesterNftId) {
246
- revert ErrorOracleServiceProductMismatch(info.objectType, requesterNftId, oracleInfo.parentNftId);
247
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
247
248
  }
248
249
  } else {
249
- if (oracleInfo.parentNftId != info.parentNftId) {
250
- revert ErrorOracleServiceProductMismatch(info.objectType, info.parentNftId, oracleInfo.parentNftId);
250
+ if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
251
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
251
252
  }
252
253
  }
253
254
 
@@ -17,7 +17,7 @@ contract OracleServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  OracleService svc = new OracleService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -1,14 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Authorization} from "../authorization/Authorization.sol";
5
- import {BasicPool} from "./BasicPool.sol";
6
4
  import {IAccess} from "../authorization/IAccess.sol";
7
5
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
6
  import {IPoolComponent} from "./IPoolComponent.sol";
9
- import {POOL} from "../type/ObjectType.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {BasicPool} from "./BasicPool.sol";
10
+ import {COMPONENT, POOL} from "../type/ObjectType.sol";
10
11
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
11
12
  import {RoleId} from "../type/RoleId.sol";
13
+ import {TokenHandler} from "../shared/TokenHandler.sol";
12
14
 
13
15
 
14
16
  contract BasicPoolAuthorization
@@ -16,23 +18,30 @@ contract BasicPoolAuthorization
16
18
  {
17
19
 
18
20
  constructor(string memory poolName)
19
- Authorization(poolName)
21
+ Authorization(poolName, POOL())
20
22
  {}
21
23
 
22
24
  function _setupServiceTargets()
23
25
  internal
24
26
  virtual override
25
27
  {
28
+ _addServiceTargetWithRole(COMPONENT());
26
29
  _addServiceTargetWithRole(POOL());
27
30
  }
28
31
 
29
- function _setupTargets()
30
- internal
31
- virtual override
32
- {
33
- _addComponentTargetWithRole(POOL()); // basic pool target
34
- }
32
+ function _setupTokenHandlerAuthorizations() internal virtual override {
33
+ // authorize token handler functions for component service role
34
+ IAccess.FunctionInfo[] storage functions;
35
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
36
+ _authorize(functions, TokenHandler.approve.selector, "approve");
37
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
38
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
35
39
 
40
+ // authorize token handler functions for pool service role
41
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POOL()));
42
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
43
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
44
+ }
36
45
 
37
46
  function _setupTargetAuthorizations()
38
47
  internal
@@ -41,7 +50,7 @@ contract BasicPoolAuthorization
41
50
  IAccess.FunctionInfo[] storage functions;
42
51
 
43
52
  // authorize public role (open access to any account, only allows to lock target)
44
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
53
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
45
54
  _authorize(functions, BasicPool.stake.selector, "stake");
46
55
  _authorize(functions, BasicPool.unstake.selector, "unstake");
47
56
  _authorize(functions, BasicPool.extend.selector, "extend");
@@ -57,11 +66,10 @@ contract BasicPoolAuthorization
57
66
  _authorize(functions, BasicPool.extend.selector, "extend");
58
67
 
59
68
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
60
-
61
69
  _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
62
70
 
63
71
  // authorize pool service
64
- functions = _authorizeForTarget(getTargetName(), getServiceRole(POOL()));
72
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(POOL()));
65
73
  _authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
66
74
  }
67
75
  }