@etherisc/gif-next 0.0.2-f831797-539 → 0.0.2-f946ccd-184

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 (667) hide show
  1. package/README.md +57 -88
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -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 +1013 -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 +1342 -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 +220 -509
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +282 -227
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +254 -335
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1463 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1712 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +278 -1906
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +318 -70
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +335 -2711
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +904 -338
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +350 -343
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +132 -111
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +305 -170
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +293 -383
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +802 -0
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +412 -135
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  120. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +297 -324
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.json +1034 -0
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1474 -0
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +726 -0
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +354 -397
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1346 -0
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +814 -0
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +129 -168
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +867 -0
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → product/IPricingService.sol/IPricingService.json} +214 -217
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +81 -65
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1239 -0
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +770 -0
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  162. package/artifacts/contracts/product/Product.sol/Product.json +1054 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +394 -21
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -149
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +793 -37
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -204
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +126 -95
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  192. package/artifacts/contracts/shared/Component.sol/Component.json +685 -0
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +146 -142
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  202. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +193 -75
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +215 -227
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  221. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  222. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  224. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  226. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +194 -215
  227. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +12 -70
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +18 -106
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  241. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Service.sol/Service.json +88 -113
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  307. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  320. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  326. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  327. package/contracts/authorization/AccessAdmin.sol +592 -0
  328. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  329. package/contracts/authorization/Authorization.sol +217 -0
  330. package/contracts/authorization/IAccess.sol +48 -0
  331. package/contracts/authorization/IAccessAdmin.sol +135 -0
  332. package/contracts/authorization/IAuthorization.sol +54 -0
  333. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  334. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  335. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  336. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  337. package/contracts/distribution/BasicDistribution.sol +138 -0
  338. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  339. package/contracts/{components → distribution}/Distribution.sol +178 -163
  340. package/contracts/distribution/DistributionService.sol +336 -0
  341. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  342. package/contracts/distribution/IDistributionComponent.sol +52 -0
  343. package/contracts/{instance/service → distribution}/IDistributionService.sol +41 -38
  344. package/contracts/examples/fire/FirePool.sol +75 -0
  345. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  346. package/contracts/examples/fire/FireProduct.sol +324 -0
  347. package/contracts/examples/fire/FireProductAuthorization.sol +35 -0
  348. package/contracts/examples/fire/FireUSD.sol +26 -0
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  350. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  353. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  354. package/contracts/instance/IInstance.sol +43 -73
  355. package/contracts/instance/IInstanceService.sol +56 -24
  356. package/contracts/instance/Instance.sol +160 -226
  357. package/contracts/instance/InstanceAdmin.sol +285 -0
  358. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  359. package/contracts/instance/InstanceReader.sol +201 -65
  360. package/contracts/instance/InstanceService.sol +333 -356
  361. package/contracts/instance/InstanceServiceManager.sol +14 -29
  362. package/contracts/instance/InstanceStore.sol +287 -0
  363. package/contracts/instance/base/BalanceStore.sol +123 -0
  364. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  365. package/contracts/instance/base/ObjectCounter.sol +21 -0
  366. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  367. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  368. package/contracts/instance/module/IAccess.sol +19 -20
  369. package/contracts/instance/module/IBundle.sol +8 -9
  370. package/contracts/instance/module/IComponents.sol +20 -9
  371. package/contracts/instance/module/IDistribution.sol +6 -6
  372. package/contracts/instance/module/IPolicy.sol +47 -35
  373. package/contracts/instance/module/IRisk.sol +1 -1
  374. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  375. package/contracts/oracle/BasicOracle.sol +48 -0
  376. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  377. package/contracts/oracle/IOracle.sol +36 -0
  378. package/contracts/oracle/IOracleComponent.sol +33 -0
  379. package/contracts/oracle/IOracleService.sol +65 -0
  380. package/contracts/oracle/Oracle.sol +167 -0
  381. package/contracts/oracle/OracleService.sol +281 -0
  382. package/contracts/oracle/OracleServiceManager.sol +39 -0
  383. package/contracts/pool/BasicPool.sol +166 -0
  384. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  385. package/contracts/pool/BundleService.sol +438 -0
  386. package/contracts/pool/BundleServiceManager.sol +39 -0
  387. package/contracts/pool/IBundleService.sol +134 -0
  388. package/contracts/pool/IPoolComponent.sol +58 -0
  389. package/contracts/pool/IPoolService.sol +160 -0
  390. package/contracts/pool/Pool.sol +326 -0
  391. package/contracts/pool/PoolService.sol +508 -0
  392. package/contracts/pool/PoolServiceManager.sol +39 -0
  393. package/contracts/product/ApplicationService.sol +247 -0
  394. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  395. package/contracts/product/BasicProduct.sol +53 -0
  396. package/contracts/product/BasicProductAuthorization.sol +43 -0
  397. package/contracts/product/ClaimService.sol +546 -0
  398. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  399. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  400. package/contracts/product/IClaimService.sol +122 -0
  401. package/contracts/product/IPolicyService.sol +77 -0
  402. package/contracts/product/IPricingService.sol +39 -0
  403. package/contracts/product/IProductComponent.sol +39 -0
  404. package/contracts/product/IRiskService.sol +33 -0
  405. package/contracts/product/PolicyService.sol +651 -0
  406. package/contracts/product/PolicyServiceManager.sol +39 -0
  407. package/contracts/product/PricingService.sol +300 -0
  408. package/contracts/product/PricingServiceManager.sol +39 -0
  409. package/contracts/product/Product.sol +425 -0
  410. package/contracts/product/RiskService.sol +96 -0
  411. package/contracts/product/RiskServiceManager.sol +39 -0
  412. package/contracts/registry/ChainNft.sol +80 -32
  413. package/contracts/registry/IRegistry.sol +94 -25
  414. package/contracts/registry/IRegistryService.sol +44 -42
  415. package/contracts/registry/ITransferInterceptor.sol +1 -0
  416. package/contracts/registry/Registry.sol +439 -201
  417. package/contracts/registry/RegistryAdmin.sol +464 -0
  418. package/contracts/registry/RegistryService.sol +70 -101
  419. package/contracts/registry/RegistryServiceManager.sol +23 -32
  420. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  421. package/contracts/registry/ReleaseRegistry.sol +491 -0
  422. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  423. package/contracts/registry/TokenRegistry.sol +261 -62
  424. package/contracts/shared/Component.sol +268 -0
  425. package/contracts/shared/ComponentService.sol +641 -0
  426. package/contracts/shared/ComponentServiceManager.sol +38 -0
  427. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  428. package/contracts/shared/ContractLib.sol +38 -0
  429. package/contracts/shared/IComponent.sol +70 -0
  430. package/contracts/shared/IComponentService.sol +108 -0
  431. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  432. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  433. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  434. package/contracts/shared/INftOwnable.sol +2 -2
  435. package/contracts/shared/IPolicyHolder.sol +23 -14
  436. package/contracts/shared/IRegistryLinked.sol +0 -1
  437. package/contracts/shared/IService.sol +15 -8
  438. package/contracts/shared/InitializableCustom.sol +177 -0
  439. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  440. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  441. package/contracts/shared/KeyValueStore.sol +131 -0
  442. package/contracts/shared/Lifecycle.sol +77 -0
  443. package/contracts/shared/NftIdSet.sol +65 -0
  444. package/contracts/shared/NftOwnable.sol +10 -23
  445. package/contracts/shared/PolicyHolder.sol +19 -42
  446. package/contracts/shared/Registerable.sol +17 -16
  447. package/contracts/shared/RegistryLinked.sol +3 -7
  448. package/contracts/shared/Service.sol +56 -27
  449. package/contracts/shared/TokenHandler.sol +115 -9
  450. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  451. package/contracts/staking/IStaking.sol +168 -0
  452. package/contracts/staking/IStakingService.sol +160 -0
  453. package/contracts/staking/StakeManagerLib.sol +224 -0
  454. package/contracts/staking/Staking.sol +498 -0
  455. package/contracts/staking/StakingLifecycle.sol +23 -0
  456. package/contracts/staking/StakingManager.sol +52 -0
  457. package/contracts/staking/StakingReader.sol +183 -0
  458. package/contracts/staking/StakingService.sol +407 -0
  459. package/contracts/staking/StakingServiceManager.sol +44 -0
  460. package/contracts/staking/StakingStore.sol +605 -0
  461. package/contracts/staking/TargetManagerLib.sol +211 -0
  462. package/contracts/{types → type}/AddressSet.sol +1 -1
  463. package/contracts/type/Amount.sol +135 -0
  464. package/contracts/{types → type}/Blocknumber.sol +26 -3
  465. package/contracts/{types → type}/ClaimId.sol +25 -2
  466. package/contracts/{types → type}/Fee.sol +33 -24
  467. package/contracts/{types → type}/NftId.sol +15 -16
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +275 -0
  470. package/contracts/{types → type}/PayoutId.sol +33 -5
  471. package/contracts/{types → type}/Referral.sol +2 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +16 -2
  474. package/contracts/type/RoleId.sol +174 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +34 -4
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +21 -2
  480. package/contracts/{types → type}/UFixed.sol +34 -9
  481. package/contracts/{types → type}/Version.sol +4 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  483. package/contracts/{shared → upgradeability}/ProxyManager.sol +92 -30
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  486. package/package.json +8 -5
  487. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  494. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  495. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  496. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  497. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  498. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  499. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  500. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  502. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  504. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  505. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  507. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  509. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  511. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  512. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  514. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  516. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  518. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  520. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  522. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  524. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  526. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  528. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  532. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  538. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  540. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  542. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  544. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  546. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  548. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  549. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  550. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  551. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  552. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  553. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  556. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  563. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  564. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  565. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  566. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  568. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  570. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  572. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  574. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  576. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  577. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  578. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  579. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  580. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  582. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  584. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  586. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  588. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  590. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  592. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  594. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  595. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  596. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  598. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  600. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  602. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  604. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  606. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  608. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  610. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  613. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  615. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  617. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  619. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  621. package/contracts/components/Component.sol +0 -241
  622. package/contracts/components/IComponent.sol +0 -74
  623. package/contracts/components/IDistributionComponent.sol +0 -71
  624. package/contracts/components/IPoolComponent.sol +0 -113
  625. package/contracts/components/IProductComponent.sol +0 -40
  626. package/contracts/components/Pool.sol +0 -299
  627. package/contracts/components/Product.sol +0 -293
  628. package/contracts/instance/InstanceAccessManager.sol +0 -297
  629. package/contracts/instance/base/ComponentService.sol +0 -134
  630. package/contracts/instance/base/KeyValueStore.sol +0 -175
  631. package/contracts/instance/base/Lifecycle.sol +0 -109
  632. package/contracts/instance/module/ISetup.sol +0 -33
  633. package/contracts/instance/module/ITreasury.sol +0 -23
  634. package/contracts/instance/service/ApplicationService.sol +0 -350
  635. package/contracts/instance/service/BundleService.sol +0 -336
  636. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  637. package/contracts/instance/service/ClaimService.sol +0 -151
  638. package/contracts/instance/service/DistributionService.sol +0 -450
  639. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  640. package/contracts/instance/service/IBundleService.sol +0 -62
  641. package/contracts/instance/service/IClaimService.sol +0 -61
  642. package/contracts/instance/service/IPolicyService.sol +0 -72
  643. package/contracts/instance/service/IPoolService.sol +0 -35
  644. package/contracts/instance/service/IProductService.sol +0 -40
  645. package/contracts/instance/service/PolicyService.sol +0 -403
  646. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  647. package/contracts/instance/service/PoolService.sol +0 -163
  648. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  649. package/contracts/instance/service/ProductService.sol +0 -233
  650. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  651. package/contracts/registry/RegistryAccessManager.sol +0 -216
  652. package/contracts/registry/ReleaseManager.sol +0 -322
  653. package/contracts/shared/ContractDeployerLib.sol +0 -72
  654. package/contracts/test/TestFee.sol +0 -25
  655. package/contracts/test/TestRegisterable.sol +0 -18
  656. package/contracts/test/TestRoleId.sol +0 -14
  657. package/contracts/test/TestService.sol +0 -25
  658. package/contracts/test/TestToken.sol +0 -26
  659. package/contracts/test/TestVersion.sol +0 -44
  660. package/contracts/test/TestVersionable.sol +0 -17
  661. package/contracts/types/ChainId.sol +0 -38
  662. package/contracts/types/NumberId.sol +0 -52
  663. package/contracts/types/ObjectType.sol +0 -157
  664. package/contracts/types/RoleId.sol +0 -95
  665. package/contracts/types/Seconds.sol +0 -54
  666. /package/contracts/{types → type}/DistributorType.sol +0 -0
  667. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,167 @@
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 {NftId} from "../type/NftId.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
+ import {RequestId} from "../type/RequestId.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
15
+
16
+
17
+ abstract contract Oracle is
18
+ InstanceLinkedComponent,
19
+ IOracleComponent
20
+ {
21
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Oracle")) - 1)) & ~bytes32(uint256(0xff));
22
+ bytes32 public constant ORACLE_STORAGE_LOCATION_V1 = 0xaab7c0ea03d290e56d6c060e0733d3ebcbe647f7694616a2ec52738a64b2f900;
23
+
24
+ struct OracleStorage {
25
+ IComponentService _componentService;
26
+ IOracleService _oracleService;
27
+ }
28
+
29
+
30
+ function register()
31
+ external
32
+ virtual
33
+ onlyOwner()
34
+ {
35
+ _getOracleStorage()._componentService.registerOracle();
36
+ }
37
+
38
+
39
+ function request(
40
+ RequestId requestId,
41
+ NftId requesterId,
42
+ bytes calldata requestData,
43
+ Timestamp expiryAt
44
+ )
45
+ external
46
+ virtual
47
+ restricted()
48
+ {
49
+ _request(requestId, requesterId, requestData, expiryAt);
50
+ }
51
+
52
+
53
+ function cancel(
54
+ RequestId requestId
55
+ )
56
+ external
57
+ virtual
58
+ restricted()
59
+ {
60
+ _cancel(requestId);
61
+ }
62
+
63
+
64
+ /// @dev Not relevant for oracle components, always returns false.
65
+ function isVerifying()
66
+ external
67
+ virtual
68
+ view
69
+ returns (bool verifying)
70
+ {
71
+ return false;
72
+ }
73
+
74
+ /// @dev Not relevant for oracle components
75
+ function withdrawFees(Amount amount)
76
+ external
77
+ virtual
78
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
79
+ onlyOwner()
80
+ restricted()
81
+ returns (Amount withdrawnAmount)
82
+ {
83
+ revert ErrorOracleNotImplemented("withdrawFees");
84
+ }
85
+
86
+
87
+ function _initializeOracle(
88
+ address registry,
89
+ NftId instanceNftId,
90
+ IAuthorization authorization,
91
+ address initialOwner,
92
+ string memory name,
93
+ address token,
94
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
95
+ bytes memory componentData // component specifidc data
96
+ )
97
+ internal
98
+ virtual
99
+ onlyInitializing()
100
+ {
101
+ _initializeInstanceLinkedComponent(
102
+ registry,
103
+ instanceNftId,
104
+ name,
105
+ token,
106
+ ORACLE(),
107
+ authorization,
108
+ true,
109
+ initialOwner,
110
+ registryData,
111
+ componentData);
112
+
113
+ OracleStorage storage $ = _getOracleStorage();
114
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
115
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
116
+
117
+ _registerInterface(type(IOracleComponent).interfaceId);
118
+ }
119
+
120
+
121
+ /// @dev Internal function for handling requests.
122
+ /// Empty implementation.
123
+ /// Overwrite this function to implement use case specific handling for oracle calls.
124
+ function _request(
125
+ RequestId requestId,
126
+ NftId requesterId,
127
+ bytes calldata requestData,
128
+ Timestamp expiryAt
129
+ )
130
+ internal
131
+ virtual
132
+ {
133
+ }
134
+
135
+
136
+ /// @dev Internal function for cancelling requests.
137
+ /// Empty implementation.
138
+ /// Overwrite this function to implement use case specific cancelling.
139
+ function _cancel(
140
+ RequestId requestId
141
+ )
142
+ internal
143
+ virtual
144
+ {
145
+ }
146
+
147
+
148
+ /// @dev Internal function for handling oracle responses.
149
+ /// Default implementation sends response back to oracle service.
150
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
151
+ function _respond(
152
+ RequestId requestId,
153
+ bytes memory responseData
154
+ )
155
+ internal
156
+ virtual
157
+ {
158
+ _getOracleStorage()._oracleService.respond(
159
+ requestId, responseData);
160
+ }
161
+
162
+ function _getOracleStorage() private pure returns (OracleStorage storage $) {
163
+ assembly {
164
+ $.slot := ORACLE_STORAGE_LOCATION_V1
165
+ }
166
+ }
167
+ }
@@ -0,0 +1,281 @@
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
+ virtual override
31
+ initializer()
32
+ {
33
+ (
34
+ address registryAddress,
35
+ address authority
36
+ ) = abi.decode(data, (address, address));
37
+
38
+ _initializeService(registryAddress, authority, owner);
39
+ _registerInterface(type(IOracleService).interfaceId);
40
+ }
41
+
42
+ function request(
43
+ NftId oracleNftId,
44
+ bytes calldata requestData,
45
+ Timestamp expiryAt,
46
+ string calldata callbackMethodName
47
+ )
48
+ external
49
+ virtual
50
+ // restricted() // add authz
51
+ returns (
52
+ RequestId requestId
53
+ )
54
+ {
55
+ (
56
+ NftId componentNftId,
57
+ IRegistry.ObjectInfo memory componentInfo,
58
+ IInstance instance
59
+ ) = _getAndVerifyActiveComponent(COMPONENT());
60
+
61
+ // oracleNftId exists and is active oracle
62
+ (
63
+ IRegistry.ObjectInfo memory oracleInfo,
64
+ ) = _getAndVerifyComponentInfo(
65
+ oracleNftId,
66
+ ORACLE(),
67
+ true); // only active
68
+
69
+ // TODO move to stronger validation, requester and oracle need to belong to same product cluster
70
+ // check that requester and oracle share same instance
71
+ if (componentInfo.parentNftId != oracleInfo.parentNftId) {
72
+ revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
73
+ }
74
+
75
+ // check expiriyAt >= now
76
+ if (expiryAt < TimestampLib.blockTimestamp()) {
77
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
78
+ }
79
+
80
+ // check callbackMethodName.length > 0
81
+ if (bytes(callbackMethodName).length == 0) {
82
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
83
+ }
84
+
85
+ // create request info
86
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
87
+ requesterNftId: componentNftId,
88
+ callbackMethodName: callbackMethodName,
89
+ oracleNftId: oracleNftId,
90
+ requestData: requestData,
91
+ responseData: "",
92
+ respondedAt: TimestampLib.zero(),
93
+ expiredAt: expiryAt,
94
+ isCancelled: false
95
+ });
96
+
97
+ // store request with instance
98
+ requestId = instance.getInstanceStore().createRequest(request);
99
+
100
+ // call oracle component
101
+ IOracleComponent(oracleInfo.objectAddress).request(
102
+ requestId,
103
+ componentNftId,
104
+ requestData,
105
+ expiryAt);
106
+
107
+ emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
108
+ }
109
+
110
+
111
+ /// @dev respond to oracle request by oracle compnent.
112
+ /// permissioned: only the oracle component linked to the request id may call this method
113
+ function respond(
114
+ RequestId requestId,
115
+ bytes calldata responseData
116
+ )
117
+ external
118
+ virtual
119
+ // restricted() // add authz
120
+ returns (bool success)
121
+ {
122
+ (
123
+ NftId oracleNftId,
124
+ IRegistry.ObjectInfo memory componentInfo,
125
+ IInstance instance
126
+ ) = _getAndVerifyActiveComponent(ORACLE());
127
+
128
+ bool callerIsOracle = true;
129
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
130
+ request.responseData = responseData;
131
+ request.respondedAt = TimestampLib.blockTimestamp();
132
+
133
+ instance.getInstanceStore().updateRequest(
134
+ requestId, request, KEEP_STATE());
135
+
136
+ IRegistry.ObjectInfo memory requesterInfo = getRegistry().getObjectInfo(
137
+ request.requesterNftId);
138
+
139
+ string memory functionSignature = string(
140
+ abi.encodePacked(
141
+ request.callbackMethodName,
142
+ "(uint64,bytes)"
143
+ ));
144
+
145
+ (success, ) = requesterInfo.objectAddress.call(
146
+ abi.encodeWithSignature(
147
+ functionSignature,
148
+ requestId,
149
+ responseData));
150
+
151
+ // check that calling requestor was successful
152
+ if (success) {
153
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
154
+ } else {
155
+ instance.getInstanceStore().updateRequestState(requestId, FAILED());
156
+ emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
157
+ }
158
+
159
+ emit LogOracleServiceResponseProcessed(requestId, oracleNftId);
160
+ }
161
+
162
+
163
+ function resend(RequestId requestId)
164
+ external
165
+ virtual
166
+ // restricted() // add authz
167
+ {
168
+ (
169
+ NftId requesterNftId,
170
+ IRegistry.ObjectInfo memory requesterInfo,
171
+ IInstance instance
172
+ ) = _getAndVerifyActiveComponent(COMPONENT());
173
+
174
+ bool callerIsOracle = false;
175
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
176
+
177
+ // attempt to deliver response to requester
178
+ string memory functionSignature = string(
179
+ abi.encodePacked(
180
+ request.callbackMethodName,
181
+ "(uint64,bytes)"
182
+ ));
183
+
184
+ (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
185
+ abi.encodeWithSignature(
186
+ functionSignature,
187
+ requestId,
188
+ request.responseData));
189
+
190
+ // check that calling requestor was successful
191
+ if (success) {
192
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
193
+ emit LogOracleServiceResponseResent(requestId, requesterNftId);
194
+ } else {
195
+ emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
196
+ }
197
+ }
198
+
199
+
200
+ function cancel(RequestId requestId)
201
+ external
202
+ virtual
203
+ // restricted() // add authz
204
+ {
205
+ (
206
+ NftId requesterNftId,
207
+ IRegistry.ObjectInfo memory componentInfo,
208
+ IInstance instance
209
+ ) = _getAndVerifyActiveComponent(COMPONENT());
210
+
211
+ bool callerIsOracle = false;
212
+ // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
213
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
214
+ request.isCancelled = true;
215
+
216
+ instance.getInstanceStore().updateRequest(requestId, request, CANCELLED());
217
+
218
+ // call oracle component
219
+ // TODO add check that oracle is active?
220
+ address oracleAddress = getRegistry().getObjectInfo(request.oracleNftId).objectAddress;
221
+ IOracleComponent(oracleAddress).cancel(requestId);
222
+
223
+ emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
224
+ }
225
+
226
+
227
+ function _checkAndGetRequestInfo(
228
+ IInstance instance,
229
+ RequestId requestId,
230
+ NftId callerNftId,
231
+ bool callerIsOracle
232
+ )
233
+ internal
234
+ virtual
235
+ view
236
+ returns (IOracle.RequestInfo memory info)
237
+ {
238
+ InstanceReader reader = instance.getInstanceReader();
239
+ StateId state = reader.getState(requestId.toKey32());
240
+
241
+ // check caller against resonsible oracle or requester
242
+ info = reader.getRequestInfo(requestId);
243
+ if (callerIsOracle) {
244
+ if (state != ACTIVE()) {
245
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
246
+ }
247
+
248
+ if (callerNftId != info.oracleNftId) {
249
+ revert ErrorOracleServiceCallerNotResponsibleOracle(requestId, info.oracleNftId, callerNftId);
250
+ }
251
+ } else {
252
+ if (state != ACTIVE() && state != FAILED()) {
253
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
254
+ }
255
+ if (callerNftId != info.requesterNftId) {
256
+ revert ErrorOracleServiceCallerNotRequester(requestId, info.requesterNftId, callerNftId);
257
+ }
258
+ }
259
+
260
+ // check expiry
261
+ if (info.expiredAt < TimestampLib.blockTimestamp()) {
262
+ revert ErrorOracleServiceRequestExpired(requestId, info.expiredAt);
263
+ }
264
+ }
265
+
266
+
267
+ function _getInstanceForComponent(NftId componentNftId)
268
+ internal
269
+ view
270
+ returns(IInstance instance)
271
+ {
272
+ NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
273
+ address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
274
+ return IInstance(instanceAddress);
275
+ }
276
+
277
+
278
+ function _getDomain() internal pure override returns(ObjectType) {
279
+ return ORACLE();
280
+ }
281
+ }
@@ -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 registry,
16
+ bytes32 salt
17
+ )
18
+ {
19
+ OracleService svc = new OracleService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
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,166 @@
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 {Timestamp} from "../type/Timestamp.sol";
18
+ import {TokenHandler} from "../shared/TokenHandler.sol";
19
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
20
+
21
+ import {Pool} from "./Pool.sol";
22
+
23
+ abstract contract BasicPool is
24
+ Pool
25
+ {
26
+
27
+ function _initializeBasicPool(
28
+ address registry,
29
+ NftId instanceNftId,
30
+ IAuthorization authorization,
31
+ address token,
32
+ string memory name,
33
+ address initialOwner
34
+ )
35
+ internal
36
+ virtual
37
+ onlyInitializing()
38
+ {
39
+ _initializePool(
40
+ registry,
41
+ instanceNftId,
42
+ name,
43
+ token,
44
+ authorization,
45
+ false, // isInterceptingNftTransfers,
46
+ initialOwner,
47
+ "", // registryData
48
+ ""); // componentData
49
+ }
50
+
51
+ function stake(
52
+ NftId bundleNftId,
53
+ Amount amount
54
+ )
55
+ public
56
+ virtual
57
+ restricted()
58
+ onlyBundleOwner(bundleNftId)
59
+ {
60
+ _stake(bundleNftId, amount);
61
+ }
62
+
63
+
64
+ function unstake(
65
+ NftId bundleNftId,
66
+ Amount amount
67
+ )
68
+ public
69
+ virtual
70
+ restricted()
71
+ onlyBundleOwner(bundleNftId)
72
+ {
73
+ _unstake(bundleNftId, amount);
74
+ }
75
+
76
+
77
+ function extend(
78
+ NftId bundleNftId,
79
+ Seconds lifetimeExtension
80
+ )
81
+ public
82
+ virtual
83
+ restricted()
84
+ onlyBundleOwner(bundleNftId)
85
+ returns(Timestamp newExpiredAt)
86
+ {
87
+ return _extend(bundleNftId, lifetimeExtension);
88
+ }
89
+
90
+
91
+ function lockBundle(NftId bundleNftId)
92
+ public
93
+ virtual
94
+ restricted()
95
+ onlyBundleOwner(bundleNftId)
96
+ {
97
+ _lockBundle(bundleNftId);
98
+ }
99
+
100
+
101
+ function unlockBundle(NftId bundleNftId)
102
+ public
103
+ virtual
104
+ restricted()
105
+ onlyBundleOwner(bundleNftId)
106
+ {
107
+ _unlockBundle(bundleNftId);
108
+ }
109
+
110
+
111
+ function closeBundle(NftId bundleNftId)
112
+ public
113
+ virtual
114
+ restricted()
115
+ onlyBundleOwner(bundleNftId)
116
+ {
117
+ _closeBundle(bundleNftId);
118
+ }
119
+
120
+
121
+ function setBundleFee(
122
+ NftId bundleNftId,
123
+ Fee memory fee
124
+ )
125
+ public
126
+ virtual
127
+ restricted()
128
+ onlyBundleOwner(bundleNftId)
129
+ {
130
+ _setBundleFee(bundleNftId, fee);
131
+ }
132
+
133
+
134
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
135
+ public
136
+ virtual
137
+ restricted()
138
+ onlyOwner()
139
+ {
140
+ _setMaxBalanceAmount(maxBalanceAmount);
141
+ }
142
+
143
+
144
+ function setBundleOwnerRole(RoleId bundleOwnerRole)
145
+ public
146
+ virtual
147
+ restricted()
148
+ onlyOwner()
149
+ {
150
+ _setBundleOwnerRole(bundleOwnerRole);
151
+ }
152
+
153
+
154
+ function setFees(
155
+ Fee memory poolFee,
156
+ Fee memory stakingFee,
157
+ Fee memory performanceFee
158
+ )
159
+ public
160
+ virtual
161
+ restricted()
162
+ onlyOwner()
163
+ {
164
+ _setPoolFees(poolFee, stakingFee, performanceFee);
165
+ }
166
+ }
@@ -0,0 +1,58 @@
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.closeBundle.selector, "closeBundle");
44
+ _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
45
+
46
+ _authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
47
+ _authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
48
+ _authorize(functions, BasicPool.setFees.selector, "setFees");
49
+ _authorize(functions, BasicPool.stake.selector, "stake");
50
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
51
+ _authorize(functions, BasicPool.extend.selector, "extend");
52
+
53
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
54
+
55
+ _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
56
+ }
57
+ }
58
+