@etherisc/gif-next 0.0.2-fe77319 → 0.0.2-ff1bf36-818

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 (562) hide show
  1. package/README.md +406 -9
  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/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 +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 +1489 -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 +1159 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1502 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +914 -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 +295 -535
  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 +486 -591
  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 +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1693 -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 +3469 -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/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 +4 -0
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  69. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  70. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  71. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  72. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  75. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  78. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  79. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  80. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
  82. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  84. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  86. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  88. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  90. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
  92. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  94. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  96. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
  98. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  100. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1466 -0
  102. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -0
  104. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  106. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  108. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1218 -0
  110. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/Pool.sol/Pool.json +1181 -0
  112. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  114. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  116. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  118. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  120. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
  122. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  124. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  125. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1331 -0
  126. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  128. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +517 -0
  130. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  132. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +800 -0
  134. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  136. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  137. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
  138. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  139. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +400 -0
  140. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1263 -0
  142. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  144. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  146. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  148. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  149. package/artifacts/contracts/product/Product.sol/Product.json +1201 -0
  150. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  151. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  152. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  154. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  155. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +784 -0
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +743 -104
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +1083 -114
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/shared/Component.sol/Component.json +832 -0
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  186. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +605 -0
  188. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  190. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  192. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  194. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +110 -0
  196. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  197. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +131 -0
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  201. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
  202. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IService.sol/IService.json +346 -0
  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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  216. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  218. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  220. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  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/shared/Service.sol/Service.json +507 -0
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +469 -0
  230. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  231. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  232. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
  234. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  236. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
  238. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
  240. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -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 +2242 -0
  252. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  254. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  255. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -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 +317 -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/type/RiskId.sol/RiskIdLib.json +86 -0
  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 +222 -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/type/StateId.sol/StateIdLib.json +92 -0
  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 +312 -0
  296. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  298. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  300. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  304. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  306. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  307. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  308. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  310. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  312. package/contracts/authorization/AccessAdmin.sol +591 -0
  313. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  314. package/contracts/authorization/Authorization.sol +217 -0
  315. package/contracts/authorization/IAccess.sol +48 -0
  316. package/contracts/authorization/IAccessAdmin.sol +136 -0
  317. package/contracts/authorization/IAuthorization.sol +54 -0
  318. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  319. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  320. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  321. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  322. package/contracts/distribution/BasicDistribution.sol +138 -0
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  324. package/contracts/distribution/Distribution.sol +295 -0
  325. package/contracts/distribution/DistributionService.sol +322 -0
  326. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  327. package/contracts/distribution/IDistributionComponent.sol +52 -0
  328. package/contracts/distribution/IDistributionService.sol +95 -0
  329. package/contracts/instance/BundleSet.sol +126 -0
  330. package/contracts/instance/IInstance.sol +58 -15
  331. package/contracts/instance/IInstanceService.sol +92 -0
  332. package/contracts/instance/Instance.sol +211 -45
  333. package/contracts/instance/InstanceAdmin.sol +285 -0
  334. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  335. package/contracts/instance/InstanceReader.sol +408 -0
  336. package/contracts/instance/InstanceService.sol +467 -0
  337. package/contracts/instance/InstanceServiceManager.sol +40 -0
  338. package/contracts/instance/InstanceStore.sol +277 -0
  339. package/contracts/instance/base/BalanceStore.sol +123 -0
  340. package/contracts/instance/base/Cloneable.sol +28 -0
  341. package/contracts/instance/base/ObjectCounter.sol +21 -0
  342. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  343. package/contracts/instance/base/ObjectSet.sol +79 -0
  344. package/contracts/instance/module/IAccess.sol +46 -0
  345. package/contracts/instance/module/IBundle.sol +20 -0
  346. package/contracts/instance/module/IComponents.sol +46 -0
  347. package/contracts/instance/module/IDistribution.sol +41 -0
  348. package/contracts/instance/module/IPolicy.sol +84 -0
  349. package/contracts/instance/module/IRisk.sol +11 -0
  350. package/contracts/mock/Dip.sol +26 -0
  351. package/contracts/oracle/BasicOracle.sol +48 -0
  352. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  353. package/contracts/oracle/IOracle.sol +36 -0
  354. package/contracts/oracle/IOracleComponent.sol +33 -0
  355. package/contracts/oracle/IOracleService.sol +65 -0
  356. package/contracts/oracle/Oracle.sol +166 -0
  357. package/contracts/oracle/OracleService.sol +278 -0
  358. package/contracts/oracle/OracleServiceManager.sol +39 -0
  359. package/contracts/pool/BasicPool.sol +166 -0
  360. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  361. package/contracts/pool/BundleService.sol +436 -0
  362. package/contracts/pool/BundleServiceManager.sol +39 -0
  363. package/contracts/pool/IBundleService.sol +134 -0
  364. package/contracts/pool/IPoolComponent.sol +58 -0
  365. package/contracts/pool/IPoolService.sol +163 -0
  366. package/contracts/pool/Pool.sol +328 -0
  367. package/contracts/pool/PoolService.sol +541 -0
  368. package/contracts/pool/PoolServiceManager.sol +39 -0
  369. package/contracts/product/ApplicationService.sol +250 -0
  370. package/contracts/product/ApplicationServiceManager.sol +38 -0
  371. package/contracts/product/BasicProduct.sol +52 -0
  372. package/contracts/product/BasicProductAuthorization.sol +43 -0
  373. package/contracts/product/ClaimService.sol +416 -0
  374. package/contracts/product/ClaimServiceManager.sol +38 -0
  375. package/contracts/product/IApplicationService.sol +63 -0
  376. package/contracts/product/IClaimService.sol +100 -0
  377. package/contracts/product/IPolicyService.sol +84 -0
  378. package/contracts/product/IPricingService.sol +39 -0
  379. package/contracts/product/IProductComponent.sol +40 -0
  380. package/contracts/product/IRiskService.sol +33 -0
  381. package/contracts/product/PolicyService.sol +584 -0
  382. package/contracts/product/PolicyServiceManager.sol +39 -0
  383. package/contracts/product/PricingService.sol +304 -0
  384. package/contracts/product/PricingServiceManager.sol +39 -0
  385. package/contracts/product/Product.sol +410 -0
  386. package/contracts/product/RiskService.sol +97 -0
  387. package/contracts/product/RiskServiceManager.sol +39 -0
  388. package/contracts/registry/ChainNft.sol +217 -0
  389. package/contracts/registry/IRegistry.sol +120 -52
  390. package/contracts/registry/IRegistryService.sol +69 -0
  391. package/contracts/registry/ITransferInterceptor.sol +7 -0
  392. package/contracts/registry/Registry.sol +504 -125
  393. package/contracts/registry/RegistryAdmin.sol +374 -0
  394. package/contracts/registry/RegistryService.sol +252 -0
  395. package/contracts/registry/RegistryServiceManager.sol +53 -0
  396. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  397. package/contracts/registry/ReleaseRegistry.sol +485 -0
  398. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  399. package/contracts/registry/TokenRegistry.sol +315 -0
  400. package/contracts/shared/Component.sol +268 -0
  401. package/contracts/shared/ComponentService.sol +641 -0
  402. package/contracts/shared/ComponentServiceManager.sol +35 -0
  403. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  404. package/contracts/shared/IComponent.sol +70 -0
  405. package/contracts/shared/IComponentService.sol +108 -0
  406. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  407. package/contracts/shared/IKeyValueStore.sol +54 -0
  408. package/contracts/shared/ILifecycle.sol +29 -0
  409. package/contracts/shared/INftOwnable.sol +23 -0
  410. package/contracts/shared/IPolicyHolder.sol +45 -0
  411. package/contracts/shared/IRegisterable.sol +15 -0
  412. package/contracts/shared/IRegistryLinked.sol +11 -0
  413. package/contracts/shared/IService.sol +25 -0
  414. package/contracts/shared/InitializableCustom.sol +177 -0
  415. package/contracts/shared/InitializableERC165.sol +27 -0
  416. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  417. package/contracts/shared/KeyValueStore.sol +131 -0
  418. package/contracts/shared/Lifecycle.sol +77 -0
  419. package/contracts/shared/NftIdSet.sol +65 -0
  420. package/contracts/shared/NftOwnable.sol +107 -0
  421. package/contracts/shared/PolicyHolder.sol +99 -0
  422. package/contracts/shared/Registerable.sol +75 -0
  423. package/contracts/shared/RegistryLinked.sol +43 -0
  424. package/contracts/shared/Service.sol +82 -0
  425. package/contracts/shared/TokenHandler.sol +139 -0
  426. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  427. package/contracts/staking/IStaking.sol +167 -0
  428. package/contracts/staking/IStakingService.sol +160 -0
  429. package/contracts/staking/StakeManagerLib.sol +206 -0
  430. package/contracts/staking/Staking.sol +497 -0
  431. package/contracts/staking/StakingLifecycle.sol +23 -0
  432. package/contracts/staking/StakingManager.sol +50 -0
  433. package/contracts/staking/StakingReader.sol +183 -0
  434. package/contracts/staking/StakingService.sol +407 -0
  435. package/contracts/staking/StakingServiceManager.sol +44 -0
  436. package/contracts/staking/StakingStore.sol +605 -0
  437. package/contracts/staking/TargetManagerLib.sol +207 -0
  438. package/contracts/type/AddressSet.sol +58 -0
  439. package/contracts/type/Amount.sol +135 -0
  440. package/contracts/type/Blocknumber.sol +142 -0
  441. package/contracts/type/ClaimId.sol +75 -0
  442. package/contracts/type/DistributorType.sol +55 -0
  443. package/contracts/type/Fee.sol +66 -0
  444. package/contracts/type/Key32.sol +50 -0
  445. package/contracts/type/NftId.sol +78 -0
  446. package/contracts/type/NftIdSet.sol +62 -0
  447. package/contracts/type/ObjectType.sol +271 -0
  448. package/contracts/type/PayoutId.sol +82 -0
  449. package/contracts/type/Referral.sol +90 -0
  450. package/contracts/type/RequestId.sol +75 -0
  451. package/contracts/type/RiskId.sol +43 -0
  452. package/contracts/type/RoleId.sol +174 -0
  453. package/contracts/type/Seconds.sol +93 -0
  454. package/contracts/type/Selector.sol +102 -0
  455. package/contracts/type/StateId.sol +135 -0
  456. package/contracts/type/String.sol +53 -0
  457. package/contracts/type/Timestamp.sol +146 -0
  458. package/contracts/type/UFixed.sol +351 -0
  459. package/contracts/type/Version.sol +110 -0
  460. package/contracts/upgradeability/IVersionable.sol +53 -0
  461. package/contracts/upgradeability/ProxyManager.sol +198 -0
  462. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  463. package/contracts/upgradeability/Versionable.sol +59 -0
  464. package/package.json +25 -7
  465. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  466. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  467. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  468. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  469. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  470. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  471. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  472. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  473. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  474. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -195
  475. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  476. package/artifacts/contracts/components/Product.sol/Product.json +0 -213
  477. package/artifacts/contracts/experiment/A.sol/A.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/A.sol/A.json +0 -128
  479. package/artifacts/contracts/experiment/A.sol/AShared.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/A.sol/AShared.json +0 -42
  481. package/artifacts/contracts/experiment/B.sol/B.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/B.sol/B.json +0 -76
  483. package/artifacts/contracts/experiment/C.sol/C.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/C.sol/C.json +0 -89
  485. package/artifacts/contracts/experiment/IA.sol/IA.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/IA.sol/IA.json +0 -128
  487. package/artifacts/contracts/experiment/IA.sol/ISharedA.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/IA.sol/ISharedA.json +0 -37
  489. package/artifacts/contracts/experiment/IB.sol/IB.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/IB.sol/IB.json +0 -50
  491. package/artifacts/contracts/experiment/IC.sol/IC.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/IC.sol/IC.json +0 -63
  493. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  494. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  495. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  496. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  497. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  498. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  499. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  500. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  501. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  502. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  503. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  505. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  506. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  507. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  508. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  509. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  510. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  512. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  513. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  514. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  515. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  516. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  517. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  518. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  519. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  520. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  521. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  522. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  523. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  524. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  525. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  526. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  528. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  529. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  530. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  532. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  533. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  534. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  535. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  536. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  537. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  538. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  539. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  540. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  541. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  542. package/contracts/components/Component.sol +0 -62
  543. package/contracts/components/IPool.sol +0 -9
  544. package/contracts/components/IProduct.sol +0 -11
  545. package/contracts/components/Pool.sol +0 -29
  546. package/contracts/components/Product.sol +0 -65
  547. package/contracts/experiment/A.sol +0 -56
  548. package/contracts/experiment/B.sol +0 -23
  549. package/contracts/experiment/C.sol +0 -28
  550. package/contracts/experiment/IA.sol +0 -18
  551. package/contracts/experiment/IB.sol +0 -9
  552. package/contracts/experiment/IC.sol +0 -11
  553. package/contracts/instance/access/Access.sol +0 -218
  554. package/contracts/instance/access/IAccess.sol +0 -83
  555. package/contracts/instance/component/ComponentModule.sol +0 -259
  556. package/contracts/instance/component/IComponent.sol +0 -94
  557. package/contracts/instance/policy/IPolicy.sol +0 -66
  558. package/contracts/instance/policy/PolicyModule.sol +0 -106
  559. package/contracts/instance/pool/IPoolModule.sol +0 -40
  560. package/contracts/instance/pool/PoolModule.sol +0 -83
  561. package/contracts/instance/product/IProductService.sol +0 -45
  562. package/contracts/instance/product/ProductService.sol +0 -105
