@etherisc/gif-next 0.0.2-b38343e-249 → 0.0.2-b3a8633-027

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