@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-fbbe3fc-042

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 (490) hide show
  1. package/README.md +1 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  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 +10 -20
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +104 -166
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +728 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1234 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2497 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -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 +102 -159
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -78
  89. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
  91. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
  93. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
  95. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  97. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +203 -77
  99. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
  101. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  103. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  105. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  107. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  109. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  111. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  115. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  117. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  119. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  121. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  126. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
  129. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  131. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -94
  134. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  136. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  151. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
  152. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  154. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  155. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
  156. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  157. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  158. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  159. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
  160. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  161. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
  162. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  164. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  165. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  166. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  168. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  169. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  170. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  171. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  172. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  173. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  174. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  176. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  178. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  180. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
  182. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  184. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  185. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  186. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  188. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  189. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
  190. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  191. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  192. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  194. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  195. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  196. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  198. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  199. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  200. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  201. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  202. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  204. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  205. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
  207. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  209. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  211. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  223. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +187 -135
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  232. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  245. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  246. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  253. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  256. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  258. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  260. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  261. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  262. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  264. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  265. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  266. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
  267. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  269. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  270. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  272. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  273. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  274. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  275. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  276. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  277. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  278. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  279. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  281. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  282. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  283. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  284. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  285. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  286. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  287. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
  288. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
  290. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  291. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  292. package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
  293. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
  295. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  297. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  299. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
  301. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  302. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  303. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  304. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  305. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  306. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
  307. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  308. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  309. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  310. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  321. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  323. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  325. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  327. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  329. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  331. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  333. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  335. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  336. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  343. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  348. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  350. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  358. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  362. package/contracts/accounting/AccountingService.sol +6 -5
  363. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  364. package/contracts/accounting/IAccountingService.sol +1 -1
  365. package/contracts/authorization/AccessAdmin.sol +43 -45
  366. package/contracts/authorization/AccessAdminLib.sol +29 -15
  367. package/contracts/authorization/AccessManagerCloneable.sol +48 -24
  368. package/contracts/authorization/Authorization.sol +2 -2
  369. package/contracts/authorization/IAccessAdmin.sol +3 -3
  370. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  371. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  372. package/contracts/distribution/BasicDistribution.sol +2 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  374. package/contracts/distribution/Distribution.sol +2 -0
  375. package/contracts/distribution/DistributionService.sol +20 -24
  376. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  377. package/contracts/examples/fire/FirePool.sol +4 -0
  378. package/contracts/examples/fire/FireProduct.sol +4 -0
  379. package/contracts/examples/flight/FlightLib.sol +300 -0
  380. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  381. package/contracts/examples/flight/FlightOracle.sol +171 -0
  382. package/contracts/examples/flight/FlightOracleAuthorization.sol +53 -0
  383. package/contracts/examples/flight/FlightPool.sol +89 -0
  384. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  385. package/contracts/examples/flight/FlightProduct.sol +685 -0
  386. package/contracts/examples/flight/FlightProductAuthorization.sol +69 -0
  387. package/contracts/examples/flight/FlightUSD.sol +28 -0
  388. package/contracts/examples/flight/originalV1.sol +396 -0
  389. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  390. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  391. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  393. package/contracts/instance/IInstance.sol +1 -1
  394. package/contracts/instance/Instance.sol +12 -8
  395. package/contracts/instance/InstanceAdmin.sol +17 -11
  396. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  397. package/contracts/instance/InstanceReader.sol +46 -18
  398. package/contracts/instance/InstanceService.sol +20 -18
  399. package/contracts/instance/InstanceServiceManager.sol +6 -4
  400. package/contracts/instance/base/Cloneable.sol +10 -4
  401. package/contracts/instance/base/ObjectSet.sol +2 -2
  402. package/contracts/oracle/BasicOracle.sol +2 -0
  403. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  404. package/contracts/oracle/IOracleService.sol +16 -12
  405. package/contracts/oracle/Oracle.sol +4 -3
  406. package/contracts/oracle/OracleService.sol +67 -37
  407. package/contracts/oracle/OracleServiceManager.sol +6 -4
  408. package/contracts/pool/BasicPool.sol +4 -2
  409. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  410. package/contracts/pool/BundleService.sol +19 -25
  411. package/contracts/pool/BundleServiceManager.sol +7 -5
  412. package/contracts/pool/IPoolService.sol +6 -5
  413. package/contracts/pool/Pool.sol +3 -1
  414. package/contracts/pool/PoolLib.sol +102 -5
  415. package/contracts/pool/PoolService.sol +101 -67
  416. package/contracts/pool/PoolServiceManager.sol +6 -4
  417. package/contracts/product/ApplicationService.sol +34 -13
  418. package/contracts/product/ApplicationServiceManager.sol +6 -4
  419. package/contracts/product/BasicProduct.sol +2 -0
  420. package/contracts/product/BasicProductAuthorization.sol +7 -7
  421. package/contracts/product/ClaimService.sol +34 -10
  422. package/contracts/product/ClaimServiceManager.sol +7 -5
  423. package/contracts/product/IPolicyService.sol +1 -0
  424. package/contracts/product/PolicyService.sol +57 -44
  425. package/contracts/product/PolicyServiceManager.sol +6 -4
  426. package/contracts/product/PricingService.sol +8 -7
  427. package/contracts/product/PricingServiceManager.sol +6 -4
  428. package/contracts/product/Product.sol +2 -0
  429. package/contracts/product/RiskService.sol +40 -8
  430. package/contracts/product/RiskServiceManager.sol +6 -4
  431. package/contracts/registry/IRegistry.sol +14 -20
  432. package/contracts/registry/IRegistryService.sol +14 -10
  433. package/contracts/registry/IRelease.sol +3 -0
  434. package/contracts/registry/Registry.sol +78 -124
  435. package/contracts/registry/RegistryAdmin.sol +29 -12
  436. package/contracts/registry/RegistryAuthorization.sol +3 -4
  437. package/contracts/registry/RegistryService.sol +82 -99
  438. package/contracts/registry/RegistryServiceManager.sol +11 -4
  439. package/contracts/registry/ReleaseAdmin.sol +23 -9
  440. package/contracts/registry/ReleaseRegistry.sol +74 -64
  441. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  442. package/contracts/registry/TokenRegistry.sol +15 -6
  443. package/contracts/shared/Component.sol +22 -27
  444. package/contracts/shared/ComponentService.sol +130 -45
  445. package/contracts/shared/ComponentServiceManager.sol +7 -5
  446. package/contracts/shared/ContractLib.sol +93 -359
  447. package/contracts/shared/EcdsaChecker.sol +5 -0
  448. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  449. package/contracts/shared/IComponent.sol +3 -5
  450. package/contracts/shared/IComponentService.sol +14 -0
  451. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  452. package/contracts/shared/INftOwnable.sol +2 -0
  453. package/contracts/shared/IRegisterable.sol +3 -14
  454. package/contracts/shared/IRegistryLinked.sol +3 -1
  455. package/contracts/shared/IService.sol +2 -2
  456. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  457. package/contracts/shared/NftOwnable.sol +22 -9
  458. package/contracts/shared/PolicyHolder.sol +4 -2
  459. package/contracts/shared/Registerable.sol +20 -37
  460. package/contracts/shared/RegistryLinked.sol +23 -4
  461. package/contracts/shared/Service.sol +9 -8
  462. package/contracts/shared/TokenHandler.sol +1 -4
  463. package/contracts/staking/IStaking.sol +2 -2
  464. package/contracts/staking/Staking.sol +33 -28
  465. package/contracts/staking/StakingLib.sol +1 -3
  466. package/contracts/staking/StakingManager.sol +6 -3
  467. package/contracts/staking/StakingReader.sol +17 -9
  468. package/contracts/staking/StakingService.sol +13 -16
  469. package/contracts/staking/StakingServiceManager.sol +8 -4
  470. package/contracts/staking/StakingStore.sol +8 -8
  471. package/contracts/staking/TargetHandler.sol +5 -4
  472. package/contracts/type/ObjectType.sol +2 -31
  473. package/contracts/type/Referral.sol +6 -0
  474. package/contracts/type/RequestIdSet.sol +62 -0
  475. package/contracts/type/Seconds.sol +4 -0
  476. package/contracts/type/String.sol +30 -0
  477. package/contracts/type/Timestamp.sol +10 -1
  478. package/contracts/type/Version.sol +16 -15
  479. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  480. package/contracts/upgradeability/ProxyManager.sol +54 -46
  481. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  482. package/package.json +2 -1
  483. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  484. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  485. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  486. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  487. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  488. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  489. package/contracts/shared/IVersionable.sol +0 -19
  490. package/contracts/shared/Versionable.sol +0 -47
