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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/README.md +57 -88
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1013 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +220 -509
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +282 -227
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +254 -335
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1463 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1712 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +278 -1906
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +318 -70
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +335 -2711
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +904 -338
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +350 -343
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +132 -111
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +305 -170
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +293 -383
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +802 -0
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +412 -135
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  120. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +297 -324
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.json +1034 -0
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1474 -0
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +726 -0
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +354 -397
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1346 -0
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +814 -0
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +129 -168
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +867 -0
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → product/IPricingService.sol/IPricingService.json} +214 -217
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +81 -65
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1239 -0
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +770 -0
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  162. package/artifacts/contracts/product/Product.sol/Product.json +1054 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +394 -21
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -149
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +793 -37
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -204
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +126 -95
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  192. package/artifacts/contracts/shared/Component.sol/Component.json +685 -0
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +146 -142
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  202. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +193 -75
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +215 -227
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  221. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  222. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  224. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  226. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +194 -215
  227. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +12 -70
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +18 -106
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  241. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Service.sol/Service.json +88 -113
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  307. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  320. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  326. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  327. package/contracts/authorization/AccessAdmin.sol +592 -0
  328. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  329. package/contracts/authorization/Authorization.sol +217 -0
  330. package/contracts/authorization/IAccess.sol +48 -0
  331. package/contracts/authorization/IAccessAdmin.sol +135 -0
  332. package/contracts/authorization/IAuthorization.sol +54 -0
  333. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  334. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  335. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  336. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  337. package/contracts/distribution/BasicDistribution.sol +138 -0
  338. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  339. package/contracts/{components → distribution}/Distribution.sol +178 -163
  340. package/contracts/distribution/DistributionService.sol +336 -0
  341. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  342. package/contracts/distribution/IDistributionComponent.sol +52 -0
  343. package/contracts/{instance/service → distribution}/IDistributionService.sol +41 -38
  344. package/contracts/examples/fire/FirePool.sol +75 -0
  345. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  346. package/contracts/examples/fire/FireProduct.sol +324 -0
  347. package/contracts/examples/fire/FireProductAuthorization.sol +35 -0
  348. package/contracts/examples/fire/FireUSD.sol +26 -0
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  350. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  353. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  354. package/contracts/instance/IInstance.sol +43 -73
  355. package/contracts/instance/IInstanceService.sol +56 -24
  356. package/contracts/instance/Instance.sol +160 -226
  357. package/contracts/instance/InstanceAdmin.sol +285 -0
  358. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  359. package/contracts/instance/InstanceReader.sol +201 -65
  360. package/contracts/instance/InstanceService.sol +333 -356
  361. package/contracts/instance/InstanceServiceManager.sol +14 -29
  362. package/contracts/instance/InstanceStore.sol +287 -0
  363. package/contracts/instance/base/BalanceStore.sol +123 -0
  364. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  365. package/contracts/instance/base/ObjectCounter.sol +21 -0
  366. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  367. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  368. package/contracts/instance/module/IAccess.sol +19 -20
  369. package/contracts/instance/module/IBundle.sol +8 -9
  370. package/contracts/instance/module/IComponents.sol +20 -9
  371. package/contracts/instance/module/IDistribution.sol +6 -6
  372. package/contracts/instance/module/IPolicy.sol +47 -35
  373. package/contracts/instance/module/IRisk.sol +1 -1
  374. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  375. package/contracts/oracle/BasicOracle.sol +48 -0
  376. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  377. package/contracts/oracle/IOracle.sol +36 -0
  378. package/contracts/oracle/IOracleComponent.sol +33 -0
  379. package/contracts/oracle/IOracleService.sol +65 -0
  380. package/contracts/oracle/Oracle.sol +167 -0
  381. package/contracts/oracle/OracleService.sol +281 -0
  382. package/contracts/oracle/OracleServiceManager.sol +39 -0
  383. package/contracts/pool/BasicPool.sol +166 -0
  384. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  385. package/contracts/pool/BundleService.sol +438 -0
  386. package/contracts/pool/BundleServiceManager.sol +39 -0
  387. package/contracts/pool/IBundleService.sol +134 -0
  388. package/contracts/pool/IPoolComponent.sol +58 -0
  389. package/contracts/pool/IPoolService.sol +160 -0
  390. package/contracts/pool/Pool.sol +326 -0
  391. package/contracts/pool/PoolService.sol +508 -0
  392. package/contracts/pool/PoolServiceManager.sol +39 -0
  393. package/contracts/product/ApplicationService.sol +247 -0
  394. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  395. package/contracts/product/BasicProduct.sol +53 -0
  396. package/contracts/product/BasicProductAuthorization.sol +43 -0
  397. package/contracts/product/ClaimService.sol +546 -0
  398. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  399. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  400. package/contracts/product/IClaimService.sol +122 -0
  401. package/contracts/product/IPolicyService.sol +77 -0
  402. package/contracts/product/IPricingService.sol +39 -0
  403. package/contracts/product/IProductComponent.sol +39 -0
  404. package/contracts/product/IRiskService.sol +33 -0
  405. package/contracts/product/PolicyService.sol +651 -0
  406. package/contracts/product/PolicyServiceManager.sol +39 -0
  407. package/contracts/product/PricingService.sol +300 -0
  408. package/contracts/product/PricingServiceManager.sol +39 -0
  409. package/contracts/product/Product.sol +425 -0
  410. package/contracts/product/RiskService.sol +96 -0
  411. package/contracts/product/RiskServiceManager.sol +39 -0
  412. package/contracts/registry/ChainNft.sol +80 -32
  413. package/contracts/registry/IRegistry.sol +94 -25
  414. package/contracts/registry/IRegistryService.sol +44 -42
  415. package/contracts/registry/ITransferInterceptor.sol +1 -0
  416. package/contracts/registry/Registry.sol +439 -201
  417. package/contracts/registry/RegistryAdmin.sol +464 -0
  418. package/contracts/registry/RegistryService.sol +70 -101
  419. package/contracts/registry/RegistryServiceManager.sol +23 -32
  420. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  421. package/contracts/registry/ReleaseRegistry.sol +491 -0
  422. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  423. package/contracts/registry/TokenRegistry.sol +261 -62
  424. package/contracts/shared/Component.sol +268 -0
  425. package/contracts/shared/ComponentService.sol +641 -0
  426. package/contracts/shared/ComponentServiceManager.sol +38 -0
  427. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  428. package/contracts/shared/ContractLib.sol +38 -0
  429. package/contracts/shared/IComponent.sol +70 -0
  430. package/contracts/shared/IComponentService.sol +108 -0
  431. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  432. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  433. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  434. package/contracts/shared/INftOwnable.sol +2 -2
  435. package/contracts/shared/IPolicyHolder.sol +23 -14
  436. package/contracts/shared/IRegistryLinked.sol +0 -1
  437. package/contracts/shared/IService.sol +15 -8
  438. package/contracts/shared/InitializableCustom.sol +177 -0
  439. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  440. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  441. package/contracts/shared/KeyValueStore.sol +131 -0
  442. package/contracts/shared/Lifecycle.sol +77 -0
  443. package/contracts/shared/NftIdSet.sol +65 -0
  444. package/contracts/shared/NftOwnable.sol +10 -23
  445. package/contracts/shared/PolicyHolder.sol +19 -42
  446. package/contracts/shared/Registerable.sol +17 -16
  447. package/contracts/shared/RegistryLinked.sol +3 -7
  448. package/contracts/shared/Service.sol +56 -27
  449. package/contracts/shared/TokenHandler.sol +115 -9
  450. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  451. package/contracts/staking/IStaking.sol +168 -0
  452. package/contracts/staking/IStakingService.sol +160 -0
  453. package/contracts/staking/StakeManagerLib.sol +224 -0
  454. package/contracts/staking/Staking.sol +498 -0
  455. package/contracts/staking/StakingLifecycle.sol +23 -0
  456. package/contracts/staking/StakingManager.sol +52 -0
  457. package/contracts/staking/StakingReader.sol +183 -0
  458. package/contracts/staking/StakingService.sol +407 -0
  459. package/contracts/staking/StakingServiceManager.sol +44 -0
  460. package/contracts/staking/StakingStore.sol +605 -0
  461. package/contracts/staking/TargetManagerLib.sol +211 -0
  462. package/contracts/{types → type}/AddressSet.sol +1 -1
  463. package/contracts/type/Amount.sol +135 -0
  464. package/contracts/{types → type}/Blocknumber.sol +26 -3
  465. package/contracts/{types → type}/ClaimId.sol +25 -2
  466. package/contracts/{types → type}/Fee.sol +33 -24
  467. package/contracts/{types → type}/NftId.sol +15 -16
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +275 -0
  470. package/contracts/{types → type}/PayoutId.sol +33 -5
  471. package/contracts/{types → type}/Referral.sol +2 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +16 -2
  474. package/contracts/type/RoleId.sol +174 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +34 -4
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +21 -2
  480. package/contracts/{types → type}/UFixed.sol +34 -9
  481. package/contracts/{types → type}/Version.sol +4 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  483. package/contracts/{shared → upgradeability}/ProxyManager.sol +92 -30
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  486. package/package.json +8 -5
  487. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  494. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  495. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  496. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  497. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  498. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  499. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  500. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  502. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  504. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  505. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  507. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  509. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  511. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  512. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  514. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  516. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  518. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  520. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  522. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  524. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  526. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  528. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  532. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  538. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  540. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  542. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  544. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  546. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  548. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  549. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  550. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  551. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  552. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  553. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  556. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  563. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  564. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  565. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  566. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  568. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  570. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  572. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  574. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  576. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  577. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  578. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  579. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  580. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  582. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  584. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  586. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  588. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  590. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  592. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  594. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  595. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  596. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  598. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  600. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  602. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  604. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  606. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  608. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  610. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  613. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  615. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  617. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  619. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  621. package/contracts/components/Component.sol +0 -241
  622. package/contracts/components/IComponent.sol +0 -74
  623. package/contracts/components/IDistributionComponent.sol +0 -71
  624. package/contracts/components/IPoolComponent.sol +0 -113
  625. package/contracts/components/IProductComponent.sol +0 -40
  626. package/contracts/components/Pool.sol +0 -299
  627. package/contracts/components/Product.sol +0 -293
  628. package/contracts/instance/InstanceAccessManager.sol +0 -297
  629. package/contracts/instance/base/ComponentService.sol +0 -134
  630. package/contracts/instance/base/KeyValueStore.sol +0 -175
  631. package/contracts/instance/base/Lifecycle.sol +0 -109
  632. package/contracts/instance/module/ISetup.sol +0 -33
  633. package/contracts/instance/module/ITreasury.sol +0 -23
  634. package/contracts/instance/service/ApplicationService.sol +0 -350
  635. package/contracts/instance/service/BundleService.sol +0 -336
  636. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  637. package/contracts/instance/service/ClaimService.sol +0 -151
  638. package/contracts/instance/service/DistributionService.sol +0 -450
  639. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  640. package/contracts/instance/service/IBundleService.sol +0 -62
  641. package/contracts/instance/service/IClaimService.sol +0 -61
  642. package/contracts/instance/service/IPolicyService.sol +0 -72
  643. package/contracts/instance/service/IPoolService.sol +0 -35
  644. package/contracts/instance/service/IProductService.sol +0 -40
  645. package/contracts/instance/service/PolicyService.sol +0 -403
  646. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  647. package/contracts/instance/service/PoolService.sol +0 -163
  648. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  649. package/contracts/instance/service/ProductService.sol +0 -233
  650. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  651. package/contracts/registry/RegistryAccessManager.sol +0 -216
  652. package/contracts/registry/ReleaseManager.sol +0 -322
  653. package/contracts/shared/ContractDeployerLib.sol +0 -72
  654. package/contracts/test/TestFee.sol +0 -25
  655. package/contracts/test/TestRegisterable.sol +0 -18
  656. package/contracts/test/TestRoleId.sol +0 -14
  657. package/contracts/test/TestService.sol +0 -25
  658. package/contracts/test/TestToken.sol +0 -26
  659. package/contracts/test/TestVersion.sol +0 -44
  660. package/contracts/test/TestVersionable.sol +0 -17
  661. package/contracts/types/ChainId.sol +0 -38
  662. package/contracts/types/NumberId.sol +0 -52
  663. package/contracts/types/ObjectType.sol +0 -157
  664. package/contracts/types/RoleId.sol +0 -95
  665. package/contracts/types/Seconds.sol +0 -54
  666. /package/contracts/{types → type}/DistributorType.sol +0 -0
  667. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,324 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ACTIVE, PAUSED} from "../../type/StateId.sol";
