@etherisc/gif-next 0.0.2-a67250d-285 → 0.0.2-a6a9eeb-432

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 (580) hide show
  1. package/README.md +91 -8
  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/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +408 -104
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  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 +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +196 -441
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -325
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +615 -318
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +219 -127
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -160
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +429 -77
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +415 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2254 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +291 -410
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +167 -314
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +356 -373
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +967 -507
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  87. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  89. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +578 -65
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -60
  93. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/Instance.sol/Instance.json +616 -183
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1021 -363
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +328 -92
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1719 -829
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +409 -231
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +738 -947
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  127. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +148 -317
  130. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +424 -37
  132. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +116 -109
  135. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +124 -269
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  143. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +171 -324
  145. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  147. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +352 -388
  149. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +172 -128
  151. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +247 -121
  153. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  154. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +152 -156
  155. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +478 -227
  157. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  158. package/artifacts/contracts/pool/Pool.sol/Pool.json +150 -306
  159. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  160. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  161. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  162. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +729 -477
  163. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +227 -107
  165. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  166. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +358 -166
  167. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +166 -94
  169. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  170. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +283 -367
  171. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  172. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  173. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +364 -265
  175. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +184 -124
  177. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +296 -9
  179. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +242 -24
  181. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +299 -48
  183. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +140 -37
  185. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  186. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -202
  187. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +286 -21
  189. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +449 -261
  191. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  192. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  193. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +203 -115
  195. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  196. package/artifacts/contracts/product/PricingService.sol/PricingService.json +198 -238
  197. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +157 -109
  199. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  200. package/artifacts/contracts/product/Product.sol/Product.json +275 -359
  201. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  202. package/artifacts/contracts/product/RiskService.sol/RiskService.json +364 -186
  203. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +166 -94
  205. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  207. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +358 -47
  209. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  210. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  211. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  212. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  213. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  215. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/Registry.sol/Registry.json +564 -108
  217. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  218. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  219. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  220. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  221. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  222. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  223. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  224. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  225. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  226. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  227. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  229. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  230. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  231. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  232. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  233. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  234. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  235. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  236. package/artifacts/contracts/shared/Component.sol/Component.json +100 -227
  237. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +496 -625
  239. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  240. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +188 -130
  241. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  249. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +93 -68
  251. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  253. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -109
  255. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +79 -6
  257. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  259. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  261. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  263. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  265. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  268. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  269. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  270. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  271. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +123 -268
  272. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  273. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +85 -7
  274. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  276. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  277. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  278. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  279. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  280. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  281. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  282. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  283. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  284. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  285. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  286. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  287. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  292. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  293. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  294. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  295. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1492 -173
  296. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  297. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  298. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  299. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  300. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  301. package/artifacts/contracts/staking/Staking.sol/Staking.json +1638 -428
  302. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  303. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  304. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +192 -110
  306. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  308. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  310. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  312. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  314. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  315. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  316. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  317. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  318. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  319. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  321. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  323. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  325. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  327. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  329. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  331. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  333. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  334. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  335. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  337. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  338. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  339. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
  341. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  343. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  345. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  347. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  348. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  349. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  351. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  353. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  355. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  356. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  357. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  358. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  359. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  360. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  361. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  362. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  363. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  364. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  365. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  366. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  367. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  368. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  369. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  370. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  371. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  372. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  373. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  374. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  375. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  376. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  377. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  378. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  379. package/contracts/accounting/AccountingService.sol +274 -0
  380. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  381. package/contracts/accounting/IAccountingService.sol +47 -0
  382. package/contracts/authorization/AccessAdmin.sol +458 -269
  383. package/contracts/authorization/AccessAdminLib.sol +396 -0
  384. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  385. package/contracts/authorization/Authorization.sol +159 -207
  386. package/contracts/authorization/IAccess.sol +25 -6
  387. package/contracts/authorization/IAccessAdmin.sol +87 -79
  388. package/contracts/authorization/IAuthorization.sol +9 -37
  389. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  390. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  391. package/contracts/distribution/BasicDistribution.sol +20 -17
  392. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  393. package/contracts/distribution/Distribution.sol +44 -92
  394. package/contracts/distribution/DistributionService.sol +226 -114
  395. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  396. package/contracts/distribution/IDistributionComponent.sol +4 -11
  397. package/contracts/distribution/IDistributionService.sol +38 -24
  398. package/contracts/examples/fire/DamageLevel.sol +59 -0
  399. package/contracts/examples/fire/FirePool.sol +86 -0
  400. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  401. package/contracts/examples/fire/FireProduct.sol +433 -0
  402. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  403. package/contracts/examples/fire/FireUSD.sol +26 -0
  404. package/contracts/examples/flight/FlightLib.sol +266 -0
  405. package/contracts/examples/flight/FlightOracle.sol +167 -0
  406. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  407. package/contracts/examples/flight/FlightPool.sol +89 -0
  408. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  409. package/contracts/examples/flight/FlightProduct.sol +491 -0
  410. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  411. package/contracts/examples/flight/FlightUSD.sol +26 -0
  412. package/contracts/examples/flight/originalV1.sol +396 -0
  413. package/contracts/examples/unpermissioned/SimpleDistribution.sol +43 -12
  414. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  415. package/contracts/examples/unpermissioned/SimpleOracle.sol +8 -12
  416. package/contracts/examples/unpermissioned/SimplePool.sol +36 -10
  417. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  418. package/contracts/examples/unpermissioned/SimpleProduct.sol +134 -48
  419. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  420. package/contracts/instance/BaseStore.sol +93 -0
  421. package/contracts/instance/BundleSet.sol +42 -38
  422. package/contracts/instance/IBaseStore.sol +37 -0
  423. package/contracts/instance/IInstance.sol +111 -18
  424. package/contracts/instance/IInstanceService.sol +61 -34
  425. package/contracts/instance/Instance.sol +197 -75
  426. package/contracts/instance/InstanceAdmin.sol +276 -182
  427. package/contracts/instance/InstanceAuthorizationV3.sol +140 -69
  428. package/contracts/instance/InstanceReader.sol +496 -270
  429. package/contracts/instance/InstanceService.sol +316 -269
  430. package/contracts/instance/InstanceServiceManager.sol +6 -7
  431. package/contracts/instance/InstanceStore.sol +21 -40
  432. package/contracts/instance/ProductStore.sol +119 -0
  433. package/contracts/instance/RiskSet.sol +126 -0
  434. package/contracts/instance/TargetNames.sol +10 -0
  435. package/contracts/instance/base/BalanceStore.sol +4 -6
  436. package/contracts/instance/base/ObjectCounter.sol +1 -2
  437. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  438. package/contracts/instance/base/ObjectSet.sol +31 -33
  439. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  440. package/contracts/instance/module/IBundle.sol +6 -5
  441. package/contracts/instance/module/IComponents.sol +29 -13
  442. package/contracts/instance/module/IDistribution.sol +21 -8
  443. package/contracts/instance/module/IPolicy.sol +30 -9
  444. package/contracts/instance/module/IRisk.sol +5 -0
  445. package/contracts/oracle/BasicOracle.sol +2 -5
  446. package/contracts/oracle/BasicOracleAuthorization.sol +14 -8
  447. package/contracts/oracle/IOracle.sol +9 -4
  448. package/contracts/oracle/IOracleService.sol +14 -13
  449. package/contracts/oracle/Oracle.sol +8 -21
  450. package/contracts/oracle/OracleService.sol +119 -88
  451. package/contracts/oracle/OracleServiceManager.sol +6 -6
  452. package/contracts/pool/BasicPool.sol +34 -38
  453. package/contracts/pool/BasicPoolAuthorization.sol +34 -11
  454. package/contracts/pool/BundleService.sol +117 -169
  455. package/contracts/pool/BundleServiceManager.sol +6 -6
  456. package/contracts/pool/IBundleService.sol +28 -46
  457. package/contracts/pool/IPoolComponent.sol +19 -15
  458. package/contracts/pool/IPoolService.sol +77 -67
  459. package/contracts/pool/Pool.sol +141 -134
  460. package/contracts/pool/PoolLib.sol +341 -0
  461. package/contracts/pool/PoolService.sol +357 -252
  462. package/contracts/pool/PoolServiceManager.sol +4 -4
  463. package/contracts/product/ApplicationService.sol +111 -32
  464. package/contracts/product/ApplicationServiceManager.sol +4 -4
  465. package/contracts/product/BasicProduct.sol +10 -14
  466. package/contracts/product/BasicProductAuthorization.sol +33 -12
  467. package/contracts/product/ClaimService.sol +329 -190
  468. package/contracts/product/ClaimServiceManager.sol +4 -4
  469. package/contracts/product/IApplicationService.sol +28 -3
  470. package/contracts/product/IClaimService.sol +21 -7
  471. package/contracts/product/IPolicyService.sol +41 -12
  472. package/contracts/product/IPricingService.sol +10 -9
  473. package/contracts/product/IProductComponent.sol +27 -4
  474. package/contracts/product/IRiskService.sol +25 -10
  475. package/contracts/product/PolicyService.sol +356 -284
  476. package/contracts/product/PolicyServiceLib.sol +139 -0
  477. package/contracts/product/PolicyServiceManager.sol +4 -4
  478. package/contracts/product/PricingService.sol +59 -54
  479. package/contracts/product/PricingServiceManager.sol +4 -4
  480. package/contracts/product/Product.sol +154 -86
  481. package/contracts/product/RiskService.sol +130 -37
  482. package/contracts/product/RiskServiceManager.sol +4 -4
  483. package/contracts/registry/ChainNft.sol +72 -40
  484. package/contracts/registry/IRegistry.sol +69 -31
  485. package/contracts/registry/IRegistryService.sol +5 -12
  486. package/contracts/registry/IRelease.sol +29 -0
  487. package/contracts/registry/ITransferInterceptor.sol +1 -2
  488. package/contracts/registry/Registry.sol +366 -206
  489. package/contracts/registry/RegistryAdmin.sol +114 -297
  490. package/contracts/registry/RegistryAuthorization.sol +336 -0
  491. package/contracts/registry/RegistryService.sol +38 -49
  492. package/contracts/registry/RegistryServiceManager.sol +3 -3
  493. package/contracts/registry/ReleaseAdmin.sol +195 -0
  494. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  495. package/contracts/registry/ReleaseRegistry.sol +279 -239
  496. package/contracts/registry/ServiceAuthorizationV3.sol +204 -61
  497. package/contracts/registry/TokenRegistry.sol +61 -59
  498. package/contracts/shared/Component.sol +68 -122
  499. package/contracts/shared/ComponentService.sol +423 -377
  500. package/contracts/shared/ComponentServiceManager.sol +8 -5
  501. package/contracts/shared/ContractLib.sol +312 -0
  502. package/contracts/shared/IComponent.sol +6 -18
  503. package/contracts/shared/IComponentService.sol +43 -40
  504. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  505. package/contracts/shared/IKeyValueStore.sol +9 -1
  506. package/contracts/shared/ILifecycle.sol +3 -1
  507. package/contracts/shared/INftOwnable.sol +4 -0
  508. package/contracts/shared/IPolicyHolder.sol +12 -22
  509. package/contracts/shared/IRegisterable.sol +22 -1
  510. package/contracts/shared/IService.sol +3 -5
  511. package/contracts/shared/InitializableERC165.sol +10 -2
  512. package/contracts/shared/InstanceLinkedComponent.sol +115 -53
  513. package/contracts/shared/KeyValueStore.sol +4 -4
  514. package/contracts/shared/Lifecycle.sol +15 -4
  515. package/contracts/shared/NftOwnable.sol +30 -8
  516. package/contracts/shared/PolicyHolder.sol +18 -54
  517. package/contracts/shared/Registerable.sol +52 -21
  518. package/contracts/shared/RegistryLinked.sol +9 -14
  519. package/contracts/shared/Service.sol +20 -35
  520. package/contracts/shared/TokenHandler.sol +275 -72
  521. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  522. package/contracts/staking/IStaking.sol +271 -72
  523. package/contracts/staking/IStakingService.sol +45 -78
  524. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  525. package/contracts/staking/Staking.sol +523 -223
  526. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  527. package/contracts/staking/StakingManager.sol +12 -9
  528. package/contracts/staking/StakingReader.sol +70 -82
  529. package/contracts/staking/StakingService.sol +63 -149
  530. package/contracts/staking/StakingServiceManager.sol +7 -5
  531. package/contracts/staking/StakingStore.sol +1093 -330
  532. package/contracts/staking/TargetHandler.sol +132 -0
  533. package/contracts/staking/TargetManagerLib.sol +69 -46
  534. package/contracts/type/Amount.sol +19 -0
  535. package/contracts/type/Blocknumber.sol +15 -15
  536. package/contracts/type/ChainId.sol +101 -0
  537. package/contracts/type/ClaimId.sol +6 -1
  538. package/contracts/type/Fee.sol +8 -8
  539. package/contracts/type/Key32.sol +2 -2
  540. package/contracts/type/Key32Set.sol +62 -0
  541. package/contracts/type/NftId.sol +7 -0
  542. package/contracts/type/ObjectType.sol +71 -68
  543. package/contracts/type/PayoutId.sol +10 -10
  544. package/contracts/type/Referral.sol +6 -0
  545. package/contracts/type/RequestIdSet.sol +62 -0
  546. package/contracts/type/RiskId.sol +38 -6
  547. package/contracts/type/RoleId.sol +61 -55
  548. package/contracts/type/Seconds.sol +23 -0
  549. package/contracts/type/Selector.sol +5 -0
  550. package/contracts/type/StateId.sol +14 -1
  551. package/contracts/type/String.sol +42 -0
  552. package/contracts/type/Timestamp.sol +14 -8
  553. package/contracts/type/UFixed.sol +38 -126
  554. package/contracts/type/Version.sol +54 -5
  555. package/contracts/upgradeability/IVersionable.sol +3 -0
  556. package/contracts/upgradeability/ProxyManager.sol +93 -45
  557. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  558. package/contracts/upgradeability/Versionable.sol +8 -5
  559. package/package.json +5 -4
  560. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  561. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  562. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  563. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  564. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  566. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  567. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  568. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  569. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  570. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  571. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  572. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  573. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  574. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  575. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  576. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  577. package/contracts/instance/module/IAccess.sol +0 -46
  578. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  579. package/contracts/shared/InitializableCustom.sol +0 -177
  580. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,22 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
