@etherisc/gif-next 0.0.2-8bdd2eb-413 → 0.0.2-8c1d8cd-727

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 (528) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/{shared/AccessManagerCustom.sol/AccessManagerCustom.json → authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json} +28 -25
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +133 -501
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +319 -229
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +115 -103
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +164 -210
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +194 -47
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2077 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +105 -103
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +163 -111
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +108 -243
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1210 -265
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +682 -189
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +210 -268
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -95
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +502 -282
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  90. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  92. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  94. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  96. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  98. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  100. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  102. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  104. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  106. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  108. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  110. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  112. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +517 -157
  114. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +176 -88
  116. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +271 -1
  118. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +125 -319
  120. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +410 -192
  122. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/Pool.sol/Pool.json +165 -632
  124. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +524 -331
  126. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -83
  128. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +95 -158
  130. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +79 -91
  132. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  134. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  136. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +322 -169
  138. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +126 -98
  140. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +47 -0
  142. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +189 -6
  144. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +336 -118
  146. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +127 -85
  148. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +154 -137
  150. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  151. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -2
  152. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +451 -295
  154. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +123 -95
  156. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.json +207 -283
  158. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -112
  160. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  161. package/artifacts/contracts/product/Product.sol/Product.json +168 -434
  162. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  164. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  166. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  168. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +311 -55
  170. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +55 -146
  172. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  174. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/Registry.sol/Registry.json +537 -112
  176. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1640 -161
  178. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +96 -265
  180. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +74 -70
  182. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  184. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  186. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  188. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  190. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  191. package/artifacts/contracts/shared/Component.sol/Component.json +65 -236
  192. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +532 -239
  194. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -110
  196. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +51 -103
  198. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  200. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
  202. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +487 -12
  204. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +98 -80
  206. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  208. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  210. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  212. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  214. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  216. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IService.sol/IService.json +42 -0
  219. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  221. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +111 -318
  223. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  224. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  225. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  226. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  227. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  228. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  229. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  231. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  232. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  233. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  235. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  236. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  237. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Service.sol/Service.json +51 -103
  239. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  240. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  241. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  242. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  243. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  244. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
  245. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  246. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +78 -28
  247. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +97 -101
  249. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  250. package/artifacts/contracts/staking/Staking.sol/Staking.json +168 -325
  251. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  253. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +103 -104
  255. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  256. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  257. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +123 -198
  259. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  260. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +76 -92
  261. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +241 -147
  263. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  264. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  265. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  266. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  267. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  269. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  271. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  273. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  275. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  277. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  279. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  281. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  282. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  283. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  285. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  287. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  289. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  291. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  293. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  295. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  297. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  299. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  301. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  303. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  305. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  307. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  309. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  311. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  313. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  315. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  316. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  317. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  318. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  319. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  320. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  321. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  322. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  323. package/contracts/authorization/AccessAdmin.sol +596 -0
  324. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  325. package/contracts/authorization/Authorization.sol +289 -0
  326. package/contracts/authorization/IAccess.sol +49 -0
  327. package/contracts/authorization/IAccessAdmin.sol +137 -0
  328. package/contracts/authorization/IAuthorization.sol +60 -0
  329. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  330. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  331. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  332. package/contracts/distribution/BasicDistribution.sol +139 -0
  333. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  334. package/contracts/distribution/Distribution.sol +140 -116
  335. package/contracts/distribution/DistributionService.sol +140 -83
  336. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  337. package/contracts/distribution/IDistributionComponent.sol +26 -40
  338. package/contracts/distribution/IDistributionService.sol +23 -3
  339. package/contracts/examples/fire/DamageLevel.sol +59 -0
  340. package/contracts/examples/fire/FirePool.sol +75 -0
  341. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  342. package/contracts/examples/fire/FireProduct.sol +418 -0
  343. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  344. package/contracts/examples/fire/FireUSD.sol +26 -0
  345. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  346. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  347. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  348. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  349. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  350. package/contracts/instance/IInstance.sol +28 -41
  351. package/contracts/instance/IInstanceService.sol +27 -36
  352. package/contracts/instance/Instance.sol +124 -127
  353. package/contracts/instance/InstanceAdmin.sol +216 -270
  354. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  355. package/contracts/instance/InstanceReader.sol +162 -32
  356. package/contracts/instance/InstanceService.sol +177 -128
  357. package/contracts/instance/InstanceServiceManager.sol +8 -13
  358. package/contracts/instance/InstanceStore.sol +49 -22
  359. package/contracts/instance/base/BalanceStore.sol +11 -6
  360. package/contracts/instance/base/Cloneable.sol +2 -25
  361. package/contracts/instance/base/ObjectCounter.sol +21 -0
  362. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  363. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  364. package/contracts/instance/module/IBundle.sol +1 -1
  365. package/contracts/instance/module/IComponents.sol +10 -11
  366. package/contracts/instance/module/IDistribution.sol +0 -1
  367. package/contracts/instance/module/IPolicy.sol +24 -24
  368. package/contracts/mock/Dip.sol +1 -1
  369. package/contracts/oracle/BasicOracle.sol +47 -0
  370. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  371. package/contracts/oracle/IOracle.sol +36 -0
  372. package/contracts/oracle/IOracleComponent.sol +33 -0
  373. package/contracts/oracle/IOracleService.sol +66 -0
  374. package/contracts/oracle/Oracle.sol +156 -0
  375. package/contracts/oracle/OracleService.sol +291 -0
  376. package/contracts/oracle/OracleServiceManager.sol +39 -0
  377. package/contracts/pool/BasicPool.sol +154 -0
  378. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  379. package/contracts/pool/BundleService.sol +284 -87
  380. package/contracts/pool/BundleServiceManager.sol +8 -11
  381. package/contracts/pool/IBundleService.sol +42 -5
  382. package/contracts/pool/IPoolComponent.sol +24 -68
  383. package/contracts/pool/IPoolService.sol +56 -39
  384. package/contracts/pool/Pool.sol +184 -148
  385. package/contracts/pool/PoolService.sol +262 -171
  386. package/contracts/pool/PoolServiceManager.sol +6 -9
  387. package/contracts/product/ApplicationService.sol +75 -70
  388. package/contracts/product/ApplicationServiceManager.sol +6 -6
  389. package/contracts/product/BasicProduct.sol +53 -0
  390. package/contracts/product/BasicProductAuthorization.sol +42 -0
  391. package/contracts/product/ClaimService.sol +321 -151
  392. package/contracts/product/ClaimServiceManager.sol +6 -6
  393. package/contracts/product/IApplicationService.sol +1 -0
  394. package/contracts/product/IClaimService.sol +34 -4
  395. package/contracts/product/IPolicyService.sol +34 -32
  396. package/contracts/product/IPricingService.sol +10 -10
  397. package/contracts/product/IProductComponent.sol +26 -9
  398. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  399. package/contracts/product/PolicyService.sol +424 -202
  400. package/contracts/product/PolicyServiceManager.sol +6 -9
  401. package/contracts/product/PricingService.sol +59 -60
  402. package/contracts/product/PricingServiceManager.sol +5 -8
  403. package/contracts/product/Product.sol +211 -133
  404. package/contracts/product/{ProductService.sol → RiskService.sol} +18 -46
  405. package/contracts/product/RiskServiceManager.sol +39 -0
  406. package/contracts/registry/ChainNft.sol +68 -38
  407. package/contracts/registry/IRegistry.sol +69 -22
  408. package/contracts/registry/IRegistryService.sol +3 -10
  409. package/contracts/registry/ITransferInterceptor.sol +1 -2
  410. package/contracts/registry/Registry.sol +354 -213
  411. package/contracts/registry/RegistryAdmin.sol +360 -149
  412. package/contracts/registry/RegistryService.sol +44 -69
  413. package/contracts/registry/RegistryServiceManager.sol +4 -9
  414. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  415. package/contracts/registry/ReleaseRegistry.sol +501 -0
  416. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  417. package/contracts/registry/TokenRegistry.sol +2 -2
  418. package/contracts/shared/Component.sol +48 -61
  419. package/contracts/shared/ComponentService.sol +322 -173
  420. package/contracts/shared/ComponentServiceManager.sol +10 -7
  421. package/contracts/shared/ComponentVerifyingService.sol +36 -21
  422. package/contracts/shared/ContractLib.sol +38 -0
  423. package/contracts/shared/IComponent.sol +10 -6
  424. package/contracts/shared/IComponentService.sol +40 -11
  425. package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
  426. package/contracts/shared/IKeyValueStore.sol +1 -0
  427. package/contracts/shared/ILifecycle.sol +3 -2
  428. package/contracts/shared/INftOwnable.sol +2 -0
  429. package/contracts/shared/IPolicyHolder.sol +12 -22
  430. package/contracts/shared/IRegisterable.sol +11 -0
  431. package/contracts/shared/IService.sol +8 -1
  432. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  433. package/contracts/shared/InstanceLinkedComponent.sol +106 -37
  434. package/contracts/shared/KeyValueStore.sol +7 -3
  435. package/contracts/shared/Lifecycle.sol +30 -63
  436. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  437. package/contracts/shared/NftOwnable.sol +29 -9
  438. package/contracts/shared/PolicyHolder.sol +17 -57
  439. package/contracts/shared/Registerable.sol +19 -9
  440. package/contracts/shared/RegistryLinked.sol +3 -2
  441. package/contracts/shared/Service.sol +43 -36
  442. package/contracts/shared/TokenHandler.sol +100 -19
  443. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  444. package/contracts/staking/IStaking.sol +3 -3
  445. package/contracts/staking/IStakingService.sol +22 -14
  446. package/contracts/staking/StakeManagerLib.sol +70 -25
  447. package/contracts/staking/Staking.sol +86 -140
  448. package/contracts/staking/StakingLifecycle.sol +23 -0
  449. package/contracts/staking/StakingManager.sol +10 -12
  450. package/contracts/staking/StakingReader.sol +23 -20
  451. package/contracts/staking/StakingService.sol +69 -82
  452. package/contracts/staking/StakingServiceManager.sol +4 -5
  453. package/contracts/staking/StakingStore.sol +93 -60
  454. package/contracts/staking/TargetManagerLib.sol +7 -3
  455. package/contracts/type/Amount.sol +27 -5
  456. package/contracts/type/Blocknumber.sol +7 -1
  457. package/contracts/type/ClaimId.sol +6 -1
  458. package/contracts/type/NftId.sol +1 -0
  459. package/contracts/type/ObjectType.sol +175 -68
  460. package/contracts/type/PayoutId.sol +10 -10
  461. package/contracts/type/Referral.sol +1 -0
  462. package/contracts/type/RequestId.sol +75 -0
  463. package/contracts/type/RiskId.sol +15 -1
  464. package/contracts/type/RoleId.sol +97 -78
  465. package/contracts/type/Seconds.sol +21 -1
  466. package/contracts/type/Selector.sol +102 -0
  467. package/contracts/type/StateId.sol +27 -1
  468. package/contracts/type/String.sol +53 -0
  469. package/contracts/type/Timestamp.sol +17 -3
  470. package/contracts/type/UFixed.sol +38 -9
  471. package/contracts/type/Version.sol +3 -1
  472. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  473. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  474. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  475. package/package.json +9 -5
  476. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  477. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  478. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  479. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
  480. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  481. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  482. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  483. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  484. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  485. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  486. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  487. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  488. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  489. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  490. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  491. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  492. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  493. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  494. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  495. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  496. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  497. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  498. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  499. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  500. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  501. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  502. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  503. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  504. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  505. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  506. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  507. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  508. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  509. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  510. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  511. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  512. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  513. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  514. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  515. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  516. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
  517. package/contracts/product/ProductServiceManager.sol +0 -42
  518. package/contracts/registry/ReleaseManager.sol +0 -599
  519. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  520. package/contracts/shared/AccessManagerCustom.sol +0 -736
  521. package/contracts/shared/AccessManagerExtended.sol +0 -470
  522. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  523. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  524. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  525. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  526. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  527. package/contracts/shared/InitializableCustom.sol +0 -177
  528. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -3,18 +3,16 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
+ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
6
7
 
7
- import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
10
-
11
- import {Versionable} from "./Versionable.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
12
9
  import {IService} from "./IService.sol";
13
- import {IVersionable} from "./IVersionable.sol";
14
- import {Versionable} from "./Versionable.sol";
10
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
11
+ import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
15
12
  import {Registerable} from "./Registerable.sol";
16
-
17
- import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
+ import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
15
+ import {Versionable} from "../upgradeability/Versionable.sol";
18
16
 
19
17
 
20
18
  /// @dev service base contract
@@ -22,56 +20,65 @@ abstract contract Service is
22
20
  Registerable,
23
21
  Versionable,
24
22
  AccessManagedUpgradeable,
23
+ ReentrancyGuardUpgradeable,
25
24
  IService
26
25
  {
27
26
 
28
- uint8 private constant GIF_MAJOR_VERSION = 3;
29
-
30
- // from Versionable
31
- function getVersion()
32
- public
33
- pure
34
- virtual override (IVersionable, Versionable)
35
- returns(Version)
36
- {
37
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
38
- }
39
-
40
- function initializeService(
27
+ function _initializeService(
41
28
  address registry,
42
29
  address authority, // real authority for registry service adress(0) for other services
43
30
  address initialOwner
44
31
  )
45
- public
32
+ internal
46
33
  virtual
47
34
  onlyInitializing()
48
35
  {
49
- initializeRegisterable(
50
- registry,
51
- IRegistry(registry).getNftId(),
52
- SERVICE(),
53
- false, // is interceptor
54
- initialOwner,
55
- ""); // data
36
+ __ReentrancyGuard_init();
56
37
 
57
38
  // externally provided authority
58
39
  if(authority != address(0)) {
59
40
  __AccessManaged_init(authority);
60
41
  } else {
61
- address registryServiceAddress = getRegistry().getServiceAddress(
62
- REGISTRY(),
63
- VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
42
+ address registryServiceAddress = _getServiceAddress(REGISTRY());
64
43
 
65
44
  // copy authority from already registered registry services
66
45
  __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
67
46
  }
68
47
 
69
- registerInterface(type(IAccessManaged).interfaceId);
70
- registerInterface(type(IService).interfaceId);
48
+ _initializeRegisterable(
49
+ registry,
50
+ IRegistry(registry).getNftId(),
51
+ SERVICE(),
52
+ false, // is interceptor
53
+ initialOwner,
54
+ ""); // data
55
+
56
+
57
+ _registerInterface(type(IAccessManaged).interfaceId);
58
+ _registerInterface(type(IService).interfaceId);
59
+ }
60
+
61
+ function getDomain() external virtual pure returns(ObjectType serviceDomain) {
62
+ return _getDomain();
63
+ }
64
+
65
+ function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
66
+ return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
67
+ }
68
+
69
+ /// @inheritdoc IVersionable
70
+ function getVersion()
71
+ public
72
+ pure
73
+ virtual override (IVersionable, Versionable)
74
+ returns(Version)
75
+ {
76
+ return VersionLib.toVersion(GIF_RELEASE,0,0);
71
77
  }
72
78
 
79
+ function _getDomain() internal virtual pure returns (ObjectType);
73
80
 
74
81
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
75
- return getRegistry().getServiceAddress(domain, getVersion().toMajorPart());
82
+ return getRegistry().getServiceAddress(domain, getRelease());
76
83
  }
77
84
  }
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
4
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
6
  import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
