@etherisc/gif-next 0.0.2-9dd41ff-671 → 0.0.2-9e03baf-990

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 (543) hide show
  1. package/README.md +75 -9
  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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  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 +1324 -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 +219 -596
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +340 -444
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +144 -133
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +226 -309
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +215 -94
  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 +1429 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -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 +1430 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -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 +112 -91
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +170 -84
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +127 -238
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1183 -276
  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 +874 -395
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +255 -242
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -103
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1210 -389
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  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/IAccess.sol/IAccess.json +21 -0
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +507 -345
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +194 -111
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +275 -46
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +214 -400
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +490 -282
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/Pool.sol/Pool.json +224 -621
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +634 -640
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +124 -117
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +132 -282
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -97
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +333 -299
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +153 -114
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +54 -1
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -81
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +154 -86
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +365 -221
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -57
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +422 -406
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -137
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +248 -348
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +143 -116
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  162. package/artifacts/contracts/product/Product.sol/Product.json +364 -475
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +400 -50
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +112 -64
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +840 -107
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1743 -149
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +180 -200
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -86
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Component.sol/Component.json +120 -317
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1406 -213
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +834 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +114 -130
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.json +49 -1
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  221. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +799 -0
  224. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  225. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  226. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  228. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  229. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  230. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +48 -70
  232. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  233. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  234. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +67 -103
  236. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  238. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Service.sol/Service.json +54 -119
  240. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  241. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +735 -27
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  244. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  246. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  248. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +573 -53
  250. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  252. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  254. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  256. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  258. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  260. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +661 -182
  262. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +125 -90
  264. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  266. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  268. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  270. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
  272. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  282. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  284. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  286. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  288. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  290. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  292. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  294. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  296. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  298. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  300. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  304. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  306. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  308. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  310. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  312. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  319. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  322. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  324. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  325. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  326. package/contracts/authorization/AccessAdmin.sol +596 -0
  327. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  328. package/contracts/authorization/Authorization.sol +289 -0
  329. package/contracts/authorization/IAccess.sol +49 -0
  330. package/contracts/authorization/IAccessAdmin.sol +137 -0
  331. package/contracts/authorization/IAuthorization.sol +60 -0
  332. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  333. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  334. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  335. package/contracts/distribution/BasicDistribution.sol +139 -0
  336. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  337. package/contracts/distribution/Distribution.sol +156 -156
  338. package/contracts/distribution/DistributionService.sol +177 -173
  339. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  340. package/contracts/distribution/IDistributionComponent.sol +28 -47
  341. package/contracts/distribution/IDistributionService.sol +24 -10
  342. package/contracts/examples/fire/DamageLevel.sol +59 -0
  343. package/contracts/examples/fire/FirePool.sol +86 -0
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  345. package/contracts/examples/fire/FireProduct.sol +431 -0
  346. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  347. package/contracts/examples/fire/FireUSD.sol +26 -0
  348. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  349. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  350. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  351. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  352. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  353. package/contracts/instance/IInstance.sol +28 -39
  354. package/contracts/instance/IInstanceService.sol +30 -32
  355. package/contracts/instance/Instance.sol +124 -122
  356. package/contracts/instance/InstanceAdmin.sol +208 -285
  357. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  358. package/contracts/instance/InstanceReader.sol +194 -67
  359. package/contracts/instance/InstanceService.sol +246 -130
  360. package/contracts/instance/InstanceServiceManager.sol +8 -13
  361. package/contracts/instance/InstanceStore.sol +142 -66
  362. package/contracts/instance/base/BalanceStore.sol +123 -0
  363. package/contracts/instance/base/Cloneable.sol +2 -25
  364. package/contracts/instance/base/ObjectCounter.sol +21 -0
  365. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  366. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  367. package/contracts/instance/module/IAccess.sol +2 -0
  368. package/contracts/instance/module/IBundle.sol +1 -4
  369. package/contracts/instance/module/IComponents.sol +22 -13
  370. package/contracts/instance/module/IDistribution.sol +0 -1
  371. package/contracts/instance/module/IPolicy.sol +33 -26
  372. package/contracts/mock/Dip.sol +26 -0
  373. package/contracts/oracle/BasicOracle.sol +47 -0
  374. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  375. package/contracts/oracle/IOracle.sol +36 -0
  376. package/contracts/oracle/IOracleComponent.sol +33 -0
  377. package/contracts/oracle/IOracleService.sol +66 -0
  378. package/contracts/oracle/Oracle.sol +156 -0
  379. package/contracts/oracle/OracleService.sol +292 -0
  380. package/contracts/oracle/OracleServiceManager.sol +39 -0
  381. package/contracts/pool/BasicPool.sol +175 -0
  382. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  383. package/contracts/pool/BundleService.sol +314 -213
  384. package/contracts/pool/BundleServiceManager.sol +8 -11
  385. package/contracts/pool/IBundleService.sol +46 -24
  386. package/contracts/pool/IPoolComponent.sol +23 -75
  387. package/contracts/pool/IPoolService.sol +105 -47
  388. package/contracts/pool/Pool.sol +211 -168
  389. package/contracts/pool/PoolService.sol +448 -232
  390. package/contracts/pool/PoolServiceManager.sol +6 -9
  391. package/contracts/product/ApplicationService.sol +156 -84
  392. package/contracts/product/ApplicationServiceManager.sol +6 -6
  393. package/contracts/product/BasicProduct.sol +49 -0
  394. package/contracts/product/BasicProductAuthorization.sol +42 -0
  395. package/contracts/product/ClaimService.sol +333 -162
  396. package/contracts/product/ClaimServiceManager.sol +6 -6
  397. package/contracts/product/IApplicationService.sol +2 -1
  398. package/contracts/product/IClaimService.sol +35 -5
  399. package/contracts/product/IPolicyService.sol +41 -39
  400. package/contracts/product/IPricingService.sol +13 -11
  401. package/contracts/product/IProductComponent.sol +28 -10
  402. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
  403. package/contracts/product/PolicyService.sol +521 -204
  404. package/contracts/product/PolicyServiceManager.sol +6 -9
  405. package/contracts/product/PricingService.sol +107 -83
  406. package/contracts/product/PricingServiceManager.sol +5 -8
  407. package/contracts/product/Product.sol +199 -146
  408. package/contracts/product/RiskService.sol +96 -0
  409. package/contracts/product/RiskServiceManager.sol +39 -0
  410. package/contracts/registry/ChainNft.sol +75 -38
  411. package/contracts/registry/IRegistry.sol +85 -24
  412. package/contracts/registry/IRegistryService.sol +9 -6
  413. package/contracts/registry/ITransferInterceptor.sol +1 -2
  414. package/contracts/registry/Registry.sol +439 -179
  415. package/contracts/registry/RegistryAdmin.sol +396 -77
  416. package/contracts/registry/RegistryService.sol +73 -64
  417. package/contracts/registry/RegistryServiceManager.sol +6 -13
  418. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  419. package/contracts/registry/ReleaseRegistry.sol +485 -0
  420. package/contracts/registry/ServiceAuthorizationV3.sol +203 -0
  421. package/contracts/registry/TokenRegistry.sol +261 -64
  422. package/contracts/shared/Component.sol +128 -170
  423. package/contracts/shared/ComponentService.sol +732 -94
  424. package/contracts/shared/ComponentServiceManager.sol +38 -0
  425. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  426. package/contracts/shared/ContractLib.sol +54 -0
  427. package/contracts/shared/IComponent.sol +24 -47
  428. package/contracts/shared/IComponentService.sol +130 -0
  429. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  430. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  431. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  432. package/contracts/shared/INftOwnable.sol +3 -1
  433. package/contracts/shared/IPolicyHolder.sol +12 -17
  434. package/contracts/shared/IRegisterable.sol +11 -0
  435. package/contracts/shared/IService.sol +9 -2
  436. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  437. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  438. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  439. package/contracts/shared/Lifecycle.sol +88 -0
  440. package/contracts/shared/NftIdSet.sol +65 -0
  441. package/contracts/shared/NftOwnable.sol +32 -22
  442. package/contracts/shared/PolicyHolder.sol +18 -50
  443. package/contracts/shared/Registerable.sol +21 -13
  444. package/contracts/shared/RegistryLinked.sol +9 -14
  445. package/contracts/shared/Service.sol +48 -36
  446. package/contracts/shared/TokenHandler.sol +375 -13
  447. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  448. package/contracts/staking/IStaking.sol +173 -0
  449. package/contracts/staking/IStakingService.sol +103 -48
  450. package/contracts/staking/StakeManagerLib.sol +224 -0
  451. package/contracts/staking/Staking.sol +505 -0
  452. package/contracts/staking/StakingLifecycle.sol +23 -0
  453. package/contracts/staking/StakingManager.sol +52 -0
  454. package/contracts/staking/StakingReader.sol +190 -0
  455. package/contracts/staking/StakingService.sol +331 -47
  456. package/contracts/staking/StakingServiceManager.sol +11 -7
  457. package/contracts/staking/StakingStore.sol +605 -0
  458. package/contracts/staking/TargetManagerLib.sol +211 -0
  459. package/contracts/type/AddressSet.sol +1 -1
  460. package/contracts/type/Amount.sol +44 -3
  461. package/contracts/type/Blocknumber.sol +26 -3
  462. package/contracts/type/ClaimId.sol +6 -1
  463. package/contracts/type/Fee.sol +17 -16
  464. package/contracts/type/NftId.sol +15 -16
  465. package/contracts/type/NftIdSet.sol +1 -1
  466. package/contracts/type/ObjectType.sol +176 -62
  467. package/contracts/type/PayoutId.sol +10 -10
  468. package/contracts/type/Referral.sol +2 -1
  469. package/contracts/type/RequestId.sol +75 -0
  470. package/contracts/type/RiskId.sol +17 -3
  471. package/contracts/type/RoleId.sol +98 -75
  472. package/contracts/type/Seconds.sol +48 -1
  473. package/contracts/type/Selector.sol +102 -0
  474. package/contracts/type/StateId.sol +41 -2
  475. package/contracts/type/String.sol +53 -0
  476. package/contracts/type/Timestamp.sol +17 -3
  477. package/contracts/type/UFixed.sol +38 -9
  478. package/contracts/type/Version.sol +4 -2
  479. package/contracts/{shared → upgradeability}/ProxyManager.sol +73 -41
  480. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  481. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  482. package/package.json +11 -7
  483. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  485. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  486. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -188
  487. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  493. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  495. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  497. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  498. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  500. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -883
  501. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -711
  503. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  504. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1018
  505. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  506. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  507. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  508. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  509. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  510. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  511. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1747
  512. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  513. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1765
  514. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  515. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  516. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  517. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  518. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  519. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  520. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  521. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1594
  522. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  523. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  524. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -630
  525. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  526. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  527. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  528. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -320
  529. package/contracts/instance/base/Lifecycle.sol +0 -121
  530. package/contracts/instance/module/ISetup.sol +0 -33
  531. package/contracts/instance/module/ITreasury.sol +0 -23
  532. package/contracts/product/ProductService.sol +0 -212
  533. package/contracts/product/ProductServiceManager.sol +0 -42
  534. package/contracts/registry/ReleaseManager.sol +0 -465
  535. package/contracts/shared/AccessManagerCustom.sol +0 -736
  536. package/contracts/shared/AccessManagerExtended.sol +0 -469
  537. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  538. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -125
  539. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  540. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  541. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  542. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -17
  543. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,505 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IRegistryService} from "../registry/IRegistryService.sol";