@@ -18,8 +18,6 @@ import {IStaking} from "../staking/IStaking.sol";
18
18
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
19
19
  import {TokenRegistry} from "./TokenRegistry.sol";
20
20
  import {RegistryAdmin} from "./RegistryAdmin.sol";
21
- import {Versionable} from "../shared/Versionable.sol";
22
- import {VersionLib, Version} from "../type/Version.sol";
23
21
 
24
22
  /// @dev IMPORTANT
25
23
  // Each NFT minted by registry is accosiated with:
@@ -33,27 +31,20 @@ import {VersionLib, Version} from "../type/Version.sol";
33
31
  // 5) registerRegistry() -> registers IRegistry address (from different chain) by GifAdmin. Works ONLY on mainnet.
34
32
  // Note: getters by address MUST not be used with this address (will return 0 or data related to different object or even revert)
35
33
 
36
-
37
- function GIF_INITIAL_RELEASE() pure returns (VersionPart) {
38
- return VersionPartLib.toVersionPart(3);
39
- }
40
-
41
-
42
34
  /// @dev Chain Registry contract implementing IRegistry.
43
35
  /// IRegistry for method details.
44
36
  contract Registry is
45
37
  Initializable,
46
38
  AccessManaged,
47
- Versionable,
48
39
  IRegistry
