@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8daf0fe-431

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 (708) hide show
  1. package/README.md +197 -16
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -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/access → authorization}/IAccess.sol/IAccess.json +1 -1
  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 +129 -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 +171 -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/distribution/Distribution.sol/Distribution.json +1191 -0
  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/distribution/IDistributionComponent.sol/IDistributionComponent.json +900 -0
  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/BundleManager.sol/BundleManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +344 -1864
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +499 -2174
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1621 -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 +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3592 -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/base/Cloneable.sol/Cloneable.json +137 -0
  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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  64. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  67. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  69. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  73. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  74. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  76. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  77. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  78. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  80. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  82. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  84. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  86. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  88. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  90. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  92. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  94. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  96. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  98. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  100. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  102. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +342 -313
  104. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +959 -0
  106. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  108. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  109. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  110. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  112. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  114. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  116. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  118. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  120. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  122. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  124. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  126. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  128. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  130. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  132. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +320 -255
  134. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  135. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  136. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  137. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +187 -176
  138. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  140. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  142. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  144. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  146. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  147. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  148. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  150. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  152. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  153. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  154. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +352 -61
  156. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +621 -166
  158. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  160. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/Registry.sol/Registry.json +513 -162
  162. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  163. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  164. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +863 -272
  166. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  168. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1140 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +298 -152
  182. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  184. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  188. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  190. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  192. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  194. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  196. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  197. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  198. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +65 -8
  200. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  201. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  202. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +155 -153
  204. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  211. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  214. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  215. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  219. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  220. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +369 -62
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +205 -12
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  226. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +242 -191
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  230. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  231. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  232. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  234. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  236. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  237. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  238. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  240. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  241. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  242. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  244. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  246. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  248. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  250. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  252. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  254. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  258. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  260. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  262. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  264. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  266. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  268. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  270. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  272. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  276. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  278. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  280. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  282. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  284. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  292. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  294. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  296. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  297. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  298. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  300. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  301. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  304. package/contracts/authorization/AccessAdmin.sol +588 -0
  305. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  306. package/contracts/authorization/Authorization.sol +218 -0
  307. package/contracts/authorization/IAccess.sol +48 -0
  308. package/contracts/authorization/IAccessAdmin.sol +136 -0
  309. package/contracts/authorization/IAuthorization.sol +54 -0
  310. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  311. package/contracts/authorization/IServiceAuthorization.sol +35 -0
  312. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  313. package/contracts/authorization/ServiceAuthorization.sol +86 -0
  314. package/contracts/distribution/BasicDistribution.sol +149 -0
  315. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  316. package/contracts/distribution/Distribution.sol +283 -0
  317. package/contracts/distribution/DistributionService.sol +302 -0
  318. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  319. package/contracts/distribution/IDistributionComponent.sol +48 -0
  320. package/contracts/distribution/IDistributionService.sol +85 -0
  321. package/contracts/instance/BundleManager.sol +126 -0
  322. package/contracts/instance/IInstance.sol +78 -46
  323. package/contracts/instance/IInstanceService.sol +92 -0
  324. package/contracts/instance/Instance.sol +237 -68
  325. package/contracts/instance/InstanceAdmin.sol +266 -0
  326. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  327. package/contracts/instance/InstanceReader.sol +405 -0
  328. package/contracts/instance/InstanceService.sol +443 -0
  329. package/contracts/instance/InstanceServiceManager.sol +44 -0
  330. package/contracts/instance/InstanceStore.sol +273 -0
  331. package/contracts/instance/base/BalanceStore.sol +123 -0
  332. package/contracts/instance/base/Cloneable.sol +28 -0
  333. package/contracts/instance/base/ObjectCounter.sol +21 -0
  334. package/contracts/instance/base/ObjectManager.sol +79 -0
  335. package/contracts/instance/module/IAccess.sol +46 -0
  336. package/contracts/instance/module/IBundle.sol +20 -0
  337. package/contracts/instance/module/IComponents.sol +52 -0
  338. package/contracts/instance/module/IDistribution.sol +42 -0
  339. package/contracts/instance/module/IPolicy.sol +84 -0
  340. package/contracts/instance/module/IRisk.sol +11 -0
  341. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  342. package/contracts/oracle/BasicOracle.sol +48 -0
  343. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  344. package/contracts/oracle/IOracle.sol +36 -0
  345. package/contracts/oracle/IOracleComponent.sol +32 -0
  346. package/contracts/oracle/IOracleService.sol +65 -0
  347. package/contracts/oracle/Oracle.sol +157 -0
  348. package/contracts/oracle/OracleService.sol +278 -0
  349. package/contracts/oracle/OracleServiceManager.sol +42 -0
  350. package/contracts/pool/BasicPool.sol +164 -0
  351. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  352. package/contracts/pool/BundleService.sol +296 -0
  353. package/contracts/pool/BundleServiceManager.sol +42 -0
  354. package/contracts/pool/IBundleService.sol +106 -0
  355. package/contracts/pool/IPoolComponent.sol +52 -0
  356. package/contracts/pool/IPoolService.sol +150 -0
  357. package/contracts/pool/Pool.sol +311 -0
  358. package/contracts/pool/PoolService.sol +452 -0
  359. package/contracts/pool/PoolServiceManager.sol +42 -0
  360. package/contracts/product/ApplicationService.sol +254 -0
  361. package/contracts/product/ApplicationServiceManager.sol +38 -0
  362. package/contracts/product/BasicProduct.sol +82 -0
  363. package/contracts/product/BasicProductAuthorization.sol +40 -0
  364. package/contracts/product/ClaimService.sol +442 -0
  365. package/contracts/product/ClaimServiceManager.sol +38 -0
  366. package/contracts/product/IApplicationService.sol +62 -0
  367. package/contracts/product/IClaimService.sol +99 -0
  368. package/contracts/product/IPolicyService.sol +78 -0
  369. package/contracts/product/IPricingService.sol +39 -0
  370. package/contracts/product/IProductComponent.sol +39 -0
  371. package/contracts/product/IProductService.sol +33 -0
  372. package/contracts/product/PolicyService.sol +475 -0
  373. package/contracts/product/PolicyServiceManager.sol +42 -0
  374. package/contracts/product/PricingService.sol +300 -0
  375. package/contracts/product/PricingServiceManager.sol +42 -0
  376. package/contracts/product/Product.sol +392 -0
  377. package/contracts/product/ProductService.sol +124 -0
  378. package/contracts/product/ProductServiceManager.sol +42 -0
  379. package/contracts/registry/ChainNft.sol +55 -25
  380. package/contracts/registry/IRegistry.sol +81 -35
  381. package/contracts/registry/IRegistryService.sol +56 -16
  382. package/contracts/registry/ITransferInterceptor.sol +1 -0
  383. package/contracts/registry/Registry.sol +407 -334
  384. package/contracts/registry/RegistryAdmin.sol +363 -0
  385. package/contracts/registry/RegistryService.sol +157 -274
  386. package/contracts/registry/RegistryServiceManager.sol +53 -0
  387. package/contracts/registry/ReleaseManager.sol +518 -0
  388. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  389. package/contracts/registry/TokenRegistry.sol +315 -0
  390. package/contracts/shared/Component.sol +281 -0
  391. package/contracts/shared/ComponentService.sol +579 -0
  392. package/contracts/shared/ComponentServiceManager.sol +35 -0
  393. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  394. package/contracts/shared/ERC165.sol +16 -10
  395. package/contracts/shared/IComponent.sol +70 -0
  396. package/contracts/shared/IComponentService.sol +102 -0
  397. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  398. package/contracts/shared/IKeyValueStore.sol +53 -0
  399. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  400. package/contracts/shared/INftOwnable.sol +23 -0
  401. package/contracts/shared/IPolicyHolder.sol +45 -0
  402. package/contracts/shared/IRegisterable.sol +5 -12
  403. package/contracts/shared/IRegistryLinked.sol +11 -0
  404. package/contracts/shared/IService.sol +25 -0
  405. package/contracts/shared/IVersionable.sol +5 -48
  406. package/contracts/shared/InitializableCustom.sol +177 -0
  407. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  408. package/contracts/shared/KeyValueStore.sol +127 -0
  409. package/contracts/{instance/base → shared}/Lifecycle.sol +38 -8
  410. package/contracts/shared/NftIdSetManager.sol +65 -0
  411. package/contracts/shared/NftOwnable.sol +107 -0
  412. package/contracts/shared/PolicyHolder.sol +102 -0
  413. package/contracts/shared/ProxyManager.sol +127 -43
  414. package/contracts/shared/Registerable.sol +33 -75
  415. package/contracts/shared/RegistryLinked.sol +43 -0
  416. package/contracts/shared/Service.sol +83 -0
  417. package/contracts/shared/TokenHandler.sol +58 -0
  418. package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
  419. package/contracts/shared/Versionable.sol +5 -93
  420. package/contracts/staking/IStaking.sol +168 -0
  421. package/contracts/staking/IStakingService.sol +153 -0
  422. package/contracts/staking/StakeManagerLib.sol +231 -0
  423. package/contracts/staking/Staking.sol +513 -0
  424. package/contracts/staking/StakingManager.sol +54 -0
  425. package/contracts/staking/StakingReader.sol +187 -0
  426. package/contracts/staking/StakingService.sol +411 -0
  427. package/contracts/staking/StakingServiceManager.sol +44 -0
  428. package/contracts/staking/StakingStore.sol +613 -0
  429. package/contracts/staking/TargetManagerLib.sol +207 -0
  430. package/contracts/{types → type}/AddressSet.sol +1 -1
  431. package/contracts/type/Amount.sol +128 -0
  432. package/contracts/{types → type}/Blocknumber.sol +21 -3
  433. package/contracts/type/ClaimId.sol +75 -0
  434. package/contracts/type/DistributorType.sol +55 -0
  435. package/contracts/type/Fee.sol +66 -0
  436. package/contracts/{types → type}/Key32.sol +8 -3
  437. package/contracts/{types → type}/NftId.sol +21 -15
  438. package/contracts/type/NftIdSet.sol +62 -0
  439. package/contracts/type/ObjectType.sol +275 -0
  440. package/contracts/type/PayoutId.sol +82 -0
  441. package/contracts/type/Referral.sol +89 -0
  442. package/contracts/type/RequestId.sol +75 -0
  443. package/contracts/{types → type}/RiskId.sol +1 -1
  444. package/contracts/type/RoleId.sol +174 -0
  445. package/contracts/type/Seconds.sol +81 -0
  446. package/contracts/type/Selector.sol +102 -0
  447. package/contracts/{types → type}/StateId.sol +39 -5
  448. package/contracts/type/String.sol +53 -0
  449. package/contracts/{types → type}/Timestamp.sol +27 -14
  450. package/contracts/type/UFixed.sol +332 -0
  451. package/contracts/{types → type}/Version.sol +6 -2
  452. package/package.json +11 -7
  453. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  454. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  455. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  456. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  457. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  459. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  460. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  461. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  462. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  463. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  464. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  465. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  466. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  467. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  468. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  469. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  471. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  473. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  475. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  477. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  479. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  481. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  483. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  485. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  487. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  489. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  491. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  493. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  495. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  497. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  499. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  501. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  503. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  504. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  505. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  508. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  510. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  513. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  514. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  515. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  516. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -380
  519. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  521. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  522. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  524. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  526. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  529. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  531. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  533. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  536. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  537. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  539. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  541. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  542. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  544. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  546. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  548. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  550. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  553. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  555. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  556. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  557. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  559. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  561. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  562. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  563. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  565. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  567. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  570. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  574. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  576. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  577. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  578. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  579. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  580. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  581. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  582. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  583. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  584. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  585. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  586. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  587. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  588. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  589. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  590. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  591. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  593. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  594. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  595. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  597. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  598. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  599. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  601. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  603. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  604. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  605. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  606. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  608. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  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 -111
  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 -10
  617. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  619. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  621. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  624. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  627. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  629. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  632. package/contracts/components/BaseComponent.sol +0 -79
  633. package/contracts/components/Distribution.sol +0 -155
  634. package/contracts/components/IBaseComponent.sol +0 -19
  635. package/contracts/components/IDistributionComponent.sol +0 -47
  636. package/contracts/components/IPoolComponent.sol +0 -65
  637. package/contracts/components/IProductComponent.sol +0 -39
  638. package/contracts/components/Pool.sol +0 -246
  639. package/contracts/components/Product.sol +0 -299
  640. package/contracts/experiment/errors/Require.sol +0 -38
  641. package/contracts/experiment/errors/Revert.sol +0 -44
  642. package/contracts/experiment/inheritance/A.sol +0 -53
  643. package/contracts/experiment/inheritance/B.sol +0 -28
  644. package/contracts/experiment/inheritance/C.sol +0 -34
  645. package/contracts/experiment/inheritance/IA.sol +0 -13
  646. package/contracts/experiment/inheritance/IB.sol +0 -10
  647. package/contracts/experiment/inheritance/IC.sol +0 -12
  648. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  649. package/contracts/experiment/statemachine/ISM.sol +0 -25
  650. package/contracts/experiment/statemachine/SM.sol +0 -57
  651. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  652. package/contracts/experiment/types/TypeA.sol +0 -47
  653. package/contracts/experiment/types/TypeB.sol +0 -29
  654. package/contracts/instance/IInstanceLinked.sol +0 -8
  655. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  656. package/contracts/instance/base/IInstanceBase.sol +0 -23
  657. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  658. package/contracts/instance/base/IService.sol +0 -15
  659. package/contracts/instance/base/InstanceBase.sol +0 -89
  660. package/contracts/instance/base/KeyValueStore.sol +0 -161
  661. package/contracts/instance/base/ModuleBase.sol +0 -57
  662. package/contracts/instance/base/ServiceBase.sol +0 -43
  663. package/contracts/instance/module/access/Access.sol +0 -149
  664. package/contracts/instance/module/access/IAccess.sol +0 -53
  665. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  666. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  667. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  668. package/contracts/instance/module/component/IComponent.sol +0 -28
  669. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  670. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  671. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  672. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  673. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  674. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  675. package/contracts/instance/module/risk/IRisk.sol +0 -26
  676. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  677. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  678. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  679. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  680. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  681. package/contracts/instance/service/DistributionService.sol +0 -54
  682. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  683. package/contracts/instance/service/IDistributionService.sol +0 -12
  684. package/contracts/instance/service/IPoolService.sol +0 -37
  685. package/contracts/instance/service/IProductService.sol +0 -107
  686. package/contracts/instance/service/PoolService.sol +0 -149
  687. package/contracts/instance/service/ProductService.sol +0 -509
  688. package/contracts/registry/IChainNft.sol +0 -22
  689. package/contracts/registry/IRegistryLinked.sol +0 -8
  690. package/contracts/registry/RegistryInstaller.sol +0 -100
  691. package/contracts/shared/IOwnable.sol +0 -6
  692. package/contracts/test/TestDistribution.sol +0 -22
  693. package/contracts/test/TestFee.sol +0 -25
  694. package/contracts/test/TestPool.sol +0 -27
  695. package/contracts/test/TestProduct.sol +0 -74
  696. package/contracts/test/TestRegisterable.sol +0 -18
  697. package/contracts/test/TestRoleId.sol +0 -14
  698. package/contracts/test/TestService.sol +0 -26
  699. package/contracts/test/TestToken.sol +0 -26
  700. package/contracts/test/TestVersion.sol +0 -44
  701. package/contracts/test/TestVersionable.sol +0 -17
  702. package/contracts/types/ChainId.sol +0 -38
  703. package/contracts/types/Fee.sol +0 -56
  704. package/contracts/types/NftIdSet.sol +0 -60
  705. package/contracts/types/ObjectType.sol +0 -131
  706. package/contracts/types/ReferralId.sol +0 -48
  707. package/contracts/types/RoleId.sol +0 -38
  708. package/contracts/types/UFixed.sol +0 -209
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {DistributorType} from "../../type/DistributorType.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+ import {Timestamp} from "../../type/Timestamp.sol";
8
+ import {UFixed} from "../../type/UFixed.sol";
9
+
10
+ interface IDistribution {
11
+
12
+ struct DistributorTypeInfo {
13
+ string name;
14
+ UFixed minDiscountPercentage;
15
+ UFixed maxDiscountPercentage;
16
+ UFixed commissionPercentage;
17
+ uint32 maxReferralCount;
18
+ uint32 maxReferralLifetime;
19
+ bool allowSelfReferrals;
20
+ bool allowRenewals;
21
+ bytes data;
22
+ }
23
+
24
+ struct DistributorInfo {
25
+ DistributorType distributorType;
26
+ bool active;
27
+ bytes data;
28
+ Amount commissionAmount;
29
+ uint32 numPoliciesSold;
30
+ }
31
+
32
+ struct ReferralInfo {
33
+ NftId distributorNftId;
34
+ string referralCode;
35
+ UFixed discountPercentage;
36
+ uint32 maxReferrals;
37
+ uint32 usedReferrals;
38
+ Timestamp expiryAt;
39
+ bytes data;
40
+ }
41
+
42
+ }
@@ -0,0 +1,84 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {ReferralId} from "../../type/Referral.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+ import {Seconds} from "../../type/Seconds.sol";
10
+ import {Timestamp} from "../../type/Timestamp.sol";
11
+
12
+ interface IPolicy {
13
+
14
+ struct Premium {
15
+ // premium splitting per target wallet
16
+ Amount productFeeAmount;
17
+ Amount distributionFeeAndCommissionAmount;
18
+ Amount poolPremiumAndFeeAmount;
19
+
20
+ // detailed positions
21
+ // this is the net premium calculated by the product
22
+ uint256 netPremiumAmount;
23
+ // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
+ uint256 fullPremiumAmount;
25
+ // premium = fullPremium - discount
26
+ uint256 premiumAmount;
27
+ uint256 productFeeFixAmount;
28
+ uint256 poolFeeFixAmount;
29
+ uint256 bundleFeeFixAmount;
30
+ uint256 distributionFeeFixAmount;
31
+ uint256 productFeeVarAmount;
32
+ uint256 poolFeeVarAmount;
33
+ uint256 bundleFeeVarAmount;
34
+ uint256 distributionFeeVarAmount;
35
+ uint256 distributionOwnerFeeFixAmount;
36
+ // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
37
+ uint256 distributionOwnerFeeVarAmount;
38
+ // this value is based on distributor type referenced in the referral
39
+ uint256 commissionAmount;
40
+ // this is based on referral used
41
+ uint256 discountAmount;
42
+ }
43
+
44
+ /// @dev policy data for the full policy lifecycle
45
+ struct PolicyInfo {
46
+ NftId productNftId;
47
+ NftId bundleNftId;
48
+ ReferralId referralId;
49
+ RiskId riskId;
50
+ Amount sumInsuredAmount;
51
+ Amount premiumAmount; // expected premium at application time
52
+ Amount premiumPaidAmount; // actual paid premium
53
+ Seconds lifetime;
54
+ // policy application data, no changes after applying for a policy
55
+ bytes applicationData;
56
+ bytes processData;
57
+ uint16 claimsCount;
58
+ uint16 openClaimsCount;
59
+ Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
+ Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
61
+ Timestamp activatedAt; // time of underwriting
62
+ Timestamp expiredAt; // no new claims (activatedAt + lifetime)
63
+ Timestamp closedAt; // no locked capital (or declinedAt)
64
+ }
65
+
66
+ // claimId neeeds to be encoded policyNftId:claimId combination
67
+ struct ClaimInfo {
68
+ Amount claimAmount;
69
+ Amount paidAmount;
70
+ uint8 payoutsCount;
71
+ uint8 openPayoutsCount;
72
+ bytes submissionData; // claim submission data, no changes after submitting the claim
73
+ bytes processData; // data that may include information supporting confirm or decline
74
+ Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
75
+ }
76
+
77
+ // claimId neeeds to be encoded policyNftId:claimId combination
78
+ struct PayoutInfo {
79
+ ClaimId claimId;
80
+ Amount amount;
81
+ bytes data;
82
+ Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
83
+ }
84
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../../type/NftId.sol";
5
+
6
+ interface IRisk {
7
+ struct RiskInfo {
8
+ NftId productNftId;
9
+ bytes data;
10
+ }
11
+ }
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
- contract USDC is ERC20 {
6
+ contract Dip is ERC20 {
7
7
 
8
8
  // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - DUMMY";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
9
+ string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
10
+ string public constant SYMBOL = "DIP";
11
+ uint8 public constant DECIMALS = 18;
12
12
  uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
13
  // decimals == 18 (openzeppelin erc20 default)
14
14
  constructor()
@@ -0,0 +1,48 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../contracts/authorization/IAuthorization.sol";
5
+ import {NftId} from "../../contracts/type/NftId.sol";
6
+ import {Oracle} from "../../contracts/oracle/Oracle.sol";
7
+ import {RequestId} from "../../contracts/type/RequestId.sol";
8
+
9
+ contract BasicOracle is
10
+ Oracle
11
+ {
12
+
13
+ /// Function to provide reponse data releated to request id.
14
+ function respond(
15
+ RequestId requestId,
16
+ bytes memory responseData
17
+ )
18
+ external
19
+ virtual
20
+ restricted()
21
+ {
22
+ _respond(requestId, responseData);
23
+ }
24
+
25
+ function _initializeBasicOracle(
26
+ address registry,
27
+ NftId instanceNftId,
28
+ IAuthorization authorization,
29
+ address initialOwner,
30
+ string memory name,
31
+ address token
32
+ )
33
+ internal
34
+ virtual
35
+ onlyInitializing()
36
+ {
37
+
38
+ _initializeOracle(
39
+ registry,
40
+ instanceNftId,
41
+ authorization,
42
+ initialOwner,
43
+ name,
44
+ token,
45
+ "",
46
+ "");
47
+ }
48
+ }
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicOracle} from "./BasicOracle.sol";
6
+ import {ORACLE} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IOracle} from "./IOracle.sol";
9
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+
12
+
13
+ contract BasicOracleAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(string memory componentName)
18
+ Authorization(componentName)
19
+ {}
20
+
21
+ function _setupTargets()
22
+ internal
23
+ virtual override
24
+ {
25
+ // basic component target
26
+ _addComponentTargetWithRole(ORACLE());
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(), getServiceRole(ORACLE()));
38
+ _authorize(functions, IOracle.request.selector, "request");
39
+ _authorize(functions, IOracle.cancel.selector, "cancel");
40
+
41
+ // authorize public role (open access to any account, only allows to lock target)
42
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
43
+ _authorize(functions, BasicOracle.respond.selector, "respond");
44
+ }
45
+ }
46
+
@@ -0,0 +1,36 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+ import {RequestId} from "../type/RequestId.sol";
6
+ import {Timestamp} from "../type/Timestamp.sol";
7
+
8
+
9
+ interface IOracle {
10
+
11
+ struct RequestInfo {
12
+ NftId requesterNftId; // originator of the request
13
+ string callbackMethodName; // callback function of the requestor to call to provide response data
14
+ NftId oracleNftId; // responsible oracle component
15
+ bytes requestData;
16
+ bytes responseData;
17
+ Timestamp respondedAt; // response timestamp
18
+ Timestamp expiredAt; // expiry timestamp
19
+ bool isCancelled;
20
+ }
21
+
22
+
23
+ /// @dev Callback function for oracle service to notify this oracle component to retreive some oracle data.
24
+ function request(
25
+ RequestId requestId,
26
+ NftId requesterId,
27
+ bytes calldata requestData,
28
+ Timestamp expiryAt
29
+ ) external;
30
+
31
+
32
+ /// @dev Callback function for oracle service to notify this oracle component that the specified oracle request has ben cancelled by the requestor.
33
+ function cancel(
34
+ RequestId requestId
35
+ ) external;
36
+ }
@@ -0,0 +1,32 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {RequestId} from "../type/RequestId.sol";
10
+ import {UFixed} from "../type/UFixed.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+ interface IOracleComponent is IInstanceLinkedComponent {
14
+
15
+ /// @dev callback method for requesting some data from the oracle
16
+ function request(
17
+ RequestId requestId,
18
+ NftId requesterNftId,
19
+ bytes calldata requestData,
20
+ Timestamp expiryAt
21
+ ) external;
22
+
23
+
24
+ /// @dev callback method for cancelling the specified oracle request
25
+ function cancel(
26
+ RequestId requestId
27
+ ) external;
28
+
29
+
30
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
31
+ function isVerifying() external view returns (bool verifying);
32
+ }
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IService} from "../shared/IService.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {RequestId} from "../type/RequestId.sol";
7
+ import {StateId} from "../type/StateId.sol";
8
+ import {Timestamp} from "../type/Timestamp.sol";
9
+
10
+
11
+ interface IOracleService is IService {
12
+
13
+ event LogOracleServiceRequestCreated(RequestId requestId, NftId requesterNftId, NftId oracleNftId, Timestamp expiryAt);
14
+ event LogOracleServiceResponseProcessed(RequestId requestId, NftId oracleNftId);
15
+ event LogOracleServiceDeliveryFailed(RequestId requestId, address requesterAddress, string functionSignature);
16
+ event LogOracleServiceResponseResent(RequestId requestId, NftId requesterNftId);
17
+ event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
+
19
+ // create request
20
+ error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
+ error ErrorOracleServiceCallbackMethodNameEmpty();
23
+
24
+ // respond
25
+ error ErrorOracleServiceNotResponsibleOracle(RequestId requestId, NftId expectedOracleNftId, NftId oracleNftId);
26
+
27
+ // get request info
28
+ error ErrorOracleServiceRequestStateNotActive(RequestId requestId, StateId state);
29
+ error ErrorOracleServiceCallerNotResponsibleOracle(RequestId requestId, NftId oracleNftId, NftId callerNftId);
30
+ error ErrorOracleServiceCallerNotRequester(RequestId requestId, NftId requesterNftId, NftId callerNftId);
31
+ error ErrorOracleServiceRequestExpired(RequestId requestId, Timestamp expiredAt);
32
+
33
+ /// @dev send an oracle request to the specified oracle component.
34
+ /// the function returns the id of the newly created request.
35
+ /// permissioned: only registered components may send requests to oracles.
36
+ function request(
37
+ NftId oracleNftId,
38
+ bytes calldata requestData,
39
+ Timestamp expiryAt,
40
+ string calldata callbackMethodName
41
+ ) external returns (RequestId requestId);
42
+
43
+ /// @dev respond to oracle request by oracle compnent.
44
+ /// the response data is amende in the request info stored with the instance.
45
+ /// the request state changes to FULFILLED (when calling the callback method of the requester is successful)
46
+ /// or to FAILED when calling the requester is not succesful.
47
+ /// the function returns true iff the state changes to FULFILLED.
48
+ /// permissioned: only the oracle component linked to the request id may call this method
49
+ function respond(
50
+ RequestId requestId,
51
+ bytes calldata responseData
52
+ ) external returns (bool success);
53
+
54
+ /// @dev re send a failed response to the requester.
55
+ /// only requests in state FAILED may be re sent.
56
+ /// the request state changes to FULFILLED when calling the callback method of the requester is successful.
57
+ /// permissioned: only the requester may resend a request
58
+ function resend(RequestId requestId) external;
59
+
60
+ /// @dev notify the oracle component that the specified request has become invalid.
61
+ /// only requests in state ACTIVE may be cancelled.
62
+ /// permissioned: only the requester may cancel a request
63
+ function cancel(RequestId requestId) external;
64
+
65
+ }
@@ -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
+ }