8
+ import {IStaking} from "./IStaking.sol";
9
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
10
+
11
+ import {Amount, AmountLib} from "../type/Amount.sol";
12
+ import {Component} from "../shared/Component.sol";
13
+ import {IComponent} from "../shared/IComponent.sol";
14
+ import {IComponentService} from "../shared/IComponentService.sol";
15
+ import {NftId} from "../type/NftId.sol";
16
+ import {ObjectType, COMPONENT, STAKING} from "../type/ObjectType.sol";
17
+ import {Seconds} from "../type/Seconds.sol";
18
+ import {StakeManagerLib} from "./StakeManagerLib.sol";
19
+ import {StakingReader} from "./StakingReader.sol";
20
+ import {StakingStore} from "./StakingStore.sol";
21
+ import {TargetManagerLib} from "./TargetManagerLib.sol";
22
+ import {Timestamp} from "../type/Timestamp.sol";
23
+ import {TokenHandler} from "../shared/TokenHandler.sol";
24
+ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
25
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
26
+ import {UFixed} from "../type/UFixed.sol";
27
+ import {Version, VersionLib} from "../type/Version.sol";
28
+ import {Versionable} from "../upgradeability/Versionable.sol";
29
+
30
+ contract Staking is
31
+ Component,
32
+ Versionable,
33
+ IStaking
34
+ {
35
+ string public constant CONTRACT_NAME = "Staking";
36
+
37
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
38
+ bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
39
+
40
+ struct StakingStorage {
41
+ IRegistryService _registryService;
42
+ TokenRegistry _tokenRegistry;
43
+ TokenHandler _tokenHandler;
44
+ StakingStore _store;
45
+ StakingReader _reader;
46
+ NftId _protocolNftId;
47
+ }
48
+
49
+
50
+ modifier onlyStake(NftId stakeNftId) {
51
+ if (!_getStakingStorage()._store.exists(stakeNftId)) {
52
+ revert ErrorStakingNotStake(stakeNftId);
53
+ }
54
+ _;
55
+ }
56
+
57
+
58
+ modifier onlyTarget(NftId targetNftId) {
59
+ if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
60
+ revert ErrorStakingNotTarget(targetNftId);
61
+ }
62
+ _;
63
+ }
64
+
65
+ function initializeTokenHandler()
66
+ external
67
+ {
68
+ if (msg.sender != address(getRegistry())) {
69
+ revert ErrorStakingNotRegistry(msg.sender);
70
+ }
71
+
72
+ StakingStorage storage $ = _getStakingStorage();
73
+ $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
74
+ address(getRegistry()),
75
+ address(this),
76
+ address(getToken()),
77
+ getRegistry().getAuthority());
78
+ }
79
+
80
+ // set/update staking reader
81
+ function setStakingReader(StakingReader stakingReader)
82
+ external
83
+ virtual
84
+ onlyOwner()
85
+ {
86
+ if(stakingReader.getStaking() != IStaking(this)) {
87
+ revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
88
+ }
89
+
90
+ _getStakingStorage()._reader = stakingReader;
91
+ }
92
+
93
+
94
+ // rate management
95
+ function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
96
+ external
97
+ virtual
98
+ onlyOwner()
99
+ {
100
+ StakingStorage storage $ = _getStakingStorage();
101
+
102
+ if (!$._tokenRegistry.isRegistered(chainId, token)) {
103
+ revert ErrorStakingTokenNotRegistered(chainId, token);
104
+ }
105
+
106
+ UFixed oldStakingRate = $._store.getStakingRate(chainId, token);
107
+ $._store.setStakingRate(chainId, token, stakingRate);
108
+
109
+ emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
110
+ }
111
+
112
+ // target management
113
+
114
+ function registerTarget(
115
+ NftId targetNftId,
116
+ ObjectType expectedObjectType,
117
+ uint256 chainId,
118
+ Seconds initialLockingPeriod,
119
+ UFixed initialRewardRate
120
+ )
121
+ external
122
+ virtual
123
+ restricted()
124
+ {
125
+ TargetManagerLib.checkTargetParameters(
126
+ getRegistry(),
127
+ _getStakingStorage()._reader,
128
+ targetNftId,
129
+ expectedObjectType,
130
+ initialLockingPeriod,
131
+ initialRewardRate);
132
+
133
+ _getStakingStorage()._store.createTarget(
134
+ targetNftId,
135
+ TargetInfo({
136
+ objectType: expectedObjectType,
137
+ chainId: chainId,
138
+ lockingPeriod: initialLockingPeriod,
139
+ rewardRate: initialRewardRate}));
140
+ }
141
+
142
+
143
+ function setLockingPeriod(
144
+ NftId targetNftId,
145
+ Seconds lockingPeriod
146
+ )
147
+ external
148
+ virtual
149
+ restricted()
150
+ onlyTarget(targetNftId)
151
+ {
152
+ (
153
+ Seconds oldLockingPeriod,
154
+ TargetInfo memory targetInfo
155
+ ) = TargetManagerLib.updateLockingPeriod(
156
+ this,
157
+ targetNftId,
158
+ lockingPeriod);
159
+
160
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
161
+
162
+ emit LogStakingLockingPeriodSet(targetNftId, oldLockingPeriod, lockingPeriod);
163
+ }
164
+
165
+ // TODO add function to set protocol reward rate: onlyOwner
166
+ // get protocol nft id (from where)
167
+
168
+ function setRewardRate(NftId targetNftId, UFixed rewardRate)
169
+ external
170
+ virtual
171
+ restricted()
172
+ onlyTarget(targetNftId)
173
+ {
174
+ (
175
+ UFixed oldRewardRate,
176
+ TargetInfo memory targetInfo
177
+ ) = TargetManagerLib.updateRewardRate(
178
+ this,
179
+ targetNftId,
180
+ rewardRate);
181
+
182
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
183
+
184
+ emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
185
+ }
186
+
187
+
188
+ function refillRewardReserves(NftId targetNftId, Amount dipAmount)
189
+ external
190
+ virtual
191
+ restricted()
192
+ returns (Amount newBalance)
193
+ {
194
+ // update book keeping of reward reserves
195
+ StakingStorage storage $ = _getStakingStorage();
196
+ newBalance = $._store.increaseReserves(targetNftId, dipAmount);
197
+ }
198
+
199
+
200
+ function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
201
+ external
202
+ virtual
203
+ restricted()
204
+ returns (Amount newBalance)
205
+ {
206
+ // update book keeping of reward reserves
207
+ StakingStorage storage $ = _getStakingStorage();
208
+ newBalance = $._store.decreaseReserves(targetNftId, dipAmount);
209
+ }
210
+
211
+
212
+ function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
213
+ external
214
+ virtual
215
+ restricted() // only pool service
216
+ returns (Amount newBalance)
217
+ {
218
+ StakingStorage storage $ = _getStakingStorage();
219
+ uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
220
+ UFixed stakingRate = $._reader.getStakingRate(chainId, token);
221
+ newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
222
+ }
223
+
224
+
225
+ function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
226
+ external
227
+ virtual
228
+ restricted() // only pool service
229
+ returns (Amount newBalance)
230
+ {
231
+ StakingStorage storage $ = _getStakingStorage();
232
+ uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
233
+ UFixed stakingRate = $._reader.getStakingRate(chainId, token);
234
+ newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
235
+ }
236
+
237
+
238
+ function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
239
+ external
240
+ virtual
241
+ restricted()
242
+ onlyOwner // or CCIP
243
+ {
244
+
245
+ }
246
+
247
+ function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
248
+ external
249
+ virtual
250
+ restricted()
251
+ onlyOwner // or CCIP
252
+ {
253
+
254
+ }
255
+
256
+ //--- staking functions -------------------------------------------------//
257
+
258
+ function createStake(
259
+ NftId stakeNftId,
260
+ NftId targetNftId,
261
+ Amount stakeAmount
262
+ )
263
+ external
264
+ virtual
265
+ restricted() // only staking service
266
+ {
267
+ StakingStorage storage $ = _getStakingStorage();
268
+ Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
269
+ $._reader,
270
+ targetNftId,
271
+ stakeAmount);
272
+
273
+ // create new stake
274
+ $._store.create(
275
+ stakeNftId,
276
+ StakeInfo({
277
+ lockedUntil: lockedUntil}));
278
+
279
+ // update target stake balance
280
+ $._store.increaseStake(
281
+ stakeNftId,
282
+ targetNftId,
283
+ stakeAmount);
284
+ }
285
+
286
+
287
+ function stake(
288
+ NftId stakeNftId,
289
+ Amount stakeAmount
290
+ )
291
+ external
292
+ virtual
293
+ restricted() // only staking service
294
+ onlyStake(stakeNftId)
295
+ returns (Amount stakeBalance)
296
+ {
297
+ StakingStorage storage $ = _getStakingStorage();
298
+ stakeBalance = StakeManagerLib.stake(
299
+ getRegistry(),
300
+ $._reader,
301
+ $._store,
302
+ stakeNftId,
303
+ stakeAmount);
304
+ }
305
+
306
+
307
+ function restake(
308
+ NftId stakeNftId,
309
+ NftId newTargetNftId
310
+ )
311
+ external
312
+ virtual
313
+ restricted() // only staking service
314
+ onlyStake(stakeNftId)
315
+ returns (NftId newStakeNftId)
316
+ {
317
+ // TODO add check that allows additional staking amount
318
+ StakingStorage storage $ = _getStakingStorage();
319
+
320
+ // TODO implement
321
+ }
322
+
323
+
324
+ function updateRewards(NftId stakeNftId)
325
+ external
326
+ virtual
327
+ restricted() // only staking service
328
+ onlyStake(stakeNftId)
329
+ {
330
+ StakingStorage storage $ = _getStakingStorage();
331
+ _updateRewards($._reader, $._store, stakeNftId);
332
+ }
333
+
334
+
335
+ function claimRewards(NftId stakeNftId)
336
+ external
337
+ virtual
338
+ restricted() // only staking service
339
+ onlyStake(stakeNftId)
340
+ returns (
341
+ Amount rewardsClaimedAmount
342
+ )
343
+ {
344
+ StakingStorage storage $ = _getStakingStorage();
345
+
346
+ // update rewards since last update
347
+ NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
348
+
349
+ // unstake all available rewards
350
+ rewardsClaimedAmount = $._store.claimUpTo(
351
+ stakeNftId,
352
+ targetNftId,
353
+ AmountLib.max());
354
+
355
+ // update reward reserves
356
+ $._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
357
+ }
358
+
359
+
360
+ function unstake(NftId stakeNftId)
361
+ external
362
+ virtual
363
+ restricted() // only staking service
364
+ onlyStake(stakeNftId)
365
+ returns (
366
+ Amount unstakedAmount,
367
+ Amount rewardsClaimedAmount
368
+ )
369
+ {
370
+ StakingStorage storage $ = _getStakingStorage();
371
+
372
+ StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
373
+
374
+ // update rewards since last update
375
+ NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
376
+
377
+ // unstake all available dips
378
+ (
379
+ unstakedAmount,
380
+ rewardsClaimedAmount
381
+ ) = $._store.unstakeUpTo(
382
+ stakeNftId,
383
+ targetNftId,
384
+ AmountLib.max(), // unstake all stakes
385
+ AmountLib.max()); // claim all rewards
386
+
387
+ // update reward reserves
388
+ $._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
389
+ }
390
+
391
+
392
+ //--- view functions ----------------------------------------------------//
393
+
394
+ function getStakingReader() public view returns (StakingReader reader) {
395
+ return _getStakingStorage()._reader;
396
+ }
397
+
398
+ function getStakingStore() external view returns (StakingStore stakingStore) {
399
+ return _getStakingStorage()._store;
400
+ }
401
+
402
+ function getTokenRegistryAddress() external view returns (address tokenRegistry) {
403
+ return address(_getStakingStorage()._tokenRegistry);
404
+ }
405
+
406
+ function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
407
+ return _getStakingStorage()._tokenHandler;
408
+ }
409
+
410
+ // from Versionable
411
+ function getVersion()
412
+ public
413
+ pure
414
+ virtual override (IVersionable, Versionable)
415
+ returns(Version)
416
+ {
417
+ return VersionLib.toVersion(GIF_RELEASE,0,0);
418
+ }
419
+
420
+ //--- internal functions ------------------------------------------------//
421
+
422
+ function _updateRewards(
423
+ StakingReader reader,
424
+ StakingStore store,
425
+ NftId stakeNftId
426
+ )
427
+ internal
428
+ virtual
429
+ returns (NftId targetNftId)
430
+ {
431
+ UFixed rewardRate;
432
+
433
+ (targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
434
+ (Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
435
+ reader,
436
+ stakeNftId,
437
+ rewardRate);
438
+
439
+ store.updateRewards(
440
+ stakeNftId,
441
+ targetNftId,
442
+ rewardIncrement);
443
+ }
444
+
445
+
446
+ function _approveTokenHandler(IERC20Metadata token, Amount amount)
447
+ internal
448
+ virtual override
449
+ {
450
+ IComponentService(_getServiceAddress(COMPONENT())).approveStakingTokenHandler(
451
+ token,
452
+ amount);
453
+ }
454
+
455
+
456
+ function _initialize(
457
+ address owner,
458
+ bytes memory data
459
+ )
460
+ internal
461
+ virtual override
462
+ initializer()
463
+ {
464
+ (
465
+ address registryAddress,
466
+ address tokenRegistryAddress,
467
+ address stakingStoreAddress,
468
+ address stakingOwner
469
+ ) = abi.decode(data, (address, address, address, address));
470
+
471
+ // only admin(authority) and dip token address are set in registry at this point
472
+ IRegistry registry = IRegistry(registryAddress);
473
+ address authority = registry.getAuthority();
474
+ TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
475
+ address dipTokenAddress = tokenRegistry.getDipTokenAddress();
476
+
477
+ _initializeComponent(
478
+ authority,
479
+ registryAddress,
480
+ registry.getNftId(), // parent nft id
481
+ CONTRACT_NAME,
482
+ dipTokenAddress,
483
+ STAKING(),
484
+ false, // is interceptor
485
+ stakingOwner,
486
+ "", // registry data
487
+ ""); // component data
488
+
489
+ // wiring to external contracts
490
+ StakingStorage storage $ = _getStakingStorage();
491
+ $._protocolNftId = getRegistry().getProtocolNftId();
492
+ $._store = StakingStore(stakingStoreAddress);
493
+ $._reader = StakingStore(stakingStoreAddress).getStakingReader();
494
+ $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
495
+
496
+ _registerInterface(type(IStaking).interfaceId);
497
+ }
498
+
499
+
500
+ function _getStakingStorage() private pure returns (StakingStorage storage $) {
501
+ assembly {
502
+ $.slot := STAKING_LOCATION_V1
503
+ }
504
+ }
505
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {TARGET, COMPONENT, STAKE} from "../type/ObjectType.sol";
5
+ import {INITIAL} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract StakingLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(TARGET(), INITIAL());
20
+ setInitialState(COMPONENT(), INITIAL());
21
+ setInitialState(STAKE(), INITIAL());
22
+ }
23
+ }
@@ -0,0 +1,52 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {Staking} from "./Staking.sol";
7
+
8
+
9
+ contract StakingManager is
10
+ ProxyManager
11
+ {
12
+ Staking private _staking;
13
+ address private _initialImplementation;
14
+ bytes private _initializationData;
15
+
16
+ /// @dev initializes proxy manager with service implementation
17
+ constructor(
18
+ address registry,
19
+ address tokenRegistry,
20
+ address stakingStore,
21
+ address initialOwner,
22
+ bytes32 salt
23
+ )
24
+ {
25
+ Staking stakingImplementation = new Staking();
26
+
27
+ _initialImplementation = address(stakingImplementation);
28
+ _initializationData = abi.encode(
29
+ registry,
30
+ tokenRegistry,
31
+ stakingStore,
32
+ initialOwner);
33
+
34
+ IVersionable versionable = initialize(
35
+ registry,
36
+ _initialImplementation,
37
+ _initializationData,
38
+ salt);
39
+
40
+ _staking = Staking(address(versionable));
41
+ }
42
+
43
+ //--- view functions ----------------------------------------------------//
44
+
45
+ function getStaking()
46
+ external
47
+ view
48
+ returns (Staking)
49
+ {
50
+ return _staking;
51
+ }
52
+ }