6
 
9
7
  import {Amount, AmountLib} from "../type/Amount.sol";
10
8
  import {IComponent} from "./IComponent.sol";
11
9
  import {IComponents} from "../instance/module/IComponents.sol";
12
- import {NftId, NftIdLib} from "../type/NftId.sol";
13
- import {ObjectType} from "../type/ObjectType.sol";
10
+ import {IComponentService} from "./IComponentService.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
14
13
  import {Registerable} from "../shared/Registerable.sol";
15
14
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
- import {VersionPartLib} from "../type/Version.sol";
15
+ import {Version, VersionLib} from "../type/Version.sol";
16
+
17
17
 
18
18
  abstract contract Component is
19
- AccessManagedUpgradeable,
20
19
  Registerable,
21
20
  IComponent
22
21
  {
@@ -25,10 +24,9 @@ abstract contract Component is
25
24
 
26
25
  struct ComponentStorage {
27
26
  string _name; // unique (per instance) component name
28
- IERC20Metadata _token; // token for this component
29
- address _wallet;
30
27
  bool _isInterceptor;
31
28
  bytes _data;
29
+ IComponentService _componentService;
32
30
  }
33
31
 
34
32
 
@@ -39,134 +37,68 @@ abstract contract Component is
39
37
  _;
40
38
  }
