@etherisc/gif-next 0.0.2-2296e6c-721 → 0.0.2-2298fe6-554

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 (340) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +33 -52
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +0 -19
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  15. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +30 -177
  16. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  18. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -147
  20. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +85 -192
  22. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +84 -104
  24. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  26. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  27. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1463 -0
  28. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  30. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  31. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1712 -0
  32. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  33. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  34. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  48. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  49. package/artifacts/contracts/instance/Instance.sol/Instance.json +10 -99
  50. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +95 -98
  52. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
  54. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +84 -65
  56. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +39 -146
  58. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
  60. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -207
  62. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  64. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  66. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  67. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  69. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  71. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  77. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +20 -167
  80. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  82. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -147
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -147
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +81 -188
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +82 -102
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +0 -10
  103. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  104. package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -147
  105. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +43 -160
  107. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -83
  109. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -146
  111. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -81
  113. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -147
  115. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  117. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +190 -175
  119. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +92 -100
  121. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  122. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +98 -0
  124. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +83 -11
  126. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  128. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  129. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  130. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +198 -185
  131. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +99 -95
  133. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  134. package/artifacts/contracts/product/PricingService.sol/PricingService.json +55 -162
  135. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +68 -88
  137. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  138. package/artifacts/contracts/product/Product.sol/Product.json +0 -147
  139. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  140. package/artifacts/contracts/product/RiskService.sol/RiskService.json +25 -132
  141. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -74
  143. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  144. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  145. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  146. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +221 -21
  147. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  148. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  149. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  150. package/artifacts/contracts/registry/Registry.sol/Registry.json +419 -82
  151. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  152. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +244 -132
  153. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -130
  155. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
  157. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  158. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  159. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  160. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +24 -14
  161. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  162. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
  163. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  164. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  165. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  166. package/artifacts/contracts/shared/Component.sol/Component.json +0 -147
  167. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  168. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +75 -182
  169. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +89 -99
  171. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  172. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
  173. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  174. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  179. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +14 -46
  183. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  186. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  187. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  188. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  189. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -147
  191. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  193. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  194. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  195. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  197. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  198. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -140
  199. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  201. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  203. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  204. package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
  205. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  206. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  207. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +16 -0
  209. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +83 -30
  212. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  213. package/artifacts/contracts/staking/Staking.sol/Staking.json +66 -189
  214. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  215. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +73 -84
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  229. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  233. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  235. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  237. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  239. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  240. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  241. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  244. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  246. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  249. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  255. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  261. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  262. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  263. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +39 -70
  264. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  265. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  266. package/contracts/authorization/AccessAdmin.sol +25 -24
  267. package/contracts/authorization/IAccessAdmin.sol +0 -1
  268. package/contracts/distribution/Distribution.sol +1 -1
  269. package/contracts/distribution/DistributionService.sol +8 -8
  270. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  271. package/contracts/examples/fire/FirePool.sol +75 -0
  272. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  273. package/contracts/examples/fire/FireProduct.sol +329 -0
  274. package/contracts/examples/fire/FireProductAuthorization.sol +34 -0
  275. package/contracts/examples/fire/FireUSD.sol +26 -0
  276. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  277. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  278. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  279. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  280. package/contracts/instance/Instance.sol +2 -2
  281. package/contracts/instance/InstanceAuthorizationV3.sol +1 -0
  282. package/contracts/instance/InstanceReader.sol +8 -0
  283. package/contracts/instance/InstanceService.sol +10 -11
  284. package/contracts/instance/InstanceServiceManager.sol +6 -7
  285. package/contracts/instance/InstanceStore.sol +0 -4
  286. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  287. package/contracts/instance/module/IPolicy.sol +5 -5
  288. package/contracts/oracle/Oracle.sol +1 -1
  289. package/contracts/oracle/OracleService.sol +8 -6
  290. package/contracts/oracle/OracleServiceManager.sol +6 -6
  291. package/contracts/pool/BundleService.sol +8 -8
  292. package/contracts/pool/BundleServiceManager.sol +6 -6
  293. package/contracts/pool/Pool.sol +1 -1
  294. package/contracts/pool/PoolService.sol +5 -6
  295. package/contracts/pool/PoolServiceManager.sol +4 -4
  296. package/contracts/product/ApplicationService.sol +4 -6
  297. package/contracts/product/ApplicationServiceManager.sol +4 -4
  298. package/contracts/product/ClaimService.sol +201 -71
  299. package/contracts/product/ClaimServiceManager.sol +4 -4
  300. package/contracts/product/IClaimService.sol +27 -5
  301. package/contracts/product/IPolicyService.sol +9 -5
  302. package/contracts/product/PolicyService.sol +115 -38
  303. package/contracts/product/PolicyServiceManager.sol +4 -4
  304. package/contracts/product/PricingService.sol +4 -5
  305. package/contracts/product/PricingServiceManager.sol +3 -3
  306. package/contracts/product/Product.sol +23 -5
  307. package/contracts/product/RiskService.sol +4 -5
  308. package/contracts/product/RiskServiceManager.sol +4 -4
  309. package/contracts/registry/ChainNft.sol +65 -32
  310. package/contracts/registry/IRegistry.sol +49 -15
  311. package/contracts/registry/Registry.sol +321 -195
  312. package/contracts/registry/RegistryAdmin.sol +140 -50
  313. package/contracts/registry/RegistryService.sol +2 -2
  314. package/contracts/registry/RegistryServiceManager.sol +2 -2
  315. package/contracts/registry/ReleaseRegistry.sol +12 -6
  316. package/contracts/shared/Component.sol +6 -6
  317. package/contracts/shared/ComponentService.sol +7 -7
  318. package/contracts/shared/ComponentServiceManager.sol +8 -5
  319. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  320. package/contracts/shared/ContractLib.sol +38 -0
  321. package/contracts/shared/IPolicyHolder.sol +12 -22
  322. package/contracts/shared/InitializableERC165.sol +2 -2
  323. package/contracts/shared/InstanceLinkedComponent.sol +4 -4
  324. package/contracts/shared/NftOwnable.sol +5 -5
  325. package/contracts/shared/PolicyHolder.sol +12 -53
  326. package/contracts/shared/Registerable.sol +4 -4
  327. package/contracts/shared/RegistryLinked.sol +3 -2
  328. package/contracts/shared/Service.sol +16 -11
  329. package/contracts/staking/IStaking.sol +1 -0
  330. package/contracts/staking/StakeManagerLib.sol +18 -0
  331. package/contracts/staking/Staking.sol +6 -5
  332. package/contracts/staking/StakingManager.sol +8 -6
  333. package/contracts/staking/StakingService.sol +2 -2
  334. package/contracts/staking/StakingServiceManager.sol +2 -2
  335. package/contracts/type/NftId.sol +1 -0
  336. package/contracts/type/RiskId.sol +15 -1
  337. package/contracts/type/StateId.sol +1 -0
  338. package/contracts/upgradeability/ProxyManager.sol +67 -34
  339. package/contracts/upgradeability/Versionable.sol +2 -2
  340. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicPool} from "../../pool/BasicPool.sol";
