@etherisc/gif-next 0.0.2-fc8b370-882 → 0.0.2-fd2113c-488

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 (670) hide show
  1. package/README.md +250 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +285 -1486
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +489 -1720
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  43. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  44. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  50. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  52. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  53. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  54. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
  56. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  58. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  60. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  62. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  64. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  66. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  68. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  70. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  72. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  74. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  76. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  77. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  78. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  79. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  80. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  82. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  84. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  86. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  88. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  90. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
  92. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  94. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  96. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  97. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  98. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  99. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  100. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
  102. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  104. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  106. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  108. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  110. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  111. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  112. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  114. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  118. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  120. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  121. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  122. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  124. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  126. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  127. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  128. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  130. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  132. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  134. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1218 -0
  136. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  138. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  140. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  141. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  142. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  144. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  146. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  150. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  152. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  154. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  155. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  162. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  163. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  164. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  166. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  168. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  170. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  172. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  174. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  176. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  177. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -138
  178. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  180. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  184. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  186. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  187. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  188. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +163 -143
  190. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  192. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  193. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  194. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  196. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  198. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  200. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  202. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  203. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  204. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  205. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  206. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  207. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  213. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  215. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  216. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  217. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  218. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  220. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  221. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  222. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  223. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  224. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  226. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  228. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  230. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  232. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  234. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  236. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  238. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  239. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  240. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  242. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  244. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  246. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  248. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  250. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  252. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  254. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  256. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  260. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  262. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  264. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  266. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  268. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  270. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  276. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  278. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  280. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  282. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  284. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  288. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  290. package/contracts/distribution/Distribution.sol +261 -0
  291. package/contracts/distribution/DistributionService.sol +297 -0
  292. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  293. package/contracts/distribution/IDistributionComponent.sol +66 -0
  294. package/contracts/distribution/IDistributionService.sol +81 -0
  295. package/contracts/instance/BundleManager.sol +126 -0
  296. package/contracts/instance/IInstance.sol +79 -44
  297. package/contracts/instance/IInstanceService.sol +97 -0
  298. package/contracts/instance/Instance.sol +247 -52
  299. package/contracts/instance/InstanceAdmin.sol +331 -0
  300. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  301. package/contracts/instance/InstanceReader.sol +392 -0
  302. package/contracts/instance/InstanceService.sol +439 -0
  303. package/contracts/instance/InstanceServiceManager.sol +44 -0
  304. package/contracts/instance/InstanceStore.sol +269 -0
  305. package/contracts/instance/base/BalanceStore.sol +123 -0
  306. package/contracts/instance/base/Cloneable.sol +28 -0
  307. package/contracts/instance/base/ObjectCounter.sol +21 -0
  308. package/contracts/instance/base/ObjectManager.sol +80 -0
  309. package/contracts/instance/module/IAccess.sol +46 -0
  310. package/contracts/instance/module/IBundle.sol +20 -0
  311. package/contracts/instance/module/IComponents.sol +52 -0
  312. package/contracts/instance/module/IDistribution.sol +42 -0
  313. package/contracts/instance/module/IPolicy.sol +84 -0
  314. package/contracts/instance/module/IRisk.sol +11 -0
  315. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  316. package/contracts/oracle/IOracle.sol +20 -0
  317. package/contracts/oracle/IOracleComponent.sol +32 -0
  318. package/contracts/oracle/IOracleService.sol +65 -0
  319. package/contracts/oracle/Oracle.sol +145 -0
  320. package/contracts/oracle/OracleService.sol +278 -0
  321. package/contracts/oracle/OracleServiceManager.sol +42 -0
  322. package/contracts/pool/BundleService.sol +296 -0
  323. package/contracts/pool/BundleServiceManager.sol +42 -0
  324. package/contracts/pool/IBundleService.sol +106 -0
  325. package/contracts/pool/IPoolComponent.sol +112 -0
  326. package/contracts/pool/IPoolService.sol +150 -0
  327. package/contracts/pool/Pool.sol +299 -0
  328. package/contracts/pool/PoolService.sol +452 -0
  329. package/contracts/pool/PoolServiceManager.sol +42 -0
  330. package/contracts/product/ApplicationService.sol +254 -0
  331. package/contracts/product/ApplicationServiceManager.sol +38 -0
  332. package/contracts/product/ClaimService.sol +442 -0
  333. package/contracts/product/ClaimServiceManager.sol +38 -0
  334. package/contracts/product/IApplicationService.sol +62 -0
  335. package/contracts/product/IClaimService.sol +99 -0
  336. package/contracts/product/IPolicyService.sol +78 -0
  337. package/contracts/product/IPricingService.sol +39 -0
  338. package/contracts/product/IProductComponent.sol +42 -0
  339. package/contracts/product/IProductService.sol +33 -0
  340. package/contracts/product/PolicyService.sol +475 -0
  341. package/contracts/product/PolicyServiceManager.sol +42 -0
  342. package/contracts/product/PricingService.sol +300 -0
  343. package/contracts/product/PricingServiceManager.sol +42 -0
  344. package/contracts/product/Product.sol +377 -0
  345. package/contracts/product/ProductService.sol +124 -0
  346. package/contracts/product/ProductServiceManager.sol +42 -0
  347. package/contracts/registry/ChainNft.sol +95 -37
  348. package/contracts/registry/IRegistry.sol +95 -28
  349. package/contracts/registry/IRegistryService.sol +69 -0
  350. package/contracts/registry/IServiceAuthorization.sol +35 -0
  351. package/contracts/registry/ITransferInterceptor.sol +7 -0
  352. package/contracts/registry/Registry.sol +482 -281
  353. package/contracts/registry/RegistryAdmin.sol +333 -0
  354. package/contracts/registry/RegistryService.sol +266 -0
  355. package/contracts/registry/RegistryServiceManager.sol +53 -0
  356. package/contracts/registry/ReleaseManager.sol +527 -0
  357. package/contracts/registry/ServiceAuthorization.sol +86 -0
  358. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  359. package/contracts/registry/TokenRegistry.sol +315 -0
  360. package/contracts/shared/AccessAdmin.sol +759 -0
  361. package/contracts/shared/AccessManagerCustom.sol +741 -0
  362. package/contracts/shared/AccessManagerExtended.sol +481 -0
  363. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  364. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  365. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  366. package/contracts/shared/Component.sol +281 -0
  367. package/contracts/shared/ComponentService.sol +617 -0
  368. package/contracts/shared/ComponentServiceManager.sol +35 -0
  369. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  370. package/contracts/shared/ERC165.sol +15 -9
  371. package/contracts/shared/IAccessAdmin.sol +168 -0
  372. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  373. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  374. package/contracts/shared/IComponent.sol +70 -0
  375. package/contracts/shared/IComponentService.sol +102 -0
  376. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  377. package/contracts/shared/IKeyValueStore.sol +53 -0
  378. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  379. package/contracts/shared/INftOwnable.sol +23 -0
  380. package/contracts/shared/IPolicyHolder.sol +45 -0
  381. package/contracts/shared/IRegisterable.sol +10 -19
  382. package/contracts/shared/IRegistryLinked.sol +11 -0
  383. package/contracts/shared/IService.sol +25 -0
  384. package/contracts/shared/IVersionable.sol +38 -37
  385. package/contracts/shared/InitializableCustom.sol +177 -0
  386. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  387. package/contracts/shared/KeyValueStore.sol +127 -0
  388. package/contracts/shared/Lifecycle.sol +130 -0
  389. package/contracts/shared/NftIdSetManager.sol +65 -0
  390. package/contracts/shared/NftOwnable.sol +107 -0
  391. package/contracts/shared/PolicyHolder.sol +102 -0
  392. package/contracts/shared/ProxyManager.sol +199 -0
  393. package/contracts/shared/Registerable.sol +54 -65
  394. package/contracts/shared/RegistryLinked.sol +43 -0
  395. package/contracts/shared/Service.sol +83 -0
  396. package/contracts/shared/TokenHandler.sol +58 -0
  397. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  398. package/contracts/shared/Versionable.sol +38 -68
  399. package/contracts/staking/IStaking.sol +168 -0
  400. package/contracts/staking/IStakingService.sol +153 -0
  401. package/contracts/staking/StakeManagerLib.sol +231 -0
  402. package/contracts/staking/Staking.sol +513 -0
  403. package/contracts/staking/StakingManager.sol +54 -0
  404. package/contracts/staking/StakingReader.sol +187 -0
  405. package/contracts/staking/StakingService.sol +411 -0
  406. package/contracts/staking/StakingServiceManager.sol +44 -0
  407. package/contracts/staking/StakingStore.sol +613 -0
  408. package/contracts/staking/TargetManagerLib.sol +207 -0
  409. package/contracts/{types → type}/AddressSet.sol +1 -1
  410. package/contracts/type/Amount.sol +128 -0
  411. package/contracts/{types → type}/Blocknumber.sol +21 -3
  412. package/contracts/type/ClaimId.sol +75 -0
  413. package/contracts/type/DistributorType.sol +55 -0
  414. package/contracts/type/Fee.sol +66 -0
  415. package/contracts/{types → type}/Key32.sol +8 -3
  416. package/contracts/{types → type}/NftId.sol +21 -15
  417. package/contracts/type/NftIdSet.sol +62 -0
  418. package/contracts/type/ObjectType.sol +241 -0
  419. package/contracts/type/PayoutId.sol +82 -0
  420. package/contracts/type/Referral.sol +89 -0
  421. package/contracts/type/RequestId.sol +75 -0
  422. package/contracts/type/RiskId.sol +43 -0
  423. package/contracts/type/RoleId.sol +201 -0
  424. package/contracts/type/Seconds.sol +81 -0
  425. package/contracts/type/Selector.sol +102 -0
  426. package/contracts/{types → type}/StateId.sol +39 -5
  427. package/contracts/type/String.sol +53 -0
  428. package/contracts/{types → type}/Timestamp.sol +27 -14
  429. package/contracts/{types → type}/UFixed.sol +129 -12
  430. package/contracts/{types → type}/Version.sol +15 -2
  431. package/package.json +8 -7
  432. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  433. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  434. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  435. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  436. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  437. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  438. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  439. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  440. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  441. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  442. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  443. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  445. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  447. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  449. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  451. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  453. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  455. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  457. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  459. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  461. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  462. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  463. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  465. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  467. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  469. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  471. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  473. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  475. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  477. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  478. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  479. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  480. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  481. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  482. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  483. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  484. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  485. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  487. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -692
  490. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  492. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  495. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  497. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  499. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  500. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  501. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  502. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  503. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  504. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  505. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  506. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  507. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  508. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  509. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  511. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  513. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  515. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  516. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  517. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  519. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  520. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  521. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  522. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  524. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  526. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  528. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  529. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  531. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  533. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  535. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  536. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  537. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  539. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  541. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  543. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  546. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  549. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  551. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  552. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  553. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  554. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  555. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  556. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  557. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  558. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  559. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  560. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  561. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  562. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  563. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  564. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  565. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  566. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  568. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  570. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  572. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  574. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  575. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  576. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  577. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  579. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  582. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  584. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  586. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  587. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  588. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  590. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  592. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  594. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  595. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  598. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  600. package/contracts/components/BaseComponent.sol +0 -88
  601. package/contracts/components/IBaseComponent.sol +0 -19
  602. package/contracts/components/IPoolComponent.sol +0 -57
  603. package/contracts/components/IProductComponent.sol +0 -19
  604. package/contracts/components/Pool.sol +0 -174
  605. package/contracts/components/Product.sol +0 -117
  606. package/contracts/experiment/errors/Require.sol +0 -38
  607. package/contracts/experiment/errors/Revert.sol +0 -44
  608. package/contracts/experiment/inheritance/A.sol +0 -53
  609. package/contracts/experiment/inheritance/B.sol +0 -28
  610. package/contracts/experiment/inheritance/C.sol +0 -34
  611. package/contracts/experiment/inheritance/IA.sol +0 -13
  612. package/contracts/experiment/inheritance/IB.sol +0 -10
  613. package/contracts/experiment/inheritance/IC.sol +0 -12
  614. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  615. package/contracts/experiment/statemachine/ISM.sol +0 -25
  616. package/contracts/experiment/statemachine/README.md +0 -112
  617. package/contracts/experiment/statemachine/SM.sol +0 -57
  618. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  619. package/contracts/experiment/types/TypeA.sol +0 -47
  620. package/contracts/experiment/types/TypeB.sol +0 -29
  621. package/contracts/instance/IInstanceLinked.sol +0 -8
  622. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  623. package/contracts/instance/base/IInstanceBase.sol +0 -14
  624. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  625. package/contracts/instance/base/IService.sol +0 -15
  626. package/contracts/instance/base/InstanceBase.sol +0 -80
  627. package/contracts/instance/base/KeyValueStore.sol +0 -156
  628. package/contracts/instance/base/Lifecycle.sol +0 -95
  629. package/contracts/instance/base/ModuleBase.sol +0 -52
  630. package/contracts/instance/base/ServiceBase.sol +0 -37
  631. package/contracts/instance/module/access/Access.sol +0 -149
  632. package/contracts/instance/module/access/IAccess.sol +0 -53
  633. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  634. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  635. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  636. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  637. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  638. package/contracts/instance/module/component/IComponent.sol +0 -53
  639. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  640. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  641. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  642. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  643. package/contracts/instance/module/risk/IRisk.sol +0 -10
  644. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  645. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  646. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  647. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  648. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  649. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  650. package/contracts/instance/service/IPoolService.sol +0 -30
  651. package/contracts/instance/service/IProductService.sol +0 -58
  652. package/contracts/instance/service/PoolService.sol +0 -123
  653. package/contracts/instance/service/ProductService.sol +0 -354
  654. package/contracts/registry/IChainNft.sol +0 -21
  655. package/contracts/registry/IRegistryLinked.sol +0 -8
  656. package/contracts/shared/IOwnable.sol +0 -6
  657. package/contracts/test/TestFee.sol +0 -25
  658. package/contracts/test/TestPool.sol +0 -22
  659. package/contracts/test/TestProduct.sol +0 -44
  660. package/contracts/test/TestRegisterable.sol +0 -19
  661. package/contracts/test/TestRoleId.sol +0 -14
  662. package/contracts/test/TestService.sol +0 -32
  663. package/contracts/test/TestToken.sol +0 -26
  664. package/contracts/test/TestVersion.sol +0 -44
  665. package/contracts/test/TestVersionable.sol +0 -17
  666. package/contracts/types/ChainId.sol +0 -38
  667. package/contracts/types/Fee.sol +0 -51
  668. package/contracts/types/NftIdSet.sol +0 -60
  669. package/contracts/types/ObjectType.sol +0 -115
  670. package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,278 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