5
+ import {Amount, AmountLib} from "../../type/Amount.sol";
6
+ import {BasicProduct} from "../../product/BasicProduct.sol";
7
+ import {ClaimId} from "../../type/ClaimId.sol";
8
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
9
+ import {NftId} from "../../type/NftId.sol";
10
+ import {ReferralLib} from "../../type/Referral.sol";
11
+ import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
12
+ import {Seconds} from "../../type/Seconds.sol";
13
+ import {Timestamp} from "../../type/Timestamp.sol";
14
+ import {UFixed, UFixedLib} from "../../type/UFixed.sol";
15
+
16
+ uint64 constant SPECIAL_ROLE_INT = 11111;
17
+
18
+ function HALF_YEAR() pure returns (Seconds) {
19
+ return Seconds.wrap(180 * 86400);
20
+ }
21
+
22
+ function ONE_YEAR() pure returns (Seconds) {
23
+ return Seconds.wrap(360 * 86400);
24
+ }
25
+
26
+ /// @dev This is the product component for the fire insurance example.
27
+ /// It show how to insure a house for a given suminsured in a city.
28
+ /// The risk is based on the city.
29
+ /// If a fire is reported in the city, the policy holder is able to submit a claim and get a payout.
30
+ contract FireProduct is
31
+ BasicProduct
32
+ {
33
+ error ErrorFireProductCityUnknown(string cityName);
34
+
35
+ string[] private _cities;
36
+ // map from city name to the RiskId
37
+ mapping(string cityName => RiskId risk) private _riskMapping;
38
+
39
+ constructor(
40
+ address registry,
41
+ NftId instanceNftid,
42
+ string memory componentName,
43
+ address token,
44
+ address pool,
45
+ IAuthorization authorization
46
+ )
47
+ {
48
+ address initialOwner = msg.sender;
49
+ _initialize(
50
+ registry,
51
+ instanceNftid,
52
+ componentName,
53
+ token,
54
+ pool,
55
+ authorization,
56
+ initialOwner);
57
+ initializeCity("London");
58
+ }
59
+
60
+ function _initialize(
61
+ address registry,
62
+ NftId instanceNftid,
63
+ string memory componentName,
64
+ address token,
65
+ address pool,
66
+ IAuthorization authorization,
67
+ address initialOwner
68
+ )
69
+ internal
70
+ initializer
71
+ {
72
+ _initializeBasicProduct(
73
+ registry,
74
+ instanceNftid,
75
+ authorization,
76
+ initialOwner,
77
+ componentName,
78
+ token,
79
+ false,
80
+ pool,
81
+ address(0)); // no distribution
82
+ }
83
+
84
+ function cities() public view returns (uint256) {
85
+ return _cities.length;
86
+ }
87
+
88
+ function city(uint256 idx) public view returns (string memory) {
89
+ return _cities[idx];
90
+ }
91
+
92
+ function riskId(string memory cityName) public view returns (RiskId) {
93
+ return _riskMapping[cityName];
94
+ }
95
+
96
+ function pauseCity(
97
+ string memory cityName
98
+ )
99
+ public
100
+ restricted()
101
+ {
102
+ if (_riskMapping[cityName].eqz()) {
103
+ revert ErrorFireProductCityUnknown(cityName);
104
+ }
105
+
106
+ _updateRiskState(
107
+ _riskMapping[cityName],
108
+ PAUSED()
109
+ );
110
+ }
111
+
112
+ function unpauseCity(
113
+ string memory cityName
114
+ )
115
+ public
116
+ restricted()
117
+ {
118
+ if (_riskMapping[cityName].eqz()) {
119
+ revert ErrorFireProductCityUnknown(cityName);
120
+ }
121
+
122
+ _updateRiskState(
123
+ _riskMapping[cityName],
124
+ ACTIVE()
125
+ );
126
+ }
127
+
128
+ function calculatePremium(
129
+ string memory cityName,
130
+ Amount sumInsured,
131
+ Seconds lifetime,
132
+ NftId bundleNftId
133
+ )
134
+ public
135
+ view
136
+ returns (Amount premiumAmount)
137
+ {
138
+ RiskId riskId = _riskMapping[cityName];
139
+ if (riskId.eqz()) {
140
+ revert ErrorFireProductCityUnknown(cityName);
141
+ }
142
+ premiumAmount = calculatePremium(
143
+ sumInsured,
144
+ riskId,
145
+ lifetime,
146
+ "",
147
+ bundleNftId,
148
+ ReferralLib.zero());
149
+ }
150
+
151
+ function calculateNetPremium(
152
+ Amount sumInsured,
153
+ RiskId,
154
+ Seconds lifetime,
155
+ bytes memory
156
+ )
157
+ external
158
+ view
159
+ virtual override
160
+ returns (Amount netPremiumAmount)
161
+ {
162
+ UFixed numDays = UFixedLib.toUFixed(lifetime.toInt() / 86400);
163
+ // to simplify time calculation we assume 360 days per year
164
+ UFixed pctOfYear = numDays / UFixedLib.toUFixed(360);
165
+ Amount premiumPerYear = AmountLib.toAmount(sumInsured.toInt() / 20);
166
+ return premiumPerYear.multiplyWith(pctOfYear);
167
+ }
168
+
169
+ function createApplication(
170
+ string memory cityName,
171
+ Amount sumInsured,
172
+ Seconds lifetime,
173
+ NftId bundleNftId
174
+ )
175
+ public
176
+ restricted()
177
+ returns (NftId policyNftId)
178
+ {
179
+ address applicationOwner = msg.sender;
180
+ RiskId riskId = initializeCity(cityName);
181
+
182
+ Amount premiumAmount = calculatePremium(
183
+ sumInsured,
184
+ riskId,
185
+ lifetime,
186
+ "",
187
+ bundleNftId,
188
+ ReferralLib.zero());
189
+
190
+ return _createApplication(
191
+ applicationOwner,
192
+ riskId,
193
+ sumInsured,
194
+ premiumAmount,
195
+ lifetime,
196
+ bundleNftId,
197
+ ReferralLib.zero(),
198
+ ""
199
+ );
200
+ }
201
+
202
+ function initializeCity(
203
+ string memory cityName
204
+ )
205
+ public
206
+ returns (RiskId riskId)
207
+ {
208
+ if (! _riskMapping[cityName].eqz()) {
209
+ return _riskMapping[cityName];
210
+ }
211
+ _cities.push(cityName);
212
+ riskId = RiskIdLib.toRiskId(cityName);
213
+ _createRisk(riskId, "");
214
+ _riskMapping[cityName] = riskId;
215
+ }
216
+
217
+ /// @dev Calling this method will lock the sum insured amount in the pool and activate the policy at the given time.
218
+ /// It will also collect the tokens payment for the premium. An approval with the correct amount towards the TokenHandler of the product is therefor required.
219
+ function createPolicy(
220
+ NftId policyNftId,
221
+ Timestamp activateAt
222
+ )
223
+ public
224
+ restricted()
225
+ {
226
+ _createPolicy(policyNftId, activateAt);
227
+ _collectPremium(policyNftId, activateAt);
228
+ }
229
+
230
+ /// @dev Decline the policy application
231
+ function decline(
232
+ NftId policyNftId
233
+ )
234
+ public
235
+ restricted()
236
+ {
237
+ _decline(policyNftId);
238
+ }
239
+
240
+ function expire(
241
+ NftId policyNftId,
242
+ Timestamp expireAt
243
+ )
244
+ public
245
+ restricted()
246
+ returns (Timestamp)
247
+ {
248
+ // TODO: implement expire
249
+ // return _expire(policyNftId, expireAt);
250
+ }
251
+
252
+ function close(
253
+ NftId policyNftId
254
+ )
255
+ public
256
+ restricted()
257
+ {
258
+ // TODO: implement close
259
+ // _close(policyNftId);
260
+ }
261
+
262
+ function submitClaim(
263
+ NftId policyNftId,
264
+ Amount claimAmount,
265
+ bytes memory submissionData
266
+ )
267
+ public
268
+ restricted()
269
+ returns (ClaimId)
270
+ {
271
+ // TODO: implement submitClaim
272
+ // return _submitClaim(policyNftId, claimAmount, submissionData);
273
+
274
+ // TODO: check if fire was reported in the city
275
+ // TODO: if yes, process payout and close claimn
276
+ // TODO: if no, decline claim
277
+
278
+ }
279
+
280
+ // TODO: no longer needed? -> remove
281
+ // function confirmClaim(
282
+ // NftId policyNftId,
283
+ // ClaimId claimId,
284
+ // Amount confirmedAmount,
285
+ // bytes memory processData
286
+ // ) public {
287
+ // // TODO: implement confirmClaim
288
+ // // _confirmClaim(policyNftId, claimId, confirmedAmount, processData);
289
+ // }
290
+
291
+ // TODO: no longer needed? -> remove
292
+ // function declineClaim(
293
+ // NftId policyNftId,
294
+ // ClaimId claimId,
295
+ // bytes memory processData
296
+ // ) public {
297
+ // // TODO: implement declineClaim
298
+ // // _declineClaim(policyNftId, claimId, processData);
299
+ // }
300
+
301
+ // TODO: no longer needed? -> remove
302
+ // function createPayout(
303
+ // NftId policyNftId,
304
+ // ClaimId claimId,
305
+ // Amount amount,
306
+ // bytes memory data
307
+ // ) public returns (PayoutId) {
308
+ // return _createPayout(policyNftId, claimId, amount, data);
309
+ // }
310
+
311
+ // TODO: add method to report fire per city with a percentage of payout
312
+
313
+
314
+ // TODO: no longer needed? -> remove
315
+ // function processPayout(
316
+ // NftId policyNftId,
317
+ // PayoutId payoutId
318
+ // ) public {
319
+ // TODO: implement process all pending payouts for a risk - arguments cityname and payout percentage
320
+ // _processPayout(policyNftId, payoutId);
321
+ // }
322
+
323
+
324
+ }
@@ -0,0 +1,35 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
5
+ import {FireProduct} from "./FireProduct.sol";
6
+ import {IAccess} from "../../../contracts/authorization/IAccess.sol";
7
+ import {PRODUCT_OWNER_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
8
+
9
+
10
+ contract FireProductAuthorization
11
+ is BasicProductAuthorization
12
+ {
13
+
14
+ constructor(string memory poolName)
15
+ BasicProductAuthorization(poolName)
16
+ {}
17
+
18
+ function _setupTargetAuthorizations()
19
+ internal
20
+ virtual override
21
+ {
22
+ super._setupTargetAuthorizations();
23
+ IAccess.FunctionInfo[] storage functions;
24
+
25
+ // authorize public role (open access to any account, only allows to lock target)
26
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
27
+ _authorize(functions, FireProduct.createApplication.selector, "createApplication");
28
+
29
+ functions = _authorizeForTarget(getTargetName(), PRODUCT_OWNER_ROLE());
30
+ _authorize(functions, FireProduct.createPolicy.selector, "createPolicy");
31
+ _authorize(functions, FireProduct.decline.selector, "decline");
32
+ }
33
+
34
+ }
35
+
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
+
6
+ /// @dev FireUSD is a stablecoin with 6 decimals and an initial supply of 1 Billion tokens.
7
+ contract FireUSD is ERC20 {
8
+
9
+ string public constant NAME = "FireUSD";
10
+ string public constant SYMBOL = "HOT";
11
+ uint8 public constant DECIMALS = 6;
12
+ uint256 public constant INITIAL_SUPPLY = 10**12 * 10**DECIMALS; // 1'000'000'000'000
13
+
14
+ constructor()
15
+ ERC20(NAME, SYMBOL)
16
+ {
17
+ _mint(
18
+ _msgSender(),
19
+ INITIAL_SUPPLY
20
+ );
21
+ }
22
+
23
+ function decimals() public pure override returns(uint8) {
24
+ return DECIMALS;
25
+ }
26
+ }
@@ -0,0 +1,50 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
5
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+
8
+
9
+ contract SimpleDistribution is
10
+ BasicDistribution
11
+ {
12
+
13
+ constructor(
14
+ address registry,
15
+ NftId instanceNftId,
16
+ IAuthorization authorization,
17
+ address initialOwner,
18
+ address token
19
+ )
20
+ {
21
+ initialize(
22
+ registry,
23
+ instanceNftId,
24
+ authorization,
25
+ initialOwner,
26
+ "SimpleDistribution",
27
+ token);
28
+ }
29
+
30
+ function initialize(
31
+ address registry,
32
+ NftId instanceNftId,
33
+ IAuthorization authorization,
34
+ address initialOwner,
35
+ string memory name,
36
+ address token
37
+ )
38
+ public
39
+ virtual
40
+ initializer()
41
+ {
42
+ _initializeBasicDistribution(
43
+ registry,
44
+ instanceNftId,
45
+ authorization,
46
+ initialOwner,
47
+ name,
48
+ token);
49
+ }
50
+ }
@@ -0,0 +1,137 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {BasicOracle} from "../../oracle/BasicOracle.sol";
7
+ import {RequestId} from "../../type/RequestId.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
+
10
+ contract SimpleOracle is
11
+ BasicOracle
12
+ {
13
+
14
+ string public constant ANSWER_SYNC = "oracle constant sync answer";
15
+
16
+ struct SimpleRequest {
17
+ bool synchronous;
18
+ string text;
19
+ }
20
+
21
+ struct SimpleResponse {
22
+ bool revertInCall;
23
+ Timestamp revertUntil;
24
+ string text;
25
+ }
26
+
27
+ event LogSimpleOracleRequestReceived(RequestId requestId, NftId requesterId, bool synchronous, string requestText);
28
+ event LogSimpleOracleCancellingReceived(RequestId requestId);
29
+
30
+ event LogSimpleOracleAsyncResponseSent(RequestId requestId, string responseText);
31
+ event LogSimpleOracleSyncResponseSent(RequestId requestId, string responseText);
32
+
33
+ constructor(
34
+ address registry,
35
+ NftId instanceNftId,
36
+ IAuthorization authorization,
37
+ address initialOwner,
38
+ address token
39
+ )
40
+ {
41
+ initialize(
42
+ registry,
43
+ instanceNftId,
44
+ authorization,
45
+ initialOwner,
46
+ "SimpleOracle",
47
+ token
48
+ );
49
+ }
50
+
51
+ function initialize(
52
+ address registry,
53
+ NftId instanceNftId,
54
+ IAuthorization authorization,
55
+ address initialOwner,
56
+ string memory name,
57
+ address token
58
+ )
59
+ public
60
+ virtual
61
+ initializer()
62
+ {
63
+ _initializeBasicOracle(
64
+ registry,
65
+ instanceNftId,
66
+ authorization,
67
+ initialOwner,
68
+ name,
69
+ token);
70
+ }
71
+
72
+ /// @dev use case specific handling of oracle requests
73
+ /// for now only log is emitted to verify that request has been received by oracle component
74
+ function _request(
75
+ RequestId requestId,
76
+ NftId requesterId,
77
+ bytes calldata requestData,
78
+ Timestamp expiryAt
79
+ )
80
+ internal
81
+ virtual override
82
+ {
83
+ SimpleRequest memory request = abi.decode(requestData, (SimpleRequest));
84
+
85
+ if (request.synchronous) {
86
+ _respondSync(requestId);
87
+ }
88
+
89
+ emit LogSimpleOracleRequestReceived(requestId, requesterId, request.synchronous, request.text);
90
+ }
91
+
92
+
93
+ /// @dev use case specific handling of oracle requests
94
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
95
+ function _cancel(
96
+ RequestId requestId
97
+ )
98
+ internal
99
+ virtual override
100
+ {
101
+ emit LogSimpleOracleCancellingReceived(requestId);
102
+ }
103
+
104
+
105
+ function respondAsync(
106
+ RequestId requestId,
107
+ string memory responseText,
108
+ bool revertInCall,
109
+ Timestamp revertUntil
110
+ )
111
+ external
112
+ // permissionless, no restricted() for now
113
+ {
114
+ bytes memory responseData = abi.encode(
115
+ SimpleResponse(
116
+ revertInCall,
117
+ revertUntil,
118
+ responseText));
119
+
120
+ _respond(requestId, responseData);
121
+
122
+ emit LogSimpleOracleAsyncResponseSent(requestId, responseText);
123
+ }
124
+
125
+
126
+ function _respondSync(
127
+ RequestId requestId
128
+ )
129
+ internal
130
+ {
131
+ bytes memory responseData = abi.encode(ANSWER_SYNC);
132
+ _respond(requestId, responseData);
133
+
134
+ emit LogSimpleOracleSyncResponseSent(requestId, ANSWER_SYNC);
135
+ }
136
+
137
+ }
@@ -0,0 +1,76 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicPool} from "../../pool/BasicPool.sol";
6
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
9
+ import {NftId} from "../../type/NftId.sol";
10
+ import {Seconds} from "../../type/Timestamp.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
12
+
13
+ contract SimplePool is
14
+ BasicPool
15
+ {
16
+
17
+ constructor(
18
+ address registry,
19
+ NftId instanceNftId,
20
+ address token,
21
+ IAuthorization authorization,
22
+ address initialOwner
23
+ )
24
+ {
25
+ initialize(
26
+ registry,
27
+ instanceNftId,
28
+ token,
29
+ authorization,
30
+ initialOwner
31
+ );
32
+ }
33
+
34
+ function initialize(
35
+ address registry,
36
+ NftId instanceNftId,
37
+ address token,
38
+ IAuthorization authorization,
39
+ address initialOwner
40
+ )
41
+ public
42
+ virtual
43
+ initializer()
44
+ {
45
+ _initializeBasicPool(
46
+ registry,
47
+ instanceNftId,
48
+ authorization,
49
+ token,
50
+ "SimplePool",
51
+ initialOwner);
52
+ }
53
+
54
+ function createBundle(
55
+ Fee memory fee,
56
+ uint256 initialAmount,
57
+ Seconds lifetime,
58
+ bytes calldata filter
59
+ )
60
+ external
61
+ virtual
62
+ returns(NftId bundleNftId, uint256 netStakedAmountInt)
63
+ {
64
+ address owner = msg.sender;
65
+ Amount netStakedAmount;
66
+ bundleNftId = _createBundle(
67
+ owner,
68
+ fee,
69
+ lifetime,
70
+ filter
71
+ );
72
+ netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
73
+ netStakedAmountInt = netStakedAmount.toInt();
74
+ }
75
+
76
+ }