6
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
9
+ import {NftId} from "../../type/NftId.sol";
10
+ import {Seconds} from "../../type/Timestamp.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
12
+
13
+ contract SimplePool is
14
+ BasicPool
15
+ {
16
+
17
+ constructor(
18
+ address registry,
19
+ NftId instanceNftId,
20
+ address token,
21
+ IAuthorization authorization,
22
+ address initialOwner
23
+ )
24
+ {
25
+ initialize(
26
+ registry,
27
+ instanceNftId,
28
+ token,
29
+ authorization,
30
+ initialOwner
31
+ );
32
+ }
33
+
34
+ function initialize(
35
+ address registry,
36
+ NftId instanceNftId,
37
+ address token,
38
+ IAuthorization authorization,
39
+ address initialOwner
40
+ )
41
+ public
42
+ virtual
43
+ initializer()
44
+ {
45
+ _initializeBasicPool(
46
+ registry,
47
+ instanceNftId,
48
+ authorization,
49
+ token,
50
+ "SimplePool",
51
+ initialOwner);
52
+ }
53
+
54
+ function createBundle(
55
+ Fee memory fee,
56
+ uint256 initialAmount,
57
+ Seconds lifetime,
58
+ bytes calldata filter
59
+ )
60
+ external
61
+ virtual
62
+ returns(NftId bundleNftId, uint256 netStakedAmountInt)
63
+ {
64
+ address owner = msg.sender;
65
+ Amount netStakedAmount;
66
+ bundleNftId = _createBundle(
67
+ owner,
68
+ fee,
69
+ lifetime,
70
+ filter
71
+ );
72
+ netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
73
+ netStakedAmountInt = netStakedAmount.toInt();
74
+ }
75
+
76
+ }
@@ -0,0 +1,351 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicProduct} from "../../product/BasicProduct.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
8
+ import {IOracleService} from "../../oracle/IOracleService.sol";
9
+ import {ORACLE} from "../../type/ObjectType.sol";
10
+ import {NftId} from "../../type/NftId.sol";
11
+ import {PayoutId} from "../../type/PayoutId.sol";
12
+ import {ReferralId} from "../../type/Referral.sol";
13
+ import {RequestId} from "../../type/RequestId.sol";
14
+ import {RiskId} from "../../type/RiskId.sol";
15
+ import {Seconds} from "../../type/Seconds.sol";
16
+ import {SimpleOracle} from "./SimpleOracle.sol";
17
+ import {StateId} from "../../type/StateId.sol";
18
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
19
+
20
+ uint64 constant SPECIAL_ROLE_INT = 11111;
21
+
22
+ contract SimpleProduct is
23
+ BasicProduct
24
+ {
25
+
26
+ event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
27
+ event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
28
+
29
+ error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
30
+
31
+ IOracleService private _oracleService;
32
+
33
+ constructor(
34
+ address registry,
35
+ NftId instanceNftid,
36
+ IAuthorization authorization,
37
+ address initialOwner,
38
+ address token,
39
+ bool isInterceptor,
40
+ address pool,
41
+ address distribution
42
+ )
43
+ {
44
+ initialize(
45
+ registry,
46
+ instanceNftid,
47
+ authorization,
48
+ initialOwner,
49
+ "SimpleProduct",
50
+ token,
51
+ isInterceptor,
52
+ pool,
53
+ distribution);
54
+ }
55
+
56
+
57
+ function initialize(
58
+ address registry,
59
+ NftId instanceNftid,
60
+ IAuthorization authorization,
61
+ address initialOwner,
62
+ string memory name,
63
+ address token,
64
+ bool isInterceptor,
65
+ address pool,
66
+ address distribution
67
+ )
68
+ public
69
+ virtual
70
+ initializer()
71
+ {
72
+ _initializeBasicProduct(
73
+ registry,
74
+ instanceNftid,
75
+ authorization,
76
+ initialOwner,
77
+ name,
78
+ token,
79
+ isInterceptor,
80
+ pool,
81
+ distribution);
82
+
83
+ _oracleService = IOracleService(_getServiceAddress(ORACLE()));
84
+ }
85
+
86
+ function createRisk(
87
+ RiskId id,
88
+ bytes memory data
89
+ ) public {
90
+ _createRisk(
91
+ id,
92
+ data
93
+ );
94
+ }
95
+
96
+ function updateRisk(
97
+ RiskId id,
98
+ bytes memory data
99
+ ) public {
100
+ _updateRisk(
101
+ id,
102
+ data
103
+ );
104
+ }
105
+
106
+ function updateRiskState(
107
+ RiskId id,
108
+ StateId state
109
+ ) public {
110
+ _updateRiskState(
111
+ id,
112
+ state
113
+ );
114
+ }
115
+
116
+ function createApplication(
117
+ address applicationOwner,
118
+ RiskId riskId,
119
+ uint256 sumInsured,
120
+ Seconds lifetime,
121
+ bytes memory applicationData,
122
+ NftId bundleNftId,
123
+ ReferralId referralId
124
+ )
125
+ public
126
+ returns (NftId nftId)
127
+ {
128
+ Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
129
+ Amount premiumAmount = calculatePremium(
130
+ sumInsuredAmount,
131
+ riskId,
132
+ lifetime,
133
+ applicationData,
134
+ bundleNftId,
135
+ referralId);
136
+
137
+ return _createApplication(
138
+ applicationOwner,
139
+ riskId,
140
+ sumInsuredAmount,
141
+ premiumAmount,
142
+ lifetime,
143
+ bundleNftId,
144
+ referralId,
145
+ applicationData
146
+ );
147
+ }
148
+
149
+ function createPolicy(
150
+ NftId applicationNftId,
151
+ bool requirePremiumPayment,
152
+ Timestamp activateAt
153
+ ) public {
154
+ _createPolicy(applicationNftId, activateAt);
155
+ if (requirePremiumPayment == true) {
156
+ _collectPremium(applicationNftId, activateAt);
157
+ }
158
+ }
159
+
160
+ function decline(
161
+ NftId policyNftId
162
+ ) public {
163
+ _decline(policyNftId);
164
+ }
165
+
166
+ function expire(
167
+ NftId policyNftId,
168
+ Timestamp expireAt
169
+ )
170
+ public
171
+ returns (Timestamp)
172
+ {
173
+ return _expire(policyNftId, expireAt);
174
+ }
175
+
176
+ function collectPremium(
177
+ NftId policyNftId,
178
+ Timestamp activateAt
179
+ ) public {
180
+ _collectPremium(policyNftId, activateAt);
181
+ }
182
+
183
+ function activate(
184
+ NftId policyNftId,
185
+ Timestamp activateAt
186
+ ) public {
187
+ _activate(policyNftId, activateAt);
188
+ }
189
+
190
+ function close(
191
+ NftId policyNftId
192
+ ) public {
193
+ _close(policyNftId);
194
+ }
195
+
196
+ function submitClaim(
197
+ NftId policyNftId,
198
+ Amount claimAmount,
199
+ bytes memory submissionData
200
+ ) public returns (ClaimId) {
201
+ return _submitClaim(policyNftId, claimAmount, submissionData);
202
+ }
203
+
204
+ function confirmClaim(
205
+ NftId policyNftId,
206
+ ClaimId claimId,
207
+ Amount confirmedAmount,
208
+ bytes memory processData
209
+ ) public {
210
+ _confirmClaim(policyNftId, claimId, confirmedAmount, processData);
211
+ }
212
+
213
+ function declineClaim(
214
+ NftId policyNftId,
215
+ ClaimId claimId,
216
+ bytes memory processData
217
+ ) public {
218
+ _declineClaim(policyNftId, claimId, processData);
219
+ }
220
+
221
+ function closeClaim(
222
+ NftId policyNftId,
223
+ ClaimId claimId
224
+ ) public {
225
+ _closeClaim(policyNftId, claimId);
226
+ }
227
+
228
+ function createPayout(
229
+ NftId policyNftId,
230
+ ClaimId claimId,
231
+ Amount amount,
232
+ bytes memory data
233
+ ) public returns (PayoutId) {
234
+ return _createPayout(policyNftId, claimId, amount, data);
235
+ }
236
+
237
+ // TODO add test
238
+ function createPayoutForBeneficiary(
239
+ NftId policyNftId,
240
+ ClaimId claimId,
241
+ Amount amount,
242
+ address beneficiary,
243
+ bytes memory data
244
+ ) public returns (PayoutId) {
245
+ return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
246
+ }
247
+
248
+ function processPayout(
249
+ NftId policyNftId,
250
+ PayoutId payoutId
251
+ ) public {
252
+ _processPayout(policyNftId, payoutId);
253
+ }
254
+
255
+ function createOracleRequest(
256
+ NftId oracleNftId,
257
+ string memory requestText,
258
+ Timestamp expiryAt,
259
+ bool synchronous
260
+ )
261
+ public
262
+ // restricted()
263
+ returns (RequestId)
264
+ {
265
+ bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
266
+ synchronous,
267
+ requestText));
268
+
269
+ if (synchronous) {
270
+ return _oracleService.request(
271
+ oracleNftId,
272
+ requestData,
273
+ expiryAt,
274
+ "fulfillOracleRequestSync");
275
+ } else {
276
+ return _oracleService.request(
277
+ oracleNftId,
278
+ requestData,
279
+ expiryAt,
280
+ "fulfillOracleRequestAsync");
281
+ }
282
+ }
283
+
284
+ function cancelOracleRequest(
285
+ RequestId requestId
286
+ )
287
+ public
288
+ // restricted() //
289
+ {
290
+ _oracleService.cancel(requestId);
291
+ }
292
+
293
+ function fulfillOracleRequestSync(
294
+ RequestId requestId,
295
+ bytes memory responseData
296
+ )
297
+ public
298
+ // restricted() // only oracle service
299
+ {
300
+ string memory responseText = abi.decode(responseData, (string));
301
+ emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
302
+ }
303
+
304
+ function fulfillOracleRequestAsync(
305
+ RequestId requestId,
306
+ bytes memory responseData
307
+ )
308
+ public
309
+ // restricted() // only oracle service
310
+ {
311
+ SimpleOracle.SimpleResponse memory response = abi.decode(
312
+ responseData, (SimpleOracle.SimpleResponse));
313
+
314
+ if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
315
+ revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
316
+ }
317
+
318
+ emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
319
+ }
320
+
321
+
322
+ function resend(
323
+ RequestId requestId
324
+ )
325
+ public
326
+ // restricted() //
327
+ {
328
+ _oracleService.resend(requestId);
329
+ }
330
+
331
+
332
+ function doSomethingSpecial()
333
+ public
334
+ restricted()
335
+ returns (bool)
336
+ {
337
+ return true;
338
+ }
339
+
340
+ function doWhenNotLocked()
341
+ public
342
+ restricted()
343
+ returns (bool)
344
+ {
345
+ return true;
346
+ }
347
+
348
+ function getOracleService() public view returns (IOracleService) {
349
+ return _oracleService;
350
+ }
351
+ }
@@ -61,7 +61,7 @@ contract Instance is
61
61
  __AccessManaged_init(_instanceAdmin.authority());