49
40
  {
50
41
  /// @dev Protocol NFT ID
51
42
  NftId public immutable PROTOCOL_NFT_ID;
52
43
 
53
- /// @dev Global registry NFT ID
44
+ /// @dev Gobal registry NFT ID
54
45
  NftId public immutable GLOBAL_REGISTRY_NFT_ID;
55
46
 
56
- /// @dev Global registry address on mainnet.
47
+ /// @dev Gobal registry address on mainnet.
57
48
  address public immutable GLOBAL_REGISTRY_ADDRESS;
58
49
 
59
50
  /// @dev Registry NFT ID
@@ -77,9 +68,8 @@ contract Registry is
77
68
  mapping(uint256 chainId => NftId registryNftId) private _registryNftIdByChainId;
78
69
  uint256[] private _chainId;
79
70
 
80
- /// @dev keep track of object info, data and address reverse lookup
71
+ /// @dev keep track of object info and address reverse lookup
81
72
  mapping(NftId nftId => ObjectInfo info) private _info;
82
- mapping(NftId nftId => bytes data) private _data;
83
73
  mapping(address object => NftId nftId) private _nftIdByAddress;
84
74
 
85
75
  /// @dev keep track of service addresses by version and domain
@@ -156,8 +146,7 @@ contract Registry is
156
146
  function registerRegistry(
157
147
  NftId nftId,
158
148
  uint256 chainId,
159
- address registryAddress,
160
- VersionPart release
149
+ address registryAddress
161
150
  )
162
151
  external
163
152
  restricted()
@@ -191,19 +180,20 @@ contract Registry is
191
180
  nftId: nftId,
192
181
  parentNftId: REGISTRY_NFT_ID,
193
182
  objectType: REGISTRY(),
194
- release: release,
195
183
  isInterceptor: false,
196
- objectAddress: registryAddress}),
184
+ objectAddress: registryAddress,
185
+ initialOwner: NFT_LOCK_ADDRESS,
186
+ data: ""
187
+ }),
197
188
  false); // do not update address lookup for objects on a different chain
198
189
  }
199
190
 
