@etherisc/gif-next 0.0.2-b81ff84-640 → 0.0.2-b8481dc-081

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 (738) hide show
  1. package/README.md +199 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +824 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +930 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1831 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +931 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1266 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2026 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2452 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1047 -271
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +670 -150
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +571 -2800
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1997 -634
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +749 -258
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +398 -77
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3784 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +31 -8
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +743 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1023 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +791 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1435 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +851 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1022 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1430 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1814 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +847 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1017 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +771 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1533 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +875 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +386 -352
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1085 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1017 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IPricingService.sol/IPricingService.json} +361 -194
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → product/IRiskService.sol/IRiskService.json} +247 -175
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1385 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +835 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +913 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +795 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +761 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +640 -172
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +401 -201
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +969 -202
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +365 -323
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +359 -130
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1497 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +835 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +302 -252
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1137 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +146 -158
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +166 -171
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1627 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1177 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +2035 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +823 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1406 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +763 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +780 -0
  360. package/contracts/authorization/AccessAdminLib.sol +396 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +169 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +144 -0
  365. package/contracts/authorization/IAuthorization.sol +27 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +247 -0
  371. package/contracts/distribution/DistributionService.sol +448 -0
  372. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  373. package/contracts/distribution/IDistributionComponent.sol +45 -0
  374. package/contracts/distribution/IDistributionService.sol +115 -0
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +133 -16
  390. package/contracts/instance/IInstanceService.sol +100 -17
  391. package/contracts/instance/Instance.sol +246 -342
  392. package/contracts/instance/InstanceAdmin.sol +383 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  394. package/contracts/instance/InstanceReader.sol +531 -189
  395. package/contracts/instance/InstanceService.sol +462 -88
  396. package/contracts/instance/InstanceServiceManager.sol +14 -31
  397. package/contracts/instance/InstanceStore.sol +298 -0
  398. package/contracts/instance/RiskSet.sol +118 -0
  399. package/contracts/instance/base/BalanceStore.sol +121 -0
  400. package/contracts/instance/base/Cloneable.sol +28 -0
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  402. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +10 -8
  406. package/contracts/instance/module/IComponents.sol +62 -0
  407. package/contracts/instance/module/IDistribution.sol +25 -10
  408. package/contracts/instance/module/IPolicy.sol +81 -21
  409. package/contracts/instance/module/IRisk.sol +6 -1
  410. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  421. package/contracts/pool/BundleService.sol +406 -0
  422. package/contracts/pool/BundleServiceManager.sol +39 -0
  423. package/contracts/pool/IBundleService.sol +121 -0
  424. package/contracts/pool/IPoolComponent.sol +62 -0
  425. package/contracts/pool/IPoolService.sol +170 -0
  426. package/contracts/pool/Pool.sol +343 -0
  427. package/contracts/pool/PoolLib.sol +359 -0
  428. package/contracts/pool/PoolService.sol +614 -0
  429. package/contracts/pool/PoolServiceManager.sol +39 -0
  430. package/contracts/product/ApplicationService.sol +327 -0
  431. package/contracts/product/ApplicationServiceManager.sol +38 -0
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +63 -0
  434. package/contracts/product/ClaimService.sol +641 -0
  435. package/contracts/product/ClaimServiceManager.sol +38 -0
  436. package/contracts/product/IApplicationService.sol +88 -0
  437. package/contracts/product/IClaimService.sol +135 -0
  438. package/contracts/product/IPolicyService.sol +102 -0
  439. package/contracts/product/IPricingService.sol +40 -0
  440. package/contracts/product/IProductComponent.sol +62 -0
  441. package/contracts/product/IRiskService.sol +37 -0
  442. package/contracts/product/PolicyService.sol +645 -0
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +39 -0
  445. package/contracts/product/PricingService.sol +306 -0
  446. package/contracts/product/PricingServiceManager.sol +39 -0
  447. package/contracts/product/Product.sol +472 -0
  448. package/contracts/product/RiskService.sol +163 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +82 -35
  451. package/contracts/registry/IRegistry.sol +131 -50
  452. package/contracts/registry/IRegistryService.sol +45 -16
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -1
  455. package/contracts/registry/Registry.sol +551 -304
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +284 -0
  458. package/contracts/registry/RegistryService.sol +126 -284
  459. package/contracts/registry/RegistryServiceManager.sol +26 -53
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +520 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  464. package/contracts/registry/TokenRegistry.sol +263 -60
  465. package/contracts/shared/Component.sol +210 -0
  466. package/contracts/shared/ComponentService.sol +678 -0
  467. package/contracts/shared/ComponentServiceManager.sol +38 -0
  468. package/contracts/shared/ContractLib.sol +311 -0
  469. package/contracts/shared/IComponent.sol +58 -0
  470. package/contracts/shared/IComponentService.sol +110 -0
  471. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  472. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  473. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  474. package/contracts/shared/INftOwnable.sol +15 -12
  475. package/contracts/shared/IPolicyHolder.sol +35 -0
  476. package/contracts/shared/IRegisterable.sol +24 -5
  477. package/contracts/shared/IRegistryLinked.sol +11 -0
  478. package/contracts/shared/IService.sol +13 -5
  479. package/contracts/shared/InitializableERC165.sol +35 -0
  480. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  481. package/contracts/shared/KeyValueStore.sol +131 -0
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +75 -84
  485. package/contracts/shared/PolicyHolder.sol +63 -0
  486. package/contracts/shared/Registerable.sol +54 -38
  487. package/contracts/shared/RegistryLinked.sol +38 -0
  488. package/contracts/shared/Service.sol +46 -33
  489. package/contracts/shared/TokenHandler.sol +327 -12
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +195 -0
  492. package/contracts/staking/IStakingService.sol +170 -0
  493. package/contracts/staking/Staking.sol +605 -0
  494. package/contracts/staking/StakingLib.sol +281 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +52 -0
  497. package/contracts/staking/StakingReader.sol +199 -0
  498. package/contracts/staking/StakingService.sol +468 -0
  499. package/contracts/staking/StakingServiceManager.sol +45 -0
  500. package/contracts/staking/StakingStore.sol +606 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/{types → type}/AddressSet.sol +1 -1
  503. package/contracts/type/Amount.sol +150 -0
  504. package/contracts/{types → type}/Blocknumber.sol +27 -3
  505. package/contracts/type/ClaimId.sol +80 -0
  506. package/contracts/{types → type}/DistributorType.sol +2 -2
  507. package/contracts/type/Fee.sol +66 -0
  508. package/contracts/{types → type}/Key32.sol +2 -2
  509. package/contracts/type/Key32Set.sol +62 -0
  510. package/contracts/{types → type}/NftId.sol +28 -15
  511. package/contracts/type/NftIdSet.sol +62 -0
  512. package/contracts/type/ObjectType.sol +307 -0
  513. package/contracts/type/PayoutId.sol +82 -0
  514. package/contracts/{types → type}/Referral.sol +6 -1
  515. package/contracts/type/RequestId.sol +75 -0
  516. package/contracts/type/RiskId.sol +75 -0
  517. package/contracts/type/RoleId.sol +180 -0
  518. package/contracts/type/Seconds.sol +105 -0
  519. package/contracts/type/Selector.sol +107 -0
  520. package/contracts/{types → type}/StateId.sol +52 -4
  521. package/contracts/type/String.sol +65 -0
  522. package/contracts/{types → type}/Timestamp.sol +33 -19
  523. package/contracts/type/UFixed.sol +262 -0
  524. package/contracts/{types → type}/Version.sol +59 -7
  525. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  526. package/contracts/upgradeability/ProxyManager.sol +246 -0
  527. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  528. package/contracts/upgradeability/Versionable.sol +62 -0
  529. package/package.json +12 -8
  530. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
  532. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  533. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  534. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  536. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  538. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  540. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  542. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  543. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  544. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  545. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  548. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  550. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  552. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  554. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  556. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  558. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  560. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  562. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  564. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  566. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  569. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  571. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  573. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  575. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  577. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  579. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  581. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  583. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  584. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  585. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  586. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  587. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  588. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  589. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  590. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  591. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -930
  592. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  593. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  595. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  597. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  599. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  600. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  601. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  602. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  603. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  604. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  607. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  610. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  612. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  613. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  614. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  615. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  616. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  617. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  618. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  619. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  620. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  621. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  622. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  623. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  624. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  625. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  626. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  628. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  629. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  630. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  631. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  632. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  633. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  634. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  635. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  636. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  637. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  638. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  639. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  640. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  641. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  642. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  643. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  644. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  646. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  648. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  650. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  652. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  654. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  656. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  657. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  658. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  660. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  662. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  664. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  666. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  668. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  670. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  672. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  673. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  674. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  676. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  677. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  678. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  680. package/contracts/components/BaseComponent.sol +0 -86
  681. package/contracts/components/Distribution.sol +0 -166
  682. package/contracts/components/IBaseComponent.sol +0 -24
  683. package/contracts/components/IDistributionComponent.sol +0 -43
  684. package/contracts/components/IPoolComponent.sol +0 -62
  685. package/contracts/components/IProductComponent.sol +0 -35
  686. package/contracts/components/Pool.sol +0 -259
  687. package/contracts/components/Product.sol +0 -297
  688. package/contracts/experiment/cloning/Cloner.sol +0 -47
  689. package/contracts/experiment/errors/Require.sol +0 -38
  690. package/contracts/experiment/errors/Revert.sol +0 -44
  691. package/contracts/experiment/inheritance/A.sol +0 -53
  692. package/contracts/experiment/inheritance/B.sol +0 -28
  693. package/contracts/experiment/inheritance/C.sol +0 -34
  694. package/contracts/experiment/inheritance/IA.sol +0 -13
  695. package/contracts/experiment/inheritance/IB.sol +0 -10
  696. package/contracts/experiment/inheritance/IC.sol +0 -12
  697. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  698. package/contracts/experiment/statemachine/ISM.sol +0 -25
  699. package/contracts/experiment/statemachine/SM.sol +0 -57
  700. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  701. package/contracts/experiment/types/TypeA.sol +0 -47
  702. package/contracts/experiment/types/TypeB.sol +0 -29
  703. package/contracts/instance/AccessManagedSimple.sol +0 -122
  704. package/contracts/instance/AccessManagerSimple.sol +0 -692
  705. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  706. package/contracts/instance/InstanceAccessManager.sol +0 -288
  707. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  708. package/contracts/instance/base/IInstanceBase.sol +0 -23
  709. package/contracts/instance/base/KeyValueStore.sol +0 -172
  710. package/contracts/instance/base/Lifecycle.sol +0 -100
  711. package/contracts/instance/module/IAccess.sol +0 -38
  712. package/contracts/instance/module/ISetup.sol +0 -43
  713. package/contracts/instance/module/ITreasury.sol +0 -23
  714. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  715. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  716. package/contracts/instance/service/IDistributionService.sol +0 -12
  717. package/contracts/instance/service/IPoolService.sol +0 -37
  718. package/contracts/instance/service/IProductService.sol +0 -107
  719. package/contracts/shared/ContractDeployerLib.sol +0 -72
  720. package/contracts/shared/ERC165.sol +0 -25
  721. package/contracts/shared/ProxyManager.sol +0 -94
  722. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  723. package/contracts/shared/Versionable.sol +0 -147
  724. package/contracts/test/TestFee.sol +0 -25
  725. package/contracts/test/TestRegisterable.sol +0 -18
  726. package/contracts/test/TestRoleId.sol +0 -14
  727. package/contracts/test/TestService.sol +0 -24
  728. package/contracts/test/TestToken.sol +0 -26
  729. package/contracts/test/TestVersion.sol +0 -44
  730. package/contracts/test/TestVersionable.sol +0 -17
  731. package/contracts/types/ChainId.sol +0 -38
  732. package/contracts/types/Fee.sol +0 -56
  733. package/contracts/types/NftIdSet.sol +0 -60
  734. package/contracts/types/NumberId.sol +0 -52
  735. package/contracts/types/ObjectType.sol +0 -152
  736. package/contracts/types/RiskId.sol +0 -43
  737. package/contracts/types/RoleId.sol +0 -82
  738. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,133 @@
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 productNftId,
36
+ IAuthorization authorization,
37
+ address initialOwner
38
+ )
39
+ {
40
+ initialize(
41
+ registry,
42
+ productNftId,
43
+ authorization,
44
+ initialOwner,
45
+ "SimpleOracle"
46
+ );
47
+ }
48
+
49
+ function initialize(
50
+ address registry,
51
+ NftId productNftId,
52
+ IAuthorization authorization,
53
+ address initialOwner,
54
+ string memory name
55
+ )
56
+ public
57
+ virtual
58
+ initializer()
59
+ {
60
+ _initializeBasicOracle(
61
+ registry,
62
+ productNftId,
63
+ authorization,
64
+ initialOwner,
65
+ name);
66
+ }
67
+
68
+ /// @dev use case specific handling of oracle requests
69
+ /// for now only log is emitted to verify that request has been received by oracle component
70
+ function _request(
71
+ RequestId requestId,
72
+ NftId requesterId,
73
+ bytes calldata requestData,
74
+ Timestamp expiryAt
75
+ )
76
+ internal
77
+ virtual override
78
+ {
79
+ SimpleRequest memory request = abi.decode(requestData, (SimpleRequest));
80
+
81
+ if (request.synchronous) {
82
+ _respondSync(requestId);
83
+ }
84
+
85
+ emit LogSimpleOracleRequestReceived(requestId, requesterId, request.synchronous, request.text);
86
+ }
87
+
88
+
89
+ /// @dev use case specific handling of oracle requests
90
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
91
+ function _cancel(
92
+ RequestId requestId
93
+ )
94
+ internal
95
+ virtual override
96
+ {
97
+ emit LogSimpleOracleCancellingReceived(requestId);
98
+ }
99
+
100
+
101
+ function respondAsync(
102
+ RequestId requestId,
103
+ string memory responseText,
104
+ bool revertInCall,
105
+ Timestamp revertUntil
106
+ )
107
+ external
108
+ // permissionless, no restricted() for now
109
+ {
110
+ bytes memory responseData = abi.encode(
111
+ SimpleResponse(
112
+ revertInCall,
113
+ revertUntil,
114
+ responseText));
115
+
116
+ _respond(requestId, responseData);
117
+
118
+ emit LogSimpleOracleAsyncResponseSent(requestId, responseText);
119
+ }
120
+
121
+
122
+ function _respondSync(
123
+ RequestId requestId
124
+ )
125
+ internal
126
+ {
127
+ bytes memory responseData = abi.encode(ANSWER_SYNC);
128
+ _respond(requestId, responseData);
129
+
130
+ emit LogSimpleOracleSyncResponseSent(requestId, ANSWER_SYNC);
131
+ }
132
+
133
+ }
@@ -0,0 +1,102 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../../type/Amount.sol";
7
+ import {BasicPool} from "../../pool/BasicPool.sol";
8
+ import {Fee} from "../../type/Fee.sol";
9
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
10
+ import {IComponents} from "../../instance/module/IComponents.sol";
11
+ import {NftId} from "../../type/NftId.sol";
12
+ import {Seconds} from "../../type/Timestamp.sol";
13
+ import {UFixed} from "../../type/UFixed.sol";
14
+
15
+ contract SimplePool is
16
+ BasicPool
17
+ {
18
+
19
+ constructor(
20
+ address registry,
21
+ NftId productNftId,
22
+ IComponents.PoolInfo memory poolInfo,
23
+ IAuthorization authorization,
24
+ address initialOwner
25
+ )
26
+ {
27
+ initialize(
28
+ registry,
29
+ productNftId,
30
+ poolInfo,
31
+ authorization,
32
+ initialOwner
33
+ );
34
+ }
35
+
36
+
37
+ function initialize(
38
+ address registry,
39
+ NftId productNftId,
40
+ IComponents.PoolInfo memory poolInfo,
41
+ IAuthorization authorization,
42
+ address initialOwner
43
+ )
44
+ public
45
+ virtual
46
+ initializer()
47
+ {
48
+ _initializeBasicPool(
49
+ registry,
50
+ productNftId,
51
+ "SimplePool",
52
+ poolInfo,
53
+ authorization,
54
+ initialOwner);
55
+ }
56
+
57
+
58
+ function createBundle(
59
+ Fee memory fee,
60
+ uint256 initialAmount,
61
+ Seconds lifetime,
62
+ bytes calldata filter
63
+ )
64
+ external
65
+ virtual
66
+ returns(NftId bundleNftId, uint256 netStakedAmountInt)
67
+ {
68
+ address owner = msg.sender;
69
+ Amount netStakedAmount;
70
+ bundleNftId = _createBundle(
71
+ owner,
72
+ fee,
73
+ lifetime,
74
+ filter
75
+ );
76
+ netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
77
+ netStakedAmountInt = netStakedAmount.toInt();
78
+ }
79
+
80
+
81
+ function fundPoolWallet(
82
+ Amount amount
83
+ )
84
+ external
85
+ {
86
+ _fundPoolWallet(amount);
87
+ }
88
+
89
+
90
+ function defundPoolWallet(
91
+ Amount amount
92
+ )
93
+ external
94
+ {
95
+ _defundPoolWallet(amount);
96
+ }
97
+
98
+
99
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
100
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
101
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
102
+ }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
5
+ import {IAccess} from "../../authorization/IAccess.sol";
6
+ import {PUBLIC_ROLE} from "../../type/RoleId.sol";
7
+ import {SimplePool} from "./SimplePool.sol";
8
+
9
+ contract SimplePoolAuthorization
10
+ is BasicPoolAuthorization
11
+ {
12
+ constructor(string memory poolName)
13
+ BasicPoolAuthorization(poolName)
14
+ {}
15
+
16
+ function _setupTargetAuthorizations()
17
+ internal
18
+ virtual override
19
+ {
20
+ super._setupTargetAuthorizations();
21
+
22
+ // authorize public role (open access to any account, only allows to lock target)
23
+ IAccess.FunctionInfo[] storage functions;
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
+ _authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
26
+ _authorize(functions, SimplePool.setWallet.selector, "setWallet");
27
+ }
28
+ }
@@ -0,0 +1,385 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../../type/Amount.sol";
7
+ import {BasicProduct} from "../../product/BasicProduct.sol";
8
+ import {ClaimId} from "../../type/ClaimId.sol";
9
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
10
+ import {IComponents} from "../../instance/module/IComponents.sol";
11
+ import {IOracleService} from "../../oracle/IOracleService.sol";
12
+ import {ORACLE} from "../../type/ObjectType.sol";
13
+ import {NftId} from "../../type/NftId.sol";
14
+ import {PayoutId} from "../../type/PayoutId.sol";
15
+ import {ReferralId} from "../../type/Referral.sol";
16
+ import {RequestId} from "../../type/RequestId.sol";
17
+ import {RiskId} from "../../type/RiskId.sol";
18
+ import {Seconds} from "../../type/Seconds.sol";
19
+ import {SimpleOracle} from "./SimpleOracle.sol";
20
+ import {StateId} from "../../type/StateId.sol";
21
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
22
+
23
+ uint64 constant SPECIAL_ROLE_INT = 11111;
24
+
25
+ contract SimpleProduct is
26
+ BasicProduct
27
+ {
28
+
29
+ event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
30
+ event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
31
+
32
+ error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
33
+
34
+ IOracleService private _oracleService;
35
+
36
+ constructor(
37
+ address registry,
38
+ NftId instanceNftId,
39
+ string memory name,
40
+ IComponents.ProductInfo memory productInfo,
41
+ IComponents.FeeInfo memory feeInfo,
42
+ IAuthorization authorization,
43
+ address initialOwner
44
+ )
45
+ {
46
+ initialize(
47
+ registry,
48
+ instanceNftId,
49
+ name,
50
+ productInfo,
51
+ feeInfo,
52
+ authorization,
53
+ initialOwner);
54
+ }
55
+
56
+
57
+ function initialize(
58
+ address registry,
59
+ NftId instanceNftid,
60
+ string memory name,
61
+ IComponents.ProductInfo memory productInfo,
62
+ IComponents.FeeInfo memory feeInfo,
63
+ IAuthorization authorization,
64
+ address initialOwner
65
+ )
66
+ public
67
+ virtual
68
+ initializer()
69
+ {
70
+ _initializeBasicProduct(
71
+ registry,
72
+ instanceNftid,
73
+ name,
74
+ productInfo,
75
+ feeInfo,
76
+ authorization,
77
+ initialOwner);
78
+
79
+ _oracleService = IOracleService(_getServiceAddress(ORACLE()));
80
+ }
81
+
82
+
83
+ function createRisk(
84
+ string memory id,
85
+ bytes memory data
86
+ ) public returns (RiskId) {
87
+ return _createRisk(
88
+ bytes32(abi.encodePacked(id)),
89
+ data
90
+ );
91
+ }
92
+
93
+ function updateRisk(
94
+ RiskId id,
95
+ bytes memory data
96
+ ) public {
97
+ _updateRisk(
98
+ id,
99
+ data
100
+ );
101
+ }
102
+
103
+ function updateRiskState(
104
+ RiskId id,
105
+ StateId state
106
+ ) public {
107
+ _updateRiskState(
108
+ id,
109
+ state
110
+ );
111
+ }
112
+
113
+ function createApplication(
114
+ address applicationOwner,
115
+ RiskId riskId,
116
+ uint256 sumInsured,
117
+ Seconds lifetime,
118
+ bytes memory applicationData,
119
+ NftId bundleNftId,
120
+ ReferralId referralId
121
+ )
122
+ public
123
+ returns (NftId nftId)
124
+ {
125
+ Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
126
+ Amount premiumAmount = calculatePremium(
127
+ sumInsuredAmount,
128
+ riskId,
129
+ lifetime,
130
+ applicationData,
131
+ bundleNftId,
132
+ referralId);
133
+
134
+ return _createApplication(
135
+ applicationOwner,
136
+ riskId,
137
+ sumInsuredAmount,
138
+ premiumAmount,
139
+ lifetime,
140
+ bundleNftId,
141
+ referralId,
142
+ applicationData
143
+ );
144
+ }
145
+
146
+ function createPolicy(
147
+ NftId applicationNftId,
148
+ bool requirePremiumPayment,
149
+ Timestamp activateAt
150
+ ) public {
151
+ _createPolicy(applicationNftId, activateAt, AmountLib.max());
152
+ if (requirePremiumPayment == true) {
153
+ _collectPremium(applicationNftId, activateAt);
154
+ }
155
+ }
156
+
157
+ function createPolicy2(
158
+ NftId applicationNftId,
159
+ bool requirePremiumPayment,
160
+ Timestamp activateAt,
161
+ Amount maxPremiumAmount
162
+ ) public {
163
+ _createPolicy(applicationNftId, activateAt, maxPremiumAmount);
164
+ if (requirePremiumPayment == true) {
165
+ _collectPremium(applicationNftId, activateAt);
166
+ }
167
+ }
168
+
169
+ function decline(
170
+ NftId policyNftId
171
+ ) public {
172
+ _decline(policyNftId);
173
+ }
174
+
175
+ function expire(
176
+ NftId policyNftId,
177
+ Timestamp expireAt
178
+ )
179
+ public
180
+ returns (Timestamp)
181
+ {
182
+ return _expire(policyNftId, expireAt);
183
+ }
184
+
185
+ function collectPremium(
186
+ NftId policyNftId,
187
+ Timestamp activateAt
188
+ ) public {
189
+ _collectPremium(policyNftId, activateAt);
190
+ }
191
+
192
+ function activate(
193
+ NftId policyNftId,
194
+ Timestamp activateAt
195
+ ) public {
196
+ _activate(policyNftId, activateAt);
197
+ }
198
+
199
+ function adjustActivation(
200
+ NftId policyNftId,
201
+ Timestamp activateAt
202
+ ) public {
203
+ _adjustActivation(policyNftId, activateAt);
204
+ }
205
+
206
+ function close(
207
+ NftId policyNftId
208
+ ) public {
209
+ _close(policyNftId);
210
+ }
211
+
212
+ function submitClaim(
213
+ NftId policyNftId,
214
+ Amount claimAmount,
215
+ bytes memory submissionData
216
+ ) public returns (ClaimId) {
217
+ return _submitClaim(policyNftId, claimAmount, submissionData);
218
+ }
219
+
220
+ function revokeClaim(
221
+ NftId policyNftId,
222
+ ClaimId claimId
223
+ ) public {
224
+ _revokeClaim(policyNftId, claimId);
225
+ }
226
+
227
+ function confirmClaim(
228
+ NftId policyNftId,
229
+ ClaimId claimId,
230
+ Amount confirmedAmount,
231
+ bytes memory processData
232
+ ) public {
233
+ _confirmClaim(policyNftId, claimId, confirmedAmount, processData);
234
+ }
235
+
236
+ function declineClaim(
237
+ NftId policyNftId,
238
+ ClaimId claimId,
239
+ bytes memory processData
240
+ ) public {
241
+ _declineClaim(policyNftId, claimId, processData);
242
+ }
243
+
244
+ function closeClaim(
245
+ NftId policyNftId,
246
+ ClaimId claimId
247
+ ) public {
248
+ _closeClaim(policyNftId, claimId);
249
+ }
250
+
251
+ function createPayout(
252
+ NftId policyNftId,
253
+ ClaimId claimId,
254
+ Amount amount,
255
+ bytes memory data
256
+ ) public returns (PayoutId) {
257
+ return _createPayout(policyNftId, claimId, amount, data);
258
+ }
259
+
260
+ function cancelPayout(
261
+ NftId policyNftId,
262
+ PayoutId payoutId
263
+ ) public {
264
+ _cancelPayout(policyNftId, payoutId);
265
+ }
266
+
267
+ // TODO add test
268
+ function createPayoutForBeneficiary(
269
+ NftId policyNftId,
270
+ ClaimId claimId,
271
+ Amount amount,
272
+ address beneficiary,
273
+ bytes memory data
274
+ ) public returns (PayoutId) {
275
+ return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
276
+ }
277
+
278
+ function processPayout(
279
+ NftId policyNftId,
280
+ PayoutId payoutId
281
+ ) public returns (Amount netPayoutAmount, Amount processingFeeAmount) {
282
+ (netPayoutAmount, processingFeeAmount) = _processPayout(policyNftId, payoutId);
283
+ }
284
+
285
+ function createOracleRequest(
286
+ NftId oracleNftId,
287
+ string memory requestText,
288
+ Timestamp expiryAt,
289
+ bool synchronous
290
+ )
291
+ public
292
+ // restricted()
293
+ returns (RequestId)
294
+ {
295
+ bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
296
+ synchronous,
297
+ requestText));
298
+
299
+ if (synchronous) {
300
+ return _oracleService.request(
301
+ oracleNftId,
302
+ requestData,
303
+ expiryAt,
304
+ "fulfillOracleRequestSync");
305
+ } else {
306
+ return _oracleService.request(
307
+ oracleNftId,
308
+ requestData,
309
+ expiryAt,
310
+ "fulfillOracleRequestAsync");
311
+ }
312
+ }
313
+
314
+ function cancelOracleRequest(
315
+ RequestId requestId
316
+ )
317
+ public
318
+ // restricted() //
319
+ {
320
+ _oracleService.cancel(requestId);
321
+ }
322
+
323
+ function fulfillOracleRequestSync(
324
+ RequestId requestId,
325
+ bytes memory responseData
326
+ )
327
+ public
328
+ // restricted() // only oracle service
329
+ {
330
+ string memory responseText = abi.decode(responseData, (string));
331
+ emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
332
+ }
333
+
334
+ function fulfillOracleRequestAsync(
335
+ RequestId requestId,
336
+ bytes memory responseData
337
+ )
338
+ public
339
+ // restricted() // only oracle service
340
+ {
341
+ SimpleOracle.SimpleResponse memory response = abi.decode(
342
+ responseData, (SimpleOracle.SimpleResponse));
343
+
344
+ if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
345
+ revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
346
+ }
347
+
348
+ emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
349
+ }
350
+
351
+
352
+ function resend(
353
+ RequestId requestId
354
+ )
355
+ public
356
+ // restricted() //
357
+ {
358
+ _oracleService.resend(requestId);
359
+ }
360
+
361
+
362
+ function doSomethingSpecial()
363
+ public
364
+ restricted()
365
+ returns (bool)
366
+ {
367
+ return true;
368
+ }
369
+
370
+ function doWhenNotLocked()
371
+ public
372
+ restricted()
373
+ returns (bool)
374
+ {
375
+ return true;
376
+ }
377
+
378
+ function getOracleService() public view returns (IOracleService) {
379
+ return _oracleService;
380
+ }
381
+
382
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
383
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
384
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
385
+ }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
5
+ import {IAccess} from "../../authorization/IAccess.sol";
6
+ import {PUBLIC_ROLE} from "../../type/RoleId.sol";
7
+ import {SimpleProduct} from "./SimpleProduct.sol";
8
+
9
+ contract SimpleProductAuthorization
10
+ is BasicProductAuthorization
11
+ {
12
+ constructor(string memory componentName)
13
+ BasicProductAuthorization(componentName)
14
+ {}
15
+
16
+ function _setupTargetAuthorizations()
17
+ internal
18
+ virtual override
19
+ {
20
+ super._setupTargetAuthorizations();
21
+
22
+ // authorize public role (open access to any account, only allows to lock target)
23
+ IAccess.FunctionInfo[] storage functions;
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
+ _authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
26
+ _authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
27
+ }
28
+ }