62
62
 
63
63
  // setup instance object info
64
- initializeRegisterable(
64
+ _initializeRegisterable(
65
65
  address(registry),
66
66
  registry.getNftId(),
67
67
  INSTANCE(),
@@ -84,7 +84,7 @@ contract Instance is
84
84
  INSTANCE(),
85
85
  getMajorVersion()));
86
86
 
87
- registerInterface(type(IInstance).interfaceId);
87
+ _registerInterface(type(IInstance).interfaceId);
88
88
  }
89
89
 
90
90
  //--- Staking ----------------------------------------------------------//
@@ -190,6 +190,7 @@ contract InstanceAuthorizationV3
190
190
  _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
191
191
  _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
192
192
  _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
193
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
193
194
 
194
195
  // authorize claim service role
195
196
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
@@ -91,6 +91,14 @@ contract InstanceReader {
91
91
  }
92
92
  }
93
93
 
94
+ function getPremiumInfoState(NftId policyNftId)
95
+ public
96
+ view
97
+ returns (StateId state)
98
+ {
99
+ return _store.getState(toPremiumKey(policyNftId));
100
+ }
101
+
94
102
  function getBundleState(NftId bundleNftId)
95
103
  public
96
104
  view
@@ -60,7 +60,7 @@ contract InstanceService is
60
60
 