200
191
  // TODO limit service owner to registry admin?
201
192
  /// @inheritdoc IRegistry
202
193
  function registerService(
203
- ObjectInfo memory info,
204
- address initialOwner,
205
- ObjectType domain,
206
- bytes memory data
194
+ ObjectInfo memory info,
195
+ VersionPart version,
196
+ ObjectType domain
207
197
  )
208
198
  external
209
199
  restricted()
@@ -216,13 +206,12 @@ contract Registry is
216
206
  }
217
207
 
218
208
  // version is defined
219
- VersionPart release = info.release;
220
- if(release.eqz()) {
209
+ if(version.eqz()) {
221
210
  revert ErrorRegistryServiceVersionZero(service);
222
211
  }
223
212
  // service domain is defined
224
213
  if(domain.eqz()) {
225
- revert ErrorRegistryServiceDomainZero(service, release);
214
+ revert ErrorRegistryServiceDomainZero(service, version);
226
215
  }
227
216
 
228
217
  // service has proper type
@@ -232,31 +221,30 @@ contract Registry is
232
221
 
233
222
  // service parent has registry type
234
223
  if(info.parentNftId != REGISTRY_NFT_ID) {
235
- revert ErrorRegistryServiceParentNotRegistry(service, release, info.parentNftId);
224
+ revert ErrorRegistryServiceParentNotRegistry(service, version, info.parentNftId);
236
225
  }
237
226
 
238
227
  // service has not already been registered
239
- if(_service[release][domain] != address(0)) {
240
- revert ErrorRegistryServiceDomainAlreadyRegistered(service, release, domain);
228
+ if(_service[version][domain] != address(0)) {
229
+ revert ErrorRegistryServiceDomainAlreadyRegistered(service, version, domain);
241
230
  }
242
231
 
243
- _service[release][domain] = service;
232
+ _service[version][domain] = service;
244
233
 
245
- emit LogRegistryServiceRegistered(release, domain);
234
+ emit LogRegistryServiceRegistered(version, domain);
246
235
 
247
- nftId = _register(info, initialOwner, data);
236
+ nftId = _register(info);
248
237
  }
249
238
 
250
239
 
251
240
  /// @inheritdoc IRegistry
252
- function register(ObjectInfo memory info, address initialOwner, bytes memory data)
241
+ function register(ObjectInfo memory info)
253
242
  external
254
243
  restricted()
255
244
  returns(NftId nftId)
256
245
  {
257
246
  address objectAddress = info.objectAddress;
258
247
  ObjectType objectType = info.objectType;
259
- VersionPart parentRelease = _info[info.parentNftId].release;
260
248
 
261
249
  // specialized functions have to be used to register registries and services
262
250
  if(objectType == REGISTRY() || objectType == STAKING() || objectType == SERVICE()) {
@@ -280,21 +268,18 @@ contract Registry is
280
268
  }
281
269
  }
282
270
 
283
- _checkRelease(info.release, parentRelease, parentType);
284
-
285
- nftId = _register(info, initialOwner, data);
271
+ nftId = _register(info);
286
272
  }
287
273
 
288
274
 
289
275
  /// @inheritdoc IRegistry
290
- function registerWithCustomType(ObjectInfo memory info, address initialOwner, bytes memory data)
276
+ function registerWithCustomType(ObjectInfo memory info)
291
277
  external
292
278
  restricted()
293
279
  returns(NftId nftId)
294
280
  {
295
281
  ObjectType objectType = info.objectType;
296
282
  ObjectType parentType = _info[info.parentNftId].objectType;
297
- VersionPart parentRelease = _info[info.parentNftId].release;
298
283
 
299
284
  if(_coreTypes[objectType]) {
300
285
  revert ErrorRegistryCoreTypeRegistration();
@@ -310,36 +295,13 @@ contract Registry is
310
295
  revert ErrorRegistryTypeCombinationInvalid(info.objectAddress, objectType, parentType);
311
296
  }
312
297
 
313
- _checkRelease(info.release, parentRelease, parentType);
314
-
315
- nftId = _register(info, initialOwner, data);
298
+ nftId = _register(info);
316
299
  }