41
39
 
42
- modifier onlyNftOwner(NftId nftId) {
43
- if(msg.sender != getRegistry().ownerOf(nftId)) {
44
- revert ErrorNftOwnableNotOwner(msg.sender);
45
- }
46
- _;
47
- }
48
40
 
49
41
  function _getComponentStorage() private pure returns (ComponentStorage storage $) {
42
+ // solhint-disable-next-line no-inline-assembly
50
43
  assembly {
51
44
  $.slot := COMPONENT_LOCATION_V1
52
45
  }
53
46
  }
54
47
 
55
- function initializeComponent(
48
+
49
+ function __Component_init(
56
50
  address authority,
57
51
  address registry,
58
52
  NftId parentNftId,
59
53
  string memory name,
60
- address token,
61
54
  ObjectType componentType,
62
55
  bool isInterceptor,
63
56
  address initialOwner,
64
57
  bytes memory registryData, // writeonly data that will saved in the object info record of the registry
65
58
  bytes memory componentData // other component specific data
66
59
  )
67
- public
60
+ internal
68
61
  virtual
69
62
  onlyInitializing()
70
63
  {
71
- initializeRegisterable(registry, parentNftId, componentType, isInterceptor, initialOwner, registryData);
72
- __AccessManaged_init(authority);
73
-
74
- if (token == address(0)) {
75
- revert ErrorComponentTokenAddressZero();
76
- }
77
-
78
64
  if (bytes(name).length == 0) {
79
65
  revert ErrorComponentNameLengthZero();
80
66
  }
81
67
 
68
+ __Registerable_init(
69
+ authority,
70
+ registry,
71
+ parentNftId,
72
+ componentType,
73
+ isInterceptor,
74
+ initialOwner,
75
+ registryData);
76
+
82
77
  // set component state
83
78
  ComponentStorage storage $ = _getComponentStorage();
84
79
  $._name = name;
85
- $._token = IERC20Metadata(token);
86
- $._wallet = address(this);
87
80
  $._isInterceptor = isInterceptor;
88
81
  $._data = componentData;
82
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
89
83
 
90
- registerInterface(type(IAccessManaged).interfaceId);
91
- registerInterface(type(IComponent).interfaceId);
92
- }
93
-
94
-
95
- function approveTokenHandler(Amount spendingLimitAmount)
96
- external
97
- virtual
98
- onlyOwner
99
- {
100
- approveTokenHandler(address(getToken()), spendingLimitAmount);
101
- }
102
-
103
- function approveTokenHandler(address token, Amount spendingLimitAmount)
104
- public
105
- virtual
106
- onlyOwner
107
- {
108
- if(getWallet() != address(this)) {
109
- revert ErrorComponentWalletNotComponent();
110
- }
111
-
112
- emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
113
-
114
- IERC20Metadata(token).approve(
115
- address(getTokenHandler()),
116
- spendingLimitAmount.toInt());
84
+ _registerInterface(type(IAccessManaged).interfaceId);
85
+ _registerInterface(type(IComponent).interfaceId);
117
86
  }
118
87
 
119
- function setWallet(address newWallet)
120
- external
121
- virtual
122
- override
123
- onlyOwner
124
- {
125
- // checks
126
- address currentWallet = getWallet();
127
- uint256 currentBalance = getToken().balanceOf(currentWallet);
128
-
129
- // effects
130
- _setWallet(newWallet);
131
-
132
- // interactions
133
- if (currentBalance > 0) {
134
- // move tokens from old to new wallet
135
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
136
-
137
- if (currentWallet == address(this)) {
138
- // transfer from the component requires an allowance
139
- getTokenHandler().distributeTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
140
- } else {
141
- getTokenHandler().collectTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
142
- }
143
- }
144
- }
145
-
146
-
147
- /// @dev callback function for nft mints
148
- /// may only be called by chain nft contract.
149
- /// override internal function _nftMint to implement custom behaviour
150
- function nftMint(address to, uint256 tokenId)
151
- external
152
- onlyChainNft
153
- {
154
- _nftMint(to, tokenId);
155
- }
156
88
 
157
89
  /// @dev callback function for nft transfers
158
90
  /// may only be called by chain nft contract.
159
91
  /// override internal function _nftTransferFrom to implement custom behaviour
160
- function nftTransferFrom(address from, address to, uint256 tokenId)
92
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator)
161
93
  external