61
61
  modifier onlyInstance() {
62
62
  address instanceAddress = msg.sender;
63
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
63
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
64
64
  if (instanceNftId.eqz()) {
65
65
  revert ErrorInstanceServiceNotRegistered(instanceAddress);
66
66
  }
@@ -132,7 +132,7 @@ contract InstanceService is
132
132
  virtual
133
133
  onlyInstance()
134
134
  {
135
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
135
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
136
136
  _stakingService.setInstanceLockingPeriod(
137
137
  instanceNftId,
138
138
  stakeLockingPeriod);
@@ -144,7 +144,7 @@ contract InstanceService is
144
144
  virtual
145
145
  onlyInstance()
146
146
  {
147
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
147
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
148
148
  _stakingService.setInstanceRewardRate(
149
149
  instanceNftId,
150
150
  rewardRate);
@@ -156,7 +156,7 @@ contract InstanceService is
156
156
  virtual
157
157
  onlyInstance()
158
158
  {
159
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
159
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
160
160
  _stakingService.refillInstanceRewardReserves(
161
161
  instanceNftId,
162
162
  rewardProvider,
@@ -170,7 +170,7 @@ contract InstanceService is
170
170
  onlyInstance()
171
171
  returns (Amount newBalance)
172
172
  {
173
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
173
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
174
174
  _stakingService.withdrawInstanceRewardReserves(
175
175
  instanceNftId,
176
176
  dipAmount);
@@ -422,21 +422,20 @@ contract InstanceService is
422
422
  bytes memory data
423
423
  )
424
424
  internal
425
- initializer
426
425
  virtual override
426
+ initializer()
427
427
  {
428
428
  (
429
- address registryAddress,,
430
- //address managerAddress
429
+ address registryAddress,
431
430
  address authority
432
- ) = abi.decode(data, (address, address, address));
431
+ ) = abi.decode(data, (address, address));
433
432
 
434
- initializeService(registryAddress, authority, owner);
433
+ _initializeService(registryAddress, authority, owner);
435
434
 
436
435
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
437
436
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
438
437
 
439
- registerInterface(type(IInstanceService).interfaceId);
438
+ _registerInterface(type(IInstanceService).interfaceId);
440
439
  }
441
440
 
442
441
 
@@ -12,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with instance service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
- InstanceService instSrv = new InstanceService{salt: salt}();
21
- // bytes memory initCode = type(InstanceService).creationCode;
22
- bytes memory data = abi.encode(registryAddress, address(this), authority);
23
- IVersionable versionable = deployDetermenistic(
24
- address(instSrv),
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
25
24
  data,
26
25
  salt);
27
26
 
@@ -201,10 +201,6 @@ contract InstanceStore is
201
201
  _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
202
202
  }
203
203
 
204
- function updatePremium(NftId policyNftId, IPolicy.PremiumInfo memory premium, StateId newState) external restricted() {
205
- _update(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium), newState);
206
- }
207
-
208
204
  function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
209
205
  _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
210
206
  }
@@ -59,7 +59,8 @@ contract ObjectLifecycle is
59
59
  }