317
300
 
318
- function _checkRelease(
319
- VersionPart objectRelease,
320
- VersionPart parentRelease,
321
- ObjectType parentType
322
- ) internal view
323
- {
324
- VersionPart senderRelease = _info[_nftIdByAddress[msg.sender]].release;
325
-
326
- // assume:
327
- // 1) only address with role can reach this function -> caller is registered registry service
328
- // 2) locked registry service can not call registry -> no "caller is locked" check is needed
329
- if(parentType == PROTOCOL()) {
330
- // STAKING for PROTOCOL, parent release is 0
331
- if(senderRelease != objectRelease) {
332
- revert ErrorRegistryReleaseMismatch(objectRelease, parentRelease, senderRelease);
333
- }
334
- }
335
- else if(senderRelease != objectRelease || senderRelease != parentRelease) {
336
- revert ErrorRegistryReleaseMismatch(objectRelease, parentRelease, senderRelease);
337
- }
338
- }
339
301
 
340
302
  /// @dev earliest GIF major version
341
303
  function getInitialRelease() external view returns (VersionPart) {
342
- return GIF_INITIAL_RELEASE();
304
+ return VersionPartLib.toVersionPart(_releaseRegistry.INITIAL_GIF_VERSION());
343
305
  }
344
306
 
345
307
  /// @dev next GIF release version to be released
@@ -404,20 +366,13 @@ contract Registry is
404
366
  return _info[nftId].parentNftId;
405
367
  }
406
368
 
407
- function isObjectType(address contractAddress, ObjectType expectedObjectType, VersionPart release) external view returns (bool) {
369
+ function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
408
370
  NftId nftId = _nftIdByAddress[contractAddress];
409
- return isObjectType(nftId, expectedObjectType, release);
371
+ return isObjectType(nftId, expectedObjectType);
410
372
  }
411
373
 
412
- function isObjectType(NftId nftId, ObjectType expectedObjectType, VersionPart release) public view returns (bool) {
413
- return (
414
- _info[nftId].objectType == expectedObjectType &&
415
- _info[nftId].release == release
416
- );
417
- }
418
-
419
- function getObjectRelease(NftId nftId) external view returns (VersionPart release) {
420
- return _info[nftId].release;
374
+ function isObjectType(NftId nftId, ObjectType expectedObjectType) public view returns (bool) {
375
+ return _info[nftId].objectType == expectedObjectType;
421
376
  }
422
377
 
423
378
  function getObjectAddress(NftId nftId) external view returns (address) {
@@ -428,14 +383,6 @@ contract Registry is
428
383
  return _info[_nftIdByAddress[object]];
429
384
  }
430
385
 
431
- function getObjectData(NftId nftId) external view returns (bytes memory data) {
432
- return _data[nftId];
433
- }
434
-
435
- function getObjectData(address objectAddress) external view returns (bytes memory data) {
436
- return _data[_nftIdByAddress[objectAddress]];
437
- }
438
-
439
386
  function isRegistered(NftId nftId) public view returns (bool) {
440
387
  return _info[nftId].objectType.gtz();
441
388
  }
@@ -494,12 +441,6 @@ contract Registry is
494
441
  return ownerOf(address(this));
495
442
  }
496
443
 
497
- // Versionable
498
-
499
- function getVersion() public pure override returns (Version) {
500
- return VersionLib.toVersion(GIF_INITIAL_RELEASE().toInt(), 0 , 0);
501
- }
502
-
503
444
  // IERC165
504
445
 
505
446
  function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
@@ -513,49 +454,62 @@ contract Registry is
513
454
  // Internals
514
455
 
515
456
  /// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
516
- function _register(ObjectInfo memory info, address initialOwner, bytes memory data)
457
+ function _register(ObjectInfo memory info)
517
458
  internal
518
459
  returns(NftId nftId)