162
94
  onlyChainNft
163
95
  {
164
- _nftTransferFrom(from, to, tokenId);
96
+ _nftTransferFrom(from, to, tokenId, operator);
165
97
  }
166
98
 
167
99
 
168
100
  function getWallet() public view virtual returns (address walletAddress) {
169
- return getComponentInfo().wallet;
101
+ return getTokenHandler().getWallet();
170
102
  }
171
103
 
172
104
  function getTokenHandler() public virtual view returns (TokenHandler tokenHandler) {
@@ -174,13 +106,17 @@ abstract contract Component is
174
106
  }
175
107
 
176
108
  function getToken() public view virtual returns (IERC20Metadata token) {
177
- return getComponentInfo().token;
109
+ return getTokenHandler().TOKEN();
178
110
  }
179
111
 
180
112
  function getName() public view override returns(string memory name) {
181
113
  return getComponentInfo().name;
182
114
  }
183
115
 
116
+ function getVersion() public view virtual returns (Version version) {
117
+ return VersionLib.toVersion(1, 0, 0);
118
+ }
119
+
184
120
  function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
185
121
  if (isRegistered()) {
186
122
  return _getComponentInfo();
@@ -210,38 +146,51 @@ abstract contract Component is
210
146
  }
211
147
 
212
148
 