60
60
 
61
61
  function _setupPremiumLifecycle() private {
62
- setInitialState(PREMIUM(), ACTIVE());
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
63
64
  }
64
65
 
65
66
  function _setupClaimLifecycle() private {
@@ -49,7 +49,6 @@ interface IPolicy {
49
49
  RiskId riskId;
50
50
  Amount sumInsuredAmount;
51
51
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
52
  Seconds lifetime;
54
53
  // policy application data, no changes after applying for a policy
55
54
  bytes applicationData;
@@ -69,8 +68,8 @@ interface IPolicy {
69
68
  Amount paidAmount;
70
69
  uint8 payoutsCount;
71
70
  uint8 openPayoutsCount;
72
- bytes submissionData; // claim submission data, no changes after submitting the claim
73
- bytes processData; // data that may include information supporting confirm or decline
71
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
72
+ bytes processData; // use case specific data that may include information supporting confirm or decline
74
73
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
75
74
  }
76
75
 
@@ -78,7 +77,8 @@ interface IPolicy {
78
77
  struct PayoutInfo {
79
78
  ClaimId claimId;
80
79
  Amount amount;
81
- bytes data;
82
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
80
+ address beneficiary; // for address(0) beneficiary is policy nft owner
81
+ bytes data; // use case specific supporting data
82
+ Timestamp paidAt; // timestamp for actual payout
83
83
  }
84
84
  }
@@ -114,7 +114,7 @@ abstract contract Oracle is
114
114
  $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
115
115
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
116
116
 
117
- registerInterface(type(IOracleComponent).interfaceId);
117
+ _registerInterface(type(IOracleComponent).interfaceId);
118
118
  }
119
119
 
120
120
 
@@ -27,14 +27,16 @@ contract OracleService is
27
27
  bytes memory data
28
28
  )
29
29
  internal
30
- initializer
31
30
  virtual override
31
+ initializer()
32
32
  {
33
- address initialOwner;
34
- address registryAddress;
35
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
36
- initializeService(registryAddress, address(0), owner);
37
- registerInterface(type(IOracleService).interfaceId);
33
+ (
34
+ address registryAddress,
35
+ address authority
36
+ ) = abi.decode(data, (address, address));
37
+
38
+ _initializeService(registryAddress, authority, owner);
39
+ _registerInterface(type(IOracleService).interfaceId);
38
40
  }
39
41
 
40
42
  function request(
@@ -12,15 +12,15 @@ contract OracleServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with service implementation and deploys instance
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
- OracleService orclSrv = new OracleService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
23
- address(orclSrv),
19
+ OracleService svc = new OracleService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
24
  data,
25
25
  salt);
26
26