519
460
  {
461
+ ObjectType objectType = info.objectType; // do not care here, never PROTOCOL(), REGISTRY()
462
+ bool isInterceptor = info.isInterceptor;
463
+ address objectAddress = info.objectAddress; // do not care here, can be 0
464
+ address owner = info.initialOwner; // do not care here, can be 0, can be equal info.objectAddress
465
+
520
466
  NftId parentNftId = info.parentNftId; // do not care here, can not be 0
521
467
  ObjectInfo memory parentInfo = _info[parentNftId];
468
+ address parentAddress = parentInfo.objectAddress; // can be 0
469
+
470
+ // parent is contract -> need to check? -> check before minting
471
+ // special case: staking: to protocol possible as well
472
+ // NO LONGER TRUE: special case: global registry nft as parent when not on mainnet -> global registry address is 0
473
+ // special case: when parentNftId == CHAIN_NFT.mint(), check for zero parent address before mint
474
+ // special case: when parentNftId == CHAIN_NFT.mint() && objectAddress == initialOwner
475
+ // Parent can have 0 address in case of STAKE for PROTOCOL / CUSTOM_TYPE for POLICY
476
+ // But it MUST be registered -> parentType != 0 && parentNftId != 0
477
+ /*if(objectType != STAKE()) {
478
+ if(parentAddress == address(0)) {
479
+ revert ErrorRegistryParentAddressZero();
480
+ }
481
+ }*/
522
482
 
523
483
  // global registry is never parent when not on mainnet
524
484
  if(block.chainid != 1) {
525
485
  if(parentNftId == GLOBAL_REGISTRY_NFT_ID) {
526
- revert ErrorRegistryGlobalRegistryAsParent(info.objectAddress, info.objectType);
486
+ revert ErrorRegistryGlobalRegistryAsParent(objectAddress, objectType);
527
487
  }
528
488
  }
529
489
 
530
490
  address interceptorAddress = _getInterceptor(
531
- info.isInterceptor,
532
- info.objectType,
533
- info.objectAddress,
491
+ isInterceptor,
492
+ objectType,
493
+ objectAddress,
534
494
  parentInfo.isInterceptor,
535
- parentInfo.objectAddress);
536
-
537
- uint256 tokenId = CHAIN_NFT.mint(
538
- initialOwner,
539
- interceptorAddress,
540
- EMPTY_URI);
495
+ parentAddress);
541
496
 
497
+ uint256 tokenId = CHAIN_NFT.getNextTokenId();
542
498
  nftId = NftIdLib.toNftId(tokenId);
543
499
  info.nftId = nftId;
544
500
 
545
501
  _info[nftId] = info;
546
- if(data.length > 0) {
547
- _data[nftId] = data;
548
- }
549
- _setAddressForNftId(nftId, info.objectAddress);
502
+ _setAddressForNftId(nftId, objectAddress);
503
+
504
+ emit LogRegistryObjectRegistered(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
550
505
 
551
- emit LogRegistryObjectRegistered(
552
- nftId,
553
- parentNftId,
554
- info.objectType,
555
- info.release,
556
- info.isInterceptor,
557
- info.objectAddress,
558
- initialOwner);
506
+ // calls nft receiver(1) and interceptor(2)
507
+ uint256 mintedTokenId = CHAIN_NFT.mint(
508
+ owner,
509
+ interceptorAddress,
510
+ EMPTY_URI);
511
+
512
+ assert(mintedTokenId == tokenId);
559
513
  }
560
514
 
561
515
  /// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
@@ -607,10 +561,10 @@ contract Registry is
607
561
  nftId: protocolNftId,
608
562
  parentNftId: NftIdLib.zero(),
609
563
  objectType: PROTOCOL(),
610
- release: VersionPartLib.toVersionPart(0),
611
564
  isInterceptor: false,
612
- objectAddress: address(0)}),
613
- NFT_LOCK_ADDRESS, // initial owner of protocol
565
+ objectAddress: address(0),
566
+ initialOwner: NFT_LOCK_ADDRESS,
567
+ data: ""}),
614
568
  true);
615
569
  }
616
570
 
@@ -630,9 +584,10 @@ contract Registry is
630
584
  nftId: GLOBAL_REGISTRY_NFT_ID,
631
585
  parentNftId: PROTOCOL_NFT_ID,