213
- /// @dev internal function for nft transfers.
214
- /// handling logic that deals with nft transfers need to overwrite this function
215
- function _nftMint(address to, uint256 tokenId)
149
+ /// @dev Approves token hanlder to spend up to the specified amount of tokens.
150
+ /// Reverts if component wallet is not token handler itself.
151
+ /// Only component owner (nft holder) is authorizes to call this function.
152
+ function _approveTokenHandler(IERC20Metadata token, Amount amount)
216
153
  internal
217
154
  virtual
218
- { }
155
+ returns (Amount oldAllowanceAmount)
156
+ {
157
+ oldAllowanceAmount = AmountLib.toAmount(
158
+ token.allowance(address(getTokenHandler()), address(this)));
159
+
160
+ _getComponentStorage()._componentService.approveTokenHandler(
161
+ token,
162
+ amount);
163
+ }
164
+
219
165
 
220
166
  /// @dev internal function for nft transfers.
221
167
  /// handling logic that deals with nft transfers need to overwrite this function
222
- function _nftTransferFrom(address from, address to, uint256 tokenId)
168
+ function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
223
169
  internal
224
170
  virtual
225
- { }
171
+ // solhint-disable-next-line no-empty-blocks
172
+ {
173
+ // empty default implementation
174
+ }
226
175
 