5
+ import {IComponent} from "../shared/IComponent.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IInstanceService} from "../instance/IInstanceService.sol";
8
+ import {InstanceReader} from "../instance/InstanceReader.sol";
9
+ import {IOracle} from "./IOracle.sol";
10
+ import {IOracleComponent} from "./IOracleComponent.sol";
11
+ import {IOracleService} from "./IOracleService.sol";
12
+ import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {NftId} from "../type/NftId.sol";
14
+ import {ObjectType, COMPONENT, ORACLE, INSTANCE} from "../type/ObjectType.sol";
15
+ import {RequestId} from "../type/RequestId.sol";
16
+ import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
17
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
18
+
19
+
20
+ contract OracleService is
21
+ ComponentVerifyingService,
22
+ IOracleService
23
+ {
24
+
25
+ function _initialize(
26
+ address owner,
27
+ bytes memory data
28
+ )
29
+ internal
30
+ initializer
31
+ virtual override
32
+ {
33
+ address initialOwner;
34
+ address registryAddress;
35
+ (registryAddress, initialOwner) = abi.decode(data, (address, address));
36
+ initializeService(registryAddress, address(0), owner);
37
+ registerInterface(type(IOracleService).interfaceId);
38
+ }
39
+
40
+ function request(
41
+ NftId oracleNftId,
42
+ bytes calldata requestData,
43
+ Timestamp expiryAt,
44
+ string calldata callbackMethodName
45
+ )
46
+ external
47
+ virtual
48
+ // restricted() // add authz
49
+ returns (
50
+ RequestId requestId
51
+ )
52
+ {
53
+ (
54
+ NftId componentNftId,
55
+ IRegistry.ObjectInfo memory componentInfo,
56
+ IInstance instance
57
+ ) = _getAndVerifyActiveComponent(COMPONENT());
58
+
59
+ // oracleNftId exists and is active oracle
60
+ (
61
+ IRegistry.ObjectInfo memory oracleInfo,
62
+ ) = _getAndVerifyComponentInfo(
63
+ oracleNftId,
64
+ ORACLE(),
65
+ true); // only active
66
+
67
+ // check that requester and oracle share same instance
68
+ if (componentInfo.parentNftId != oracleInfo.parentNftId) {
69
+ revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
70
+ }
71
+
72
+ // check expiriyAt >= now
73
+ if (expiryAt < TimestampLib.blockTimestamp()) {
74
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
75
+ }
76
+
77
+ // check callbackMethodName.length > 0
78
+ if (bytes(callbackMethodName).length == 0) {
79
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
80
+ }
81
+
82
+ // create request info
83
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
84
+ requesterNftId: componentNftId,
85
+ callbackMethodName: callbackMethodName,
86
+ oracleNftId: oracleNftId,
87
+ requestData: requestData,
88
+ responseData: "",
89
+ respondedAt: TimestampLib.zero(),
90
+ expiredAt: expiryAt,
91
+ isCancelled: false
92
+ });
93
+
94
+ // store request with instance
95
+ requestId = instance.getInstanceStore().createRequest(request);
96
+
97
+ // call oracle component
98
+ IOracleComponent(oracleInfo.objectAddress).request(
99
+ requestId,
100
+ componentNftId,
101
+ requestData,
102
+ expiryAt);
103
+
104
+ emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
105
+ }
106
+
107
+
108
+ /// @dev respond to oracle request by oracle compnent.
109
+ /// permissioned: only the oracle component linked to the request id may call this method
110
+ function respond(
111
+ RequestId requestId,
112
+ bytes calldata responseData
113
+ )
114
+ external
115
+ virtual
116
+ // restricted() // add authz
117
+ returns (bool success)
118
+ {
119
+ (
120
+ NftId oracleNftId,
121
+ IRegistry.ObjectInfo memory componentInfo,
122
+ IInstance instance
123
+ ) = _getAndVerifyActiveComponent(ORACLE());
124
+
125
+ bool callerIsOracle = true;
126
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
127
+ request.responseData = responseData;
128
+ request.respondedAt = TimestampLib.blockTimestamp();
129
+
130
+ instance.getInstanceStore().updateRequest(
131
+ requestId, request, KEEP_STATE());
132
+
133
+ IRegistry.ObjectInfo memory requesterInfo = getRegistry().getObjectInfo(
134
+ request.requesterNftId);
135
+
136
+ string memory functionSignature = string(
137
+ abi.encodePacked(
138
+ request.callbackMethodName,
139
+ "(uint64,bytes)"
140
+ ));
141
+
142
+ (success, ) = requesterInfo.objectAddress.call(
143
+ abi.encodeWithSignature(
144
+ functionSignature,
145
+ requestId,
146
+ responseData));
147
+
148
+ // check that calling requestor was successful
149
+ if (success) {
150
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
151
+ } else {
152
+ instance.getInstanceStore().updateRequestState(requestId, FAILED());
153
+ emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
154
+ }
155
+
156
+ emit LogOracleServiceResponseProcessed(requestId, oracleNftId);
157
+ }
158
+
159
+
160
+ function resend(RequestId requestId)
161
+ external
162
+ virtual
163
+ // restricted() // add authz
164
+ {
165
+ (
166
+ NftId requesterNftId,
167
+ IRegistry.ObjectInfo memory requesterInfo,
168
+ IInstance instance
169
+ ) = _getAndVerifyActiveComponent(COMPONENT());
170
+
171
+ bool callerIsOracle = false;
172
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
173
+
174
+ // attempt to deliver response to requester
175
+ string memory functionSignature = string(
176
+ abi.encodePacked(
177
+ request.callbackMethodName,
178
+ "(uint64,bytes)"
179
+ ));
180
+
181
+ (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
182
+ abi.encodeWithSignature(
183
+ functionSignature,
184
+ requestId,
185
+ request.responseData));
186
+
187
+ // check that calling requestor was successful
188
+ if (success) {
189
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
190
+ emit LogOracleServiceResponseResent(requestId, requesterNftId);
191
+ } else {
192
+ emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
193
+ }
194
+ }
195
+
196
+
197
+ function cancel(RequestId requestId)
198
+ external
199
+ virtual
200
+ // restricted() // add authz
201
+ {
202
+ (
203
+ NftId requesterNftId,
204
+ IRegistry.ObjectInfo memory componentInfo,
205
+ IInstance instance
206
+ ) = _getAndVerifyActiveComponent(COMPONENT());
207
+
208
+ bool callerIsOracle = false;
209
+ // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
210
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
211
+ request.isCancelled = true;
212
+
213
+ instance.getInstanceStore().updateRequest(requestId, request, CANCELLED());
214
+
215
+ // call oracle component
216
+ // TODO add check that oracle is active?
217
+ address oracleAddress = getRegistry().getObjectInfo(request.oracleNftId).objectAddress;
218
+ IOracleComponent(oracleAddress).cancel(requestId);
219
+
220
+ emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
221
+ }
222
+
223
+
224
+ function _checkAndGetRequestInfo(
225
+ IInstance instance,
226
+ RequestId requestId,
227
+ NftId callerNftId,
228
+ bool callerIsOracle
229
+ )
230
+ internal
231
+ virtual
232
+ view
233
+ returns (IOracle.RequestInfo memory info)
234
+ {
235
+ InstanceReader reader = instance.getInstanceReader();
236
+ StateId state = reader.getState(requestId.toKey32());
237
+
238
+ // check caller against resonsible oracle or requester
239
+ info = reader.getRequestInfo(requestId);
240
+ if (callerIsOracle) {
241
+ if (state != ACTIVE()) {
242
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
243
+ }
244
+
245
+ if (callerNftId != info.oracleNftId) {
246
+ revert ErrorOracleServiceCallerNotResponsibleOracle(requestId, info.oracleNftId, callerNftId);
247
+ }
248
+ } else {
249
+ if (state != ACTIVE() && state != FAILED()) {
250
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
251
+ }
252
+ if (callerNftId != info.requesterNftId) {
253
+ revert ErrorOracleServiceCallerNotRequester(requestId, info.requesterNftId, callerNftId);
254
+ }
255
+ }
256
+
257
+ // check expiry
258
+ if (info.expiredAt < TimestampLib.blockTimestamp()) {
259
+ revert ErrorOracleServiceRequestExpired(requestId, info.expiredAt);
260
+ }
261
+ }
262
+
263
+
264
+ function _getInstanceForComponent(NftId componentNftId)
265
+ internal
266
+ view
267
+ returns(IInstance instance)
268
+ {
269
+ NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
270
+ address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
271
+ return IInstance(instanceAddress);
272
+ }
273
+
274
+
275
+ function _getDomain() internal pure override returns(ObjectType) {
276
+ return ORACLE();
277
+ }
278
+ }
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
+ import {OracleService} from "./OracleService.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {REGISTRY} from "../type/ObjectType.sol";
10
+
11
+ contract OracleServiceManager is ProxyManager {
12
+
13
+ OracleService private _oracleService;
14
+
15
+ /// @dev initializes proxy manager with service implementation and deploys instance
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ OracleService orclSrv = new OracleService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(orclSrv),
27
+ data,
28
+ salt);
29
+
30
+ _oracleService = OracleService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getOracleService()
35
+ external
36
+ view
37
+ returns (OracleService oracleService)
38
+ {
39
+ return _oracleService;
40
+ }
41
+
42
+ }
@@ -0,0 +1,296 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
6
+ import {IComponentService} from "../shared/IComponentService.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {InstanceStore} from "../instance/InstanceStore.sol";
10
+ import {IPolicy} from "../instance/module/IPolicy.sol";
11
+
12
+ import {IVersionable} from "../shared/IVersionable.sol";
13
+ import {INftOwnable} from "../shared/INftOwnable.sol";
14
+ import {NftId, NftIdLib} from "../type/NftId.sol";
15
+ import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
16
+ import {POOL_OWNER_ROLE, RoleId} from "../type/RoleId.sol";
17
+ import {Pool} from "./Pool.sol";
18
+
19
+ import {Amount, AmountLib} from "../type/Amount.sol";
20
+ import {Fee, FeeLib} from "../type/Fee.sol";
21
+ import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
22
+ import {Seconds} from "../type/Seconds.sol";
23
+ import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
24
+ import {Version, VersionLib} from "../type/Version.sol";
25
+ import {Versionable} from "../shared/Versionable.sol";
26
+
27
+ import {IService} from "../shared/IService.sol";
28
+ import {Service} from "../shared/Service.sol";
29
+ import {BundleManager} from "../instance/BundleManager.sol";
30
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
31
+ import {IBundleService} from "./IBundleService.sol";
32
+ import {IRegistryService} from "../registry/IRegistryService.sol";
33
+ import {InstanceService} from "../instance/InstanceService.sol";
34
+ import {InstanceReader} from "../instance/InstanceReader.sol";
35
+
36
+ string constant BUNDLE_SERVICE_NAME = "BundleService";
37
+
38
+ contract BundleService is
39
+ ComponentVerifyingService,
40
+ IBundleService
41
+ {
42
+ using NftIdLib for NftId;
43
+
44
+ string public constant NAME = "BundleService";
45
+
46
+ address private _registryAddress;
47
+ IRegistryService private _registryService;
48
+ IComponentService private _componentService;
49
+
50
+ function _initialize(
51
+ address owner,
52
+ bytes memory data
53
+ )
54
+ internal
55
+ initializer
56
+ virtual override
57
+ {
58
+ address registryAddress;
59
+ address initialOwner;
60
+ (registryAddress, initialOwner) = abi.decode(data, (address, address));
61
+ // TODO while PoolService is not deployed in PoolServiceManager constructor
62
+ // owner is PoolServiceManager deployer
63
+ initializeService(registryAddress, address(0), owner);
64
+
65
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
66
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
67
+
68
+ registerInterface(type(IBundleService).interfaceId);
69
+ }
70
+
71
+
72
+ function setFee(
73
+ NftId bundleNftId,
74
+ Fee memory fee
75
+ )
76
+ external
77
+ virtual
78
+ {
79
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
80
+ InstanceReader instanceReader = instance.getInstanceReader();
81
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
82
+ if(bundleInfo.poolNftId.eqz()) {
83
+ revert ErrorBundleServiceBundleUnknown(bundleNftId);
84
+ }
85
+
86
+ if(bundleInfo.poolNftId != poolNftId) {
87
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
88
+ }
89
+
90
+ bundleInfo.fee = fee;
91
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
92
+ }
93
+
94
+
95
+ function create(
96
+ IInstance instance,
97
+ NftId poolNftId,
98
+ address owner,
99
+ Fee memory bundleFee,
100
+ Amount stakingAmount,
101
+ Seconds lifetime,
102
+ bytes calldata filter
103
+ )
104
+ external
105
+ override
106
+ restricted
107
+ returns(NftId bundleNftId)
108
+ {
109
+ // register bundle with registry
110
+ bundleNftId = _registryService.registerBundle(
111
+ IRegistry.ObjectInfo(
112
+ NftIdLib.zero(),
113
+ poolNftId,
114
+ BUNDLE(),
115
+ false, // intercepting property for bundles is defined on pool
116
+ address(0),
117
+ owner,
118
+ "" // bundle data to be stored in registry
119
+ )
120
+ );
121
+
122
+ // create bundle info in instance
123
+ InstanceStore instanceStore = instance.getInstanceStore();
124
+ instanceStore.createBundle(
125
+ bundleNftId,
126
+ IBundle.BundleInfo(
127
+ poolNftId,
128
+ bundleFee,
129
+ filter,
130
+ lifetime,
131
+ TimestampLib.blockTimestamp().addSeconds(lifetime),
132
+ zeroTimestamp()));
133
+
134
+ // bundle book keeping
135
+ _componentService.increaseBundleBalance(
136
+ instanceStore,
137
+ bundleNftId,
138
+ stakingAmount,
139
+ AmountLib.zero()); // fee amount
140
+
141
+ // put bundle under bundle managemet
142
+ BundleManager bundleManager = instance.getBundleManager();
143
+ bundleManager.add(bundleNftId);
144
+
145
+ // TODO add logging
146
+ }
147
+
148
+
149
+ // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
150
+ function lockCollateral(
151
+ IInstance instance,
152
+ NftId policyNftId,
153
+ NftId bundleNftId,
154
+ Amount collateralAmount // required local amount to collateralize policy
155
+ )
156
+ external
157
+ virtual
158
+ restricted()
159
+ {
160
+ InstanceReader instanceReader = instance.getInstanceReader();
161
+ StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
162
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
163
+
164
+ // ensure bundle is active and not yet expired
165
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
166
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
167
+ }
168
+
169
+ // ensure bundle capacity is sufficent to collateralize policy
170
+ InstanceStore instanceStore = instance.getInstanceStore();
171
+ (
172
+ Amount balanceAmount,
173
+ Amount lockedAmount,
174
+ Amount feeAmount
175
+ ) = instanceStore.getAmounts(bundleNftId);
176
+
177
+ Amount capacity = balanceAmount - (lockedAmount + feeAmount);
178
+ if(capacity < collateralAmount) {
179
+ revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
180
+ }
181
+
182
+ // updated locked amount
183
+ instanceStore.increaseLocked(bundleNftId, collateralAmount);
184
+
185
+ // link policy to bundle in bundle manger
186
+ _linkPolicy(instance, policyNftId);
187
+ }
188
+
189
+
190
+ function lock(NftId bundleNftId)
191
+ external
192
+ virtual
193
+ {
194
+ (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
195
+
196
+ // udpate bundle state
197
+ instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
198
+
199
+ // update set of active bundles
200
+ BundleManager bundleManager = instance.getBundleManager();
201
+ bundleManager.lock(bundleNftId);
202
+
203
+ emit LogBundleServiceBundleLocked(bundleNftId);
204
+ }
205
+
206
+
207
+ function unlock(NftId bundleNftId)
208
+ external
209
+ virtual
210
+ {
211
+ (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
212
+
213
+ // udpate bundle state
214
+ instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
215
+
216
+ // update set of active bundles
217
+ BundleManager bundleManager = instance.getBundleManager();
218
+ bundleManager.unlock(bundleNftId);
219
+
220
+ emit LogBundleServiceBundleActivated(bundleNftId);
221
+ }
222
+
223
+
224
+ function close(
225
+ IInstance instance,
226
+ NftId bundleNftId
227
+ )
228
+ external
229
+ virtual
230
+ restricted
231
+ {
232
+ // udpate bundle state
233
+ instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
234
+
235
+ // ensure no open policies attached to bundle
236
+ BundleManager bundleManager = instance.getBundleManager();
237
+ uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
238
+ if(openPolicies > 0) {
239
+ revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
240
+ }
241
+
242
+ // update set of active bundles
243
+ bundleManager.lock(bundleNftId);
244
+ }
245
+
246
+
247
+ function releaseCollateral(
248
+ IInstance instance,
249
+ NftId policyNftId,
250
+ NftId bundleNftId,
251
+ Amount collateralAmount
252
+ )
253
+ external
254
+ virtual
255
+ restricted()
256
+ {
257
+ instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
258
+ }
259
+
260
+ /// @dev unlinks policy from bundle
261
+ function unlinkPolicy(
262
+ IInstance instance,
263
+ NftId policyNftId
264
+ )
265
+ external
266
+ virtual
267
+ restricted
268
+ {
269
+ // ensure policy is closeable
270
+ if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
271
+ revert ErrorBundleServicePolicyNotCloseable(policyNftId);
272
+ }
273
+
274
+ instance.getBundleManager().unlinkPolicy(policyNftId);
275
+ }
276
+
277
+ /// @dev links policy to bundle
278
+ function _linkPolicy(IInstance instance, NftId policyNftId)
279
+ internal
280
+ {
281
+ InstanceReader instanceReader = instance.getInstanceReader();
282
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
283
+
284
+ // ensure policy has not yet been activated in a previous tx already
285
+ if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
286
+ revert BundleManager.ErrorBundleManagerPolicyAlreadyActivated(policyNftId);
287
+ }
288
+
289
+ BundleManager bundleManager = instance.getBundleManager();
290
+ bundleManager.linkPolicy(policyNftId);
291
+ }
292
+
293
+ function _getDomain() internal pure override returns(ObjectType) {
294
+ return BUNDLE();
295
+ }
296
+ }
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
+ import {BundleService} from "./BundleService.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
10
+
11
+ contract BundleServiceManager is ProxyManager {
12
+
13
+ BundleService private _bundleService;
14
+
15
+ /// @dev initializes proxy manager with pool service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ BundleService bundleSrv = new BundleService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(bundleSrv),
27
+ data,
28
+ salt);
29
+
30
+ _bundleService = BundleService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getBundleService()
35
+ external
36
+ view
37
+ returns (BundleService)
38
+ {
39
+ return _bundleService;
40
+ }
41
+
42
+ }