@etherisc/gif-next 0.0.2-f831797-539 → 0.0.2-f981ede-436

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 (628) hide show
  1. package/README.md +38 -86
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -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 +358 -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 +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +251 -318
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +300 -208
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +233 -301
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +278 -1906
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +318 -70
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +402 -2689
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +781 -335
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +379 -265
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3581 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +301 -256
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +251 -297
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1520 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1402 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +794 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +891 -0
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +310 -244
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1179 -0
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +281 -307
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1594 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +762 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +174 -202
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +146 -153
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +191 -18
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -149
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  157. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  158. package/artifacts/contracts/registry/Registry.sol/Registry.json +453 -34
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -97
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  173. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  174. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +160 -78
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1696 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  179. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  180. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +100 -113
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  182. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  183. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  184. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +196 -52
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  188. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +223 -198
  189. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  190. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  191. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  192. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  194. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  201. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1015 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  211. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  217. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  219. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  221. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  222. package/artifacts/contracts/shared/Service.sol/Service.json +103 -21
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  283. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  285. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  288. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  289. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  291. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  293. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  297. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  298. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  299. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  301. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  303. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  304. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  305. package/contracts/authorization/AccessAdmin.sol +591 -0
  306. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  307. package/contracts/authorization/Authorization.sol +218 -0
  308. package/contracts/authorization/IAccess.sol +48 -0
  309. package/contracts/authorization/IAccessAdmin.sol +136 -0
  310. package/contracts/authorization/IAuthorization.sol +54 -0
  311. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  312. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  313. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  314. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  315. package/contracts/distribution/BasicDistribution.sol +149 -0
  316. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  317. package/contracts/{components → distribution}/Distribution.sol +178 -157
  318. package/contracts/distribution/DistributionService.sol +337 -0
  319. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  320. package/contracts/distribution/IDistributionComponent.sol +52 -0
  321. package/contracts/{instance/service → distribution}/IDistributionService.sol +37 -38
  322. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  323. package/contracts/instance/IInstance.sol +60 -67
  324. package/contracts/instance/IInstanceService.sol +56 -24
  325. package/contracts/instance/Instance.sol +175 -216
  326. package/contracts/instance/InstanceAdmin.sol +266 -0
  327. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  328. package/contracts/instance/InstanceReader.sol +172 -61
  329. package/contracts/instance/InstanceService.sol +310 -356
  330. package/contracts/instance/InstanceServiceManager.sol +12 -26
  331. package/contracts/instance/InstanceStore.sol +277 -0
  332. package/contracts/instance/base/BalanceStore.sol +123 -0
  333. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  334. package/contracts/instance/base/ObjectCounter.sol +21 -0
  335. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  336. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  337. package/contracts/instance/module/IAccess.sol +19 -20
  338. package/contracts/instance/module/IBundle.sol +9 -9
  339. package/contracts/instance/module/IComponents.sol +21 -5
  340. package/contracts/instance/module/IDistribution.sol +6 -6
  341. package/contracts/instance/module/IPolicy.sol +28 -16
  342. package/contracts/instance/module/IRisk.sol +1 -1
  343. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  344. package/contracts/oracle/BasicOracle.sol +48 -0
  345. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  346. package/contracts/oracle/IOracle.sol +36 -0
  347. package/contracts/oracle/IOracleComponent.sol +33 -0
  348. package/contracts/oracle/IOracleService.sol +65 -0
  349. package/contracts/oracle/Oracle.sol +170 -0
  350. package/contracts/oracle/OracleService.sol +278 -0
  351. package/contracts/oracle/OracleServiceManager.sol +39 -0
  352. package/contracts/pool/BasicPool.sol +164 -0
  353. package/contracts/pool/BasicPoolAuthorization.sol +55 -0
  354. package/contracts/pool/BundleService.sol +405 -0
  355. package/contracts/pool/BundleServiceManager.sol +39 -0
  356. package/contracts/pool/IBundleService.sol +127 -0
  357. package/contracts/pool/IPoolComponent.sol +58 -0
  358. package/contracts/pool/IPoolService.sol +152 -0
  359. package/contracts/pool/Pool.sol +332 -0
  360. package/contracts/pool/PoolService.sol +536 -0
  361. package/contracts/pool/PoolServiceManager.sol +39 -0
  362. package/contracts/product/ApplicationService.sol +230 -0
  363. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  364. package/contracts/product/BasicProduct.sol +82 -0
  365. package/contracts/product/BasicProductAuthorization.sol +43 -0
  366. package/contracts/product/ClaimService.sol +417 -0
  367. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  368. package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
  369. package/contracts/product/IClaimService.sol +99 -0
  370. package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
  371. package/contracts/product/IPricingService.sol +39 -0
  372. package/contracts/product/IProductComponent.sol +40 -0
  373. package/contracts/product/IProductService.sol +33 -0
  374. package/contracts/product/PolicyService.sol +476 -0
  375. package/contracts/product/PolicyServiceManager.sol +39 -0
  376. package/contracts/product/PricingService.sol +300 -0
  377. package/contracts/product/PricingServiceManager.sol +39 -0
  378. package/contracts/{components → product}/Product.sol +209 -110
  379. package/contracts/product/ProductService.sol +99 -0
  380. package/contracts/product/ProductServiceManager.sol +39 -0
  381. package/contracts/registry/ChainNft.sol +16 -1
  382. package/contracts/registry/IRegistry.sol +61 -26
  383. package/contracts/registry/IRegistryService.sol +44 -42
  384. package/contracts/registry/ITransferInterceptor.sol +1 -0
  385. package/contracts/registry/Registry.sol +251 -139
  386. package/contracts/registry/RegistryAdmin.sol +365 -0
  387. package/contracts/registry/RegistryService.sol +70 -101
  388. package/contracts/registry/RegistryServiceManager.sol +23 -32
  389. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  390. package/contracts/registry/ReleaseRegistry.sol +487 -0
  391. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  392. package/contracts/registry/TokenRegistry.sol +261 -62
  393. package/contracts/shared/Component.sol +280 -0
  394. package/contracts/shared/ComponentService.sol +651 -0
  395. package/contracts/shared/ComponentServiceManager.sol +35 -0
  396. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  397. package/contracts/shared/ERC165.sol +1 -1
  398. package/contracts/{components → shared}/IComponent.sol +23 -27
  399. package/contracts/shared/IComponentService.sol +108 -0
  400. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  401. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  402. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  403. package/contracts/shared/INftOwnable.sol +2 -2
  404. package/contracts/shared/IPolicyHolder.sol +29 -10
  405. package/contracts/shared/IRegistryLinked.sol +0 -1
  406. package/contracts/shared/IService.sol +15 -8
  407. package/contracts/shared/InitializableCustom.sol +177 -0
  408. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  409. package/contracts/shared/KeyValueStore.sol +131 -0
  410. package/contracts/shared/Lifecycle.sol +77 -0
  411. package/contracts/shared/NftIdSet.sol +65 -0
  412. package/contracts/shared/NftOwnable.sol +3 -16
  413. package/contracts/shared/PolicyHolder.sol +40 -19
  414. package/contracts/shared/Registerable.sol +13 -12
  415. package/contracts/shared/RegistryLinked.sol +0 -5
  416. package/contracts/shared/Service.sol +47 -23
  417. package/contracts/shared/TokenHandler.sol +27 -2
  418. package/contracts/staking/IStaking.sol +167 -0
  419. package/contracts/staking/IStakingService.sol +160 -0
  420. package/contracts/staking/StakeManagerLib.sol +231 -0
  421. package/contracts/staking/Staking.sol +516 -0
  422. package/contracts/staking/StakingLifecycle.sol +23 -0
  423. package/contracts/staking/StakingManager.sol +50 -0
  424. package/contracts/staking/StakingReader.sol +183 -0
  425. package/contracts/staking/StakingService.sol +411 -0
  426. package/contracts/staking/StakingServiceManager.sol +44 -0
  427. package/contracts/staking/StakingStore.sol +605 -0
  428. package/contracts/staking/TargetManagerLib.sol +207 -0
  429. package/contracts/{types → type}/AddressSet.sol +1 -1
  430. package/contracts/type/Amount.sol +135 -0
  431. package/contracts/{types → type}/Blocknumber.sol +20 -3
  432. package/contracts/{types → type}/ClaimId.sol +25 -2
  433. package/contracts/{types → type}/Fee.sol +33 -24
  434. package/contracts/{types → type}/NftId.sol +14 -16
  435. package/contracts/{types → type}/NftIdSet.sol +2 -2
  436. package/contracts/type/ObjectType.sol +271 -0
  437. package/contracts/{types → type}/PayoutId.sol +33 -5
  438. package/contracts/{types → type}/Referral.sol +2 -1
  439. package/contracts/type/RequestId.sol +75 -0
  440. package/contracts/{types → type}/RiskId.sol +1 -1
  441. package/contracts/type/RoleId.sol +174 -0
  442. package/contracts/{types → type}/Seconds.sol +27 -0
  443. package/contracts/type/Selector.sol +102 -0
  444. package/contracts/{types → type}/StateId.sol +33 -4
  445. package/contracts/type/String.sol +53 -0
  446. package/contracts/{types → type}/Timestamp.sol +10 -1
  447. package/contracts/{types → type}/UFixed.sol +34 -9
  448. package/contracts/{types → type}/Version.sol +4 -2
  449. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  450. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  451. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  452. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  453. package/package.json +8 -5
  454. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  455. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  456. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  457. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  460. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  461. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  462. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  464. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  466. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  467. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  468. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  469. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  474. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  476. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  477. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  479. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  481. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  483. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  485. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  487. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  489. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  491. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  493. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  495. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  499. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  503. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  506. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  508. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  510. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  511. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  512. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  514. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  516. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  517. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  518. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  519. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  520. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  521. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  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 -582
  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/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  529. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  530. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  531. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  532. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  533. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  534. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  535. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  536. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  537. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  538. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  539. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  540. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  541. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  542. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  543. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  544. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  545. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  546. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  548. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  550. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  552. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  554. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  556. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  557. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  558. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  560. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  561. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  562. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  564. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  566. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  568. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  570. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  572. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  574. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  576. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  577. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  580. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  582. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  584. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  586. package/contracts/components/Component.sol +0 -241
  587. package/contracts/components/IDistributionComponent.sol +0 -71
  588. package/contracts/components/IPoolComponent.sol +0 -113
  589. package/contracts/components/IProductComponent.sol +0 -40
  590. package/contracts/components/Pool.sol +0 -299
  591. package/contracts/instance/InstanceAccessManager.sol +0 -297
  592. package/contracts/instance/base/ComponentService.sol +0 -134
  593. package/contracts/instance/base/KeyValueStore.sol +0 -175
  594. package/contracts/instance/base/Lifecycle.sol +0 -109
  595. package/contracts/instance/module/ISetup.sol +0 -33
  596. package/contracts/instance/module/ITreasury.sol +0 -23
  597. package/contracts/instance/service/ApplicationService.sol +0 -350
  598. package/contracts/instance/service/BundleService.sol +0 -336
  599. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  600. package/contracts/instance/service/ClaimService.sol +0 -151
  601. package/contracts/instance/service/DistributionService.sol +0 -450
  602. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  603. package/contracts/instance/service/IBundleService.sol +0 -62
  604. package/contracts/instance/service/IClaimService.sol +0 -61
  605. package/contracts/instance/service/IPoolService.sol +0 -35
  606. package/contracts/instance/service/IProductService.sol +0 -40
  607. package/contracts/instance/service/PolicyService.sol +0 -403
  608. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  609. package/contracts/instance/service/PoolService.sol +0 -163
  610. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  611. package/contracts/instance/service/ProductService.sol +0 -233
  612. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  613. package/contracts/registry/RegistryAccessManager.sol +0 -216
  614. package/contracts/registry/ReleaseManager.sol +0 -322
  615. package/contracts/shared/ContractDeployerLib.sol +0 -72
  616. package/contracts/test/TestFee.sol +0 -25
  617. package/contracts/test/TestRegisterable.sol +0 -18
  618. package/contracts/test/TestRoleId.sol +0 -14
  619. package/contracts/test/TestService.sol +0 -25
  620. package/contracts/test/TestToken.sol +0 -26
  621. package/contracts/test/TestVersion.sol +0 -44
  622. package/contracts/test/TestVersionable.sol +0 -17
  623. package/contracts/types/ChainId.sol +0 -38
  624. package/contracts/types/NumberId.sol +0 -52
  625. package/contracts/types/ObjectType.sol +0 -157
  626. package/contracts/types/RoleId.sol +0 -95
  627. /package/contracts/{types → type}/DistributorType.sol +0 -0
  628. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,170 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