227
176
 
228
- /// @dev depending on the source of the component information this function needs to be overwritten.
177
+ /// @dev Sets the components wallet to the specified address.
178
+ /// Depending on the source of the component information this function needs to be overwritten.
229
179
  /// eg for instance linked components that externally store this information with the instance store contract
230
- function _setWallet(address newWallet) internal virtual {
231
- ComponentStorage storage $ = _getComponentStorage();
232
- address currentWallet = $._wallet;
233
-
234
- if (newWallet == address(0)) {
235
- revert ErrorComponentWalletAddressZero();
236
- }
237
-
238
- if (newWallet == currentWallet) {
239
- revert ErrorComponentWalletAddressIsSameAsCurrent();
240
- }
241
-
242
- $._wallet = newWallet;
243
- emit LogComponentWalletAddressChanged(currentWallet, newWallet);
180
+ function _setWallet(
181
+ address newWallet
182
+ )
183
+ internal
184
+ virtual
185
+ {
186
+ _getComponentStorage()._componentService.setWallet(newWallet);
187
+ }
244
188
 
189
+ function _setLocked(bool locked)
190
+ internal
191
+ virtual
192
+ {
193
+ _getComponentStorage()._componentService.setLocked(locked);
245
194
  }
246
195
 
247
196
 
@@ -252,17 +201,14 @@ abstract contract Component is
252
201
 
253
202
  return IComponents.ComponentInfo({
254
203
  name: $._name,
255
- productNftId: NftIdLib.zero(),
256
- token: $._token,
257
204
  tokenHandler: TokenHandler(address(0)),
258
- wallet: $._wallet, // initial wallet address
259
205
  data: $._data // user specific component data
260
206
  });
261
207
  }
262
208
 
263
- function _approveTokenHandler(uint256 amount) internal {
264
- ComponentStorage storage $ = _getComponentStorage();
265
- $._token.approve(address(getComponentInfo().tokenHandler), amount);
209
+ /// @dev returns the service address for the specified domain
210
+ /// gets address via lookup from registry using the major version form the linked instance
211
+ function _getServiceAddress(ObjectType domain) internal view returns (address) {
212
+ return getRegistry().getServiceAddress(domain, getRelease());
266
213
  }
267
-
268
214
  }