@@ -0,0 +1,163 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {PayoutId} from "../type/PayoutId.sol";
8
+ import {IBundle} from "../instance/module/IBundle.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {InstanceReader} from "../instance/InstanceReader.sol";
11
+ import {IPolicy} from "../instance/module/IPolicy.sol";
12
+ import {IService} from "../shared/IService.sol";
13
+ import {RoleId} from "../type/RoleId.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
+ import {StateId} from "../type/StateId.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
17
+
18
+ interface IPoolService is IService {
19
+
20
+ event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
21
+ event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
22
+
23
+ event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
24
+ event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
25
+
26
+ event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
27
+ event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
28
+
29
+ error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
30
+ error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
31
+ error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
32
+ error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
33
+
34
+ /// @dev defines the required role for bundle owners for the calling pool
35
+ /// default implementation returns PUBLIC ROLE
36
+ function setBundleOwnerRole(RoleId bundleOwnerRole) external;
37
+
38
+ /// @dev sets the max balance amount for the calling pool
39
+ function setMaxBalanceAmount(Amount maxBalanceAmount) external;
40
+
41
+ /// @dev locks required collateral to cover the specified application (and turn it into a policy)
42
+ /// - retention level == 1: the full collateral amount will be locked by the specified bundle
43
+ /// - retention level < 1: a part of the coverage is provided by the specified bundle, the rest by the pool component
44
+ /// in which case the pool component might hold a re-insurance policy
45
+ /// may only be called by the policy service for unlocked pool components
46
+ function lockCollateral(
47
+ IInstance instance,
48
+ address token,
49
+ NftId productNftId,
50
+ NftId applicationNftId,
51
+ NftId bundleNftId,
52
+ Amount sumInsuredAmount // premium amount after product and distribution fees
53
+ )
54
+ external
55
+ returns (
56
+ Amount localCollateralAmount,
57
+ Amount totalCollateralAmount
58
+ );
59
+
60
+
61
+ /// @dev releases the remaining collateral linked to the specified policy
62
+ /// may only be called by the policy service for unlocked pool components
63
+ function releaseCollateral(
64
+ IInstance instance,
65
+ address token,
66
+ NftId policyNftId,
67
+ IPolicy.PolicyInfo memory policyInfo
68
+ ) external;
69
+
70
+
71
+ /// @dev reduces the locked collateral in the bundle associated with the specified policy
72
+ /// every payout of a policy reduces the collateral by the payout amount
73
+ /// may only be called by the claim service for unlocked pool components
74
+ function reduceCollateral(
75
+ IInstance instance,
76
+ address token,
77
+ NftId policyNftId,
78
+ IPolicy.PolicyInfo memory policyInfo,
79
+ Amount payoutAmount
80
+ ) external;
81
+
82
+
83
+ /// @dev create a new bundle for the provided parameters
84
+ /// staking fees will be deducted by the pool service from the staking amount
85
+ /// may only be called by registered and unlocked pool components.
86
+ /// The pool balance is equal to the pool fees plus the capital of all bundles.
87
+ function createBundle(
88
+ address owner, // initial bundle owner
89
+ Fee memory fee, // fees deducted from premium that go to bundle owner
90
+ Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
91
+ Seconds lifetime, // initial duration for which new policies are covered
92
+ bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
93
+ )
94
+ external
95
+ returns(NftId bundleNftId, Amount netStakedAmount); // the nft id of the newly created bundle
96
+
97
+
98
+ /// @dev increase stakes for bundle
99
+ /// staking fees will be deducted by the pool service from the staking amount
100
+ /// may only be called by registered and unlocked pool components
101
+ function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
102
+
103
+
104
+ /// @dev decrease stakes for bundle
105
+ /// performance fees will be deducted by the pool service from the staking amount
106
+ /// may only be called by registered and unlocked pool components
107
+ function unstake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
108
+
109
+
110
+ /// @dev closes the specified bundle
111
+ /// only open bundles (active or locked) may be closed
112
+ /// to close a bundle it may not have any non-closed polices attached to it
113
+ /// bundle fees and remaining capital (after deduction of the performance fee) will be transferred to the bundle owner
114
+ /// may only be called by registered and unlocked pool components
115
+ function closeBundle(NftId bundleNftId) external;
116
+
117
+
118
+ /// @dev Fund the specified pool wallet with the provided amount.
119
+ /// This function will collect the amount from the sender address and transfers it to the pool wallet.
120
+ /// The function will not update balance amounts managed by the framework.
121
+ /// Only available for externally managed pools.
122
+ function fundPoolWallet(NftId poolNftId, Amount amount) external;
123
+
124
+
125
+ /// @dev Defund the specified pool wallet with the provided amount.
126
+ /// This function will transfer the amount from the pool wallet to the sender address.
127
+ /// The function will not update balance amounts managed by the framework.
128
+ /// Only available for externally managed pools.
129
+ function defundPoolWallet(NftId poolNftId, Amount amount) external;
130
+
131
+
132
+ /// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
133
+ function processSale(NftId bundleNftId, IPolicy.Premium memory premium) external;
134
+
135
+
136
+ /// @dev calulate required collateral for the provided parameters
137
+ function calculateRequiredCollateral(
138
+ InstanceReader instanceReader,
139
+ NftId productNftId,
140
+ Amount sumInsuredAmount
141
+ )
142
+ external
143
+ view
144
+ returns(
145
+ Amount localCollateralAmount,
146
+ Amount totalCollateralAmount
147
+ );
148
+
149
+
150
+ /// @dev calulate required collateral for the provided parameters
151
+ function calculateRequiredCollateral(
152
+ UFixed collateralizationLevel,
153
+ UFixed retentionLevel,
154
+ Amount sumInsuredAmount
155
+ )
156
+ external
157
+ pure
158
+ returns(
159
+ Amount localCollateralAmount,
160
+ Amount totalCollateralAmount
161
+ );
162
+
163
+ }
@@ -0,0 +1,328 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../type/Amount.sol";
5
+ import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
6
+ import {IBundleService} from "./IBundleService.sol";
7
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
+ import {IPoolComponent} from "./IPoolComponent.sol";
9
+ import {IPoolService} from "./IPoolService.sol";
10
+ import {IComponents} from "../instance/module/IComponents.sol";
11
+ import {IComponentService} from "../shared/IComponentService.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
+ import {Fee, FeeLib} from "../type/Fee.sol";
14
+ import {NftId, NftIdLib} from "../type/NftId.sol";
15
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {Timestamp} from "../type/Timestamp.sol";
18
+ import {TokenHandler} from "../shared/TokenHandler.sol";
19
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
20
+
21
+ abstract contract Pool is
22
+ InstanceLinkedComponent,
23
+ IPoolComponent
24
+ {
25
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
26
+ bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
27
+
28
+ struct PoolStorage {
29
+ IComponentService _componentService;
30
+ IPoolService _poolService;
31
+ IBundleService _bundleService;
32
+ }
33
+
34
+
35
+ modifier onlyBundleOwner(NftId bundleNftId) {
36
+ if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
37
+ revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
38
+ }
39
+ _;
40
+ }
41
+
42
+
43
+ /// @dev see {IPoolComponent.verifyApplication}
44
+ function verifyApplication(
45
+ NftId applicationNftId,
46
+ bytes memory applicationData,
47
+ NftId bundleNftId,
48
+ bytes memory bundleFilter,
49
+ Amount collateralizationAmount
50
+ )
51
+ public
52
+ virtual
53
+ restricted()
54
+ {
55
+ if(!applicationMatchesBundle(
56
+ applicationNftId,
57
+ applicationData,
58
+ bundleNftId,
59
+ bundleFilter,
60
+ collateralizationAmount)
61
+ )
62
+ {
63
+ revert ErrorPoolApplicationBundleMismatch(applicationNftId);
64
+ }
65
+
66
+ emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
67
+ }
68
+
69
+
70
+ /// @dev see {IPoolComponent.applicationMatchesBundle}
71
+ /// Override this function to implement any custom application verification
72
+ /// Default implementation always returns true
73
+ function applicationMatchesBundle(
74
+ NftId applicationNftId,
75
+ bytes memory applicationData,
76
+ NftId bundleNftId,
77
+ bytes memory bundleFilter,
78
+ Amount collateralizationAmount
79
+ )
80
+ public
81
+ virtual
82
+ view
83
+ returns (bool isMatching)
84
+ {
85
+ return true;
86
+ }
87
+
88
+
89
+ function register()
90
+ external
91
+ virtual
92
+ onlyOwner()
93
+ {
94
+ _getPoolStorage()._componentService.registerPool();
95
+ _approveTokenHandler(type(uint256).max);
96
+ }
97
+
98
+ /// @inheritdoc IPoolComponent
99
+ function withdrawBundleFees(NftId bundleNftId, Amount amount)
100
+ external
101
+ virtual
102
+ restricted()
103
+ onlyBundleOwner(bundleNftId)
104
+ returns (Amount withdrawnAmount)
105
+ {
106
+ return _withdrawBundleFees(bundleNftId, amount);
107
+ }
108
+
109
+
110
+ function getInitialPoolInfo()
111
+ public
112
+ virtual
113
+ view
114
+ returns (IComponents.PoolInfo memory poolInfo)
115
+ {
116
+ return IComponents.PoolInfo(
117
+ PUBLIC_ROLE(), // bundleOwnerRole
118
+ AmountLib.max(), // maxCapitalAmount,
119
+ isNftInterceptor(), // isInterceptingBundleTransfers
120
+ false, // isExternallyManaged,
121
+ false, // isVerifyingApplications,
122
+ UFixedLib.toUFixed(1), // collateralizationLevel,
123
+ UFixedLib.toUFixed(1) // retentionLevel,
124
+ );
125
+ }
126
+
127
+ // Internals
128
+
129
+ function _initializePool(
130
+ address registry,
131
+ NftId instanceNftId,
132
+ string memory name,
133
+ address token,
134
+ IAuthorization authorization,
135
+ bool isInterceptingNftTransfers,
136
+ address initialOwner,
137
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
138
+ bytes memory componentData // component specifidc data
139
+ )
140
+ internal
141
+ virtual
142
+ onlyInitializing()
143
+ {
144
+ _initializeInstanceLinkedComponent(
145
+ registry,
146
+ instanceNftId,
147
+ name,
148
+ token,
149
+ POOL(),
150
+ authorization,
151
+ isInterceptingNftTransfers,
152
+ initialOwner,
153
+ registryData,
154
+ componentData);
155
+
156
+ PoolStorage storage $ = _getPoolStorage();
157
+ $._poolService = IPoolService(_getServiceAddress(POOL()));
158
+ $._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
159
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
160
+
161
+ registerInterface(type(IPoolComponent).interfaceId);
162
+ }
163
+
164
+ /// @dev increases the staked tokens by the specified amount
165
+ /// bundle MUST be in active or locked state
166
+ function _stake(
167
+ NftId bundleNftId,
168
+ Amount amount
169
+ )
170
+ internal
171
+ virtual
172
+ returns(Amount netAmount)
173
+ {
174
+ _getPoolStorage()._poolService.stake(bundleNftId, amount);
175
+ }
176
+
177
+
178
+ /// @dev decreases the staked tokens by the specified amount
179
+ /// bundle MUST be in active, locked or closed state
180
+ function _unstake(
181
+ NftId bundleNftId,
182
+ Amount amount
183
+ )
184
+ internal
185
+ virtual
186
+ returns(Amount netAmount)
187
+ {
188
+ return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
189
+ }
190
+
191
+
192
+ /// @dev extends the bundle lifetime of the bundle by the specified time
193
+ /// bundle MUST be in active or locked state
194
+ function _extend(
195
+ NftId bundleNftId,
196
+ Seconds lifetimeExtension
197
+ )
198
+ internal
199
+ virtual
200
+ returns (Timestamp extendedExpiredAt)
201
+ {
202
+ return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
203
+ }
204
+
205
+
206
+ /// @dev Locks the specified bundle.
207
+ /// A bundle to be locked MUST be in active state.
208
+ /// Locked bundles may not be used to collateralize any new policy.
209
+ function _lockBundle(NftId bundleNftId)
210
+ internal
211
+ virtual
212
+ {
213
+ _getPoolStorage()._bundleService.lock(bundleNftId);
214
+ }
215
+
216
+
217
+ /// @dev Unlocks the specified bundle.
218
+ /// A bundle to be unlocked MUST be in locked state.
219
+ function _unlockBundle(NftId bundleNftId)
220
+ internal
221
+ virtual
222
+ {
223
+ _getPoolStorage()._bundleService.unlock(bundleNftId);
224
+ }
225
+
226
+
227
+ /// @dev Close the specified bundle.
228
+ /// A bundle to be closed MUST be in active or locked state.
229
+ /// To close a bundle all all linked policies MUST be in closed state as well.
230
+ /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
231
+ /// Once a bundle is closed this action cannot be reversed.
232
+ function _closeBundle(NftId bundleNftId)
233
+ internal
234
+ virtual
235
+ {
236
+ _getPoolStorage()._poolService.closeBundle(bundleNftId);
237
+ }
238
+
239
+
240
+ /// @dev Sets the fee for the specified bundle.
241
+ /// The fee is added on top of the poolFee and deducted from the premium amounts
242
+ /// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
243
+ function _setBundleFee(
244
+ NftId bundleNftId,
245
+ Fee memory fee
246
+ )
247
+ internal
248
+ virtual
249
+ {
250
+ _getPoolStorage()._bundleService.setFee(bundleNftId, fee);
251
+ }
252
+
253
+
254
+ /// @dev Sets the maximum balance amound held by this pool.
255
+ /// Function may only be called by pool owner.
256
+ function _setMaxBalanceAmount(Amount maxBalanceAmount)
257
+ internal
258
+ virtual
259
+ {
260
+ _getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
261
+ }
262
+
263
+ /// @dev Sets the required role to create/own bundles.
264
+ /// May only be called once after setting up a pool.
265
+ /// May only be called by pool owner.
266
+ function _setBundleOwnerRole(RoleId bundleOwnerRole)
267
+ internal
268
+ virtual
269
+ {
270
+ _getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
271
+ }
272
+
273
+
274
+ /// @dev Update pool fees to the specified values.
275
+ /// Pool fee: are deducted from the premium amount and goes to the pool owner.
276
+ /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
277
+ /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
278
+ /// The performance fee is deducted from this profit and goes to the pool owner.
279
+ function _setPoolFees(
280
+ Fee memory poolFee,
281
+ Fee memory stakingFee,
282
+ Fee memory performanceFee
283
+ )
284
+ internal
285
+ virtual
286
+ {
287
+ _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
288
+ }
289
+
290
+ /// @dev Creates a new bundle using the provided parameter values.
291
+ function _createBundle(
292
+ address bundleOwner,
293
+ Fee memory fee,
294
+ Amount amount,
295
+ Seconds lifetime,
296
+ bytes memory filter
297
+ )
298
+ internal
299
+ returns(NftId bundleNftId, Amount netStakedAmount)
300
+ {
301
+ (bundleNftId, netStakedAmount) = _getPoolStorage()._poolService.createBundle(
302
+ bundleOwner,
303
+ fee,
304
+ amount,
305
+ lifetime,
306
+ filter);
307
+
308
+ // TODO add logging
309
+ }
310
+
311
+ // TODO remove function once this is no longer used to produce contract locations on the fly ...
312
+ function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
313
+ return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
314
+ }
315
+
316
+ function _withdrawBundleFees(NftId bundleNftId, Amount amount)
317
+ internal
318
+ returns (Amount withdrawnAmount)
319
+ {
320
+ return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
321
+ }
322
+
323
+ function _getPoolStorage() private pure returns (PoolStorage storage $) {
324
+ assembly {
325
+ $.slot := POOL_STORAGE_LOCATION_V1
326
+ }
327
+ }
328
+ }