632
586
  objectType: REGISTRY(),
633
- release: getRelease(),
634
587
  isInterceptor: false,
635
- objectAddress: GLOBAL_REGISTRY_ADDRESS}),
588
+ objectAddress: GLOBAL_REGISTRY_ADDRESS,
589
+ initialOwner: NFT_LOCK_ADDRESS,
590
+ data: ""}),
636
591
  block.chainid == 1);// update address lookup for global registry only on mainnet
637
592
 
638
593
  // if not on mainnet: register this registry with global registry as parent
@@ -648,9 +603,10 @@ contract Registry is
648
603
  nftId: registryNftId,
649
604
  parentNftId: GLOBAL_REGISTRY_NFT_ID,
650
605
  objectType: REGISTRY(),
651
- release: getRelease(),
652
606
  isInterceptor: false,
653
- objectAddress: address(this)}),
607
+ objectAddress: address(this),
608
+ initialOwner: NFT_LOCK_ADDRESS,
609
+ data: ""}),
654
610
  true);
655
611
  }
656
612
  }
@@ -674,7 +630,6 @@ contract Registry is
674
630
  // register the registry info
675
631
  _registerForNft(
676
632
  info,
677
- NFT_LOCK_ADDRESS, // initial owner of any registry
678
633
  updateAddressLookup);
679
634
  }
680
635
 
@@ -692,10 +647,10 @@ contract Registry is
692
647
  nftId: stakingNftId,
693
648
  parentNftId: REGISTRY_NFT_ID,
694
649
  objectType: STAKING(),
695
- release: VersionPartLib.toVersionPart(3),
696
650
  isInterceptor: false,
697
- objectAddress: _stakingAddress}),
698
- stakingOwner,
651
+ objectAddress: _stakingAddress,
652
+ initialOwner: stakingOwner,
653
+ data: ""}),
699
654
  true);
700
655
 
701
656
  IStaking(_stakingAddress).initializeTokenHandler();
@@ -703,8 +658,7 @@ contract Registry is
703
658
 
704
659
  /// @dev Register the provided object info for the specified NFT ID.
705
660
  function _registerForNft(
706
- ObjectInfo memory info,
707
- address initialOwner,
661
+ ObjectInfo memory info,
708
662
  bool updateAddressLookup
709
663
  )
710
664
  internal
@@ -716,7 +670,7 @@ contract Registry is
716
670
  }
717
671
 
718
672
  // calls nft receiver
719
- CHAIN_NFT.mint(initialOwner, info.nftId.toInt());
673
+ CHAIN_NFT.mint(info.initialOwner, info.nftId.toInt());
720
674
  }
721
675
 
722
676
  function _setAddressForNftId(NftId nftId, address objectAddress)
@@ -7,11 +7,12 @@ import {IService} from "../shared/IService.sol";
7
7
  import {IStaking} from "../staking/IStaking.sol";
8
8
 
9
9
  import {AccessAdmin} from "../authorization/AccessAdmin.sol";
10
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
10
11
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
11
12
  import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
12
13
  import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
13
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
14
14
  import {Str} from "../type/String.sol";
15
+ import {VersionPart} from "../type/Version.sol";
15
16
 
