@etherisc/gif-next 0.0.2-c96f882-016 → 0.0.2-c99b1cc-016

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