7
 
@@ -9,50 +10,130 @@ import {Amount} from "../type/Amount.sol";
9
10
  /// @dev token specific transfer helper
10
11
  /// a default token contract is provided via contract constructor
11
12
  /// relies internally on oz SafeERC20.safeTransferFrom
12
- contract TokenHandler {
13
+ contract TokenHandler is AccessManaged {
14
+ error ErrorTokenHandlerAmountIsZero();
15
+ error ErrorTokenHandlerBalanceTooLow(address token, address from, uint256 balance, uint256 expectedBalance);
16
+ error ErrorTokenHandlerAllowanceTooSmall(address token, address from, address spender, uint256 allowance, uint256 expectedAllowance);
17
+ error ErrorTokenHandlerRecipientWalletsMustBeDistinct(address to, address to2, address to3);
18
+
19
+ event LogTokenHandlerTokenTransfer(address token, address from, address to, uint256 amountTransferred);
20
+
13
21
  IERC20Metadata private _token;
14
22
 
15
- constructor(address token) {
23
+ constructor(address token, address initialAuthority) AccessManaged(initialAuthority) {
16
24
  _token = IERC20Metadata(token);
17
25
  }
18
26
 
19
- /// @dev transfer amount default tokens
20
- function transfer(
27
+ /// @dev returns the default token defined for this TokenHandler
28
+ function getToken()
29
+ external
30
+ view
31
+ returns (IERC20Metadata)
32
+ {
33
+ return _token;
34
+ }
35
+
36
+ /// @dev collect tokens from outside of the gif and transfer them to one wallet within the scope of gif.
37
+ /// This method also checks balance and allowance and makes sure the amount is greater than zero.
38
+ function collectTokens(
21
39
  address from,
22
40
  address to,
23
41
  Amount amount
24
42
  )
25
43
  external
44
+ restricted()
26
45
  {
27
- SafeERC20.safeTransferFrom(
28
- _token,
29
- from,
30
- to,
31
- amount.toInt());
46
+ _transfer(from, to, amount, true);
32
47
  }
33
48
 
34
- /// @dev transfer amount of the specified token
35
- function safeTransferFrom(
36
- address token,
49
+ /// @dev collect tokens from outside of the gif and transfer them to three distinct wallets within the scope of gif
50
+ /// This method also checks balance and allowance and makes sure the amount is greater than zero.
51
+ function collectTokensToThreeRecipients(
52
+ address from,
53
+ address to,
54
+ Amount amount,
55
+ address to2,
56
+ Amount amount2,
57
+ address to3,
58
+ Amount amount3
59
+ )
60
+ external
61
+ restricted()
62
+ {
63
+ if (to == to2 || to == to3 || to2 == to3) {
64
+ revert ErrorTokenHandlerRecipientWalletsMustBeDistinct(to, to2, to3);
65
+ }
66
+
67
+ _checkPreconditions(from, amount + amount2 + amount3);
68
+
69
+ if (amount.gtz()) {
70
+ _transfer(from, to, amount, false);
71
+ }
72
+ if (amount2.gtz()) {
73
+ _transfer(from, to2, amount2, false);
74
+ }
75
+ if (amount3.gtz()) {
76
+ _transfer(from, to3, amount3, false);
77
+ }
78
+ }
79
+
80
+ /// @dev distribute tokens from a wallet within the scope of gif to an external address.
81
+ /// This method also checks balance and allowance and makes sure the amount is greater than zero.
82
+ function distributeTokens(
37
83
  address from,
38
84
  address to,
39
85
  Amount amount
40
86
  )
41
87
  external
88
+ restricted()
89
+ {
90
+ _transfer(from, to, amount, true);
91
+ }
92
+
93
+ function _transfer(
94
+ address from,
95
+ address to,
96
+ Amount amount,
97
+ bool checkPreconditions
98
+ )
99
+ internal
42
100
  {
101
+ if (checkPreconditions) {
102
+ // check amount > 0, balance >= amount and allowance >= amount
103
+ _checkPreconditions(from, amount);
104
+ }
105
+
106
+ // transfer the tokens
107
+ emit LogTokenHandlerTokenTransfer(address(_token), from, to, amount.toInt());
43
108
  SafeERC20.safeTransferFrom(
44
- IERC20Metadata(token),
109
+ _token,
45
110
  from,
46
111
  to,
47
112
  amount.toInt());
48
113
  }
49
114
 
50
- /// @dev returns the default token defined for this TokenHandler
51
- function getToken()
52
- external
53
- view
54
- returns (IERC20Metadata)
115
+ function _checkPreconditions(
116
+ address from,
117
+ Amount amount
118
+ )
119
+ internal
120
+ view
55
121
  {
56
- return _token;
122
+ // amount must be greater than zero
123
+ if (amount.eqz()) {
124
+ revert ErrorTokenHandlerAmountIsZero();
125
+ }
126
+
127
+ // balance must be >= amount
128
+ uint256 balance = _token.balanceOf(from);
129
+ if (balance < amount.toInt()) {
130
+ revert ErrorTokenHandlerBalanceTooLow(address(_token), from, balance, amount.toInt());
131
+ }
132
+
133
+ // allowance must be >= amount
134
+ uint256 allowance = _token.allowance(from, address(this));
135
+ if (allowance < amount.toInt()) {
136
+ revert ErrorTokenHandlerAllowanceTooSmall(address(_token), from, address(this), allowance, amount.toInt());
137
+ }
57
138
  }
58
139
  }
@@ -0,0 +1,12 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {TokenHandler} from "./TokenHandler.sol";
5
+
6
+ library TokenHandlerDeployerLib {
7
+
8
+ function deployTokenHandler(address token, address authority) public returns (TokenHandler) {
9
+ return new TokenHandler(address(token), authority);
10
+ }
11
+
12
+ }
@@ -3,9 +3,8 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
5
  import {IComponent} from "../shared/IComponent.sol";
6
- import {IVersionable} from "../shared/IVersionable.sol";
6
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
7
7
  import {NftId} from "../type/NftId.sol";
8
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
9
8
  import {ObjectType} from "../type/ObjectType.sol";
10
9
  import {Seconds} from "../type/Seconds.sol";
11
10
  import {StakingReader} from "./StakingReader.sol";
@@ -43,8 +42,9 @@ interface IStaking is
43
42
  error ErrorStakingTargetNftIdZero();
44
43
  error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
45
44
  error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
46
- error ErrorStakingLockingPeriodZero(NftId targetNftId);
45
+ error ErrorStakingLockingPeriodTooShort(NftId targetNftId, Seconds minLockingPeriod, Seconds lockingPeriod);
47
46
  error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
47
+ error ErrorStakingStakeLocked(NftId stakeNftId, Timestamp lockedUntil);
48
48
  error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
49
49
  error ErrorStakingTargetNotFound(NftId targetNftId);
50
50
  error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
@@ -7,9 +7,7 @@ import {Amount} from "../type/Amount.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
8
  import {IStaking} from "./IStaking.sol";
9
9
  import {NftId} from "../type/NftId.sol";
10
- import {ObjectType} from "../type/ObjectType.sol";
11
10
  import {Seconds} from "../type/Seconds.sol";
12
- import {Timestamp} from "../type/Timestamp.sol";
13
11
  import {TokenHandler} from "../shared/TokenHandler.sol";
14
12
  import {UFixed} from "../type/UFixed.sol";
15
13
 
@@ -33,7 +31,6 @@ interface IStakingService is IService
33
31
  event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
34
32
 
35
33
  // modifiers
36
- error ErrorStakingServiceNotNftOwner(NftId nftId, address expectedOwner, address owner);
37
34
  error ErrorStakingServiceNotStaking(address stakingAddress);
38
35
  error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
39
36
 
@@ -44,6 +41,13 @@ interface IStakingService is IService
44
41
  error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
45
42
  error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
46
43
 
44
+ /// @dev Set the protocol reward rate stake locking period to the specified duration.
45
+ /// Permissioned: only staking owner
46
+ // TODO implement
47
+ // function setProtocolRewardRate(UFixed rewardRate) external;
48
+ // function setProtocolLockingPeriod(Seconds lockingPeriod) external;
49
+ // TODO also make sure that protocol rewards can be refilled and withdrawn
50
+
47
51
  /// @dev creates/registers an on-chain instance staking target.
48
52
  /// function granted to instance service
49
53
  function createInstanceTarget(
@@ -52,21 +56,25 @@ interface IStakingService is IService
52
56
  UFixed initialRewardRate
53
57
  ) external;
54
58
 
55
- /// @dev set the stake locking period to the specified duration.
56
- /// permissioned: only the owner of the specified target may set the locking period
57
- function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
59
+ /// @dev Set the instance stake locking period to the specified duration.
60
+ /// Permissioned: Only owner of the specified target.
61
+ function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod) external;
62
+
63
+ /// @dev Set the instance reward rate to the specified value.
64
+ /// Permissioned: Only owner of the specified target.
65
+ function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
58
66
 
59
- /// @dev set the reward rate to the specified value
60
- /// permissioned: only the owner of the specified target may set the locking period
61
- function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
67
+ /// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
68
+ /// unpermissioned: anybody may fill up staking reward reserves
69
+ function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
62
70
 
63
- /// @dev (re)fills the staking reward reserves for the specified target
71
+ /// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the sender
64
72
  /// unpermissioned: anybody may fill up staking reward reserves
65
- function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
73
+ function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
66
74
 
67
- /// @dev defunds the staking reward reserves for the specified target
68
- /// permissioned: only the target owner may call this function
69
- function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
75
+ /// @dev Defunds the staking reward reserves for the specified target
76
+ /// Permissioned: only the target owner may call this function
77
+ function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount) external returns (Amount newBalance);
70
78
 
71
79
  /// @dev create a new stake with amount DIP to the specified target
72
80
  /// returns the id of the newly minted stake nft
@@ -13,12 +13,64 @@ import {NftId} from "../type/NftId.sol";
13
13
  import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
14
14
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
15
  import {StakingReader} from "./StakingReader.sol";
16
+ import {StakingStore} from "./StakingStore.sol";
16
17
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
17
18
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
18
19
 
19
20
 
20
21
  library StakeManagerLib {
21
22
 
23
+ function stake(
24
+ IRegistry registry,
25
+ StakingReader stakingReader,
26
+ StakingStore stakingStore,
27
+ NftId stakeNftId,
28
+ Amount stakeAmount
29
+ )
30
+ external
31
+ returns (Amount stakeBalance)
32
+ {
33
+ // check that target is active for staking
34
+ (
35
+ UFixed rewardRate,
36
+ Seconds lockingPeriod
37
+ ) = checkStakeParameters(
38
+ stakingReader,
39
+ stakeNftId);
40
+
41
+ // calculate new rewards (if any)
42
+ (
43
+ Amount rewardIncrementAmount,
44
+ Amount currentTotalDipAmount
45
+ ) = calculateRewardIncrease(
46
+ stakingReader,
47
+ stakeNftId,
48
+ rewardRate);
49
+
50
+ stakeBalance = currentTotalDipAmount + stakeAmount;
51
+
52
+ // TODO check that additional dip, rewards and rewards increment
53
+ // are still ok with max target staking amount
54
+ NftId targetNftId = registry.getObjectInfo(stakeNftId).parentNftId;
55
+
56
+ stakingStore.restakeRewards(
57
+ stakeNftId,
58
+ targetNftId,
59
+ rewardIncrementAmount);
60
+
61
+ stakingStore.increaseStake(
62
+ stakeNftId,
63
+ targetNftId,
64
+ stakeAmount);
65
+
66
+ // update locked until with target locking period
67
+ stakingStore.update(
68
+ stakeNftId,
69
+ IStaking.StakeInfo({
70
+ lockedUntil: TimestampLib.blockTimestamp().addSeconds(
71
+ lockingPeriod)}));
72
+
73
+ }
22
74
 
23
75
  function checkCreateParameters(
24
76
  StakingReader stakingReader,
@@ -62,6 +114,24 @@ library StakeManagerLib {
62
114
  lockingPeriod = info.lockingPeriod;
63
115
  }
64
116
 
117
+ function checkUnstakeParameters(
118
+ StakingReader stakingReader,
119
+ NftId stakeNftId
120
+ )
121
+ public
122
+ view
123
+ returns (
124
+ UFixed rewardRate,
125
+ Seconds lockingPeriod
126
+ )
127
+ {
128
+ IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
129
+
130
+ if (stakeInfo.lockedUntil > TimestampLib.blockTimestamp()) {
131
+ revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
132
+ }
133
+ }
134
+
65
135
 
66
136
  function checkTarget(
67
137
  StakingReader stakingReader,
@@ -101,31 +171,6 @@ library StakeManagerLib {
101
171
  // TODO add check for target specific max dip amount (min stake + tvl * stake rate + buffer)
102
172
  }
103
173
 
104
-
105
- function checkDipBalanceAndAllowance(
106
- IERC20Metadata dip,
107
- address owner,
108
- address tokenHandlerAddress,
109
- Amount dipAmount
110
- )
111
- public
112
- view
113
- {
114
- // check balance
115
- uint256 amount = dipAmount.toInt();
116
- uint256 dipBalance = dip.balanceOf(owner);
117
- if (dipBalance < amount) {
118
- revert IStaking.ErrorStakingDipBalanceInsufficient(owner, amount, dipBalance);
119
- }
120
-
121
- // check allowance
122
- uint256 dipAllowance = dip.allowance(owner, tokenHandlerAddress);
123
- if (dipAllowance < amount) {
124
- revert IStaking.ErrorStakingDipAllowanceInsufficient(owner, tokenHandlerAddress, amount, dipAllowance);
125
- }
126
- }
127
-
128
-
129
174
  function calculateRewardIncrease(
130
175
  StakingReader stakingReader,
131
176
  NftId stakeNftId,