16
17
  /*
17
18
  1) GIF_MANAGER_ROLE
@@ -51,6 +52,7 @@ contract RegistryAdmin is
51
52
  // completeSetup
52
53
  error ErrorRegistryAdminNotRegistry(address registry);
53
54
 
55
+ address internal _registry;
54
56
  address private _releaseRegistry;
55
57
  address private _tokenRegistry;
56
58
  address private _staking;
@@ -60,34 +62,49 @@ contract RegistryAdmin is
60
62
  constructor() {
61
63
  initialize(
62
64
  address(new AccessManagerCloneable()),
63
- "RegistryAdmin",
64
- GIF_INITIAL_RELEASE());
65
+ "RegistryAdmin");
65
66
  }
66
67
 
67
68
 
68
69
  function completeSetup(
70
+ address registry,
69
71
  address authorization,
72
+ VersionPart release,
70
73
  address gifAdmin,
71
74
  address gifManager
72
75
  )
73
76
  public
74
77
  virtual
78
+ reinitializer(type(uint8).max)
75
79
  {
76
80
  // checks
77
- _checkAuthorization(authorization, REGISTRY(), getRelease(), false, true);
78
-
79
- // effects
81
+ AccessAdminLib.checkRegistry(registry);
82
+
83
+ AccessManagerCloneable(
84
+ authority()).completeSetup(
85
+ registry,
86
+ release);
87
+
88
+ AccessAdminLib.checkAuthorization(
89
+ address(_authorization),
90
+ authorization,
91
+ REGISTRY(),
92
+ release,
93
+ false, // expectServiceAuthorization
94
+ false); // checkAlreadyInitialized);
95
+
96
+ _registry = registry;
80
97
  _authorization = IAuthorization(authorization);
81
98
 
82
- IRegistry registry = _getRegistry();
83
- _releaseRegistry = registry.getReleaseRegistryAddress();
84
- _tokenRegistry = registry.getTokenRegistryAddress();
85
- _staking = registry.getStakingAddress();
99
+ IRegistry registryContract = IRegistry(registry);
100
+ _releaseRegistry = registryContract.getReleaseRegistryAddress();
101
+ _tokenRegistry = registryContract.getTokenRegistryAddress();
102
+ _staking = registryContract.getStakingAddress();
86
103
  _stakingTargetHandler = address(IStaking(_staking).getTargetHandler());
87
104
  _stakingStore = address(IStaking(_staking).getStakingStore());
88
105
 
89
106
  // link nft ownability to registry
90
- _linkToNftOwnable(address(_getRegistry()));
107
+ _linkToNftOwnable(_registry);
91
108
 
92
109
  _createRoles(_authorization);
93
110
 
@@ -132,7 +149,7 @@ contract RegistryAdmin is
132
149
  internal
133
150
  {
134
151
  // create unchecked registry targets
135
- _createTarget(address(_getRegistry()), registryTargetName, TargetType.Core, false);
152
+ _createTarget(_registry, registryTargetName, TargetType.Core, false);
136
153
  _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core, false);
137
154
  _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core, false);
138
155
  _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core, false);
@@ -12,7 +12,6 @@ import {PUBLIC_ROLE} from "../type/RoleId.sol";
12
12
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
13
13
  import {RegistryAdmin} from "./RegistryAdmin.sol";
14
14
  import {RoleIdLib, ADMIN_ROLE, GIF_ADMIN_ROLE, GIF_MANAGER_ROLE} from "../type/RoleId.sol";
15
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
16
15
  import {StakingStore} from "../staking/StakingStore.sol";
17
16
  import {TargetHandler} from "../staking/TargetHandler.sol";
18
17
  import {TokenHandler} from "../shared/TokenHandler.sol";
@@ -50,7 +49,7 @@ contract RegistryAuthorization
50
49
  Authorization(
51
50
  REGISTRY_TARGET_NAME,
52
51
  REGISTRY(),
53
- GIF_INITIAL_RELEASE(),
52
+ 3,
54
53
  commitHash,
55
54
  TargetType.Core,
56
55
  false) // includeTokenHandler
@@ -101,7 +100,7 @@ contract RegistryAuthorization
101
100
  AccessAdminLib.roleInfo(
102
101
  ADMIN_ROLE(),
103
102
  TargetType.Custom, // custom is only type that allows role removal
104
- 1, // TODO decide on max member count
103
+ 2, // TODO decide on max member count
105
104
  GIF_ADMIN_ROLE_NAME));
106
105
 
107
106
  // gif manager role
@@ -110,7 +109,7 @@ contract RegistryAuthorization
110
109
  AccessAdminLib.roleInfo(
111
110
  ADMIN_ROLE(),
112
111
  TargetType.Custom, // custom is only type that allows role removal
113
- 2, // TODO decide on max member count
112
+ 1, // TODO decide on max member count
114
113
  GIF_MANAGER_ROLE_NAME));
115
114
 
116
115
  }