+ import {IOracleComponent} from "./IOracleComponent.sol";
10
+ import {IOracleService} from "./IOracleService.sol";
11
+ import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
13
+ import {NftId, NftIdLib} from "../type/NftId.sol";
14
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
15
+ import {InstanceReader} from "../instance/InstanceReader.sol";
16
+ import {RequestId} from "../type/RequestId.sol";
17
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+
20
+
21
+ abstract contract Oracle is
22
+ InstanceLinkedComponent,
23
+ IOracleComponent
24
+ {
25
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Oracle")) - 1)) & ~bytes32(uint256(0xff));
26
+ bytes32 public constant ORACLE_STORAGE_LOCATION_V1 = 0xaab7c0ea03d290e56d6c060e0733d3ebcbe647f7694616a2ec52738a64b2f900;
27
+
28
+ struct OracleStorage {
29
+ IComponentService _componentService;
30
+ IOracleService _oracleService;
31
+ }
32
+
33
+
34
+ function register()
35
+ external
36
+ virtual
37
+ onlyOwner()
38
+ {
39
+ _getOracleStorage()._componentService.registerOracle();
40
+ }
41
+
42
+
43
+ function request(
44
+ RequestId requestId,
45
+ NftId requesterId,
46
+ bytes calldata requestData,
47
+ Timestamp expiryAt
48
+ )
49
+ external
50
+ virtual
51
+ restricted()
52
+ {
53
+ _request(requestId, requesterId, requestData, expiryAt);
54
+ }
55
+
56
+
57
+ function cancel(
58
+ RequestId requestId
59
+ )
60
+ external
61
+ virtual
62
+ restricted()
63
+ {
64
+ _cancel(requestId);
65
+ }
66
+
67
+
68
+ /// @dev Not relevant for oracle components, always returns false.
69
+ function isVerifying()
70
+ external
71
+ virtual
72
+ view
73
+ returns (bool verifying)
74
+ {
75
+ return false;
76
+ }
77
+
78
+ function withdrawFees(Amount amount)
79
+ external
80
+ virtual
81
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
82
+ onlyOwner()
83
+ restricted()
84
+ returns (Amount withdrawnAmount)
85
+ {
86
+ revert ErrorOracleNotImplemented("withdrawFees");
87
+ }
88
+
89
+
90
+ function _initializeOracle(
91
+ address registry,
92
+ NftId instanceNftId,
93
+ IAuthorization authorization,
94
+ address initialOwner,
95
+ string memory name,
96
+ address token,
97
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
98
+ bytes memory componentData // component specifidc data
99
+ )
100
+ internal
101
+ virtual
102
+ onlyInitializing()
103
+ {
104
+ _initializeInstanceLinkedComponent(
105
+ registry,
106
+ instanceNftId,
107
+ name,
108
+ token,
109
+ ORACLE(),
110
+ authorization,
111
+ true,
112
+ initialOwner,
113
+ registryData,
114
+ componentData);
115
+
116
+ OracleStorage storage $ = _getOracleStorage();
117
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
118
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
119
+
120
+ registerInterface(type(IOracleComponent).interfaceId);
121
+ }
122
+
123
+
124
+ /// @dev Internal function for handling requests.
125
+ /// Empty implementation.
126
+ /// Overwrite this function to implement use case specific handling for oracle calls.
127
+ function _request(
128
+ RequestId requestId,
129
+ NftId requesterId,
130
+ bytes calldata requestData,
131
+ Timestamp expiryAt
132
+ )
133
+ internal
134
+ virtual
135
+ {
136
+ }
137
+
138
+
139
+ /// @dev Internal function for cancelling requests.
140
+ /// Empty implementation.
141
+ /// Overwrite this function to implement use case specific cancelling.
142
+ function _cancel(
143
+ RequestId requestId
144
+ )
145
+ internal
146
+ virtual
147
+ {
148
+ }
149
+
150
+
151
+ /// @dev Internal function for handling oracle responses.
152
+ /// Default implementation sends response back to oracle service.
153
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
154
+ function _respond(
155
+ RequestId requestId,
156
+ bytes memory responseData
157
+ )
158
+ internal
159
+ virtual
160
+ {
161
+ _getOracleStorage()._oracleService.respond(
162
+ requestId, responseData);
163
+ }
164
+
165
+ function _getOracleStorage() private pure returns (OracleStorage storage $) {
166
+ assembly {
167
+ $.slot := ORACLE_STORAGE_LOCATION_V1
168
+ }
169
+ }
170
+ }
@@ -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,39 @@
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 {OracleService} from "./OracleService.sol";
7
+
8
+ contract OracleServiceManager is ProxyManager {
9
+
10
+ OracleService private _oracleService;
11
+
12
+ /// @dev initializes proxy manager with service implementation and deploys instance
13
+ constructor(
14
+ address authority,
15
+ address registryAddress,
16
+ bytes32 salt
17
+ )
18
+ ProxyManager(registryAddress)
19
+ {
20
+ OracleService orclSrv = new OracleService{salt: salt}();
21
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
22
+ IVersionable versionable = deployDetermenistic(
23
+ address(orclSrv),
24
+ data,
25
+ salt);
26
+
27
+ _oracleService = OracleService(address(versionable));
28
+ }
29
+
30
+ //--- view functions ----------------------------------------------------//
31
+ function getOracleService()
32
+ external
33
+ view
34
+ returns (OracleService oracleService)
35
+ {
36
+ return _oracleService;
37
+ }
38
+
39
+ }
@@ -0,0 +1,164 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../type/Amount.sol";
5
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
6
+ import {Fee, FeeLib} from "../type/Fee.sol";
7
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
+ import {IBundleService} from "./IBundleService.sol";
9
+ import {IPoolComponent} from "./IPoolComponent.sol";
10
+ import {IPoolService} from "./IPoolService.sol";
11
+ import {IComponents} from "../instance/module/IComponents.sol";
12
+ import {IComponentService} from "../shared/IComponentService.sol";
13
+ import {NftId, NftIdLib} from "../type/NftId.sol";
14
+ import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
15
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {TokenHandler} from "../shared/TokenHandler.sol";
18
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
19
+
20
+ import {Pool} from "./Pool.sol";
21
+
22
+ abstract contract BasicPool is
23
+ Pool
24
+ {
25
+
26
+ function _initializeBasicPool(
27
+ address registry,
28
+ NftId instanceNftId,
29
+ IAuthorization authorization,
30
+ address token,
31
+ string memory name,
32
+ address initialOwner
33
+ )
34
+ internal
35
+ virtual
36
+ onlyInitializing()
37
+ {
38
+ _initializePool(
39
+ registry,
40
+ instanceNftId,
41
+ name,
42
+ token,
43
+ authorization,
44
+ false, // isInterceptingNftTransfers,
45
+ initialOwner,
46
+ "", // registryData
47
+ ""); // componentData
48
+ }
49
+
50
+ function stake(
51
+ NftId bundleNftId,
52
+ Amount amount
53
+ )
54
+ public
55
+ virtual
56
+ restricted()
57
+ onlyBundleOwner(bundleNftId)
58
+ {
59
+ _stake(bundleNftId, amount);
60
+ }
61
+
62
+
63
+ function unstake(
64
+ NftId bundleNftId,
65
+ Amount amount
66
+ )
67
+ public
68
+ virtual
69
+ restricted()
70
+ onlyBundleOwner(bundleNftId)
71
+ {
72
+ _unstake(bundleNftId, amount);
73
+ }
74
+
75
+
76
+ function extend(
77
+ NftId bundleNftId,
78
+ Seconds lifetimeExtension
79
+ )
80
+ public
81
+ virtual
82
+ restricted()
83
+ onlyBundleOwner(bundleNftId)
84
+ {
85
+ _extend(bundleNftId, lifetimeExtension);
86
+ }
87
+
88
+
89
+ function lockBundle(NftId bundleNftId)
90
+ public
91
+ virtual
92
+ restricted()
93
+ onlyBundleOwner(bundleNftId)
94
+ {
95
+ _lockBundle(bundleNftId);
96
+ }
97
+
98
+
99
+ function unlockBundle(NftId bundleNftId)
100
+ public
101
+ virtual
102
+ restricted()
103
+ onlyBundleOwner(bundleNftId)
104
+ {
105
+ _unlockBundle(bundleNftId);
106
+ }
107
+
108
+
109
+ function close(NftId bundleNftId)
110
+ public
111
+ virtual
112
+ restricted()
113
+ onlyBundleOwner(bundleNftId)
114
+ {
115
+ _close(bundleNftId);
116
+ }
117
+
118
+
119
+ function setBundleFee(
120
+ NftId bundleNftId,
121
+ Fee memory fee
122
+ )
123
+ public
124
+ virtual
125
+ restricted()
126
+ onlyBundleOwner(bundleNftId)
127
+ {
128
+ _setBundleFee(bundleNftId, fee);
129
+ }
130
+
131
+
132
+ function setMaxCapitalAmount(Amount maxCapitalAmount)
133
+ public
134
+ virtual
135
+ restricted()
136
+ onlyOwner()
137
+ {
138
+ _setMaxCapitalAmount(maxCapitalAmount);
139
+ }
140
+
141
+
142
+ function setBundleOwnerRole(RoleId bundleOwnerRole)
143
+ public
144
+ virtual
145
+ restricted()
146
+ onlyOwner()
147
+ {
148
+ _setBundleOwnerRole(bundleOwnerRole);
149
+ }
150
+
151
+
152
+ function setFees(
153
+ Fee memory poolFee,
154
+ Fee memory stakingFee,
155
+ Fee memory performanceFee
156
+ )
157
+ public
158
+ virtual
159
+ restricted()
160
+ onlyOwner()
161
+ {
162
+ _setPoolFees(poolFee, stakingFee, performanceFee);
163
+ }
164
+ }
@@ -0,0 +1,55 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicPool} from "./BasicPool.sol";
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IPoolComponent} from "./IPoolComponent.sol";
9
+ import {POOL} from "../type/ObjectType.sol";
10
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
11
+ import {RoleId} from "../type/RoleId.sol";
12
+
13
+
14
+ contract BasicPoolAuthorization
15
+ is Authorization
16
+ {
17
+
18
+ constructor(string memory poolName)
19
+ Authorization(poolName)
20
+ {}
21
+
22
+ function _setupTargets()
23
+ internal
24
+ virtual override
25
+ {
26
+ _addComponentTargetWithRole(POOL()); // basic pool target
27
+ }
28
+
29
+
30
+ function _setupTargetAuthorizations()
31
+ internal
32
+ virtual override
33
+ {
34
+ IAccess.FunctionInfo[] storage functions;
35
+
36
+ // authorize public role (open access to any account, only allows to lock target)
37
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
38
+ _authorize(functions, BasicPool.stake.selector, "stake");
39
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
40
+ _authorize(functions, BasicPool.extend.selector, "extend");
41
+ _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
42
+ _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
43
+ _authorize(functions, BasicPool.close.selector, "close");
44
+ _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
45
+
46
+ _authorize(functions, BasicPool.setMaxCapitalAmount.selector, "setMaxCapitalAmount");
47
+ _authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
48
+ _authorize(functions, BasicPool.setFees.selector, "setFees");
49
+
50
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
51
+
52
+ _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
53
+ }
54
+ }
55
+